ZGlmZiAtLWdpdCBhL2luY2x1ZGUvTWFrZWZpbGUuYW0gYi9pbmNsdWRlL01ha2VmaWxlLmFtCmluZGV4IDgzNzU3YzYuLmNlMzMyMWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvTWFrZWZpbGUuYW0KKysrIGIvaW5jbHVkZS9NYWtlZmlsZS5hbQpAQCAtMyw0ICszLDE3NTkgQEAKICMgVGhlc2UgZmlsZXMgYXJlIGluY2x1ZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB3aXRoLCBmb3IgZXhhbXBsZQogIyAjaW5jbHVkZSA8bmRuLWNwcC9uYW1wLmhwcD4KICMgSW50ZXJuYWwgaW5jbHVkZSBoZWFkZXJzIGFyZSBub3QgcHV0IGluIHRoaXMgcHVibGljIGluc3RhbGwgZGlyZWN0b3J5Lgotbm9iYXNlX2luY2x1ZGVfSEVBREVSUyA9IG5kbi1jcHAvbmRuLWNwcC1jb25maWcuaAorbmRuYm9vc3RfZmlsZXMgPSBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29tcGFyZS5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmNlcHQuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25zdGFudHMuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXQuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXRfYWxsLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRfZm9ybWF0X3N0b3JlLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRlci5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvcmVwbGFjZV9zdG9yYWdlLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3NlcXVlbmNlLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3V0aWwuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9maW5kX2Zvcm1hdC5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2ZpbmRlci5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2Zvcm1hdHRlci5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL3JlcGxhY2UuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9zZXF1ZW5jZV90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy95ZXNfbm9fdHlwZS5ocHAgXAorICBuZG5ib29zdC9hbGlnbmVkX3N0b3JhZ2UuaHBwIFwKKyAgbmRuYm9vc3QvYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3QvYXNzZXJ0LmhwcCBcCisgIG5kbmJvb3N0L2JpbmQvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L2JpbmQvYmluZF9jYy5ocHAgXAorICBuZG5ib29zdC9iaW5kL2JpbmRfbWYyX2NjLmhwcCBcCisgIG5kbmJvb3N0L2JpbmQvYmluZF9tZl9jYy5ocHAgXAorICBuZG5ib29zdC9iaW5kL2JpbmRfdGVtcGxhdGUuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9tYWtlX2FkYXB0YWJsZS5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbi5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbl9jYy5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbl92dy5ocHAgXAorICBuZG5ib29zdC9iaW5kL3BsYWNlaG9sZGVycy5ocHAgXAorICBuZG5ib29zdC9iaW5kL3Byb3RlY3QuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9zdG9yYWdlLmhwcCBcCisgIG5kbmJvb3N0L2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvYmxhbmsuaHBwIFwKKyAgbmRuYm9vc3QvYmxhbmtfZndkLmhwcCBcCisgIG5kbmJvb3N0L2NhbGxfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L2NoZWNrZWRfZGVsZXRlLmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvYXNzZXJ0LmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JhY2t3YXJkX2NvbXBhdGliaWxpdHkuaHBwIFwKKyAgbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvYm9ybGFuZC5ocHAgXAorICBuZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X2RlZi5ocHAgXAorICBuZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X3VuZGVmLmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2dlbmVyYWwuaHBwIFwKKyAgbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvaGFzX2NvbnN0cmFpbnRzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL21zdmMuaHBwIFwKKyAgbmRuYm9vc3QvY29uY2VwdC91c2FnZS5ocHAgXAorICBuZG5ib29zdC9jb25jZXB0X2NoZWNrLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9wcmVmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvYWJpL21zdmNfcHJlZml4LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9hYmkvbXN2Y19zdWZmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2F1dG9fbGluay5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvYm9ybGFuZC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvY2xhbmcuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvZGVnZWFyLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21lYXUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NyYXkuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2RpZ2l0YWxtYXJzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9nY2MuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djY194bWwuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2dyZWVuaGlsbHMuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvaW50ZWwuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbWV0cm93ZXJrcy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9udmNjLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9wYXRoc2NhbGUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvc2dpX21pcHNwcm8uaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3N1bnByb19jYy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvdmFjcHAuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3Zpc3VhbGMuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL25vX3RyMS9jbWF0aC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvbm9fdHIxL2NvbXBsZXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL25vX3RyMS9mdW5jdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9ub190cjEvbWVtb3J5LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYWl4LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9hbWlnYW9zLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9ic2QuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2N5Z3dpbi5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaHB1eC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaXJpeC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbGludXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL21hY29zLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9xbnhudG8uaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3NvbGFyaXMuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3N5bWJpYW4uaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Ztcy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vdnh3b3Jrcy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vd2luMzIuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9yZXF1aXJlc190aHJlYWRzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zZWxlY3RfY29tcGlsZXJfY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zZWxlY3RfcGxhdGZvcm1fY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zZWxlY3Rfc3RkbGliX2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL2Rpbmt1bXdhcmUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjb21vLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbGliY3BwLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbGlic3RkY3BwMy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL21vZGVuYS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL21zbC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL3JvZ3Vld2F2ZS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL3NnaS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL3N0bHBvcnQuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi92YWNwcC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3VmZml4LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy91c2VyLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy93YXJuaW5nX2Rpc2FibGUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L2NvbnRhaW5lci9jb250YWluZXJfZndkLmhwcCBcCisgIG5kbmJvb3N0L2NzdGRpbnQuaHBwIFwKKyAgbmRuYm9vc3QvY3N0ZGxpYi5ocHAgXAorICBuZG5ib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9iaW5hcnlfc2VhcmNoLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9jYWxsX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvY29udGFpbmVyX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvZW5kaWFuLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9mZW52LmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pbmRpcmVjdF90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvZGV0YWlsL2ludGVybG9ja2VkLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pc19mdW5jdGlvbl9yZWZfdGVzdGVyLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pc19pbmNyZW1lbnRhYmxlLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvbGNhc3RfcHJlY2lzaW9uLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvbGlnaHR3ZWlnaHRfdGVzdC5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvbm9fZXhjZXB0aW9uc19zdXBwb3J0LmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9vYl9jYWxsX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvcmVmZXJlbmNlX2NvbnRlbnQuaHBwIFwKKyAgbmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9jdXJyZW50X2V4Y2VwdGlvbl9jYXN0LmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvYXR0cmlidXRlX25vcmV0dXJuLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvZXJyb3JfaW5mb19pbXBsLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvdHlwZV9pbmZvLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9leGNlcHRpb24uaHBwIFwKKyAgbmRuYm9vc3QvZXhjZXB0aW9uL2dldF9lcnJvcl9pbmZvLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9mdW5jdGlvbl9pdGVyYXRlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9nZW5fbWF5YmVfaW5jbHVkZS5wbCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9wcm9sb2d1ZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMTAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24yLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb241LmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjcuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb244LmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uOS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9iYXNlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90eXBlb2YuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZ2VuX2Z1bmN0aW9uX04ucGwgXAorICBuZG5ib29zdC9mdW5jdGlvbi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb21wb25lbnRzLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbmZpZy9jY19uYW1lcy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY29tcGlsZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NfdHJhbnNmb3JtLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvbWFzdGVyLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2FzX21wbF9zZXF1ZW5jZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MTBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MTBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MjBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MjBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NDBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NDBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NTBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NTBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL21hc3Rlci5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY3ZfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9hbGlhc2VzX2RlZi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc191bmRlZi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvZGVmLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy91bmRlZi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfYXJpdHlfbG9vcC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfY2NfbG9vcC9tYXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2NjX2xvb3AvcHJlcHJvY2Vzc2VkLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9sb29wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9yZXRhZ19kZWZhdWx0X2NjL21hc3Rlci5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3RhZ3MvY2NfdGFnLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF90YWdzL21hc3Rlci5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9tYXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3JldGFnX2RlZmF1bHRfY2MuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemUuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTUwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTUwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9tYXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3RvX3NlcXVlbmNlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2Z1bmN0aW9uX3R5cGUuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvaXNfY2FsbGFibGVfYnVpbHRpbi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbl9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2Z1bmN0aW9uX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wYXJhbWV0ZXJfdHlwZXMuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvcHJvcGVydHlfdGFncy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9yZXN1bHRfdHlwZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbmFsL2hhc2gvaGFzaF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25hbC9oYXNoX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L2dldF9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L2luZGlyZWN0X3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC9pbnRlZ2VyL3N0YXRpY19sb2cyLmhwcCBcCisgIG5kbmJvb3N0L2ludGVnZXIuaHBwIFwKKyAgbmRuYm9vc3QvaW50ZWdlcl9md2QuaHBwIFwKKyAgbmRuYm9vc3QvaW50ZWdlcl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfZW5kLmhwcCBcCisgIG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoLmhwcCBcCisgIG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbWVtb3J5X3V0aWwuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9tcGwuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9wcmVwcm9jZXNzb3IuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC93b3JrYXJvdW5kLmhwcCBcCisgIG5kbmJvb3N0L2ludHJ1c2l2ZS9wb2ludGVyX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9pby9pb3Nfc3RhdGUuaHBwIFwKKyAgbmRuYm9vc3QvaW9fZndkLmhwcCBcCisgIG5kbmJvb3N0L2lzX3BsYWNlaG9sZGVyLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfdW5kZWYuaHBwIFwKKyAgbmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2VuYWJsZV9pZi5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvZmFjYWRlX2l0ZXJhdG9yX2NhdGVnb3J5LmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2ludGVyb3BlcmFibGUuaHBwIFwKKyAgbmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfYWRhcHRvci5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jYXRlZ29yaWVzLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2NvbmNlcHRzLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2ZhY2FkZS5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvaXRlcmF0b3IvcmV2ZXJzZV9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvYmluZC5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvY29yZS5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2FjdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9hcml0eV9jb2RlLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYmluZF9mdW5jdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9mdW5jdGlvbl9hZGFwdG9ycy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2lzX2luc3RhbmNlX29mLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV9mdW5jdG9yX2Jhc2UuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZnVuY3RvcnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZndkLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL21lbWJlcl9wdHIuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcl9hY3Rpb25zLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JfbGFtYmRhX2Z1bmNfYmFzZS5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9yX3JldHVybl90eXBlX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9ycy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3JldC5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3JldHVybl90eXBlX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3NlbGVjdF9mdW5jdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9sZXhpY2FsX2Nhc3QuaHBwIFwKKyAgbmRuYm9vc3QvbGltaXRzLmhwcCBcCisgIG5kbmJvb3N0L21ha2Vfc2hhcmVkLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvcG9saWNpZXMvcG9saWN5LmhwcCBcCisgIG5kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZGV0YWlsL2ZwX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2RldGFpbC9yb3VuZF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9mcGNsYXNzaWZ5LmhwcCBcCisgIG5kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvbWF0aF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9zaWduLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvcHJvbW90aW9uLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvcmVhbF9jYXN0LmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvdXNlci5ocHAgXAorICBuZG5ib29zdC9tZW1fZm4uaHBwIFwKKyAgbmRuYm9vc3QvbWVtb3J5X29yZGVyLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvYWxnb3JpdGhtLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvY29yZS5ocHAgXAorICBuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHAgXAorICBuZG5ib29zdC9tb3ZlL2RldGFpbC9tZXRhX3V0aWxzLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbW92ZS9tb3ZlLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYWR2YW5jZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYWR2YW5jZV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2Fsd2F5cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXBwbHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2FyZ19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2Fzc2VydC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F0X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hcmdfdHlwZWRlZi5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hcml0aG1ldGljX29wLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2FyaXR5X3NwZWMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vYXRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9iZWdpbl9lbmRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jbGVhcl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbW1vbl9uYW1lX3drbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29tcGFyaXNvbl9vcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYWRsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9hcnJheXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2JjYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY29tcGlsZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2RtY19hbWJpZ3VvdXNfY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ZvcndhcmRpbmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaGFzX2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfeHh4LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaW50ZWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Y190eXBlbmFtZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvb3ZlcmxvYWRfcmVzb2x1dGlvbi5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHBfY291bnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R0cC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbnRhaW5zX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY291bnRfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9maW5kX2lmX3ByZWQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbF9ib2R5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2hhc19hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9oYXNfYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3JlYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9oYXNfc2l6ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9oYXNfdGFnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2hhc190eXBlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2luc2VydGVyX2FsZ29yaXRobS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2lzX21zdmNfZXRpX2FyZy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3BlYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYXJnZXN0X2ludC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sb2dpY2FsX29wLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL21zdmNfZHR3LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL21zdmNfZXRpX2Jhc2UuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19pc19jbGFzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX25ldmVyX3RydWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y190eXBlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL25hX2Fzc2VydC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9uYV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9uZXN0ZWRfdHlwZV93a25kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9udW1lcmljX2Nhc3RfdXRpbHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbnVtZXJpY19vcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9PMV9zaXplX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9kaXZpZGVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9mdWxsX2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvaW5oZXJpdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3F1b3RlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2V0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2hpZnRfcmlnaHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvdW5wYWNrX2FyZ3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hZHZhbmNlX2ZvcndhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FwcGx5X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iYXNpY19iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYml0YW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9kZXF1ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2dyZWF0ZXJfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbWFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NoaWZ0X2xlZnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdGltZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvcl9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYXBwbHlfd3JhcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGl2aWRlcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZnVsbF9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2luaGVyaXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGFtYmRhX25vX2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9taW51cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NldC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NoaWZ0X3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3VucGFja19hcmdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hZHZhbmNlX2ZvcndhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FwcGx5X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iYXNpY19iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYml0YW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9kZXF1ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2dyZWF0ZXJfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbWFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3NoaWZ0X2xlZnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdGltZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3ZlY3Rvcl9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYWR2YW5jZV9iYWNrd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FkdmFuY2VfZm9yd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfd3JhcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FyZy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2Jhc2ljX2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYmluZF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRhbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpdHhvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2RlcXVlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZGl2aWRlcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZnVsbF9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9ncmVhdGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2luaGVyaXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGFtYmRhX25vX2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9sZXNzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGVzc19lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9saXN0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9tYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9taW51cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL21vZHVsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9ub3RfZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3BsYWNlaG9sZGVycy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3BsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3NldC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3NldF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2hpZnRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3NoaWZ0X3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdGVtcGxhdGVfYXJpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy90aW1lcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3VucGFja19hcmdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdmVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdmVjdG9yX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9kaXZpZGVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mdWxsX2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaW5oZXJpdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3F1b3RlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2hpZnRfcmlnaHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdW5wYWNrX2FyZ3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hZHZhbmNlX2ZvcndhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iYXNpY19iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYml0YW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9kZXF1ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2dyZWF0ZXJfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbWFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NoaWZ0X2xlZnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvdGltZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3ZlY3Rvcl9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYXBwbHlfd3JhcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGl2aWRlcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZnVsbF9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2luaGVyaXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGFtYmRhX25vX2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9taW51cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NldC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NoaWZ0X3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3VucGFja19hcmdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FkdmFuY2VfZm9yd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2Jhc2ljX2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaXRhbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2RlcXVlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbGVzc19lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9tYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9ub3RfZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3BsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2hpZnRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90aW1lcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9kaXZpZGVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mdWxsX2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaW5oZXJpdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3F1b3RlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvc2V0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvc2hpZnRfcmlnaHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdW5wYWNrX2FyZ3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9iYWNrd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FyZy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmluZF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdHhvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sZXNzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL21vZHVsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3BsYWNlaG9sZGVycy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3NldF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdGVtcGxhdGVfYXJpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvYWRkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZmF1bHRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9leHRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9maWx0ZXJfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcnRpYWxfc3BlY19wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JhbmdlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3N1Yi5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvdHVwbGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9iYWNrX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9mcm9udF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsX2JvZHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vc2VxdWVuY2Vfd3JhcHBlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9zaXplX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3RyYWl0c19sYW1iZGFfc3BlYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy90eXBlX3dyYXBwZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vdW53cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iYWNrX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYmFja19pbnNlcnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iZWdpbl9lbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYm9vbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYm9vbF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NsZWFyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9jbGVhcl9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NvbXBhcmlzb24uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NvbnRhaW5zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9jb250YWluc19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NvcHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2RlcmVmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9kaXN0YW5jZS5ocHAgXAorICBuZG5ib29zdC9tcGwvZGlzdGFuY2VfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9lbXB0eV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9maW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9maW5kX2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9mb2xkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9mb3JfZWFjaC5ocHAgXAorICBuZG5ib29zdC9tcGwvZnJvbnRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9mcm9udF9pbnNlcnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvaGFzX3h4eC5ocHAgXAorICBuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnNlcnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvaW50LmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvaW50ZWdyYWxfY190YWcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2lzX3BsYWNlaG9sZGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pc19zZXF1ZW5jZS5ocHAgXAorICBuZG5ib29zdC9tcGwvaXRlcl9mb2xkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pdGVyX2ZvbGRfaWYuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2l0ZXJhdG9yX3JhbmdlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pdGVyYXRvcl90YWdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xhbWJkYV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvbGltaXRzL2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpbWl0cy91bnJvbGxpbmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpbWl0cy92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9iZWdpbl9lbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9jbGVhci5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2VtcHR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2l0ZW0uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL251bWJlcmVkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL08xX3NpemUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wb3BfZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDEwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QyMC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MjBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDMwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDQwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3Q0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3Q1MC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NTBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3B1c2hfYmFjay5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3B1c2hfZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9zaXplLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vdGFnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDEwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QyMC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9saXN0MjBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9saXN0MzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDMwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDQwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3Q0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3Q1MC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9saXN0NTBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvbG9naWNhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvbG9uZy5ocHAgXAorICBuZG5ib29zdC9tcGwvbG9uZ19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9tdWx0aXBsaWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9uZWdhdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL25leHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL25leHRfcHJpb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL25vdC5ocHAgXAorICBuZG5ib29zdC9tcGwvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9udW1lcmljX2Nhc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL08xX3NpemUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL08xX3NpemVfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvcGFpci5ocHAgXAorICBuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9wb3BfYmFja19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3BvcF9mcm9udF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ByaW9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9wcm90ZWN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9wdXNoX2JhY2suaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3B1c2hfYmFja19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3B1c2hfZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3B1c2hfZnJvbnRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvcmVtb3ZlX2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9yZXZlcnNlX2ZvbGQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3NhbWVfYXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZy5ocHAgXAorICBuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvc2l6ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvc2l6ZV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3NpemVfdC5ocHAgXAorICBuZG5ib29zdC9tcGwvc2l6ZV90X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvdGFnLmhwcCBcCisgIG5kbmJvb3N0L21wbC90aW1lcy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2JhY2suaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2JlZ2luX2VuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vY2xlYXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2VtcHR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9mcm9udC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZW0uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9udW1iZXJlZC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vbnVtYmVyZWRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vTzFfc2l6ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2JhY2suaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3BvcF9mcm9udC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjEwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjIwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IyMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IzMC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMzBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yNDAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjQwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjUwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I1MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IyMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IzMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNDAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3I0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3I1MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjEwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjEwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMjBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IzMC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IzMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjQwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjQwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNTBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHVzaF9iYWNrLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wdXNoX2Zyb250LmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9zaXplLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy90YWcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ZlY3RvcjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZvaWQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZvaWRfZndkLmhwcCBcCisgIG5kbmJvb3N0L25leHRfcHJpb3IuaHBwIFwKKyAgbmRuYm9vc3Qvbm9uX3R5cGUuaHBwIFwKKyAgbmRuYm9vc3Qvbm9uY29weWFibGUuaHBwIFwKKyAgbmRuYm9vc3Qvbm9uZS5ocHAgXAorICBuZG5ib29zdC9ub25lX3QuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2JvdW5kcy5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY2FzdC5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVyc2lvbl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2NvbnZlcnRlci5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVydGVyX3BvbGljaWVzLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvYm91bmRzLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvY29udmVyc2lvbl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9jb252ZXJ0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9pbnRfZmxvYXRfbWl4dHVyZS5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2lzX3N1YnJhbmdlZC5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL21ldGEuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvb2xkX251bWVyaWNfY2FzdC5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2NvbW1vbi5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2xvbmdfbG9uZy5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3NpZ25fbWl4dHVyZS5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3VkdF9idWlsdGluX21peHR1cmUuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2ludF9mbG9hdF9taXh0dXJlX2VudW0uaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL251bWVyaWNfY2FzdF90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL3NpZ25fbWl4dHVyZV9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi91ZHRfYnVpbHRpbl9taXh0dXJlX2VudW0uaHBwIFwKKyAgbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWwuaHBwIFwKKyAgbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWxfZndkLmhwcCBcCisgIG5kbmJvb3N0L29wdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L3BvaW50ZWUuaHBwIFwKKyAgbmRuYm9vc3QvcG9pbnRlcl90b19vdGhlci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RldGFpbC9kaXZfYmFzZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvbW9kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL3N1Yi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZGF0YS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZWxlbS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvc2l6ZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tcGFyaXNvbi9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RlZHVjZV9kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9kbWMvd2hpbGUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2VkZy93aGlsZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvbXN2Yy93aGlsZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvd2hpbGUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9pZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2NoZWNrLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvZG1jL2F1dG9fcmVjLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfYmluYXJ5LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfdW5hcnkuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VtcHR5LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXNfd2l0aF9hX2RlZmF1bHQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2V4cHJfaWYuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaW50ZXJjZXB0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pZGVudGl0eS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaWYuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIxLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIyLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyNC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXI1LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2ZpbmlzaC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQxLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9yZXZlcnNlMS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9yZXZlcnNlNC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3Jsb2NhbC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9zZWxmLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3N0YXJ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2xvY2FsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vc2VsZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYXBwZW5kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9kbWMvZm9sZF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9mb2xkX3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2Zvcl9lYWNoX2kuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvcmV2ZXJzZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90cmFuc2Zvcm0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYW5kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2NvbXBsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL25vdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9vci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9wYXJlbi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfMm5kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfZnJvbV90by5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZG1jL2Zvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZWRnL2Zvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZm9yLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9tc3ZjL2Zvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtcy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtc193aXRoX2FfZGVmYXVsdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmcuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV90cmFpbGluZ19wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZm9yLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXRfZnJvbV90by5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2NhdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2RldGFpbC9zcGxpdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2VsZW0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZmlyc3Rfbi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZvbGRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2Zvcl9lYWNoLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9yX2VhY2hfaS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3Jlc3Rfbi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NlcS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NpemUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zdWJzZXEuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS90cmFuc2Zvcm0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2NvdW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2RlZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90MS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QzLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90NC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3Qvc2xvdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc3RyaW5naXplLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL3JlbS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvZWxlbS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHAgXAorICBuZG5ib29zdC9wcm9ncmVzcy5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9hbGdvcml0aG0vZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvYXNfbGl0ZXJhbC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9iZWdpbi5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9jb25jZXB0cy5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9jb25maWcuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvY29uc3RfaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2FzX2xpdGVyYWwuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2JlZ2luLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9jb21tb24uaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbnN0X2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9kZXRhaWxfc3RyLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9lbmQuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2V4dHJhY3Rfb3B0aW9uYWxfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvaW1wbGVtZW50YXRpb25faGVscC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL21pc2NfY29uY2VwdC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvcmVtb3ZlX2V4dGVudC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvc2FmZV9ib29sLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9zZmluYWUuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3NpemVfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvc3RyX3R5cGVzLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC92YWx1ZV90eXBlLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC92YzYvZW5kLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RpZmZlcmVuY2VfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kaXN0YW5jZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9lbXB0eS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9lbmQuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZnVuY3Rpb25zLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlX2NvcmUuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2VfaW8uaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvbXV0YWJsZV9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9yYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvcmVuZC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9yZXN1bHRfaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvcmV2ZXJzZV9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9zaXplLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL3NpemVfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS92YWx1ZV90eXBlLmhwcCBcCisgIG5kbmJvb3N0L3JlZi5ocHAgXAorICBuZG5ib29zdC9zY29wZWRfYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3Qvc2NvcGVkX3B0ci5ocHAgXAorICBuZG5ib29zdC9zaGFyZWRfYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3Qvc2hhcmVkX3B0ci5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvYWxsb2NhdGVfc2hhcmVkX2FycmF5LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9iYWRfd2Vha19wdHIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hbGxvY2F0ZV9hcnJheV9oZWxwZXIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV9kZWxldGVyLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9zeW5jLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3dpbjMyLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fbm9wLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3B0aHJlYWRzLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9vcGVyYXRvcl9ib29sLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvcXVpY2tfYWxsb2NhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2FycmF5X25tdC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9jb3VudC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9wdHJfbm10LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY29udmVydGlibGUuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2UuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWNjX2lhNjQuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWl4LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfaWE2NC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfbWlwcy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19zcGFyYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3B0LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NuY19wczMuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zeW5jLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3ZhY3BwX3BwYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV93MzIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaGFzX3N5bmMuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9pZl9hcnJheS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX251bGxwdHJfdC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX250LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3B0LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfc3luYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3czMi5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3lpZWxkX2suaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9hcnJheS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfb2JqZWN0LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9zY29wZWRfYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL3Njb3BlZF9wdHIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvd2Vha19wdHIuaHBwIFwKKyAgbmRuYm9vc3Qvc3RhdGljX2Fzc2VydC5ocHAgXAorICBuZG5ib29zdC9zd2FwLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvZGVidWcuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZWJ1Z19jb25maWcuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHAgXAorICBuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHAgXAorICBuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHAgXAorICBuZG5ib29zdC90ZXN0L2RldGFpbC9sb2dfbGV2ZWwuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvZmxvYXRpbmdfcG9pbnRfY29tcGFyaXNvbi5ocHAgXAorICBuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvY29tcGlsZXJfbG9nX2Zvcm1hdHRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvY3BwX21haW4uaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL2RlYnVnLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC9leGNlcHRpb25fc2FmZXR5LmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC9leGVjdXRpb25fbW9uaXRvci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvZnJhbWV3b3JrLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC9pbnRlcmFjdGlvbl9iYXNlZC5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvbG9nZ2VkX2V4cGVjdGF0aW9ucy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvcGxhaW5fcmVwb3J0X2Zvcm1hdHRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvcHJvZ3Jlc3NfbW9uaXRvci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvcmVzdWx0c19jb2xsZWN0b3IuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL3Jlc3VsdHNfcmVwb3J0ZXIuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL3Rlc3RfbWFpbi5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdGVzdF90b29scy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X2xvZy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X21haW4uaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9tb25pdG9yLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfcGFyYW1ldGVycy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3N1aXRlLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC94bWxfbG9nX2Zvcm1hdHRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbnRlcmFjdGlvbl9iYXNlZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L21pbmltYWwuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9tb2NrX29iamVjdC5ocHAgXAorICBuZG5ib29zdC90ZXN0L291dHB1dC9jb21waWxlcl9sb2dfZm9ybWF0dGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3Qvb3V0cHV0L3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX2xvZ19mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9vdXRwdXRfdGVzdF9zdHJlYW0uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9wcmVkaWNhdGVfcmVzdWx0LmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvcHJvZ3Jlc3NfbW9uaXRvci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3Jlc3VsdHNfY29sbGVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3Rlc3Rfb2JzZXJ2ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHAgXAorICBuZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9sb2dfZm9ybWF0dGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X21vbml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGUuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2FsZ29yaXRobS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Fzc2lnbl9vcC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZ19md2QuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jjc19jaGFyX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvY29tcGFyZS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9jYWxsYmFjay5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2NsYXNzX3Byb3BlcnRpZXMuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9jdXN0b21fbWFuaXAuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9maXhlZF9tYXBwaW5nLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvZm9yZWFjaC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL2lucHV0X2l0ZXJhdG9yX2ZhY2FkZS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL3Rva2VuX2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvbGF6eV9vc3RyZWFtLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvbmFtZWRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnR0aS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvYXJndW1lbnQuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd1bWVudF9mYWN0b3J5LmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd2X3RyYXZlcnNlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2Jhc2ljX3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2NoYXJfcGFyYW1ldGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9kZXRhaWwvYXJndW1lbnRfdmFsdWVfdXNhZ2UuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9kdWFsX25hbWVfcGFyYW1ldGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZHVhbF9uYW1lX3BhcmFtZXRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2Z3ZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lmYWNlL2FyZ3VtZW50X2ZhY3RvcnkuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZmFjZS9pZF9wb2xpY3kuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9tb2RpZmllci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3R5cGVkX3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWxpZGF0aW9uLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsdWVfZ2VuZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsdWVfaGFuZGxlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvZW52aXJvbm1lbnQuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9lbnZpcm9ubWVudC5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L2Z3ZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L21vZGlmaWVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvdmFyaWFibGUuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9wYXJhbWV0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3RyYWNlLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS92YWxpZGF0aW9uLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvdHJpdmlhbF9zaW5nbGV0b24uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy93cmFwX3N0cmluZ3N0cmVhbS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3htbF9wcmludGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHAgXAorICBuZG5ib29zdC90aW1lci5ocHAgXAorICBuZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWMuaHBwIFwKKyAgbmRuYm9vc3QvdHVwbGUvZGV0YWlsL3R1cGxlX2Jhc2ljX25vX3BhcnRpYWxfc3BlYy5ocHAgXAorICBuZG5ib29zdC90dXBsZS90dXBsZS5ocHAgXAorICBuZG5ib29zdC90eXBlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY3YuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcnZhbHVlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfdm9sYXRpbGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25lZF9zdG9yYWdlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hcml0aG1ldGljX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jb21tb25fdHlwZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jb21wb3NpdGVfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmRpdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jb252ZXJzaW9uX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jdl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGVjYXkuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jb21tb25fdHlwZV9pbXAuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2N2X3RyYWl0c19pbXBsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wb3N0Zml4X29wZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcHJlZml4X29wZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfZXEuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX2hlbHBlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX3Rlc3Rlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF9kZWYuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF91bmRlZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2V4dGVudC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9mbG9hdGluZ19wb2ludF9wcm9tb3Rpb24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZnVuY3Rpb25fdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfYW5kLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfYW5kX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfb3JfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfY29tcGxlbWVudC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZGVyZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXNfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVmdF9zaGlmdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVmdF9zaGlmdF9hc3NpZ24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xvZ2ljYWxfYW5kLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sb2dpY2FsX25vdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9vci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX21pbnVzX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1c19hc3NpZ24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX211bHRpcGxpZXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX211bHRpcGxpZXNfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19uZWdhdGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25ld19vcGVyYXRvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb25zdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb3B5LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Rlc3RydWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX29wZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wbHVzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wbHVzX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcG9zdF9kZWNyZW1lbnQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3Bvc3RfaW5jcmVtZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wcmVfZGVjcmVtZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wcmVfaW5jcmVtZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19yaWdodF9zaGlmdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcmlnaHRfc2hpZnRfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb25zdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb3B5LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3VuYXJ5X3BsdXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3ZpcnR1YWxfZGVzdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfY29uc3RhbnQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfcHJvbW90aW9uLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYWJzdHJhY3QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19iYXNlX2FuZF9kZXJpdmVkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Jhc2Vfb2YuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29tcGxleC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb21wb3VuZC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbXB0eS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0aW5nX3BvaW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmRhbWVudGFsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2ludGVncmFsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX29iamVjdF9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX29iamVjdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9pbnRlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2x5bW9ycGhpYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcnZhbHVlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zaWduZWQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc3RhdGVsZXNzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3VuaW9uLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3Vuc2lnbmVkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZpcnR1YWxfYmFzZV9vZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2Vfc2lnbmVkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2VfdW5zaWduZWQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYm91bmRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2NvbnN0LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2N2LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2V4dGVudC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV92b2xhdGlsZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9vYmplY3RfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL3Byb21vdGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmFuay5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2JvdW5kcy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY29uc3QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9leHRlbnQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfdm9sYXRpbGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvc2FtZV90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvdHJhbnNmb3JtX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9kbWMvdHlwZW9mX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGVfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9pbnRfZW5jb2RpbmcuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL2ludGVncmFsX3RlbXBsYXRlX3BhcmFtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9tZXNzYWdlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9tb2RpZmllcnMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL21zdmMvdHlwZW9mX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL25hdGl2ZS5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvcG9pbnRlcnNfZGF0YV9tZW1iZXJzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5jdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX2Z1bmN0aW9uc19pdGVyYXRlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5kYW1lbnRhbC5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfbWVtX2Z1bmN0aW9ucy5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvdGVtcGxhdGVfZW5jb2RpbmcuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3RlbXBsYXRlX3RlbXBsYXRlX3BhcmFtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi90eXBlX2VuY29kaW5nLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi90eXBlX3RlbXBsYXRlX3BhcmFtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi90eXBlb2YuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3R5cGVvZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi91bnN1cHBvcnRlZC5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvdmVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi92ZWN0b3IxMDAuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3ZlY3RvcjE1MC5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvdmVjdG9yMjAwLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi92ZWN0b3I1MC5ocHAgXAorICBuZG5ib29zdC91bml0cy9kZXRhaWwvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2FsbG9jYXRlLmhwcCBcCisgIG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvYnVja2V0cy5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2VxdWl2YWxlbnQuaHBwIFwKKyAgbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9leHRyYWN0X2tleS5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2Z3ZC5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3RhYmxlLmhwcCBcCisgIG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdW5pcXVlLmhwcCBcCisgIG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdXRpbC5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldC5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvdW5vcmRlcmVkX3NldC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2Jhc2VfZnJvbV9tZW1iZXIuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS9iaW5hcnkuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS9jb21wYXJlX3BvaW50ZWVzLmhwcCBcCisgIG5kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2RldGFpbC9pbl9wbGFjZV9mYWN0b3J5X3ByZWZpeC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2RldGFpbC9pbl9wbGFjZV9mYWN0b3J5X3N1ZmZpeC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2RldGFpbC9yZXN1bHRfb2ZfaXRlcmF0ZS5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2lkZW50aXR5X3R5cGUuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS9pbl9wbGFjZV9mYWN0b3J5LmhwcCBcCisgIG5kbmJvb3N0L3V0aWxpdHkvcmVzdWx0X29mLmhwcCBcCisgIG5kbmJvb3N0L3V0aWxpdHkvc3dhcC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L3ZhbHVlX2luaXQuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC92ZXJzaW9uLmhwcCBcCisgIG5kbmJvb3N0L3Zpc2l0X2VhY2guaHBwIFwKKyAgbmRuYm9vc3Qvd2Vha19wdHIuaHBwCisKK25vYmFzZV9pbmNsdWRlX0hFQURFUlMgPSAkKG5kbmJvb3N0X2ZpbGVzKSBcCisgIG5kbi1jcHAvbmRuLWNwcC1jb25maWcuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9NYWtlZmlsZS5pbiBiL2luY2x1ZGUvTWFrZWZpbGUuaW4KaW5kZXggZTJiYWNiZC4uZmMxMDJlZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9NYWtlZmlsZS5pbgorKysgYi9pbmNsdWRlL01ha2VmaWxlLmluCkBAIC0zMTksNyArMzE5LDE3NjMgQEAKICMgVGhlc2UgZmlsZXMgYXJlIGluY2x1ZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB3aXRoLCBmb3IgZXhhbXBsZQogIyAjaW5jbHVkZSA8bmRuLWNwcC9uYW1wLmhwcD4KICMgSW50ZXJuYWwgaW5jbHVkZSBoZWFkZXJzIGFyZSBub3QgcHV0IGluIHRoaXMgcHVibGljIGluc3RhbGwgZGlyZWN0b3J5Lgotbm9iYXNlX2luY2x1ZGVfSEVBREVSUyA9IG5kbi1jcHAvbmRuLWNwcC1jb25maWcuaAorbmRuYm9vc3RfZmlsZXMgPSBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29tcGFyZS5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmNlcHQuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25zdGFudHMuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXQuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXRfYWxsLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRfZm9ybWF0X3N0b3JlLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRlci5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvcmVwbGFjZV9zdG9yYWdlLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3NlcXVlbmNlLmhwcCBcCisgIG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3V0aWwuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9maW5kX2Zvcm1hdC5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2ZpbmRlci5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2Zvcm1hdHRlci5ocHAgXAorICBuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL3JlcGxhY2UuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9zZXF1ZW5jZV90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy95ZXNfbm9fdHlwZS5ocHAgXAorICBuZG5ib29zdC9hbGlnbmVkX3N0b3JhZ2UuaHBwIFwKKyAgbmRuYm9vc3QvYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3QvYXNzZXJ0LmhwcCBcCisgIG5kbmJvb3N0L2JpbmQvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L2JpbmQvYmluZF9jYy5ocHAgXAorICBuZG5ib29zdC9iaW5kL2JpbmRfbWYyX2NjLmhwcCBcCisgIG5kbmJvb3N0L2JpbmQvYmluZF9tZl9jYy5ocHAgXAorICBuZG5ib29zdC9iaW5kL2JpbmRfdGVtcGxhdGUuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9tYWtlX2FkYXB0YWJsZS5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbi5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbl9jYy5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHAgXAorICBuZG5ib29zdC9iaW5kL21lbV9mbl92dy5ocHAgXAorICBuZG5ib29zdC9iaW5kL3BsYWNlaG9sZGVycy5ocHAgXAorICBuZG5ib29zdC9iaW5kL3Byb3RlY3QuaHBwIFwKKyAgbmRuYm9vc3QvYmluZC9zdG9yYWdlLmhwcCBcCisgIG5kbmJvb3N0L2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvYmxhbmsuaHBwIFwKKyAgbmRuYm9vc3QvYmxhbmtfZndkLmhwcCBcCisgIG5kbmJvb3N0L2NhbGxfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L2NoZWNrZWRfZGVsZXRlLmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvYXNzZXJ0LmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JhY2t3YXJkX2NvbXBhdGliaWxpdHkuaHBwIFwKKyAgbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvYm9ybGFuZC5ocHAgXAorICBuZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X2RlZi5ocHAgXAorICBuZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X3VuZGVmLmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2dlbmVyYWwuaHBwIFwKKyAgbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvaGFzX2NvbnN0cmFpbnRzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL21zdmMuaHBwIFwKKyAgbmRuYm9vc3QvY29uY2VwdC91c2FnZS5ocHAgXAorICBuZG5ib29zdC9jb25jZXB0X2NoZWNrLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9wcmVmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvYWJpL21zdmNfcHJlZml4LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9hYmkvbXN2Y19zdWZmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2F1dG9fbGluay5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvYm9ybGFuZC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvY2xhbmcuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvZGVnZWFyLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21lYXUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NyYXkuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2RpZ2l0YWxtYXJzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9nY2MuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djY194bWwuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2dyZWVuaGlsbHMuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvaW50ZWwuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbWV0cm93ZXJrcy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9udmNjLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9wYXRoc2NhbGUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvc2dpX21pcHNwcm8uaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3N1bnByb19jYy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvY29tcGlsZXIvdmFjcHAuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3Zpc3VhbGMuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL25vX3RyMS9jbWF0aC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvbm9fdHIxL2NvbXBsZXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL25vX3RyMS9mdW5jdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9ub190cjEvbWVtb3J5LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYWl4LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9hbWlnYW9zLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9ic2QuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2N5Z3dpbi5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaHB1eC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaXJpeC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbGludXguaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL21hY29zLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9xbnhudG8uaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3NvbGFyaXMuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3N5bWJpYW4uaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Ztcy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vdnh3b3Jrcy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vd2luMzIuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9yZXF1aXJlc190aHJlYWRzLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zZWxlY3RfY29tcGlsZXJfY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zZWxlY3RfcGxhdGZvcm1fY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zZWxlY3Rfc3RkbGliX2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL2Rpbmt1bXdhcmUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjb21vLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbGliY3BwLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbGlic3RkY3BwMy5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL21vZGVuYS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL21zbC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL3JvZ3Vld2F2ZS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL3NnaS5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3RkbGliL3N0bHBvcnQuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi92YWNwcC5ocHAgXAorICBuZG5ib29zdC9jb25maWcvc3VmZml4LmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy91c2VyLmhwcCBcCisgIG5kbmJvb3N0L2NvbmZpZy93YXJuaW5nX2Rpc2FibGUuaHBwIFwKKyAgbmRuYm9vc3QvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L2NvbnRhaW5lci9jb250YWluZXJfZndkLmhwcCBcCisgIG5kbmJvb3N0L2NzdGRpbnQuaHBwIFwKKyAgbmRuYm9vc3QvY3N0ZGxpYi5ocHAgXAorICBuZG5ib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9iaW5hcnlfc2VhcmNoLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9jYWxsX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvY29udGFpbmVyX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvZW5kaWFuLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9mZW52LmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pbmRpcmVjdF90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvZGV0YWlsL2ludGVybG9ja2VkLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pc19mdW5jdGlvbl9yZWZfdGVzdGVyLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pc19pbmNyZW1lbnRhYmxlLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvbGNhc3RfcHJlY2lzaW9uLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvbGlnaHR3ZWlnaHRfdGVzdC5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvbm9fZXhjZXB0aW9uc19zdXBwb3J0LmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC9vYl9jYWxsX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9kZXRhaWwvcmVmZXJlbmNlX2NvbnRlbnQuaHBwIFwKKyAgbmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcCBcCisgIG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9jdXJyZW50X2V4Y2VwdGlvbl9jYXN0LmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvYXR0cmlidXRlX25vcmV0dXJuLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvZXJyb3JfaW5mb19pbXBsLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvdHlwZV9pbmZvLmhwcCBcCisgIG5kbmJvb3N0L2V4Y2VwdGlvbi9leGNlcHRpb24uaHBwIFwKKyAgbmRuYm9vc3QvZXhjZXB0aW9uL2dldF9lcnJvcl9pbmZvLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9mdW5jdGlvbl9pdGVyYXRlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9nZW5fbWF5YmVfaW5jbHVkZS5wbCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9wcm9sb2d1ZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMTAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24yLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb241LmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjcuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb244LmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uOS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9iYXNlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90eXBlb2YuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb24vZ2VuX2Z1bmN0aW9uX04ucGwgXAorICBuZG5ib29zdC9mdW5jdGlvbi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb21wb25lbnRzLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbmZpZy9jY19uYW1lcy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY29tcGlsZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NfdHJhbnNmb3JtLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8xLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvbWFzdGVyLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2FzX21wbF9zZXF1ZW5jZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MTBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MTBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MjBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MjBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NDBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NDBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NTBfMC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NTBfMS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL21hc3Rlci5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY3ZfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9hbGlhc2VzX2RlZi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc191bmRlZi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvZGVmLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy91bmRlZi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfYXJpdHlfbG9vcC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfY2NfbG9vcC9tYXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2NjX2xvb3AvcHJlcHJvY2Vzc2VkLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9sb29wLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9yZXRhZ19kZWZhdWx0X2NjL21hc3Rlci5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3RhZ3MvY2NfdGFnLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF90YWdzL21hc3Rlci5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9tYXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3JldGFnX2RlZmF1bHRfY2MuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemUuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTUwXzAuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTUwXzEuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9tYXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3RvX3NlcXVlbmNlLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2Z1bmN0aW9uX3R5cGUuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvaXNfY2FsbGFibGVfYnVpbHRpbi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbi5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbl9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2Z1bmN0aW9uX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wYXJhbWV0ZXJfdHlwZXMuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvcHJvcGVydHlfdGFncy5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9yZXN1bHRfdHlwZS5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbmFsL2hhc2gvaGFzaF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvZnVuY3Rpb25hbC9oYXNoX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9mdW5jdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L2dldF9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L2luZGlyZWN0X3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC9pbnRlZ2VyL3N0YXRpY19sb2cyLmhwcCBcCisgIG5kbmJvb3N0L2ludGVnZXIuaHBwIFwKKyAgbmRuYm9vc3QvaW50ZWdlcl9md2QuaHBwIFwKKyAgbmRuYm9vc3QvaW50ZWdlcl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfZW5kLmhwcCBcCisgIG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoLmhwcCBcCisgIG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbWVtb3J5X3V0aWwuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9tcGwuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9wcmVwcm9jZXNzb3IuaHBwIFwKKyAgbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC93b3JrYXJvdW5kLmhwcCBcCisgIG5kbmJvb3N0L2ludHJ1c2l2ZS9wb2ludGVyX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9pby9pb3Nfc3RhdGUuaHBwIFwKKyAgbmRuYm9vc3QvaW9fZndkLmhwcCBcCisgIG5kbmJvb3N0L2lzX3BsYWNlaG9sZGVyLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfdW5kZWYuaHBwIFwKKyAgbmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2VuYWJsZV9pZi5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvZmFjYWRlX2l0ZXJhdG9yX2NhdGVnb3J5LmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2ludGVyb3BlcmFibGUuaHBwIFwKKyAgbmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfYWRhcHRvci5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jYXRlZ29yaWVzLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2NvbmNlcHRzLmhwcCBcCisgIG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2ZhY2FkZS5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvaXRlcmF0b3IvcmV2ZXJzZV9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvYmluZC5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvY29yZS5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2FjdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9hcml0eV9jb2RlLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYmluZF9mdW5jdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9mdW5jdGlvbl9hZGFwdG9ycy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2lzX2luc3RhbmNlX29mLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV9mdW5jdG9yX2Jhc2UuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZnVuY3RvcnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZndkLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL21lbWJlcl9wdHIuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcl9hY3Rpb25zLmhwcCBcCisgIG5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JfbGFtYmRhX2Z1bmNfYmFzZS5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9yX3JldHVybl90eXBlX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9ycy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3JldC5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3JldHVybl90eXBlX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3NlbGVjdF9mdW5jdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvbGFtYmRhL2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9sZXhpY2FsX2Nhc3QuaHBwIFwKKyAgbmRuYm9vc3QvbGltaXRzLmhwcCBcCisgIG5kbmJvb3N0L21ha2Vfc2hhcmVkLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvcG9saWNpZXMvcG9saWN5LmhwcCBcCisgIG5kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZGV0YWlsL2ZwX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2RldGFpbC9yb3VuZF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9mcGNsYXNzaWZ5LmhwcCBcCisgIG5kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvbWF0aF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9zaWduLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvcHJvbW90aW9uLmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvcmVhbF9jYXN0LmhwcCBcCisgIG5kbmJvb3N0L21hdGgvdG9vbHMvdXNlci5ocHAgXAorICBuZG5ib29zdC9tZW1fZm4uaHBwIFwKKyAgbmRuYm9vc3QvbWVtb3J5X29yZGVyLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvYWxnb3JpdGhtLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvY29yZS5ocHAgXAorICBuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHAgXAorICBuZG5ib29zdC9tb3ZlL2RldGFpbC9tZXRhX3V0aWxzLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbW92ZS9tb3ZlLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L21vdmUvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYWR2YW5jZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYWR2YW5jZV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2Fsd2F5cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXBwbHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2FyZ19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2Fzc2VydC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F0X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hcmdfdHlwZWRlZi5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9hcml0aG1ldGljX29wLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2FyaXR5X3NwZWMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vYXRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9iZWdpbl9lbmRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jbGVhcl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbW1vbl9uYW1lX3drbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29tcGFyaXNvbl9vcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYWRsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9hcnJheXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2JjYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY29tcGlsZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2RtY19hbWJpZ3VvdXNfY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ZvcndhcmRpbmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaGFzX2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfeHh4LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaW50ZWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Y190eXBlbmFtZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvb3ZlcmxvYWRfcmVzb2x1dGlvbi5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHBfY291bnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R0cC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2NvbnRhaW5zX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vY291bnRfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9maW5kX2lmX3ByZWQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbF9ib2R5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2hhc19hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9oYXNfYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3JlYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9oYXNfc2l6ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9oYXNfdGFnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2hhc190eXBlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2luc2VydGVyX2FsZ29yaXRobS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2lzX21zdmNfZXRpX2FyZy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3BlYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sYXJnZXN0X2ludC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9sb2dpY2FsX29wLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL21zdmNfZHR3LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL21zdmNfZXRpX2Jhc2UuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19pc19jbGFzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX25ldmVyX3RydWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y190eXBlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL25hX2Fzc2VydC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9uYV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9uZXN0ZWRfdHlwZV93a25kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9udW1lcmljX2Nhc3RfdXRpbHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vbnVtZXJpY19vcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9PMV9zaXplX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9kaXZpZGVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9mdWxsX2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvaW5oZXJpdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3F1b3RlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2V0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2hpZnRfcmlnaHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvdW5wYWNrX2FyZ3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hZHZhbmNlX2ZvcndhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FwcGx5X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iYXNpY19iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYml0YW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9kZXF1ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2dyZWF0ZXJfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbWFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NoaWZ0X2xlZnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdGltZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvcl9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYXBwbHlfd3JhcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGl2aWRlcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZnVsbF9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2luaGVyaXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGFtYmRhX25vX2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9taW51cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NldC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NoaWZ0X3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3VucGFja19hcmdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hZHZhbmNlX2ZvcndhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FwcGx5X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iYXNpY19iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYml0YW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9kZXF1ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2dyZWF0ZXJfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbWFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3NoaWZ0X2xlZnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdGltZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3ZlY3Rvcl9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYWR2YW5jZV9iYWNrd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FkdmFuY2VfZm9yd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfd3JhcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FyZy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2Jhc2ljX2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYmluZF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRhbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpdHhvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2RlcXVlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZGl2aWRlcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZnVsbF9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9ncmVhdGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2luaGVyaXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGFtYmRhX25vX2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9sZXNzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGVzc19lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9saXN0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9tYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9taW51cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL21vZHVsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9ub3RfZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3BsYWNlaG9sZGVycy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3BsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3NldC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3NldF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2hpZnRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3NoaWZ0X3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdGVtcGxhdGVfYXJpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy90aW1lcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3VucGFja19hcmdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdmVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdmVjdG9yX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9kaXZpZGVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mdWxsX2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaW5oZXJpdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3F1b3RlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2hpZnRfcmlnaHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdW5wYWNrX2FyZ3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hZHZhbmNlX2ZvcndhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iYXNpY19iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYml0YW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9kZXF1ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2dyZWF0ZXJfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbWFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NoaWZ0X2xlZnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvdGltZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3ZlY3Rvcl9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FkdmFuY2VfYmFja3dhcmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYXBwbHlfd3JhcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXR4b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGl2aWRlcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZnVsbF9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2luaGVyaXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGFtYmRhX25vX2N0cHMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGVzcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGlzdF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9taW51cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9tb2R1bHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9wbGFjZWhvbGRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NldC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zZXRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NoaWZ0X3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3RlbXBsYXRlX2FyaXR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3VucGFja19hcmdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3ZlY3Rvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FkdmFuY2VfZm9yd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2Jhc2ljX2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaXRhbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2RlcXVlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbGVzc19lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9tYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9ub3RfZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3BsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2hpZnRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90aW1lcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hZHZhbmNlX2JhY2t3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcHBseV93cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXJnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYml0eG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9kaXZpZGVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZXF1YWxfdG8uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mdWxsX2xhbWJkYS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2dyZWF0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaW5oZXJpdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sYW1iZGFfbm9fY3Rwcy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xpc3RfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL29yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3F1b3RlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvc2V0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvc2V0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvc2hpZnRfcmlnaHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC90ZW1wbGF0ZV9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdW5wYWNrX2FyZ3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9iYWNrd2FyZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FwcGx5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcHBseV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FwcGx5X3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FyZy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmFzaWNfYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmluZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmluZF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdHhvci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZGVxdWUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2Z1bGxfbGFtYmRhLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pbmhlcml0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vaXRlcl9mb2xkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xhbWJkYV9ub19jdHBzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sZXNzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0X2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL21hcC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL21vZHVsdXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL25vdF9lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3BsYWNlaG9sZGVycy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcGx1cy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcXVvdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zZXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3NldF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zaGlmdF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zaGlmdF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdGVtcGxhdGVfYXJpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3RpbWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi91bnBhY2tfYXJncy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3JfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvYWRkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZmF1bHRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9leHRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9maWx0ZXJfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcnRpYWxfc3BlY19wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JhbmdlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3N1Yi5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvdHVwbGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9iYWNrX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9mcm9udF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsX2JvZHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vc2VxdWVuY2Vfd3JhcHBlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy9zaXplX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3RyYWl0c19sYW1iZGFfc3BlYy5ocHAgXAorICBuZG5ib29zdC9tcGwvYXV4Xy90eXBlX3dyYXBwZXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8vdW53cmFwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iYWNrX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYmFja19pbnNlcnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iZWdpbl9lbmRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iaW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvYm9vbC5ocHAgXAorICBuZG5ib29zdC9tcGwvYm9vbF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NsZWFyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9jbGVhcl9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NvbXBhcmlzb24uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NvbnRhaW5zLmhwcCBcCisgIG5kbmJvb3N0L21wbC9jb250YWluc19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2NvcHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2RlcmVmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9kaXN0YW5jZS5ocHAgXAorICBuZG5ib29zdC9tcGwvZGlzdGFuY2VfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9lbXB0eV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9maW5kLmhwcCBcCisgIG5kbmJvb3N0L21wbC9maW5kX2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9mb2xkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9mb3JfZWFjaC5ocHAgXAorICBuZG5ib29zdC9tcGwvZnJvbnRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9mcm9udF9pbnNlcnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvaGFzX3h4eC5ocHAgXAorICBuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnNlcnRlci5ocHAgXAorICBuZG5ib29zdC9tcGwvaW50LmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvaW50ZWdyYWxfY190YWcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2lzX3BsYWNlaG9sZGVyLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pc19zZXF1ZW5jZS5ocHAgXAorICBuZG5ib29zdC9tcGwvaXRlcl9mb2xkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pdGVyX2ZvbGRfaWYuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2l0ZXJhdG9yX3JhbmdlLmhwcCBcCisgIG5kbmJvb3N0L21wbC9pdGVyYXRvcl90YWdzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9sYW1iZGEuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xhbWJkYV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHAgXAorICBuZG5ib29zdC9tcGwvbGltaXRzL2xpc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpbWl0cy91bnJvbGxpbmcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpbWl0cy92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9iZWdpbl9lbmQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9jbGVhci5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2VtcHR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2l0ZW0uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL251bWJlcmVkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL08xX3NpemUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wb3BfZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDEwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QyMC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MjBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDMwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDQwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3Q0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3Q1MC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NTBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3B1c2hfYmFjay5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3B1c2hfZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9zaXplLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2F1eF8vdGFnLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDEwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3QyMC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9saXN0MjBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9saXN0MzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDMwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDQwLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3Q0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC9saXN0L2xpc3Q1MC5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC9saXN0NTBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvbGlzdC5ocHAgXAorICBuZG5ib29zdC9tcGwvbG9naWNhbC5ocHAgXAorICBuZG5ib29zdC9tcGwvbG9uZy5ocHAgXAorICBuZG5ib29zdC9tcGwvbG9uZ19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL21pbnVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9tdWx0aXBsaWVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9uZWdhdGUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL25leHQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL25leHRfcHJpb3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL25vdC5ocHAgXAorICBuZG5ib29zdC9tcGwvbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L21wbC9udW1lcmljX2Nhc3QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL08xX3NpemUuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL08xX3NpemVfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9vci5ocHAgXAorICBuZG5ib29zdC9tcGwvcGFpci5ocHAgXAorICBuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9wbHVzLmhwcCBcCisgIG5kbmJvb3N0L21wbC9wb3BfYmFja19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3BvcF9mcm9udF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ByaW9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC9wcm90ZWN0LmhwcCBcCisgIG5kbmJvb3N0L21wbC9wdXNoX2JhY2suaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3B1c2hfYmFja19md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3B1c2hfZnJvbnQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3B1c2hfZnJvbnRfZndkLmhwcCBcCisgIG5kbmJvb3N0L21wbC9xdW90ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvcmVtb3ZlX2lmLmhwcCBcCisgIG5kbmJvb3N0L21wbC9yZXZlcnNlX2ZvbGQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3NhbWVfYXMuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZy5ocHAgXAorICBuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnX2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvc2l6ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvc2l6ZV9md2QuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3NpemVfdC5ocHAgXAorICBuZG5ib29zdC9tcGwvc2l6ZV90X2Z3ZC5ocHAgXAorICBuZG5ib29zdC9tcGwvdGFnLmhwcCBcCisgIG5kbmJvb3N0L21wbC90aW1lcy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYXQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2JhY2suaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2JlZ2luX2VuZC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vY2xlYXIuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2VtcHR5LmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9mcm9udC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZW0uaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9udW1iZXJlZC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vbnVtYmVyZWRfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vTzFfc2l6ZS5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2JhY2suaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3BvcF9mcm9udC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjEwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjIwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IyMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IzMC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMzBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yNDAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjQwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjUwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I1MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IyMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IzMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNDAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3I0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3I1MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjEwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjEwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMjBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IzMC5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IzMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjQwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjQwX2MuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNTBfYy5ocHAgXAorICBuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHVzaF9iYWNrLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wdXNoX2Zyb250LmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9zaXplLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy90YWcuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ZlY3RvcjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IwLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNTAuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MF9jLmhwcCBcCisgIG5kbmJvb3N0L21wbC92ZWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZvaWQuaHBwIFwKKyAgbmRuYm9vc3QvbXBsL3ZvaWRfZndkLmhwcCBcCisgIG5kbmJvb3N0L25leHRfcHJpb3IuaHBwIFwKKyAgbmRuYm9vc3Qvbm9uX3R5cGUuaHBwIFwKKyAgbmRuYm9vc3Qvbm9uY29weWFibGUuaHBwIFwKKyAgbmRuYm9vc3Qvbm9uZS5ocHAgXAorICBuZG5ib29zdC9ub25lX3QuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2JvdW5kcy5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY2FzdC5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVyc2lvbl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2NvbnZlcnRlci5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVydGVyX3BvbGljaWVzLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvYm91bmRzLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvY29udmVyc2lvbl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9jb252ZXJ0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9pbnRfZmxvYXRfbWl4dHVyZS5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2lzX3N1YnJhbmdlZC5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL21ldGEuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvb2xkX251bWVyaWNfY2FzdC5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2NvbW1vbi5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2xvbmdfbG9uZy5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3NpZ25fbWl4dHVyZS5ocHAgXAorICBuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3VkdF9idWlsdGluX21peHR1cmUuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2ludF9mbG9hdF9taXh0dXJlX2VudW0uaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL251bWVyaWNfY2FzdF90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL3NpZ25fbWl4dHVyZV9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi91ZHRfYnVpbHRpbl9taXh0dXJlX2VudW0uaHBwIFwKKyAgbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWwuaHBwIFwKKyAgbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWxfZndkLmhwcCBcCisgIG5kbmJvb3N0L29wdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L3BvaW50ZWUuaHBwIFwKKyAgbmRuYm9vc3QvcG9pbnRlcl90b19vdGhlci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RldGFpbC9kaXZfYmFzZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvbW9kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL3N1Yi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZGF0YS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZWxlbS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvc2l6ZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tcGFyaXNvbi9sZXNzX2VxdWFsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RlZHVjZV9kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9kbWMvd2hpbGUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2VkZy93aGlsZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvbXN2Yy93aGlsZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvd2hpbGUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9pZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2NoZWNrLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvZG1jL2F1dG9fcmVjLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfYmluYXJ5LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfdW5hcnkuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VtcHR5LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXNfd2l0aF9hX2RlZmF1bHQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2V4cHJfaWYuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaW50ZXJjZXB0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pZGVudGl0eS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaWYuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIxLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIyLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyNC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXI1LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2ZpbmlzaC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQxLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9yZXZlcnNlMS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9yZXZlcnNlNC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3Jsb2NhbC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9zZWxmLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3N0YXJ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2xvY2FsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vc2VsZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYXBwZW5kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9kbWMvZm9sZF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9yaWdodC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9sZWZ0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9mb2xkX3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2Zvcl9lYWNoX2kuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvcmV2ZXJzZS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90cmFuc2Zvcm0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYW5kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2JpdGFuZC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2NvbXBsLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL25vdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9vci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9wYXJlbi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfMm5kLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfZnJvbV90by5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZG1jL2Zvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZWRnL2Zvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZm9yLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9tc3ZjL2Zvci5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtcy5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtc193aXRoX2FfZGVmYXVsdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmcuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV90cmFpbGluZ19wYXJhbXMuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZm9yLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXRfZnJvbV90by5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2NhdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2RldGFpbC9zcGxpdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2VsZW0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZmlyc3Rfbi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZvbGRfbGVmdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2Zvcl9lYWNoLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9yX2VhY2hfaS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3Jlc3Rfbi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NlcS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NpemUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zdWJzZXEuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS90cmFuc2Zvcm0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2NvdW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2RlZi5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90MS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDIuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QzLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90NC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDUuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3Qvc2xvdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc3RyaW5naXplLmhwcCBcCisgIG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwIFwKKyAgbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL3JlbS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvZWxlbS5ocHAgXAorICBuZG5ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHAgXAorICBuZG5ib29zdC9wcm9ncmVzcy5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9hbGdvcml0aG0vZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvYXNfbGl0ZXJhbC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9iZWdpbi5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9jb25jZXB0cy5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9jb25maWcuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvY29uc3RfaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2FzX2xpdGVyYWwuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2JlZ2luLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9jb21tb24uaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbnN0X2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9kZXRhaWxfc3RyLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9lbmQuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2V4dHJhY3Rfb3B0aW9uYWxfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvaW1wbGVtZW50YXRpb25faGVscC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL21pc2NfY29uY2VwdC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvcmVtb3ZlX2V4dGVudC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvc2FmZV9ib29sLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC9zZmluYWUuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3NpemVfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kZXRhaWwvc3RyX3R5cGVzLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC92YWx1ZV90eXBlLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RldGFpbC92YzYvZW5kLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2RpZmZlcmVuY2VfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9kaXN0YW5jZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9lbXB0eS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9lbmQuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvZnVuY3Rpb25zLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlX2NvcmUuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2VfaW8uaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvbXV0YWJsZV9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9yYmVnaW4uaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvcmVuZC5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9yZXN1bHRfaXRlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvcmFuZ2UvcmV2ZXJzZV9pdGVyYXRvci5ocHAgXAorICBuZG5ib29zdC9yYW5nZS9zaXplLmhwcCBcCisgIG5kbmJvb3N0L3JhbmdlL3NpemVfdHlwZS5ocHAgXAorICBuZG5ib29zdC9yYW5nZS92YWx1ZV90eXBlLmhwcCBcCisgIG5kbmJvb3N0L3JlZi5ocHAgXAorICBuZG5ib29zdC9zY29wZWRfYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3Qvc2NvcGVkX3B0ci5ocHAgXAorICBuZG5ib29zdC9zaGFyZWRfYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3Qvc2hhcmVkX3B0ci5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvYWxsb2NhdGVfc2hhcmVkX2FycmF5LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9iYWRfd2Vha19wdHIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hbGxvY2F0ZV9hcnJheV9oZWxwZXIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV9kZWxldGVyLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9zeW5jLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3dpbjMyLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fbm9wLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3B0aHJlYWRzLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9vcGVyYXRvcl9ib29sLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvcXVpY2tfYWxsb2NhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2FycmF5X25tdC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9jb3VudC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9wdHJfbm10LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY29udmVydGlibGUuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2UuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWNjX2lhNjQuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWl4LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfaWE2NC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfbWlwcy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19zcGFyYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3B0LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NuY19wczMuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zeW5jLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3ZhY3BwX3BwYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV93MzIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9mb3J3YXJkLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaGFzX3N5bmMuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9pZl9hcnJheS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX251bGxwdHJfdC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX250LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3B0LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfc3luYy5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3czMi5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3lpZWxkX2suaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9hcnJheS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfb2JqZWN0LmhwcCBcCisgIG5kbmJvb3N0L3NtYXJ0X3B0ci9zY29wZWRfYXJyYXkuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL3Njb3BlZF9wdHIuaHBwIFwKKyAgbmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHAgXAorICBuZG5ib29zdC9zbWFydF9wdHIvd2Vha19wdHIuaHBwIFwKKyAgbmRuYm9vc3Qvc3RhdGljX2Fzc2VydC5ocHAgXAorICBuZG5ib29zdC9zd2FwLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvZGVidWcuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZWJ1Z19jb25maWcuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHAgXAorICBuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHAgXAorICBuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHAgXAorICBuZG5ib29zdC90ZXN0L2RldGFpbC9sb2dfbGV2ZWwuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvZmxvYXRpbmdfcG9pbnRfY29tcGFyaXNvbi5ocHAgXAorICBuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvY29tcGlsZXJfbG9nX2Zvcm1hdHRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvY3BwX21haW4uaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL2RlYnVnLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC9leGNlcHRpb25fc2FmZXR5LmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC9leGVjdXRpb25fbW9uaXRvci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvZnJhbWV3b3JrLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC9pbnRlcmFjdGlvbl9iYXNlZC5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvbG9nZ2VkX2V4cGVjdGF0aW9ucy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvcGxhaW5fcmVwb3J0X2Zvcm1hdHRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvcHJvZ3Jlc3NfbW9uaXRvci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvcmVzdWx0c19jb2xsZWN0b3IuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL3Jlc3VsdHNfcmVwb3J0ZXIuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL3Rlc3RfbWFpbi5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdGVzdF90b29scy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X2xvZy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X21haW4uaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9tb25pdG9yLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfcGFyYW1ldGVycy5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3N1aXRlLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvaW1wbC94bWxfbG9nX2Zvcm1hdHRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L2ltcGwveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC9pbnRlcmFjdGlvbl9iYXNlZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L21pbmltYWwuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9tb2NrX29iamVjdC5ocHAgXAorICBuZG5ib29zdC90ZXN0L291dHB1dC9jb21waWxlcl9sb2dfZm9ybWF0dGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3Qvb3V0cHV0L3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX2xvZ19mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9vdXRwdXRfdGVzdF9zdHJlYW0uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC9wcmVkaWNhdGVfcmVzdWx0LmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvcHJvZ3Jlc3NfbW9uaXRvci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3Jlc3VsdHNfY29sbGVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3Rlc3Rfb2JzZXJ2ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHAgXAorICBuZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9sb2dfZm9ybWF0dGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X21vbml0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGUuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2FsZ29yaXRobS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Fzc2lnbl9vcC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZ19md2QuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jjc19jaGFyX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvY29tcGFyZS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9jYWxsYmFjay5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2NsYXNzX3Byb3BlcnRpZXMuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9jdXN0b21fbWFuaXAuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9maXhlZF9tYXBwaW5nLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvZm9yZWFjaC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL2lucHV0X2l0ZXJhdG9yX2ZhY2FkZS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL3Rva2VuX2l0ZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvbGF6eV9vc3RyZWFtLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvbmFtZWRfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnR0aS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvYXJndW1lbnQuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd1bWVudF9mYWN0b3J5LmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd2X3RyYXZlcnNlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2Jhc2ljX3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2NoYXJfcGFyYW1ldGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaXBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9kZXRhaWwvYXJndW1lbnRfdmFsdWVfdXNhZ2UuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9kdWFsX25hbWVfcGFyYW1ldGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZHVhbF9uYW1lX3BhcmFtZXRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2Z3ZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lmYWNlL2FyZ3VtZW50X2ZhY3RvcnkuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZmFjZS9pZF9wb2xpY3kuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9tb2RpZmllci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3R5cGVkX3BhcmFtZXRlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWxpZGF0aW9uLmlwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsdWVfZ2VuZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsdWVfaGFuZGxlci5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvZW52aXJvbm1lbnQuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9lbnZpcm9ubWVudC5pcHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L2Z3ZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L21vZGlmaWVyLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvdmFyaWFibGUuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9wYXJhbWV0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3RyYWNlLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS92YWxpZGF0aW9uLmhwcCBcCisgIG5kbmJvb3N0L3Rlc3QvdXRpbHMvdHJpdmlhbF9zaW5nbGV0b24uaHBwIFwKKyAgbmRuYm9vc3QvdGVzdC91dGlscy93cmFwX3N0cmluZ3N0cmVhbS5ocHAgXAorICBuZG5ib29zdC90ZXN0L3V0aWxzL3htbF9wcmludGVyLmhwcCBcCisgIG5kbmJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHAgXAorICBuZG5ib29zdC90aW1lci5ocHAgXAorICBuZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWMuaHBwIFwKKyAgbmRuYm9vc3QvdHVwbGUvZGV0YWlsL3R1cGxlX2Jhc2ljX25vX3BhcnRpYWxfc3BlYy5ocHAgXAorICBuZG5ib29zdC90dXBsZS90dXBsZS5ocHAgXAorICBuZG5ib29zdC90eXBlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY3YuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcnZhbHVlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfdm9sYXRpbGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25lZF9zdG9yYWdlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9hcml0aG1ldGljX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jb21tb25fdHlwZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jb21wb3NpdGVfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmRpdGlvbmFsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jb252ZXJzaW9uX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9jdl90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGVjYXkuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jb21tb25fdHlwZV9pbXAuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2N2X3RyYWl0c19pbXBsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wb3N0Zml4X29wZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcHJlZml4X29wZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfZXEuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX2hlbHBlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX3Rlc3Rlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF9kZWYuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF91bmRlZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2V4dGVudC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9mbG9hdGluZ19wb2ludF9wcm9tb3Rpb24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvZnVuY3Rpb25fdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfYW5kLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfYW5kX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfb3JfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfY29tcGxlbWVudC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZGVyZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXNfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19lcXVhbF90by5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlcl9lcXVhbC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVmdF9zaGlmdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVmdF9zaGlmdF9hc3NpZ24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlc3MuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlc3NfZXF1YWwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xvZ2ljYWxfYW5kLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sb2dpY2FsX25vdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9vci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX21pbnVzX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1c19hc3NpZ24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX211bHRpcGxpZXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX211bHRpcGxpZXNfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19uZWdhdGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25ld19vcGVyYXRvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90X2VxdWFsX3RvLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb25zdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb3B5LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Rlc3RydWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX29wZXJhdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wbHVzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wbHVzX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcG9zdF9kZWNyZW1lbnQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3Bvc3RfaW5jcmVtZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wcmVfZGVjcmVtZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wcmVfaW5jcmVtZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19yaWdodF9zaGlmdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcmlnaHRfc2hpZnRfYXNzaWduLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Fzc2lnbi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb25zdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb3B5LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24uaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfbWludXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3VuYXJ5X3BsdXMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3ZpcnR1YWxfZGVzdHJ1Y3Rvci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfY29uc3RhbnQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfcHJvbW90aW9uLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYWJzdHJhY3QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19iYXNlX2FuZF9kZXJpdmVkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Jhc2Vfb2YuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29tcGxleC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb21wb3VuZC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbXB0eS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0aW5nX3BvaW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmRhbWVudGFsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2ludGVncmFsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX29iamVjdF9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX29iamVjdC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9pbnRlci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2x5bW9ycGhpYy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcnZhbHVlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zaWduZWQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc3RhdGVsZXNzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3VuaW9uLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3Vuc2lnbmVkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZpcnR1YWxfYmFzZV9vZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2Vfc2lnbmVkLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2VfdW5zaWduZWQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYm91bmRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2NvbnN0LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2N2LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2V4dGVudC5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9wb2ludGVyLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV92b2xhdGlsZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9vYmplY3RfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL3Byb21vdGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmFuay5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2JvdW5kcy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY29uc3QuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9leHRlbnQuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfdm9sYXRpbGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvc2FtZV90cmFpdHMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZV90cmFpdHMvdHJhbnNmb3JtX3RyYWl0cy5ocHAgXAorICBuZG5ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcCBcCisgIG5kbmJvb3N0L3R5cGVfdHJhaXRzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9kbWMvdHlwZW9mX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGUuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGVfcGFyYW1zLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9pbnRfZW5jb2RpbmcuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL2ludGVncmFsX3RlbXBsYXRlX3BhcmFtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9tZXNzYWdlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9tb2RpZmllcnMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL21zdmMvdHlwZW9mX2ltcGwuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL25hdGl2ZS5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvcG9pbnRlcnNfZGF0YV9tZW1iZXJzLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5jdGlvbnMuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX2Z1bmN0aW9uc19pdGVyYXRlLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5kYW1lbnRhbC5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfbWVtX2Z1bmN0aW9ucy5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvdGVtcGxhdGVfZW5jb2RpbmcuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3RlbXBsYXRlX3RlbXBsYXRlX3BhcmFtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi90eXBlX2VuY29kaW5nLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi90eXBlX3RlbXBsYXRlX3BhcmFtLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi90eXBlb2YuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3R5cGVvZl9pbXBsLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi91bnN1cHBvcnRlZC5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvdmVjdG9yLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi92ZWN0b3IxMDAuaHBwIFwKKyAgbmRuYm9vc3QvdHlwZW9mL3ZlY3RvcjE1MC5ocHAgXAorICBuZG5ib29zdC90eXBlb2YvdmVjdG9yMjAwLmhwcCBcCisgIG5kbmJvb3N0L3R5cGVvZi92ZWN0b3I1MC5ocHAgXAorICBuZG5ib29zdC91bml0cy9kZXRhaWwvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2FsbG9jYXRlLmhwcCBcCisgIG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvYnVja2V0cy5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2VxdWl2YWxlbnQuaHBwIFwKKyAgbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9leHRyYWN0X2tleS5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2Z3ZC5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3RhYmxlLmhwcCBcCisgIG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdW5pcXVlLmhwcCBcCisgIG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdXRpbC5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldC5ocHAgXAorICBuZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldF9md2QuaHBwIFwKKyAgbmRuYm9vc3QvdW5vcmRlcmVkX3NldC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2Jhc2VfZnJvbV9tZW1iZXIuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS9iaW5hcnkuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS9jb21wYXJlX3BvaW50ZWVzLmhwcCBcCisgIG5kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2RldGFpbC9pbl9wbGFjZV9mYWN0b3J5X3ByZWZpeC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2RldGFpbC9pbl9wbGFjZV9mYWN0b3J5X3N1ZmZpeC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2RldGFpbC9yZXN1bHRfb2ZfaXRlcmF0ZS5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L2lkZW50aXR5X3R5cGUuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS9pbl9wbGFjZV9mYWN0b3J5LmhwcCBcCisgIG5kbmJvb3N0L3V0aWxpdHkvcmVzdWx0X29mLmhwcCBcCisgIG5kbmJvb3N0L3V0aWxpdHkvc3dhcC5ocHAgXAorICBuZG5ib29zdC91dGlsaXR5L3ZhbHVlX2luaXQuaHBwIFwKKyAgbmRuYm9vc3QvdXRpbGl0eS5ocHAgXAorICBuZG5ib29zdC92ZXJzaW9uLmhwcCBcCisgIG5kbmJvb3N0L3Zpc2l0X2VhY2guaHBwIFwKKyAgbmRuYm9vc3Qvd2Vha19wdHIuaHBwCisKK25vYmFzZV9pbmNsdWRlX0hFQURFUlMgPSAkKG5kbmJvb3N0X2ZpbGVzKSBcCisgIG5kbi1jcHAvbmRuLWNwcC1jb25maWcuaAorCiBhbGw6IGNvbmZpZy5oCiAJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYWxsLWFtCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb21wYXJlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb21wYXJlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTYzMTIwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbXBhcmUuaHBwCkBAIC0wLDAgKzEsMTk5IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBjb21wYXJlLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgUGF2b2wgRHJvYmEgMjAwMi0yMDA2LgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy8gZm9yIHVwZGF0ZXMsIGRvY3VtZW50YXRpb24sIGFuZCByZXZpc2lvbiBoaXN0b3J5LgorCisjaWZuZGVmIEJPT1NUX1NUUklOR19DT01QQVJFX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfQ09NUEFSRV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxsb2NhbGU+CisKKy8qISBcZmlsZQorICAgIERlZmluZXMgZWxlbWVudCBjb21wYXJpc29uIHByZWRpY2F0ZXMuIE1hbnkgYWxnb3JpdGhtcyBpbiB0aGlzIGxpYnJhcnkgY2FuCisgICAgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdpdGggYSBwcmVkaWNhdGUgdXNlZCB0byBjb21wYXJlIGVsZW1lbnRzLgorICAgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUsIGZvciBpbnN0YW5jZSwgdG8gaGF2ZSBjYXNlIGluc2Vuc2l0aXZlIHZlcnNpb25zCisgICAgb2YgdGhlIGFsZ29yaXRobXMuCisqLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworCisgICAgICAgIC8vICBpc19lcXVhbCBmdW5jdG9yICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIGlzX2VxdWFsIGZ1bmN0b3IKKyAgICAgICAgLyohCisgICAgICAgICAgICBTdGFuZGFyZCBTVEwgZXF1YWxfdG8gb25seSBoYW5kbGUgY29tcGFyaXNvbiBiZXR3ZWVuIGFyZ3VtZW50cworICAgICAgICAgICAgb2YgdGhlIHNhbWUgdHlwZS4gVGhpcyBpcyBhIGxlc3MgcmVzdHJpY3RpdmUgdmVyc2lvbiB3aGljaCB3cmFwcyBvcGVyYXRvciA9PS4KKyAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IGlzX2VxdWFsCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vISBGdW5jdGlvbiBvcGVyYXRvcgorICAgICAgICAgICAgLyohCisgICAgICAgICAgICAgICAgQ29tcGFyZSB0d28gb3BlcmFuZHMgZm9yIGVxdWFsaXR5CisgICAgICAgICAgICAqLworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+CisgICAgICAgICAgICAgICAgYm9vbCBvcGVyYXRvcigpKCBjb25zdCBUMSYgQXJnMSwgY29uc3QgVDImIEFyZzIgKSBjb25zdAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBBcmcxPT1BcmcyOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIC8vISBjYXNlIGluc2Vuc2l0aXZlIHZlcnNpb24gb2YgaXNfZXF1YWwKKyAgICAgICAgLyohCisgICAgICAgICAgICBDYXNlIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24gcHJlZGljYXRlLiBDb21wYXJpc29uIGlzIGRvbmUgdXNpbmcKKyAgICAgICAgICAgIHNwZWNpZmllZCBsb2NhbGVzLgorICAgICAgICAqLworICAgICAgICBzdHJ1Y3QgaXNfaWVxdWFsCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vISBDb25zdHJ1Y3RvcgorICAgICAgICAgICAgLyohCisgICAgICAgICAgICAgICAgXHBhcmFtIExvYyBsb2NhbGVzIHVzZWQgZm9yIGNvbXBhcmlzb24KKyAgICAgICAgICAgICovCisgICAgICAgICAgICBpc19pZXF1YWwoIGNvbnN0IHN0ZDo6bG9jYWxlJiBMb2M9c3RkOjpsb2NhbGUoKSApIDoKKyAgICAgICAgICAgICAgICBtX0xvYyggTG9jICkge30KKworICAgICAgICAgICAgLy8hIEZ1bmN0aW9uIG9wZXJhdG9yCisgICAgICAgICAgICAvKiEKKyAgICAgICAgICAgICAgICBDb21wYXJlIHR3byBvcGVyYW5kcy4gQ2FzZSBpcyBpZ25vcmVkLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPgorICAgICAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IoKSggY29uc3QgVDEmIEFyZzEsIGNvbnN0IFQyJiBBcmcyICkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPj0gMHg1NjApICYmIChfX0JPUkxBTkRDX18gPD0gMHg1NjQpICYmICFkZWZpbmVkKF9VU0VfT0xEX1JXX1NUTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dG91cHBlcihBcmcxKT09c3RkOjp0b3VwcGVyKEFyZzIpOworICAgICAgICAgICAgICAgICNlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnRvdXBwZXI8VDE+KEFyZzEsbV9Mb2MpPT1zdGQ6OnRvdXBwZXI8VDI+KEFyZzIsbV9Mb2MpOworICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgfQorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBzdGQ6OmxvY2FsZSBtX0xvYzsKKyAgICAgICAgfTsKKworICAgICAgICAvLyAgaXNfbGVzcyBmdW5jdG9yICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIGlzX2xlc3MgZnVuY3RvcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnZlbmllbnQgdmVyc2lvbiBvZiBzdGFuZGFyZCBzdGQ6Omxlc3MuIE9wZXJhdGlvbiBpcyB0ZW1wbGF0ZWQsIHRoZXJlZm9yZSBpdCBpcyAKKyAgICAgICAgICAgIG5vdCByZXF1aXJlZCB0byBzcGVjaWZ5IHRoZSBleGFjdCB0eXBlcyB1cG9uIHRoZSBjb25zdHJ1Y3Rpb24KKyAgICAgICAgICovCisgICAgICAgIHN0cnVjdCBpc19sZXNzCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vISBGdW5jdG9yIG9wZXJhdGlvbgorICAgICAgICAgICAgLyohCisgICAgICAgICAgICAgICAgQ29tcGFyZSB0d28gb3BlcmFuZHMgdXNpbmcgPiBvcGVyYXRvcgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4KKyAgICAgICAgICAgICAgICBib29sIG9wZXJhdG9yKCkoIGNvbnN0IFQxJiBBcmcxLCBjb25zdCBUMiYgQXJnMiApIGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFyZzE8QXJnMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworCisgICAgICAgIC8vISBjYXNlIGluc2Vuc2l0aXZlIHZlcnNpb24gb2YgaXNfbGVzcworICAgICAgICAvKiEKKyAgICAgICAgICAgIENhc2UgaW5zZW5zaXRpdmUgY29tcGFyaXNvbiBwcmVkaWNhdGUuIENvbXBhcmlzb24gaXMgZG9uZSB1c2luZworICAgICAgICAgICAgc3BlY2lmaWVkIGxvY2FsZXMuCisgICAgICAgICovCisgICAgICAgIHN0cnVjdCBpc19pbGVzcworICAgICAgICB7CisgICAgICAgICAgICAvLyEgQ29uc3RydWN0b3IKKyAgICAgICAgICAgIC8qIQorICAgICAgICAgICAgICAgIFxwYXJhbSBMb2MgbG9jYWxlcyB1c2VkIGZvciBjb21wYXJpc29uCisgICAgICAgICAgICAqLworICAgICAgICAgICAgaXNfaWxlc3MoIGNvbnN0IHN0ZDo6bG9jYWxlJiBMb2M9c3RkOjpsb2NhbGUoKSApIDoKKyAgICAgICAgICAgICAgICBtX0xvYyggTG9jICkge30KKworICAgICAgICAgICAgLy8hIEZ1bmN0aW9uIG9wZXJhdG9yCisgICAgICAgICAgICAvKiEKKyAgICAgICAgICAgICAgICBDb21wYXJlIHR3byBvcGVyYW5kcy4gQ2FzZSBpcyBpZ25vcmVkLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPgorICAgICAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IoKSggY29uc3QgVDEmIEFyZzEsIGNvbnN0IFQyJiBBcmcyICkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPj0gMHg1NjApICYmIChfX0JPUkxBTkRDX18gPD0gMHg1NjQpICYmICFkZWZpbmVkKF9VU0VfT0xEX1JXX1NUTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dG91cHBlcihBcmcxKTxzdGQ6OnRvdXBwZXIoQXJnMik7CisgICAgICAgICAgICAgICAgI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dG91cHBlcjxUMT4oQXJnMSxtX0xvYyk8c3RkOjp0b3VwcGVyPFQyPihBcmcyLG1fTG9jKTsKKyAgICAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgIH0KKworICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgc3RkOjpsb2NhbGUgbV9Mb2M7CisgICAgICAgIH07CisKKyAgICAgICAgLy8gIGlzX25vdF9ncmVhdGVyIGZ1bmN0b3IgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAvLyEgaXNfbm90X2dyZWF0ZXIgZnVuY3RvcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnZlbmllbnQgdmVyc2lvbiBvZiBzdGFuZGFyZCBzdGQ6Om5vdF9ncmVhdGVyX3RvLiBPcGVyYXRpb24gaXMgdGVtcGxhdGVkLCB0aGVyZWZvcmUgaXQgaXMgCisgICAgICAgICAgICBub3QgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgZXhhY3QgdHlwZXMgdXBvbiB0aGUgY29uc3RydWN0aW9uCisgICAgICAgICAqLworICAgICAgICBzdHJ1Y3QgaXNfbm90X2dyZWF0ZXIKKyAgICAgICAgeworICAgICAgICAgICAgLy8hIEZ1bmN0b3Igb3BlcmF0aW9uCisgICAgICAgICAgICAvKiEKKyAgICAgICAgICAgICAgICBDb21wYXJlIHR3byBvcGVyYW5kcyB1c2luZyA+IG9wZXJhdG9yCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPgorICAgICAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IoKSggY29uc3QgVDEmIEFyZzEsIGNvbnN0IFQyJiBBcmcyICkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnMTw9QXJnMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworCisgICAgICAgIC8vISBjYXNlIGluc2Vuc2l0aXZlIHZlcnNpb24gb2YgaXNfbm90X2dyZWF0ZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBDYXNlIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24gcHJlZGljYXRlLiBDb21wYXJpc29uIGlzIGRvbmUgdXNpbmcKKyAgICAgICAgICAgIHNwZWNpZmllZCBsb2NhbGVzLgorICAgICAgICAqLworICAgICAgICBzdHJ1Y3QgaXNfbm90X2lncmVhdGVyCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vISBDb25zdHJ1Y3RvcgorICAgICAgICAgICAgLyohCisgICAgICAgICAgICAgICAgXHBhcmFtIExvYyBsb2NhbGVzIHVzZWQgZm9yIGNvbXBhcmlzb24KKyAgICAgICAgICAgICovCisgICAgICAgICAgICBpc19ub3RfaWdyZWF0ZXIoIGNvbnN0IHN0ZDo6bG9jYWxlJiBMb2M9c3RkOjpsb2NhbGUoKSApIDoKKyAgICAgICAgICAgICAgICBtX0xvYyggTG9jICkge30KKworICAgICAgICAgICAgLy8hIEZ1bmN0aW9uIG9wZXJhdG9yCisgICAgICAgICAgICAvKiEKKyAgICAgICAgICAgICAgICBDb21wYXJlIHR3byBvcGVyYW5kcy4gQ2FzZSBpcyBpZ25vcmVkLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPgorICAgICAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IoKSggY29uc3QgVDEmIEFyZzEsIGNvbnN0IFQyJiBBcmcyICkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPj0gMHg1NjApICYmIChfX0JPUkxBTkRDX18gPD0gMHg1NjQpICYmICFkZWZpbmVkKF9VU0VfT0xEX1JXX1NUTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dG91cHBlcihBcmcxKTw9c3RkOjp0b3VwcGVyKEFyZzIpOworICAgICAgICAgICAgICAgICNlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnRvdXBwZXI8VDE+KEFyZzEsbV9Mb2MpPD1zdGQ6OnRvdXBwZXI8VDI+KEFyZzIsbV9Mb2MpOworICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgfQorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBzdGQ6OmxvY2FsZSBtX0xvYzsKKyAgICAgICAgfTsKKworCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCisKKyAgICAvLyBwdWxsIG5hbWVzIHRvIHRoZSBib29zdCBuYW1lc3BhY2UKKyAgICB1c2luZyBhbGdvcml0aG06OmlzX2VxdWFsOworICAgIHVzaW5nIGFsZ29yaXRobTo6aXNfaWVxdWFsOworICAgIHVzaW5nIGFsZ29yaXRobTo6aXNfbGVzczsKKyAgICB1c2luZyBhbGdvcml0aG06OmlzX2lsZXNzOworICAgIHVzaW5nIGFsZ29yaXRobTo6aXNfbm90X2dyZWF0ZXI7CisgICAgdXNpbmcgYWxnb3JpdGhtOjppc19ub3RfaWdyZWF0ZXI7CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKworI2VuZGlmICAvLyBCT09TVF9TVFJJTkdfQ09NUEFSRV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25jZXB0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25jZXB0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWZhYTgwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmNlcHQuaHBwCkBAIC0wLDAgKzEsODMgQEAKKy8vICBCb29zdCBzdHJpbmdfYWxnbyBsaWJyYXJ5IGNvbmNlcHQuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwMy4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfQ09OQ0VQVF9IUFAKKyNkZWZpbmUgQk9PU1RfU1RSSU5HX0NPTkNFUFRfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0X2NoZWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2VuZC5ocHA+CisKKy8qISBcZmlsZSAKKyAgICBEZWZpbmVzIGNvbmNlcHRzIHVzZWQgaW4gc3RyaW5nX2FsZ28gbGlicmFyeQorKi8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgYWxnb3JpdGhtIHsKKworICAgICAgICAvLyEgRmluZGVyIGNvbmNlcHQKKyAgICAgICAgLyohCisgICAgICAgICAgICBEZWZpbmVzIHRoZSBGaW5kZXIgY29uY2VwdC4gRmluZGVyIGlzIGEgZnVuY3RvciB3aGljaCBzZWxlY3RzCisgICAgICAgICAgICBhbiBhcmJpdHJhcnkgcGFydCBvZiBhIHN0cmluZy4gU2VhcmNoIGlzIHBlcmZvcm1lZCBvbgorICAgICAgICAgICAgdGhlIHJhbmdlIHNwZWNpZmllZCBieSBzdGFydGluZyBhbmQgZW5kaW5nIGl0ZXJhdG9ycy4KKworICAgICAgICAgICAgUmVzdWx0IG9mIHRoZSBmaW5kIG9wZXJhdGlvbiBtdXN0IGJlIGNvbnZlcnRpYmxlIHRvIGl0ZXJhdG9yX3JhbmdlLgorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaW5kZXJULCB0eXBlbmFtZSBJdGVyYXRvclQ+CisgICAgICAgIHN0cnVjdCBGaW5kZXJDb25jZXB0CisgICAgICAgIHsKKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiByYW5nZTsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdm9pZCBjb25zdHJhaW50cygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uCisgICAgICAgICAgICAgICAgcj0oKnBGKShpLGkpOworICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgcmFuZ2UgcjsKKyAgICAgICAgICAgIEl0ZXJhdG9yVCBpOworICAgICAgICAgICAgRmluZGVyVCogcEY7ICAgIAorICAgICAgICB9OyAvLyBGaW5kZXJfY29uY2VwdAorCisgICAgICAgIAorICAgICAgICAvLyEgRm9ybWF0dGVyIGNvbmNlcHQKKyAgICAgICAgLyohCisgICAgICAgICAgICBEZWZpbmVzIHRoZSBGb3JtYXR0ZXIgY29uY2VwdC4gRm9ybWF0dGVyIGlzIGEgZnVuY3Rvciwgd2hpY2gKKyAgICAgICAgICAgIHRha2VzIGEgcmVzdWx0IGZyb20gYSBmaW5kZXIgb3BlcmF0aW9uIGFuZCB0cmFuc2Zvcm1zIGl0CisgICAgICAgICAgICBpbiBhIHNwZWNpZmljIHdheS4KKworICAgICAgICAgICAgUmVzdWx0IG11c3QgYmUgYSBjb250YWluZXIgc3VwcG9ydGVkIGJ5IGNvbnRhaW5lcl90cmFpdHMsIAorICAgICAgICAgICAgb3IgYSByZWZlcmVuY2UgdG8gaXQuCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZvcm1hdHRlclQsIHR5cGVuYW1lIEZpbmRlclQsIHR5cGVuYW1lIEl0ZXJhdG9yVD4KKyAgICAgICAgc3RydWN0IEZvcm1hdHRlckNvbmNlcHQKKyAgICAgICAgeworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICB2b2lkIGNvbnN0cmFpbnRzKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBPcGVyYXRpb24KKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpiZWdpbigoKnBGbykoICgqcEYpKGksaSkgKSk7CisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6ZW5kKCgqcEZvKSggKCpwRikoaSxpKSApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIEl0ZXJhdG9yVCBpOworICAgICAgICAgICAgRmluZGVyVCogcEY7CisgICAgICAgICAgICBGb3JtYXR0ZXJUICpwRm87CisgICAgICAgIH07IC8vIEZvcm1hdHRlckNvbmNlcHQ7CisKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKworCisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX0NPTkNFUFRfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29uZmlnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZDNkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29uZmlnLmhwcApAQCAtMCwwICsxLDI4IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBjb25maWcuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwMy4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfQ09ORklHX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfQ09ORklHX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZmRlZiBCT09TVF9TVFJJTkdfREVEVUNFRF9UWVBFTkFNRQorIyAgIGVycm9yICJtYWNybyBhbHJlYWR5IGRlZmluZWQhIgorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKworLy8gTWV0cm93ZXJrcyB3b3JrYXJvdW5kCisjaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDMwMDMpIC8vIDgueAorI3ByYWdtYSBwYXJzZV9mdW5jX3RlbXBsIG9mZgorI2VuZGlmCisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX0NPTkZJR19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25zdGFudHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbnN0YW50cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjMyZDBkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25zdGFudHMuaHBwCkBAIC0wLDAgKzEsMzYgQEAKKy8vICBCb29zdCBzdHJpbmdfYWxnbyBsaWJyYXJ5IGNvbnN0YW50cy5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgUGF2b2wgRHJvYmEgMjAwMi0yMDAzLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy8gZm9yIHVwZGF0ZXMsIGRvY3VtZW50YXRpb24sIGFuZCByZXZpc2lvbiBoaXN0b3J5LgorCisjaWZuZGVmIEJPT1NUX1NUUklOR19DT05TVEFOVFNfSFBQCisjZGVmaW5lIEJPT1NUX1NUUklOR19DT05TVEFOVFNfSFBQCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGFsZ29yaXRobSB7CisKKyAgICAvLyEgVG9rZW4gY29tcHJlc3Npb24gbW9kZSAKKyAgICAvKiEKKyAgICAgICAgU3BlY2lmaWVzIHRva2VuIGNvbXByZXNzaW9uIG1vZGUgZm9yIHRoZSB0b2tlbl9maW5kZXIuCisgICAgKi8KKyAgICBlbnVtIHRva2VuX2NvbXByZXNzX21vZGVfdHlwZQorICAgIHsKKyAgICAgICAgdG9rZW5fY29tcHJlc3Nfb24sICAgIC8vITwgQ29tcHJlc3MgYWRqYWNlbnQgdG9rZW5zCisgICAgICAgIHRva2VuX2NvbXByZXNzX29mZiAgLy8hPCBEbyBub3QgY29tcHJlc3MgYWRqYWNlbnQgdG9rZW5zCisgICAgfTsKKyAgICAKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KKworICAgIC8vIHB1bGwgdGhlIG5hbWVzIHRvIHRoZSBib29zdCBuYW1lc3BhY2UKKyAgICB1c2luZyBhbGdvcml0aG06OnRva2VuX2NvbXByZXNzX29uOworICAgIHVzaW5nIGFsZ29yaXRobTo6dG9rZW5fY29tcHJlc3Nfb2ZmOworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vIEJPT1NUX1NUUklOR19DT05TVEFOVFNfSFBQCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9maW5kX2Zvcm1hdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk1YmVhZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXQuaHBwCkBAIC0wLDAgKzEsMjA0IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBmaW5kX2Zvcm1hdC5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgUGF2b2wgRHJvYmEgMjAwMi0yMDAzLgorLy8gCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfRklORF9GT1JNQVRfREVUQUlMX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfRklORF9GT1JNQVRfREVUQUlMX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25zdF9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRfZm9ybWF0X3N0b3JlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9yZXBsYWNlX3N0b3JhZ2UuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworICAgICAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gZmluZF9mb3JtYXRfY29weSAoaXRlcmF0b3IgdmFyaWFudCkgaW1wbGVtZW50YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBJbnB1dFQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXRSZXN1bHRUID4KKyAgICAgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgZmluZF9mb3JtYXRfY29weV9pbXBsMigKKyAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgICAgIGNvbnN0IElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgY29uc3QgRmluZFJlc3VsdFQmIEZpbmRSZXN1bHQsCisgICAgICAgICAgICAgICAgY29uc3QgRm9ybWF0UmVzdWx0VCYgRm9ybWF0UmVzdWx0ICkKKyAgICAgICAgICAgIHsgICAgICAgCisgICAgICAgICAgICAgICAgdHlwZWRlZiBmaW5kX2Zvcm1hdF9zdG9yZTwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIAorICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8SW5wdXRUPjo6dHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0UmVzdWx0VCA+IHN0b3JlX3R5cGU7CisKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgc3RvcmUgZm9yIHRoZSBmaW5kIHJlc3VsdAorICAgICAgICAgICAgICAgIHN0b3JlX3R5cGUgTSggRmluZFJlc3VsdCwgRm9ybWF0UmVzdWx0LCBGb3JtYXR0ZXIgKTsKKworICAgICAgICAgICAgICAgIGlmICggIU0gKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2ggbm90IGZvdW5kIC0gcmV0dXJuIG9yaWdpbmFsIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIE91dHB1dCA9IHN0ZDo6Y29weSggOjpuZG5ib29zdDo6YmVnaW4oSW5wdXQpLCA6Om5kbmJvb3N0OjplbmQoSW5wdXQpLCBPdXRwdXQgKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE91dHB1dDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgT3V0cHV0ID0gc3RkOjpjb3B5KCA6Om5kbmJvb3N0OjpiZWdpbihJbnB1dCksIDo6bmRuYm9vc3Q6OmJlZ2luKE0pLCBPdXRwdXQgKTsKKyAgICAgICAgICAgICAgICAvLyBGb3JtYXQgZmluZCByZXN1bHQKKyAgICAgICAgICAgICAgICAvLyBDb3B5IGZvcm1hdHRlZCByZXN1bHQKKyAgICAgICAgICAgICAgICBPdXRwdXQgPSBzdGQ6OmNvcHkoIDo6bmRuYm9vc3Q6OmJlZ2luKE0uZm9ybWF0X3Jlc3VsdCgpKSwgOjpuZG5ib29zdDo6ZW5kKE0uZm9ybWF0X3Jlc3VsdCgpKSwgT3V0cHV0ICk7CisgICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgcmVzdCBvZiB0aGUgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICBPdXRwdXQgPSBzdGQ6OmNvcHkoIE0uZW5kKCksIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCksIE91dHB1dCApOworCisgICAgICAgICAgICAgICAgcmV0dXJuIE91dHB1dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBJbnB1dFQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCA+CisgICAgICAgICAgICBpbmxpbmUgT3V0cHV0SXRlcmF0b3JUIGZpbmRfZm9ybWF0X2NvcHlfaW1wbCgKKyAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgICAgIGNvbnN0IElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgY29uc3QgRmluZFJlc3VsdFQmIEZpbmRSZXN1bHQgKQorICAgICAgICAgICAgeyAgIAorICAgICAgICAgICAgICAgIGlmKCA6Om5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6Y2hlY2tfZmluZF9yZXN1bHQoSW5wdXQsIEZpbmRSZXN1bHQpICkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfZm9ybWF0X2NvcHlfaW1wbDIoIAorICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBGaW5kUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVyKEZpbmRSZXN1bHQpICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6Y29weSggOjpuZG5ib29zdDo6YmVnaW4oSW5wdXQpLCA6Om5kbmJvb3N0OjplbmQoSW5wdXQpLCBPdXRwdXQgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAKKy8vIGZpbmRfZm9ybWF0X2NvcHkgaW1wbGVtZW50YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgICAgIHRlbXBsYXRlPCAKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBJbnB1dFQsIAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdHRlclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRmluZFJlc3VsdFQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0UmVzdWx0VCA+CisgICAgICAgICAgICBpbmxpbmUgSW5wdXRUIGZpbmRfZm9ybWF0X2NvcHlfaW1wbDIoCisgICAgICAgICAgICAgICAgY29uc3QgSW5wdXRUJiBJbnB1dCwKKyAgICAgICAgICAgICAgICBGb3JtYXR0ZXJUIEZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICBjb25zdCBGaW5kUmVzdWx0VCYgRmluZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXRSZXN1bHRUJiBGb3JtYXRSZXN1bHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBmaW5kX2Zvcm1hdF9zdG9yZTwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIAorICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8SW5wdXRUPjo6dHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0UmVzdWx0VCA+IHN0b3JlX3R5cGU7CisKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgc3RvcmUgZm9yIHRoZSBmaW5kIHJlc3VsdAorICAgICAgICAgICAgICAgIHN0b3JlX3R5cGUgTSggRmluZFJlc3VsdCwgRm9ybWF0UmVzdWx0LCBGb3JtYXR0ZXIgKTsKKworICAgICAgICAgICAgICAgIGlmICggIU0gKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTWF0Y2ggbm90IGZvdW5kIC0gcmV0dXJuIG9yaWdpbmFsIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnB1dFQoIElucHV0ICk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgSW5wdXRUIE91dHB1dDsKKyAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjppbnNlcnQoIE91dHB1dCwgOjpuZG5ib29zdDo6ZW5kKE91dHB1dCksIDo6bmRuYm9vc3Q6OmJlZ2luKElucHV0KSwgTS5iZWdpbigpICk7CisgICAgICAgICAgICAgICAgLy8gQ29weSBmb3JtYXR0ZWQgcmVzdWx0CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjppbnNlcnQoIE91dHB1dCwgOjpuZG5ib29zdDo6ZW5kKE91dHB1dCksIE0uZm9ybWF0X3Jlc3VsdCgpICk7CisgICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgcmVzdCBvZiB0aGUgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6Omluc2VydCggT3V0cHV0LCA6Om5kbmJvb3N0OjplbmQoT3V0cHV0KSwgTS5lbmQoKSwgOjpuZG5ib29zdDo6ZW5kKElucHV0KSApOworCisgICAgICAgICAgICAgICAgcmV0dXJuIE91dHB1dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIElucHV0VCwgCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCA+CisgICAgICAgICAgICBpbmxpbmUgSW5wdXRUIGZpbmRfZm9ybWF0X2NvcHlfaW1wbCgKKyAgICAgICAgICAgICAgICBjb25zdCBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEZvcm1hdHRlclQgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIGNvbnN0IEZpbmRSZXN1bHRUJiBGaW5kUmVzdWx0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmKCA6Om5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6Y2hlY2tfZmluZF9yZXN1bHQoSW5wdXQsIEZpbmRSZXN1bHQpICkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfZm9ybWF0X2NvcHlfaW1wbDIoCisgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXIoRmluZFJlc3VsdCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5wdXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgLy8gcmVwbGFjZSBpbXBsZW1lbnRhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKyAgICAgICAgCisgICAgICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBJbnB1dFQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXRSZXN1bHRUID4KKyAgICAgICAgICAgIGlubGluZSB2b2lkIGZpbmRfZm9ybWF0X2ltcGwyKCAKKyAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEZvcm1hdHRlclQgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIGNvbnN0IEZpbmRSZXN1bHRUJiBGaW5kUmVzdWx0LAorICAgICAgICAgICAgICAgIGNvbnN0IEZvcm1hdFJlc3VsdFQmIEZvcm1hdFJlc3VsdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGZpbmRfZm9ybWF0X3N0b3JlPAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9pdGVyYXRvcjxJbnB1dFQ+Ojp0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlclQsCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXRSZXN1bHRUID4gc3RvcmVfdHlwZTsKKworICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBzdG9yZSBmb3IgdGhlIGZpbmQgcmVzdWx0CisgICAgICAgICAgICAgICAgc3RvcmVfdHlwZSBNKCBGaW5kUmVzdWx0LCBGb3JtYXRSZXN1bHQsIEZvcm1hdHRlciApOworCisgICAgICAgICAgICAgICAgaWYgKCAhTSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBTZWFyY2ggbm90IGZvdW5kIC0gcmV0dXJuIG9yaWdpbmFsIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIG1hdGNoCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OnJlcGxhY2UoIElucHV0LCBNLmJlZ2luKCksIE0uZW5kKCksIE0uZm9ybWF0X3Jlc3VsdCgpICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIElucHV0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRSZXN1bHRUID4KKyAgICAgICAgICAgIGlubGluZSB2b2lkIGZpbmRfZm9ybWF0X2ltcGwoIAorICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgY29uc3QgRmluZFJlc3VsdFQmIEZpbmRSZXN1bHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYoIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpjaGVja19maW5kX3Jlc3VsdChJbnB1dCwgRmluZFJlc3VsdCkgKSB7CisgICAgICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpmaW5kX2Zvcm1hdF9pbXBsMigKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgRmluZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlcihGaW5kUmVzdWx0KSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX0ZJTkRfRk9STUFUX0RFVEFJTF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXRfYWxsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXRfYWxsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTAzMTJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9maW5kX2Zvcm1hdF9hbGwuaHBwCkBAIC0wLDAgKzEsMjczIEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBmaW5kX2Zvcm1hdF9hbGwuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwMy4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfRklORF9GT1JNQVRfQUxMX0RFVEFJTF9IUFAKKyNkZWZpbmUgQk9PU1RfU1RSSU5HX0ZJTkRfRk9STUFUX0FMTF9ERVRBSUxfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2NvbnN0X2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS92YWx1ZV90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9maW5kX2Zvcm1hdF9zdG9yZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvcmVwbGFjZV9zdG9yYWdlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgYWxnb3JpdGhtIHsKKyAgICAgICAgbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIGZpbmRfZm9ybWF0X2FsbF9jb3B5IChpdGVyYXRvciB2YXJpYW50KSBpbXBsZW1lbnRhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgICAgIHRlbXBsYXRlPCAKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBPdXRwdXRJdGVyYXRvclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgSW5wdXRULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRlclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXRSZXN1bHRUID4KKyAgICAgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgZmluZF9mb3JtYXRfYWxsX2NvcHlfaW1wbDIoCisgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIE91dHB1dCwKKyAgICAgICAgICAgICAgICBjb25zdCBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEZpbmRlclQgRmluZGVyLAorICAgICAgICAgICAgICAgIEZvcm1hdHRlclQgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIGNvbnN0IEZpbmRSZXN1bHRUJiBGaW5kUmVzdWx0LAorICAgICAgICAgICAgICAgIGNvbnN0IEZvcm1hdFJlc3VsdFQmIEZvcm1hdFJlc3VsdCApCisgICAgICAgICAgICB7ICAgICAgIAorICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIAorICAgICAgICAgICAgICAgICAgICByYW5nZV9jb25zdF9pdGVyYXRvcjxJbnB1dFQ+Ojp0eXBlIGlucHV0X2l0ZXJhdG9yX3R5cGU7IAorCisgICAgICAgICAgICAgICAgdHlwZWRlZiBmaW5kX2Zvcm1hdF9zdG9yZTwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0X2l0ZXJhdG9yX3R5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFJlc3VsdFQgPiBzdG9yZV90eXBlOworCisgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHN0b3JlIGZvciB0aGUgZmluZCByZXN1bHQKKyAgICAgICAgICAgICAgICBzdG9yZV90eXBlIE0oIEZpbmRSZXN1bHQsIEZvcm1hdFJlc3VsdCwgRm9ybWF0dGVyICk7CisKKyAgICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIGxhc3QgbWF0Y2gKKyAgICAgICAgICAgICAgICBpbnB1dF9pdGVyYXRvcl90eXBlIExhc3RNYXRjaD06Om5kbmJvb3N0OjpiZWdpbihJbnB1dCk7CisKKyAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIG1hdGNoZXMKKyAgICAgICAgICAgICAgICB3aGlsZSggTSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgIE91dHB1dCA9IHN0ZDo6Y29weSggTGFzdE1hdGNoLCBNLmJlZ2luKCksIE91dHB1dCApOworICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IGZvcm1hdHRlZCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0ID0gc3RkOjpjb3B5KCA6Om5kbmJvb3N0OjpiZWdpbihNLmZvcm1hdF9yZXN1bHQoKSksIDo6bmRuYm9vc3Q6OmVuZChNLmZvcm1hdF9yZXN1bHQoKSksIE91dHB1dCApOworCisgICAgICAgICAgICAgICAgICAgIC8vIFByb2NlZWQgdG8gdGhlIG5leHQgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgTGFzdE1hdGNoPU0uZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIE09RmluZGVyKCBMYXN0TWF0Y2gsIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCkgKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSByZXN0IG9mIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgIE91dHB1dCA9IHN0ZDo6Y29weSggTGFzdE1hdGNoLCA6Om5kbmJvb3N0OjplbmQoSW5wdXQpLCBPdXRwdXQgKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBPdXRwdXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlPCAKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBPdXRwdXRJdGVyYXRvclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgSW5wdXRULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRlclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCA+CisgICAgICAgICAgICBpbmxpbmUgT3V0cHV0SXRlcmF0b3JUIGZpbmRfZm9ybWF0X2FsbF9jb3B5X2ltcGwoCisgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIE91dHB1dCwKKyAgICAgICAgICAgICAgICBjb25zdCBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEZpbmRlclQgRmluZGVyLAorICAgICAgICAgICAgICAgIEZvcm1hdHRlclQgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIGNvbnN0IEZpbmRSZXN1bHRUJiBGaW5kUmVzdWx0ICkKKyAgICAgICAgICAgIHsgICAKKyAgICAgICAgICAgICAgICBpZiggOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmNoZWNrX2ZpbmRfcmVzdWx0KElucHV0LCBGaW5kUmVzdWx0KSApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpmaW5kX2Zvcm1hdF9hbGxfY29weV9pbXBsMiggCisgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXIoRmluZFJlc3VsdCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpjb3B5KCA6Om5kbmJvb3N0OjpiZWdpbihJbnB1dCksIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCksIE91dHB1dCApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworIC8vIGZpbmRfZm9ybWF0X2FsbF9jb3B5IGltcGxlbWVudGF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgICAgIHRlbXBsYXRlPCAKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBJbnB1dFQsIAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRlclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kUmVzdWx0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXRSZXN1bHRUID4KKyAgICAgICAgICAgIGlubGluZSBJbnB1dFQgZmluZF9mb3JtYXRfYWxsX2NvcHlfaW1wbDIoCisgICAgICAgICAgICAgICAgY29uc3QgSW5wdXRUJiBJbnB1dCwKKyAgICAgICAgICAgICAgICBGaW5kZXJUIEZpbmRlciwKKyAgICAgICAgICAgICAgICBGb3JtYXR0ZXJUIEZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICBjb25zdCBGaW5kUmVzdWx0VCYgRmluZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXRSZXN1bHRUJiBGb3JtYXRSZXN1bHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPElucHV0VD46OnR5cGUgaW5wdXRfaXRlcmF0b3JfdHlwZTsgCisKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGZpbmRfZm9ybWF0X3N0b3JlPAorICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0UmVzdWx0VCA+IHN0b3JlX3R5cGU7CisKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgc3RvcmUgZm9yIHRoZSBmaW5kIHJlc3VsdAorICAgICAgICAgICAgICAgIHN0b3JlX3R5cGUgTSggRmluZFJlc3VsdCwgRm9ybWF0UmVzdWx0LCBGb3JtYXR0ZXIgKTsKKworICAgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgbGFzdCBtYXRjaAorICAgICAgICAgICAgICAgIGlucHV0X2l0ZXJhdG9yX3R5cGUgTGFzdE1hdGNoPTo6bmRuYm9vc3Q6OmJlZ2luKElucHV0KTsKKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCB0ZW1wb3JhcnkKKyAgICAgICAgICAgICAgICBJbnB1dFQgT3V0cHV0OworCisgICAgICAgICAgICAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBtYXRjaGVzCisgICAgICAgICAgICAgICAgd2hpbGUoIE0gKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6Omluc2VydCggT3V0cHV0LCA6Om5kbmJvb3N0OjplbmQoT3V0cHV0KSwgTGFzdE1hdGNoLCBNLmJlZ2luKCkgKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29weSBmb3JtYXR0ZWQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6aW5zZXJ0KCBPdXRwdXQsIDo6bmRuYm9vc3Q6OmVuZChPdXRwdXQpLCBNLmZvcm1hdF9yZXN1bHQoKSApOworCisgICAgICAgICAgICAgICAgICAgIC8vIFByb2NlZWQgdG8gdGhlIG5leHQgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgTGFzdE1hdGNoPU0uZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIE09RmluZGVyKCBMYXN0TWF0Y2gsIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCkgKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSByZXN0IG9mIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjppbnNlcnQoIE91dHB1dCwgOjpuZG5ib29zdDo6ZW5kKE91dHB1dCksIExhc3RNYXRjaCwgOjpuZG5ib29zdDo6ZW5kKElucHV0KSApOworCisgICAgICAgICAgICAgICAgcmV0dXJuIE91dHB1dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIElucHV0VCwgCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRmluZGVyVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRSZXN1bHRUID4KKyAgICAgICAgICAgIGlubGluZSBJbnB1dFQgZmluZF9mb3JtYXRfYWxsX2NvcHlfaW1wbCgKKyAgICAgICAgICAgICAgICBjb25zdCBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEZpbmRlclQgRmluZGVyLAorICAgICAgICAgICAgICAgIEZvcm1hdHRlclQgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIGNvbnN0IEZpbmRSZXN1bHRUJiBGaW5kUmVzdWx0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmKCA6Om5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6Y2hlY2tfZmluZF9yZXN1bHQoSW5wdXQsIEZpbmRSZXN1bHQpICkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfZm9ybWF0X2FsbF9jb3B5X2ltcGwyKAorICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBGaW5kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBGaW5kUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVyKEZpbmRSZXN1bHQpICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElucHV0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworIC8vIGZpbmRfZm9ybWF0X2FsbCBpbXBsZW1lbnRhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworICAgICAgICAKKyAgICAgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIElucHV0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kZXJULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdHRlclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRmluZFJlc3VsdFQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9ybWF0UmVzdWx0VCA+CisgICAgICAgICAgICBpbmxpbmUgdm9pZCBmaW5kX2Zvcm1hdF9hbGxfaW1wbDIoIAorICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgRmluZGVyVCBGaW5kZXIsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgRmluZFJlc3VsdFQgRmluZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBGb3JtYXRSZXN1bHRUIEZvcm1hdFJlc3VsdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1NUUklOR19UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VfaXRlcmF0b3I8SW5wdXRUPjo6dHlwZSBpbnB1dF9pdGVyYXRvcl90eXBlOyAKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGZpbmRfZm9ybWF0X3N0b3JlPAorICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0UmVzdWx0VCA+IHN0b3JlX3R5cGU7CisKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgc3RvcmUgZm9yIHRoZSBmaW5kIHJlc3VsdAorICAgICAgICAgICAgICAgIHN0b3JlX3R5cGUgTSggRmluZFJlc3VsdCwgRm9ybWF0UmVzdWx0LCBGb3JtYXR0ZXIgKTsKKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZSByZXBsYWNlbWVudCBzdG9yYWdlCisgICAgICAgICAgICAgICAgc3RkOjpkZXF1ZTwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIHJhbmdlX3ZhbHVlPElucHV0VD46OnR5cGU+IFN0b3JhZ2U7CisKKyAgICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHJlcGxhY2VtZW50IGl0ZXJhdG9ycworICAgICAgICAgICAgICAgIGlucHV0X2l0ZXJhdG9yX3R5cGUgSW5zZXJ0SXQ9OjpuZG5ib29zdDo6YmVnaW4oSW5wdXQpOworICAgICAgICAgICAgICAgIGlucHV0X2l0ZXJhdG9yX3R5cGUgU2VhcmNoSXQ9OjpuZG5ib29zdDo6YmVnaW4oSW5wdXQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlKCBNICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgdGhlIHNlZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgSW5zZXJ0SXQ9cHJvY2Vzc19zZWdtZW50KCAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc2VydEl0LAorICAgICAgICAgICAgICAgICAgICAgICAgU2VhcmNoSXQsCisgICAgICAgICAgICAgICAgICAgICAgICBNLmJlZ2luKCkgKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIEFkanVzdCBzZWFyY2ggaXRlcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgU2VhcmNoSXQ9TS5lbmQoKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IGZvcm1hdHRlZCByZXBsYWNlIHRvIHRoZSBzdG9yYWdlCisgICAgICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpjb3B5X3RvX3N0b3JhZ2UoIFN0b3JhZ2UsIE0uZm9ybWF0X3Jlc3VsdCgpICk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gRmluZCByYW5nZSBmb3IgYSBuZXh0IG1hdGNoCisgICAgICAgICAgICAgICAgICAgIE09RmluZGVyKCBTZWFyY2hJdCwgOjpuZG5ib29zdDo6ZW5kKElucHV0KSApOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgdGhlIGxhc3Qgc2VnbWVudAorICAgICAgICAgICAgICAgIEluc2VydEl0PTo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpwcm9jZXNzX3NlZ21lbnQoIAorICAgICAgICAgICAgICAgICAgICBTdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgSW5zZXJ0SXQsCisgICAgICAgICAgICAgICAgICAgIFNlYXJjaEl0LAorICAgICAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjplbmQoSW5wdXQpICk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCBTdG9yYWdlLmVtcHR5KCkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVHJ1bmNhdGUgaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmVyYXNlKCBJbnB1dCwgSW5zZXJ0SXQsIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCkgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29weSByZW1haW5pbmcgZGF0YSB0byB0aGUgZW5kIG9mIGlucHV0CisgICAgICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjppbnNlcnQoIElucHV0LCA6Om5kbmJvb3N0OjplbmQoSW5wdXQpLCBTdG9yYWdlLmJlZ2luKCksIFN0b3JhZ2UuZW5kKCkgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIElucHV0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGaW5kZXJULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdHRlclQsCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRmluZFJlc3VsdFQgPgorICAgICAgICAgICAgaW5saW5lIHZvaWQgZmluZF9mb3JtYXRfYWxsX2ltcGwoIAorICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgRmluZGVyVCBGaW5kZXIsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgRmluZFJlc3VsdFQgRmluZFJlc3VsdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiggOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmNoZWNrX2ZpbmRfcmVzdWx0KElucHV0LCBGaW5kUmVzdWx0KSApIHsKKyAgICAgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfZm9ybWF0X2FsbF9pbXBsMigKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgRmluZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgRmluZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlcihGaW5kUmVzdWx0KSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX0ZJTkRfRk9STUFUX0FMTF9ERVRBSUxfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRfZm9ybWF0X3N0b3JlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZF9mb3JtYXRfc3RvcmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZDM4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRfZm9ybWF0X3N0b3JlLmhwcApAQCAtMCwwICsxLDg5IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBmaW5kX2Zvcm1hdF9zdG9yZS5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgUGF2b2wgRHJvYmEgMjAwMi0yMDAzLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy8gZm9yIHVwZGF0ZXMsIGRvY3VtZW50YXRpb24sIGFuZCByZXZpc2lvbiBoaXN0b3J5LgorCisjaWZuZGVmIEJPT1NUX1NUUklOR19GSU5EX0ZPUk1BVF9TVE9SRV9ERVRBSUxfSFBQCisjZGVmaW5lIEJPT1NUX1NUUklOR19GSU5EX0ZPUk1BVF9TVE9SRV9ERVRBSUxfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworICAgICAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gIHRlbXBvcmFyeSBmb3JtYXQgYW5kIGZpbmQgcmVzdWx0IHN0b3JhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0NTEyKSAvL2Fzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZAorI2VuZGlmCisgICAgICAgICAgICB0ZW1wbGF0ZTwgCisgICAgICAgICAgICAgICAgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdFJlc3VsdFQgPgorICAgICAgICAgICAgY2xhc3MgZmluZF9mb3JtYXRfc3RvcmUgOiAKKyAgICAgICAgICAgICAgICBwdWJsaWMgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgICAvLyB0eXBlZGVmcworICAgICAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4gYmFzZV90eXBlOworICAgICAgICAgICAgICAgIHR5cGVkZWYgRm9ybWF0dGVyVCAgZm9ybWF0dGVyX3R5cGU7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBGb3JtYXRSZXN1bHRUIGZvcm1hdF9yZXN1bHRfdHlwZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICBmaW5kX2Zvcm1hdF9zdG9yZSggCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNlX3R5cGUmIEZpbmRSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXRfcmVzdWx0X3R5cGUmIEZvcm1hdFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlcl90eXBlJiBGb3JtYXR0ZXIgKSA6CisgICAgICAgICAgICAgICAgICAgIGJhc2VfdHlwZShGaW5kUmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgbV9Gb3JtYXRSZXN1bHQoRm9ybWF0UmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgbV9Gb3JtYXR0ZXIoRm9ybWF0dGVyKSB7fQorCisgICAgICAgICAgICAgICAgLy8gQXNzaWdubWVudAorICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGaW5kUmVzdWx0VCA+CisgICAgICAgICAgICAgICAgZmluZF9mb3JtYXRfc3RvcmUmIG9wZXJhdG9yPSggRmluZFJlc3VsdFQgRmluZFJlc3VsdCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPjo6b3BlcmF0b3I9KEZpbmRSZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiggIXRoaXMtPmVtcHR5KCkgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX0Zvcm1hdFJlc3VsdD1tX0Zvcm1hdHRlcihGaW5kUmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJldHJpZXZlIGZvcm1hdCByZXN1bHQKKyAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXRfcmVzdWx0X3R5cGUmIGZvcm1hdF9yZXN1bHQoKQorICAgICAgICAgICAgICAgIHsgICAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fRm9ybWF0UmVzdWx0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgICAgICBmb3JtYXRfcmVzdWx0X3R5cGUgbV9Gb3JtYXRSZXN1bHQ7CisgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVyX3R5cGUmIG1fRm9ybWF0dGVyOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRULCB0eXBlbmFtZSBGaW5kUmVzdWx0VD4KKyAgICAgICAgICAgIGJvb2wgY2hlY2tfZmluZF9yZXN1bHQoSW5wdXRUJiwgRmluZFJlc3VsdFQmIEZpbmRSZXN1bHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPElucHV0VD46OnR5cGUgaW5wdXRfaXRlcmF0b3JfdHlwZTsgCisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8aW5wdXRfaXRlcmF0b3JfdHlwZT4gUmVzdWx0UmFuZ2UoRmluZFJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuICFSZXN1bHRSYW5nZS5lbXB0eSgpOworICAgICAgICAgICAgfQorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorICAgICAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX0ZJTkRfRk9STUFUX1NUT1JFX0RFVEFJTF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzBjN2E1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9maW5kZXIuaHBwCkBAIC0wLDAgKzEsNjQ2IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBmaW5kZXIuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwNi4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfRklOREVSX0RFVEFJTF9IUFAKKyNkZWZpbmUgQk9PU1RfU1RSSU5HX0ZJTkRFUl9ERVRBSUxfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25zdGFudHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZW1wdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2FzX2xpdGVyYWwuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworICAgICAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKworCisvLyAgZmluZCBmaXJzdCBmdW5jdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgLy8gZmluZCBhIHN1YnNlcXVlbmNlIGluIHRoZSBzZXF1ZW5jZSAoIGZ1bmN0b3IgKQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBSZXR1cm5zIGEgcGFpciA8YmVnaW4sZW5kPiBtYXJraW5nIHRoZSBzdWJzZXF1ZW5jZSBpbiB0aGUgc2VxdWVuY2UuCisgICAgICAgICAgICAgICAgSWYgdGhlIGZpbmQgZmFpbHMsIGZ1bmN0b3IgcmV0dXJucyA8RW5kLEVuZD4KKyAgICAgICAgICAgICovCisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZWFyY2hJdGVyYXRvclQsdHlwZW5hbWUgUHJlZGljYXRlVD4KKyAgICAgICAgICAgIHN0cnVjdCBmaXJzdF9maW5kZXJGCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBTZWFyY2hJdGVyYXRvclQgc2VhcmNoX2l0ZXJhdG9yX3R5cGU7CisKKyAgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VhcmNoVCA+CisgICAgICAgICAgICAgICAgZmlyc3RfZmluZGVyRiggY29uc3QgU2VhcmNoVCYgU2VhcmNoLCBQcmVkaWNhdGVUIENvbXAgKSA6CisgICAgICAgICAgICAgICAgICAgIG1fU2VhcmNoKDo6bmRuYm9vc3Q6OmJlZ2luKFNlYXJjaCksIDo6bmRuYm9vc3Q6OmVuZChTZWFyY2gpKSwgbV9Db21wKENvbXApIHt9CisgICAgICAgICAgICAgICAgZmlyc3RfZmluZGVyRigKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pdGVyYXRvcl90eXBlIFNlYXJjaEJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2l0ZXJhdG9yX3R5cGUgU2VhcmNoRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgUHJlZGljYXRlVCBDb21wICkgOgorICAgICAgICAgICAgICAgICAgICBtX1NlYXJjaChTZWFyY2hCZWdpbiwgU2VhcmNoRW5kKSwgbV9Db21wKENvbXApIHt9CisKKyAgICAgICAgICAgICAgICAvLyBPcGVyYXRpb24KKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgICAgICBvcGVyYXRvcigpKAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEJlZ2luLAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCApIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0eXBlZGVmIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+IHJlc3VsdF90eXBlOworICAgICAgICAgICAgICAgICAgICB0eXBlZGVmIEZvcndhcmRJdGVyYXRvclQgaW5wdXRfaXRlcmF0b3JfdHlwZTsKKworICAgICAgICAgICAgICAgICAgICAvLyBPdXRlciBsb29wCisgICAgICAgICAgICAgICAgICAgIGZvcihpbnB1dF9pdGVyYXRvcl90eXBlIE91dGVySXQ9QmVnaW47CisgICAgICAgICAgICAgICAgICAgICAgICBPdXRlckl0IT1FbmQ7CisgICAgICAgICAgICAgICAgICAgICAgICArK091dGVySXQpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhbml0eSBjaGVjaworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIG5kbmJvb3N0OjplbXB0eShtX1NlYXJjaCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggRW5kLCBFbmQgKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfdHlwZSBJbm5lckl0PU91dGVySXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaXRlcmF0b3JfdHlwZSBTdWJzdHJJdD1tX1NlYXJjaC5iZWdpbigpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yKDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbm5lckl0IT1FbmQgJiYgU3Vic3RySXQhPW1fU2VhcmNoLmVuZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrSW5uZXJJdCwrK1N1YnN0ckl0KQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhKCBtX0NvbXAoKklubmVySXQsKlN1YnN0ckl0KSApICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN1YnN0cmluZyBtYXRjaGluZyBzdWNjZWVkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggU3Vic3RySXQ9PW1fU2VhcmNoLmVuZCgpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoIE91dGVySXQsIElubmVySXQgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggRW5kLCBFbmQgKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8c2VhcmNoX2l0ZXJhdG9yX3R5cGU+IG1fU2VhcmNoOworICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQgbV9Db21wOworICAgICAgICAgICAgfTsKKworLy8gIGZpbmQgbGFzdCBmdW5jdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgLy8gZmluZCB0aGUgbGFzdCBtYXRjaCBhIHN1YnNlcXVlbmNlIGluIHRoZSBzZXF1ZW5jZSAoIGZ1bmN0b3IgKQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBSZXR1cm5zIGEgcGFpciA8YmVnaW4sZW5kPiBtYXJraW5nIHRoZSBzdWJzZXF1ZW5jZSBpbiB0aGUgc2VxdWVuY2UuCisgICAgICAgICAgICAgICAgSWYgdGhlIGZpbmQgZmFpbHMsIHJldHVybnMgPEVuZCxFbmQ+CisgICAgICAgICAgICAqLworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VhcmNoSXRlcmF0b3JULCB0eXBlbmFtZSBQcmVkaWNhdGVUPgorICAgICAgICAgICAgc3RydWN0IGxhc3RfZmluZGVyRgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgU2VhcmNoSXRlcmF0b3JUIHNlYXJjaF9pdGVyYXRvcl90eXBlOworICAgICAgICAgICAgICAgIHR5cGVkZWYgZmlyc3RfZmluZGVyRjwKKyAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2l0ZXJhdG9yX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQ+IGZpcnN0X2ZpbmRlcl90eXBlOworCisgICAgICAgICAgICAgICAgLy8gQ29uc3RydWN0aW9uCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlYXJjaFQgPgorICAgICAgICAgICAgICAgIGxhc3RfZmluZGVyRiggY29uc3QgU2VhcmNoVCYgU2VhcmNoLCBQcmVkaWNhdGVUIENvbXAgKSA6CisgICAgICAgICAgICAgICAgICAgIG1fU2VhcmNoKDo6bmRuYm9vc3Q6OmJlZ2luKFNlYXJjaCksIDo6bmRuYm9vc3Q6OmVuZChTZWFyY2gpKSwgbV9Db21wKENvbXApIHt9CisgICAgICAgICAgICAgICAgbGFzdF9maW5kZXJGKAorICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2l0ZXJhdG9yX3R5cGUgU2VhcmNoQmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaXRlcmF0b3JfdHlwZSBTZWFyY2hFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICBQcmVkaWNhdGVUIENvbXAgKSA6CisgICAgICAgICAgICAgICAgICAgIG1fU2VhcmNoKFNlYXJjaEJlZ2luLCBTZWFyY2hFbmQpLCBtX0NvbXAoQ29tcCkge30KKworICAgICAgICAgICAgICAgIC8vIE9wZXJhdGlvbgorICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPgorICAgICAgICAgICAgICAgIG9wZXJhdG9yKCkoCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kICkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4gcmVzdWx0X3R5cGU7CisKKyAgICAgICAgICAgICAgICAgICAgaWYoIG5kbmJvb3N0OjplbXB0eShtX1NlYXJjaCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF90eXBlKCBFbmQsIEVuZCApOworCisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIG5kbmJvb3N0OjpkZXRhaWw6OgorICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3JfdHJhaXRzPEZvcndhcmRJdGVyYXRvclQ+OjppdGVyYXRvcl9jYXRlZ29yeSBjYXRlZ29yeTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmluZGl0KCBCZWdpbiwgRW5kLCBjYXRlZ29yeSgpICk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgaXRlcmF0b3IKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgICAgICBmaW5kaXQoCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kLAorICAgICAgICAgICAgICAgICAgICBzdGQ6OmZvcndhcmRfaXRlcmF0b3JfdGFnICkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgRm9yd2FyZEl0ZXJhdG9yVCBpbnB1dF9pdGVyYXRvcl90eXBlOworICAgICAgICAgICAgICAgICAgICB0eXBlZGVmIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+IHJlc3VsdF90eXBlOworCisgICAgICAgICAgICAgICAgICAgIGZpcnN0X2ZpbmRlcl90eXBlIGZpcnN0X2ZpbmRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fU2VhcmNoLmJlZ2luKCksIG1fU2VhcmNoLmVuZCgpLCBtX0NvbXAgKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZSBNPWZpcnN0X2ZpbmRlciggQmVnaW4sIEVuZCApOworICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZSBMYXN0PU07CisKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoIE0gKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBMYXN0PU07CisgICAgICAgICAgICAgICAgICAgICAgICBNPWZpcnN0X2ZpbmRlciggOjpuZG5ib29zdDo6ZW5kKE0pLCBFbmQgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXN0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGJpZGlyZWN0aW9uYWwgaXRlcmF0b3IKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgICAgICBmaW5kaXQoCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kLAorICAgICAgICAgICAgICAgICAgICBzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnICkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4gcmVzdWx0X3R5cGU7CisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgRm9yd2FyZEl0ZXJhdG9yVCBpbnB1dF9pdGVyYXRvcl90eXBlOworCisgICAgICAgICAgICAgICAgICAgIC8vIE91dGVyIGxvb3AKKyAgICAgICAgICAgICAgICAgICAgZm9yKGlucHV0X2l0ZXJhdG9yX3R5cGUgT3V0ZXJJdD1FbmQ7CisgICAgICAgICAgICAgICAgICAgICAgICBPdXRlckl0IT1CZWdpbjsgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dF9pdGVyYXRvcl90eXBlIE91dGVySXQyPS0tT3V0ZXJJdDsKKworICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfdHlwZSBJbm5lckl0PU91dGVySXQyOworICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2l0ZXJhdG9yX3R5cGUgU3Vic3RySXQ9bV9TZWFyY2guYmVnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcig7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5uZXJJdCE9RW5kICYmIFN1YnN0ckl0IT1tX1NlYXJjaC5lbmQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK0lubmVySXQsKytTdWJzdHJJdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggISggbV9Db21wKCpJbm5lckl0LCpTdWJzdHJJdCkgKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWJzdHJpbmcgbWF0Y2hpbmcgc3VjY2VlZGVkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiggU3Vic3RySXQ9PW1fU2VhcmNoLmVuZCgpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoIE91dGVySXQyLCBJbm5lckl0ICk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoIEVuZCwgRW5kICk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPHNlYXJjaF9pdGVyYXRvcl90eXBlPiBtX1NlYXJjaDsKKyAgICAgICAgICAgICAgICBQcmVkaWNhdGVUIG1fQ29tcDsKKyAgICAgICAgICAgIH07CisKKy8vICBmaW5kIG4tdGggZnVuY3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgICAgIC8vIGZpbmQgdGhlIG4tdGggbWF0Y2ggb2YgYSBzdWJzZXF1ZW5jZSBpbiB0aGUgc2VxdWVuY2UgKCBmdW5jdG9yICkKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgUmV0dXJucyBhIHBhaXIgPGJlZ2luLGVuZD4gbWFya2luZyB0aGUgc3Vic2VxdWVuY2UgaW4gdGhlIHNlcXVlbmNlLgorICAgICAgICAgICAgICAgIElmIHRoZSBmaW5kIGZhaWxzLCByZXR1cm5zIDxFbmQsRW5kPgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlYXJjaEl0ZXJhdG9yVCwgdHlwZW5hbWUgUHJlZGljYXRlVD4KKyAgICAgICAgICAgIHN0cnVjdCBudGhfZmluZGVyRgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgU2VhcmNoSXRlcmF0b3JUIHNlYXJjaF9pdGVyYXRvcl90eXBlOworICAgICAgICAgICAgICAgIHR5cGVkZWYgZmlyc3RfZmluZGVyRjwKKyAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2l0ZXJhdG9yX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQ+IGZpcnN0X2ZpbmRlcl90eXBlOworICAgICAgICAgICAgICAgIHR5cGVkZWYgbGFzdF9maW5kZXJGPAorICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaXRlcmF0b3JfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgUHJlZGljYXRlVD4gbGFzdF9maW5kZXJfdHlwZTsKKworICAgICAgICAgICAgICAgIC8vIENvbnN0cnVjdGlvbgorICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTZWFyY2hUID4KKyAgICAgICAgICAgICAgICBudGhfZmluZGVyRigKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNlYXJjaFQmIFNlYXJjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBOdGgsCisgICAgICAgICAgICAgICAgICAgICAgICBQcmVkaWNhdGVUIENvbXApIDoKKyAgICAgICAgICAgICAgICAgICAgbV9TZWFyY2goOjpuZG5ib29zdDo6YmVnaW4oU2VhcmNoKSwgOjpuZG5ib29zdDo6ZW5kKFNlYXJjaCkpLAorICAgICAgICAgICAgICAgICAgICBtX050aChOdGgpLAorICAgICAgICAgICAgICAgICAgICBtX0NvbXAoQ29tcCkge30KKyAgICAgICAgICAgICAgICBudGhfZmluZGVyRigKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pdGVyYXRvcl90eXBlIFNlYXJjaEJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2l0ZXJhdG9yX3R5cGUgU2VhcmNoRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IE50aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQgQ29tcCkgOgorICAgICAgICAgICAgICAgICAgICBtX1NlYXJjaChTZWFyY2hCZWdpbiwgU2VhcmNoRW5kKSwKKyAgICAgICAgICAgICAgICAgICAgbV9OdGgoTnRoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9Db21wKENvbXApIHt9CisKKyAgICAgICAgICAgICAgICAvLyBPcGVyYXRpb24KKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgICAgICBvcGVyYXRvcigpKAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEJlZ2luLAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCApIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZihtX050aD49MCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRfZm9yd2FyZChCZWdpbiwgRW5kLCBtX050aCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmluZF9iYWNrd2FyZChCZWdpbiwgRW5kLCAtbV9OdGgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgICAgLy8gSW1wbGVtZW50YXRpb24gaGVscGVycworICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPgorICAgICAgICAgICAgICAgIGZpbmRfZm9yd2FyZCgKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQsCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBOKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZWRlZiBGb3J3YXJkSXRlcmF0b3JUIGlucHV0X2l0ZXJhdG9yX3R5cGU7CisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4gcmVzdWx0X3R5cGU7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gU2FuaXR5IGNoZWNrCisgICAgICAgICAgICAgICAgICAgIGlmKCBuZG5ib29zdDo6ZW1wdHkobV9TZWFyY2gpICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggRW5kLCBFbmQgKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZSBmaW5kIGZ1bmN0b3IKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RfZmluZGVyX3R5cGUgZmlyc3RfZmluZGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbV9TZWFyY2guYmVnaW4oKSwgbV9TZWFyY2guZW5kKCksIG1fQ29tcCApOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdF90eXBlIE0oIEJlZ2luLCBCZWdpbiApOworCisgICAgICAgICAgICAgICAgICAgIGZvciggdW5zaWduZWQgaW50IG49MDsgbjw9TjsgKytuICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmluZCBuZXh0IG1hdGNoCisgICAgICAgICAgICAgICAgICAgICAgICBNPWZpcnN0X2ZpbmRlciggOjpuZG5ib29zdDo6ZW5kKE0pLCBFbmQgKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhTSApCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3Vic2VxdWVuY2Ugbm90IGZvdW5kLCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPgorICAgICAgICAgICAgICAgIGZpbmRfYmFja3dhcmQoCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kLAorICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgTikgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHR5cGVkZWYgRm9yd2FyZEl0ZXJhdG9yVCBpbnB1dF9pdGVyYXRvcl90eXBlOworICAgICAgICAgICAgICAgICAgICB0eXBlZGVmIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+IHJlc3VsdF90eXBlOworCisgICAgICAgICAgICAgICAgICAgIC8vIFNhbml0eSBjaGVjaworICAgICAgICAgICAgICAgICAgICBpZiggbmRuYm9vc3Q6OmVtcHR5KG1fU2VhcmNoKSApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoIEVuZCwgRW5kICk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSW5zdGFudGlhdGUgZmluZCBmdW5jdG9yCisgICAgICAgICAgICAgICAgICAgIGxhc3RfZmluZGVyX3R5cGUgbGFzdF9maW5kZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBtX1NlYXJjaC5iZWdpbigpLCBtX1NlYXJjaC5lbmQoKSwgbV9Db21wICk7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3R5cGUgTSggRW5kLCBFbmQgKTsKKworICAgICAgICAgICAgICAgICAgICBmb3IoIHVuc2lnbmVkIGludCBuPTE7IG48PU47ICsrbiApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgbmV4dCBtYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgTT1sYXN0X2ZpbmRlciggQmVnaW4sIDo6bmRuYm9vc3Q6OmJlZ2luKE0pICk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIU0gKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN1YnNlcXVlbmNlIG5vdCBmb3VuZCwgcmV0dXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTTsKKyAgICAgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxzZWFyY2hfaXRlcmF0b3JfdHlwZT4gbV9TZWFyY2g7CisgICAgICAgICAgICAgICAgaW50IG1fTnRoOworICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQgbV9Db21wOworICAgICAgICAgICAgfTsKKworLy8gIGZpbmQgaGVhZC90YWlsIGltcGxlbWVudGF0aW9uIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPgorICAgICAgICAgICAgZmluZF9oZWFkX2ltcGwoCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCwKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgTiwKKyAgICAgICAgICAgICAgICBzdGQ6OmZvcndhcmRfaXRlcmF0b3JfdGFnICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEZvcndhcmRJdGVyYXRvclQgaW5wdXRfaXRlcmF0b3JfdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+IHJlc3VsdF90eXBlOworCisgICAgICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfdHlwZSBJdD1CZWdpbjsKKyAgICAgICAgICAgICAgICBmb3IoCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBJbmRleD0wOworICAgICAgICAgICAgICAgICAgICBJbmRleDxOICYmIEl0IT1FbmQ7ICsrSW5kZXgsKytJdCApIHt9OworCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF90eXBlKCBCZWdpbiwgSXQgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvclQgPgorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+CisgICAgICAgICAgICBmaW5kX2hlYWRfaW1wbCgKKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEJlZ2luLAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kLAorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBOLAorICAgICAgICAgICAgICAgIHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgRm9yd2FyZEl0ZXJhdG9yVCBpbnB1dF9pdGVyYXRvcl90eXBlOworICAgICAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4gcmVzdWx0X3R5cGU7CisKKyAgICAgICAgICAgICAgICBpZiAoIChFbmQ8PUJlZ2luKSB8fCAoIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oRW5kLUJlZ2luKSA8IE4gKSApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggQmVnaW4sIEVuZCApOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF90eXBlKEJlZ2luLEJlZ2luK04pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGaW5kIGhlYWQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvclQ+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgIGZpbmRfaGVhZF9pbXBsKAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQsCisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IE4gKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIG5kbmJvb3N0OjpkZXRhaWw6OgorICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcl90cmFpdHM8Rm9yd2FyZEl0ZXJhdG9yVD46Oml0ZXJhdG9yX2NhdGVnb3J5IGNhdGVnb3J5OworCisgICAgICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpmaW5kX2hlYWRfaW1wbCggQmVnaW4sIEVuZCwgTiwgY2F0ZWdvcnkoKSApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgIGZpbmRfdGFpbF9pbXBsKAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQsCisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IE4sCisgICAgICAgICAgICAgICAgc3RkOjpmb3J3YXJkX2l0ZXJhdG9yX3RhZyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBGb3J3YXJkSXRlcmF0b3JUIGlucHV0X2l0ZXJhdG9yX3R5cGU7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPiByZXN1bHRfdHlwZTsKKworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBJbmRleD0wOworICAgICAgICAgICAgICAgIGlucHV0X2l0ZXJhdG9yX3R5cGUgSXQ9QmVnaW47CisgICAgICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfdHlwZSBJdDI9QmVnaW47CisKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIEl0MiBieSBOIGluY3JlbWVudHMKKyAgICAgICAgICAgICAgICBmb3IoIEluZGV4PTA7IEluZGV4PE4gJiYgSXQyIT1FbmQ7ICsrSW5kZXgsKytJdDIgKSB7fTsKKworICAgICAgICAgICAgICAgIC8vIEFkdmFuY2UgSXQsIEl0MiB0byB0aGUgZW5kCisgICAgICAgICAgICAgICAgZm9yKDsgSXQyIT1FbmQ7ICsrSXQsKytJdDIgKSB7fTsKKworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggSXQsIEl0MiApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgIGZpbmRfdGFpbF9pbXBsKAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQsCisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IE4sCisgICAgICAgICAgICAgICAgc3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9yX3RhZyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBGb3J3YXJkSXRlcmF0b3JUIGlucHV0X2l0ZXJhdG9yX3R5cGU7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPiByZXN1bHRfdHlwZTsKKworICAgICAgICAgICAgICAgIGlucHV0X2l0ZXJhdG9yX3R5cGUgSXQ9RW5kOworICAgICAgICAgICAgICAgIGZvcigKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IEluZGV4PTA7CisgICAgICAgICAgICAgICAgICAgIEluZGV4PE4gJiYgSXQhPUJlZ2luOyArK0luZGV4LC0tSXQgKSB7fTsKKworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggSXQsIEVuZCApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgICAgIGZpbmRfdGFpbF9pbXBsKAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQsCisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IE4sCisgICAgICAgICAgICAgICAgc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBGb3J3YXJkSXRlcmF0b3JUIGlucHV0X2l0ZXJhdG9yX3R5cGU7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPiByZXN1bHRfdHlwZTsKKworICAgICAgICAgICAgICAgIGlmICggKEVuZDw9QmVnaW4pIHx8ICggc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihFbmQtQmVnaW4pIDwgTiApICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdF90eXBlKCBCZWdpbiwgRW5kICk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoIEVuZC1OLCBFbmQgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPgorICAgICAgICAgICAgZmluZF90YWlsX2ltcGwoCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCwKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgTiApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9TVFJJTkdfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6CisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0b3JUPjo6aXRlcmF0b3JfY2F0ZWdvcnkgY2F0ZWdvcnk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfdGFpbF9pbXBsKCBCZWdpbiwgRW5kLCBOLCBjYXRlZ29yeSgpICk7CisgICAgICAgICAgICB9CisKKworCisvLyAgZmluZCBoZWFkIGZ1bmN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisKKyAgICAgICAgICAgIC8vIGZpbmQgYSBoZWFkIGluIHRoZSBzZXF1ZW5jZSAoIGZ1bmN0b3IgKQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0b3IgZmluZCBhIGhlYWQgb2YgdGhlIHNwZWNpZmllZCByYW5nZS4gRm9yCisgICAgICAgICAgICAgICAgYSBzcGVjaWZpZWQgTiwgdGhlIGhlYWQgaXMgYSBzdWJzZXF1ZW5jZSBvZiBOIHN0YXJ0aW5nCisgICAgICAgICAgICAgICAgZWxlbWVudHMgb2YgdGhlIHJhbmdlLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHN0cnVjdCBoZWFkX2ZpbmRlckYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICBoZWFkX2ZpbmRlckYoIGludCBOICkgOiBtX04oTikge30KKworICAgICAgICAgICAgICAgIC8vIE9wZXJhdGlvbgorICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPgorICAgICAgICAgICAgICAgIG9wZXJhdG9yKCkoCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgQmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kICkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmKG1fTj49MCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZGV0YWlsOjpmaW5kX2hlYWRfaW1wbCggQmVnaW4sIEVuZCwgbV9OICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPiBSZXM9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfdGFpbF9pbXBsKCBCZWdpbiwgRW5kLCAtbV9OICk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKEJlZ2luLCBSZXMuYmVnaW4oKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgICAgaW50IG1fTjsKKyAgICAgICAgICAgIH07CisKKy8vICBmaW5kIHRhaWwgZnVuY3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKworICAgICAgICAgICAgLy8gZmluZCBhIHRhaWwgaW4gdGhlIHNlcXVlbmNlICggZnVuY3RvciApCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIFRoaXMgZnVuY3RvciBmaW5kIGEgdGFpbCBvZiB0aGUgc3BlY2lmaWVkIHJhbmdlLiBGb3IKKyAgICAgICAgICAgICAgICBhIHNwZWNpZmllZCBOLCB0aGUgaGVhZCBpcyBhIHN1YnNlcXVlbmNlIG9mIE4gc3RhcnRpbmcKKyAgICAgICAgICAgICAgICBlbGVtZW50cyBvZiB0aGUgcmFuZ2UuCisgICAgICAgICAgICAqLworICAgICAgICAgICAgc3RydWN0IHRhaWxfZmluZGVyRgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIENvbnN0cnVjdGlvbgorICAgICAgICAgICAgICAgIHRhaWxfZmluZGVyRiggaW50IE4gKSA6IG1fTihOKSB7fQorCisgICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvclQgPgorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+CisgICAgICAgICAgICAgICAgb3BlcmF0b3IoKSgKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQgKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYobV9OPj0wKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OmZpbmRfdGFpbF9pbXBsKCBCZWdpbiwgRW5kLCBtX04gKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+IFJlcz0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6ZmluZF9oZWFkX2ltcGwoIEJlZ2luLCBFbmQsIC1tX04gKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6Om1ha2VfaXRlcmF0b3JfcmFuZ2UoUmVzLmVuZCgpLCBFbmQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICAgIGludCBtX047CisgICAgICAgICAgICB9OworCisvLyAgZmluZCB0b2tlbiBmdW5jdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgLy8gZmluZCBhIHRva2VuIGluIGEgc2VxdWVuY2UgKCBmdW5jdG9yICkKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgVGhpcyBmaW5kIGZ1bmN0b3IgZmluZHMgYSB0b2tlbiBzcGVjaWZpZWQgYmUgYSBwcmVkaWNhdGUKKyAgICAgICAgICAgICAgICBpbiBhIHNlcXVlbmNlLiBJdCBpcyBlcXVpdmFsZW50IG9mIHN0ZDo6ZmluZCBhbGdvcml0aG0sCisgICAgICAgICAgICAgICAgd2l0aCBhbiBleGNlcHRpb24gdGhhdCBpdCByZXR1cm4gcmFuZ2UgaW5zdGVhZCBvZiBhIHNpbmdsZQorICAgICAgICAgICAgICAgIGl0ZXJhdG9yLgorCisgICAgICAgICAgICAgICAgSWYgYkNvbXByZXNzIGlzIHNldCB0byB0cnVlLCBhZGphY2VudCBtYXRjaGluZyB0b2tlbnMgYXJlCisgICAgICAgICAgICAgICAgY29uY2F0ZW5hdGVkIGludG8gb25lIG1hdGNoLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQcmVkaWNhdGVUID4KKyAgICAgICAgICAgIHN0cnVjdCB0b2tlbl9maW5kZXJGCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gQ29uc3RydWN0aW9uCisgICAgICAgICAgICAgICAgdG9rZW5fZmluZGVyRigKKyAgICAgICAgICAgICAgICAgICAgUHJlZGljYXRlVCBQcmVkLAorICAgICAgICAgICAgICAgICAgICB0b2tlbl9jb21wcmVzc19tb2RlX3R5cGUgZUNvbXByZXNzPXRva2VuX2NvbXByZXNzX29mZiApIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fUHJlZChQcmVkKSwgbV9lQ29tcHJlc3MoZUNvbXByZXNzKSB7fQorCisgICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvclQgPgorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPEZvcndhcmRJdGVyYXRvclQ+CisgICAgICAgICAgICAgICAgb3BlcmF0b3IoKSgKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQgKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPiByZXN1bHRfdHlwZTsKKworICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEl0PXN0ZDo6ZmluZF9pZiggQmVnaW4sIEVuZCwgbV9QcmVkICk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYoIEl0PT1FbmQgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoIEVuZCwgRW5kICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEl0Mj1JdDsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIG1fZUNvbXByZXNzPT10b2tlbl9jb21wcmVzc19vbiApCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmluZCBmaXJzdCBub24tbWF0Y2hpbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoIEl0MiE9RW5kICYmIG1fUHJlZCgqSXQyKSApICsrSXQyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkdmFuY2UgYnkgb25lIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytJdDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRfdHlwZSggSXQsIEl0MiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQgbV9QcmVkOworICAgICAgICAgICAgICAgIHRva2VuX2NvbXByZXNzX21vZGVfdHlwZSBtX2VDb21wcmVzczsKKyAgICAgICAgICAgIH07CisKKy8vICBmaW5kIHJhbmdlIGZ1bmN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgICAgICAvLyBmaW5kIGEgcmFuZ2UgaW4gdGhlIHNlcXVlbmNlICggZnVuY3RvciApCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIFRoaXMgZnVuY3RvciBhY3R1YWxseSBkb2VzIG5vdCBwZXJmb3JtIGFueSBmaW5kIG9wZXJhdGlvbi4KKyAgICAgICAgICAgICAgICBJdCBhbHdheXMgcmV0dXJucyBnaXZlbiBpdGVyYXRvciByYW5nZSBhcyBhIHJlc3VsdC4KKyAgICAgICAgICAgICovCisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3IxVD4KKyAgICAgICAgICAgIHN0cnVjdCByYW5nZV9maW5kZXJGCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBGb3J3YXJkSXRlcmF0b3IxVCBpbnB1dF9pdGVyYXRvcl90eXBlOworICAgICAgICAgICAgICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2U8aW5wdXRfaXRlcmF0b3JfdHlwZT4gcmVzdWx0X3R5cGU7CisKKyAgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICByYW5nZV9maW5kZXJGKAorICAgICAgICAgICAgICAgICAgICBpbnB1dF9pdGVyYXRvcl90eXBlIEJlZ2luLAorICAgICAgICAgICAgICAgICAgICBpbnB1dF9pdGVyYXRvcl90eXBlIEVuZCApIDogbV9SYW5nZShCZWdpbiwgRW5kKSB7fQorCisgICAgICAgICAgICAgICAgcmFuZ2VfZmluZGVyRihjb25zdCBpdGVyYXRvcl9yYW5nZTxpbnB1dF9pdGVyYXRvcl90eXBlPiYgUmFuZ2UpIDoKKyAgICAgICAgICAgICAgICAgICAgbV9SYW5nZShSYW5nZSkge30KKworICAgICAgICAgICAgICAgIC8vIE9wZXJhdGlvbgorICAgICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3IyVCA+CisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2U8Rm9yd2FyZEl0ZXJhdG9yMlQ+CisgICAgICAgICAgICAgICAgb3BlcmF0b3IoKSgKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yMlQsCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvcjJUICkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisjaWYgQk9PU1RfV09SS0FST1VORCggX19NV0VSS1NfXywgPD0gMHgzMDAzICkgCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZTxjb25zdCBGb3J3YXJkSXRlcmF0b3IyVD4odGhpcy0+bV9SYW5nZSk7CisjZWxpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3IyVD4obV9SYW5nZS5iZWdpbigpLCBtX1JhbmdlLmVuZCgpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtX1JhbmdlOworI2VuZGlmCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPGlucHV0X2l0ZXJhdG9yX3R5cGU+IG1fUmFuZ2U7CisgICAgICAgICAgICB9OworCisKKyAgICAgICAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vIEJPT1NUX1NUUklOR19GSU5ERVJfREVUQUlMX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9mb3JtYXR0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9mb3JtYXR0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMDczMTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2Zvcm1hdHRlci5ocHAKQEAgLTAsMCArMSwxMTkgQEAKKy8vICBCb29zdCBzdHJpbmdfYWxnbyBsaWJyYXJ5IGZvcm1hdHRlci5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgUGF2b2wgRHJvYmEgMjAwMi0yMDAzLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisKKyNpZm5kZWYgQk9PU1RfU1RSSU5HX0ZPUk1BVFRFUl9ERVRBSUxfSFBQCisjZGVmaW5lIEJPT1NUX1NUUklOR19GT1JNQVRURVJfREVUQUlMX0hQUAorCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uc3RfaXRlcmF0b3IuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvdXRpbC5ocHA+CisKKy8vICBnZW5lcmljIHJlcGxhY2UgZnVuY3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworICAgICAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gIGNvbnN0IGZvcm1hdCBmdW5jdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgICAgICAvLyBjb25zdGFudCBmb3JtYXQgZnVuY3RvcgorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmFuZ2VUPgorICAgICAgICAgICAgc3RydWN0IGNvbnN0X2Zvcm1hdEYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9TVFJJTkdfVFlQRU5BTUUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZSBmb3JtYXRfaXRlcmF0b3I7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZTxmb3JtYXRfaXRlcmF0b3I+IHJlc3VsdF90eXBlOworICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAgICAgLy8gQ29uc3RydWN0aW9uCisgICAgICAgICAgICAgICAgY29uc3RfZm9ybWF0Rihjb25zdCBSYW5nZVQmIEZvcm1hdCkgOgorICAgICAgICAgICAgICAgICAgICBtX0Zvcm1hdCg6Om5kbmJvb3N0OjpiZWdpbihGb3JtYXQpLCA6Om5kbmJvb3N0OjplbmQoRm9ybWF0KSkge30KKworICAgICAgICAgICAgICAgIC8vIE9wZXJhdGlvbgorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQorICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgICAgICAgICAgcmVzdWx0X3R5cGUmIG9wZXJhdG9yKCkoY29uc3QgUmFuZ2UyVCYpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9Gb3JtYXQ7CisgICAgICAgICAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSYW5nZTJUPgorICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdF90eXBlJiBvcGVyYXRvcigpKGNvbnN0IFJhbmdlMlQmKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fRm9ybWF0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgICAgICByZXN1bHRfdHlwZSBtX0Zvcm1hdDsKKyAgICAgICAgICAgIH07CisKKy8vICBpZGVudGl0eSBmb3JtYXQgZnVuY3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgLy8gaWRlbnRpdHkgZm9ybWF0IGZ1bmN0b3IKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJhbmdlVD4KKyAgICAgICAgICAgIHN0cnVjdCBpZGVudGl0eV9mb3JtYXRGCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFJhbmdlMlQgPgorICAgICAgICAgICAgICAgIGNvbnN0IFJhbmdlVCYgb3BlcmF0b3IoKShjb25zdCBSYW5nZTJUJiBSZXBsYWNlKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJhbmdlVCg6Om5kbmJvb3N0OjpiZWdpbihSZXBsYWNlKSwgOjpuZG5ib29zdDo6ZW5kKFJlcGxhY2UpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisvLyAgZW1wdHkgZm9ybWF0IGZ1bmN0b3IgKCB1c2VkIGJ5IGVyYXNlICkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKyAgICAgICAgCisgICAgICAgICAgICAvLyBlbXB0eSBmb3JtYXQgZnVuY3RvcgorICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIENoYXJUID4KKyAgICAgICAgICAgIHN0cnVjdCBlbXB0eV9mb3JtYXRGCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFJlcGxhY2VUID4KKyAgICAgICAgICAgICAgICBlbXB0eV9jb250YWluZXI8Q2hhclQ+IG9wZXJhdG9yKCkoY29uc3QgUmVwbGFjZVQmKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5X2NvbnRhaW5lcjxDaGFyVD4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisvLyAgZGlzc2VjdCBmb3JtYXQgZnVuY3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgLy8gZGlzc2VjdCBmb3JtYXQgZnVuY3RvcgorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRmluZGVyVD4KKyAgICAgICAgICAgIHN0cnVjdCBkaXNzZWN0X2Zvcm1hdEYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICBkaXNzZWN0X2Zvcm1hdEYoRmluZGVyVCBGaW5kZXIpIDoKKyAgICAgICAgICAgICAgICAgIG1fRmluZGVyKEZpbmRlcikge30KKworICAgICAgICAgICAgICAgICAgLy8gT3BlcmF0aW9uCisgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSYW5nZVQ+CisgICAgICAgICAgICAgICAgICBpbmxpbmUgaXRlcmF0b3JfcmFuZ2U8IAorICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlPgorICAgICAgICAgICAgICAgICAgb3BlcmF0b3IoKShjb25zdCBSYW5nZVQmIFJlcGxhY2UpIGNvbnN0CisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fRmluZGVyKDo6bmRuYm9vc3Q6OmJlZ2luKFJlcGxhY2UpLCA6Om5kbmJvb3N0OjplbmQoUmVwbGFjZSkpOworICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgICAgIEZpbmRlclQgbV9GaW5kZXI7CisgICAgICAgICAgICB9OworCisKKyAgICAgICAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vIEJPT1NUX1NUUklOR19GT1JNQVRURVJfREVUQUlMX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9yZXBsYWNlX3N0b3JhZ2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9yZXBsYWNlX3N0b3JhZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmYjZjNTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3JlcGxhY2Vfc3RvcmFnZS5ocHAKQEAgLTAsMCArMSwxNTkgQEAKKy8vICBCb29zdCBzdHJpbmdfYWxnbyBsaWJyYXJ5IHJlcGxhY2Vfc3RvcmFnZS5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgUGF2b2wgRHJvYmEgMjAwMi0yMDAzLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy8gZm9yIHVwZGF0ZXMsIGRvY3VtZW50YXRpb24sIGFuZCByZXZpc2lvbiBoaXN0b3J5LgorCisjaWZuZGVmIEJPT1NUX1NUUklOR19SRVBMQUNFX1NUT1JBR0VfREVUQUlMX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfUkVQTEFDRV9TVE9SQUdFX0RFVEFJTF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvc2VxdWVuY2VfdHJhaXRzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9zZXF1ZW5jZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGFsZ29yaXRobSB7CisgICAgICAgIG5hbWVzcGFjZSBkZXRhaWwgeworCisvLyAgc3RvcmFnZSBoYW5kbGluZyByb3V0aW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTdG9yYWdlVCwgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JUID4KKyAgICAgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgbW92ZV9mcm9tX3N0b3JhZ2UoCisgICAgICAgICAgICAgICAgU3RvcmFnZVQmIFN0b3JhZ2UsCisgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIERlc3RCZWdpbiwKKyAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgRGVzdEVuZCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIE91dHB1dEl0PURlc3RCZWdpbjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSggIVN0b3JhZ2UuZW1wdHkoKSAmJiBPdXRwdXRJdCE9RGVzdEVuZCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAqT3V0cHV0SXQ9U3RvcmFnZS5mcm9udCgpOworICAgICAgICAgICAgICAgICAgICBTdG9yYWdlLnBvcF9mcm9udCgpOworICAgICAgICAgICAgICAgICAgICArK091dHB1dEl0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBPdXRwdXRJdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFN0b3JhZ2VULCB0eXBlbmFtZSBXaGF0VCA+CisgICAgICAgICAgICBpbmxpbmUgdm9pZCBjb3B5X3RvX3N0b3JhZ2UoCisgICAgICAgICAgICAgICAgU3RvcmFnZVQmIFN0b3JhZ2UsCisgICAgICAgICAgICAgICAgY29uc3QgV2hhdFQmIFdoYXQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN0b3JhZ2UuaW5zZXJ0KCBTdG9yYWdlLmVuZCgpLCA6Om5kbmJvb3N0OjpiZWdpbihXaGF0KSwgOjpuZG5ib29zdDo6ZW5kKFdoYXQpICk7CisgICAgICAgICAgICB9CisKKworLy8gIHByb2Nlc3Mgc2VnbWVudCByb3V0aW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgdGVtcGxhdGU8IGJvb2wgSGFzU3RhYmxlSXRlcmF0b3JzID4KKyAgICAgICAgICAgIHN0cnVjdCBwcm9jZXNzX3NlZ21lbnRfaGVscGVyCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gT3B0aW1pemVkIHZlcnNpb24gb2YgcHJvY2Vzc19zZWdtZW50IGZvciBnZW5lcmljIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBTdG9yYWdlVCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgSW5wdXRULAorICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIG9wZXJhdG9yKCkoCisgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2VUJiBTdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICBJbnB1dFQmIC8qSW5wdXQqLywKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBJbnNlcnRJdCwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBTZWdtZW50QmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgU2VnbWVudEVuZCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IGRhdGEgZnJvbSB0aGUgc3RvcmFnZSB1bnRpbCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWdtZW50CisgICAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgSXQ9OjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6Om1vdmVfZnJvbV9zdG9yYWdlKCBTdG9yYWdlLCBJbnNlcnRJdCwgU2VnbWVudEJlZ2luICk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gMyBjYXNlcyBhcmUgcG9zc2libGUgOgorICAgICAgICAgICAgICAgICAgICAvLyAgIGEpIFN0b3JhZ2UgaXMgZW1wdHksIEl0PT1TZWdtZW50QmVnaW4KKyAgICAgICAgICAgICAgICAgICAgLy8gICBiKSBTdG9yYWdlIGlzIGVtcHR5LCBJdCE9U2VnbWVudEJlZ2luCisgICAgICAgICAgICAgICAgICAgIC8vICAgYykgU3RvcmFnZSBpcyBub3QgZW1wdHkKKworICAgICAgICAgICAgICAgICAgICBpZiggU3RvcmFnZS5lbXB0eSgpICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIEl0PT1TZWdtZW50QmVnaW4gKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhc2UgYSkgZXZlcnl0aGluZyBpcyBncmFuZCwganVzdCByZXR1cm4gZW5kIG9mIHNlZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2VnbWVudEVuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIGIpIG1vdmUgdGhlIHNlZ21lbnQgYmFja3dhcmRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6Y29weSggU2VnbWVudEJlZ2luLCBTZWdtZW50RW5kLCBJdCApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBjKSAtPiBzaGlmdCB0aGUgc2VnbWVudCB0byB0aGUgbGVmdCBhbmQga2VlcCB0aGUgb3ZlcmxhcCBpbiB0aGUgc3RvcmFnZQorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoIEl0IT1TZWdtZW50RW5kICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdG9yZSB2YWx1ZSBpbnRvIHN0b3JhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdlLnB1c2hfYmFjayggKkl0ICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSB0b3AgZnJvbSB0aGUgc3RvcmFnZSBhbmQgcHV0IGl0IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqSXQ9U3RvcmFnZS5mcm9udCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2UucG9wX2Zyb250KCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZHZhbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytJdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEl0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICAgICAgc3RydWN0IHByb2Nlc3Nfc2VnbWVudF9oZWxwZXI8IHRydWUgPgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIE9wdGltaXplZCB2ZXJzaW9uIG9mIHByb2Nlc3Nfc2VnbWVudCBmb3IgbGlzdC1saWtlIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBTdG9yYWdlVCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgSW5wdXRULAorICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIG9wZXJhdG9yKCkoCisgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2VUJiBTdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEluc2VydEl0LAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIFNlZ21lbnRCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBTZWdtZW50RW5kICkKKworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCByZXBsYWNlIHRvIGRvIHRoZSBqb2IKKyAgICAgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6OnJlcGxhY2UoIElucHV0LCBJbnNlcnRJdCwgU2VnbWVudEJlZ2luLCBTdG9yYWdlICk7CisgICAgICAgICAgICAgICAgICAgIC8vIEVtcHR5IHRoZSBzdG9yYWdlCisgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2UuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gSXRlcmF0b3JzIHdlcmUgbm90IGNoYW5nZWQsIHNpbXBseSByZXR1cm4gdGhlIGVuZCBvZiBzZWdtZW50CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZWdtZW50RW5kOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIC8vIFByb2Nlc3Mgb25lIHNlZ21lbnQgaW4gdGhlIHJlcGxhY2VfYWxsIGFsZ29yaXRobQorICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIFN0b3JhZ2VULAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIElucHV0VCwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgIGlubGluZSBGb3J3YXJkSXRlcmF0b3JUIHByb2Nlc3Nfc2VnbWVudCgKKyAgICAgICAgICAgICAgICBTdG9yYWdlVCYgU3RvcmFnZSwKKyAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgSW5zZXJ0SXQsCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBTZWdtZW50QmVnaW4sCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBTZWdtZW50RW5kICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gCisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nfc2VnbWVudF9oZWxwZXI8IAorICAgICAgICAgICAgICAgICAgICAgICAgaGFzX3N0YWJsZV9pdGVyYXRvcnM8SW5wdXRUPjo6dmFsdWU+KCkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2UsIElucHV0LCBJbnNlcnRJdCwgU2VnbWVudEJlZ2luLCBTZWdtZW50RW5kICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKworICAgICAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX1JFUExBQ0VfU1RPUkFHRV9ERVRBSUxfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3NlcXVlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvc2VxdWVuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiMzlhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3NlcXVlbmNlLmhwcApAQCAtMCwwICsxLDIwMCBAQAorLy8gIEJvb3N0IHN0cmluZ19hbGdvIGxpYnJhcnkgc2VxdWVuY2UuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwMy4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfREVUQUlMX1NFUVVFTkNFX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfREVUQUlMX1NFUVVFTkNFX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbG9naWNhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2VuZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL3NlcXVlbmNlX3RyYWl0cy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGFsZ29yaXRobSB7CisgICAgICAgIG5hbWVzcGFjZSBkZXRhaWwgeworCisvLyAgaW5zZXJ0IGhlbHBlcnMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworICAgICAgICAKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJbnB1dFQsIHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvclQgPgorICAgICAgICAgICAgaW5saW5lIHZvaWQgaW5zZXJ0KAorICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIElucHV0VDo6aXRlcmF0b3IgQXQsCisgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5wdXQuaW5zZXJ0KCBBdCwgQmVnaW4sIEVuZCApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSW5wdXRULCB0eXBlbmFtZSBJbnNlcnRUID4KKyAgICAgICAgICAgIGlubGluZSB2b2lkIGluc2VydCgKKyAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIEF0LAorICAgICAgICAgICAgICAgIGNvbnN0IEluc2VydFQmIEluc2VydCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpkZXRhaWw6Omluc2VydCggSW5wdXQsIEF0LCA6Om5kbmJvb3N0OjpiZWdpbihJbnNlcnQpLCA6Om5kbmJvb3N0OjplbmQoSW5zZXJ0KSApOworICAgICAgICAgICAgfQorICAgICAgICAgICAKKy8vICBlcmFzZSBoZWxwZXIgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgICAgIC8vIEVyYXNlIGEgcmFuZ2UgaW4gdGhlIHNlcXVlbmNlCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIFJldHVybnMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIGp1c3QgYWZ0ZXIgdGhlIGVyYXNlIHN1YnJhbmdlCisgICAgICAgICAgICAqLworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIElucHV0VCA+CisgICAgICAgICAgICBpbmxpbmUgdHlwZW5hbWUgSW5wdXRUOjppdGVyYXRvciBlcmFzZSgKKyAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIEZyb20sCisgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIElucHV0VDo6aXRlcmF0b3IgVG8gKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBJbnB1dC5lcmFzZSggRnJvbSwgVG8gKTsKKyAgICAgICAgICAgIH0KKworLy8gIHJlcGxhY2UgaGVscGVyIGltcGxlbWVudGF0aW9uICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAgICAgLy8gT3B0aW1pemVkIHZlcnNpb24gb2YgcmVwbGFjZSBmb3IgZ2VuZXJpYyBzZXF1ZW5jZSBjb250YWluZXJzCisgICAgICAgICAgICAvLyBBc3N1bXB0aW9uOiBpbnNlcnQgYW5kIGVyYXNlIGFyZSBleHBlbnNpdmUKKyAgICAgICAgICAgIHRlbXBsYXRlPCBib29sIEhhc0NvbnN0VGltZU9wZXJhdGlvbnMgPgorICAgICAgICAgICAgc3RydWN0IHJlcGxhY2VfY29uc3RfdGltZV9oZWxwZXIKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSW5wdXRULCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkoCisgICAgICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIEZyb20sCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIFRvLAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEJlZ2luLAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IGRhdGEgdG8gdGhlIGNvbnRhaW5lciAoIGFzIG11Y2ggYXMgcG9zc2libGUgKQorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEluc2VydEl0PUJlZ2luOworICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBJbnB1dEl0PUZyb207CisgICAgICAgICAgICAgICAgICAgIGZvcig7IEluc2VydEl0IT1FbmQgJiYgSW5wdXRJdCE9VG87IEluc2VydEl0KyssIElucHV0SXQrKyApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICpJbnB1dEl0PSpJbnNlcnRJdDsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmICggSW5zZXJ0SXQhPUVuZCApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2Ugc2VxdWVuY2UgaXMgbG9uZ2VyLCBpbnNlcnQgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0Lmluc2VydCggSW5wdXRJdCwgSW5zZXJ0SXQsIEVuZCApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBJbnB1dEl0IT1UbyApCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSBzZXF1ZW5jZSBpcyBzaG9ydGVyLCBlcmFzZSB0aGUgcmVzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIElucHV0LmVyYXNlKCBJbnB1dEl0LCBUbyApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICAgICAgc3RydWN0IHJlcGxhY2VfY29uc3RfdGltZV9oZWxwZXI8IHRydWUgPgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIENvbnN0LXRpbWUgZXJhc2UgYW5kIGluc2VydCBtZXRob2RzIC0+IHVzZSB0aGVtCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIElucHV0VCwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgdm9pZCBvcGVyYXRvcigpKAorICAgICAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBGcm9tLAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBUbywKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQgKSAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIEF0PUlucHV0LmVyYXNlKCBGcm9tLCBUbyApOworICAgICAgICAgICAgICAgICAgICBpZiAoIEJlZ2luIT1FbmQgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighSW5wdXQuZW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dC5pbnNlcnQoIEF0LCBCZWdpbiwgRW5kICk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXQuaW5zZXJ0KCBJbnB1dC5iZWdpbigpLCBCZWdpbiwgRW5kICk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICAvLyBObyBuYXRpdmUgcmVwbGFjZSBtZXRob2QKKyAgICAgICAgICAgIHRlbXBsYXRlPCBib29sIEhhc05hdGl2ZSA+CisgICAgICAgICAgICBzdHJ1Y3QgcmVwbGFjZV9uYXRpdmVfaGVscGVyCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIElucHV0VCwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICAgICAgdm9pZCBvcGVyYXRvcigpKAorICAgICAgICAgICAgICAgICAgICBJbnB1dFQmIElucHV0LAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBGcm9tLAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBUbywKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBFbmQgKSAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VfY29uc3RfdGltZV9oZWxwZXI8IAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om1wbDo6YW5kXzwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNfY29uc3RfdGltZV9pbnNlcnQ8SW5wdXRUPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNfY29uc3RfdGltZV9lcmFzZTxJbnB1dFQ+ID46OnZhbHVlID4oKSgKKyAgICAgICAgICAgICAgICAgICAgICAgIElucHV0LCBGcm9tLCBUbywgQmVnaW4sIEVuZCApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIC8vIENvbnRhaW5lciBoYXMgbmF0aXZlIHJlcGxhY2UgbWV0aG9kCisgICAgICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgICAgICBzdHJ1Y3QgcmVwbGFjZV9uYXRpdmVfaGVscGVyPCB0cnVlID4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSW5wdXRULCB0eXBlbmFtZSBGb3J3YXJkSXRlcmF0b3JUID4KKyAgICAgICAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkoCisgICAgICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIEZyb20sCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIFRvLAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEJlZ2luLAorICAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEVuZCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnB1dC5yZXBsYWNlKCBGcm9tLCBUbywgQmVnaW4sIEVuZCApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKy8vICByZXBsYWNlIGhlbHBlciAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisgICAgICAgIAorICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIElucHV0VCwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgICAgICBpbmxpbmUgdm9pZCByZXBsYWNlKAorICAgICAgICAgICAgICAgIElucHV0VCYgSW5wdXQsCisgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIElucHV0VDo6aXRlcmF0b3IgRnJvbSwKKyAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBUbywKKyAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3JUIEJlZ2luLAorICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlX25hdGl2ZV9oZWxwZXI8IGhhc19uYXRpdmVfcmVwbGFjZTxJbnB1dFQ+Ojp2YWx1ZSA+KCkoCisgICAgICAgICAgICAgICAgICAgIElucHV0LCBGcm9tLCBUbywgQmVnaW4sIEVuZCApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSW5wdXRULCB0eXBlbmFtZSBJbnNlcnRUID4KKyAgICAgICAgICAgIGlubGluZSB2b2lkIHJlcGxhY2UoCisgICAgICAgICAgICAgICAgSW5wdXRUJiBJbnB1dCwKKyAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgSW5wdXRUOjppdGVyYXRvciBGcm9tLAorICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSBJbnB1dFQ6Oml0ZXJhdG9yIFRvLAorICAgICAgICAgICAgICAgIGNvbnN0IEluc2VydFQmIEluc2VydCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYoRnJvbSE9VG8pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6cmVwbGFjZSggSW5wdXQsIEZyb20sIFRvLCA6Om5kbmJvb3N0OjpiZWdpbihJbnNlcnQpLCA6Om5kbmJvb3N0OjplbmQoSW5zZXJ0KSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmRldGFpbDo6aW5zZXJ0KCBJbnB1dCwgRnJvbSwgOjpuZG5ib29zdDo6YmVnaW4oSW5zZXJ0KSwgOjpuZG5ib29zdDo6ZW5kKEluc2VydCkgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX0RFVEFJTF9TRVFVRU5DRV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvdXRpbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3V0aWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMzQ1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL3V0aWwuaHBwCkBAIC0wLDAgKzEsMTA2IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSB1dGlsLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCBQYXZvbCBEcm9iYSAyMDAyLTIwMDMuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisKKyNpZm5kZWYgQk9PU1RfU1RSSU5HX1VUSUxfREVUQUlMX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfVVRJTF9ERVRBSUxfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGFsZ29yaXRobSB7CisgICAgICAgIG5hbWVzcGFjZSBkZXRhaWwgeworCisvLyAgZW1wdHkgY29udGFpbmVyICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgICAgIC8vICBlbXB0eV9jb250YWluZXIgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhbHdheXMgZW1wdHkgY29udGFpbmVyLAorICAgICAgICAgICAgICAgIGNvbnRhaW5pbmcgZWxlbWVudHMgb2YgdHlwZSBDaGFyVC4KKworICAgICAgICAgICAgICAgIEl0IGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gYSBjb25zdCB2ZXJzaW9uIG9ubHkKKyAgICAgICAgICAgICovCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQ2hhclQgPgorICAgICAgICAgICAgc3RydWN0IGVtcHR5X2NvbnRhaW5lciAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGVtcHR5X2NvbnRhaW5lcjxDaGFyVD4gdHlwZTsgICAgICAgIAorICAgICAgICAgICAgICAgIHR5cGVkZWYgQ2hhclQgdmFsdWVfdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90IHNpemVfdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6cHRyZGlmZl90IGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IHZhbHVlX3R5cGUmIHJlZmVyZW5jZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IHZhbHVlX3R5cGUmIGNvbnN0X3JlZmVyZW5jZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IHZhbHVlX3R5cGUqIGl0ZXJhdG9yOworICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgdmFsdWVfdHlwZSogY29uc3RfaXRlcmF0b3I7CisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBPcGVyYXRpb25zCisgICAgICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3RfaXRlcmF0b3I+KDApOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdF9pdGVyYXRvcj4oMCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYm9vbCBlbXB0eSgpIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgc2l6ZV90eXBlIHNpemUoKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAKKy8vICBib3VuZGVkIGNvcHkgYWxnb3JpdGhtICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgICAgIC8vIEJvdW5kZWQgdmVyc2lvbiBvZiB0aGUgc3RkOjpjb3B5IGFsZ29yaXRobQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRJdGVyYXRvclQsIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVD4KKyAgICAgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgYm91bmRlZF9jb3B5KAorICAgICAgICAgICAgICAgIElucHV0SXRlcmF0b3JUIEZpcnN0LCAKKyAgICAgICAgICAgICAgICBJbnB1dEl0ZXJhdG9yVCBMYXN0LCAKKyAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgRGVzdEZpcnN0LAorICAgICAgICAgICAgICAgIE91dHB1dEl0ZXJhdG9yVCBEZXN0TGFzdCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5wdXRJdGVyYXRvclQgSW5wdXRJdD1GaXJzdDsKKyAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0SXQ9RGVzdEZpcnN0OworICAgICAgICAgICAgICAgIGZvcig7IElucHV0SXQhPUxhc3QgJiYgT3V0cHV0SXQhPURlc3RMYXN0OyBJbnB1dEl0KyssIE91dHB1dEl0KysgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgKk91dHB1dEl0PSpJbnB1dEl0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBPdXRwdXRJdDsKKyAgICAgICAgICAgIH0KKworLy8gIGl0ZXJhdG9yIHJhbmdlIHV0aWxpdGllcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgICAgIC8vIGNvcHkgcmFuZ2UgZnVuY3RvcgorICAgICAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIFNlcVQsIAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yVD1CT09TVF9TVFJJTkdfVFlQRU5BTUUgU2VxVDo6Y29uc3RfaXRlcmF0b3IgPgorICAgICAgICAgICAgc3RydWN0IGNvcHlfaXRlcmF0b3JfcmFuZ2VGIDogCisgICAgICAgICAgICAgICAgcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4sIFNlcVQgPgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFNlcVQgb3BlcmF0b3IoKSggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiYgUmFuZ2UgKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcHlfcmFuZ2U8U2VxVD4oUmFuZ2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAgLy8gQk9PU1RfU1RSSU5HX1VUSUxfREVUQUlMX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2ZpbmRfZm9ybWF0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9maW5kX2Zvcm1hdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM1MmViYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9maW5kX2Zvcm1hdC5ocHAKQEAgLTAsMCArMSwyODcgQEAKKy8vICBCb29zdCBzdHJpbmdfYWxnbyBsaWJyYXJ5IGZpbmRfZm9ybWF0LmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCBQYXZvbCBEcm9iYSAyMDAyLTIwMDMuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisKKyNpZm5kZWYgQk9PU1RfU1RSSU5HX0ZJTkRfRk9STUFUX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfRklORF9GT1JNQVRfSFBQCisKKyNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaXRlcmF0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9iZWdpbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25zdF9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvYXNfbGl0ZXJhbC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbmNlcHQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZGV0YWlsL2ZpbmRfZm9ybWF0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2RldGFpbC9maW5kX2Zvcm1hdF9hbGwuaHBwPgorCisvKiEgXGZpbGUKKyAgICBEZWZpbmVzIGdlbmVyaWMgcmVwbGFjZSBhbGdvcml0aG1zLiBFYWNoIGFsZ29yaXRobSByZXBsYWNlcworICAgIHBhcnQocykgb2YgdGhlIGlucHV0LiBUaGUgcGFydCB0byBiZSByZXBsYWNlZCBpcyBsb29rZWQgdXAgdXNpbmcgYSBGaW5kZXIgb2JqZWN0LgorICAgIFJlc3VsdCBvZiBmaW5kaW5nIGlzIHRoZW4gdXNlZCBieSBhIEZvcm1hdHRlciBvYmplY3QgdG8gZ2VuZXJhdGUgdGhlIHJlcGxhY2VtZW50LgorKi8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgYWxnb3JpdGhtIHsKKworLy8gZ2VuZXJpYyByZXBsYWNlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIEdlbmVyaWMgcmVwbGFjZSBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBVc2UgdGhlIEZpbmRlciB0byBzZWFyY2ggZm9yIGEgc3Vic3RyaW5nLiBVc2UgdGhlIEZvcm1hdHRlciB0byBmb3JtYXQKKyAgICAgICAgICAgIHRoaXMgc3Vic3RyaW5nIGFuZCByZXBsYWNlIGl0IGluIHRoZSBpbnB1dC4KKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dC4gSXQgaXMgcmV0dXJuZWQgYXMgYSBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG9yIGNvcGllZCB0byB0aGUgb3V0cHV0IGl0ZXJhdG9yLgorICAgIAorICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHNlcXVlbmNlCisgICAgICAgICAgICBccGFyYW0gRmluZGVyIEEgRmluZGVyIG9iamVjdCB1c2VkIHRvIHNlYXJjaCBmb3IgYSBtYXRjaCB0byBiZSByZXBsYWNlZAorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdHRlciBBIEZvcm1hdHRlciBvYmplY3QgdXNlZCB0byBmb3JtYXQgYSBtYXRjaAorICAgICAgICAgICAgXHJldHVybiBBbiBvdXRwdXQgaXRlcmF0b3IgcG9pbnRpbmcganVzdCBhZnRlciB0aGUgbGFzdCBpbnNlcnRlZCBjaGFyYWN0ZXIgb3IKKyAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0CisKKyAgICAgICAgICAgIFxub3RlIFRoZSBzZWNvbmQgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBzdHJvbmcgZXhjZXB0aW9uLXNhZmV0eSBndWFyYW50ZWUKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2VULAorICAgICAgICAgICAgdHlwZW5hbWUgRmluZGVyVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdHRlclQ+CisgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgZmluZF9mb3JtYXRfY29weSgKKyAgICAgICAgICAgIE91dHB1dEl0ZXJhdG9yVCBPdXRwdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZVQmIElucHV0LAorICAgICAgICAgICAgRmluZGVyVCBGaW5kZXIsCisgICAgICAgICAgICBGb3JtYXR0ZXJUIEZvcm1hdHRlciApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIENvbmNlcHQgY2hlY2sKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgICBGaW5kZXJDb25jZXB0PAorICAgICAgICAgICAgICAgICAgICBGaW5kZXJULAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZT4KKyAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgICBGb3JtYXR0ZXJDb25jZXB0PAorICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICBGaW5kZXJULEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlPgorICAgICAgICAgICAgICAgICkpOworCisgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZT4gbGl0X2lucHV0KDo6bmRuYm9vc3Q6OmFzX2xpdGVyYWwoSW5wdXQpKTsKKworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6ZmluZF9mb3JtYXRfY29weV9pbXBsKAorICAgICAgICAgICAgICAgIE91dHB1dCwKKyAgICAgICAgICAgICAgICBsaXRfaW5wdXQsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIEZpbmRlciggOjpuZG5ib29zdDo6YmVnaW4obGl0X2lucHV0KSwgOjpuZG5ib29zdDo6ZW5kKGxpdF9pbnB1dCkgKSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIEdlbmVyaWMgcmVwbGFjZSBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgdHlwZW5hbWUgU2VxdWVuY2VULCAKKyAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRlclQsCisgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXR0ZXJUPgorICAgICAgICBpbmxpbmUgU2VxdWVuY2VUIGZpbmRfZm9ybWF0X2NvcHkoCisgICAgICAgICAgICBjb25zdCBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgRmluZGVyVCBGaW5kZXIsCisgICAgICAgICAgICBGb3JtYXR0ZXJUIEZvcm1hdHRlciApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIENvbmNlcHQgY2hlY2sKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgICBGaW5kZXJDb25jZXB0PAorICAgICAgICAgICAgICAgICAgICBGaW5kZXJULAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8U2VxdWVuY2VUPjo6dHlwZT4KKyAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgICBGb3JtYXR0ZXJDb25jZXB0PAorICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICBGaW5kZXJULEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxTZXF1ZW5jZVQ+Ojp0eXBlPgorICAgICAgICAgICAgICAgICkpOworCisgICAgICAgICAgICByZXR1cm4gZGV0YWlsOjpmaW5kX2Zvcm1hdF9jb3B5X2ltcGwoCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIEZpbmRlcig6Om5kbmJvb3N0OjpiZWdpbihJbnB1dCksIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBHZW5lcmljIHJlcGxhY2UgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgVXNlIHRoZSBGaW5kZXIgdG8gc2VhcmNoIGZvciBhIHN1YnN0cmluZy4gVXNlIHRoZSBGb3JtYXR0ZXIgdG8gZm9ybWF0CisgICAgICAgICAgICB0aGlzIHN1YnN0cmluZyBhbmQgcmVwbGFjZSBpdCBpbiB0aGUgaW5wdXQuIFRoZSBpbnB1dCBpcyBtb2RpZmllZCBpbi1wbGFjZS4KKworICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHNlcXVlbmNlCisgICAgICAgICAgICBccGFyYW0gRmluZGVyIEEgRmluZGVyIG9iamVjdCB1c2VkIHRvIHNlYXJjaCBmb3IgYSBtYXRjaCB0byBiZSByZXBsYWNlZAorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdHRlciBBIEZvcm1hdHRlciBvYmplY3QgdXNlZCB0byBmb3JtYXQgYSBtYXRjaAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgIHR5cGVuYW1lIFNlcXVlbmNlVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRlclQsCisgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXR0ZXJUPgorICAgICAgICBpbmxpbmUgdm9pZCBmaW5kX2Zvcm1hdCggCisgICAgICAgICAgICBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgRmluZGVyVCBGaW5kZXIsCisgICAgICAgICAgICBGb3JtYXR0ZXJUIEZvcm1hdHRlcikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQ29uY2VwdCBjaGVjaworICAgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKAorICAgICAgICAgICAgICAgIEZpbmRlckNvbmNlcHQ8CisgICAgICAgICAgICAgICAgICAgIEZpbmRlclQsCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxTZXF1ZW5jZVQ+Ojp0eXBlPgorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKCAKKyAgICAgICAgICAgICAgICBGb3JtYXR0ZXJDb25jZXB0PAorICAgICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJULAorICAgICAgICAgICAgICAgICAgICBGaW5kZXJULEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxTZXF1ZW5jZVQ+Ojp0eXBlPgorICAgICAgICAgICAgICAgICkpOworCisgICAgICAgICAgICBkZXRhaWw6OmZpbmRfZm9ybWF0X2ltcGwoCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIEZpbmRlcig6Om5kbmJvb3N0OjpiZWdpbihJbnB1dCksIDo6bmRuYm9vc3Q6OmVuZChJbnB1dCkpKTsKKyAgICAgICAgfQorCisKKy8vICBmaW5kX2Zvcm1hdF9hbGwgZ2VuZXJpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAvLyEgR2VuZXJpYyByZXBsYWNlIGFsbCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBVc2UgdGhlIEZpbmRlciB0byBzZWFyY2ggZm9yIGEgc3Vic3RyaW5nLiBVc2UgdGhlIEZvcm1hdHRlciB0byBmb3JtYXQKKyAgICAgICAgICAgIHRoaXMgc3Vic3RyaW5nIGFuZCByZXBsYWNlIGl0IGluIHRoZSBpbnB1dC4gUmVwZWF0IHRoaXMgZm9yIGFsbCBtYXRjaGluZworICAgICAgICAgICAgc3Vic3RyaW5ncy4KKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dC4gSXQgaXMgcmV0dXJuZWQgYXMgYSBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG9yIGNvcGllZCB0byB0aGUgb3V0cHV0IGl0ZXJhdG9yLgorCisgICAgICAgICAgICBccGFyYW0gT3V0cHV0IEFuIG91dHB1dCBpdGVyYXRvciB0byB3aGljaCB0aGUgcmVzdWx0IHdpbGwgYmUgY29waWVkCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc2VxdWVuY2UKKyAgICAgICAgICAgIFxwYXJhbSBGaW5kZXIgQSBGaW5kZXIgb2JqZWN0IHVzZWQgdG8gc2VhcmNoIGZvciBhIG1hdGNoIHRvIGJlIHJlcGxhY2VkCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0dGVyIEEgRm9ybWF0dGVyIG9iamVjdCB1c2VkIHRvIGZvcm1hdCBhIG1hdGNoCisgICAgICAgICAgICBccmV0dXJuIEFuIG91dHB1dCBpdGVyYXRvciBwb2ludGluZyBqdXN0IGFmdGVyIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBvcgorICAgICAgICAgICAgICAgIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQKKworICAgICAgICAgICAgIFxub3RlIFRoZSBzZWNvbmQgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBzdHJvbmcgZXhjZXB0aW9uLXNhZmV0eSBndWFyYW50ZWUKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IAorICAgICAgICAgICAgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2VULAorICAgICAgICAgICAgdHlwZW5hbWUgRmluZGVyVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdHRlclQ+CisgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgZmluZF9mb3JtYXRfYWxsX2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2VUJiBJbnB1dCwKKyAgICAgICAgICAgIEZpbmRlclQgRmluZGVyLAorICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIENvbmNlcHQgY2hlY2sKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCggCisgICAgICAgICAgICAgICAgRmluZGVyQ29uY2VwdDwKKyAgICAgICAgICAgICAgICAgICAgRmluZGVyVCwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFJhbmdlVD46OnR5cGU+CisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoIAorICAgICAgICAgICAgICAgIEZvcm1hdHRlckNvbmNlcHQ8CisgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlclQsCisgICAgICAgICAgICAgICAgICAgIEZpbmRlclQsQk9PU1RfU1RSSU5HX1RZUEVOQU1FIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFJhbmdlVD46OnR5cGU+CisgICAgICAgICAgICAgICAgKSk7CisKKyAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlPiBsaXRfaW5wdXQoOjpuZG5ib29zdDo6YXNfbGl0ZXJhbChJbnB1dCkpOworCisgICAgICAgICAgICByZXR1cm4gZGV0YWlsOjpmaW5kX2Zvcm1hdF9hbGxfY29weV9pbXBsKAorICAgICAgICAgICAgICAgIE91dHB1dCwKKyAgICAgICAgICAgICAgICBsaXRfaW5wdXQsCisgICAgICAgICAgICAgICAgRmluZGVyLAorICAgICAgICAgICAgICAgIEZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICBGaW5kZXIoOjpuZG5ib29zdDo6YmVnaW4obGl0X2lucHV0KSwgOjpuZG5ib29zdDo6ZW5kKGxpdF9pbnB1dCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBHZW5lcmljIHJlcGxhY2UgYWxsIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFxvdmVybG9hZAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgCisgICAgICAgICAgICB0eXBlbmFtZSBTZXF1ZW5jZVQsIAorICAgICAgICAgICAgdHlwZW5hbWUgRmluZGVyVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIEZvcm1hdHRlclQgPgorICAgICAgICBpbmxpbmUgU2VxdWVuY2VUIGZpbmRfZm9ybWF0X2FsbF9jb3B5KAorICAgICAgICAgICAgY29uc3QgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIEZpbmRlclQgRmluZGVyLAorICAgICAgICAgICAgRm9ybWF0dGVyVCBGb3JtYXR0ZXIgKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBDb25jZXB0IGNoZWNrCisgICAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICAgRmluZGVyQ29uY2VwdDwKKyAgICAgICAgICAgICAgICAgICAgRmluZGVyVCwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFNlcXVlbmNlVD46OnR5cGU+CisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyQ29uY2VwdDwKKyAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVyVCwKKyAgICAgICAgICAgICAgICAgICAgRmluZGVyVCxCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8U2VxdWVuY2VUPjo6dHlwZT4KKyAgICAgICAgICAgICAgICApKTsKKworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6ZmluZF9mb3JtYXRfYWxsX2NvcHlfaW1wbCgKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICBGaW5kZXIsCisgICAgICAgICAgICAgICAgRm9ybWF0dGVyLAorICAgICAgICAgICAgICAgIEZpbmRlciggOjpuZG5ib29zdDo6YmVnaW4oSW5wdXQpLCA6Om5kbmJvb3N0OjplbmQoSW5wdXQpICkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBHZW5lcmljIHJlcGxhY2UgYWxsIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFVzZSB0aGUgRmluZGVyIHRvIHNlYXJjaCBmb3IgYSBzdWJzdHJpbmcuIFVzZSB0aGUgRm9ybWF0dGVyIHRvIGZvcm1hdAorICAgICAgICAgICAgdGhpcyBzdWJzdHJpbmcgYW5kIHJlcGxhY2UgaXQgaW4gdGhlIGlucHV0LiBSZXBlYXQgdGhpcyBmb3IgYWxsIG1hdGNoaW5nCisgICAgICAgICAgICBzdWJzdHJpbmdzLlRoZSBpbnB1dCBpcyBtb2RpZmllZCBpbi1wbGFjZS4KKworICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHNlcXVlbmNlCisgICAgICAgICAgICBccGFyYW0gRmluZGVyIEEgRmluZGVyIG9iamVjdCB1c2VkIHRvIHNlYXJjaCBmb3IgYSBtYXRjaCB0byBiZSByZXBsYWNlZAorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdHRlciBBIEZvcm1hdHRlciBvYmplY3QgdXNlZCB0byBmb3JtYXQgYSBtYXRjaAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgIHR5cGVuYW1lIFNlcXVlbmNlVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIEZpbmRlclQsCisgICAgICAgICAgICB0eXBlbmFtZSBGb3JtYXR0ZXJUID4KKyAgICAgICAgaW5saW5lIHZvaWQgZmluZF9mb3JtYXRfYWxsKCAKKyAgICAgICAgICAgIFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBGaW5kZXJUIEZpbmRlciwKKyAgICAgICAgICAgIEZvcm1hdHRlclQgRm9ybWF0dGVyICkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQ29uY2VwdCBjaGVjaworICAgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKAorICAgICAgICAgICAgICAgIEZpbmRlckNvbmNlcHQ8CisgICAgICAgICAgICAgICAgICAgIEZpbmRlclQsCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxTZXF1ZW5jZVQ+Ojp0eXBlPgorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKAorICAgICAgICAgICAgICAgIEZvcm1hdHRlckNvbmNlcHQ8CisgICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlclQsCisgICAgICAgICAgICAgICAgICAgIEZpbmRlclQsQk9PU1RfU1RSSU5HX1RZUEVOQU1FIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFNlcXVlbmNlVD46OnR5cGU+CisgICAgICAgICAgICAgICAgKSk7CisKKyAgICAgICAgICAgIGRldGFpbDo6ZmluZF9mb3JtYXRfYWxsX2ltcGwoCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgRmluZGVyLAorICAgICAgICAgICAgICAgIEZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICBGaW5kZXIoOjpuZG5ib29zdDo6YmVnaW4oSW5wdXQpLCA6Om5kbmJvb3N0OjplbmQoSW5wdXQpKSk7CisKKyAgICAgICAgfQorCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCisKKyAgICAvLyBwdWxsIHRoZSBuYW1lcyB0byB0aGUgYm9vc3QgbmFtZXNwYWNlCisgICAgdXNpbmcgYWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5OworICAgIHVzaW5nIGFsZ29yaXRobTo6ZmluZF9mb3JtYXQ7CisgICAgdXNpbmcgYWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9hbGxfY29weTsKKyAgICB1c2luZyBhbGdvcml0aG06OmZpbmRfZm9ybWF0X2FsbDsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisjZW5kaWYgIC8vIEJPT1NUX1NUUklOR19GSU5EX0ZPUk1BVF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9maW5kZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2ZpbmRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIwZTAxNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9maW5kZXIuaHBwCkBAIC0wLDAgKzEsMjcwIEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSBmaW5kZXIuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwNi4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfRklOREVSX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfRklOREVSX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25zdF9pdGVyYXRvci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbnN0YW50cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZmluZGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2NvbXBhcmUuaHBwPgorCisvKiEgXGZpbGUKKyAgICBEZWZpbmVzIEZpbmRlciBnZW5lcmF0b3JzLiBGaW5kZXIgb2JqZWN0IGlzIGEgZnVuY3RvciB3aGljaCBpcyBhYmxlIHRvIAorICAgIGZpbmQgYSBzdWJzdHJpbmcgbWF0Y2hpbmcgYSBzcGVjaWZpYyBjcml0ZXJpYSBpbiB0aGUgaW5wdXQuCisgICAgRmluZGVycyBhcmUgdXNlZCBhcyBhIHBsdWdnYWJsZSBjb21wb25lbnRzIGZvciByZXBsYWNlLCBmaW5kIAorICAgIGFuZCBzcGxpdCBmYWNpbGl0aWVzLiBUaGlzIGhlYWRlciBjb250YWlucyBnZW5lcmF0b3IgZnVuY3Rpb25zIAorICAgIGZvciBmaW5kZXJzIHByb3ZpZGVkIGluIHRoaXMgbGlicmFyeS4KKyovCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGFsZ29yaXRobSB7CisKKy8vICBGaW5kZXIgZ2VuZXJhdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworICAgICAgICAKKyAgICAgICAgLy8hICJGaXJzdCIgZmluZGVyIAorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnN0cnVjdCB0aGUgXGMgZmlyc3RfZmluZGVyLiBUaGUgZmluZGVyIHNlYXJjaGVzIGZvciB0aGUgZmlyc3QKKyAgICAgICAgICAgIG9jY3VycmVuY2Ugb2YgdGhlIHN0cmluZyBpbiBhIGdpdmVuIGlucHV0LgorICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBnaXZlbiBhcyBhbiBcYyBpdGVyYXRvcl9yYW5nZSBkZWxpbWl0aW5nIHRoZSBtYXRjaC4KKworICAgICAgICAgICAgXHBhcmFtIFNlYXJjaCBBIHN1YnN0cmluZyB0byBiZSBzZWFyY2hlZCBmb3IuCisgICAgICAgICAgICBccGFyYW0gQ29tcCBBbiBlbGVtZW50IGNvbXBhcmlzb24gcHJlZGljYXRlCisgICAgICAgICAgICBccmV0dXJuIEFuIGluc3RhbmNlIG9mIHRoZSBcYyBmaXJzdF9maW5kZXIgb2JqZWN0CisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJhbmdlVD4KKyAgICAgICAgaW5saW5lIGRldGFpbDo6Zmlyc3RfZmluZGVyRjwKKyAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgaXNfZXF1YWw+CisgICAgICAgIGZpcnN0X2ZpbmRlciggY29uc3QgUmFuZ2VUJiBTZWFyY2ggKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gCisgICAgICAgICAgICAgICAgZGV0YWlsOjpmaXJzdF9maW5kZXJGPAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfZXF1YWw+KCA6Om5kbmJvb3N0Ojphc19saXRlcmFsKFNlYXJjaCksIGlzX2VxdWFsKCkgKSA7CisgICAgICAgIH0KKworICAgICAgICAvLyEgIkZpcnN0IiBmaW5kZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmFuZ2VULHR5cGVuYW1lIFByZWRpY2F0ZVQ+CisgICAgICAgIGlubGluZSBkZXRhaWw6OmZpcnN0X2ZpbmRlckY8CisgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZSwKKyAgICAgICAgICAgIFByZWRpY2F0ZVQ+CisgICAgICAgIGZpcnN0X2ZpbmRlciggCisgICAgICAgICAgICBjb25zdCBSYW5nZVQmIFNlYXJjaCwgUHJlZGljYXRlVCBDb21wICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIAorICAgICAgICAgICAgICAgIGRldGFpbDo6Zmlyc3RfZmluZGVyRjwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIAorICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgUHJlZGljYXRlVD4oIDo6bmRuYm9vc3Q6OmFzX2xpdGVyYWwoU2VhcmNoKSwgQ29tcCApOworICAgICAgICB9CisKKyAgICAgICAgLy8hICJMYXN0IiBmaW5kZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBDb25zdHJ1Y3QgdGhlIFxjIGxhc3RfZmluZGVyLiBUaGUgZmluZGVyIHNlYXJjaGVzIGZvciB0aGUgbGFzdAorICAgICAgICAgICAgb2NjdXJyZW5jZSBvZiB0aGUgc3RyaW5nIGluIGEgZ2l2ZW4gaW5wdXQuCisgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGdpdmVuIGFzIGFuIFxjIGl0ZXJhdG9yX3JhbmdlIGRlbGltaXRpbmcgdGhlIG1hdGNoLgorCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvci4KKyAgICAgICAgICAgIFxwYXJhbSBDb21wIEFuIGVsZW1lbnQgY29tcGFyaXNvbiBwcmVkaWNhdGUKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gaW5zdGFuY2Ugb2YgdGhlIFxjIGxhc3RfZmluZGVyIG9iamVjdAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSYW5nZVQ+CisgICAgICAgIGlubGluZSBkZXRhaWw6Omxhc3RfZmluZGVyRjwKKyAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgaXNfZXF1YWw+CisgICAgICAgIGxhc3RfZmluZGVyKCBjb25zdCBSYW5nZVQmIFNlYXJjaCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAKKyAgICAgICAgICAgICAgICBkZXRhaWw6Omxhc3RfZmluZGVyRjwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIAorICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgaXNfZXF1YWw+KCA6Om5kbmJvb3N0Ojphc19saXRlcmFsKFNlYXJjaCksIGlzX2VxdWFsKCkgKTsKKyAgICAgICAgfQorICAgICAgICAvLyEgIkxhc3QiIGZpbmRlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIFxvdmVybG9hZAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSYW5nZVQsIHR5cGVuYW1lIFByZWRpY2F0ZVQ+CisgICAgICAgIGlubGluZSBkZXRhaWw6Omxhc3RfZmluZGVyRjwKKyAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgUHJlZGljYXRlVD4KKyAgICAgICAgbGFzdF9maW5kZXIoIGNvbnN0IFJhbmdlVCYgU2VhcmNoLCBQcmVkaWNhdGVUIENvbXAgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gCisgICAgICAgICAgICAgICAgZGV0YWlsOjpsYXN0X2ZpbmRlckY8CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFJhbmdlVD46OnR5cGUsCisgICAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZVQ+KCA6Om5kbmJvb3N0Ojphc19saXRlcmFsKFNlYXJjaCksIENvbXAgKSA7CisgICAgICAgIH0KKworICAgICAgICAvLyEgIk50aCIgZmluZGVyCisgICAgICAgIC8qIQorICAgICAgICAgICAgQ29uc3RydWN0IHRoZSBcYyBudGhfZmluZGVyLiBUaGUgZmluZGVyIHNlYXJjaGVzIGZvciB0aGUgbi10aCAoemVyby1pbmRleGVkKQorICAgICAgICAgICAgb2NjdXJyZW5jZSBvZiB0aGUgc3RyaW5nIGluIGEgZ2l2ZW4gaW5wdXQuCisgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGdpdmVuIGFzIGFuIFxjIGl0ZXJhdG9yX3JhbmdlIGRlbGltaXRpbmcgdGhlIG1hdGNoLgorCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvci4KKyAgICAgICAgICAgIFxwYXJhbSBOdGggQW4gaW5kZXggb2YgdGhlIG1hdGNoIHRvIGJlIGZpbmQKKyAgICAgICAgICAgIFxwYXJhbSBDb21wIEFuIGVsZW1lbnQgY29tcGFyaXNvbiBwcmVkaWNhdGUKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gaW5zdGFuY2Ugb2YgdGhlIFxjIG50aF9maW5kZXIgb2JqZWN0CisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJhbmdlVD4KKyAgICAgICAgaW5saW5lIGRldGFpbDo6bnRoX2ZpbmRlckY8CisgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZSwKKyAgICAgICAgICAgIGlzX2VxdWFsPgorICAgICAgICBudGhfZmluZGVyKCAKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlVCYgU2VhcmNoLCAKKyAgICAgICAgICAgIGludCBOdGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAKKyAgICAgICAgICAgICAgICBkZXRhaWw6Om50aF9maW5kZXJGPAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgICAgICAgICBpc19lcXVhbD4oIDo6bmRuYm9vc3Q6OmFzX2xpdGVyYWwoU2VhcmNoKSwgTnRoLCBpc19lcXVhbCgpICkgOworICAgICAgICB9CisgICAgICAgIC8vISAiTnRoIiBmaW5kZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmFuZ2VULCB0eXBlbmFtZSBQcmVkaWNhdGVUPgorICAgICAgICBpbmxpbmUgZGV0YWlsOjpudGhfZmluZGVyRjwKKyAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgUHJlZGljYXRlVD4KKyAgICAgICAgbnRoX2ZpbmRlciggCisgICAgICAgICAgICBjb25zdCBSYW5nZVQmIFNlYXJjaCwgCisgICAgICAgICAgICBpbnQgTnRoLCAKKyAgICAgICAgICAgIFByZWRpY2F0ZVQgQ29tcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAKKyAgICAgICAgICAgICAgICBkZXRhaWw6Om50aF9maW5kZXJGPAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlLAorICAgICAgICAgICAgICAgICAgICBQcmVkaWNhdGVUPiggOjpuZG5ib29zdDo6YXNfbGl0ZXJhbChTZWFyY2gpLCBOdGgsIENvbXAgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISAiSGVhZCIgZmluZGVyCisgICAgICAgIC8qIQorICAgICAgICAgICAgQ29uc3RydWN0IHRoZSBcYyBoZWFkX2ZpbmRlci4gVGhlIGZpbmRlciByZXR1cm5zIGEgaGVhZCBvZiBhIGdpdmVuCisgICAgICAgICAgICBpbnB1dC4gVGhlIGhlYWQgaXMgYSBwcmVmaXggb2YgYSBzdHJpbmcgdXAgdG8gbiBlbGVtZW50cyBpbgorICAgICAgICAgICAgc2l6ZS4gSWYgYW4gaW5wdXQgaGFzIGxlc3MgdGhlbiBuIGVsZW1lbnRzLCB3aG9sZSBpbnB1dCBpcyAKKyAgICAgICAgICAgIGNvbnNpZGVyZWQgYSBoZWFkLgorICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBnaXZlbiBhcyBhbiBcYyBpdGVyYXRvcl9yYW5nZSBkZWxpbWl0aW5nIHRoZSBtYXRjaC4KKworICAgICAgICAgICAgXHBhcmFtIE4gVGhlIHNpemUgb2YgdGhlIGhlYWQKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gaW5zdGFuY2Ugb2YgdGhlIFxjIGhlYWRfZmluZGVyIG9iamVjdAorICAgICAgICAqLworICAgICAgICBpbmxpbmUgZGV0YWlsOjpoZWFkX2ZpbmRlckYKKyAgICAgICAgaGVhZF9maW5kZXIoIGludCBOICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6aGVhZF9maW5kZXJGKE4pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyEgIlRhaWwiIGZpbmRlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnN0cnVjdCB0aGUgXGMgdGFpbF9maW5kZXIuIFRoZSBmaW5kZXIgcmV0dXJucyBhIHRhaWwgb2YgYSBnaXZlbgorICAgICAgICAgICAgaW5wdXQuIFRoZSB0YWlsIGlzIGEgc3VmZml4IG9mIGEgc3RyaW5nIHVwIHRvIG4gZWxlbWVudHMgaW4KKyAgICAgICAgICAgIHNpemUuIElmIGFuIGlucHV0IGhhcyBsZXNzIHRoZW4gbiBlbGVtZW50cywgd2hvbGUgaW5wdXQgaXMgCisgICAgICAgICAgICBjb25zaWRlcmVkIGEgaGVhZC4KKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgZ2l2ZW4gYXMgYW4gXGMgaXRlcmF0b3JfcmFuZ2UgZGVsaW1pdGluZyB0aGUgbWF0Y2guCisKKyAgICAgICAgICAgIFxwYXJhbSBOIFRoZSBzaXplIG9mIHRoZSBoZWFkCisgICAgICAgICAgICBccmV0dXJuIEFuIGluc3RhbmNlIG9mIHRoZSBcYyB0YWlsX2ZpbmRlciBvYmplY3QKKyAgICAgICAgKi8KKyAgICAgICAgaW5saW5lIGRldGFpbDo6dGFpbF9maW5kZXJGCisgICAgICAgIHRhaWxfZmluZGVyKCBpbnQgTiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZXRhaWw6OnRhaWxfZmluZGVyRihOKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISAiVG9rZW4iIGZpbmRlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnN0cnVjdCB0aGUgXGMgdG9rZW5fZmluZGVyLiBUaGUgZmluZGVyIHNlYXJjaGVzIGZvciBhIHRva2VuIAorICAgICAgICAgICAgc3BlY2lmaWVkIGJ5IGEgcHJlZGljYXRlLiBJdCBpcyBzaW1pbGFyIHRvIHN0ZDo6ZmluZF9pZiAKKyAgICAgICAgICAgIGFsZ29yaXRobSwgd2l0aCBhbiBleGNlcHRpb24gdGhhdCBpdCByZXR1cm4gYSByYW5nZSBvZgorICAgICAgICAgICAgaW5zdGVhZCBvZiBhIHNpbmdsZSBpdGVyYXRvci4KKworICAgICAgICAgICAgSWYgImNvbXByZXNzIHRva2VuIG1vZGUiIGlzIGVuYWJsZWQsIGFkamFjZW50IG1hdGNoaW5nIHRva2VucyBhcmUgCisgICAgICAgICAgICBjb25jYXRlbmF0ZWQgaW50byBvbmUgbWF0Y2guIFRodXMgdGhlIGZpbmRlciBjYW4gYmUgdXNlZCB0byAKKyAgICAgICAgICAgIHNlYXJjaCBmb3IgY29udGludW91cyBzZWdtZW50cyBvZiBjaGFyYWN0ZXJzIHNhdGlzZnlpbmcgdGhlIAorICAgICAgICAgICAgZ2l2ZW4gcHJlZGljYXRlLgorCisgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGdpdmVuIGFzIGFuIFxjIGl0ZXJhdG9yX3JhbmdlIGRlbGltaXRpbmcgdGhlIG1hdGNoLgorCisgICAgICAgICAgICBccGFyYW0gUHJlZCBBbiBlbGVtZW50IHNlbGVjdGlvbiBwcmVkaWNhdGUKKyAgICAgICAgICAgIFxwYXJhbSBlQ29tcHJlc3MgQ29tcHJlc3MgZmxhZworICAgICAgICAgICAgXHJldHVybiBBbiBpbnN0YW5jZSBvZiB0aGUgXGMgdG9rZW5fZmluZGVyIG9iamVjdAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUHJlZGljYXRlVCA+CisgICAgICAgIGlubGluZSBkZXRhaWw6OnRva2VuX2ZpbmRlckY8UHJlZGljYXRlVD4KKyAgICAgICAgdG9rZW5fZmluZGVyKCAKKyAgICAgICAgICAgIFByZWRpY2F0ZVQgUHJlZCwgCisgICAgICAgICAgICB0b2tlbl9jb21wcmVzc19tb2RlX3R5cGUgZUNvbXByZXNzPXRva2VuX2NvbXByZXNzX29mZiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZXRhaWw6OnRva2VuX2ZpbmRlckY8UHJlZGljYXRlVD4oIFByZWQsIGVDb21wcmVzcyApOworICAgICAgICB9CisKKyAgICAgICAgLy8hICJSYW5nZSIgZmluZGVyCisgICAgICAgIC8qIQorICAgICAgICAgICAgQ29uc3RydWN0IHRoZSBcYyByYW5nZV9maW5kZXIuIFRoZSBmaW5kZXIgZG9lcyBub3QgcGVyZm9ybSAKKyAgICAgICAgICAgIGFueSBvcGVyYXRpb24uIEl0IHNpbXBseSByZXR1cm5zIHRoZSBnaXZlbiByYW5nZSBmb3IgCisgICAgICAgICAgICBhbnkgaW5wdXQuIAorCisgICAgICAgICAgICBccGFyYW0gQmVnaW4gQmVnaW5uaW5nIG9mIHRoZSByYW5nZQorICAgICAgICAgICAgXHBhcmFtIEVuZCBFbmQgb2YgdGhlIHJhbmdlCisgICAgICAgICAgICBccGFyYW0gUmFuZ2UgVGhlIHJhbmdlLgorICAgICAgICAgICAgXHJldHVybiBBbiBpbnN0YW5jZSBvZiB0aGUgXGMgcmFuZ2VfZmluZ2VyIG9iamVjdAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgIGlubGluZSBkZXRhaWw6OnJhbmdlX2ZpbmRlckY8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgcmFuZ2VfZmluZGVyKAorICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yVCBCZWdpbiwKKyAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvclQgRW5kICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6cmFuZ2VfZmluZGVyRjxGb3J3YXJkSXRlcmF0b3JUPiggQmVnaW4sIEVuZCApOworICAgICAgICB9CisKKyAgICAgICAgLy8hICJSYW5nZSIgZmluZGVyCisgICAgICAgIC8qISAgICAgICAKKyAgICAgICAgICAgIFxvdmVybG9hZAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRm9yd2FyZEl0ZXJhdG9yVCA+CisgICAgICAgIGlubGluZSBkZXRhaWw6OnJhbmdlX2ZpbmRlckY8Rm9yd2FyZEl0ZXJhdG9yVD4KKyAgICAgICAgcmFuZ2VfZmluZGVyKCBpdGVyYXRvcl9yYW5nZTxGb3J3YXJkSXRlcmF0b3JUPiBSYW5nZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZXRhaWw6OnJhbmdlX2ZpbmRlckY8Rm9yd2FyZEl0ZXJhdG9yVD4oIFJhbmdlICk7CisgICAgICAgIH0KKworICAgIH0gLy8gbmFtZXNwYWNlIGFsZ29yaXRobQorCisgICAgLy8gcHVsbCB0aGUgbmFtZXMgdG8gdGhlIGJvb3N0IG5hbWVzcGFjZQorICAgIHVzaW5nIGFsZ29yaXRobTo6Zmlyc3RfZmluZGVyOworICAgIHVzaW5nIGFsZ29yaXRobTo6bGFzdF9maW5kZXI7CisgICAgdXNpbmcgYWxnb3JpdGhtOjpudGhfZmluZGVyOworICAgIHVzaW5nIGFsZ29yaXRobTo6aGVhZF9maW5kZXI7CisgICAgdXNpbmcgYWxnb3JpdGhtOjp0YWlsX2ZpbmRlcjsKKyAgICB1c2luZyBhbGdvcml0aG06OnRva2VuX2ZpbmRlcjsKKyAgICB1c2luZyBhbGdvcml0aG06OnJhbmdlX2ZpbmRlcjsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisjZW5kaWYgIC8vIEJPT1NUX1NUUklOR19GSU5ERVJfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZm9ybWF0dGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9mb3JtYXR0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MzliNDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvZm9ybWF0dGVyLmhwcApAQCAtMCwwICsxLDEyMCBAQAorLy8gIEJvb3N0IHN0cmluZ19hbGdvIGxpYnJhcnkgZm9ybWF0dGVyLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCBQYXZvbCBEcm9iYSAyMDAyLTIwMDMuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisKKyNpZm5kZWYgQk9PU1RfU1RSSU5HX0ZPUk1BVFRFUl9IUFAKKyNkZWZpbmUgQk9PU1RfU1RSSU5HX0ZPUk1BVFRFUl9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvdmFsdWVfdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2FzX2xpdGVyYWwuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9kZXRhaWwvZm9ybWF0dGVyLmhwcD4KKworLyohIFxmaWxlCisgICAgRGVmaW5lcyBGb3JtYXR0ZXIgZ2VuZXJhdG9ycy4gRm9ybWF0dGVyIGlzIGEgZnVuY3RvciB3aGljaCBmb3JtYXRzCisgICAgYSBzdHJpbmcgYWNjb3JkaW5nIHRvIGdpdmVuIHBhcmFtZXRlcnMuIEEgRm9ybWF0dGVyIHdvcmtzCisgICAgaW4gY29uanVuY3Rpb24gd2l0aCBhIEZpbmRlci4gQSBGaW5kZXIgY2FuIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAgIGZvciBhIHNwZWNpZmljIEZvcm1hdHRlci4gQW4gZXhhbXBsZSBvZiBzdWNoIGEgY29vcGVyYXRpb24gaXMgcmVnZXhfZmluZGVyCisgICAgYW5kIHJlZ2V4X2Zvcm1hdHRlci4KKworICAgIEZvcm1hdHRlcnMgYXJlIHVzZWQgYXMgcGx1Z2dhYmxlIGNvbXBvbmVudHMgZm9yIHJlcGxhY2UgZmFjaWxpdGllcy4gCisgICAgVGhpcyBoZWFkZXIgY29udGFpbnMgZ2VuZXJhdG9yIGZ1bmN0aW9ucyBmb3IgdGhlIEZvcm1hdHRlcnMgcHJvdmlkZWQgaW4gdGhpcyBsaWJyYXJ5LgorKi8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgYWxnb3JpdGhtIHsKKworLy8gZ2VuZXJpYyBmb3JtYXR0ZXJzICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgIC8vISBDb25zdGFudCBmb3JtYXR0ZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBDb25zdHJ1Y3RzIGEgXGMgY29uc3RfZm9ybWF0dGVyLiBDb25zdCBmb3JtYXR0ZXIgYWx3YXlzIHJldHVybnMKKyAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlLCByZWdhcmRsZXNzIG9mIHRoZSBwYXJhbWV0ZXIuCisKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBwcmVkZWZpbmVkIHZhbHVlIHVzZWQgYXMgYSByZXN1bHQgZm9yIGZvcm1hdHRpbmcKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gaW5zdGFuY2Ugb2YgdGhlIFxjIGNvbnN0X2Zvcm1hdHRlciBvYmplY3QuCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJhbmdlVD4KKyAgICAgICAgaW5saW5lIGRldGFpbDo6Y29uc3RfZm9ybWF0RjwKKyAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPAorICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV9jb25zdF9pdGVyYXRvcjxSYW5nZVQ+Ojp0eXBlPiA+CisgICAgICAgIGNvbnN0X2Zvcm1hdHRlcihjb25zdCBSYW5nZVQmIEZvcm1hdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6Y29uc3RfZm9ybWF0RjwKKyAgICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RSSU5HX1RZUEVOQU1FIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFJhbmdlVD46OnR5cGU+ID4oOjpuZG5ib29zdDo6YXNfbGl0ZXJhbChGb3JtYXQpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBJZGVudGl0eSBmb3JtYXR0ZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBDb25zdHJ1Y3RzIGFuIFxjIGlkZW50aXR5X2Zvcm1hdHRlci4gSWRlbnRpdHkgZm9ybWF0dGVyIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICB0aGUgcGFyYW1ldGVyLgorCisgICAgICAgICAgICBccmV0dXJuIEFuIGluc3RhbmNlIG9mIHRoZSBcYyBpZGVudGl0eV9mb3JtYXR0ZXIgb2JqZWN0LgorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSYW5nZVQ+CisgICAgICAgIGlubGluZSBkZXRhaWw6OmlkZW50aXR5X2Zvcm1hdEY8CisgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTwKKyAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZT4gPgorICAgICAgICBpZGVudGl0eV9mb3JtYXR0ZXIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGV0YWlsOjppZGVudGl0eV9mb3JtYXRGPAorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPAorICAgICAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfY29uc3RfaXRlcmF0b3I8UmFuZ2VUPjo6dHlwZT4gPigpOworICAgICAgICB9CisKKyAgICAgICAgLy8hIEVtcHR5IGZvcm1hdHRlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnN0cnVjdHMgYW4gXGMgZW1wdHlfZm9ybWF0dGVyLiBFbXB0eSBmb3JtYXR0ZXIgYWx3YXlzIHJldHVybnMgYW4gZW1wdHkKKyAgICAgICAgICAgIHNlcXVlbmNlLiAKKworICAgICAgICAgICAgXHBhcmFtIElucHV0IGNvbnRhaW5lciB1c2VkIHRvIHNlbGVjdCBhIGNvcnJlY3QgdmFsdWVfdHlwZSBmb3IgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0aW5nIGVtcHR5X2NvbnRhaW5lcjw+LgorICAgICAgICAgICAgXHJldHVybiBBbiBpbnN0YW5jZSBvZiB0aGUgXGMgZW1wdHlfZm9ybWF0dGVyIG9iamVjdC4KKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmFuZ2VUPgorICAgICAgICBpbmxpbmUgZGV0YWlsOjplbXB0eV9mb3JtYXRGPCAKKyAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSByYW5nZV92YWx1ZTxSYW5nZVQ+Ojp0eXBlPgorICAgICAgICBlbXB0eV9mb3JtYXR0ZXIoY29uc3QgUmFuZ2VUJikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6ZW1wdHlfZm9ybWF0RjwKKyAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgcmFuZ2VfdmFsdWU8UmFuZ2VUPjo6dHlwZT4oKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBFbXB0eSBmb3JtYXR0ZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBDb25zdHJ1Y3RzIGEgXGMgZGlzc2VjdF9mb3JtYXR0ZXIuIERpc3NlY3QgZm9ybWF0dGVyIHVzZXMgYSBzcGVjaWZpZWQgZmluZGVyCisgICAgICAgICAgICB0byBleHRyYWN0IGEgcG9ydGlvbiBvZiB0aGUgZm9ybWF0dGVkIHNlcXVlbmNlLiBUaGUgZmlyc3QgZmluZGVyJ3MgbWF0Y2ggaXMgcmV0dXJuZWQgCisgICAgICAgICAgICBhcyBhIHJlc3VsdAorCisgICAgICAgICAgICBccGFyYW0gRmluZGVyIGEgZmluZGVyIHVzZWQgdG8gc2VsZWN0IGEgcG9ydGlvbiBvZiB0aGUgZm9ybWF0dGVkIHNlcXVlbmNlCisgICAgICAgICAgICBccmV0dXJuIEFuIGluc3RhbmNlIG9mIHRoZSBcYyBkaXNzZWN0X2Zvcm1hdHRlciBvYmplY3QuCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZpbmRlclQ+CisgICAgICAgIGlubGluZSBkZXRhaWw6OmRpc3NlY3RfZm9ybWF0RjwgRmluZGVyVCA+CisgICAgICAgIGRpc3NlY3RfZm9ybWF0dGVyKGNvbnN0IEZpbmRlclQmIEZpbmRlcikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRldGFpbDo6ZGlzc2VjdF9mb3JtYXRGPEZpbmRlclQ+KEZpbmRlcik7CisgICAgICAgIH0KKworCisgICAgfSAvLyBuYW1lc3BhY2UgYWxnb3JpdGhtCisKKyAgICAvLyBwdWxsIHRoZSBuYW1lcyB0byB0aGUgYm9vc3QgbmFtZXNwYWNlCisgICAgdXNpbmcgYWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXI7CisgICAgdXNpbmcgYWxnb3JpdGhtOjppZGVudGl0eV9mb3JtYXR0ZXI7CisgICAgdXNpbmcgYWxnb3JpdGhtOjplbXB0eV9mb3JtYXR0ZXI7CisgICAgdXNpbmcgYWxnb3JpdGhtOjpkaXNzZWN0X2Zvcm1hdHRlcjsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisjZW5kaWYgIC8vIEJPT1NUX0ZPUk1BVFRFUl9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9yZXBsYWNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9yZXBsYWNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWFmY2U0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL3JlcGxhY2UuaHBwCkBAIC0wLDAgKzEsOTI4IEBACisvLyAgQm9vc3Qgc3RyaW5nX2FsZ28gbGlicmFyeSByZXBsYWNlLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCBQYXZvbCBEcm9iYSAyMDAyLTIwMDYuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisKKyNpZm5kZWYgQk9PU1RfU1RSSU5HX1JFUExBQ0VfSFBQCisjZGVmaW5lIEJPT1NUX1NUUklOR19SRVBMQUNFX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25zdF9pdGVyYXRvci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2ZpbmRfZm9ybWF0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL2ZpbmRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9mb3JtYXR0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvY29tcGFyZS5ocHA+CisKKy8qISBcZmlsZQorICAgIERlZmluZXMgdmFyaW91cyByZXBsYWNlIGFsZ29yaXRobXMuIEVhY2ggYWxnb3JpdGhtIHJlcGxhY2VzCisgICAgcGFydChzKSBvZiB0aGUgaW5wdXQgYWNjb3JkaW5nIHRvIHNldCBvZiBzZWFyY2hpbmcgYW5kIHJlcGxhY2UgY3JpdGVyaWEuCisqLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworCisvLyAgcmVwbGFjZV9yYW5nZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgcmFuZ2UgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2UgaW4gdGhlIGlucHV0IHN0cmluZy4KKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dC4gSXQgaXMgcmV0dXJuZWQgYXMgYSBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG9yIGNvcGllZCB0byB0aGUgb3V0cHV0IGl0ZXJhdG9yLgorICAgICAgICAgICAgCisgICAgICAgICAgICBccGFyYW0gT3V0cHV0IEFuIG91dHB1dCBpdGVyYXRvciB0byB3aGljaCB0aGUgcmVzdWx0IHdpbGwgYmUgY29waWVkCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoUmFuZ2UgQSByYW5nZSBpbiB0aGUgaW5wdXQgdG8gYmUgc3Vic3RpdHV0ZWQKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAgICAgXHJldHVybiBBbiBvdXRwdXQgaXRlcmF0b3IgcG9pbnRpbmcganVzdCBhZnRlciB0aGUgbGFzdCBpbnNlcnRlZCBjaGFyYWN0ZXIgb3IKKyAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0CisKKyAgICAgICAgICAgICAgXG5vdGUgVGhlIHNlY29uZCB2YXJpYW50IG9mIHRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgdGhlIHN0cm9uZyBleGNlcHRpb24tc2FmZXR5IGd1YXJhbnRlZQorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMVQsIAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIE91dHB1dEl0ZXJhdG9yVCByZXBsYWNlX3JhbmdlX2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBpdGVyYXRvcl9yYW5nZTwKKyAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlX2NvbnN0X2l0ZXJhdG9yPFJhbmdlMVQ+Ojp0eXBlPiYgU2VhcmNoUmFuZ2UsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoCisgICAgICAgICAgICAgICAgT3V0cHV0LAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6cmFuZ2VfZmluZGVyKFNlYXJjaFJhbmdlKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIHJhbmdlIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFxvdmVybG9hZAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXF1ZW5jZVQsIHR5cGVuYW1lIFJhbmdlVD4KKyAgICAgICAgaW5saW5lIFNlcXVlbmNlVCByZXBsYWNlX3JhbmdlX2NvcHkoIAorICAgICAgICAgICAgY29uc3QgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPAorICAgICAgICAgICAgICAgIEJPT1NUX1NUUklOR19UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8U2VxdWVuY2VUPjo6dHlwZT4mIFNlYXJjaFJhbmdlLAorICAgICAgICAgICAgY29uc3QgUmFuZ2VUJiBGb3JtYXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpyYW5nZV9maW5kZXIoU2VhcmNoUmFuZ2UpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgcmFuZ2UgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2UgaW4gdGhlIGlucHV0IHN0cmluZy4gCisgICAgICAgICAgICBUaGUgaW5wdXQgc2VxdWVuY2UgaXMgbW9kaWZpZWQgaW4tcGxhY2UuCisKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBTZWFyY2hSYW5nZSBBIHJhbmdlIGluIHRoZSBpbnB1dCB0byBiZSBzdWJzdGl0dXRlZAorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdCBBIHN1YnN0aXR1dGUgc3RyaW5nCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2VUPgorICAgICAgICBpbmxpbmUgdm9pZCByZXBsYWNlX3JhbmdlKCAKKyAgICAgICAgICAgIFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBpdGVyYXRvcl9yYW5nZTwKKyAgICAgICAgICAgICAgICBCT09TVF9TVFJJTkdfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlX2l0ZXJhdG9yPFNlcXVlbmNlVD46OnR5cGU+JiBTZWFyY2hSYW5nZSwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlVCYgRm9ybWF0KQorICAgICAgICB7CisgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0KAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6cmFuZ2VfZmluZGVyKFNlYXJjaFJhbmdlKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpKTsKKyAgICAgICAgfQorCisvLyAgcmVwbGFjZV9maXJzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgZmlyc3QgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSB0aGUgZmlyc3QgbWF0Y2ggb2YgdGhlIHNlYXJjaCBzdWJzdHJpbmcgaW4gdGhlIGlucHV0IAorICAgICAgICAgICAgd2l0aCB0aGUgZm9ybWF0IHN0cmluZy4gCisgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQuIEl0IGlzIHJldHVybmVkIGFzIGEgc2VxdWVuY2UgCisgICAgICAgICAgICBvciBjb3BpZWQgdG8gdGhlIG91dHB1dCBpdGVyYXRvci4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHN0cmluZworICAgICAgICAgICAgXHBhcmFtIFNlYXJjaCBBIHN1YnN0cmluZyB0byBiZSBzZWFyY2hlZCBmb3IgCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gb3V0cHV0IGl0ZXJhdG9yIHBvaW50aW5nIGp1c3QgYWZ0ZXIgdGhlIGxhc3QgaW5zZXJ0ZWQgY2hhcmFjdGVyIG9yCisgICAgICAgICAgICAgICAgICAgIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQKKworICAgICAgICAgICAgICBcbm90ZSBUaGUgc2Vjb25kIHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgc3Ryb25nIGV4Y2VwdGlvbi1zYWZldHkgZ3VhcmFudGVlCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UxVCwgCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTJULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UzVD4KKyAgICAgICAgaW5saW5lIE91dHB1dEl0ZXJhdG9yVCByZXBsYWNlX2ZpcnN0X2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTNUJiBGb3JtYXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoCisgICAgICAgICAgICAgICAgT3V0cHV0LAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Zmlyc3RfZmluZGVyKFNlYXJjaCksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgZmlyc3QgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgXG92ZXJsb2FkCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2UxVCwgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIFNlcXVlbmNlVCByZXBsYWNlX2ZpcnN0X2NvcHkoIAorICAgICAgICAgICAgY29uc3QgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIFNlYXJjaCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIEZvcm1hdCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoIAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Zmlyc3RfZmluZGVyKFNlYXJjaCksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgZmlyc3QgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgcmVwbGFjZSB0aGUgZmlyc3QgbWF0Y2ggb2YgdGhlIHNlYXJjaCBzdWJzdHJpbmcgaW4gdGhlIGlucHV0IAorICAgICAgICAgICAgd2l0aCB0aGUgZm9ybWF0IHN0cmluZy4gVGhlIGlucHV0IHNlcXVlbmNlIGlzIG1vZGlmaWVkIGluLXBsYWNlLgorCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXF1ZW5jZVQsIHR5cGVuYW1lIFJhbmdlMVQsIHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgIGlubGluZSB2b2lkIHJlcGxhY2VfZmlyc3QoIAorICAgICAgICAgICAgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIFNlYXJjaCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIEZvcm1hdCApCisgICAgICAgIHsKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXQoIAorICAgICAgICAgICAgICAgIElucHV0LCAKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpcnN0X2ZpbmRlcihTZWFyY2gpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisvLyAgcmVwbGFjZV9maXJzdCAoIGNhc2UgaW5zZW5zaXRpdmUgKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgIC8vISBSZXBsYWNlIGZpcnN0IGFsZ29yaXRobSAoIGNhc2UgaW5zZW5zaXRpdmUgKQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgdGhlIGZpcnN0IG1hdGNoIG9mIHRoZSBzZWFyY2ggc3Vic3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIAorICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0LiBJdCBpcyByZXR1cm5lZCBhcyBhIHNlcXVlbmNlIAorICAgICAgICAgICAgb3IgY29waWVkIHRvIHRoZSBvdXRwdXQgaXRlcmF0b3IuCisgICAgICAgICAgICBTZWFyY2hpbmcgaXMgY2FzZSBpbnNlbnNpdGl2ZS4KKworICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHN0cmluZworICAgICAgICAgICAgXHBhcmFtIFNlYXJjaCBBIHN1YnN0cmluZyB0byBiZSBzZWFyY2hlZCBmb3IgCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBMb2MgQSBsb2NhbGUgdXNlZCBmb3IgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAgICBccmV0dXJuIEFuIG91dHB1dCBpdGVyYXRvciBwb2ludGluZyBqdXN0IGFmdGVyIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBvcgorICAgICAgICAgICAgICAgIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQKKworICAgICAgICAgICAgIFxub3RlIFRoZSBzZWNvbmQgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBzdHJvbmcgZXhjZXB0aW9uLXNhZmV0eSBndWFyYW50ZWUKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgICB0eXBlbmFtZSBPdXRwdXRJdGVyYXRvclQsCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTFULCAKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMlQsCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTNUPgorICAgICAgICBpbmxpbmUgT3V0cHV0SXRlcmF0b3JUIGlyZXBsYWNlX2ZpcnN0X2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTNUJiBGb3JtYXQsCisgICAgICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSYgTG9jPXN0ZDo6bG9jYWxlKCkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5KAorICAgICAgICAgICAgICAgIE91dHB1dCwKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpcnN0X2ZpbmRlcihTZWFyY2gsIGlzX2llcXVhbChMb2MpKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgICAgICAvLyEgUmVwbGFjZSBmaXJzdCBhbGdvcml0aG0gKCBjYXNlIGluc2Vuc2l0aXZlICkKKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VxdWVuY2VULCB0eXBlbmFtZSBSYW5nZTJULCB0eXBlbmFtZSBSYW5nZTFUPgorICAgICAgICBpbmxpbmUgU2VxdWVuY2VUIGlyZXBsYWNlX2ZpcnN0X2NvcHkoIAorICAgICAgICAgICAgY29uc3QgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIFNlYXJjaCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIEZvcm1hdCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlJiBMb2M9c3RkOjpsb2NhbGUoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoIAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Zmlyc3RfZmluZGVyKFNlYXJjaCwgaXNfaWVxdWFsKExvYykpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIGZpcnN0IGFsZ29yaXRobSAoIGNhc2UgaW5zZW5zaXRpdmUgKQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgdGhlIGZpcnN0IG1hdGNoIG9mIHRoZSBzZWFyY2ggc3Vic3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIElucHV0IHNlcXVlbmNlIGlzIG1vZGlmaWVkIGluLXBsYWNlLgorICAgICAgICAgICAgU2VhcmNoaW5nIGlzIGNhc2UgaW5zZW5zaXRpdmUuCisKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBTZWFyY2ggQSBzdWJzdHJpbmcgdG8gYmUgc2VhcmNoZWQgZm9yIAorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdCBBIHN1YnN0aXR1dGUgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gTG9jIEEgbG9jYWxlIHVzZWQgZm9yIGNhc2UgaW5zZW5zaXRpdmUgY29tcGFyaXNvbgorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXF1ZW5jZVQsIHR5cGVuYW1lIFJhbmdlMVQsIHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgIGlubGluZSB2b2lkIGlyZXBsYWNlX2ZpcnN0KCAKKyAgICAgICAgICAgIFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQsCisgICAgICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSYgTG9jPXN0ZDo6bG9jYWxlKCkgKQorICAgICAgICB7CisgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwgCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaXJzdF9maW5kZXIoU2VhcmNoLCBpc19pZXF1YWwoTG9jKSksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKy8vICByZXBsYWNlX2xhc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgIC8vISBSZXBsYWNlIGxhc3QgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSB0aGUgbGFzdCBtYXRjaCBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgaW5wdXQgCisgICAgICAgICAgICB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nLiAKKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dC4gSXQgaXMgcmV0dXJuZWQgYXMgYSBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG9yIGNvcGllZCB0byB0aGUgb3V0cHV0IGl0ZXJhdG9yLgorCisgICAgICAgICAgICBccGFyYW0gT3V0cHV0IEFuIG91dHB1dCBpdGVyYXRvciB0byB3aGljaCB0aGUgcmVzdWx0IHdpbGwgYmUgY29waWVkCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvcgorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdCBBIHN1YnN0aXR1dGUgc3RyaW5nCisgICAgICAgICAgICBccmV0dXJuIEFuIG91dHB1dCBpdGVyYXRvciBwb2ludGluZyBqdXN0IGFmdGVyIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBvcgorICAgICAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0ICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgXG5vdGUgVGhlIHNlY29uZCB2YXJpYW50IG9mIHRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgdGhlIHN0cm9uZyBleGNlcHRpb24tc2FmZXR5IGd1YXJhbnRlZQorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMVQsIAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UyVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlM1Q+CisgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgcmVwbGFjZV9sYXN0X2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTNUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5KAorICAgICAgICAgICAgICAgIE91dHB1dCwKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06Omxhc3RfZmluZGVyKFNlYXJjaCksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgbGFzdCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VxdWVuY2VULCB0eXBlbmFtZSBSYW5nZTFULCB0eXBlbmFtZSBSYW5nZTJUPgorICAgICAgICBpbmxpbmUgU2VxdWVuY2VUIHJlcGxhY2VfbGFzdF9jb3B5KCAKKyAgICAgICAgICAgIGNvbnN0IFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06Omxhc3RfZmluZGVyKFNlYXJjaCksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgbGFzdCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIHRoZSBsYXN0IG1hdGNoIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIElucHV0IHNlcXVlbmNlIGlzIG1vZGlmaWVkIGluLXBsYWNlLgorCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXF1ZW5jZVQsIHR5cGVuYW1lIFJhbmdlMVQsIHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgIGlubGluZSB2b2lkIHJlcGxhY2VfbGFzdCggCisgICAgICAgICAgICBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgU2VhcmNoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgRm9ybWF0ICkKKyAgICAgICAgeworICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdCggCisgICAgICAgICAgICAgICAgSW5wdXQsIAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6bGFzdF9maW5kZXIoU2VhcmNoKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworLy8gIHJlcGxhY2VfbGFzdCAoIGNhc2UgaW5zZW5zaXRpdmUgKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgbGFzdCBhbGdvcml0aG0gKCBjYXNlIGluc2Vuc2l0aXZlICkKKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIHRoZSBsYXN0IG1hdGNoIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIAorICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0LiBJdCBpcyByZXR1cm5lZCBhcyBhIHNlcXVlbmNlIAorICAgICAgICAgICAgb3IgY29waWVkIHRvIHRoZSBvdXRwdXQgaXRlcmF0b3IuCisgICAgICAgICAgICBTZWFyY2hpbmcgaXMgY2FzZSBpbnNlbnNpdGl2ZS4KKworICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHN0cmluZworICAgICAgICAgICAgXHBhcmFtIFNlYXJjaCBBIHN1YnN0cmluZyB0byBiZSBzZWFyY2hlZCBmb3IgCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBMb2MgQSBsb2NhbGUgdXNlZCBmb3IgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAgICBccmV0dXJuIEFuIG91dHB1dCBpdGVyYXRvciBwb2ludGluZyBqdXN0IGFmdGVyIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBvcgorICAgICAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0ICAKKworICAgICAgICAgICAgXG5vdGUgVGhlIHNlY29uZCB2YXJpYW50IG9mIHRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgdGhlIHN0cm9uZyBleGNlcHRpb24tc2FmZXR5IGd1YXJhbnRlZQorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMVQsIAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UyVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlM1Q+CisgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgaXJlcGxhY2VfbGFzdF9jb3B5KAorICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIE91dHB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgU2VhcmNoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UzVCYgRm9ybWF0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUmIExvYz1zdGQ6OmxvY2FsZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXRfY29weSgKKyAgICAgICAgICAgICAgICBPdXRwdXQsCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpsYXN0X2ZpbmRlcihTZWFyY2gsIGlzX2llcXVhbChMb2MpKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgICAgICAvLyEgUmVwbGFjZSBsYXN0IGFsZ29yaXRobSAoIGNhc2UgaW5zZW5zaXRpdmUgKQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFxvdmVybG9hZAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXF1ZW5jZVQsIHR5cGVuYW1lIFJhbmdlMVQsIHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgIGlubGluZSBTZXF1ZW5jZVQgaXJlcGxhY2VfbGFzdF9jb3B5KCAKKyAgICAgICAgICAgIGNvbnN0IFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQsCisgICAgICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSYgTG9jPXN0ZDo6bG9jYWxlKCkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06Omxhc3RfZmluZGVyKFNlYXJjaCwgaXNfaWVxdWFsKExvYykpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIGxhc3QgYWxnb3JpdGhtICggY2FzZSBpbnNlbnNpdGl2ZSApCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSB0aGUgbGFzdCBtYXRjaCBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgaW5wdXQgCisgICAgICAgICAgICB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nLlRoZSBpbnB1dCBzZXF1ZW5jZSBpcyBtb2RpZmllZCBpbi1wbGFjZS4KKyAgICAgICAgICAgIFNlYXJjaGluZyBpcyBjYXNlIGluc2Vuc2l0aXZlLgorCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAgICAgXHBhcmFtIExvYyBBIGxvY2FsZSB1c2VkIGZvciBjYXNlIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24KKyAgICAgICAgICAgIFxyZXR1cm4gQSByZWZlcmVuY2UgdG8gdGhlIG1vZGlmaWVkIGlucHV0CisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2UxVCwgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIHZvaWQgaXJlcGxhY2VfbGFzdCggCisgICAgICAgICAgICBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgU2VhcmNoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgRm9ybWF0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUmIExvYz1zdGQ6OmxvY2FsZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdCggCisgICAgICAgICAgICAgICAgSW5wdXQsIAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6bGFzdF9maW5kZXIoU2VhcmNoLCBpc19pZXF1YWwoTG9jKSksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKy8vICByZXBsYWNlX250aCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgbnRoIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgYW4gTnRoICh6ZXJvLWluZGV4ZWQpIG1hdGNoIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIAorICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0LiBJdCBpcyByZXR1cm5lZCBhcyBhIHNlcXVlbmNlIAorICAgICAgICAgICAgb3IgY29waWVkIHRvIHRoZSBvdXRwdXQgaXRlcmF0b3IuCisKKyAgICAgICAgICAgIFxwYXJhbSBPdXRwdXQgQW4gb3V0cHV0IGl0ZXJhdG9yIHRvIHdoaWNoIHRoZSByZXN1bHQgd2lsbCBiZSBjb3BpZWQKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBTZWFyY2ggQSBzdWJzdHJpbmcgdG8gYmUgc2VhcmNoZWQgZm9yIAorICAgICAgICAgICAgXHBhcmFtIE50aCBBbiBpbmRleCBvZiB0aGUgbWF0Y2ggdG8gYmUgcmVwbGFjZWQuIFRoZSBpbmRleCBpcyAwLWJhc2VkLgorICAgICAgICAgICAgICAgIEZvciBuZWdhdGl2ZSBOLCBtYXRjaGVzIGFyZSBjb3VudGVkIGZyb20gdGhlIGVuZCBvZiBzdHJpbmcuCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gb3V0cHV0IGl0ZXJhdG9yIHBvaW50aW5nIGp1c3QgYWZ0ZXIgdGhlIGxhc3QgaW5zZXJ0ZWQgY2hhcmFjdGVyIG9yCisgICAgICAgICAgICAgICAgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dAorCisgICAgICAgICAgICBcbm90ZSBUaGUgc2Vjb25kIHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgc3Ryb25nIGV4Y2VwdGlvbi1zYWZldHkgZ3VhcmFudGVlCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UxVCwgCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTJULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UzVD4KKyAgICAgICAgaW5saW5lIE91dHB1dEl0ZXJhdG9yVCByZXBsYWNlX250aF9jb3B5KAorICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIE91dHB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgU2VhcmNoLAorICAgICAgICAgICAgaW50IE50aCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlM1QmIEZvcm1hdCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoCisgICAgICAgICAgICAgICAgT3V0cHV0LAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6bnRoX2ZpbmRlcihTZWFyY2gsIE50aCksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgbnRoIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFxvdmVybG9hZAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXF1ZW5jZVQsIHR5cGVuYW1lIFJhbmdlMVQsIHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgIGlubGluZSBTZXF1ZW5jZVQgcmVwbGFjZV9udGhfY29weSggCisgICAgICAgICAgICBjb25zdCBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgU2VhcmNoLAorICAgICAgICAgICAgaW50IE50aCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIEZvcm1hdCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoIAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6bnRoX2ZpbmRlcihTZWFyY2gsIE50aCksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgbnRoIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgYW4gTnRoICh6ZXJvLWluZGV4ZWQpIG1hdGNoIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIElucHV0IHNlcXVlbmNlIGlzIG1vZGlmaWVkIGluLXBsYWNlLgorCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBOdGggQW4gaW5kZXggb2YgdGhlIG1hdGNoIHRvIGJlIHJlcGxhY2VkLiBUaGUgaW5kZXggaXMgMC1iYXNlZC4KKyAgICAgICAgICAgICAgICBGb3IgbmVnYXRpdmUgTiwgbWF0Y2hlcyBhcmUgY291bnRlZCBmcm9tIHRoZSBlbmQgb2Ygc3RyaW5nLgorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdCBBIHN1YnN0aXR1dGUgc3RyaW5nCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2UxVCwgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIHZvaWQgcmVwbGFjZV9udGgoIAorICAgICAgICAgICAgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIFNlYXJjaCwKKyAgICAgICAgICAgIGludCBOdGgsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwgCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpudGhfZmluZGVyKFNlYXJjaCwgTnRoKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworLy8gIHJlcGxhY2VfbnRoICggY2FzZSBpbnNlbnNpdGl2ZSApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKyAgICAgICAgCisgICAgICAgIC8vISBSZXBsYWNlIG50aCBhbGdvcml0aG0gKCBjYXNlIGluc2Vuc2l0aXZlICkKKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIGFuIE50aCAoemVyby1pbmRleGVkKSBtYXRjaCBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgaW5wdXQgCisgICAgICAgICAgICB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nLiAKKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dC4gSXQgaXMgcmV0dXJuZWQgYXMgYSBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG9yIGNvcGllZCB0byB0aGUgb3V0cHV0IGl0ZXJhdG9yLgorICAgICAgICAgICAgU2VhcmNoaW5nIGlzIGNhc2UgaW5zZW5zaXRpdmUuCisKKyAgICAgICAgICAgIFxwYXJhbSBPdXRwdXQgQW4gb3V0cHV0IGl0ZXJhdG9yIHRvIHdoaWNoIHRoZSByZXN1bHQgd2lsbCBiZSBjb3BpZWQKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBTZWFyY2ggQSBzdWJzdHJpbmcgdG8gYmUgc2VhcmNoZWQgZm9yIAorICAgICAgICAgICAgXHBhcmFtIE50aCBBbiBpbmRleCBvZiB0aGUgbWF0Y2ggdG8gYmUgcmVwbGFjZWQuIFRoZSBpbmRleCBpcyAwLWJhc2VkLgorICAgICAgICAgICAgICAgIEZvciBuZWdhdGl2ZSBOLCBtYXRjaGVzIGFyZSBjb3VudGVkIGZyb20gdGhlIGVuZCBvZiBzdHJpbmcuCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBMb2MgQSBsb2NhbGUgdXNlZCBmb3IgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAgICBccmV0dXJuIEFuIG91dHB1dCBpdGVyYXRvciBwb2ludGluZyBqdXN0IGFmdGVyIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBvcgorICAgICAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0ICAgICAgICAgICAgCisKKyAgICAgICAgICAgIFxub3RlIFRoZSBzZWNvbmQgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBzdHJvbmcgZXhjZXB0aW9uLXNhZmV0eSBndWFyYW50ZWUKKyAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICAgIHR5cGVuYW1lIE91dHB1dEl0ZXJhdG9yVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMVQsIAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UyVCwKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlM1Q+CisgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgaXJlcGxhY2VfbnRoX2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBTZWFyY2gsCisgICAgICAgICAgICBpbnQgTnRoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UzVCYgRm9ybWF0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUmIExvYz1zdGQ6OmxvY2FsZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXRfY29weSgKKyAgICAgICAgICAgICAgICBPdXRwdXQsCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpudGhfZmluZGVyKFNlYXJjaCwgTnRoLCBpc19pZXF1YWwoTG9jKSApLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIG50aCBhbGdvcml0aG0gKCBjYXNlIGluc2Vuc2l0aXZlICkKKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VxdWVuY2VULCB0eXBlbmFtZSBSYW5nZTFULCB0eXBlbmFtZSBSYW5nZTJUPgorICAgICAgICBpbmxpbmUgU2VxdWVuY2VUIGlyZXBsYWNlX250aF9jb3B5KCAKKyAgICAgICAgICAgIGNvbnN0IFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBTZWFyY2gsCisgICAgICAgICAgICBpbnQgTnRoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgRm9ybWF0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUmIExvYz1zdGQ6OmxvY2FsZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXRfY29weSggCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpudGhfZmluZGVyKFNlYXJjaCwgTnRoLCBpc19pZXF1YWwoTG9jKSksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgbnRoIGFsZ29yaXRobSAoIGNhc2UgaW5zZW5zaXRpdmUgKQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgYW4gTnRoICh6ZXJvLWluZGV4ZWQpIG1hdGNoIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIElucHV0IHNlcXVlbmNlIGlzIG1vZGlmaWVkIGluLXBsYWNlLgorICAgICAgICAgICAgU2VhcmNoaW5nIGlzIGNhc2UgaW5zZW5zaXRpdmUuCisKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBTZWFyY2ggQSBzdWJzdHJpbmcgdG8gYmUgc2VhcmNoZWQgZm9yIAorICAgICAgICAgICAgXHBhcmFtIE50aCBBbiBpbmRleCBvZiB0aGUgbWF0Y2ggdG8gYmUgcmVwbGFjZWQuIFRoZSBpbmRleCBpcyAwLWJhc2VkLgorICAgICAgICAgICAgICAgIEZvciBuZWdhdGl2ZSBOLCBtYXRjaGVzIGFyZSBjb3VudGVkIGZyb20gdGhlIGVuZCBvZiBzdHJpbmcuCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBMb2MgQSBsb2NhbGUgdXNlZCBmb3IgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2UxVCwgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIHZvaWQgaXJlcGxhY2VfbnRoKCAKKyAgICAgICAgICAgIFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBTZWFyY2gsCisgICAgICAgICAgICBpbnQgTnRoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgRm9ybWF0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUmIExvYz1zdGQ6OmxvY2FsZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdCggCisgICAgICAgICAgICAgICAgSW5wdXQsIAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6bnRoX2ZpbmRlcihTZWFyY2gsIE50aCwgaXNfaWVxdWFsKExvYykpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisvLyAgcmVwbGFjZV9hbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgIC8vISBSZXBsYWNlIGFsbCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgaW5wdXQgCisgICAgICAgICAgICB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nLiAKKyAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dC4gSXQgaXMgcmV0dXJuZWQgYXMgYSBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG9yIGNvcGllZCB0byB0aGUgb3V0cHV0IGl0ZXJhdG9yLgorCisgICAgICAgICAgICBccGFyYW0gT3V0cHV0IEFuIG91dHB1dCBpdGVyYXRvciB0byB3aGljaCB0aGUgcmVzdWx0IHdpbGwgYmUgY29waWVkCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAgICAgXHJldHVybiBBbiBvdXRwdXQgaXRlcmF0b3IgcG9pbnRpbmcganVzdCBhZnRlciB0aGUgbGFzdCBpbnNlcnRlZCBjaGFyYWN0ZXIgb3IKKyAgICAgICAgICAgICAgICAgICAgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dCAKKworICAgICAgICAgICAgIFxub3RlIFRoZSBzZWNvbmQgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBzdHJvbmcgZXhjZXB0aW9uLXNhZmV0eSBndWFyYW50ZWUKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgICB0eXBlbmFtZSBPdXRwdXRJdGVyYXRvclQsCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTFULCAKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMlQsCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTNUPgorICAgICAgICBpbmxpbmUgT3V0cHV0SXRlcmF0b3JUIHJlcGxhY2VfYWxsX2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTNUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9hbGxfY29weSgKKyAgICAgICAgICAgICAgICBPdXRwdXQsCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaXJzdF9maW5kZXIoU2VhcmNoKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgICAgICAvLyEgUmVwbGFjZSBhbGwgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgXG92ZXJsb2FkCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2UxVCwgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIFNlcXVlbmNlVCByZXBsYWNlX2FsbF9jb3B5KCAKKyAgICAgICAgICAgIGNvbnN0IFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBTZWFyY2gsCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9hbGxfY29weSggCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaXJzdF9maW5kZXIoU2VhcmNoKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgICAgICAvLyEgUmVwbGFjZSBhbGwgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIHNlYXJjaCBzdHJpbmcgaW4gdGhlIGlucHV0IAorICAgICAgICAgICAgd2l0aCB0aGUgZm9ybWF0IHN0cmluZy4gVGhlIGlucHV0IHNlcXVlbmNlIGlzIG1vZGlmaWVkIGluLXBsYWNlLgorCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAgICAgXHJldHVybiBBIHJlZmVyZW5jZSB0byB0aGUgbW9kaWZpZWQgaW5wdXQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VxdWVuY2VULCB0eXBlbmFtZSBSYW5nZTFULCB0eXBlbmFtZSBSYW5nZTJUPgorICAgICAgICBpbmxpbmUgdm9pZCByZXBsYWNlX2FsbCggCisgICAgICAgICAgICBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgU2VhcmNoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgRm9ybWF0ICkKKyAgICAgICAgeworICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9hbGwoIAorICAgICAgICAgICAgICAgIElucHV0LCAKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpcnN0X2ZpbmRlcihTZWFyY2gpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorICAgICAgICAKKy8vICByZXBsYWNlX2FsbCAoIGNhc2UgaW5zZW5zaXRpdmUgKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgYWxsIGFsZ29yaXRobSAoIGNhc2UgaW5zZW5zaXRpdmUgKQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgYWxsIG9jY3VycmVuY2VzIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBpbnB1dCAKKyAgICAgICAgICAgIHdpdGggdGhlIGZvcm1hdCBzdHJpbmcuIAorICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0LiBJdCBpcyByZXR1cm5lZCBhcyBhIHNlcXVlbmNlIAorICAgICAgICAgICAgb3IgY29waWVkIHRvIHRoZSBvdXRwdXQgaXRlcmF0b3IuCisgICAgICAgICAgICBTZWFyY2hpbmcgaXMgY2FzZSBpbnNlbnNpdGl2ZS4KKworICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHN0cmluZworICAgICAgICAgICAgXHBhcmFtIFNlYXJjaCBBIHN1YnN0cmluZyB0byBiZSBzZWFyY2hlZCBmb3IgCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBMb2MgQSBsb2NhbGUgdXNlZCBmb3IgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAgICBccmV0dXJuIEFuIG91dHB1dCBpdGVyYXRvciBwb2ludGluZyBqdXN0IGFmdGVyIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBvcgorICAgICAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIGNvcHkgb2YgdGhlIGlucHV0IAorCisgICAgICAgICAgICBcbm90ZSBUaGUgc2Vjb25kIHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgc3Ryb25nIGV4Y2VwdGlvbi1zYWZldHkgZ3VhcmFudGVlCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UxVCwgCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTJULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UzVD4KKyAgICAgICAgaW5saW5lIE91dHB1dEl0ZXJhdG9yVCBpcmVwbGFjZV9hbGxfY29weSgKKyAgICAgICAgICAgIE91dHB1dEl0ZXJhdG9yVCBPdXRwdXQsCisgICAgICAgICAgICBjb25zdCBSYW5nZTFUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIFNlYXJjaCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlM1QmIEZvcm1hdCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlJiBMb2M9c3RkOjpsb2NhbGUoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2FsbF9jb3B5KAorICAgICAgICAgICAgICAgIE91dHB1dCwKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpcnN0X2ZpbmRlcihTZWFyY2gsIGlzX2llcXVhbChMb2MpKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgICAgICAvLyEgUmVwbGFjZSBhbGwgYWxnb3JpdGhtICggY2FzZSBpbnNlbnNpdGl2ZSApCisgICAgICAgIC8qIQorICAgICAgICAgICAgXG92ZXJsb2FkCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2UxVCwgdHlwZW5hbWUgUmFuZ2UyVD4KKyAgICAgICAgaW5saW5lIFNlcXVlbmNlVCBpcmVwbGFjZV9hbGxfY29weSggCisgICAgICAgICAgICBjb25zdCBTZXF1ZW5jZVQmIElucHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgU2VhcmNoLAorICAgICAgICAgICAgY29uc3QgUmFuZ2UyVCYgRm9ybWF0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpsb2NhbGUmIExvYz1zdGQ6OmxvY2FsZSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXRfYWxsX2NvcHkoIAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Zmlyc3RfZmluZGVyKFNlYXJjaCwgaXNfaWVxdWFsKExvYykpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIGFsbCBhbGdvcml0aG0gKCBjYXNlIGluc2Vuc2l0aXZlICkKKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgaW5wdXQgCisgICAgICAgICAgICB3aXRoIHRoZSBmb3JtYXQgc3RyaW5nLlRoZSBpbnB1dCBzZXF1ZW5jZSBpcyBtb2RpZmllZCBpbi1wbGFjZS4KKyAgICAgICAgICAgIFNlYXJjaGluZyBpcyBjYXNlIGluc2Vuc2l0aXZlLgorCisgICAgICAgICAgICBccGFyYW0gSW5wdXQgQW4gaW5wdXQgc3RyaW5nCisgICAgICAgICAgICBccGFyYW0gU2VhcmNoIEEgc3Vic3RyaW5nIHRvIGJlIHNlYXJjaGVkIGZvciAKKyAgICAgICAgICAgIFxwYXJhbSBGb3JtYXQgQSBzdWJzdGl0dXRlIHN0cmluZworICAgICAgICAgICAgXHBhcmFtIExvYyBBIGxvY2FsZSB1c2VkIGZvciBjYXNlIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24KKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VxdWVuY2VULCB0eXBlbmFtZSBSYW5nZTFULCB0eXBlbmFtZSBSYW5nZTJUPgorICAgICAgICBpbmxpbmUgdm9pZCBpcmVwbGFjZV9hbGwoIAorICAgICAgICAgICAgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIFNlYXJjaCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIEZvcm1hdCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlJiBMb2M9c3RkOjpsb2NhbGUoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXRfYWxsKCAKKyAgICAgICAgICAgICAgICBJbnB1dCwgCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaXJzdF9maW5kZXIoU2VhcmNoLCBpc19pZXF1YWwoTG9jKSksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisgICAgICAgIAorLy8gIHJlcGxhY2VfaGVhZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgaGVhZCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIHRoZSBoZWFkIG9mIHRoZSBpbnB1dCB3aXRoIHRoZSBnaXZlbiBmb3JtYXQgc3RyaW5nLiAKKyAgICAgICAgICAgIFRoZSBoZWFkIGlzIGEgcHJlZml4IG9mIGEgc3RyaW5nIG9mIGdpdmVuIHNpemUuIAorICAgICAgICAgICAgSWYgdGhlIHNlcXVlbmNlIGlzIHNob3J0ZXIgdGhlbiByZXF1aXJlZCwgd2hvbGUgc3RyaW5nIGlmIAorICAgICAgICAgICAgY29uc2lkZXJlZCB0byBiZSB0aGUgaGVhZC4gCisgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQuIEl0IGlzIHJldHVybmVkIGFzIGEgc2VxdWVuY2UgCisgICAgICAgICAgICBvciBjb3BpZWQgdG8gdGhlIG91dHB1dCBpdGVyYXRvci4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHN0cmluZworICAgICAgICAgICAgXHBhcmFtIE4gTGVuZ3RoIG9mIHRoZSBoZWFkLgorICAgICAgICAgICAgICAgIEZvciBOPj0wLCBhdCBtb3N0IE4gY2hhcmFjdGVycyBhcmUgZXh0cmFjdGVkLgorICAgICAgICAgICAgICAgIEZvciBOPDAsIHNpemUoSW5wdXQpLXxOfCBjaGFyYWN0ZXJzIGFyZSBleHRyYWN0ZWQuCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gb3V0cHV0IGl0ZXJhdG9yIHBvaW50aW5nIGp1c3QgYWZ0ZXIgdGhlIGxhc3QgaW5zZXJ0ZWQgY2hhcmFjdGVyIG9yCisgICAgICAgICAgICAgICAgYSBtb2RpZmllZCBjb3B5IG9mIHRoZSBpbnB1dCAgCisKKyAgICAgICAgICAgIFxub3RlIFRoZSBzZWNvbmQgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSBzdHJvbmcgZXhjZXB0aW9uLXNhZmV0eSBndWFyYW50ZWUKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgICB0eXBlbmFtZSBPdXRwdXRJdGVyYXRvclQsCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTFULCAKKyAgICAgICAgICAgIHR5cGVuYW1lIFJhbmdlMlQ+CisgICAgICAgIGlubGluZSBPdXRwdXRJdGVyYXRvclQgcmVwbGFjZV9oZWFkX2NvcHkoCisgICAgICAgICAgICBPdXRwdXRJdGVyYXRvclQgT3V0cHV0LAorICAgICAgICAgICAgY29uc3QgUmFuZ2UxVCYgSW5wdXQsCisgICAgICAgICAgICBpbnQgTiwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMlQmIEZvcm1hdCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0X2NvcHkoCisgICAgICAgICAgICAgICAgT3V0cHV0LAorICAgICAgICAgICAgICAgIElucHV0LAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6aGVhZF9maW5kZXIoTiksCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpjb25zdF9mb3JtYXR0ZXIoRm9ybWF0KSApOworICAgICAgICB9CisKKyAgICAgICAgLy8hIFJlcGxhY2UgaGVhZCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBcb3ZlcmxvYWQKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgU2VxdWVuY2VULCB0eXBlbmFtZSBSYW5nZVQ+CisgICAgICAgIGlubGluZSBTZXF1ZW5jZVQgcmVwbGFjZV9oZWFkX2NvcHkoIAorICAgICAgICAgICAgY29uc3QgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGludCBOLAorICAgICAgICAgICAgY29uc3QgUmFuZ2VUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmhlYWRfZmluZGVyKE4pLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIGhlYWQgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgUmVwbGFjZSB0aGUgaGVhZCBvZiB0aGUgaW5wdXQgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IHN0cmluZy4gCisgICAgICAgICAgICBUaGUgaGVhZCBpcyBhIHByZWZpeCBvZiBhIHN0cmluZyBvZiBnaXZlbiBzaXplLiAKKyAgICAgICAgICAgIElmIHRoZSBzZXF1ZW5jZSBpcyBzaG9ydGVyIHRoZW4gcmVxdWlyZWQsIHRoZSB3aG9sZSBzdHJpbmcgaXMgCisgICAgICAgICAgICBjb25zaWRlcmVkIHRvIGJlIHRoZSBoZWFkLiBUaGUgaW5wdXQgc2VxdWVuY2UgaXMgbW9kaWZpZWQgaW4tcGxhY2UuCisKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBOIExlbmd0aCBvZiB0aGUgaGVhZC4KKyAgICAgICAgICAgICAgICBGb3IgTj49MCwgYXQgbW9zdCBOIGNoYXJhY3RlcnMgYXJlIGV4dHJhY3RlZC4KKyAgICAgICAgICAgICAgICBGb3IgTjwwLCBzaXplKElucHV0KS18TnwgY2hhcmFjdGVycyBhcmUgZXh0cmFjdGVkLgorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdCBBIHN1YnN0aXR1dGUgc3RyaW5nCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2VUPgorICAgICAgICBpbmxpbmUgdm9pZCByZXBsYWNlX2hlYWQoIAorICAgICAgICAgICAgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGludCBOLAorICAgICAgICAgICAgY29uc3QgUmFuZ2VUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwgCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpoZWFkX2ZpbmRlcihOKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworLy8gIHJlcGxhY2VfdGFpbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIFJlcGxhY2UgdGFpbCBhbGdvcml0aG0KKyAgICAgICAgLyohCisgICAgICAgICAgICBSZXBsYWNlIHRoZSB0YWlsIG9mIHRoZSBpbnB1dCB3aXRoIHRoZSBnaXZlbiBmb3JtYXQgc3RyaW5nLiAKKyAgICAgICAgICAgIFRoZSB0YWlsIGlzIGEgc3VmZml4IG9mIGEgc3RyaW5nIG9mIGdpdmVuIHNpemUuIAorICAgICAgICAgICAgSWYgdGhlIHNlcXVlbmNlIGlzIHNob3J0ZXIgdGhlbiByZXF1aXJlZCwgd2hvbGUgc3RyaW5nIGlzIAorICAgICAgICAgICAgY29uc2lkZXJlZCB0byBiZSB0aGUgdGFpbC4gCisgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQuIEl0IGlzIHJldHVybmVkIGFzIGEgc2VxdWVuY2UgCisgICAgICAgICAgICBvciBjb3BpZWQgdG8gdGhlIG91dHB1dCBpdGVyYXRvci4KKworICAgICAgICAgICAgXHBhcmFtIE91dHB1dCBBbiBvdXRwdXQgaXRlcmF0b3IgdG8gd2hpY2ggdGhlIHJlc3VsdCB3aWxsIGJlIGNvcGllZAorICAgICAgICAgICAgXHBhcmFtIElucHV0IEFuIGlucHV0IHN0cmluZworICAgICAgICAgICAgXHBhcmFtIE4gTGVuZ3RoIG9mIHRoZSB0YWlsLgorICAgICAgICAgICAgICAgIEZvciBOPj0wLCBhdCBtb3N0IE4gY2hhcmFjdGVycyBhcmUgZXh0cmFjdGVkLgorICAgICAgICAgICAgICAgIEZvciBOPDAsIHNpemUoSW5wdXQpLXxOfCBjaGFyYWN0ZXJzIGFyZSBleHRyYWN0ZWQuCisgICAgICAgICAgICBccGFyYW0gRm9ybWF0IEEgc3Vic3RpdHV0ZSBzdHJpbmcKKyAgICAgICAgICAgIFxyZXR1cm4gQW4gb3V0cHV0IGl0ZXJhdG9yIHBvaW50aW5nIGp1c3QgYWZ0ZXIgdGhlIGxhc3QgaW5zZXJ0ZWQgY2hhcmFjdGVyIG9yCisgICAgICAgICAgICAgICAgICAgIGEgbW9kaWZpZWQgY29weSBvZiB0aGUgaW5wdXQgICAKKworICAgICAgICAgICAgICBcbm90ZSBUaGUgc2Vjb25kIHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBwcm92aWRlcyB0aGUgc3Ryb25nIGV4Y2VwdGlvbi1zYWZldHkgZ3VhcmFudGVlCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgdHlwZW5hbWUgT3V0cHV0SXRlcmF0b3JULAorICAgICAgICAgICAgdHlwZW5hbWUgUmFuZ2UxVCwgCisgICAgICAgICAgICB0eXBlbmFtZSBSYW5nZTJUPgorICAgICAgICBpbmxpbmUgT3V0cHV0SXRlcmF0b3JUIHJlcGxhY2VfdGFpbF9jb3B5KAorICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3JUIE91dHB1dCwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlMVQmIElucHV0LAorICAgICAgICAgICAgaW50IE4sCisgICAgICAgICAgICBjb25zdCBSYW5nZTJUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6YWxnb3JpdGhtOjpmaW5kX2Zvcm1hdF9jb3B5KAorICAgICAgICAgICAgICAgIE91dHB1dCwKKyAgICAgICAgICAgICAgICBJbnB1dCwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OnRhaWxfZmluZGVyKE4pLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6Y29uc3RfZm9ybWF0dGVyKEZvcm1hdCkgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vISBSZXBsYWNlIHRhaWwgYWxnb3JpdGhtCisgICAgICAgIC8qIQorICAgICAgICAgICAgXG92ZXJsb2FkCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2VUPgorICAgICAgICBpbmxpbmUgU2VxdWVuY2VUIHJlcGxhY2VfdGFpbF9jb3B5KCAKKyAgICAgICAgICAgIGNvbnN0IFNlcXVlbmNlVCYgSW5wdXQsCisgICAgICAgICAgICBpbnQgTiwKKyAgICAgICAgICAgIGNvbnN0IFJhbmdlVCYgRm9ybWF0ICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OmFsZ29yaXRobTo6ZmluZF9mb3JtYXRfY29weSggCisgICAgICAgICAgICAgICAgSW5wdXQsCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjp0YWlsX2ZpbmRlcihOKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgICAgICAvLyEgUmVwbGFjZSB0YWlsIGFsZ29yaXRobQorICAgICAgICAvKiEKKyAgICAgICAgICAgIFJlcGxhY2UgdGhlIHRhaWwgb2YgdGhlIGlucHV0IHdpdGggdGhlIGdpdmVuIGZvcm1hdCBzZXF1ZW5jZS4gCisgICAgICAgICAgICBUaGUgdGFpbCBpcyBhIHN1ZmZpeCBvZiBhIHN0cmluZyBvZiBnaXZlbiBzaXplLiAKKyAgICAgICAgICAgIElmIHRoZSBzZXF1ZW5jZSBpcyBzaG9ydGVyIHRoZW4gcmVxdWlyZWQsIHRoZSB3aG9sZSBzdHJpbmcgaXMgCisgICAgICAgICAgICBjb25zaWRlcmVkIHRvIGJlIHRoZSB0YWlsLiBUaGUgaW5wdXQgc2VxdWVuY2UgaXMgbW9kaWZpZWQgaW4tcGxhY2UuCisKKyAgICAgICAgICAgIFxwYXJhbSBJbnB1dCBBbiBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIFxwYXJhbSBOIExlbmd0aCBvZiB0aGUgdGFpbC4KKyAgICAgICAgICAgICAgICBGb3IgTj49MCwgYXQgbW9zdCBOIGNoYXJhY3RlcnMgYXJlIGV4dHJhY3RlZC4KKyAgICAgICAgICAgICAgICBGb3IgTjwwLCBzaXplKElucHV0KS18TnwgY2hhcmFjdGVycyBhcmUgZXh0cmFjdGVkLgorICAgICAgICAgICAgXHBhcmFtIEZvcm1hdCBBIHN1YnN0aXR1dGUgc3RyaW5nCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNlcXVlbmNlVCwgdHlwZW5hbWUgUmFuZ2VUPgorICAgICAgICBpbmxpbmUgdm9pZCByZXBsYWNlX3RhaWwoIAorICAgICAgICAgICAgU2VxdWVuY2VUJiBJbnB1dCwKKyAgICAgICAgICAgIGludCBOLAorICAgICAgICAgICAgY29uc3QgUmFuZ2VUJiBGb3JtYXQgKQorICAgICAgICB7CisgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmZpbmRfZm9ybWF0KCAKKyAgICAgICAgICAgICAgICBJbnB1dCwgCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YWxnb3JpdGhtOjp0YWlsX2ZpbmRlcihOKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjphbGdvcml0aG06OmNvbnN0X2Zvcm1hdHRlcihGb3JtYXQpICk7CisgICAgICAgIH0KKworICAgIH0gLy8gbmFtZXNwYWNlIGFsZ29yaXRobQorCisgICAgLy8gcHVsbCBuYW1lcyB0byB0aGUgYm9vc3QgbmFtZXNwYWNlCisgICAgdXNpbmcgYWxnb3JpdGhtOjpyZXBsYWNlX3JhbmdlX2NvcHk7CisgICAgdXNpbmcgYWxnb3JpdGhtOjpyZXBsYWNlX3JhbmdlOworICAgIHVzaW5nIGFsZ29yaXRobTo6cmVwbGFjZV9maXJzdF9jb3B5OworICAgIHVzaW5nIGFsZ29yaXRobTo6cmVwbGFjZV9maXJzdDsKKyAgICB1c2luZyBhbGdvcml0aG06OmlyZXBsYWNlX2ZpcnN0X2NvcHk7CisgICAgdXNpbmcgYWxnb3JpdGhtOjppcmVwbGFjZV9maXJzdDsKKyAgICB1c2luZyBhbGdvcml0aG06OnJlcGxhY2VfbGFzdF9jb3B5OworICAgIHVzaW5nIGFsZ29yaXRobTo6cmVwbGFjZV9sYXN0OworICAgIHVzaW5nIGFsZ29yaXRobTo6aXJlcGxhY2VfbGFzdF9jb3B5OworICAgIHVzaW5nIGFsZ29yaXRobTo6aXJlcGxhY2VfbGFzdDsKKyAgICB1c2luZyBhbGdvcml0aG06OnJlcGxhY2VfbnRoX2NvcHk7CisgICAgdXNpbmcgYWxnb3JpdGhtOjpyZXBsYWNlX250aDsKKyAgICB1c2luZyBhbGdvcml0aG06OmlyZXBsYWNlX250aF9jb3B5OworICAgIHVzaW5nIGFsZ29yaXRobTo6aXJlcGxhY2VfbnRoOworICAgIHVzaW5nIGFsZ29yaXRobTo6cmVwbGFjZV9hbGxfY29weTsKKyAgICB1c2luZyBhbGdvcml0aG06OnJlcGxhY2VfYWxsOworICAgIHVzaW5nIGFsZ29yaXRobTo6aXJlcGxhY2VfYWxsX2NvcHk7CisgICAgdXNpbmcgYWxnb3JpdGhtOjppcmVwbGFjZV9hbGw7CisgICAgdXNpbmcgYWxnb3JpdGhtOjpyZXBsYWNlX2hlYWRfY29weTsKKyAgICB1c2luZyBhbGdvcml0aG06OnJlcGxhY2VfaGVhZDsKKyAgICB1c2luZyBhbGdvcml0aG06OnJlcGxhY2VfdGFpbF9jb3B5OworICAgIHVzaW5nIGFsZ29yaXRobTo6cmVwbGFjZV90YWlsOworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vIEJPT1NUX1JFUExBQ0VfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvc2VxdWVuY2VfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9zZXF1ZW5jZV90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlZjQ2YWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvc2VxdWVuY2VfdHJhaXRzLmhwcApAQCAtMCwwICsxLDE5MyBAQAorLy8gIEJvb3N0IHN0cmluZ19hbGdvIGxpYnJhcnkgc2VxdWVuY2VfdHJhaXRzLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCBQYXZvbCBEcm9iYSAyMDAyLTIwMDMuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisKKyNpZm5kZWYgQk9PU1RfU1RSSU5HX1NFUVVFTkNFX1RSQUlUU19IUFAKKyNkZWZpbmUgQk9PU1RfU1RSSU5HX1NFUVVFTkNFX1RSQUlUU19IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcveWVzX25vX3R5cGUuaHBwPgorCisvKiEgXGZpbGUKKyAgICBUcmFpdHMgZGVmaW5lZCBpbiB0aGlzIGhlYWRlciBhcmUgdXNlZCBieSB2YXJpb3VzIGFsZ29yaXRobXMgdG8gYWNoaWV2ZQorICAgIGJldHRlciBwZXJmb3JtYW5jZSBmb3Igc3BlY2lmaWMgY29udGFpbmVycy4KKyAgICBUcmFpdHMgcHJvdmlkZSBmYWlsLXNhZmUgZGVmYXVsdHMuIElmIGEgY29udGFpbmVyIHN1cHBvcnRzIHNvbWUgb2YgdGhlc2UKKyAgICBmZWF0dXJlcywgaXQgaXMgcG9zc2libGUgdG8gc3BlY2lhbGl6ZSB0aGUgc3BlY2lmaWMgdHJhaXQgZm9yIHRoaXMgY29udGFpbmVyLgorICAgIEZvciBsYWNraW5nIGNvbXBpbGVycywgaXQgaXMgcG9zc2libGUgb2YgZGVmaW5lIGFuIG92ZXJyaWRlIGZvciBhIHNwZWNpZmljIHRlc3RlcgorICAgIGZ1bmN0aW9uLgorCisgICAgRHVlIHRvIGEgbGFuZ3VhZ2UgcmVzdHJpY3Rpb24sIGl0IGlzIG5vdCBjdXJyZW50bHkgcG9zc2libGUgdG8gZGVmaW5lIHNwZWNpYWxpemF0aW9ucyBmb3IKKyAgICBzdGwgY29udGFpbmVycyB3aXRob3V0IGluY2x1ZGluZyB0aGUgY29ycmVzcG9uZGluZyBoZWFkZXIuIFRvIGRlY3JlYXNlIHRoZSBvdmVyaGVhZAorICAgIG5lZWRlZCBieSB0aGlzIGluY2x1c2lvbiwgdXNlciBjYW4gc2VsZWN0aXZlbHkgaW5jbHVkZSBhIHNwZWNpYWxpemF0aW9uCisgICAgaGVhZGVyIGZvciBhIHNwZWNpZmljIGNvbnRhaW5lci4gVGhleSBhcmUgbG9jYXRlZCBpbiBib29zdC9hbGdvcml0aG0vc3RyaW5nL3N0bAorICAgIGRpcmVjdG9yeS4gQWx0ZXJuYXRpdmVseSBzaGUgY2FuIGluY2x1ZGUgYm9vc3QvYWxnb3JpdGhtL3N0cmluZy9zdGRfY29sbGVjdGlvbl90cmFpdHMuaHBwCisgICAgaGVhZGVyIHdoaWNoIGNvbnRhaW5zIHNwZWNpYWxpemF0aW9ucyBmb3IgYWxsIHN0bCBjb250YWluZXJzLgorKi8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgYWxnb3JpdGhtIHsKKworLy8gIHNlcXVlbmNlIHRyYWl0cyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisgICAgICAgIC8vISBOYXRpdmUgcmVwbGFjZSB0ZXN0ZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBEZWNsYXJlIGFuIG92ZXJyaWRlIG9mIHRoaXMgdGVzdGVyIGZ1bmN0aW9uIHdpdGggcmV0dXJuCisgICAgICAgICAgICB0eXBlIG5kbmJvb3N0OjpzdHJpbmdfYWxnbzo6eWVzX3R5cGUgZm9yIGEgc2VxdWVuY2Ugd2l0aCB0aGlzIHByb3BlcnR5LgorCisgICAgICAgICAgICBccmV0dXJuIHllc190eXBlIGlmIHRoZSBjb250YWluZXIgaGFzIGJhc2ljX3N0cmluZyBsaWtlIG5hdGl2ZSByZXBsYWNlCisgICAgICAgICAgICBtZXRob2QuCisgICAgICAgICovCisgICAgICAgIG5vX3R5cGUgaGFzX25hdGl2ZV9yZXBsYWNlX3Rlc3RlciguLi4pOworCisgICAgICAgIC8vISBTdGFibGUgaXRlcmF0b3JzIHRlc3RlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIERlY2xhcmUgYW4gb3ZlcnJpZGUgb2YgdGhpcyB0ZXN0ZXIgZnVuY3Rpb24gd2l0aCByZXR1cm4KKyAgICAgICAgICAgIHR5cGUgbmRuYm9vc3Q6OnN0cmluZ19hbGdvOjp5ZXNfdHlwZSBmb3IgYSBzZXF1ZW5jZSB3aXRoIHRoaXMgcHJvcGVydHkuCisKKyAgICAgICAgICAgIFxyZXR1cm4geWVzX3R5cGUgaWYgdGhlIHNlcXVlbmNlJ3MgaW5zZXJ0L3JlcGxhY2UvZXJhc2UgbWV0aG9kcyBkbyBub3QgaW52YWxpZGF0ZQorICAgICAgICAgICAgZXhpc3RpbmcgaXRlcmF0b3JzLgorICAgICAgICAqLworICAgICAgICBub190eXBlIGhhc19zdGFibGVfaXRlcmF0b3JzX3Rlc3RlciguLi4pOworCisgICAgICAgIC8vISBjb25zdCB0aW1lIGluc2VydCB0ZXN0ZXIKKyAgICAgICAgLyohCisgICAgICAgICAgICBEZWNsYXJlIGFuIG92ZXJyaWRlIG9mIHRoaXMgdGVzdGVyIGZ1bmN0aW9uIHdpdGggcmV0dXJuCisgICAgICAgICAgICB0eXBlIG5kbmJvb3N0OjpzdHJpbmdfYWxnbzo6eWVzX3R5cGUgZm9yIGEgc2VxdWVuY2Ugd2l0aCB0aGlzIHByb3BlcnR5LgorCisgICAgICAgICAgICBccmV0dXJuIHllc190eXBlIGlmIHRoZSBzZXF1ZW5jZSdzIGluc2VydCBtZXRob2QgaXMgd29ya2luZyBpbiBjb25zdGFudCB0aW1lCisgICAgICAgICovCisgICAgICAgIG5vX3R5cGUgaGFzX2NvbnN0X3RpbWVfaW5zZXJ0X3Rlc3RlciguLi4pOworCisgICAgICAgIC8vISBjb25zdCB0aW1lIGVyYXNlIHRlc3RlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIERlY2xhcmUgYW4gb3ZlcnJpZGUgb2YgdGhpcyB0ZXN0ZXIgZnVuY3Rpb24gd2l0aCByZXR1cm4KKyAgICAgICAgICAgIHR5cGUgbmRuYm9vc3Q6OnN0cmluZ19hbGdvOjp5ZXNfdHlwZSBmb3IgYSBzZXF1ZW5jZSB3aXRoIHRoaXMgcHJvcGVydHkuCisKKyAgICAgICAgICAgIFxyZXR1cm4geWVzX3R5cGUgaWYgdGhlIHNlcXVlbmNlJ3MgZXJhc2UgbWV0aG9kIGlzIHdvcmtpbmcgaW4gY29uc3RhbnQgdGltZQorICAgICAgICAqLworICAgICAgICBub190eXBlIGhhc19jb25zdF90aW1lX2VyYXNlX3Rlc3RlciguLi4pOworCisjZW5kaWYgLy9CT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyAgICAgICAgLy8hIE5hdGl2ZSByZXBsYWNlIHRyYWl0CisgICAgICAgIC8qIQorICAgICAgICAgICAgVGhpcyB0cmFpdCBzcGVjaWZpZXMgdGhhdCB0aGUgc2VxdWVuY2UgaGFzIFxjIHN0ZDo6c3RyaW5nIGxpa2UgcmVwbGFjZSBtZXRob2QKKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBjbGFzcyBoYXNfbmF0aXZlX3JlcGxhY2UKKyAgICAgICAgeworCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgc3RhdGljIFQqIHQ7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZT0oCisgICAgICAgICAgICAgICAgc2l6ZW9mKGhhc19uYXRpdmVfcmVwbGFjZV90ZXN0ZXIodCkpPT1zaXplb2YoeWVzX3R5cGUpICkgKTsKKyNlbHNlICAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisgICAgICAgIHB1YmxpYzoKKyMgICAgaWYgQk9PU1RfV09SS0FST1VORCggX19JQk1DUFBfXywgPD0gNjAwICkKKyAgICAgICAgICAgIGVudW0geyB2YWx1ZSA9IGZhbHNlIH07CisjICAgIGVsc2UKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZT1mYWxzZSk7CisjICAgIGVuZGlmIC8vIEJPT1NUX1dPUktBUk9VTkQoIF9fSUJNQ1BQX18sIDw9IDYwMCApCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisKKyAgICAgICAgICAgIHR5cGVkZWYgbXBsOjpib29sXzxoYXNfbmF0aXZlX3JlcGxhY2U8VD46OnZhbHVlPiB0eXBlOworICAgICAgICB9OworCisKKyAgICAgICAgLy8hIFN0YWJsZSBpdGVyYXRvcnMgdHJhaXQKKyAgICAgICAgLyohCisgICAgICAgICAgICBUaGlzIHRyYWl0IHNwZWNpZmllcyB0aGF0IHRoZSBzZXF1ZW5jZSBoYXMgc3RhYmxlIGl0ZXJhdG9ycy4gSXQgbWVhbnMKKyAgICAgICAgICAgIHRoYXQgb3BlcmF0aW9ucyBsaWtlIGluc2VydC9lcmFzZS9yZXBsYWNlIGRvIG5vdCBpbnZhbGlkYXRlIGl0ZXJhdG9ycy4KKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBjbGFzcyBoYXNfc3RhYmxlX2l0ZXJhdG9ycworICAgICAgICB7CisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgc3RhdGljIFQqIHQ7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZT0oCisgICAgICAgICAgICAgICAgc2l6ZW9mKGhhc19zdGFibGVfaXRlcmF0b3JzX3Rlc3Rlcih0KSk9PXNpemVvZih5ZXNfdHlwZSkgKSApOworI2Vsc2UgIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyAgICAgICAgcHVibGljOgorIyAgICBpZiBCT09TVF9XT1JLQVJPVU5EKCBfX0lCTUNQUF9fLCA8PSA2MDAgKQorICAgICAgICAgICAgZW51bSB7IHZhbHVlID0gZmFsc2UgfTsKKyMgICAgZWxzZQorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlPWZhbHNlKTsKKyMgICAgZW5kaWYgLy8gQk9PU1RfV09SS0FST1VORCggX19JQk1DUFBfXywgPD0gNjAwICkKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyAgICAgICAgICAgIHR5cGVkZWYgbXBsOjpib29sXzxoYXNfc3RhYmxlX2l0ZXJhdG9yczxUPjo6dmFsdWU+IHR5cGU7CisgICAgICAgIH07CisKKworICAgICAgICAvLyEgQ29uc3QgdGltZSBpbnNlcnQgdHJhaXQKKyAgICAgICAgLyohCisgICAgICAgICAgICBUaGlzIHRyYWl0IHNwZWNpZmllcyB0aGF0IHRoZSBzZXF1ZW5jZSdzIGluc2VydCBtZXRob2QgaGFzCisgICAgICAgICAgICBjb25zdGFudCB0aW1lIGNvbXBsZXhpdHkuCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4KKyAgICAgICAgY2xhc3MgaGFzX2NvbnN0X3RpbWVfaW5zZXJ0CisgICAgICAgIHsKKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBzdGF0aWMgVCogdDsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlPSgKKyAgICAgICAgICAgICAgICBzaXplb2YoaGFzX2NvbnN0X3RpbWVfaW5zZXJ0X3Rlc3Rlcih0KSk9PXNpemVvZih5ZXNfdHlwZSkgKSApOworI2Vsc2UgIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyAgICAgICAgcHVibGljOgorIyAgICBpZiBCT09TVF9XT1JLQVJPVU5EKCBfX0lCTUNQUF9fLCA8PSA2MDAgKQorICAgICAgICAgICAgZW51bSB7IHZhbHVlID0gZmFsc2UgfTsKKyMgICAgZWxzZQorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlPWZhbHNlKTsKKyMgICAgZW5kaWYgLy8gQk9PU1RfV09SS0FST1VORCggX19JQk1DUFBfXywgPD0gNjAwICkKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyAgICAgICAgICAgIHR5cGVkZWYgbXBsOjpib29sXzxoYXNfY29uc3RfdGltZV9pbnNlcnQ8VD46OnZhbHVlPiB0eXBlOworICAgICAgICB9OworCisKKyAgICAgICAgLy8hIENvbnN0IHRpbWUgZXJhc2UgdHJhaXQKKyAgICAgICAgLyohCisgICAgICAgICAgICBUaGlzIHRyYWl0IHNwZWNpZmllcyB0aGF0IHRoZSBzZXF1ZW5jZSdzIGVyYXNlIG1ldGhvZCBoYXMKKyAgICAgICAgICAgIGNvbnN0YW50IHRpbWUgY29tcGxleGl0eS4KKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBjbGFzcyBoYXNfY29uc3RfdGltZV9lcmFzZQorICAgICAgICB7CisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgc3RhdGljIFQqIHQ7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZT0oCisgICAgICAgICAgICAgICAgc2l6ZW9mKGhhc19jb25zdF90aW1lX2VyYXNlX3Rlc3Rlcih0KSk9PXNpemVvZih5ZXNfdHlwZSkgKSApOworI2Vsc2UgIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyAgICAgICAgcHVibGljOgorIyAgICBpZiBCT09TVF9XT1JLQVJPVU5EKCBfX0lCTUNQUF9fLCA8PSA2MDAgKQorICAgICAgICAgICAgZW51bSB7IHZhbHVlID0gZmFsc2UgfTsKKyMgICAgZWxzZQorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlPWZhbHNlKTsKKyMgICAgZW5kaWYgLy8gQk9PU1RfV09SS0FST1VORCggX19JQk1DUFBfXywgPD0gNjAwICkKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyAgICAgICAgICAgIHR5cGVkZWYgbXBsOjpib29sXzxoYXNfY29uc3RfdGltZV9lcmFzZTxUPjo6dmFsdWU+IHR5cGU7CisgICAgICAgIH07CisKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKworI2VuZGlmICAvLyBCT09TVF9TVFJJTkdfU0VRVUVOQ0VfVFJBSVRTX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hbGdvcml0aG0vc3RyaW5nL3llc19ub190eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy95ZXNfbm9fdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQwYzdiMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYWxnb3JpdGhtL3N0cmluZy95ZXNfbm9fdHlwZS5ocHAKQEAgLTAsMCArMSwzMyBAQAorLy8gIEJvb3N0IHN0cmluZ19hbGdvIGxpYnJhcnkgeWVzX25vX3R5cGUuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IFBhdm9sIERyb2JhIDIwMDItMjAwMy4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKworI2lmbmRlZiBCT09TVF9TVFJJTkdfWUVTX05PX1RZUEVfREVUQUlMX0hQUAorI2RlZmluZSBCT09TVF9TVFJJTkdfWUVTX05PX1RZUEVfREVUQUlMX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBhbGdvcml0aG0geworCisgICAgICAgIC8vIHRha2VuIGZyb20gYm9vc3QgbWFpbGluZy1saXN0CisgICAgICAgIC8vIHdoZW4geWVzX25vX3R5cGUgd2lsbCBiZWNvbWUgb2ZmaWNpYWxseQorICAgICAgICAvLyBhIHBhcnQgb2YgYm9vc3QgZGlzdHJpYnV0aW9uLCB0aGlzIGhlYWRlcgorICAgICAgICAvLyB3aWxsIGJlIGRlcHJlY2F0ZWQKKyAgICAgICAgdGVtcGxhdGU8aW50IEk+IHN0cnVjdCBzaXplX2Rlc2NyaXB0b3IgCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgY2hhciAoJiB0eXBlKVtJXTsKKyAgICAgICAgfTsgCisKKyAgICAgICAgdHlwZWRlZiBzaXplX2Rlc2NyaXB0b3I8MT46OnR5cGUgeWVzX3R5cGU7CisgICAgICAgIHR5cGVkZWYgc2l6ZV9kZXNjcmlwdG9yPDI+Ojp0eXBlIG5vX3R5cGU7CisKKyAgICB9IC8vIG5hbWVzcGFjZSBhbGdvcml0aG0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKworI2VuZGlmICAvLyBCT09TVF9TVFJJTkdfWUVTX05PX1RZUEVfREVUQUlMX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hbGlnbmVkX3N0b3JhZ2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hbGlnbmVkX3N0b3JhZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0NjJiYjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2FsaWduZWRfc3RvcmFnZS5ocHAKQEAgLTAsMCArMSwxODEgQEAKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGJvb3N0IGFsaWduZWRfc3RvcmFnZS5ocHAgaGVhZGVyIGZpbGUKKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMKKy8vIEVyaWMgRnJpZWRtYW4sIEl0YXkgTWFtYW4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfQUxJR05FRF9TVE9SQUdFX0hQUAorI2RlZmluZSBCT09TVF9BTElHTkVEX1NUT1JBR0VfSFBQCisKKyNpbmNsdWRlIDxjc3RkZGVmPiAvLyBmb3Igc3RkOjpzaXplX3QKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvdHlwZV93aXRoX2FsaWdubWVudC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7IG5hbWVzcGFjZSBhbGlnbmVkX3N0b3JhZ2UgeworCitCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICBzdGQ6OnNpemVfdAorICAgICwgYWxpZ25tZW50X29mX21heF9hbGlnbiA9IDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxtYXhfYWxpZ24+Ojp2YWx1ZQorICAgICk7CisKKy8vCisvLyBUbyBiZSBUUjEgY29uZm9ybWluZyB0aGlzIG11c3QgYmUgYSBQT0QgdHlwZToKKy8vCit0ZW1wbGF0ZSA8CisgICAgICBzdGQ6OnNpemVfdCBzaXplXworICAgICwgc3RkOjpzaXplX3QgYWxpZ25tZW50XworPgorc3RydWN0IGFsaWduZWRfc3RvcmFnZV9pbXAKK3sKKyAgICB1bmlvbiBkYXRhX3QKKyAgICB7CisgICAgICAgIGNoYXIgYnVmW3NpemVfXTsKKworICAgICAgICB0eXBlbmFtZSBtcGw6OmV2YWxfaWZfYzwKKyAgICAgICAgICAgICAgYWxpZ25tZW50XyA9PSBzdGQ6OnNpemVfdCgtMSkKKyAgICAgICAgICAgICwgbXBsOjppZGVudGl0eTxkZXRhaWw6Om1heF9hbGlnbj4KKyAgICAgICAgICAgICwgdHlwZV93aXRoX2FsaWdubWVudDxhbGlnbm1lbnRfPgorICAgICAgICAgICAgPjo6dHlwZSBhbGlnbl87CisgICAgfSBkYXRhXzsKKyAgICB2b2lkKiBhZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxhbGlnbmVkX3N0b3JhZ2VfaW1wKj4odGhpcyk7IH0KK307CisKK3RlbXBsYXRlPCBzdGQ6OnNpemVfdCBhbGlnbm1lbnRfID4KK3N0cnVjdCBhbGlnbmVkX3N0b3JhZ2VfaW1wPDB1LGFsaWdubWVudF8+Cit7CisgICAgLyogaW50ZW50aW9uYWxseSBlbXB0eSAqLworICAgIHZvaWQqIGFkZHJlc3MoKSBjb25zdCB7IHJldHVybiAwOyB9Cit9OworCit9fSAvLyBuYW1lc3BhY2UgZGV0YWlsOjphbGlnbmVkX3N0b3JhZ2UKKwordGVtcGxhdGUgPAorICAgICAgc3RkOjpzaXplX3Qgc2l6ZV8KKyAgICAsIHN0ZDo6c2l6ZV90IGFsaWdubWVudF8gPSBzdGQ6OnNpemVfdCgtMSkKKz4KK2NsYXNzIGFsaWduZWRfc3RvcmFnZSA6IAorI2lmbmRlZiBfX0JPUkxBTkRDX18KKyAgIHByaXZhdGUgCisjZWxzZQorICAgcHVibGljCisjZW5kaWYKKyAgIGRldGFpbDo6YWxpZ25lZF9zdG9yYWdlOjphbGlnbmVkX3N0b3JhZ2VfaW1wPHNpemVfLCBhbGlnbm1lbnRfPiAKK3sKKyAKK3B1YmxpYzogLy8gY29uc3RhbnRzCisKKyAgICB0eXBlZGVmIGRldGFpbDo6YWxpZ25lZF9zdG9yYWdlOjphbGlnbmVkX3N0b3JhZ2VfaW1wPHNpemVfLCBhbGlnbm1lbnRfPiB0eXBlOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgIHN0ZDo6c2l6ZV90CisgICAgICAgICwgc2l6ZSA9IHNpemVfCisgICAgICAgICk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgIHN0ZDo6c2l6ZV90CisgICAgICAgICwgYWxpZ25tZW50ID0gKAorICAgICAgICAgICAgICBhbGlnbm1lbnRfID09IHN0ZDo6c2l6ZV90KC0xKQorICAgICAgICAgICAgPyA6Om5kbmJvb3N0OjpkZXRhaWw6OmFsaWduZWRfc3RvcmFnZTo6YWxpZ25tZW50X29mX21heF9hbGlnbgorICAgICAgICAgICAgOiBhbGlnbm1lbnRfCisgICAgICAgICAgICApCisgICAgICAgICk7CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJlwKKyAgICAoX19HTlVDX18gPiAgMykgfHxcCisgICAgKF9fR05VQ19fID09IDMgJiYgKF9fR05VQ19NSU5PUl9fID4gIDIgfHxcCisgICAgICAgICAgICAgICAgICAgICAgKF9fR05VQ19NSU5PUl9fID09IDIgJiYgX19HTlVDX1BBVENITEVWRUxfXyA+PTMpKSkKKworcHJpdmF0ZTogLy8gbm9uY29weWFibGUKKworICAgIGFsaWduZWRfc3RvcmFnZShjb25zdCBhbGlnbmVkX3N0b3JhZ2UmKTsKKyAgICBhbGlnbmVkX3N0b3JhZ2UmIG9wZXJhdG9yPShjb25zdCBhbGlnbmVkX3N0b3JhZ2UmKTsKKworI2Vsc2UgLy8gZ2NjIGxlc3MgdGhhbiAzLjIuMworCitwdWJsaWM6IC8vIF9zaG91bGRfIGJlIG5vbmNvcHlhYmxlLCBidXQgR0NDIGNvbXBpbGVyIGVtaXRzIGVycm9yCisKKyAgICBhbGlnbmVkX3N0b3JhZ2UoY29uc3QgYWxpZ25lZF9zdG9yYWdlJik7CisgICAgYWxpZ25lZF9zdG9yYWdlJiBvcGVyYXRvcj0oY29uc3QgYWxpZ25lZF9zdG9yYWdlJik7CisKKyNlbmRpZiAvLyBnY2MgPCAzLjIuMyB3b3JrYXJvdW5kCisKK3B1YmxpYzogLy8gc3RydWN0b3JzCisKKyAgICBhbGlnbmVkX3N0b3JhZ2UoKQorICAgIHsKKyAgICB9CisKKyAgICB+YWxpZ25lZF9zdG9yYWdlKCkKKyAgICB7CisgICAgfQorCitwdWJsaWM6IC8vIGFjY2Vzc29ycworCisgICAgdm9pZCogYWRkcmVzcygpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dHlwZSo+KHRoaXMpLT5hZGRyZXNzKCk7CisgICAgfQorCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorCisgICAgY29uc3Qgdm9pZCogYWRkcmVzcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgdHlwZSo+KHRoaXMpLT5hZGRyZXNzKCk7CisgICAgfQorCisjZWxzZSAvLyBNU1ZDNgorCisgICAgY29uc3Qgdm9pZCogYWRkcmVzcygpIGNvbnN0OworCisjZW5kaWYgLy8gTVNWQzYgd29ya2Fyb3VuZAorCit9OworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisKKy8vIE1TVkM2IHNlZW1zIG5vdCB0byBsaWtlIGlubGluZSBmdW5jdGlvbnMgd2l0aCBjb25zdCB2b2lkKiByZXR1cm5zLCBzbyB3ZQorLy8gZGVjbGFyZSB0aGUgZm9sbG93aW5nIGhlcmU6CisKK3RlbXBsYXRlIDxzdGQ6OnNpemVfdCBTLCBzdGQ6OnNpemVfdCBBPgorY29uc3Qgdm9pZCogYWxpZ25lZF9zdG9yYWdlPFMsQT46OmFkZHJlc3MoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdF9jYXN0PCBhbGlnbmVkX3N0b3JhZ2U8UyxBPiogPih0aGlzKS0+YWRkcmVzcygpOworfQorCisjZW5kaWYgLy8gTVNWQzYgd29ya2Fyb3VuZAorCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKy8vCisvLyBNYWtlIHN1cmUgdGhhdCBpc19wb2QgcmVjb2duaXNlcyBhbGlnbmVkX3N0b3JhZ2U8Pjo6dHlwZQorLy8gYXMgYSBQT0QgKE5vdGUgdGhhdCBhbGlnbmVkX3N0b3JhZ2U8PiBpdHNlbGYgaXMgbm90IGEgUE9EKToKKy8vCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3Qgc2l6ZV8sIHN0ZDo6c2l6ZV90IGFsaWdubWVudF8+CitzdHJ1Y3QgaXNfcG9kPG5kbmJvb3N0OjpkZXRhaWw6OmFsaWduZWRfc3RvcmFnZTo6YWxpZ25lZF9zdG9yYWdlX2ltcDxzaXplXyxhbGlnbm1lbnRfPiA+CisgICBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UodHJ1ZSkKK3sgCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTCh0cnVlKQorfTsgCisjZW5kaWYKKworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwIgorCisjZW5kaWYgLy8gQk9PU1RfQUxJR05FRF9TVE9SQUdFX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hcnJheS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2FycmF5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjcwYTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9hcnJheS5ocHAKQEAgLTAsMCArMSw0NDYgQEAKKy8qIFRoZSBmb2xsb3dpbmcgY29kZSBkZWNsYXJlcyBjbGFzcyBhcnJheSwKKyAqIGFuIFNUTCBjb250YWluZXIgKGFzIHdyYXBwZXIpIGZvciBhcnJheXMgb2YgY29uc3RhbnQgc2l6ZS4KKyAqCisgKiBTZWUKKyAqICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9hcnJheS8KKyAqIGZvciBkb2N1bWVudGF0aW9uLgorICoKKyAqIFRoZSBvcmlnaW5hbCBhdXRob3Igc2l0ZSBpcyBhdDogaHR0cDovL3d3dy5qb3N1dHRpcy5jb20vCisgKgorICogKEMpIENvcHlyaWdodCBOaWNvbGFpIE0uIEpvc3V0dGlzIDIwMDEuCisgKgorICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorICoKKyAqIDE0IEFwciAyMDEyIC0gKG10YykgQWRkZWQgc3VwcG9ydCBmb3IgbmRuYm9vc3Q6Omhhc2gKKyAqIDI4IERlYyAyMDEwIC0gKG10YykgQWRkZWQgY2JlZ2luIGFuZCBjZW5kIChhbmQgY3JiZWdpbiBhbmQgY3JlbmQpIGZvciBDKytPeCBjb21wYXRpYmlsaXR5LgorICogMTAgTWFyIDIwMTAgLSAobXRjKSBmaWxsIG1ldGhvZCBhZGRlZCwgbWF0Y2hpbmcgcmVzb2x1dGlvbiBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSB3b3JraW5nIGdyb3VwLgorICogICAgICBTZWUgPGh0dHA6Ly93d3cub3Blbi1zdGQub3JnL2p0YzEvc2MyMi93ZzIxL2RvY3MvbHdnLWRlZmVjdHMuaHRtbCM3NzY+IG9yIFRyYWMgaXNzdWUgIzMxNjgKKyAqICAgICAgRXZlbnR1YWxseSwgd2Ugc2hvdWxkIHJlbW92ZSAiYXNzaWduIiB3aGljaCBpcyBub3cgYSBzeW5vbnltIGZvciAiZmlsbCIgKE1hcnNoYWxsIENsb3cpCisgKiAxMCBNYXIgMjAxMCAtIGFkZGVkIHdvcmthcm91bmQgZm9yIFNVTkNDIGFuZCAhU1RMUG9ydCBbdHJhYyAjMzg5M10gKE1hcnNoYWxsIENsb3cpCisgKiAyOSBKYW4gMjAwNCAtIGNfYXJyYXkoKSBhZGRlZCwgQk9PU1RfTk9fUFJJVkFURV9JTl9BR0dSRUdBVEUgcmVtb3ZlZCAoTmljbyBKb3N1dHRpcykKKyAqIDIzIEF1ZyAyMDAyIC0gZml4IGZvciBOb24tTVNWQyBjb21waWxlcnMgY29tYmluZWQgd2l0aCBNU1ZDIGxpYnJhcmllcy4KKyAqIDA1IEF1ZyAyMDAxIC0gbWlub3IgdXBkYXRlIChOaWNvIEpvc3V0dGlzKQorICogMjAgSmFuIDIwMDEgLSBTVExwb3J0IGZpeCAoQmVtYW4gRGF3ZXMpCisgKiAyOSBTZXAgMjAwMCAtIEluaXRpYWwgUmV2aXNpb24gKE5pY28gSm9zdXR0aXMpCisgKgorICogSmFuIDI5LCAyMDA0CisgKi8KKyNpZm5kZWYgQk9PU1RfQVJSQVlfSFBQCisjZGVmaW5lIEJPT1NUX0FSUkFZX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKSAgCisjIHByYWdtYSB3YXJuaW5nKHB1c2gpICAKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0OTk2KSAvLyAnc3RkOjplcXVhbCc6IEZ1bmN0aW9uIGNhbGwgd2l0aCBwYXJhbWV0ZXJzIHRoYXQgbWF5IGJlIHVuc2FmZQorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQ1MTApIC8vIG5kbmJvb3N0OjphcnJheTxULE4+JyA6IGRlZmF1bHQgY29uc3RydWN0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZCAKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0NjEwKSAvLyB3YXJuaW5nIEM0NjEwOiBjbGFzcyAnbmRuYm9vc3Q6OmFycmF5PFQsTj4nIGNhbiBuZXZlciBiZSBpbnN0YW50aWF0ZWQgLSB1c2VyIGRlZmluZWQgY29uc3RydWN0b3IgcmVxdWlyZWQgCisjZW5kaWYKKworI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8c3RkZXhjZXB0PgorI2luY2x1ZGUgPG5kbmJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc3dhcC5ocHA+CisKKy8vIEhhbmRsZXMgYnJva2VuIHN0YW5kYXJkIGxpYnJhcmllcyBiZXR0ZXIgdGhhbiA8aXRlcmF0b3I+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90aHJvd19leGNlcHRpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uYWwvaGFzaF9md2QuaHBwPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKworLy8gRklYRVMgZm9yIGJyb2tlbiBjb21waWxlcnMKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorICAgIGNsYXNzIGFycmF5IHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgVCBlbGVtc1tOXTsgICAgLy8gZml4ZWQtc2l6ZSBhcnJheSBvZiBlbGVtZW50cyBvZiB0eXBlIFQKKworICAgICAgcHVibGljOgorICAgICAgICAvLyB0eXBlIGRlZmluaXRpb25zCisgICAgICAgIHR5cGVkZWYgVCAgICAgICAgICAgICAgdmFsdWVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBUKiAgICAgICAgICAgICBpdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBUKiAgICAgICBjb25zdF9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBUJiAgICAgICAgICAgICByZWZlcmVuY2U7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVCYgICAgICAgY29uc3RfcmVmZXJlbmNlOworICAgICAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90ICAgIHNpemVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnB0cmRpZmZfdCBkaWZmZXJlbmNlX3R5cGU7CisKKyAgICAgICAgLy8gaXRlcmF0b3Igc3VwcG9ydAorICAgICAgICBpdGVyYXRvciAgICAgICAgYmVnaW4oKSAgICAgICB7IHJldHVybiBlbGVtczsgfQorICAgICAgICBjb25zdF9pdGVyYXRvciAgYmVnaW4oKSBjb25zdCB7IHJldHVybiBlbGVtczsgfQorICAgICAgICBjb25zdF9pdGVyYXRvciBjYmVnaW4oKSBjb25zdCB7IHJldHVybiBlbGVtczsgfQorICAgICAgICAKKyAgICAgICAgaXRlcmF0b3IgICAgICAgIGVuZCgpICAgICAgIHsgcmV0dXJuIGVsZW1zK047IH0KKyAgICAgICAgY29uc3RfaXRlcmF0b3IgIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGVsZW1zK047IH0KKyAgICAgICAgY29uc3RfaXRlcmF0b3IgY2VuZCgpIGNvbnN0IHsgcmV0dXJuIGVsZW1zK047IH0KKworICAgICAgICAvLyByZXZlcnNlIGl0ZXJhdG9yIHN1cHBvcnQKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhZGVmaW5lZChCT09TVF9NU1ZDX1NURF9JVEVSQVRPUikgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0lURVJBVE9SX1RSQUlUUykKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8aXRlcmF0b3I+IHJldmVyc2VfaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPGNvbnN0X2l0ZXJhdG9yPiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yOworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID09IDEzMDApICYmIGRlZmluZWQoQk9PU1RfRElOS1VNV0FSRV9TVERMSUIpICYmIChCT09TVF9ESU5LVU1XQVJFX1NURExJQiA9PSAzMTApCisgICAgICAgIC8vIHdvcmthcm91bmQgZm9yIGJyb2tlbiByZXZlcnNlX2l0ZXJhdG9yIGluIFZDNworICAgICAgICB0eXBlZGVmIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxzdGQ6Ol9QdHJpdDx2YWx1ZV90eXBlLCBkaWZmZXJlbmNlX3R5cGUsIGl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UsIGl0ZXJhdG9yLCByZWZlcmVuY2U+ID4gcmV2ZXJzZV9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8c3RkOjpfUHRyaXQ8dmFsdWVfdHlwZSwgZGlmZmVyZW5jZV90eXBlLCBjb25zdF9pdGVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfcmVmZXJlbmNlLCBpdGVyYXRvciwgcmVmZXJlbmNlPiA+IGNvbnN0X3JldmVyc2VfaXRlcmF0b3I7CisjZWxpZiBkZWZpbmVkKF9SV1NURF9OT19DTEFTU19QQVJUSUFMX1NQRUMpIAorICAgICAgICB0eXBlZGVmIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxpdGVyYXRvciwgc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZywgCisgICAgICAgICAgICAgIHZhbHVlX3R5cGUsIHJlZmVyZW5jZSwgaXRlcmF0b3IsIGRpZmZlcmVuY2VfdHlwZT4gcmV2ZXJzZV9pdGVyYXRvcjsgCisgICAgICAgIHR5cGVkZWYgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPGNvbnN0X2l0ZXJhdG9yLCBzdGQ6OnJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnLAorICAgICAgICAgICAgICB2YWx1ZV90eXBlLCBjb25zdF9yZWZlcmVuY2UsIGNvbnN0X2l0ZXJhdG9yLCBkaWZmZXJlbmNlX3R5cGU+IGNvbnN0X3JldmVyc2VfaXRlcmF0b3I7CisjZWxzZQorICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBicm9rZW4gcmV2ZXJzZV9pdGVyYXRvciBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8aXRlcmF0b3IsVD4gcmV2ZXJzZV9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8Y29uc3RfaXRlcmF0b3IsVD4gY29uc3RfcmV2ZXJzZV9pdGVyYXRvcjsKKyNlbmRpZgorCisgICAgICAgIHJldmVyc2VfaXRlcmF0b3IgcmJlZ2luKCkgeyByZXR1cm4gcmV2ZXJzZV9pdGVyYXRvcihlbmQoKSk7IH0KKyAgICAgICAgY29uc3RfcmV2ZXJzZV9pdGVyYXRvciByYmVnaW4oKSBjb25zdCB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfcmV2ZXJzZV9pdGVyYXRvcihlbmQoKSk7CisgICAgICAgIH0KKyAgICAgICAgY29uc3RfcmV2ZXJzZV9pdGVyYXRvciBjcmJlZ2luKCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IoZW5kKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV2ZXJzZV9pdGVyYXRvciByZW5kKCkgeyByZXR1cm4gcmV2ZXJzZV9pdGVyYXRvcihiZWdpbigpKTsgfQorICAgICAgICBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIHJlbmQoKSBjb25zdCB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfcmV2ZXJzZV9pdGVyYXRvcihiZWdpbigpKTsKKyAgICAgICAgfQorICAgICAgICBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIGNyZW5kKCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IoYmVnaW4oKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvcGVyYXRvcltdCisgICAgICAgIHJlZmVyZW5jZSBvcGVyYXRvcltdKHNpemVfdHlwZSBpKSAKKyAgICAgICAgeyAKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVF9NU0coIGkgPCBOLCAib3V0IG9mIHJhbmdlIiApOworICAgICAgICAgICAgcmV0dXJuIGVsZW1zW2ldOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjb25zdF9yZWZlcmVuY2Ugb3BlcmF0b3JbXShzaXplX3R5cGUgaSkgY29uc3QgCisgICAgICAgIHsgICAgIAorICAgICAgICAgICAgQk9PU1RfQVNTRVJUX01TRyggaSA8IE4sICJvdXQgb2YgcmFuZ2UiICk7CisgICAgICAgICAgICByZXR1cm4gZWxlbXNbaV07IAorICAgICAgICB9CisKKyAgICAgICAgLy8gYXQoKSB3aXRoIHJhbmdlIGNoZWNrCisgICAgICAgIHJlZmVyZW5jZSBhdChzaXplX3R5cGUgaSkgeyByYW5nZWNoZWNrKGkpOyByZXR1cm4gZWxlbXNbaV07IH0KKyAgICAgICAgY29uc3RfcmVmZXJlbmNlIGF0KHNpemVfdHlwZSBpKSBjb25zdCB7IHJhbmdlY2hlY2soaSk7IHJldHVybiBlbGVtc1tpXTsgfQorICAgIAorICAgICAgICAvLyBmcm9udCgpIGFuZCBiYWNrKCkKKyAgICAgICAgcmVmZXJlbmNlIGZyb250KCkgCisgICAgICAgIHsgCisgICAgICAgICAgICByZXR1cm4gZWxlbXNbMF07IAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjb25zdF9yZWZlcmVuY2UgZnJvbnQoKSBjb25zdCAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGVsZW1zWzBdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZWZlcmVuY2UgYmFjaygpIAorICAgICAgICB7IAorICAgICAgICAgICAgcmV0dXJuIGVsZW1zW04tMV07IAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjb25zdF9yZWZlcmVuY2UgYmFjaygpIGNvbnN0IAorICAgICAgICB7IAorICAgICAgICAgICAgcmV0dXJuIGVsZW1zW04tMV07IAorICAgICAgICB9CisKKyAgICAgICAgLy8gc2l6ZSBpcyBjb25zdGFudAorICAgICAgICBzdGF0aWMgc2l6ZV90eXBlIHNpemUoKSB7IHJldHVybiBOOyB9CisgICAgICAgIHN0YXRpYyBib29sIGVtcHR5KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgc3RhdGljIHNpemVfdHlwZSBtYXhfc2l6ZSgpIHsgcmV0dXJuIE47IH0KKyAgICAgICAgZW51bSB7IHN0YXRpY19zaXplID0gTiB9OworCisgICAgICAgIC8vIHN3YXAgKG5vdGU6IGxpbmVhciBjb21wbGV4aXR5KQorICAgICAgICB2b2lkIHN3YXAgKGFycmF5PFQsTj4mIHkpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90eXBlIGkgPSAwOyBpIDwgTjsgKytpKQorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpzd2FwKGVsZW1zW2ldLHkuZWxlbXNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgLy8gZGlyZWN0IGFjY2VzcyB0byBkYXRhIChyZWFkLW9ubHkpCisgICAgICAgIGNvbnN0IFQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBlbGVtczsgfQorICAgICAgICBUKiBkYXRhKCkgeyByZXR1cm4gZWxlbXM7IH0KKworICAgICAgICAvLyB1c2UgYXJyYXkgYXMgQyBhcnJheSAoZGlyZWN0IHJlYWQvd3JpdGUgYWNjZXNzIHRvIGRhdGEpCisgICAgICAgIFQqIGNfYXJyYXkoKSB7IHJldHVybiBlbGVtczsgfQorCisgICAgICAgIC8vIGFzc2lnbm1lbnQgd2l0aCB0eXBlIGNvbnZlcnNpb24KKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQyPgorICAgICAgICBhcnJheTxULE4+JiBvcGVyYXRvcj0gKGNvbnN0IGFycmF5PFQyLE4+JiByaHMpIHsKKyAgICAgICAgICAgIHN0ZDo6Y29weShyaHMuYmVnaW4oKSxyaHMuZW5kKCksIGJlZ2luKCkpOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAgLy8gYXNzaWduIG9uZSB2YWx1ZSB0byBhbGwgZWxlbWVudHMKKyAgICAgICAgdm9pZCBhc3NpZ24gKGNvbnN0IFQmIHZhbHVlKSB7IGZpbGwgKCB2YWx1ZSApOyB9ICAgIC8vIEEgc3lub255bSBmb3IgZmlsbAorICAgICAgICB2b2lkIGZpbGwgICAoY29uc3QgVCYgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6ZmlsbF9uKGJlZ2luKCksc2l6ZSgpLHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIHJhbmdlIChtYXkgYmUgcHJpdmF0ZSBiZWNhdXNlIGl0IGlzIHN0YXRpYykKKyAgICAgICAgc3RhdGljIHZvaWQgcmFuZ2VjaGVjayAoc2l6ZV90eXBlIGkpIHsKKyAgICAgICAgICAgIGlmIChpID49IHNpemUoKSkgeworICAgICAgICAgICAgICAgIHN0ZDo6b3V0X29mX3JhbmdlIGUoImFycmF5PD46IGluZGV4IG91dCBvZiByYW5nZSIpOworICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH07CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorICAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgICBjbGFzcyBhcnJheTwgVCwgMCA+IHsKKworICAgICAgcHVibGljOgorICAgICAgICAvLyB0eXBlIGRlZmluaXRpb25zCisgICAgICAgIHR5cGVkZWYgVCAgICAgICAgICAgICAgdmFsdWVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBUKiAgICAgICAgICAgICBpdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBUKiAgICAgICBjb25zdF9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBUJiAgICAgICAgICAgICByZWZlcmVuY2U7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVCYgICAgICAgY29uc3RfcmVmZXJlbmNlOworICAgICAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90ICAgIHNpemVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnB0cmRpZmZfdCBkaWZmZXJlbmNlX3R5cGU7CisKKyAgICAgICAgLy8gaXRlcmF0b3Igc3VwcG9ydAorICAgICAgICBpdGVyYXRvciAgICAgICAgYmVnaW4oKSAgICAgICB7IHJldHVybiAgICAgICBpdGVyYXRvciggcmVpbnRlcnByZXRfY2FzdDwgICAgICAgVCAqID4oIHRoaXMgKSApOyB9CisgICAgICAgIGNvbnN0X2l0ZXJhdG9yICBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCByZWludGVycHJldF9jYXN0PCBjb25zdCBUICogPiggdGhpcyApICk7IH0KKyAgICAgICAgY29uc3RfaXRlcmF0b3IgY2JlZ2luKCkgY29uc3QgeyByZXR1cm4gY29uc3RfaXRlcmF0b3IoIHJlaW50ZXJwcmV0X2Nhc3Q8IGNvbnN0IFQgKiA+KCB0aGlzICkgKTsgfQorCisgICAgICAgIGl0ZXJhdG9yICAgICAgICBlbmQoKSAgICAgICB7IHJldHVybiAgYmVnaW4oKTsgfQorICAgICAgICBjb25zdF9pdGVyYXRvciAgZW5kKCkgY29uc3QgeyByZXR1cm4gIGJlZ2luKCk7IH0KKyAgICAgICAgY29uc3RfaXRlcmF0b3IgY2VuZCgpIGNvbnN0IHsgcmV0dXJuIGNiZWdpbigpOyB9CisKKyAgICAgICAgLy8gcmV2ZXJzZSBpdGVyYXRvciBzdXBwb3J0CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfTVNWQ19TVERfSVRFUkFUT1IpICYmICFkZWZpbmVkKEJPT1NUX05PX1NURF9JVEVSQVRPUl9UUkFJVFMpCisgICAgICAgIHR5cGVkZWYgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPGl0ZXJhdG9yPiByZXZlcnNlX2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjb25zdF9pdGVyYXRvcj4gY29uc3RfcmV2ZXJzZV9pdGVyYXRvcjsKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA9PSAxMzAwKSAmJiBkZWZpbmVkKEJPT1NUX0RJTktVTVdBUkVfU1RETElCKSAmJiAoQk9PU1RfRElOS1VNV0FSRV9TVERMSUIgPT0gMzEwKQorICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBicm9rZW4gcmV2ZXJzZV9pdGVyYXRvciBpbiBWQzcKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8c3RkOjpfUHRyaXQ8dmFsdWVfdHlwZSwgZGlmZmVyZW5jZV90eXBlLCBpdGVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlLCBpdGVyYXRvciwgcmVmZXJlbmNlPiA+IHJldmVyc2VfaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPHN0ZDo6X1B0cml0PHZhbHVlX3R5cGUsIGRpZmZlcmVuY2VfdHlwZSwgY29uc3RfaXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X3JlZmVyZW5jZSwgaXRlcmF0b3IsIHJlZmVyZW5jZT4gPiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yOworI2VsaWYgZGVmaW5lZChfUldTVERfTk9fQ0xBU1NfUEFSVElBTF9TUEVDKSAKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnJldmVyc2VfaXRlcmF0b3I8aXRlcmF0b3IsIHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcsIAorICAgICAgICAgICAgICB2YWx1ZV90eXBlLCByZWZlcmVuY2UsIGl0ZXJhdG9yLCBkaWZmZXJlbmNlX3R5cGU+IHJldmVyc2VfaXRlcmF0b3I7IAorICAgICAgICB0eXBlZGVmIHN0ZDo6cmV2ZXJzZV9pdGVyYXRvcjxjb25zdF9pdGVyYXRvciwgc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZywKKyAgICAgICAgICAgICAgdmFsdWVfdHlwZSwgY29uc3RfcmVmZXJlbmNlLCBjb25zdF9pdGVyYXRvciwgZGlmZmVyZW5jZV90eXBlPiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yOworI2Vsc2UKKyAgICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgYnJva2VuIHJldmVyc2VfaXRlcmF0b3IgaW1wbGVtZW50YXRpb25zCisgICAgICAgIHR5cGVkZWYgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPGl0ZXJhdG9yLFQ+IHJldmVyc2VfaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgc3RkOjpyZXZlcnNlX2l0ZXJhdG9yPGNvbnN0X2l0ZXJhdG9yLFQ+IGNvbnN0X3JldmVyc2VfaXRlcmF0b3I7CisjZW5kaWYKKworICAgICAgICByZXZlcnNlX2l0ZXJhdG9yIHJiZWdpbigpIHsgcmV0dXJuIHJldmVyc2VfaXRlcmF0b3IoZW5kKCkpOyB9CisgICAgICAgIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IgcmJlZ2luKCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IoZW5kKCkpOworICAgICAgICB9CisgICAgICAgIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IgY3JiZWdpbigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yKGVuZCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldmVyc2VfaXRlcmF0b3IgcmVuZCgpIHsgcmV0dXJuIHJldmVyc2VfaXRlcmF0b3IoYmVnaW4oKSk7IH0KKyAgICAgICAgY29uc3RfcmV2ZXJzZV9pdGVyYXRvciByZW5kKCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IoYmVnaW4oKSk7CisgICAgICAgIH0KKyAgICAgICAgY29uc3RfcmV2ZXJzZV9pdGVyYXRvciBjcmVuZCgpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yKGJlZ2luKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gb3BlcmF0b3JbXQorICAgICAgICByZWZlcmVuY2Ugb3BlcmF0b3JbXShzaXplX3R5cGUgLyppKi8pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWlsZWRfcmFuZ2VjaGVjaygpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfcmVmZXJlbmNlIG9wZXJhdG9yW10oc2l6ZV90eXBlIC8qaSovKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFpbGVkX3JhbmdlY2hlY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGF0KCkgd2l0aCByYW5nZSBjaGVjaworICAgICAgICByZWZlcmVuY2UgYXQoc2l6ZV90eXBlIC8qaSovKSAgICAgICAgICAgICAgIHsgICByZXR1cm4gZmFpbGVkX3JhbmdlY2hlY2soKTsgfQorICAgICAgICBjb25zdF9yZWZlcmVuY2UgYXQoc2l6ZV90eXBlIC8qaSovKSBjb25zdCAgIHsgICByZXR1cm4gZmFpbGVkX3JhbmdlY2hlY2soKTsgfQorCisgICAgICAgIC8vIGZyb250KCkgYW5kIGJhY2soKQorICAgICAgICByZWZlcmVuY2UgZnJvbnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFpbGVkX3JhbmdlY2hlY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X3JlZmVyZW5jZSBmcm9udCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWlsZWRfcmFuZ2VjaGVjaygpOworICAgICAgICB9CisKKyAgICAgICAgcmVmZXJlbmNlIGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFpbGVkX3JhbmdlY2hlY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X3JlZmVyZW5jZSBiYWNrKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZhaWxlZF9yYW5nZWNoZWNrKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzaXplIGlzIGNvbnN0YW50CisgICAgICAgIHN0YXRpYyBzaXplX3R5cGUgc2l6ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICAgICAgc3RhdGljIGJvb2wgZW1wdHkoKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHN0YXRpYyBzaXplX3R5cGUgbWF4X3NpemUoKSB7IHJldHVybiAwOyB9CisgICAgICAgIGVudW0geyBzdGF0aWNfc2l6ZSA9IDAgfTsKKworICAgICAgICB2b2lkIHN3YXAgKGFycmF5PFQsMD4mIC8qeSovKSB7CisgICAgICAgIH0KKworICAgICAgICAvLyBkaXJlY3QgYWNjZXNzIHRvIGRhdGEgKHJlYWQtb25seSkKKyAgICAgICAgY29uc3QgVCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICAgICAgVCogZGF0YSgpIHsgcmV0dXJuIDA7IH0KKworICAgICAgICAvLyB1c2UgYXJyYXkgYXMgQyBhcnJheSAoZGlyZWN0IHJlYWQvd3JpdGUgYWNjZXNzIHRvIGRhdGEpCisgICAgICAgIFQqIGNfYXJyYXkoKSB7IHJldHVybiAwOyB9CisKKyAgICAgICAgLy8gYXNzaWdubWVudCB3aXRoIHR5cGUgY29udmVyc2lvbgorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDI+CisgICAgICAgIGFycmF5PFQsMD4mIG9wZXJhdG9yPSAoY29uc3QgYXJyYXk8VDIsMD4mICkgeworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAgLy8gYXNzaWduIG9uZSB2YWx1ZSB0byBhbGwgZWxlbWVudHMKKyAgICAgICAgdm9pZCBhc3NpZ24gKGNvbnN0IFQmIHZhbHVlKSB7IGZpbGwgKCB2YWx1ZSApOyB9CisgICAgICAgIHZvaWQgZmlsbCAgIChjb25zdCBUJiApIHt9CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayByYW5nZSAobWF5IGJlIHByaXZhdGUgYmVjYXVzZSBpdCBpcyBzdGF0aWMpCisgICAgICAgIHN0YXRpYyByZWZlcmVuY2UgZmFpbGVkX3JhbmdlY2hlY2sgKCkgeworICAgICAgICAgICAgICAgIHN0ZDo6b3V0X29mX3JhbmdlIGUoImF0dGVtcHQgdG8gYWNjZXNzIGVsZW1lbnQgb2YgYW4gZW1wdHkgYXJyYXkiKTsKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKGUpOworI2lmIGRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykgfHwgKCFkZWZpbmVkKEJPT1NUX01TVkMpICYmICFkZWZpbmVkKF9fUEFUSFNDQUxFX18pKQorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byByZXR1cm4gc29tZXRoaW5nIGhlcmUgdG8ga2VlcAorICAgICAgICAgICAgICAgIC8vIHNvbWUgY29tcGlsZXJzIGhhcHB5OiBob3dldmVyIHdlIHdpbGwgbmV2ZXIKKyAgICAgICAgICAgICAgICAvLyBhY3R1YWxseSBnZXQgaGVyZS4uLi4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIHN0YXRpYyBUIHBsYWNlaG9sZGVyOworICAgICAgICAgICAgICAgIHJldHVybiBwbGFjZWhvbGRlcjsKKyNlbmRpZgorICAgICAgICAgICAgfQorICAgIH07CisjZW5kaWYKKworICAgIC8vIGNvbXBhcmlzb25zCisgICAgdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KKyAgICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IGFycmF5PFQsTj4mIHgsIGNvbnN0IGFycmF5PFQsTj4mIHkpIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6ZXF1YWwoeC5iZWdpbigpLCB4LmVuZCgpLCB5LmJlZ2luKCkpOworICAgIH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorICAgIGJvb2wgb3BlcmF0b3I8IChjb25zdCBhcnJheTxULE4+JiB4LCBjb25zdCBhcnJheTxULE4+JiB5KSB7CisgICAgICAgIHJldHVybiBzdGQ6OmxleGljb2dyYXBoaWNhbF9jb21wYXJlKHguYmVnaW4oKSx4LmVuZCgpLHkuYmVnaW4oKSx5LmVuZCgpKTsKKyAgICB9CisgICAgdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KKyAgICBib29sIG9wZXJhdG9yIT0gKGNvbnN0IGFycmF5PFQsTj4mIHgsIGNvbnN0IGFycmF5PFQsTj4mIHkpIHsKKyAgICAgICAgcmV0dXJuICEoeD09eSk7CisgICAgfQorICAgIHRlbXBsYXRlPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4+CisgICAgYm9vbCBvcGVyYXRvcj4gKGNvbnN0IGFycmF5PFQsTj4mIHgsIGNvbnN0IGFycmF5PFQsTj4mIHkpIHsKKyAgICAgICAgcmV0dXJuIHk8eDsKKyAgICB9CisgICAgdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KKyAgICBib29sIG9wZXJhdG9yPD0gKGNvbnN0IGFycmF5PFQsTj4mIHgsIGNvbnN0IGFycmF5PFQsTj4mIHkpIHsKKyAgICAgICAgcmV0dXJuICEoeTx4KTsKKyAgICB9CisgICAgdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KKyAgICBib29sIG9wZXJhdG9yPj0gKGNvbnN0IGFycmF5PFQsTj4mIHgsIGNvbnN0IGFycmF5PFQsTj4mIHkpIHsKKyAgICAgICAgcmV0dXJuICEoeDx5KTsKKyAgICB9CisKKyAgICAvLyBnbG9iYWwgc3dhcCgpCisgICAgdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KKyAgICBpbmxpbmUgdm9pZCBzd2FwIChhcnJheTxULE4+JiB4LCBhcnJheTxULE4+JiB5KSB7CisgICAgICAgIHguc3dhcCh5KTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKF9fU1VOUFJPX0NDKQorLy8gIFRyYWMgdGlja2V0ICM0NzU3OyB0aGUgU3VuIFNvbGFyaXMgY29tcGlsZXIgY2FuJ3QgaGFuZGxlCisvLyAgc3ludGF4IGxpa2UgJ1QoJmdldF9jX2FycmF5KG5kbmJvb3N0OjphcnJheTxULE4+JiBhcmcpKVtOXScKKy8vICAKKy8vICBXZSBjYW4ndCBqdXN0IHVzZSB0aGlzIGZvciBhbGwgY29tcGlsZXJzLCBiZWNhdXNlIHRoZSAKKy8vICAgICAgYm9ybGFuZCBjb21waWxlcnMgY2FuJ3QgaGFuZGxlIHRoaXMgZm9ybS4gCisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+IHN0cnVjdCBjX2FycmF5CisgICAgICAgeworICAgICAgICAgICB0eXBlZGVmIFQgdHlwZVtOXTsKKyAgICAgICB9OworICAgIH0KKyAgICAKKyAgIC8vIFNwZWNpZmljIGZvciBuZG5ib29zdDo6YXJyYXk6IHNpbXBseSByZXR1cm5zIGl0cyBlbGVtcyBkYXRhIG1lbWJlci4KKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorICAgdHlwZW5hbWUgZGV0YWlsOjpjX2FycmF5PFQsTj46OnR5cGUmIGdldF9jX2FycmF5KG5kbmJvb3N0OjphcnJheTxULE4+JiBhcmcpCisgICB7CisgICAgICAgcmV0dXJuIGFyZy5lbGVtczsKKyAgIH0KKworICAgLy8gU3BlY2lmaWMgZm9yIG5kbmJvb3N0OjphcnJheTogc2ltcGx5IHJldHVybnMgaXRzIGVsZW1zIGRhdGEgbWVtYmVyLgorICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CisgICB0eXBlbmFtZSBjb25zdCBkZXRhaWw6OmNfYXJyYXk8VCxOPjo6dHlwZSYgZ2V0X2NfYXJyYXkoY29uc3QgbmRuYm9vc3Q6OmFycmF5PFQsTj4mIGFyZykKKyAgIHsKKyAgICAgICByZXR1cm4gYXJnLmVsZW1zOworICAgfQorI2Vsc2UKKy8vIFNwZWNpZmljIGZvciBuZG5ib29zdDo6YXJyYXk6IHNpbXBseSByZXR1cm5zIGl0cyBlbGVtcyBkYXRhIG1lbWJlci4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTj4KKyAgICBUKCZnZXRfY19hcnJheShuZG5ib29zdDo6YXJyYXk8VCxOPiYgYXJnKSlbTl0KKyAgICB7CisgICAgICAgIHJldHVybiBhcmcuZWxlbXM7CisgICAgfQorICAgIAorICAgIC8vIENvbnN0IHZlcnNpb24uCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CisgICAgY29uc3QgVCgmZ2V0X2NfYXJyYXkoY29uc3QgbmRuYm9vc3Q6OmFycmF5PFQsTj4mIGFyZykpW05dCisgICAgeworICAgICAgICByZXR1cm4gYXJnLmVsZW1zOworICAgIH0KKyNlbmRpZgorICAgIAorI2lmIDAKKyAgICAvLyBPdmVybG9hZCBmb3Igc3RkOjphcnJheSwgYXNzdW1pbmcgdGhhdCBzdGQ6OmFycmF5IHdpbGwgaGF2ZQorICAgIC8vIGV4cGxpY2l0IGNvbnZlcnNpb24gZnVuY3Rpb25zIGFzIGRpc2N1c3NlZCBhdCB0aGUgV0cyMSBtZWV0aW5nCisgICAgLy8gaW4gU3VtbWl0LCBNYXJjaCAyMDA5LgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorICAgIFQoJmdldF9jX2FycmF5KHN0ZDo6YXJyYXk8VCxOPiYgYXJnKSlbTl0KKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKCYpW05dPihhcmcpOworICAgIH0KKyAgICAKKyAgICAvLyBDb25zdCB2ZXJzaW9uLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorICAgIGNvbnN0IFQoJmdldF9jX2FycmF5KGNvbnN0IHN0ZDo6YXJyYXk8VCxOPiYgYXJnKSlbTl0KKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKCYpW05dPihhcmcpOworICAgIH0KKyNlbmRpZgorCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorICAgIHN0ZDo6c2l6ZV90IGhhc2hfdmFsdWUoY29uc3QgYXJyYXk8VCxOPiYgYXJyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpoYXNoX3JhbmdlKGFyci5iZWdpbigpLCBhcnIuZW5kKCkpOworICAgIH0KKworfSAvKiBuYW1lc3BhY2UgbmRuYm9vc3QgKi8KKworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKSAgCisjIHByYWdtYSB3YXJuaW5nKHBvcCkgIAorI2VuZGlmIAorCisjZW5kaWYgLypCT09TVF9BUlJBWV9IUFAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9hc3NlcnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9hc3NlcnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzOTg1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Fzc2VydC5ocHAKQEAgLTAsMCArMSwxMzYgQEAKKy8vCisvLyAgYm9vc3QvYXNzZXJ0LmhwcCAtIEJPT1NUX0FTU0VSVChleHByKQorLy8gICAgICAgICAgICAgICAgICAgICBCT09TVF9BU1NFUlRfTVNHKGV4cHIsIG1zZykKKy8vICAgICAgICAgICAgICAgICAgICAgQk9PU1RfVkVSSUZZKGV4cHIpCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAoYykgMjAwNyBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAoYykgQmVtYW4gRGF3ZXMgMjAxMQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgTm90ZTogVGhlcmUgYXJlIG5vIGluY2x1ZGUgZ3VhcmRzLiBUaGlzIGlzIGludGVudGlvbmFsLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L2Fzc2VydC5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworLy8KKy8vIFN0b3AgaW5zcGVjdCBjb21wbGFpbmluZyBhYm91dCB1c2Ugb2YgJ2Fzc2VydCc6CisvLworLy8gYm9vc3RpbnNwZWN0Om5hYXNzZXJ0X21hY3JvCisvLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0FTU0VSVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyN1bmRlZiBCT09TVF9BU1NFUlQKKworI2lmIGRlZmluZWQoQk9PU1RfRElTQUJMRV9BU1NFUlRTKQorCisjIGRlZmluZSBCT09TVF9BU1NFUlQoZXhwcikgKCh2b2lkKTApCisKKyNlbGlmIGRlZmluZWQoQk9PU1RfRU5BQkxFX0FTU0VSVF9IQU5ETEVSKQorCisjaW5jbHVkZSA8bmRuYm9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICB2b2lkIGFzc2VydGlvbl9mYWlsZWQoY2hhciBjb25zdCAqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvbnN0ICogZnVuY3Rpb24sIGNoYXIgY29uc3QgKiBmaWxlLCBsb25nIGxpbmUpOyAvLyB1c2VyIGRlZmluZWQKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfQVNTRVJUKGV4cHIpICgoZXhwcikgXAorICA/ICgodm9pZCkwKSBcCisgIDogOjpuZG5ib29zdDo6YXNzZXJ0aW9uX2ZhaWxlZCgjZXhwciwgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiwgX19GSUxFX18sIF9fTElORV9fKSkKKworI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+IC8vIC5oIHRvIHN1cHBvcnQgb2xkIGxpYnJhcmllcyB3L28gPGNhc3NlcnQ+IC0gZWZmZWN0IGlzIHRoZSBzYW1lCisjIGRlZmluZSBCT09TVF9BU1NFUlQoZXhwcikgYXNzZXJ0KGV4cHIpCisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfQVNTRVJUX01TRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjIHVuZGVmIEJPT1NUX0FTU0VSVF9NU0cKKworI2lmIGRlZmluZWQoQk9PU1RfRElTQUJMRV9BU1NFUlRTKSB8fCBkZWZpbmVkKE5ERUJVRykKKworICAjZGVmaW5lIEJPT1NUX0FTU0VSVF9NU0coZXhwciwgbXNnKSAoKHZvaWQpMCkKKworI2VsaWYgZGVmaW5lZChCT09TVF9FTkFCTEVfQVNTRVJUX0hBTkRMRVIpCisKKyAgI2luY2x1ZGUgPG5kbmJvb3N0L2N1cnJlbnRfZnVuY3Rpb24uaHBwPgorCisgIG5hbWVzcGFjZSBuZG5ib29zdAorICB7CisgICAgdm9pZCBhc3NlcnRpb25fZmFpbGVkX21zZyhjaGFyIGNvbnN0ICogZXhwciwgY2hhciBjb25zdCAqIG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QgKiBmdW5jdGlvbiwgY2hhciBjb25zdCAqIGZpbGUsIGxvbmcgbGluZSk7IC8vIHVzZXIgZGVmaW5lZAorICB9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisgICNkZWZpbmUgQk9PU1RfQVNTRVJUX01TRyhleHByLCBtc2cpICgoZXhwcikgXAorICAgID8gKCh2b2lkKTApIFwKKyAgICA6IDo6bmRuYm9vc3Q6OmFzc2VydGlvbl9mYWlsZWRfbXNnKCNleHByLCBtc2csIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04sIF9fRklMRV9fLCBfX0xJTkVfXykpCisKKyNlbHNlCisgICNpZm5kZWYgQk9PU1RfQVNTRVJUX0hQUAorICAgICNkZWZpbmUgQk9PU1RfQVNTRVJUX0hQUAorICAgICNpbmNsdWRlIDxjc3RkbGliPgorICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAgICAjaW5jbHVkZSA8bmRuYm9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHA+CisKKyAgICAvLyAgSURFJ3MgbGlrZSBWaXN1YWwgU3R1ZGlvIHBlcmZvcm0gYmV0dGVyIGlmIG91dHB1dCBnb2VzIHRvIHN0ZDo6Y291dCBvcgorICAgIC8vICBzb21lIG90aGVyIHN0cmVhbSwgc28gYWxsb3cgdXNlciB0byBjb25maWd1cmUgb3V0cHV0IHN0cmVhbToKKyAgICAjaWZuZGVmIEJPT1NUX0FTU0VSVF9NU0dfT1NUUkVBTQorICAgICMgZGVmaW5lIEJPT1NUX0FTU0VSVF9NU0dfT1NUUkVBTSBzdGQ6OmNlcnIKKyAgICAjZW5kaWYKKworICAgIG5hbWVzcGFjZSBuZG5ib29zdAorICAgIHsgCisgICAgICBuYW1lc3BhY2UgYXNzZXJ0aW9uIAorICAgICAgeyAKKyAgICAgICAgbmFtZXNwYWNlIGRldGFpbAorICAgICAgICB7CisgICAgICAgICAgaW5saW5lIHZvaWQgYXNzZXJ0aW9uX2ZhaWxlZF9tc2coY2hhciBjb25zdCAqIGV4cHIsIGNoYXIgY29uc3QgKiBtc2csIGNoYXIgY29uc3QgKiBmdW5jdGlvbiwKKyAgICAgICAgICAgIGNoYXIgY29uc3QgKiBmaWxlLCBsb25nIGxpbmUpCisgICAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUX01TR19PU1RSRUFNCisgICAgICAgICAgICAgIDw8ICIqKioqKiBJbnRlcm5hbCBQcm9ncmFtIEVycm9yIC0gYXNzZXJ0aW9uICgiIDw8IGV4cHIgPDwgIikgZmFpbGVkIGluICIKKyAgICAgICAgICAgICAgPDwgZnVuY3Rpb24gPDwgIjpcbiIKKyAgICAgICAgICAgICAgPDwgZmlsZSA8PCAnKCcgPDwgbGluZSA8PCAiKTogIiA8PCBtc2cgPDwgc3RkOjplbmRsOworCQkJI2lmZGVmIFVOREVSX0NFCisJCQkJLy8gVGhlIFdpbmRvd3MgQ0UgQ1JUIGxpYnJhcnkgZG9lcyBub3QgaGF2ZSBhYm9ydCgpIHNvIHVzZSBleGl0KC0xKSBpbnN0ZWFkLgorCQkJCXN0ZDo6ZXhpdCgtMSk7CisJCQkjZWxzZQorCQkJCXN0ZDo6YWJvcnQoKTsKKwkJCSNlbmRpZgorICAgICAgICAgIH0KKyAgICAgICAgfSAvLyBkZXRhaWwKKyAgICAgIH0gLy8gYXNzZXJ0aW9uCisgICAgfSAvLyBkZXRhaWwKKyAgI2VuZGlmCisKKyAgI2RlZmluZSBCT09TVF9BU1NFUlRfTVNHKGV4cHIsIG1zZykgKChleHByKSBcCisgICAgPyAoKHZvaWQpMCkgXAorICAgIDogOjpuZG5ib29zdDo6YXNzZXJ0aW9uOjpkZXRhaWw6OmFzc2VydGlvbl9mYWlsZWRfbXNnKCNleHByLCBtc2csIFwKKyAgICAgICAgICBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OLCBfX0ZJTEVfXywgX19MSU5FX18pKQorI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfVkVSSUZZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworI3VuZGVmIEJPT1NUX1ZFUklGWQorCisjaWYgZGVmaW5lZChCT09TVF9ESVNBQkxFX0FTU0VSVFMpIHx8ICggIWRlZmluZWQoQk9PU1RfRU5BQkxFX0FTU0VSVF9IQU5ETEVSKSAmJiBkZWZpbmVkKE5ERUJVRykgKQorCisjIGRlZmluZSBCT09TVF9WRVJJRlkoZXhwcikgKCh2b2lkKShleHByKSkKKworI2Vsc2UKKworIyBkZWZpbmUgQk9PU1RfVkVSSUZZKGV4cHIpIEJPT1NUX0FTU0VSVChleHByKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MjE2MTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQuaHBwCkBAIC0wLDAgKzEsMjQgQEAKKyNpZm5kZWYgQk9PU1RfQklORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfQklORF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYmluZC5ocHAgLSBiaW5kcyBmdW5jdGlvbiBvYmplY3RzIHRvIGFyZ3VtZW50cworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDkgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9iaW5kL2JpbmQuaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmQuaHBwPgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9CSU5EX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2FwcGx5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9hcHBseS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUxOWMwNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9hcHBseS5ocHAKQEAgLTAsMCArMSw3NCBAQAorI2lmbmRlZiBCT09TVF9CSU5EX0FQUExZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9CSU5EX0FQUExZX0hQUF9JTkNMVURFRAorCisvLworLy8gIGFwcGx5LmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgUj4gc3RydWN0IGFwcGx5Cit7CisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShGICYgZikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoRiAmIGYsIEExICYgYTEpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZihhMSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEYgJiBmLCBBMSAmIGExLCBBMiAmIGEyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGYoYTEsIGEyKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEYgJiBmLCBBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGYoYTEsIGEyLCBhMyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoRiAmIGYsIEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMsIEE0ICYgYTQpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZihhMSwgYTIsIGEzLCBhNCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEYgJiBmLCBBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGYoYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEYgJiBmLCBBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGYoYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoRiAmIGYsIEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMsIEE0ICYgYTQsIEE1ICYgYTUsIEE2ICYgYTYsIEE3ICYgYTcpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZihhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEYgJiBmLCBBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2LCBBNyAmIGE3LCBBOCAmIGE4KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGYoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEYgJiBmLCBBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2LCBBNyAmIGE3LCBBOCAmIGE4LCBBOSAmIGE5KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGYoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfQklORF9BUFBMWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9hcmcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2FyZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU1MTU3NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9hcmcuaHBwCkBAIC0wLDAgKzEsNjIgQEAKKyNpZm5kZWYgQk9PU1RfQklORF9BUkdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0JJTkRfQVJHX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBiaW5kL2FyZy5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9iaW5kL2JpbmQuaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2lzX3BsYWNlaG9sZGVyLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK3RlbXBsYXRlPCBpbnQgSSA+IHN0cnVjdCBhcmcKK3sKKyAgICBhcmcoKQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+IGFyZyggVCBjb25zdCAmIC8qIHQgKi8gKQorICAgIHsKKyAgICAgICAgLy8gc3RhdGljIGFzc2VydCBJID09IGlzX3BsYWNlaG9sZGVyPFQ+Ojp2YWx1ZQorICAgICAgICB0eXBlZGVmIGNoYXIgVF9tdXN0X2JlX3BsYWNlaG9sZGVyWyBJID09IGlzX3BsYWNlaG9sZGVyPFQ+Ojp2YWx1ZT8gMTogLTEgXTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTwgaW50IEkgPiBib29sIG9wZXJhdG9yPT0oIGFyZzxJPiBjb25zdCAmLCBhcmc8ST4gY29uc3QgJiApCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKK3RlbXBsYXRlPCBpbnQgSSA+IHN0cnVjdCBpc19wbGFjZWhvbGRlcjwgYXJnPEk+ID4KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gSSB9OworfTsKKwordGVtcGxhdGU8IGludCBJID4gc3RydWN0IGlzX3BsYWNlaG9sZGVyPCBhcmc8ST4gKCopICgpID4KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gSSB9OworfTsKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0JJTkRfQVJHX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMTY3ODgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvYmluZC5ocHAKQEAgLTAsMCArMSwxNzUxIEBACisjaWZuZGVmIEJPT1NUX0JJTkRfQklORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfQklORF9CSU5EX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBiaW5kLmhwcCAtIGJpbmRzIGZ1bmN0aW9uIG9iamVjdHMgdG8gYXJndW1lbnRzCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxIERhdmlkIEFicmFoYW1zCisvLyAgQ29weXJpZ2h0IChjKSAyMDA1IFBldGVyIERpbW92CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9iaW5kL2JpbmQuaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbWVtX2ZuLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pc19wbGFjZWhvbGRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9hcmcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC92aXNpdF9lYWNoLmhwcD4KKworLy8gQm9ybGFuZC1zcGVjaWZpYyBidWcsIHZpc2l0X2VhY2goKSBzaWxlbnRseSBmYWlscyB0byBwcm9kdWNlIGNvZGUKKworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgZGVmaW5lIEJPT1NUX0JJTkRfVklTSVRfRUFDSCBuZG5ib29zdDo6dmlzaXRfZWFjaAorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9CSU5EX1ZJU0lUX0VBQ0ggdmlzaXRfZWFjaAorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL3N0b3JhZ2UuaHBwPgorCisjaWZkZWYgQk9PU1RfTVNWQworIyBwcmFnbWEgd2FybmluZyhwdXNoKQorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NTEyKSAvLyBhc3NpZ25tZW50IG9wZXJhdG9yIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3Mgd2Vha19wdHI7CisKK25hbWVzcGFjZSBfYmkgLy8gaW1wbGVtZW50YXRpb24gZGV0YWlscworeworCisvLyByZXN1bHRfdHJhaXRzCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEY+IHN0cnVjdCByZXN1bHRfdHJhaXRzCit7CisgICAgdHlwZWRlZiBSIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpCisKK3N0cnVjdCB1bnNwZWNpZmllZCB7fTsKKwordGVtcGxhdGU8Y2xhc3MgRj4gc3RydWN0IHJlc3VsdF90cmFpdHM8dW5zcGVjaWZpZWQsIEY+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjpyZXN1bHRfdHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRj4gc3RydWN0IHJlc3VsdF90cmFpdHM8IHVuc3BlY2lmaWVkLCByZWZlcmVuY2Vfd3JhcHBlcjxGPiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjpyZXN1bHRfdHlwZSB0eXBlOworfTsKKworI2VuZGlmCisKKy8vIHJlZl9jb21wYXJlCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGJvb2wgcmVmX2NvbXBhcmUoIFQgY29uc3QgJiBhLCBUIGNvbnN0ICYgYiwgbG9uZyApCit7CisgICAgcmV0dXJuIGEgPT0gYjsKK30KKwordGVtcGxhdGU8aW50IEk+IGJvb2wgcmVmX2NvbXBhcmUoIGFyZzxJPiBjb25zdCAmLCBhcmc8ST4gY29uc3QgJiwgaW50ICkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordGVtcGxhdGU8aW50IEk+IGJvb2wgcmVmX2NvbXBhcmUoIGFyZzxJPiAoKikgKCksIGFyZzxJPiAoKikgKCksIGludCApCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGJvb2wgcmVmX2NvbXBhcmUoIHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0ICYgYSwgcmVmZXJlbmNlX3dyYXBwZXI8VD4gY29uc3QgJiBiLCBpbnQgKQoreworICAgIHJldHVybiBhLmdldF9wb2ludGVyKCkgPT0gYi5nZXRfcG9pbnRlcigpOworfQorCisvLyBiaW5kX3QgZm9yd2FyZCBkZWNsYXJhdGlvbiBmb3IgbGlzdE4KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gY2xhc3MgYmluZF90OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiBib29sIHJlZl9jb21wYXJlKCBiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBhLCBiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBiLCBpbnQgKQoreworICAgIHJldHVybiBhLmNvbXBhcmUoIGIgKTsKK30KKworLy8gdmFsdWUKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgdmFsdWUKK3sKK3B1YmxpYzoKKworICAgIHZhbHVlKFQgY29uc3QgJiB0KTogdF8odCkge30KKworICAgIFQgJiBnZXQoKSB7IHJldHVybiB0XzsgfQorICAgIFQgY29uc3QgJiBnZXQoKSBjb25zdCB7IHJldHVybiB0XzsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KHZhbHVlIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRfID09IHJocy50XzsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBUIHRfOworfTsKKworLy8gcmVmX2NvbXBhcmUgZm9yIHdlYWtfcHRyCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGJvb2wgcmVmX2NvbXBhcmUoIHZhbHVlPCB3ZWFrX3B0cjxUPiA+IGNvbnN0ICYgYSwgdmFsdWU8IHdlYWtfcHRyPFQ+ID4gY29uc3QgJiBiLCBpbnQgKQoreworICAgIHJldHVybiAhKGEuZ2V0KCkgPCBiLmdldCgpKSAmJiAhKGIuZ2V0KCkgPCBhLmdldCgpKTsKK30KKworLy8gdHlwZQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyB0eXBlIHt9OworCisvLyB1bndyYXAKKwordGVtcGxhdGU8Y2xhc3MgRj4gc3RydWN0IHVud3JhcHBlcgoreworICAgIHN0YXRpYyBpbmxpbmUgRiAmIHVud3JhcCggRiAmIGYsIGxvbmcgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGY7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRjI+IHN0YXRpYyBpbmxpbmUgRjIgJiB1bndyYXAoIHJlZmVyZW5jZV93cmFwcGVyPEYyPiByZiwgaW50ICkKKyAgICB7CisgICAgICAgIHJldHVybiByZi5nZXQoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBUPiBzdGF0aWMgaW5saW5lIF9tZmk6OmRtPFIsIFQ+IHVud3JhcCggUiBUOjoqIHBtLCBpbnQgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIF9tZmk6OmRtPFIsIFQ+KCBwbSApOworICAgIH0KK307CisKKy8vIGxpc3ROCisKK2NsYXNzIGxpc3QwCit7CitwdWJsaWM6CisKKyAgICBsaXN0MCgpIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgY29uc3QgJiBvcGVyYXRvcltdIChfYmk6OnZhbHVlPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIG9wZXJhdG9yW10gKGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIpIGNvbnN0IHsgcmV0dXJuIGIuZXZhbCgqdGhpcyk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEE+IFIgb3BlcmF0b3IoKSh0eXBlPFI+LCBGICYgZiwgQSAmLCBsb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGPjo6dW53cmFwKGYsIDApKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgY29uc3QgJiBmLCBBICYsIGxvbmcpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiAmIGYsIEEgJiwgaW50KQorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiBjb25zdCAmIGYsIEEgJiwgaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYpIGNvbnN0CisgICAgeworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShsaXN0MCBjb25zdCAmKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworI2lmZGVmIEJPT1NUX01TVkMKKy8vIE1TVkMgaXMgYnJpZ2h0IGVub3VnaCB0byByZWFsaXNlIHRoYXQgdGhlIHBhcmFtZXRlciByaHMgCisvLyBpbiBvcGVyYXRvcj09bWF5IGJlIHVudXNlZCBmb3Igc29tZSB0ZW1wbGF0ZSBhcmd1bWVudCB0eXBlczoKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDEwMCkKKyNlbmRpZgorCit0ZW1wbGF0ZTwgY2xhc3MgQTEgPiBjbGFzcyBsaXN0MTogcHJpdmF0ZSBzdG9yYWdlMTwgQTEgPgoreworcHJpdmF0ZToKKworICAgIHR5cGVkZWYgc3RvcmFnZTE8IEExID4gYmFzZV90eXBlOworCitwdWJsaWM6CisKKyAgICBleHBsaWNpdCBsaXN0MSggQTEgYTEgKTogYmFzZV90eXBlKCBhMSApIHt9CisKKyAgICBBMSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDE+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmExXzsgfQorCisgICAgQTEgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwxPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAoIF9iaTo6dmFsdWU8VD4gJiB2ICkgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCBjb25zdCAmIG9wZXJhdG9yW10gKCBfYmk6OnZhbHVlPFQ+IGNvbnN0ICYgdiApIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgJiBvcGVyYXRvcltdIChyZWZlcmVuY2Vfd3JhcHBlcjxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHR5cGVuYW1lIHJlc3VsdF90cmFpdHM8UiwgRj46OnR5cGUgb3BlcmF0b3JbXSAoYmluZF90PFIsIEYsIEw+ICYgYikgY29uc3QgeyByZXR1cm4gYi5ldmFsKCp0aGlzKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiAmIGYsIEEgJiBhLCBsb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGPjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiBjb25zdCAmIGYsIEEgJiBhLCBsb25nKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGIGNvbnN0Pjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiAmIGYsIEEgJiBhLCBpbnQpCisgICAgeworICAgICAgICB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgY29uc3QgJiBmLCBBICYgYSwgaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgYmFzZV90eXBlOjphY2NlcHQodik7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGxpc3QxIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZl9jb21wYXJlKGJhc2VfdHlwZTo6YTFfLCByaHMuYTFfLCAwKTsKKyAgICB9Cit9OworCitzdHJ1Y3QgbG9naWNhbF9hbmQ7CitzdHJ1Y3QgbG9naWNhbF9vcjsKKwordGVtcGxhdGU8IGNsYXNzIEExLCBjbGFzcyBBMiA+IGNsYXNzIGxpc3QyOiBwcml2YXRlIHN0b3JhZ2UyPCBBMSwgQTIgPgoreworcHJpdmF0ZToKKworICAgIHR5cGVkZWYgc3RvcmFnZTI8IEExLCBBMiA+IGJhc2VfdHlwZTsKKworcHVibGljOgorCisgICAgbGlzdDIoIEExIGExLCBBMiBhMiApOiBiYXNlX3R5cGUoIGExLCBhMiApIHt9CisKKyAgICBBMSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDE+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmExXzsgfQorICAgIEEyIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mj4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTJfOyB9CisKKyAgICBBMSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDE+ICgqKSAoKSkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMV87IH0KKyAgICBBMiBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDI+ICgqKSAoKSkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMl87IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgJiBvcGVyYXRvcltdIChfYmk6OnZhbHVlPFQ+ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCBjb25zdCAmIG9wZXJhdG9yW10gKF9iaTo6dmFsdWU8VD4gY29uc3QgJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAocmVmZXJlbmNlX3dyYXBwZXI8VD4gY29uc3QgJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIG9wZXJhdG9yW10gKGJpbmRfdDxSLCBGLCBMPiAmIGIpIGNvbnN0IHsgcmV0dXJuIGIuZXZhbCgqdGhpcyk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHR5cGVuYW1lIHJlc3VsdF90cmFpdHM8UiwgRj46OnR5cGUgb3BlcmF0b3JbXSAoYmluZF90PFIsIEYsIEw+IGNvbnN0ICYgYikgY29uc3QgeyByZXR1cm4gYi5ldmFsKCp0aGlzKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgJiBmLCBBICYgYSwgbG9uZykKKyAgICB7CisgICAgICAgIHJldHVybiB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEE+IFIgb3BlcmF0b3IoKSh0eXBlPFI+LCBGIGNvbnN0ICYgZiwgQSAmIGEsIGxvbmcpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiAmIGYsIEEgJiBhLCBpbnQpCisgICAgeworICAgICAgICB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEYsIGNsYXNzIEE+IHZvaWQgb3BlcmF0b3IoKSh0eXBlPHZvaWQ+LCBGIGNvbnN0ICYgZiwgQSAmIGEsIGludCkgY29uc3QKKyAgICB7CisgICAgICAgIHVud3JhcHBlcjxGIGNvbnN0Pjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQT4gYm9vbCBvcGVyYXRvcigpKCB0eXBlPGJvb2w+LCBsb2dpY2FsX2FuZCAmIC8qZiovLCBBICYgYSwgaW50ICkKKyAgICB7CisgICAgICAgIHJldHVybiBhWyBiYXNlX3R5cGU6OmExXyBdICYmIGFbIGJhc2VfdHlwZTo6YTJfIF07CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQT4gYm9vbCBvcGVyYXRvcigpKCB0eXBlPGJvb2w+LCBsb2dpY2FsX2FuZCBjb25zdCAmIC8qZiovLCBBICYgYSwgaW50ICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBhWyBiYXNlX3R5cGU6OmExXyBdICYmIGFbIGJhc2VfdHlwZTo6YTJfIF07CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQT4gYm9vbCBvcGVyYXRvcigpKCB0eXBlPGJvb2w+LCBsb2dpY2FsX29yICYgLypmKi8sIEEgJiBhLCBpbnQgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFbIGJhc2VfdHlwZTo6YTFfIF0gfHwgYVsgYmFzZV90eXBlOjphMl8gXTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBPiBib29sIG9wZXJhdG9yKCkoIHR5cGU8Ym9vbD4sIGxvZ2ljYWxfb3IgY29uc3QgJiAvKmYqLywgQSAmIGEsIGludCApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYVsgYmFzZV90eXBlOjphMV8gXSB8fCBhWyBiYXNlX3R5cGU6OmEyXyBdOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgYmFzZV90eXBlOjphY2NlcHQodik7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGxpc3QyIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZl9jb21wYXJlKGJhc2VfdHlwZTo6YTFfLCByaHMuYTFfLCAwKSAmJiByZWZfY29tcGFyZShiYXNlX3R5cGU6OmEyXywgcmhzLmEyXywgMCk7CisgICAgfQorfTsKKwordGVtcGxhdGU8IGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMgPiBjbGFzcyBsaXN0MzogcHJpdmF0ZSBzdG9yYWdlMzwgQTEsIEEyLCBBMyA+Cit7Citwcml2YXRlOgorCisgICAgdHlwZWRlZiBzdG9yYWdlMzwgQTEsIEEyLCBBMyA+IGJhc2VfdHlwZTsKKworcHVibGljOgorCisgICAgbGlzdDMoIEExIGExLCBBMiBhMiwgQTMgYTMgKTogYmFzZV90eXBlKCBhMSwgYTIsIGEzICkge30KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMl87IH0KKyAgICBBMyBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDM+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorCisgICAgQTEgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwxPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTJfOyB9CisgICAgQTMgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwzPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTNfOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgY29uc3QgJiBvcGVyYXRvcltdIChfYmk6OnZhbHVlPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIG9wZXJhdG9yW10gKGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIpIGNvbnN0IHsgcmV0dXJuIGIuZXZhbCgqdGhpcyk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEE+IFIgb3BlcmF0b3IoKSh0eXBlPFI+LCBGICYgZiwgQSAmIGEsIGxvbmcpCisgICAgeworICAgICAgICByZXR1cm4gdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgY29uc3QgJiBmLCBBICYgYSwgbG9uZykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiAmIGYsIEEgJiBhLCBpbnQpCisgICAgeworICAgICAgICB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiBjb25zdCAmIGYsIEEgJiBhLCBpbnQpIGNvbnN0CisgICAgeworICAgICAgICB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGJhc2VfdHlwZTo6YWNjZXB0KHYpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShsaXN0MyBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybgorICAgICAgICAgICAgCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphMV8sIHJocy5hMV8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTJfLCByaHMuYTJfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmEzXywgcmhzLmEzXywgMCApOworICAgIH0KK307CisKK3RlbXBsYXRlPCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCA+IGNsYXNzIGxpc3Q0OiBwcml2YXRlIHN0b3JhZ2U0PCBBMSwgQTIsIEEzLCBBNCA+Cit7Citwcml2YXRlOgorCisgICAgdHlwZWRlZiBzdG9yYWdlNDwgQTEsIEEyLCBBMywgQTQgPiBiYXNlX3R5cGU7CisKK3B1YmxpYzoKKworICAgIGxpc3Q0KCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCApOiBiYXNlX3R5cGUoIGExLCBhMiwgYTMsIGE0ICkge30KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMl87IH0KKyAgICBBMyBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDM+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorICAgIEE0IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8ND4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTRfOyB9CisKKyAgICBBMSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDE+ICgqKSAoKSkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMV87IH0KKyAgICBBMiBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDI+ICgqKSAoKSkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMl87IH0KKyAgICBBMyBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDM+ICgqKSAoKSkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphM187IH0KKyAgICBBNCBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDQ+ICgqKSAoKSkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphNF87IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgJiBvcGVyYXRvcltdIChfYmk6OnZhbHVlPFQ+ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCBjb25zdCAmIG9wZXJhdG9yW10gKF9iaTo6dmFsdWU8VD4gY29uc3QgJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAocmVmZXJlbmNlX3dyYXBwZXI8VD4gY29uc3QgJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIG9wZXJhdG9yW10gKGJpbmRfdDxSLCBGLCBMPiAmIGIpIGNvbnN0IHsgcmV0dXJuIGIuZXZhbCgqdGhpcyk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHR5cGVuYW1lIHJlc3VsdF90cmFpdHM8UiwgRj46OnR5cGUgb3BlcmF0b3JbXSAoYmluZF90PFIsIEYsIEw+IGNvbnN0ICYgYikgY29uc3QgeyByZXR1cm4gYi5ldmFsKCp0aGlzKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgJiBmLCBBICYgYSwgbG9uZykKKyAgICB7CisgICAgICAgIHJldHVybiB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgY29uc3QgJiBmLCBBICYgYSwgbG9uZykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgJiBmLCBBICYgYSwgaW50KQorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEYsIGNsYXNzIEE+IHZvaWQgb3BlcmF0b3IoKSh0eXBlPHZvaWQ+LCBGIGNvbnN0ICYgZiwgQSAmIGEsIGludCkgY29uc3QKKyAgICB7CisgICAgICAgIHVud3JhcHBlcjxGIGNvbnN0Pjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGJhc2VfdHlwZTo6YWNjZXB0KHYpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShsaXN0NCBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybgorCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphMV8sIHJocy5hMV8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTJfLCByaHMuYTJfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmEzXywgcmhzLmEzXywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphNF8sIHJocy5hNF8sIDAgKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1ID4gY2xhc3MgbGlzdDU6IHByaXZhdGUgc3RvcmFnZTU8IEExLCBBMiwgQTMsIEE0LCBBNSA+Cit7Citwcml2YXRlOgorCisgICAgdHlwZWRlZiBzdG9yYWdlNTwgQTEsIEEyLCBBMywgQTQsIEE1ID4gYmFzZV90eXBlOworCitwdWJsaWM6CisKKyAgICBsaXN0NSggQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1ICk6IGJhc2VfdHlwZSggYTEsIGEyLCBhMywgYTQsIGE1ICkge30KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMl87IH0KKyAgICBBMyBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDM+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorICAgIEE0IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8ND4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTRfOyB9CisgICAgQTUgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw1PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphNV87IH0KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmExXzsgfQorICAgIEEyIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mj4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEyXzsgfQorICAgIEEzIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mz4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorICAgIEE0IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8ND4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE0XzsgfQorICAgIEE1IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8NT4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE1XzsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKF9iaTo6dmFsdWU8VD4gJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUIGNvbnN0ICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgJiBvcGVyYXRvcltdIChyZWZlcmVuY2Vfd3JhcHBlcjxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHR5cGVuYW1lIHJlc3VsdF90cmFpdHM8UiwgRj46OnR5cGUgb3BlcmF0b3JbXSAoYmluZF90PFIsIEYsIEw+ICYgYikgY29uc3QgeyByZXR1cm4gYi5ldmFsKCp0aGlzKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiAmIGYsIEEgJiBhLCBsb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGPjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dLCBhW2Jhc2VfdHlwZTo6YTVfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgY29uc3QgJiBmLCBBICYgYSwgbG9uZykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSwgYVtiYXNlX3R5cGU6OmE1X10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEYsIGNsYXNzIEE+IHZvaWQgb3BlcmF0b3IoKSh0eXBlPHZvaWQ+LCBGICYgZiwgQSAmIGEsIGludCkKKyAgICB7CisgICAgICAgIHVud3JhcHBlcjxGPjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dLCBhW2Jhc2VfdHlwZTo6YTVfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgY29uc3QgJiBmLCBBICYgYSwgaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGJhc2VfdHlwZTo6YWNjZXB0KHYpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShsaXN0NSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybgorCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphMV8sIHJocy5hMV8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTJfLCByaHMuYTJfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmEzXywgcmhzLmEzXywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphNF8sIHJocy5hNF8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTVfLCByaHMuYTVfLCAwICk7CisgICAgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gY2xhc3MgbGlzdDY6IHByaXZhdGUgc3RvcmFnZTY8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYgPgoreworcHJpdmF0ZToKKworICAgIHR5cGVkZWYgc3RvcmFnZTY8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYgPiBiYXNlX3R5cGU7CisKK3B1YmxpYzoKKworICAgIGxpc3Q2KCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2ICk6IGJhc2VfdHlwZSggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiApIHt9CisKKyAgICBBMSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDE+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmExXzsgfQorICAgIEEyIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mj4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTJfOyB9CisgICAgQTMgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwzPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphM187IH0KKyAgICBBNCBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDQ+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE0XzsgfQorICAgIEE1IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8NT4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTVfOyB9CisgICAgQTYgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw2PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphNl87IH0KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmExXzsgfQorICAgIEEyIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mj4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEyXzsgfQorICAgIEEzIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mz4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorICAgIEE0IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8ND4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE0XzsgfQorICAgIEE1IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8NT4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE1XzsgfQorICAgIEE2IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Nj4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE2XzsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKF9iaTo6dmFsdWU8VD4gJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUIGNvbnN0ICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgJiBvcGVyYXRvcltdIChyZWZlcmVuY2Vfd3JhcHBlcjxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHR5cGVuYW1lIHJlc3VsdF90cmFpdHM8UiwgRj46OnR5cGUgb3BlcmF0b3JbXSAoYmluZF90PFIsIEYsIEw+ICYgYikgY29uc3QgeyByZXR1cm4gYi5ldmFsKCp0aGlzKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiAmIGYsIEEgJiBhLCBsb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGPjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dLCBhW2Jhc2VfdHlwZTo6YTVfXSwgYVtiYXNlX3R5cGU6OmE2X10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEE+IFIgb3BlcmF0b3IoKSh0eXBlPFI+LCBGIGNvbnN0ICYgZiwgQSAmIGEsIGxvbmcpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgJiBmLCBBICYgYSwgaW50KQorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgY29uc3QgJiBmLCBBICYgYSwgaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBiYXNlX3R5cGU6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0obGlzdDYgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4KKworICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTFfLCByaHMuYTFfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmEyXywgcmhzLmEyXywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphM18sIHJocy5hM18sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTRfLCByaHMuYTRfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE1XywgcmhzLmE1XywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphNl8sIHJocy5hNl8sIDAgKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4gY2xhc3MgbGlzdDc6IHByaXZhdGUgc3RvcmFnZTc8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3ID4KK3sKK3ByaXZhdGU6CisKKyAgICB0eXBlZGVmIHN0b3JhZ2U3PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNyA+IGJhc2VfdHlwZTsKKworcHVibGljOgorCisgICAgbGlzdDcoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3ICk6IGJhc2VfdHlwZSggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcgKSB7fQorCisgICAgQTEgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwxPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMV87IH0KKyAgICBBMiBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDI+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEyXzsgfQorICAgIEEzIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mz4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTNfOyB9CisgICAgQTQgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw0PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphNF87IH0KKyAgICBBNSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDU+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE1XzsgfQorICAgIEE2IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Nj4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTZfOyB9CisgICAgQTcgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw3PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphN187IH0KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmExXzsgfQorICAgIEEyIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mj4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEyXzsgfQorICAgIEEzIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mz4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorICAgIEE0IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8ND4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE0XzsgfQorICAgIEE1IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8NT4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE1XzsgfQorICAgIEE2IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Nj4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE2XzsgfQorICAgIEE3IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Nz4gKCopICgpKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE3XzsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKF9iaTo6dmFsdWU8VD4gJiB2KSBjb25zdCB7IHJldHVybiB2LmdldCgpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUIGNvbnN0ICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgJiBvcGVyYXRvcltdIChyZWZlcmVuY2Vfd3JhcHBlcjxUPiBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHR5cGVuYW1lIHJlc3VsdF90cmFpdHM8UiwgRj46OnR5cGUgb3BlcmF0b3JbXSAoYmluZF90PFIsIEYsIEw+ICYgYikgY29uc3QgeyByZXR1cm4gYi5ldmFsKCp0aGlzKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiAmIGYsIEEgJiBhLCBsb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGPjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dLCBhW2Jhc2VfdHlwZTo6YTVfXSwgYVtiYXNlX3R5cGU6OmE2X10sIGFbYmFzZV90eXBlOjphN19dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiBjb25zdCAmIGYsIEEgJiBhLCBsb25nKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGIGNvbnN0Pjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dLCBhW2Jhc2VfdHlwZTo6YTVfXSwgYVtiYXNlX3R5cGU6OmE2X10sIGFbYmFzZV90eXBlOjphN19dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiAmIGYsIEEgJiBhLCBpbnQpCisgICAgeworICAgICAgICB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSwgYVtiYXNlX3R5cGU6OmE1X10sIGFbYmFzZV90eXBlOjphNl9dLCBhW2Jhc2VfdHlwZTo6YTdfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgY29uc3QgJiBmLCBBICYgYSwgaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEYgY29uc3Q+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSwgYVtiYXNlX3R5cGU6OmE3X10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgYmFzZV90eXBlOjphY2NlcHQodik7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGxpc3Q3IGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmExXywgcmhzLmExXywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphMl8sIHJocy5hMl8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTNfLCByaHMuYTNfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE0XywgcmhzLmE0XywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphNV8sIHJocy5hNV8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTZfLCByaHMuYTZfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE3XywgcmhzLmE3XywgMCApOworICAgIH0KK307CisKK3RlbXBsYXRlPCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTggPiBjbGFzcyBsaXN0ODogcHJpdmF0ZSBzdG9yYWdlODwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4ID4KK3sKK3ByaXZhdGU6CisKKyAgICB0eXBlZGVmIHN0b3JhZ2U4PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTggPiBiYXNlX3R5cGU7CisKK3B1YmxpYzoKKworICAgIGxpc3Q4KCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTggKTogYmFzZV90eXBlKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTggKSB7fQorCisgICAgQTEgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwxPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMV87IH0KKyAgICBBMiBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDI+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEyXzsgfQorICAgIEEzIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Mz4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTNfOyB9CisgICAgQTQgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw0PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphNF87IH0KKyAgICBBNSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDU+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE1XzsgfQorICAgIEE2IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Nj4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTZfOyB9CisgICAgQTcgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw3PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphN187IH0KKyAgICBBOCBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDg+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE4XzsgfQorCisgICAgQTEgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwxPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTJfOyB9CisgICAgQTMgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwzPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTNfOyB9CisgICAgQTQgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw0PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTRfOyB9CisgICAgQTUgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw1PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTVfOyB9CisgICAgQTYgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw2PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTZfOyB9CisgICAgQTcgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw3PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTdfOyB9CisgICAgQTggb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw4PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YThfOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgY29uc3QgJiBvcGVyYXRvcltdIChfYmk6OnZhbHVlPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIG9wZXJhdG9yW10gKGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIpIGNvbnN0IHsgcmV0dXJuIGIuZXZhbCgqdGhpcyk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEE+IFIgb3BlcmF0b3IoKSh0eXBlPFI+LCBGICYgZiwgQSAmIGEsIGxvbmcpCisgICAgeworICAgICAgICByZXR1cm4gdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSwgYVtiYXNlX3R5cGU6OmE3X10sIGFbYmFzZV90eXBlOjphOF9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBPiBSIG9wZXJhdG9yKCkodHlwZTxSPiwgRiBjb25zdCAmIGYsIEEgJiBhLCBsb25nKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHVud3JhcHBlcjxGIGNvbnN0Pjo6dW53cmFwKGYsIDApKGFbYmFzZV90eXBlOjphMV9dLCBhW2Jhc2VfdHlwZTo6YTJfXSwgYVtiYXNlX3R5cGU6OmEzX10sIGFbYmFzZV90eXBlOjphNF9dLCBhW2Jhc2VfdHlwZTo6YTVfXSwgYVtiYXNlX3R5cGU6OmE2X10sIGFbYmFzZV90eXBlOjphN19dLCBhW2Jhc2VfdHlwZTo6YThfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQT4gdm9pZCBvcGVyYXRvcigpKHR5cGU8dm9pZD4sIEYgJiBmLCBBICYgYSwgaW50KQorICAgIHsKKyAgICAgICAgdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSwgYVtiYXNlX3R5cGU6OmE3X10sIGFbYmFzZV90eXBlOjphOF9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiBjb25zdCAmIGYsIEEgJiBhLCBpbnQpIGNvbnN0CisgICAgeworICAgICAgICB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSwgYVtiYXNlX3R5cGU6OmE1X10sIGFbYmFzZV90eXBlOjphNl9dLCBhW2Jhc2VfdHlwZTo6YTdfXSwgYVtiYXNlX3R5cGU6OmE4X10pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgYmFzZV90eXBlOjphY2NlcHQodik7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGxpc3Q4IGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmExXywgcmhzLmExXywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphMl8sIHJocy5hMl8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTNfLCByaHMuYTNfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE0XywgcmhzLmE0XywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphNV8sIHJocy5hNV8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTZfLCByaHMuYTZfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE3XywgcmhzLmE3XywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphOF8sIHJocy5hOF8sIDAgKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PiBjbGFzcyBsaXN0OTogcHJpdmF0ZSBzdG9yYWdlOTwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOSA+Cit7Citwcml2YXRlOgorCisgICAgdHlwZWRlZiBzdG9yYWdlOTwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOSA+IGJhc2VfdHlwZTsKKworcHVibGljOgorCisgICAgbGlzdDkoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCwgQTkgYTkgKTogYmFzZV90eXBlKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5ICkge30KKworICAgIEExIG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8MT4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphMl87IH0KKyAgICBBMyBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDM+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmEzXzsgfQorICAgIEE0IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8ND4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTRfOyB9CisgICAgQTUgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw1PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphNV87IH0KKyAgICBBNiBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDY+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE2XzsgfQorICAgIEE3IG9wZXJhdG9yW10gKG5kbmJvb3N0Ojphcmc8Nz4pIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTdfOyB9CisgICAgQTggb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw4PikgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjphOF87IH0KKyAgICBBOSBvcGVyYXRvcltdIChuZG5ib29zdDo6YXJnPDk+KSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OmE5XzsgfQorCisgICAgQTEgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwxPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTFfOyB9CisgICAgQTIgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwyPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTJfOyB9CisgICAgQTMgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzwzPiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTNfOyB9CisgICAgQTQgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw0PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTRfOyB9CisgICAgQTUgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw1PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTVfOyB9CisgICAgQTYgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw2PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTZfOyB9CisgICAgQTcgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw3PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTdfOyB9CisgICAgQTggb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw4PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YThfOyB9CisgICAgQTkgb3BlcmF0b3JbXSAobmRuYm9vc3Q6OmFyZzw5PiAoKikgKCkpIGNvbnN0IHsgcmV0dXJuIGJhc2VfdHlwZTo6YTlfOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBUICYgb3BlcmF0b3JbXSAoX2JpOjp2YWx1ZTxUPiAmIHYpIGNvbnN0IHsgcmV0dXJuIHYuZ2V0KCk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IFQgY29uc3QgJiBvcGVyYXRvcltdIChfYmk6OnZhbHVlPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gVCAmIG9wZXJhdG9yW10gKHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0ICYgdikgY29uc3QgeyByZXR1cm4gdi5nZXQoKTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gdHlwZW5hbWUgcmVzdWx0X3RyYWl0czxSLCBGPjo6dHlwZSBvcGVyYXRvcltdIChiaW5kX3Q8UiwgRiwgTD4gJiBiKSBjb25zdCB7IHJldHVybiBiLmV2YWwoKnRoaXMpOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIG9wZXJhdG9yW10gKGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIpIGNvbnN0IHsgcmV0dXJuIGIuZXZhbCgqdGhpcyk7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEE+IFIgb3BlcmF0b3IoKSh0eXBlPFI+LCBGICYgZiwgQSAmIGEsIGxvbmcpCisgICAgeworICAgICAgICByZXR1cm4gdW53cmFwcGVyPEY+Ojp1bndyYXAoZiwgMCkoYVtiYXNlX3R5cGU6OmExX10sIGFbYmFzZV90eXBlOjphMl9dLCBhW2Jhc2VfdHlwZTo6YTNfXSwgYVtiYXNlX3R5cGU6OmE0X10sIGFbYmFzZV90eXBlOjphNV9dLCBhW2Jhc2VfdHlwZTo6YTZfXSwgYVtiYXNlX3R5cGU6OmE3X10sIGFbYmFzZV90eXBlOjphOF9dLCBhW2Jhc2VfdHlwZTo6YTlfXSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQT4gUiBvcGVyYXRvcigpKHR5cGU8Uj4sIEYgY29uc3QgJiBmLCBBICYgYSwgbG9uZykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSwgYVtiYXNlX3R5cGU6OmE1X10sIGFbYmFzZV90eXBlOjphNl9dLCBhW2Jhc2VfdHlwZTo6YTdfXSwgYVtiYXNlX3R5cGU6OmE4X10sIGFbYmFzZV90eXBlOjphOV9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiAmIGYsIEEgJiBhLCBpbnQpCisgICAgeworICAgICAgICB1bndyYXBwZXI8Rj46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSwgYVtiYXNlX3R5cGU6OmE1X10sIGFbYmFzZV90eXBlOjphNl9dLCBhW2Jhc2VfdHlwZTo6YTdfXSwgYVtiYXNlX3R5cGU6OmE4X10sIGFbYmFzZV90eXBlOjphOV9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBPiB2b2lkIG9wZXJhdG9yKCkodHlwZTx2b2lkPiwgRiBjb25zdCAmIGYsIEEgJiBhLCBpbnQpIGNvbnN0CisgICAgeworICAgICAgICB1bndyYXBwZXI8RiBjb25zdD46OnVud3JhcChmLCAwKShhW2Jhc2VfdHlwZTo6YTFfXSwgYVtiYXNlX3R5cGU6OmEyX10sIGFbYmFzZV90eXBlOjphM19dLCBhW2Jhc2VfdHlwZTo6YTRfXSwgYVtiYXNlX3R5cGU6OmE1X10sIGFbYmFzZV90eXBlOjphNl9dLCBhW2Jhc2VfdHlwZTo6YTdfXSwgYVtiYXNlX3R5cGU6OmE4X10sIGFbYmFzZV90eXBlOjphOV9dKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGJhc2VfdHlwZTo6YWNjZXB0KHYpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShsaXN0OSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybgorCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphMV8sIHJocy5hMV8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTJfLCByaHMuYTJfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmEzXywgcmhzLmEzXywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphNF8sIHJocy5hNF8sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YTVfLCByaHMuYTVfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE2XywgcmhzLmE2XywgMCApICYmCisgICAgICAgICAgICByZWZfY29tcGFyZSggYmFzZV90eXBlOjphN18sIHJocy5hN18sIDAgKSAmJgorICAgICAgICAgICAgcmVmX2NvbXBhcmUoIGJhc2VfdHlwZTo6YThfLCByaHMuYThfLCAwICkgJiYKKyAgICAgICAgICAgIHJlZl9jb21wYXJlKCBiYXNlX3R5cGU6OmE5XywgcmhzLmE5XywgMCApOworICAgIH0KK307CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKy8vIGJpbmRfdAorCisjaWZuZGVmIEJPT1NUX05PX1ZPSURfUkVUVVJOUworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiBjbGFzcyBiaW5kX3QKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgYmluZF90IHRoaXNfdHlwZTsKKworICAgIGJpbmRfdChGIGYsIEwgY29uc3QgJiBsKTogZl8oZiksIGxfKGwpIHt9CisKKyNkZWZpbmUgQk9PU1RfQklORF9SRVRVUk4gcmV0dXJuCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9iaW5kX3RlbXBsYXRlLmhwcD4KKyN1bmRlZiBCT09TVF9CSU5EX1JFVFVSTgorCit9OworCisjZWxzZQorCit0ZW1wbGF0ZTxjbGFzcyBSPiBzdHJ1Y3QgYmluZF90X2dlbmVyYXRvcgoreworCit0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBMPiBjbGFzcyBpbXBsZW1lbnRhdGlvbgoreworcHVibGljOgorCisgICAgdHlwZWRlZiBpbXBsZW1lbnRhdGlvbiB0aGlzX3R5cGU7CisKKyAgICBpbXBsZW1lbnRhdGlvbihGIGYsIEwgY29uc3QgJiBsKTogZl8oZiksIGxfKGwpIHt9CisKKyNkZWZpbmUgQk9PU1RfQklORF9SRVRVUk4gcmV0dXJuCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9iaW5kX3RlbXBsYXRlLmhwcD4KKyN1bmRlZiBCT09TVF9CSU5EX1JFVFVSTgorCit9OworCit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaW5kX3RfZ2VuZXJhdG9yPHZvaWQ+Cit7CisKK3RlbXBsYXRlPGNsYXNzIEYsIGNsYXNzIEw+IGNsYXNzIGltcGxlbWVudGF0aW9uCit7Citwcml2YXRlOgorCisgICAgdHlwZWRlZiB2b2lkIFI7CisKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgaW1wbGVtZW50YXRpb24gdGhpc190eXBlOworCisgICAgaW1wbGVtZW50YXRpb24oRiBmLCBMIGNvbnN0ICYgbCk6IGZfKGYpLCBsXyhsKSB7fQorCisjZGVmaW5lIEJPT1NUX0JJTkRfUkVUVVJOCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9iaW5kX3RlbXBsYXRlLmhwcD4KKyN1bmRlZiBCT09TVF9CSU5EX1JFVFVSTgorCit9OworCit9OworCit0ZW1wbGF0ZTxjbGFzcyBSMiwgY2xhc3MgRiwgY2xhc3MgTD4gY2xhc3MgYmluZF90OiBwdWJsaWMgYmluZF90X2dlbmVyYXRvcjxSMj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBpbXBsZW1lbnRhdGlvbjxGLCBMPgoreworcHVibGljOgorCisgICAgYmluZF90KEYgZiwgTCBjb25zdCAmIGwpOiBiaW5kX3RfZ2VuZXJhdG9yPFIyPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIGltcGxlbWVudGF0aW9uPEYsIEw+KGYsIGwpIHt9CisKK307CisKKyNlbmRpZgorCisvLyBmdW5jdGlvbl9lcXVhbAorCisjaWZuZGVmIEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVAKKworLy8gcHV0IG92ZXJsb2FkcyBpbiBfYmksIHJlbHkgb24gQURMCisKKyMgaWZuZGVmIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IGJvb2wgZnVuY3Rpb25fZXF1YWwoIGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGEsIGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIgKQoreworICAgIHJldHVybiBhLmNvbXBhcmUoYik7Cit9CisKKyMgZWxzZQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiBib29sIGZ1bmN0aW9uX2VxdWFsX2ltcGwoIGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGEsIGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIsIGludCApCit7CisgICAgcmV0dXJuIGEuY29tcGFyZShiKTsKK30KKworIyBlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKKyNlbHNlIC8vIEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVAKKworLy8gcHV0IG92ZXJsb2FkcyBpbiBib29zdAorCit9IC8vIG5hbWVzcGFjZSBfYmkKKworIyBpZm5kZWYgQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgTD4gYm9vbCBmdW5jdGlvbl9lcXVhbCggX2JpOjpiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBhLCBfYmk6OmJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGIgKQoreworICAgIHJldHVybiBhLmNvbXBhcmUoYik7Cit9CisKKyMgZWxzZQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiBib29sIGZ1bmN0aW9uX2VxdWFsX2ltcGwoIF9iaTo6YmluZF90PFIsIEYsIEw+IGNvbnN0ICYgYSwgX2JpOjpiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBiLCBpbnQgKQoreworICAgIHJldHVybiBhLmNvbXBhcmUoYik7Cit9CisKKyMgZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworCituYW1lc3BhY2UgX2JpCit7CisKKyNlbmRpZiAvLyBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQCisKKy8vIGFkZF92YWx1ZQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgfHwgKF9fU1VOUFJPX0NDID49IDB4NTMwKQorCisjaWYgZGVmaW5lZCggX19CT1JMQU5EQ19fICkgJiYgQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1ODIpICkKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGFkZF92YWx1ZQoreworICAgIHR5cGVkZWYgX2JpOjp2YWx1ZTxUPiB0eXBlOworfTsKKworI2Vsc2UKKwordGVtcGxhdGU8IGNsYXNzIFQsIGludCBJID4gc3RydWN0IGFkZF92YWx1ZV8yCit7CisgICAgdHlwZWRlZiBuZG5ib29zdDo6YXJnPEk+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBhZGRfdmFsdWVfMjwgVCwgMCA+Cit7CisgICAgdHlwZWRlZiBfYmk6OnZhbHVlPCBUID4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBhZGRfdmFsdWUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZV8yPCBULCBuZG5ib29zdDo6aXNfcGxhY2Vob2xkZXI8IFQgPjo6dmFsdWUgPjo6dHlwZSB0eXBlOworfTsKKworI2VuZGlmCisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBhZGRfdmFsdWU8IHZhbHVlPFQ+ID4KK3sKKyAgICB0eXBlZGVmIF9iaTo6dmFsdWU8VD4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBhZGRfdmFsdWU8IHJlZmVyZW5jZV93cmFwcGVyPFQ+ID4KK3sKKyAgICB0eXBlZGVmIHJlZmVyZW5jZV93cmFwcGVyPFQ+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTxpbnQgST4gc3RydWN0IGFkZF92YWx1ZTwgYXJnPEk+ID4KK3sKKyAgICB0eXBlZGVmIG5kbmJvb3N0Ojphcmc8ST4gdHlwZTsKK307CisKK3RlbXBsYXRlPGludCBJPiBzdHJ1Y3QgYWRkX3ZhbHVlPCBhcmc8ST4gKCopICgpID4KK3sKKyAgICB0eXBlZGVmIG5kbmJvb3N0Ojphcmc8ST4gKCp0eXBlKSAoKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHN0cnVjdCBhZGRfdmFsdWU8IGJpbmRfdDxSLCBGLCBMPiA+Cit7CisgICAgdHlwZWRlZiBiaW5kX3Q8UiwgRiwgTD4gdHlwZTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlPGludCBJPiBzdHJ1Y3QgX2F2dF8wOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBfYXZ0XzA8MT4KK3sKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgaW5uZXIKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBfYXZ0XzA8Mj4KK3sKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgaW5uZXIKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmFsdWU8VD4gdHlwZTsKKyAgICB9OworfTsKKwordHlwZWRlZiBjaGFyICgmX2F2dF9yMSkgWzFdOwordHlwZWRlZiBjaGFyICgmX2F2dF9yMikgWzJdOworCit0ZW1wbGF0ZTxjbGFzcyBUPiBfYXZ0X3IxIF9hdnRfZih2YWx1ZTxUPik7Cit0ZW1wbGF0ZTxjbGFzcyBUPiBfYXZ0X3IxIF9hdnRfZihyZWZlcmVuY2Vfd3JhcHBlcjxUPik7Cit0ZW1wbGF0ZTxpbnQgST4gX2F2dF9yMSBfYXZ0X2YoYXJnPEk+KTsKK3RlbXBsYXRlPGludCBJPiBfYXZ0X3IxIF9hdnRfZihhcmc8ST4gKCopICgpKTsKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IF9hdnRfcjEgX2F2dF9mKGJpbmRfdDxSLCBGLCBMPik7CisKK19hdnRfcjIgX2F2dF9mKC4uLik7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBhZGRfdmFsdWUKK3sKKyAgICBzdGF0aWMgVCB0KCk7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYXZ0XzA8c2l6ZW9mKF9hdnRfZih0KCkpKT46OnRlbXBsYXRlIGlubmVyPFQ+Ojp0eXBlIHR5cGU7Cit9OworCisjZW5kaWYKKworLy8gbGlzdF9hdl9OCisKK3RlbXBsYXRlPGNsYXNzIEExPiBzdHJ1Y3QgbGlzdF9hdl8xCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTE+Ojp0eXBlIEIxOworICAgIHR5cGVkZWYgbGlzdDE8QjE+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTI+IHN0cnVjdCBsaXN0X2F2XzIKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMT46OnR5cGUgQjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTI+Ojp0eXBlIEIyOworICAgIHR5cGVkZWYgbGlzdDI8QjEsIEIyPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4gc3RydWN0IGxpc3RfYXZfMworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEExPjo6dHlwZSBCMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMj46OnR5cGUgQjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTM+Ojp0eXBlIEIzOworICAgIHR5cGVkZWYgbGlzdDM8QjEsIEIyLCBCMz4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PiBzdHJ1Y3QgbGlzdF9hdl80Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTE+Ojp0eXBlIEIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEEyPjo6dHlwZSBCMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMz46OnR5cGUgQjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTQ+Ojp0eXBlIEI0OworICAgIHR5cGVkZWYgbGlzdDQ8QjEsIEIyLCBCMywgQjQ+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+IHN0cnVjdCBsaXN0X2F2XzUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMT46OnR5cGUgQjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTI+Ojp0eXBlIEIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEEzPjo6dHlwZSBCMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBND46OnR5cGUgQjQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTU+Ojp0eXBlIEI1OworICAgIHR5cGVkZWYgbGlzdDU8QjEsIEIyLCBCMywgQjQsIEI1PiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gc3RydWN0IGxpc3RfYXZfNgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEExPjo6dHlwZSBCMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMj46OnR5cGUgQjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTM+Ojp0eXBlIEIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEE0Pjo6dHlwZSBCNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBNT46OnR5cGUgQjU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTY+Ojp0eXBlIEI2OworICAgIHR5cGVkZWYgbGlzdDY8QjEsIEIyLCBCMywgQjQsIEI1LCBCNj4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PiBzdHJ1Y3QgbGlzdF9hdl83Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTE+Ojp0eXBlIEIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEEyPjo6dHlwZSBCMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMz46OnR5cGUgQjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTQ+Ojp0eXBlIEI0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEE1Pjo6dHlwZSBCNTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBNj46OnR5cGUgQjY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTc+Ojp0eXBlIEI3OworICAgIHR5cGVkZWYgbGlzdDc8QjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+IHN0cnVjdCBsaXN0X2F2XzgKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMT46OnR5cGUgQjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTI+Ojp0eXBlIEIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEEzPjo6dHlwZSBCMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBND46OnR5cGUgQjQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTU+Ojp0eXBlIEI1OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEE2Pjo6dHlwZSBCNjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBNz46OnR5cGUgQjc7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTg+Ojp0eXBlIEI4OworICAgIHR5cGVkZWYgbGlzdDg8QjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4PiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4gc3RydWN0IGxpc3RfYXZfOQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEExPjo6dHlwZSBCMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMj46OnR5cGUgQjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTM+Ojp0eXBlIEIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEE0Pjo6dHlwZSBCNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBNT46OnR5cGUgQjU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTY+Ojp0eXBlIEI2OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3ZhbHVlPEE3Pjo6dHlwZSBCNzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBOD46OnR5cGUgQjg7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfdmFsdWU8QTk+Ojp0eXBlIEI5OworICAgIHR5cGVkZWYgbGlzdDk8QjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4LCBCOT4gdHlwZTsKK307CisKKy8vIG9wZXJhdG9yIQorCitzdHJ1Y3QgbG9naWNhbF9ub3QKK3sKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBib29sIG9wZXJhdG9yKCkoViBjb25zdCAmIHYpIGNvbnN0IHsgcmV0dXJuICF2OyB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPgorICAgIGJpbmRfdDwgYm9vbCwgbG9naWNhbF9ub3QsIGxpc3QxPCBiaW5kX3Q8UiwgRiwgTD4gPiA+CisgICAgb3BlcmF0b3IhIChiaW5kX3Q8UiwgRiwgTD4gY29uc3QgJiBmKQoreworICAgIHR5cGVkZWYgbGlzdDE8IGJpbmRfdDxSLCBGLCBMPiA+IGxpc3RfdHlwZTsKKyAgICByZXR1cm4gYmluZF90PGJvb2wsIGxvZ2ljYWxfbm90LCBsaXN0X3R5cGU+ICggbG9naWNhbF9ub3QoKSwgbGlzdF90eXBlKGYpICk7Cit9CisKKy8vIHJlbGF0aW9uYWwgb3BlcmF0b3JzCisKKyNkZWZpbmUgQk9PU1RfQklORF9PUEVSQVRPUiggb3AsIG5hbWUgKSBcCitcCitzdHJ1Y3QgbmFtZSBcCit7IFwKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBXPiBib29sIG9wZXJhdG9yKCkoViBjb25zdCAmIHYsIFcgY29uc3QgJiB3KSBjb25zdCB7IHJldHVybiB2IG9wIHc7IH0gXAorfTsgXAorIFwKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEwsIGNsYXNzIEEyPiBcCisgICAgYmluZF90PCBib29sLCBuYW1lLCBsaXN0MjwgYmluZF90PFIsIEYsIEw+LCB0eXBlbmFtZSBhZGRfdmFsdWU8QTI+Ojp0eXBlID4gPiBcCisgICAgb3BlcmF0b3Igb3AgKGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIGYsIEEyIGEyKSBcCit7IFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF92YWx1ZTxBMj46OnR5cGUgQjI7IFwKKyAgICB0eXBlZGVmIGxpc3QyPCBiaW5kX3Q8UiwgRiwgTD4sIEIyPiBsaXN0X3R5cGU7IFwKKyAgICByZXR1cm4gYmluZF90PGJvb2wsIG5hbWUsIGxpc3RfdHlwZT4gKCBuYW1lKCksIGxpc3RfdHlwZShmLCBhMikgKTsgXAorfQorCitCT09TVF9CSU5EX09QRVJBVE9SKCA9PSwgZXF1YWwgKQorQk9PU1RfQklORF9PUEVSQVRPUiggIT0sIG5vdF9lcXVhbCApCisKK0JPT1NUX0JJTkRfT1BFUkFUT1IoIDwsIGxlc3MgKQorQk9PU1RfQklORF9PUEVSQVRPUiggPD0sIGxlc3NfZXF1YWwgKQorCitCT09TVF9CSU5EX09QRVJBVE9SKCA+LCBncmVhdGVyICkKK0JPT1NUX0JJTkRfT1BFUkFUT1IoID49LCBncmVhdGVyX2VxdWFsICkKKworQk9PU1RfQklORF9PUEVSQVRPUiggJiYsIGxvZ2ljYWxfYW5kICkKK0JPT1NUX0JJTkRfT1BFUkFUT1IoIHx8LCBsb2dpY2FsX29yICkKKworI3VuZGVmIEJPT1NUX0JJTkRfT1BFUkFUT1IKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykKKworLy8gcmVzb2x2ZSBhbWJpZ3VpdHkgd2l0aCByZWxfb3BzCisKKyNkZWZpbmUgQk9PU1RfQklORF9PUEVSQVRPUiggb3AsIG5hbWUgKSBcCitcCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiBcCisgICAgYmluZF90PCBib29sLCBuYW1lLCBsaXN0MjwgYmluZF90PFIsIEYsIEw+LCBiaW5kX3Q8UiwgRiwgTD4gPiA+IFwKKyAgICBvcGVyYXRvciBvcCAoYmluZF90PFIsIEYsIEw+IGNvbnN0ICYgZiwgYmluZF90PFIsIEYsIEw+IGNvbnN0ICYgZykgXAoreyBcCisgICAgdHlwZWRlZiBsaXN0MjwgYmluZF90PFIsIEYsIEw+LCBiaW5kX3Q8UiwgRiwgTD4gPiBsaXN0X3R5cGU7IFwKKyAgICByZXR1cm4gYmluZF90PGJvb2wsIG5hbWUsIGxpc3RfdHlwZT4gKCBuYW1lKCksIGxpc3RfdHlwZShmLCBnKSApOyBcCit9CisKK0JPT1NUX0JJTkRfT1BFUkFUT1IoICE9LCBub3RfZXF1YWwgKQorQk9PU1RfQklORF9PUEVSQVRPUiggPD0sIGxlc3NfZXF1YWwgKQorQk9PU1RfQklORF9PUEVSQVRPUiggPiwgZ3JlYXRlciApCitCT09TVF9CSU5EX09QRVJBVE9SKCA+PSwgZ3JlYXRlcl9lcXVhbCApCisKKyNlbmRpZgorCisvLyB2aXNpdF9lYWNoLCBBREwKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQICkgJiYgIWRlZmluZWQoIF9fQk9STEFORENfXyApIFwKKyAgICYmICEoZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA8PSAzKQorCit0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBUPiB2b2lkIHZpc2l0X2VhY2goIFYgJiB2LCB2YWx1ZTxUPiBjb25zdCAmIHQsIGludCApCit7CisgICAgdXNpbmcgbmRuYm9vc3Q6OnZpc2l0X2VhY2g7CisgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKCB2LCB0LmdldCgpLCAwICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEw+IHZvaWQgdmlzaXRfZWFjaCggViAmIHYsIGJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIHQsIGludCApCit7CisgICAgdC5hY2NlcHQoIHYgKTsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIF9iaQorCisvLyB2aXNpdF9lYWNoLCBubyBBREwKKworI2lmIGRlZmluZWQoIEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVAgKSB8fCBkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSBcCisgIHx8IChkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fIDw9IDMpCisKK3RlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFQ+IHZvaWQgdmlzaXRfZWFjaCggViAmIHYsIF9iaTo6dmFsdWU8VD4gY29uc3QgJiB0LCBpbnQgKQoreworICAgIEJPT1NUX0JJTkRfVklTSVRfRUFDSCggdiwgdC5nZXQoKSwgMCApOworfQorCit0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiB2b2lkIHZpc2l0X2VhY2goIFYgJiB2LCBfYmk6OmJpbmRfdDxSLCBGLCBMPiBjb25zdCAmIHQsIGludCApCit7CisgICAgdC5hY2NlcHQoIHYgKTsKK30KKworI2VuZGlmCisKKy8vIGlzX2JpbmRfZXhwcmVzc2lvbgorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBpc19iaW5kX2V4cHJlc3Npb24KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gMCB9OworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8IGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEwgPiBzdHJ1Y3QgaXNfYmluZF9leHByZXNzaW9uPCBfYmk6OmJpbmRfdDwgUiwgRiwgTCA+ID4KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gMSB9OworfTsKKworI2VuZGlmCisKKy8vIGJpbmQKKworI2lmbmRlZiBCT09TVF9CSU5ECisjZGVmaW5lIEJPT1NUX0JJTkQgYmluZAorI2VuZGlmCisKKy8vIGdlbmVyaWMgZnVuY3Rpb24gb2JqZWN0cworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGPgorICAgIF9iaTo6YmluZF90PFIsIEYsIF9iaTo6bGlzdDA+CisgICAgQk9PU1RfQklORChGIGYpCit7CisgICAgdHlwZWRlZiBfYmk6Omxpc3QwIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPiAoZiwgbGlzdF90eXBlKCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMT4KKyAgICBfYmk6OmJpbmRfdDxSLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGU+CisgICAgQk9PU1RfQklORChGIGYsIEExIGExKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzE8QTE+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPiAoZiwgbGlzdF90eXBlKGExKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgICBfYmk6OmJpbmRfdDxSLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoRiBmLCBBMSBhMSwgQTIgYTIpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPiAoZiwgbGlzdF90eXBlKGExLCBhMikpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8zPEExLCBBMiwgQTM+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNDxBMSwgQTIsIEEzLCBBND46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzU8QTEsIEEyLCBBMywgQTQsIEE1Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzU8QTEsIEEyLCBBMywgQTQsIEE1Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oZiwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl82PEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzg8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzg8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oZiwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl85PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgQTk+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgsIEE5IGE5KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSk7Cit9CisKKy8vIGdlbmVyaWMgZnVuY3Rpb24gb2JqZWN0cywgYWx0ZXJuYXRpdmUgc3ludGF4CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEY+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgX2JpOjpsaXN0MD4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFI+LCBGIGYpCit7CisgICAgdHlwZWRlZiBfYmk6Omxpc3QwIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPiAoZiwgbGlzdF90eXBlKCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMT4KKyAgICBfYmk6OmJpbmRfdDxSLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSPiwgRiBmLCBBMSBhMSkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4gKGYsIGxpc3RfdHlwZShhMSkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTI+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzI8QTEsIEEyPjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFI+LCBGIGYsIEExIGExLCBBMiBhMikKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8yPEExLCBBMj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+IChmLCBsaXN0X3R5cGUoYTEsIGEyKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSPiwgRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFI+LCBGIGYsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzQ8QTEsIEEyLCBBMywgQTQ+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl81PEExLCBBMiwgQTMsIEE0LCBBNT46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSPiwgRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSPiwgRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFI+LCBGIGYsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzc8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTc+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PgorICAgIF9iaTo6YmluZF90PFIsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl84PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSPiwgRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEYsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CisgICAgX2JpOjpiaW5kX3Q8UiwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSPiwgRiBmLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgsIEE5IGE5KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSk7Cit9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykKKworLy8gYWRhcHRhYmxlIGZ1bmN0aW9uIG9iamVjdHMKKwordGVtcGxhdGU8Y2xhc3MgRj4KKyAgICBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCBfYmk6Omxpc3QwPgorICAgIEJPT1NUX0JJTkQoRiBmKQoreworICAgIHR5cGVkZWYgX2JpOjpsaXN0MCBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PF9iaTo6dW5zcGVjaWZpZWQsIEYsIGxpc3RfdHlwZT4gKGYsIGxpc3RfdHlwZSgpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTE+CisgICAgX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzE8QTE+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoRiBmLCBBMSBhMSkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PF9iaTo6dW5zcGVjaWZpZWQsIEYsIGxpc3RfdHlwZT4gKGYsIGxpc3RfdHlwZShhMSkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTI+CisgICAgX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzI8QTEsIEEyPjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzI8QTEsIEEyPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PF9iaTo6dW5zcGVjaWZpZWQsIEYsIGxpc3RfdHlwZT4gKGYsIGxpc3RfdHlwZShhMSwgYTIpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KKyAgICBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMzxBMSwgQTIsIEEzPjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMykKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8zPEExLCBBMiwgQTM+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMykpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4KKyAgICBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNDxBMSwgQTIsIEEzLCBBND46OnR5cGU+CisgICAgQk9PU1RfQklORChGIGYsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzQ8QTEsIEEyLCBBMywgQTQ+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICAgIF9iaTo6YmluZF90PF9iaTo6dW5zcGVjaWZpZWQsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl81PEExLCBBMiwgQTMsIEE0LCBBNT46OnR5cGU+CisgICAgQk9PU1RfQklORChGIGYsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl81PEExLCBBMiwgQTMsIEE0LCBBNT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4KKyAgICBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNjxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNikKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl82PEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNikpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4KKyAgICBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGU+CisgICAgQk9PU1RfQklORChGIGYsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzc8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTc+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PgorICAgIF9iaTo6YmluZF90PF9iaTo6dW5zcGVjaWZpZWQsIEYsIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl84PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD46OnR5cGU+CisgICAgQk9PU1RfQklORChGIGYsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl84PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4KKyAgICBfYmk6OmJpbmRfdDxfYmk6OnVuc3BlY2lmaWVkLCBGLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfOTxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEYgZiwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4LCBBOSBhOSkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl85PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgQTk+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8X2JpOjp1bnNwZWNpZmllZCwgRiwgbGlzdF90eXBlPihmLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkpOworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpCisKKy8vIGZ1bmN0aW9uIHBvaW50ZXJzCisKKyNkZWZpbmUgQk9PU1RfQklORF9DQworI2RlZmluZSBCT09TVF9CSU5EX1NUCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmRfY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfQklORF9DQworI3VuZGVmIEJPT1NUX0JJTkRfU1QKKworI2lmZGVmIEJPT1NUX0JJTkRfRU5BQkxFX1NURENBTEwKKworI2RlZmluZSBCT09TVF9CSU5EX0NDIF9fc3RkY2FsbAorI2RlZmluZSBCT09TVF9CSU5EX1NUCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmRfY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfQklORF9DQworI3VuZGVmIEJPT1NUX0JJTkRfU1QKKworI2VuZGlmCisKKyNpZmRlZiBCT09TVF9CSU5EX0VOQUJMRV9GQVNUQ0FMTAorCisjZGVmaW5lIEJPT1NUX0JJTkRfQ0MgX19mYXN0Y2FsbAorI2RlZmluZSBCT09TVF9CSU5EX1NUCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmRfY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfQklORF9DQworI3VuZGVmIEJPT1NUX0JJTkRfU1QKKworI2VuZGlmCisKKyNpZmRlZiBCT09TVF9CSU5EX0VOQUJMRV9QQVNDQUwKKworI2RlZmluZSBCT09TVF9CSU5EX1NUIHBhc2NhbAorI2RlZmluZSBCT09TVF9CSU5EX0NDCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmRfY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfQklORF9TVAorI3VuZGVmIEJPT1NUX0JJTkRfQ0MKKworI2VuZGlmCisKKy8vIG1lbWJlciBmdW5jdGlvbiBwb2ludGVycworCisjZGVmaW5lIEJPT1NUX0JJTkRfTUZfTkFNRShYKSBYCisjZGVmaW5lIEJPT1NUX0JJTkRfTUZfQ0MKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvYmluZF9tZl9jYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9iaW5kX21mMl9jYy5ocHA+CisKKyN1bmRlZiBCT09TVF9CSU5EX01GX05BTUUKKyN1bmRlZiBCT09TVF9CSU5EX01GX0NDCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NERUNMCisKKyNkZWZpbmUgQk9PU1RfQklORF9NRl9OQU1FKFgpIFgjI19jZGVjbAorI2RlZmluZSBCT09TVF9CSU5EX01GX0NDIF9fY2RlY2wKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvYmluZF9tZl9jYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9iaW5kX21mMl9jYy5ocHA+CisKKyN1bmRlZiBCT09TVF9CSU5EX01GX05BTUUKKyN1bmRlZiBCT09TVF9CSU5EX01GX0NDCisKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9TVERDQUxMCisKKyNkZWZpbmUgQk9PU1RfQklORF9NRl9OQU1FKFgpIFgjI19zdGRjYWxsCisjZGVmaW5lIEJPT1NUX0JJTkRfTUZfQ0MgX19zdGRjYWxsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmRfbWZfY2MuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvYmluZF9tZjJfY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfQklORF9NRl9OQU1FCisjdW5kZWYgQk9PU1RfQklORF9NRl9DQworCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfRkFTVENBTEwKKworI2RlZmluZSBCT09TVF9CSU5EX01GX05BTUUoWCkgWCMjX2Zhc3RjYWxsCisjZGVmaW5lIEJPT1NUX0JJTkRfTUZfQ0MgX19mYXN0Y2FsbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9iaW5kX21mX2NjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL2JpbmRfbWYyX2NjLmhwcD4KKworI3VuZGVmIEJPT1NUX0JJTkRfTUZfTkFNRQorI3VuZGVmIEJPT1NUX0JJTkRfTUZfQ0MKKworI2VuZGlmCisKKy8vIGRhdGEgbWVtYmVyIHBvaW50ZXJzCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIHx8IGRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAgICB8fCAoIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCggMHg2MjAgKSApICkKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTE+CitfYmk6OmJpbmRfdDwgUiwgX21maTo6ZG08UiwgVD4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSA+CisgICAgQk9PU1RfQklORChSIFQ6OipmLCBBMSBhMSkKK3sKKyAgICB0eXBlZGVmIF9tZmk6OmRtPFIsIFQ+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KCBGKGYpLCBsaXN0X3R5cGUoYTEpICk7Cit9CisKKyNlbHNlCisKK25hbWVzcGFjZSBfYmkKK3sKKwordGVtcGxhdGU8IGNsYXNzIFBtLCBpbnQgSSA+IHN0cnVjdCBhZGRfY3JlZjsKKwordGVtcGxhdGU8IGNsYXNzIE0sIGNsYXNzIFQgPiBzdHJ1Y3QgYWRkX2NyZWY8IE0gVDo6KiwgMCA+Cit7CisgICAgdHlwZWRlZiBNIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgTSwgY2xhc3MgVCA+IHN0cnVjdCBhZGRfY3JlZjwgTSBUOjoqLCAxID4KK3sKKyNpZmRlZiBCT09TVF9NU1ZDCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQxODApCisjZW5kaWYKKyAgICB0eXBlZGVmIE0gY29uc3QgJiB0eXBlOworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKK307CisKK3RlbXBsYXRlPCBjbGFzcyBSLCBjbGFzcyBUID4gc3RydWN0IGFkZF9jcmVmPCBSIChUOjoqKSAoKSwgMSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoX19JQk1DUFBfXykgfHwgX19JQk1DUFBfRlVOQ19DVl9UTVBMX0FSR19ERURVQ1RJT04KKwordGVtcGxhdGU8IGNsYXNzIFIsIGNsYXNzIFQgPiBzdHJ1Y3QgYWRkX2NyZWY8IFIgKFQ6OiopICgpIGNvbnN0LCAxID4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKKyNlbmRpZiAvLyBfX0lCTUNQUF9fCisKK3RlbXBsYXRlPGNsYXNzIFI+IHN0cnVjdCBpc3JlZgoreworICAgIGVudW0gdmFsdWVfdHlwZSB7IHZhbHVlID0gMCB9OworfTsKKwordGVtcGxhdGU8Y2xhc3MgUj4gc3RydWN0IGlzcmVmPCBSJiA+Cit7CisgICAgZW51bSB2YWx1ZV90eXBlIHsgdmFsdWUgPSAxIH07Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSPiBzdHJ1Y3QgaXNyZWY8IFIqID4KK3sKKyAgICBlbnVtIHZhbHVlX3R5cGUgeyB2YWx1ZSA9IDEgfTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFBtLCBjbGFzcyBBMT4gc3RydWN0IGRtX3Jlc3VsdAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX2NyZWY8IFBtLCAxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFBtLCBjbGFzcyBSLCBjbGFzcyBGLCBjbGFzcyBMPiBzdHJ1Y3QgZG1fcmVzdWx0PCBQbSwgYmluZF90PFIsIEYsIEw+ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJpbmRfdDxSLCBGLCBMPjo6cmVzdWx0X3R5cGUgcmVzdWx0X3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfY3JlZjwgUG0sIGlzcmVmPCByZXN1bHRfdHlwZSA+Ojp2YWx1ZSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBfYmkKKwordGVtcGxhdGU8IGNsYXNzIEExLCBjbGFzcyBNLCBjbGFzcyBUID4KKworX2JpOjpiaW5kX3Q8CisgICAgdHlwZW5hbWUgX2JpOjpkbV9yZXN1bHQ8IE0gVDo6KiwgQTEgPjo6dHlwZSwKKyAgICBfbWZpOjpkbTxNLCBUPiwKKyAgICB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGUKKz4KKworQk9PU1RfQklORCggTSBUOjoqZiwgQTEgYTEgKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpkbV9yZXN1bHQ8IE0gVDo6KiwgQTEgPjo6dHlwZSByZXN1bHRfdHlwZTsKKyAgICB0eXBlZGVmIF9tZmk6OmRtPE0sIFQ+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDwgcmVzdWx0X3R5cGUsIEYsIGxpc3RfdHlwZSA+KCBGKCBmICksIGxpc3RfdHlwZSggYTEgKSApOworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmbmRlZiBCT09TVF9CSU5EX05PX1BMQUNFSE9MREVSUworCisjIGluY2x1ZGUgPG5kbmJvb3N0L2JpbmQvcGxhY2Vob2xkZXJzLmhwcD4KKworI2VuZGlmCisKKyNpZmRlZiBCT09TVF9NU1ZDCisjIHByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6IDQ1MTIpIC8vIGFzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZAorIyBwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfQklORF9CSU5EX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmRfY2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmRfY2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZjhlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvYmluZF9jYy5ocHAKQEAgLTAsMCArMSwxMTcgQEAKKy8vCisvLyAgYmluZC9iaW5kX2NjLmhwcCAtIHN1cHBvcnQgZm9yIGRpZmZlcmVudCBjYWxsaW5nIGNvbnZlbnRpb25zCisvLworLy8gIERvIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGRpcmVjdGx5LgorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2JpbmQvYmluZC5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKwordGVtcGxhdGU8Y2xhc3MgUj4KKyAgICBfYmk6OmJpbmRfdDxSLCBCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKikgKCksIF9iaTo6bGlzdDA+CisgICAgQk9PU1RfQklORChCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKmYpICgpKQoreworICAgIHR5cGVkZWYgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICpGKSAoKTsKKyAgICB0eXBlZGVmIF9iaTo6bGlzdDAgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+IChmLCBsaXN0X3R5cGUoKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEIxLCBjbGFzcyBBMT4KKyAgICBfYmk6OmJpbmRfdDxSLCBCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKikgKEIxKSwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzE8QTE+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICpmKSAoQjEpLCBBMSBhMSkKK3sKKyAgICB0eXBlZGVmIEJPT1NUX0JJTkRfU1QgUiAoQk9PU1RfQklORF9DQyAqRikgKEIxKTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4gKGYsIGxpc3RfdHlwZShhMSkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgICBfYmk6OmJpbmRfdDxSLCBCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKikgKEIxLCBCMiksIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8yPEExLCBBMj46OnR5cGU+CisgICAgQk9PU1RfQklORChCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKmYpIChCMSwgQjIpLCBBMSBhMSwgQTIgYTIpCit7CisgICAgdHlwZWRlZiBCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKkYpIChCMSwgQjIpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzI8QTEsIEEyPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4gKGYsIGxpc3RfdHlwZShhMSwgYTIpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzKSwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGU+CisgICAgQk9PU1RfQklORChCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKmYpIChCMSwgQjIsIEIzKSwgQTEgYTEsIEEyIGEyLCBBMyBhMykKK3sKKyAgICB0eXBlZGVmIEJPT1NUX0JJTkRfU1QgUiAoQk9PU1RfQklORF9DQyAqRikgKEIxLCBCMiwgQjMpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzLCBCNCksIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEJPT1NUX0JJTkRfU1QgUiAoQk9PU1RfQklORF9DQyAqZikgKEIxLCBCMiwgQjMsIEI0KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpCit7CisgICAgdHlwZWRlZiBCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKkYpIChCMSwgQjIsIEIzLCBCNCk7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNDxBMSwgQTIsIEEzLCBBND46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzLCBCNCwgQjUpLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICpmKSAoQjEsIEIyLCBCMywgQjQsIEI1KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1KQoreworICAgIHR5cGVkZWYgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICpGKSAoQjEsIEIyLCBCMywgQjQsIEI1KTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl81PEExLCBBMiwgQTMsIEE0LCBBNT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2KSwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGU+CisgICAgQk9PU1RfQklORChCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKmYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNikKK3sKKyAgICB0eXBlZGVmIEJPT1NUX0JJTkRfU1QgUiAoQk9PU1RfQklORF9DQyAqRikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwgY2xhc3MgQjcsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNyksIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKEJPT1NUX0JJTkRfU1QgUiAoQk9PU1RfQklORF9DQyAqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcpCit7CisgICAgdHlwZWRlZiBCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKkYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNyk7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3LCBjbGFzcyBCOCwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjgpLCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICpmKSAoQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4KQoreworICAgIHR5cGVkZWYgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICpGKSAoQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4KTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl84PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LCBjbGFzcyBCNywgY2xhc3MgQjgsIGNsYXNzIEI5LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CisgICAgX2JpOjpiaW5kX3Q8UiwgQk9PU1RfQklORF9TVCBSIChCT09TVF9CSU5EX0NDICopIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjgsIEI5KSwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGU+CisgICAgQk9PU1RfQklORChCT09TVF9CSU5EX1NUIFIgKEJPT1NUX0JJTkRfQ0MgKmYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjgsIEI5KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4LCBBOSBhOSkKK3sKKyAgICB0eXBlZGVmIEJPT1NUX0JJTkRfU1QgUiAoQk9PU1RfQklORF9DQyAqRikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3LCBCOCwgQjkpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KGYsIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSk7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2JpbmQvYmluZF9tZjJfY2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmRfbWYyX2NjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmI4YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmRfbWYyX2NjLmhwcApAQCAtMCwwICsxLDIyOCBAQAorLy8KKy8vICBiaW5kL2JpbmRfbWYyX2NjLmhwcCAtIG1lbWJlciBmdW5jdGlvbnMsIHR5cGU8PiBzeW50YXgKKy8vCisvLyAgRG8gbm90IGluY2x1ZGUgdGhpcyBoZWFkZXIgZGlyZWN0bHkuCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAoYykgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2JpbmQvYmluZC5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworLy8gMAorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQTE+CisgICAgX2JpOjpiaW5kX3Q8UnQyLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWYwKTxSLCBUPiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzE8QTE+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKCksIEExIGExKQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMCk8UiwgVD4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFJ0MiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEExPgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjApPFIsIFQ+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSdDI+LCBSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoKSBjb25zdCwgQTEgYTEpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMCk8UiwgVD4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFJ0MiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEpKTsKK30KKworLy8gMQorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyPgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMSk8UiwgVCwgQjE+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxKSwgQTEgYTEsIEEyIGEyKQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMSk8UiwgVCwgQjE+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UnQyLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLAorICAgIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgICBfYmk6OmJpbmRfdDxSdDIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShjbWYxKTxSLCBULCBCMT4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8yPEExLCBBMj46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSdDI+LCBSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEpIGNvbnN0LCBBMSBhMSwgQTIgYTIpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMSk8UiwgVCwgQjE+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UnQyLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIpKTsKK30KKworLy8gMgorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgICAgX2JpOjpiaW5kX3Q8UnQyLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWYyKTxSLCBULCBCMSwgQjI+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMzxBMSwgQTIsIEEzPjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFJ0Mj4sIFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIpLCBBMSBhMSwgQTIgYTIsIEEzIGEzKQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMik8UiwgVCwgQjEsIEIyPiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSdDIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjIpPFIsIFQsIEIxLCBCMj4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8zPEExLCBBMiwgQTM+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMikgY29uc3QsIEExIGExLCBBMiBhMiwgQTMgYTMpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMik8UiwgVCwgQjEsIEIyPiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSdDIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMpKTsKK30KKworLy8gMworCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4KKyAgICBfYmk6OmJpbmRfdDxSdDIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShtZjMpPFIsIFQsIEIxLCBCMiwgQjM+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNDxBMSwgQTIsIEEzLCBBND46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSdDI+LCBSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMyksIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMyk8UiwgVCwgQjEsIEIyLCBCMz4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFJ0MiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgICAgX2JpOjpiaW5kX3Q8UnQyLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMyk8UiwgVCwgQjEsIEIyLCBCMz4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFJ0Mj4sIFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzKSBjb25zdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMyk8UiwgVCwgQjEsIEIyLCBCMz4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFJ0MiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQpKTsKK30KKworLy8gNAorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNCk8UiwgVCwgQjEsIEIyLCBCMywgQjQ+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNCk8UiwgVCwgQjEsIEIyLCBCMywgQjQ+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UnQyLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4KKyAgICBfYmk6OmJpbmRfdDxSdDIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShjbWY0KTxSLCBULCBCMSwgQjIsIEIzLCBCND4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl81PEExLCBBMiwgQTMsIEE0LCBBNT46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSdDI+LCBSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMywgQjQpIGNvbnN0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNCk8UiwgVCwgQjEsIEIyLCBCMywgQjQ+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UnQyLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUpKTsKK30KKworLy8gNQorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+CisgICAgX2JpOjpiaW5kX3Q8UnQyLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWY1KTxSLCBULCBCMSwgQjIsIEIzLCBCNCwgQjU+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNjxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFJ0Mj4sIFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzLCBCNCwgQjUpLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNSk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSdDIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjUpPFIsIFQsIEIxLCBCMiwgQjMsIEI0LCBCNT4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl82PEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSkgY29uc3QsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNSk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSdDIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpKTsKK30KKworLy8gNgorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4KKyAgICBfYmk6OmJpbmRfdDxSdDIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShtZjYpPFIsIFQsIEIxLCBCMiwgQjMsIEI0LCBCNSwgQjY+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSdDI+LCBSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMywgQjQsIEI1LCBCNiksIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNik8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNj4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFJ0MiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CisgICAgX2JpOjpiaW5kX3Q8UnQyLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNik8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNj4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFJ0Mj4sIFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2KSBjb25zdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNik8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNj4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFJ0MiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpKTsKK30KKworLy8gNworCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwgY2xhc3MgQjcsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNyk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNyk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UnQyLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4KKyAgICBfYmk6OmJpbmRfdDxSdDIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShjbWY3KTxSLCBULCBCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNz4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl84PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD46OnR5cGU+CisgICAgQk9PU1RfQklORChuZG5ib29zdDo6dHlwZTxSdDI+LCBSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcpIGNvbnN0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNyk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UnQyLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpKTsKK30KKworLy8gOAorCit0ZW1wbGF0ZTxjbGFzcyBSdDIsIGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwgY2xhc3MgQjcsIGNsYXNzIEI4LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CisgICAgX2JpOjpiaW5kX3Q8UnQyLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWY4KTxSLCBULCBCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjg+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfOTxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKG5kbmJvb3N0Ojp0eXBlPFJ0Mj4sIFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjgpLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgsIEE5IGE5KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mOCk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSdDIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUnQyLCBjbGFzcyBSLCBjbGFzcyBULAorICAgIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3LCBjbGFzcyBCOCwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PgorICAgIF9iaTo6YmluZF90PFJ0MiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjgpPFIsIFQsIEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3LCBCOD4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl85PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgQTk+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQobmRuYm9vc3Q6OnR5cGU8UnQyPiwgUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3LCBCOCkgY29uc3QsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCwgQTkgYTkpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mOCk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSdDIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpKTsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9iaW5kX21mX2NjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9iaW5kX21mX2NjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGJlODIyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL2JpbmRfbWZfY2MuaHBwCkBAIC0wLDAgKzEsMjI3IEBACisvLworLy8gIGJpbmQvYmluZF9tZl9jYy5ocHAgLSBzdXBwb3J0IGZvciBkaWZmZXJlbnQgY2FsbGluZyBjb252ZW50aW9ucworLy8KKy8vICBEbyBub3QgaW5jbHVkZSB0aGlzIGhlYWRlciBkaXJlY3RseS4KKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9iaW5kL2JpbmQuaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKy8vIDAKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBBMT4KKyAgICBfYmk6OmJpbmRfdDxSLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWYwKTxSLCBUPiwgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzE8QTE+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKCksIEExIGExKQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMCk8UiwgVD4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQTE+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjApPFIsIFQ+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMTxBMT46OnR5cGU+CisgICAgQk9PU1RfQklORChSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoKSBjb25zdCwgQTEgYTEpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMCk8UiwgVD4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8xPEExPjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExKSk7Cit9CisKKy8vIDEKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTI+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMSk8UiwgVCwgQjE+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxKSwgQTEgYTEsIEEyIGEyKQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMSk8UiwgVCwgQjE+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyPgorICAgIF9iaTo6YmluZF90PFIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShjbWYxKTxSLCBULCBCMT4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8yPEExLCBBMj46OnR5cGU+CisgICAgQk9PU1RfQklORChSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEpIGNvbnN0LCBBMSBhMSwgQTIgYTIpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMSk8UiwgVCwgQjE+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMjxBMSwgQTI+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyKSk7Cit9CisKKy8vIDIKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KKyAgICBfYmk6OmJpbmRfdDxSLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWYyKTxSLCBULCBCMSwgQjI+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfMzxBMSwgQTIsIEEzPjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIpLCBBMSBhMSwgQTIgYTIsIEEzIGEzKQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMik8UiwgVCwgQjEsIEIyPiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjIpPFIsIFQsIEIxLCBCMj4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl8zPEExLCBBMiwgQTM+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMikgY29uc3QsIEExIGExLCBBMiBhMiwgQTMgYTMpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMik8UiwgVCwgQjEsIEIyPiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzM8QTEsIEEyLCBBMz46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzKSk7Cit9CisKKy8vIDMKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PgorICAgIF9iaTo6YmluZF90PFIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShtZjMpPFIsIFQsIEIxLCBCMiwgQjM+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNDxBMSwgQTIsIEEzLCBBND46OnR5cGU+CisgICAgQk9PU1RfQklORChSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMyksIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mMyk8UiwgVCwgQjEsIEIyLCBCMz4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4KKyAgICBfYmk6OmJpbmRfdDxSLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMyk8UiwgVCwgQjEsIEIyLCBCMz4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzKSBjb25zdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mMyk8UiwgVCwgQjEsIEIyLCBCMz4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl80PEExLCBBMiwgQTMsIEE0Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0KSk7Cit9CisKKy8vIDQKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNCk8UiwgVCwgQjEsIEIyLCBCMywgQjQ+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNCk8UiwgVCwgQjEsIEIyLCBCMywgQjQ+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICAgIF9iaTo6YmluZF90PFIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShjbWY0KTxSLCBULCBCMSwgQjIsIEIzLCBCND4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl81PEExLCBBMiwgQTMsIEE0LCBBNT46OnR5cGU+CisgICAgQk9PU1RfQklORChSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMywgQjQpIGNvbnN0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNCk8UiwgVCwgQjEsIEIyLCBCMywgQjQ+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNTxBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1KSk7Cit9CisKKy8vIDUKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4KKyAgICBfYmk6OmJpbmRfdDxSLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWY1KTxSLCBULCBCMSwgQjIsIEIzLCBCNCwgQjU+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNjxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzLCBCNCwgQjUpLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNSk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjUpPFIsIFQsIEIxLCBCMiwgQjMsIEI0LCBCNT4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl82PEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSkgY29uc3QsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNSk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2XzY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSk7Cit9CisKKy8vIDYKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PgorICAgIF9iaTo6YmluZF90PFIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShtZjYpPFIsIFQsIEIxLCBCMiwgQjMsIEI0LCBCNSwgQjY+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGU+CisgICAgQk9PU1RfQklORChSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMywgQjQsIEI1LCBCNiksIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNik8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNj4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4KKyAgICBfYmk6OmJpbmRfdDxSLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNik8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNj4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2KSBjb25zdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNik8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNj4gRjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl83PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3Pjo6dHlwZSBsaXN0X3R5cGU7CisgICAgcmV0dXJuIF9iaTo6YmluZF90PFIsIEYsIGxpc3RfdHlwZT4oRihmKSwgbGlzdF90eXBlKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSk7Cit9CisKKy8vIDcKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LCBjbGFzcyBCNywKKyAgICBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNyk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3KSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mNyk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwgY2xhc3MgQjcsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PgorICAgIF9iaTo6YmluZF90PFIsIF9tZmk6OkJPT1NUX0JJTkRfTUZfTkFNRShjbWY3KTxSLCBULCBCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNz4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl84PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD46OnR5cGU+CisgICAgQk9PU1RfQklORChSIChCT09TVF9CSU5EX01GX0NDIFQ6OipmKSAoQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcpIGNvbnN0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mNyk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjc+IEY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfODxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIGxpc3RfdHlwZTsKKyAgICByZXR1cm4gX2JpOjpiaW5kX3Q8UiwgRiwgbGlzdF90eXBlPihGKGYpLCBsaXN0X3R5cGUoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSk7Cit9CisKKy8vIDgKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwKKyAgICBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LCBjbGFzcyBCNywgY2xhc3MgQjgsCisgICAgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4KKyAgICBfYmk6OmJpbmRfdDxSLCBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUobWY4KTxSLCBULCBCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjg+LCB0eXBlbmFtZSBfYmk6Omxpc3RfYXZfOTxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5Pjo6dHlwZT4KKyAgICBCT09TVF9CSU5EKFIgKEJPT1NUX0JJTkRfTUZfQ0MgVDo6KmYpIChCMSwgQjIsIEIzLCBCNCwgQjUsIEI2LCBCNywgQjgpLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgsIEE5IGE5KQoreworICAgIHR5cGVkZWYgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKG1mOCk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsCisgICAgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwgY2xhc3MgQjcsIGNsYXNzIEI4LAorICAgIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CisgICAgX2JpOjpiaW5kX3Q8UiwgX21maTo6Qk9PU1RfQklORF9NRl9OQU1FKGNtZjgpPFIsIFQsIEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3LCBCOD4sIHR5cGVuYW1lIF9iaTo6bGlzdF9hdl85PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgQTk+Ojp0eXBlPgorICAgIEJPT1NUX0JJTkQoUiAoQk9PU1RfQklORF9NRl9DQyBUOjoqZikgKEIxLCBCMiwgQjMsIEI0LCBCNSwgQjYsIEI3LCBCOCkgY29uc3QsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCwgQTkgYTkpCit7CisgICAgdHlwZWRlZiBfbWZpOjpCT09TVF9CSU5EX01GX05BTUUoY21mOCk8UiwgVCwgQjEsIEIyLCBCMywgQjQsIEI1LCBCNiwgQjcsIEI4PiBGOworICAgIHR5cGVkZWYgdHlwZW5hbWUgX2JpOjpsaXN0X2F2Xzk8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOT46OnR5cGUgbGlzdF90eXBlOworICAgIHJldHVybiBfYmk6OmJpbmRfdDxSLCBGLCBsaXN0X3R5cGU+KEYoZiksIGxpc3RfdHlwZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSk7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2JpbmQvYmluZF90ZW1wbGF0ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvYmluZF90ZW1wbGF0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk0NmFhOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9iaW5kX3RlbXBsYXRlLmhwcApAQCAtMCwwICsxLDM0NSBAQAorLy8KKy8vICBiaW5kL2JpbmRfdGVtcGxhdGUuaHBwCisvLworLy8gIERvIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGRpcmVjdGx5LgorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvYmluZC9iaW5kLmh0bWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXN1bHRfdHJhaXRzPFIsIEY+Ojp0eXBlIHJlc3VsdF90eXBlOworCisgICAgcmVzdWx0X3R5cGUgb3BlcmF0b3IoKSgpCisgICAgeworICAgICAgICBsaXN0MCBhOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgcmVzdWx0X3R5cGUgb3BlcmF0b3IoKSgpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0MCBhOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSkKKyAgICB7CisgICAgICAgIGxpc3QxPEExICY+IGEoYTEpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSkgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3QxPEExICY+IGEoYTEpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKworICAgIHRlbXBsYXRlPGNsYXNzIEExPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEpCisgICAgeworICAgICAgICBsaXN0MTxBMSBjb25zdCAmPiBhKGExKTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0MTxBMSBjb25zdCAmPiBhKGExKTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTI+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMikKKyAgICB7CisgICAgICAgIGxpc3QyPEExICYsIEEyICY+IGEoYTEsIGEyKTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyKSBjb25zdAorICAgIHsKKyAgICAgICAgbGlzdDI8QTEgJiwgQTIgJj4gYShhMSwgYTIpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiAmIGEyKQorICAgIHsKKyAgICAgICAgbGlzdDI8QTEgY29uc3QgJiwgQTIgJj4gYShhMSwgYTIpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyICYgYTIpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0MjxBMSBjb25zdCAmLCBBMiAmPiBhKGExLCBhMik7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiBjb25zdCAmIGEyKQorICAgIHsKKyAgICAgICAgbGlzdDI8QTEgJiwgQTIgY29uc3QgJj4gYShhMSwgYTIpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyIGNvbnN0ICYgYTIpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0MjxBMSAmLCBBMiBjb25zdCAmPiBhKGExLCBhMik7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyKQorICAgIHsKKyAgICAgICAgbGlzdDI8QTEgY29uc3QgJiwgQTIgY29uc3QgJj4gYShhMSwgYTIpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0MjxBMSBjb25zdCAmLCBBMiBjb25zdCAmPiBhKGExLCBhMik7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzKQorICAgIHsKKyAgICAgICAgbGlzdDM8QTEgJiwgQTIgJiwgQTMgJj4gYShhMSwgYTIsIGEzKTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMykgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3QzPEExICYsIEEyICYsIEEzICY+IGEoYTEsIGEyLCBhMyk7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzKQorICAgIHsKKyAgICAgICAgbGlzdDM8QTEgY29uc3QgJiwgQTIgY29uc3QgJiwgQTMgY29uc3QgJj4gYShhMSwgYTIsIGEzKTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMykgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3QzPEExIGNvbnN0ICYsIEEyIGNvbnN0ICYsIEEzIGNvbnN0ICY+IGEoYTEsIGEyLCBhMyk7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCkKKyAgICB7CisgICAgICAgIGxpc3Q0PEExICYsIEEyICYsIEEzICYsIEE0ICY+IGEoYTEsIGEyLCBhMywgYTQpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCkgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3Q0PEExICYsIEEyICYsIEEzICYsIEE0ICY+IGEoYTEsIGEyLCBhMywgYTQpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQpCisgICAgeworICAgICAgICBsaXN0NDxBMSBjb25zdCAmLCBBMiBjb25zdCAmLCBBMyBjb25zdCAmLCBBNCBjb25zdCAmPiBhKGExLCBhMiwgYTMsIGE0KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0NDxBMSBjb25zdCAmLCBBMiBjb25zdCAmLCBBMyBjb25zdCAmLCBBNCBjb25zdCAmPiBhKGExLCBhMiwgYTMsIGE0KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSkKKyAgICB7CisgICAgICAgIGxpc3Q1PEExICYsIEEyICYsIEEzICYsIEE0ICYsIEE1ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1KSBjb25zdAorICAgIHsKKyAgICAgICAgbGlzdDU8QTEgJiwgQTIgJiwgQTMgJiwgQTQgJiwgQTUgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1KQorICAgIHsKKyAgICAgICAgbGlzdDU8QTEgY29uc3QgJiwgQTIgY29uc3QgJiwgQTMgY29uc3QgJiwgQTQgY29uc3QgJiwgQTUgY29uc3QgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0NTxBMSBjb25zdCAmLCBBMiBjb25zdCAmLCBBMyBjb25zdCAmLCBBNCBjb25zdCAmLCBBNSBjb25zdCAmPiBhKGExLCBhMiwgYTMsIGE0LCBhNSk7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2KQorICAgIHsKKyAgICAgICAgbGlzdDY8QTEgJiwgQTIgJiwgQTMgJiwgQTQgJiwgQTUgJiwgQTYgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNikgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3Q2PEExICYsIEEyICYsIEEzICYsIEE0ICYsIEE1ICYsIEE2ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2KQorICAgIHsKKyAgICAgICAgbGlzdDY8QTEgY29uc3QgJiwgQTIgY29uc3QgJiwgQTMgY29uc3QgJiwgQTQgY29uc3QgJiwgQTUgY29uc3QgJiwgQTYgY29uc3QgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNikgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3Q2PEExIGNvbnN0ICYsIEEyIGNvbnN0ICYsIEEzIGNvbnN0ICYsIEE0IGNvbnN0ICYsIEE1IGNvbnN0ICYsIEE2IGNvbnN0ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNykKKyAgICB7CisgICAgICAgIGxpc3Q3PEExICYsIEEyICYsIEEzICYsIEE0ICYsIEE1ICYsIEE2ICYsIEE3ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNykgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3Q3PEExICYsIEEyICYsIEEzICYsIEE0ICYsIEE1ICYsIEE2ICYsIEE3ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcpCisgICAgeworICAgICAgICBsaXN0NzxBMSBjb25zdCAmLCBBMiBjb25zdCAmLCBBMyBjb25zdCAmLCBBNCBjb25zdCAmLCBBNSBjb25zdCAmLCBBNiBjb25zdCAmLCBBNyBjb25zdCAmPiBhKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0NzxBMSBjb25zdCAmLCBBMiBjb25zdCAmLCBBMyBjb25zdCAmLCBBNCBjb25zdCAmLCBBNSBjb25zdCAmLCBBNiBjb25zdCAmLCBBNyBjb25zdCAmPiBhKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNywgQTggJiBhOCkKKyAgICB7CisgICAgICAgIGxpc3Q4PEExICYsIEEyICYsIEEzICYsIEE0ICYsIEE1ICYsIEE2ICYsIEE3ICYsIEE4ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2LCBBNyAmIGE3LCBBOCAmIGE4KSBjb25zdAorICAgIHsKKyAgICAgICAgbGlzdDg8QTEgJiwgQTIgJiwgQTMgJiwgQTQgJiwgQTUgJiwgQTYgJiwgQTcgJiwgQTggJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcpIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3LCBBOCBjb25zdCAmIGE4KQorICAgIHsKKyAgICAgICAgbGlzdDg8QTEgY29uc3QgJiwgQTIgY29uc3QgJiwgQTMgY29uc3QgJiwgQTQgY29uc3QgJiwgQTUgY29uc3QgJiwgQTYgY29uc3QgJiwgQTcgY29uc3QgJiwgQTggY29uc3QgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICAgICAgICBCT09TVF9CSU5EX1JFVFVSTiBsXyh0eXBlPHJlc3VsdF90eXBlPigpLCBmXywgYSwgMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcsIEE4IGNvbnN0ICYgYTgpIGNvbnN0CisgICAgeworICAgICAgICBsaXN0ODxBMSBjb25zdCAmLCBBMiBjb25zdCAmLCBBMyBjb25zdCAmLCBBNCBjb25zdCAmLCBBNSBjb25zdCAmLCBBNiBjb25zdCAmLCBBNyBjb25zdCAmLCBBOCBjb25zdCAmPiBhKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCk7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2LCBBNyAmIGE3LCBBOCAmIGE4LCBBOSAmIGE5KQorICAgIHsKKyAgICAgICAgbGlzdDk8QTEgJiwgQTIgJiwgQTMgJiwgQTQgJiwgQTUgJiwgQTYgJiwgQTcgJiwgQTggJiwgQTkgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNywgQTggJiBhOCwgQTkgJiBhOSkgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3Q5PEExICYsIEEyICYsIEEzICYsIEE0ICYsIEE1ICYsIEE2ICYsIEE3ICYsIEE4ICYsIEE5ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSk7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3LCBBOCBjb25zdCAmIGE4LCBBOSBjb25zdCAmIGE5KQorICAgIHsKKyAgICAgICAgbGlzdDk8QTEgY29uc3QgJiwgQTIgY29uc3QgJiwgQTMgY29uc3QgJiwgQTQgY29uc3QgJiwgQTUgY29uc3QgJiwgQTYgY29uc3QgJiwgQTcgY29uc3QgJiwgQTggY29uc3QgJiwgQTkgY29uc3QgJj4gYShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KTsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNiwgQTcgY29uc3QgJiBhNywgQTggY29uc3QgJiBhOCwgQTkgY29uc3QgJiBhOSkgY29uc3QKKyAgICB7CisgICAgICAgIGxpc3Q5PEExIGNvbnN0ICYsIEEyIGNvbnN0ICYsIEEzIGNvbnN0ICYsIEE0IGNvbnN0ICYsIEE1IGNvbnN0ICYsIEE2IGNvbnN0ICYsIEE3IGNvbnN0ICYsIEE4IGNvbnN0ICYsIEE5IGNvbnN0ICY+IGEoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSk7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQT4gcmVzdWx0X3R5cGUgZXZhbChBICYgYSkKKyAgICB7CisgICAgICAgIEJPT1NUX0JJTkRfUkVUVVJOIGxfKHR5cGU8cmVzdWx0X3R5cGU+KCksIGZfLCBhLCAwKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBPiByZXN1bHRfdHlwZSBldmFsKEEgJiBhKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfQklORF9SRVRVUk4gbF8odHlwZTxyZXN1bHRfdHlwZT4oKSwgZl8sIGEsIDApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQVJHVU1FTlRfREVQRU5ERU5UX0xPT0tVUCApICYmICFkZWZpbmVkKCBfX0JPUkxBTkRDX18gKQorCisgICAgICAgIHVzaW5nIG5kbmJvb3N0Ojp2aXNpdF9lYWNoOworCisjZW5kaWYKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGZfLCAwKTsKKyAgICAgICAgbF8uYWNjZXB0KHYpOworICAgIH0KKworICAgIGJvb2wgY29tcGFyZSh0aGlzX3R5cGUgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gcmVmX2NvbXBhcmUoZl8sIHJocy5mXywgMCkgJiYgbF8gPT0gcmhzLmxfOworICAgIH0KKworcHJpdmF0ZToKKworICAgIEYgZl87CisgICAgTCBsXzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9tYWtlX2FkYXB0YWJsZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvbWFrZV9hZGFwdGFibGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NzQyZjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvbWFrZV9hZGFwdGFibGUuaHBwCkBAIC0wLDAgKzEsMTg3IEBACisjaWZuZGVmIEJPT1NUX0JJTkRfTUFLRV9BREFQVEFCTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0JJTkRfTUFLRV9BREFQVEFCTEVfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgbWFrZV9hZGFwdGFibGUuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMiBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgX2JpCit7CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEY+IGNsYXNzIGFmMAoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworCisgICAgZXhwbGljaXQgYWYwKEYgZik6IGZfKGYpCisgICAgeworICAgIH0KKworICAgIHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKCk7CisgICAgfQorCisgICAgcmVzdWx0X3R5cGUgb3BlcmF0b3IoKSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8oKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBGIGZfOworfTsKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgQTEsIGNsYXNzIEY+IGNsYXNzIGFmMQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgQTEgYXJndW1lbnRfdHlwZTsKKyAgICB0eXBlZGVmIEExIGFyZzFfdHlwZTsKKworICAgIGV4cGxpY2l0IGFmMShGIGYpOiBmXyhmKQorICAgIHsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGExKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExKTsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGExKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBGIGZfOworfTsKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBGPiBjbGFzcyBhZjIKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgICB0eXBlZGVmIEExIGZpcnN0X2FyZ3VtZW50X3R5cGU7CisgICAgdHlwZWRlZiBBMiBzZWNvbmRfYXJndW1lbnRfdHlwZTsKKyAgICB0eXBlZGVmIEExIGFyZzFfdHlwZTsKKyAgICB0eXBlZGVmIEEyIGFyZzJfdHlwZTsKKworICAgIGV4cGxpY2l0IGFmMihGIGYpOiBmXyhmKQorICAgIHsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGExLCBBMiBhMikKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIpOworICAgIH0KKworICAgIHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgYTEsIEEyIGEyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMik7CisgICAgfQorCitwcml2YXRlOgorCisgICAgRiBmXzsKK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEY+IGNsYXNzIGFmMworeworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgQTEgYXJnMV90eXBlOworICAgIHR5cGVkZWYgQTIgYXJnMl90eXBlOworICAgIHR5cGVkZWYgQTMgYXJnM190eXBlOworCisgICAgZXhwbGljaXQgYWYzKEYgZik6IGZfKGYpCisgICAgeworICAgIH0KKworICAgIHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgYTEsIEEyIGEyLCBBMyBhMykKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzKTsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGExLCBBMiBhMiwgQTMgYTMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMyk7CisgICAgfQorCitwcml2YXRlOgorCisgICAgRiBmXzsKK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBGPiBjbGFzcyBhZjQKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgICB0eXBlZGVmIEExIGFyZzFfdHlwZTsKKyAgICB0eXBlZGVmIEEyIGFyZzJfdHlwZTsKKyAgICB0eXBlZGVmIEEzIGFyZzNfdHlwZTsKKyAgICB0eXBlZGVmIEE0IGFyZzRfdHlwZTsKKworICAgIGV4cGxpY2l0IGFmNChGIGYpOiBmXyhmKQorICAgIHsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0KTsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0KTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBGIGZfOworfTsKKworfSAvLyBuYW1lc3BhY2UgX2JpCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEY+IF9iaTo6YWYwPFIsIEY+IG1ha2VfYWRhcHRhYmxlKEYgZikKK3sKKyAgICByZXR1cm4gX2JpOjphZjA8UiwgRj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBGPiBfYmk6OmFmMTxSLCBBMSwgRj4gbWFrZV9hZGFwdGFibGUoRiBmKQoreworICAgIHJldHVybiBfYmk6OmFmMTxSLCBBMSwgRj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgRj4gX2JpOjphZjI8UiwgQTEsIEEyLCBGPiBtYWtlX2FkYXB0YWJsZShGIGYpCit7CisgICAgcmV0dXJuIF9iaTo6YWYyPFIsIEExLCBBMiwgRj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEY+IF9iaTo6YWYzPFIsIEExLCBBMiwgQTMsIEY+IG1ha2VfYWRhcHRhYmxlKEYgZikKK3sKKyAgICByZXR1cm4gX2JpOjphZjM8UiwgQTEsIEEyLCBBMywgRj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBGPiBfYmk6OmFmNDxSLCBBMSwgQTIsIEEzLCBBNCwgRj4gbWFrZV9hZGFwdGFibGUoRiBmKQoreworICAgIHJldHVybiBfYmk6OmFmNDxSLCBBMSwgQTIsIEEzLCBBNCwgRj4oZik7Cit9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0JJTkRfTUFLRV9BREFQVEFCTEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2JpbmQvbWVtX2ZuLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9tZW1fZm4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMDdkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvbWVtX2ZuLmhwcApAQCAtMCwwICsxLDM4OSBAQAorI2lmbmRlZiBCT09TVF9CSU5EX01FTV9GTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfQklORF9NRU1fRk5fSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIG1lbV9mbi5ocHAgLSBhIGdlbmVyYWxpemF0aW9uIG9mIHN0ZDo6bWVtX2Z1bltfcmVmXQorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEgRGF2aWQgQWJyYWhhbXMKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvYmluZC9tZW1fZm4uaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2dldF9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisjaWYgZGVmaW5lZChCT09TVF9OT19WT0lEX1JFVFVSTlMpCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NMQVNTX0YgLCBjbGFzcyBGCisjZGVmaW5lIEJPT1NUX01FTV9GTl9UWVBFREVGKFgpCisKK25hbWVzcGFjZSBfbWZpIC8vIG1lbV9mdW5faW1wbAoreworCit0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3QgbWYKK3sKKworI2RlZmluZSBCT09TVF9NRU1fRk5fUkVUVVJOIHJldHVybgorCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FKFgpIGlubmVyXyMjWAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX3RlbXBsYXRlLmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9DQworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NERUNMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgaW5uZXJfIyNYIyNfY2RlY2wKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NDIF9fY2RlY2wKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX3RlbXBsYXRlLmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9DQworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9TVERDQUxMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgaW5uZXJfIyNYIyNfc3RkY2FsbAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MgX19zdGRjYWxsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfRkFTVENBTEwKKworI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRShYKSBpbm5lcl8jI1gjI19mYXN0Y2FsbAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MgX19mYXN0Y2FsbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9tZW1fZm5fdGVtcGxhdGUuaHBwPgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX0NDCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUKKworI2VuZGlmCisKKyN1bmRlZiBCT09TVF9NRU1fRk5fUkVUVVJOCisKK307IC8vIHN0cnVjdCBtZjxWPgorCit0ZW1wbGF0ZTw+IHN0cnVjdCBtZjx2b2lkPgoreworCisjZGVmaW5lIEJPT1NUX01FTV9GTl9SRVRVUk4KKworI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRShYKSBpbm5lcl8jI1gKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NDCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9DREVDTAorCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FKFgpIGlubmVyXyMjWCMjX2NkZWNsCisjZGVmaW5lIEJPT1NUX01FTV9GTl9DQyBfX2NkZWNsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfU1REQ0FMTAorCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FKFgpIGlubmVyXyMjWCMjX3N0ZGNhbGwKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NDIF9fc3RkY2FsbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9tZW1fZm5fdGVtcGxhdGUuaHBwPgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX0NDCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUKKworI2VuZGlmCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0ZBU1RDQUxMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgaW5uZXJfIyNYIyNfZmFzdGNhbGwKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NDIF9fZmFzdGNhbGwKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX3RlbXBsYXRlLmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9DQworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisKKyNlbmRpZgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX1JFVFVSTgorCit9OyAvLyBzdHJ1Y3QgbWY8dm9pZD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9DTEFTU19GCisjdW5kZWYgQk9PU1RfTUVNX0ZOX1RZUEVERUZfRgorCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FKFgpIFgKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUyKFgpIGlubmVyXyMjWAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX3Z3LmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUyCisjdW5kZWYgQk9PU1RfTUVNX0ZOX0NDCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NERUNMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgWCMjX2NkZWNsCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FMihYKSBpbm5lcl8jI1gjI19jZGVjbAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MgX19jZGVjbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9tZW1fZm5fdncuaHBwPgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRTIKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKworI2VuZGlmCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX1NURENBTEwKKworI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRShYKSBYIyNfc3RkY2FsbAorI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRTIoWCkgaW5uZXJfIyNYIyNfc3RkY2FsbAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MgX19zdGRjYWxsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl92dy5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FMgorI3VuZGVmIEJPT1NUX01FTV9GTl9DQworCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfRkFTVENBTEwKKworI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRShYKSBYIyNfZmFzdGNhbGwKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUyKFgpIGlubmVyXyMjWCMjX2Zhc3RjYWxsCisjZGVmaW5lIEJPT1NUX01FTV9GTl9DQyBfX2Zhc3RjYWxsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl92dy5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FMgorI3VuZGVmIEJPT1NUX01FTV9GTl9DQworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgX21maQorCisjZWxzZSAvLyAjaWZkZWYgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NMQVNTX0YKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX1RZUEVERUYoWCkgdHlwZWRlZiBYOworCituYW1lc3BhY2UgX21maQoreworCisjZGVmaW5lIEJPT1NUX01FTV9GTl9SRVRVUk4gcmV0dXJuCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgWAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX3RlbXBsYXRlLmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9DQworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NERUNMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgWCMjX2NkZWNsCisjZGVmaW5lIEJPT1NUX01FTV9GTl9DQyBfX2NkZWNsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfU1REQ0FMTAorCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FKFgpIFgjI19zdGRjYWxsCisjZGVmaW5lIEJPT1NUX01FTV9GTl9DQyBfX3N0ZGNhbGwKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX3RlbXBsYXRlLmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9DQworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9GQVNUQ0FMTAorCisjZGVmaW5lIEJPT1NUX01FTV9GTl9OQU1FKFgpIFgjI19mYXN0Y2FsbAorI2RlZmluZSBCT09TVF9NRU1fRk5fQ0MgX19mYXN0Y2FsbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9tZW1fZm5fdGVtcGxhdGUuaHBwPgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX0NDCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUKKworI2VuZGlmCisKKyN1bmRlZiBCT09TVF9NRU1fRk5fUkVUVVJOCisKK30gLy8gbmFtZXNwYWNlIF9tZmkKKworI3VuZGVmIEJPT1NUX01FTV9GTl9DTEFTU19GCisjdW5kZWYgQk9PU1RfTUVNX0ZOX1RZUEVERUYKKworI2VuZGlmIC8vICNpZmRlZiBCT09TVF9OT19WT0lEX1JFVFVSTlMKKworI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRShYKSBYCisjZGVmaW5lIEJPT1NUX01FTV9GTl9DQworCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9tZW1fZm5fY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfQ0RFQ0wKKworI2RlZmluZSBCT09TVF9NRU1fRk5fTkFNRShYKSBYIyNfY2RlY2wKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NDIF9fY2RlY2wKKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvbWVtX2ZuX2NjLmhwcD4KKworI3VuZGVmIEJPT1NUX01FTV9GTl9OQU1FCisjdW5kZWYgQk9PU1RfTUVNX0ZOX0NDCisKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9TVERDQUxMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgWCMjX3N0ZGNhbGwKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0NDIF9fc3RkY2FsbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9tZW1fZm5fY2MuaHBwPgorCisjdW5kZWYgQk9PU1RfTUVNX0ZOX05BTUUKKyN1bmRlZiBCT09TVF9NRU1fRk5fQ0MKKworI2VuZGlmCisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0ZBU1RDQUxMCisKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX05BTUUoWCkgWCMjX2Zhc3RjYWxsCisjZGVmaW5lIEJPT1NUX01FTV9GTl9DQyBfX2Zhc3RjYWxsCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbl9jYy5ocHA+CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fTkFNRQorI3VuZGVmIEJPT1NUX01FTV9GTl9DQworCisjZW5kaWYKKworLy8gZGF0YSBtZW1iZXIgc3VwcG9ydAorCituYW1lc3BhY2UgX21maQoreworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBUPiBjbGFzcyBkbQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIGNvbnN0ICYgcmVzdWx0X3R5cGU7CisgICAgdHlwZWRlZiBUIGNvbnN0ICogYXJndW1lbnRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICB0eXBlZGVmIFIgKFQ6OipGKTsKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBjb25zdCAmIGNhbGwoVSAmIHUsIFQgY29uc3QgKikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAodS4qZl8pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgY29uc3QgJiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICopIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKGdldF9wb2ludGVyKHUpLT4qZl8pOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IGRtKEYgZik6IGZfKGYpIHt9CisKKyAgICBSICYgb3BlcmF0b3IoKShUICogcCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAocC0+KmZfKTsKKyAgICB9CisKKyAgICBSIGNvbnN0ICYgb3BlcmF0b3IoKShUIGNvbnN0ICogcCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAocC0+KmZfKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIGNvbnN0ICYgb3BlcmF0b3IoKShVIGNvbnN0ICYgdSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKHUsICZ1KTsKKyAgICB9CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSAmJiAhQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzIwMCkKKworICAgIFIgJiBvcGVyYXRvcigpKFQgJiB0KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICh0LipmXyk7CisgICAgfQorCisgICAgUiBjb25zdCAmIG9wZXJhdG9yKCkoVCBjb25zdCAmIHQpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKHQuKmZfKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgYm9vbCBvcGVyYXRvcj09KGRtIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oZG0gY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIF9tZmkKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVD4gX21maTo6ZG08UiwgVD4gbWVtX2ZuKFIgVDo6KmYpCit7CisgICAgcmV0dXJuIF9tZmk6OmRtPFIsIFQ+KGYpOworfQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9CSU5EX01FTV9GTl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9tZW1fZm5fY2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL21lbV9mbl9jYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI2ZWEwYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9tZW1fZm5fY2MuaHBwCkBAIC0wLDAgKzEsMTAzIEBACisvLworLy8gIGJpbmQvbWVtX2ZuX2NjLmhwcCAtIHN1cHBvcnQgZm9yIGRpZmZlcmVudCBjYWxsaW5nIGNvbnZlbnRpb25zCisvLworLy8gIERvIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGRpcmVjdGx5LgorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2JpbmQvbWVtX2ZuLmh0bWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBUPiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjApPFIsIFQ+IG1lbV9mbihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KmYpICgpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjApPFIsIFQ+KGYpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBUPiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShjbWYwKTxSLCBUPiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoKSBjb25zdCkKK3sKKyAgICByZXR1cm4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mMCk8UiwgVD4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExPiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjEpPFIsIFQsIEExPiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjEpPFIsIFQsIEExPihmKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTE+IF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKGNtZjEpPFIsIFQsIEExPiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEpIGNvbnN0KQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShjbWYxKTxSLCBULCBBMT4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMj4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUobWYyKTxSLCBULCBBMSwgQTI+IG1lbV9mbihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KmYpIChBMSwgQTIpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjIpPFIsIFQsIEExLCBBMj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMj4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mMik8UiwgVCwgQTEsIEEyPiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyKSBjb25zdCkKK3sKKyAgICByZXR1cm4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mMik8UiwgVCwgQTEsIEEyPihmKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUobWYzKTxSLCBULCBBMSwgQTIsIEEzPiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMykpCit7CisgICAgcmV0dXJuIF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKG1mMyk8UiwgVCwgQTEsIEEyLCBBMz4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+IF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKGNtZjMpPFIsIFQsIEExLCBBMiwgQTM+IG1lbV9mbihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KmYpIChBMSwgQTIsIEEzKSBjb25zdCkKK3sKKyAgICByZXR1cm4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mMyk8UiwgVCwgQTEsIEEyLCBBMz4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjQpPFIsIFQsIEExLCBBMiwgQTMsIEE0PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjQpPFIsIFQsIEExLCBBMiwgQTMsIEE0PihmKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+IF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKGNtZjQpPFIsIFQsIEExLCBBMiwgQTMsIEE0PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQpIGNvbnN0KQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShjbWY0KTxSLCBULCBBMSwgQTIsIEEzLCBBND4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUobWY1KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTU+IG1lbV9mbihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KmYpIChBMSwgQTIsIEEzLCBBNCwgQTUpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjUpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNT4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mNSk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQsIEE1KSBjb25zdCkKK3sKKyAgICByZXR1cm4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mNSk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1PihmKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUobWY2KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNikpCit7CisgICAgcmV0dXJuIF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKG1mNik8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+IF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKGNtZjYpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+IG1lbV9mbihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KmYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2KSBjb25zdCkKK3sKKyAgICByZXR1cm4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mNik8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNj4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3PiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjcpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjcpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3PihmKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+IF9tZmk6OkJPT1NUX01FTV9GTl9OQU1FKGNtZjcpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcpIGNvbnN0KQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShjbWY3KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUobWY4KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+IG1lbV9mbihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KmYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgpKQoreworICAgIHJldHVybiBfbWZpOjpCT09TVF9NRU1fRk5fTkFNRShtZjgpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD4oZik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mOCk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4PiBtZW1fZm4oUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipmKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4KSBjb25zdCkKK3sKKyAgICByZXR1cm4gX21maTo6Qk9PU1RfTUVNX0ZOX05BTUUoY21mOCk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4PihmKTsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9tZW1fZm5fdGVtcGxhdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI2ZDU4NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9tZW1fZm5fdGVtcGxhdGUuaHBwCkBAIC0wLDAgKzEsMTA0NyBAQAorLy8KKy8vICBiaW5kL21lbV9mbl90ZW1wbGF0ZS5ocHAKKy8vCisvLyAgRG8gbm90IGluY2x1ZGUgdGhpcyBoZWFkZXIgZGlyZWN0bHkKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9iaW5kL21lbV9mbi5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HKQorIyBkZWZpbmUgQk9PU1RfTUVNX0ZOX0VOQUJMRV9DT05TVF9PVkVSTE9BRFMKKyNlbmRpZgorCisvLyBtZjAKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUobWYwKQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgVCAqIGFyZ3VtZW50X3R5cGU7CisKK3ByaXZhdGU6CisgICAgCisgICAgQk9PU1RfTUVNX0ZOX1RZUEVERUYoUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoKSkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBjYWxsKFUgJiB1LCBUIGNvbnN0ICopIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh1LipmXykoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIGNhbGwoVSAmIHUsIHZvaWQgY29uc3QgKikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKGdldF9wb2ludGVyKHUpLT4qZl8pKCk7CisgICAgfQorCitwdWJsaWM6CisgICAgCisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWYwKShGIGYpOiBmXyhmKSB7fQorCisgICAgUiBvcGVyYXRvcigpKFQgKiBwKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAocC0+KmZfKSgpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVICYgdSkgY29uc3QKKyAgICB7CisgICAgICAgIFUgY29uc3QgKiBwID0gMDsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiBjYWxsKHUsIHApOworICAgIH0KKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfQ09OU1RfT1ZFUkxPQURTCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgUiBvcGVyYXRvcigpKFQgJiB0KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKCk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKG1mMCkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gPT0gcmhzLmZfOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShCT09TVF9NRU1fRk5fTkFNRShtZjApIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfICE9IHJocy5mXzsKKyAgICB9Cit9OworCisvLyBjbWYwCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKGNtZjApCit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisgICAgdHlwZWRlZiBUIGNvbnN0ICogYXJndW1lbnRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpICgpIGNvbnN0KQorICAgIEYgZl87CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKSgpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgY2FsbChVICYgdSwgdm9pZCBjb25zdCAqKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAoZ2V0X3BvaW50ZXIodSktPipmXykoKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICAKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWYwKShGIGYpOiBmXyhmKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgY29uc3QgJiB1KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCk7CisgICAgfQorCisgICAgUiBvcGVyYXRvcigpKFQgY29uc3QgJiB0KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKCk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKGNtZjApIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oQk9PU1RfTUVNX0ZOX05BTUUoY21mMCkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIG1mMQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUobWYxKQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgVCAqIGZpcnN0X2FyZ3VtZW50X3R5cGU7CisgICAgdHlwZWRlZiBBMSBzZWNvbmRfYXJndW1lbnRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSkpCisgICAgRiBmXzsKKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxPiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjE+IFIgY2FsbChVICYgdSwgdm9pZCBjb25zdCAqLCBCMSAmIGIxKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAoZ2V0X3BvaW50ZXIodSktPipmXykoYjEpOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKG1mMSkoRiBmKTogZl8oZikge30KKworICAgIFIgb3BlcmF0b3IoKShUICogcCwgQTEgYTEpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChwLT4qZl8pKGExKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSAmIHUsIEExIGExKSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEpOworICAgIH0KKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfQ09OU1RfT1ZFUkxPQURTCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUsIEExIGExKSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEpOworICAgIH0KKworI2VuZGlmCisKKyAgICBSIG9wZXJhdG9yKCkoVCAmIHQsIEExIGExKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKGExKTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oQk9PU1RfTUVNX0ZOX05BTUUobWYxKSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKG1mMSkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIGNtZjEKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKGNtZjEpCit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisgICAgdHlwZWRlZiBUIGNvbnN0ICogZmlyc3RfYXJndW1lbnRfdHlwZTsKKyAgICB0eXBlZGVmIEExIHNlY29uZF9hcmd1bWVudF90eXBlOworCitwcml2YXRlOgorICAgIAorICAgIEJPT1NUX01FTV9GTl9UWVBFREVGKFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExKSBjb25zdCkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjE+IFIgY2FsbChVICYgdSwgVCBjb25zdCAqLCBCMSAmIGIxKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodS4qZl8pKGIxKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMT4gUiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICosIEIxICYgYjEpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChnZXRfcG9pbnRlcih1KS0+KmZfKShiMSk7CisgICAgfQorCitwdWJsaWM6CisgICAgCisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUoY21mMSkoRiBmKTogZl8oZikge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVIGNvbnN0ICYgdSwgQTEgYTEpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSk7CisgICAgfQorCisgICAgUiBvcGVyYXRvcigpKFQgY29uc3QgJiB0LCBBMSBhMSkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHQuKmZfKShhMSk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKGNtZjEpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oQk9PU1RfTUVNX0ZOX05BTUUoY21mMSkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIG1mMgorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKG1mMikKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIpKQorICAgIEYgZl87CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjI+IFIgY2FsbChVICYgdSwgVCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodS4qZl8pKGIxLCBiMik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyPiBSIGNhbGwoVSAmIHUsIHZvaWQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKGdldF9wb2ludGVyKHUpLT4qZl8pKGIxLCBiMik7CisgICAgfQorCitwdWJsaWM6CisgICAgCisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWYyKShGIGYpOiBmXyhmKSB7fQorCisgICAgUiBvcGVyYXRvcigpKFQgKiBwLCBBMSBhMSwgQTIgYTIpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChwLT4qZl8pKGExLCBhMik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgJiB1LCBBMSBhMSwgQTIgYTIpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIpOworICAgIH0KKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfQ09OU1RfT1ZFUkxPQURTCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUsIEExIGExLCBBMiBhMikgY29uc3QKKyAgICB7CisgICAgICAgIFUgY29uc3QgKiBwID0gMDsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiBjYWxsKHUsIHAsIGExLCBhMik7CisgICAgfQorCisjZW5kaWYKKworICAgIFIgb3BlcmF0b3IoKShUICYgdCwgQTEgYTEsIEEyIGEyKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKGExLCBhMik7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKG1mMikgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gPT0gcmhzLmZfOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShCT09TVF9NRU1fRk5fTkFNRShtZjIpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfICE9IHJocy5mXzsKKyAgICB9Cit9OworCisvLyBjbWYyCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUoY21mMikKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIpIGNvbnN0KQorICAgIEYgZl87CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjI+IFIgY2FsbChVICYgdSwgVCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodS4qZl8pKGIxLCBiMik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyPiBSIGNhbGwoVSAmIHUsIHZvaWQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKGdldF9wb2ludGVyKHUpLT4qZl8pKGIxLCBiMik7CisgICAgfQorCitwdWJsaWM6CisgICAgCisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUoY21mMikoRiBmKTogZl8oZikge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVIGNvbnN0ICYgdSwgQTEgYTEsIEEyIGEyKSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyKTsKKyAgICB9CisKKyAgICBSIG9wZXJhdG9yKCkoVCBjb25zdCAmIHQsIEExIGExLCBBMiBhMikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHQuKmZfKShhMSwgYTIpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShCT09TVF9NRU1fRk5fTkFNRShjbWYyKSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKGNtZjIpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfICE9IHJocy5mXzsKKyAgICB9Cit9OworCisvLyBtZjMKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMyBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUobWYzKQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworCitwcml2YXRlOgorICAgIAorICAgIEJPT1NUX01FTV9GTl9UWVBFREVGKFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMpKQorICAgIEYgZl87CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzPiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMykgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSwgYjIsIGIzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzPiBSIGNhbGwoVSAmIHUsIHZvaWQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMykgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKGdldF9wb2ludGVyKHUpLT4qZl8pKGIxLCBiMiwgYjMpOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKG1mMykoRiBmKTogZl8oZikge30KKworICAgIFIgb3BlcmF0b3IoKShUICogcCwgQTEgYTEsIEEyIGEyLCBBMyBhMykgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHAtPipmXykoYTEsIGEyLCBhMyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgJiB1LCBBMSBhMSwgQTIgYTIsIEEzIGEzKSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMyk7CisgICAgfQorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9DT05TVF9PVkVSTE9BRFMKKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVIGNvbnN0ICYgdSwgQTEgYTEsIEEyIGEyLCBBMyBhMykgY29uc3QKKyAgICB7CisgICAgICAgIFUgY29uc3QgKiBwID0gMDsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiBjYWxsKHUsIHAsIGExLCBhMiwgYTMpOworICAgIH0KKworI2VuZGlmCisKKyAgICBSIG9wZXJhdG9yKCkoVCAmIHQsIEExIGExLCBBMiBhMiwgQTMgYTMpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh0LipmXykoYTEsIGEyLCBhMyk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKG1mMykgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gPT0gcmhzLmZfOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShCT09TVF9NRU1fRk5fTkFNRShtZjMpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfICE9IHJocy5mXzsKKyAgICB9Cit9OworCisvLyBjbWYzCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKGNtZjMpCit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisKK3ByaXZhdGU6CisKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzKSBjb25zdCkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMz4gUiBjYWxsKFUgJiB1LCBUIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh1LipmXykoYjEsIGIyLCBiMyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMz4gUiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChnZXRfcG9pbnRlcih1KS0+KmZfKShiMSwgYjIsIGIzKTsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjMpKEYgZik6IGZfKGYpIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIsIGEzKTsKKyAgICB9CisKKyAgICBSIG9wZXJhdG9yKCkoVCBjb25zdCAmIHQsIEExIGExLCBBMiBhMiwgQTMgYTMpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh0LipmXykoYTEsIGEyLCBhMyk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKGNtZjMpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oQk9PU1RfTUVNX0ZOX05BTUUoY21mMykgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIG1mNAorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUobWY0KQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworCitwcml2YXRlOgorICAgIAorICAgIEJPT1NUX01FTV9GTl9UWVBFREVGKFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0KSkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQ+IFIgY2FsbChVICYgdSwgVCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyLCBCMyAmIGIzLCBCNCAmIGI0KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodS4qZl8pKGIxLCBiMiwgYjMsIGI0KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCND4gUiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChnZXRfcG9pbnRlcih1KS0+KmZfKShiMSwgYjIsIGIzLCBiNCk7CisgICAgfQorCitwdWJsaWM6CisgICAgCisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWY0KShGIGYpOiBmXyhmKSB7fQorCisgICAgUiBvcGVyYXRvcigpKFQgKiBwLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHAtPipmXykoYTEsIGEyLCBhMywgYTQpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVICYgdSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIsIGEzLCBhNCk7CisgICAgfQorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9DT05TVF9PVkVSTE9BRFMKKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVIGNvbnN0ICYgdSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIsIGEzLCBhNCk7CisgICAgfQorCisjZW5kaWYKKworICAgIFIgb3BlcmF0b3IoKShUICYgdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh0LipmXykoYTEsIGEyLCBhMywgYTQpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShCT09TVF9NRU1fRk5fTkFNRShtZjQpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oQk9PU1RfTUVNX0ZOX05BTUUobWY0KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyAhPSByaHMuZl87CisgICAgfQorfTsKKworLy8gY21mNAorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUoY21mNCkKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCkgY29uc3QpCisgICAgRiBmXzsKKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0PiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSwgYjIsIGIzLCBiNCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQ+IFIgY2FsbChVICYgdSwgdm9pZCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyLCBCMyAmIGIzLCBCNCAmIGI0KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAoZ2V0X3BvaW50ZXIodSktPipmXykoYjEsIGIyLCBiMywgYjQpOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjQpKEYgZik6IGZfKGYpIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQpOworICAgIH0KKworICAgIFIgb3BlcmF0b3IoKShUIGNvbnN0ICYgdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh0LipmXykoYTEsIGEyLCBhMywgYTQpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShCT09TVF9NRU1fRk5fTkFNRShjbWY0KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKGNtZjQpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfICE9IHJocy5mXzsKKyAgICB9Cit9OworCisvLyBtZjUKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1IEJPT1NUX01FTV9GTl9DTEFTU19GPiBjbGFzcyBCT09TVF9NRU1fRk5fTkFNRShtZjUpCit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisKK3ByaXZhdGU6CisgICAgCisgICAgQk9PU1RfTUVNX0ZOX1RZUEVERUYoUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoQTEsIEEyLCBBMywgQTQsIEE1KSkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1PiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCwgQjUgJiBiNSkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSwgYjIsIGIzLCBiNCwgYjUpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNT4gUiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChnZXRfcG9pbnRlcih1KS0+KmZfKShiMSwgYjIsIGIzLCBiNCwgYjUpOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKG1mNSkoRiBmKTogZl8oZikge30KKworICAgIFIgb3BlcmF0b3IoKShUICogcCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAocC0+KmZfKShhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVICYgdSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgICB9CisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NPTlNUX09WRVJMT0FEUworCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgY29uc3QgJiB1LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgIH0KKworI2VuZGlmCisKKyAgICBSIG9wZXJhdG9yKCkoVCAmIHQsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHQuKmZfKShhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShCT09TVF9NRU1fRk5fTkFNRShtZjUpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oQk9PU1RfTUVNX0ZOX05BTUUobWY1KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyAhPSByaHMuZl87CisgICAgfQorfTsKKworLy8gY21mNQorCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKGNtZjUpCit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisKK3ByaXZhdGU6CisgICAgCisgICAgQk9PU1RfTUVNX0ZOX1RZUEVERUYoUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoQTEsIEEyLCBBMywgQTQsIEE1KSBjb25zdCkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1PiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCwgQjUgJiBiNSkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSwgYjIsIGIzLCBiNCwgYjUpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNT4gUiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChnZXRfcG9pbnRlcih1KS0+KmZfKShiMSwgYjIsIGIzLCBiNCwgYjUpOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjUpKEYgZik6IGZfKGYpIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSkgY29uc3QKKyAgICB7CisgICAgICAgIFUgY29uc3QgKiBwID0gMDsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiBjYWxsKHUsIHAsIGExLCBhMiwgYTMsIGE0LCBhNSk7CisgICAgfQorCisgICAgUiBvcGVyYXRvcigpKFQgY29uc3QgJiB0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh0LipmXykoYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oQk9PU1RfTUVNX0ZOX05BTUUoY21mNSkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gPT0gcmhzLmZfOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShCT09TVF9NRU1fRk5fTkFNRShjbWY1KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyAhPSByaHMuZl87CisgICAgfQorfTsKKworLy8gbWY2CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKG1mNikKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKworcHJpdmF0ZToKKworICAgIEJPT1NUX01FTV9GTl9UWVBFREVGKFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYpKQorICAgIEYgZl87CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2PiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCwgQjUgJiBiNSwgQjYgJiBiNikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSwgYjIsIGIzLCBiNCwgYjUsIGI2KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2PiBSIGNhbGwoVSAmIHUsIHZvaWQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCwgQjUgJiBiNSwgQjYgJiBiNikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKGdldF9wb2ludGVyKHUpLT4qZl8pKGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYpOworICAgIH0KKworcHVibGljOgorCisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWY2KShGIGYpOiBmXyhmKSB7fQorCisgICAgUiBvcGVyYXRvcigpKFQgKiBwLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAocC0+KmZfKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgICB9CisKKyNpZmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NPTlNUX09WRVJMT0FEUworCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgY29uc3QgJiB1LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgICAgfQorCisjZW5kaWYKKworICAgIFIgb3BlcmF0b3IoKShUICYgdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHQuKmZfKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oQk9PU1RfTUVNX0ZOX05BTUUobWY2KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKG1mNikgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIGNtZjYKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUoY21mNikKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2KSBjb25zdCkKKyAgICBGIGZfOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNj4gUiBjYWxsKFUgJiB1LCBUIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUsIEI2ICYgYjYpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh1LipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNj4gUiBjYWxsKFUgJiB1LCB2b2lkIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUsIEI2ICYgYjYpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChnZXRfcG9pbnRlcih1KS0+KmZfKShiMSwgYjIsIGIzLCBiNCwgYjUsIGI2KTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICAKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWY2KShGIGYpOiBmXyhmKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgY29uc3QgJiB1LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgICAgfQorCisgICAgUiBvcGVyYXRvcigpKFQgY29uc3QgJiB0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShCT09TVF9NRU1fRk5fTkFNRShjbWY2KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKGNtZjYpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfICE9IHJocy5mXzsKKyAgICB9Cit9OworCisvLyBtZjcKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKG1mNykKK3sKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKworcHJpdmF0ZToKKyAgICAKKyAgICBCT09TVF9NRU1fRk5fVFlQRURFRihSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNykpCisgICAgRiBmXzsKKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3PiBSIGNhbGwoVSAmIHUsIFQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCwgQjUgJiBiNSwgQjYgJiBiNiwgQjcgJiBiNykgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHUuKmZfKShiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVSwgY2xhc3MgQjEsIGNsYXNzIEIyLCBjbGFzcyBCMywgY2xhc3MgQjQsIGNsYXNzIEI1LCBjbGFzcyBCNiwgY2xhc3MgQjc+IFIgY2FsbChVICYgdSwgdm9pZCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyLCBCMyAmIGIzLCBCNCAmIGI0LCBCNSAmIGI1LCBCNiAmIGI2LCBCNyAmIGI3KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAoZ2V0X3BvaW50ZXIodSktPipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcpOworICAgIH0KKworcHVibGljOgorICAgIAorICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKG1mNykoRiBmKTogZl8oZikge30KKworICAgIFIgb3BlcmF0b3IoKShUICogcCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChwLT4qZl8pKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpOworICAgIH0KKworI2lmZGVmIEJPT1NUX01FTV9GTl9FTkFCTEVfQ09OU1RfT1ZFUkxPQURTCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSBjb25zdCAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpOworICAgIH0KKworI2VuZGlmCisKKyAgICBSIG9wZXJhdG9yKCkoVCAmIHQsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oQk9PU1RfTUVNX0ZOX05BTUUobWY3KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKG1mNykgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIGNtZjcKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcgQk9PU1RfTUVNX0ZOX0NMQVNTX0Y+IGNsYXNzIEJPT1NUX01FTV9GTl9OQU1FKGNtZjcpCit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisKK3ByaXZhdGU6CisgICAgCisgICAgQk9PU1RfTUVNX0ZOX1RZUEVERUYoUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcpIGNvbnN0KQorICAgIEYgZl87CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LCBjbGFzcyBCNz4gUiBjYWxsKFUgJiB1LCBUIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUsIEI2ICYgYjYsIEI3ICYgYjcpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh1LipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3PiBSIGNhbGwoVSAmIHUsIHZvaWQgY29uc3QgKiwgQjEgJiBiMSwgQjIgJiBiMiwgQjMgJiBiMywgQjQgJiBiNCwgQjUgJiBiNSwgQjYgJiBiNiwgQjcgJiBiNykgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKGdldF9wb2ludGVyKHUpLT4qZl8pKGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICAKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWY3KShGIGYpOiBmXyhmKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgY29uc3QgJiB1LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNykgY29uc3QKKyAgICB7CisgICAgICAgIFUgY29uc3QgKiBwID0gMDsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiBjYWxsKHUsIHAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICB9CisKKyAgICBSIG9wZXJhdG9yKCkoVCBjb25zdCAmIHQsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oQk9PU1RfTUVNX0ZOX05BTUUoY21mNykgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gPT0gcmhzLmZfOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShCT09TVF9NRU1fRk5fTkFNRShjbWY3KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyAhPSByaHMuZl87CisgICAgfQorfTsKKworLy8gbWY4CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCBCT09TVF9NRU1fRk5fQ0xBU1NfRj4gY2xhc3MgQk9PU1RfTUVNX0ZOX05BTUUobWY4KQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworCitwcml2YXRlOgorICAgIAorICAgIEJPT1NUX01FTV9GTl9UWVBFREVGKFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCkpCisgICAgRiBmXzsKKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3LCBjbGFzcyBCOD4gUiBjYWxsKFUgJiB1LCBUIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUsIEI2ICYgYjYsIEI3ICYgYjcsIEI4ICYgYjgpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh1LipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LCBjbGFzcyBCNywgY2xhc3MgQjg+IFIgY2FsbChVICYgdSwgdm9pZCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyLCBCMyAmIGIzLCBCNCAmIGI0LCBCNSAmIGI1LCBCNiAmIGI2LCBCNyAmIGI3LCBCOCAmIGI4KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAoZ2V0X3BvaW50ZXIodSktPipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4KTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICAKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShtZjgpKEYgZik6IGZfKGYpIHt9CisKKyAgICBSIG9wZXJhdG9yKCkoVCAqIHAsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gKHAtPipmXykoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPiBSIG9wZXJhdG9yKCkoVSAmIHUsIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCkgY29uc3QKKyAgICB7CisgICAgICAgIFUgY29uc3QgKiBwID0gMDsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiBjYWxsKHUsIHAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCk7CisgICAgfQorCisjaWZkZWYgQk9PU1RfTUVNX0ZOX0VOQUJMRV9DT05TVF9PVkVSTE9BRFMKKworICAgIHRlbXBsYXRlPGNsYXNzIFU+IFIgb3BlcmF0b3IoKShVIGNvbnN0ICYgdSwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4KSBjb25zdAorICAgIHsKKyAgICAgICAgVSBjb25zdCAqIHAgPSAwOworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIGNhbGwodSwgcCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgUiBvcGVyYXRvcigpKFQgJiB0LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh0LipmXykoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oQk9PU1RfTUVNX0ZOX05BTUUobWY4KSBjb25zdCAmIHJocykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyA9PSByaHMuZl87CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KEJPT1NUX01FTV9GTl9OQU1FKG1mOCkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKy8vIGNtZjgKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4IEJPT1NUX01FTV9GTl9DTEFTU19GPiBjbGFzcyBCT09TVF9NRU1fRk5fTkFNRShjbWY4KQoreworcHVibGljOgorCisgICAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworCitwcml2YXRlOgorICAgIAorICAgIEJPT1NUX01FTV9GTl9UWVBFREVGKFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCkgY29uc3QpCisgICAgRiBmXzsKKworICAgIHRlbXBsYXRlPGNsYXNzIFUsIGNsYXNzIEIxLCBjbGFzcyBCMiwgY2xhc3MgQjMsIGNsYXNzIEI0LCBjbGFzcyBCNSwgY2xhc3MgQjYsIGNsYXNzIEI3LCBjbGFzcyBCOD4gUiBjYWxsKFUgJiB1LCBUIGNvbnN0ICosIEIxICYgYjEsIEIyICYgYjIsIEIzICYgYjMsIEI0ICYgYjQsIEI1ICYgYjUsIEI2ICYgYjYsIEI3ICYgYjcsIEI4ICYgYjgpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOICh1LipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVLCBjbGFzcyBCMSwgY2xhc3MgQjIsIGNsYXNzIEIzLCBjbGFzcyBCNCwgY2xhc3MgQjUsIGNsYXNzIEI2LCBjbGFzcyBCNywgY2xhc3MgQjg+IFIgY2FsbChVICYgdSwgdm9pZCBjb25zdCAqLCBCMSAmIGIxLCBCMiAmIGIyLCBCMyAmIGIzLCBCNCAmIGI0LCBCNSAmIGI1LCBCNiAmIGI2LCBCNyAmIGI3LCBCOCAmIGI4KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAoZ2V0X3BvaW50ZXIodSktPipmXykoYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4KTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICAKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWY4KShGIGYpOiBmXyhmKSB7fQorCisgICAgUiBvcGVyYXRvcigpKFQgY29uc3QgKiBwLCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgpIGNvbnN0CisgICAgeworICAgICAgICBCT09TVF9NRU1fRk5fUkVUVVJOIChwLT4qZl8pKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4gUiBvcGVyYXRvcigpKFUgY29uc3QgJiB1LCBBMSBhMSwgQTIgYTIsIEEzIGEzLCBBNCBhNCwgQTUgYTUsIEE2IGE2LCBBNyBhNywgQTggYTgpIGNvbnN0CisgICAgeworICAgICAgICBVIGNvbnN0ICogcCA9IDA7CisgICAgICAgIEJPT1NUX01FTV9GTl9SRVRVUk4gY2FsbCh1LCBwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICAgIH0KKworICAgIFIgb3BlcmF0b3IoKShUIGNvbnN0ICYgdCwgQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4KSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfTUVNX0ZOX1JFVFVSTiAodC4qZl8pKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEJPT1NUX01FTV9GTl9OQU1FKGNtZjgpIGNvbnN0ICYgcmhzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfID09IHJocy5mXzsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oQk9PU1RfTUVNX0ZOX05BTUUoY21mOCkgY29uc3QgJiByaHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8gIT0gcmhzLmZfOworICAgIH0KK307CisKKyN1bmRlZiBCT09TVF9NRU1fRk5fRU5BQkxFX0NPTlNUX09WRVJMT0FEUwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9iaW5kL21lbV9mbl92dy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvbWVtX2ZuX3Z3LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2ZjNThkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL21lbV9mbl92dy5ocHAKQEAgLTAsMCArMSwxMzAgQEAKKy8vCisvLyAgYmluZC9tZW1fZm5fdncuaHBwIC0gdm9pZCByZXR1cm4gaGVscGVyIHdyYXBwZXJzCisvLworLy8gIERvIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGRpcmVjdGx5CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvYmluZC9tZW1fZm4uaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQ+IHN0cnVjdCBCT09TVF9NRU1fRk5fTkFNRShtZjApOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIobWYwKTxSLCBULCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKCk+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpICgpOworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKG1mMCkoRiBmKTogbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIobWYwKTxSLCBULCBGPihmKSB7fQorfTsKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVD4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjApOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mMCk8UiwgVCwgUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OiopICgpIGNvbnN0PgoreworICAgIHR5cGVkZWYgUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoKSBjb25zdDsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWYwKShGIGYpOiBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihjbWYwKTxSLCBULCBGPihmKSB7fQorfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMT4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKG1mMSk6IHB1YmxpYyBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjEpPFIsIFQsIEExLCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKEExKT4KK3sKKyAgICB0eXBlZGVmIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExKTsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShtZjEpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKG1mMSk8UiwgVCwgQTEsIEY+KGYpIHt9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMT4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjEpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mMSk8UiwgVCwgQTEsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEpIGNvbnN0PgoreworICAgIHR5cGVkZWYgUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoQTEpIGNvbnN0OworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjEpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjEpPFIsIFQsIEExLCBGPihmKSB7fQorfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTI+IHN0cnVjdCBCT09TVF9NRU1fRk5fTkFNRShtZjIpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIobWYyKTxSLCBULCBBMSwgQTIsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyKT4KK3sKKyAgICB0eXBlZGVmIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMik7CisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWYyKShGIGYpOiBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjIpPFIsIFQsIEExLCBBMiwgRj4oZikge30KK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMj4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjIpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mMik8UiwgVCwgQTEsIEEyLCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKEExLCBBMikgY29uc3Q+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIpIGNvbnN0OworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjIpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjIpPFIsIFQsIEExLCBBMiwgRj4oZikge30KK307CisKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKG1mMyk6IHB1YmxpYyBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjMpPFIsIFQsIEExLCBBMiwgQTMsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMyk+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzKTsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShtZjMpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKG1mMyk8UiwgVCwgQTEsIEEyLCBBMywgRj4oZikge30KK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+IHN0cnVjdCBCT09TVF9NRU1fRk5fTkFNRShjbWYzKTogcHVibGljIG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjMpPFIsIFQsIEExLCBBMiwgQTMsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMykgY29uc3Q+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzKSBjb25zdDsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWYzKShGIGYpOiBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihjbWYzKTxSLCBULCBBMSwgQTIsIEEzLCBGPihmKSB7fQorfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKG1mNCk6IHB1YmxpYyBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjQpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKEExLCBBMiwgQTMsIEE0KT4KK3sKKyAgICB0eXBlZGVmIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0KTsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShtZjQpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKG1mNCk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEY+KGYpIHt9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjQpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mNCk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMywgQTQpIGNvbnN0PgoreworICAgIHR5cGVkZWYgUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoQTEsIEEyLCBBMywgQTQpIGNvbnN0OworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjQpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjQpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBGPihmKSB7fQorfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+IHN0cnVjdCBCT09TVF9NRU1fRk5fTkFNRShtZjUpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIobWY1KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTUsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMywgQTQsIEE1KT4KK3sKKyAgICB0eXBlZGVmIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0LCBBNSk7CisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWY1KShGIGYpOiBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjUpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgRj4oZikge30KK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjUpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mNSk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKEExLCBBMiwgQTMsIEE0LCBBNSkgY29uc3Q+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCwgQTUpIGNvbnN0OworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjUpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjUpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgRj4oZikge30KK307CisKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKG1mNik6IHB1YmxpYyBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjYpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNik+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2KTsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShtZjYpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKG1mNik8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgRj4oZikge30KK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+IHN0cnVjdCBCT09TVF9NRU1fRk5fTkFNRShjbWY2KTogcHVibGljIG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjYpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNikgY29uc3Q+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2KSBjb25zdDsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShjbWY2KShGIGYpOiBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihjbWY2KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBGPihmKSB7fQorfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKG1mNyk6IHB1YmxpYyBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjcpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3KT4KK3sKKyAgICB0eXBlZGVmIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3KTsKKyAgICBleHBsaWNpdCBCT09TVF9NRU1fRk5fTkFNRShtZjcpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKG1mNyk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEY+KGYpIHt9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjcpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mNyk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcpIGNvbnN0PgoreworICAgIHR5cGVkZWYgUiAoQk9PU1RfTUVNX0ZOX0NDIFQ6OipGKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcpIGNvbnN0OworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjcpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjcpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBGPihmKSB7fQorfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+IHN0cnVjdCBCT09TVF9NRU1fRk5fTkFNRShtZjgpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIobWY4KTxSLCBULCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqKSAoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4KT4KK3sKKyAgICB0eXBlZGVmIFIgKEJPT1NUX01FTV9GTl9DQyBUOjoqRikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCk7CisgICAgZXhwbGljaXQgQk9PU1RfTUVNX0ZOX05BTUUobWY4KShGIGYpOiBtZjxSPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIEJPT1NUX01FTV9GTl9OQU1FMihtZjgpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgRj4oZikge30KK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4gc3RydWN0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjgpOiBwdWJsaWMgbWY8Uj46OkJPT1NUX05FU1RFRF9URU1QTEFURSBCT09TVF9NRU1fRk5fTkFNRTIoY21mOCk8UiwgVCwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KikgKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCkgY29uc3Q+Cit7CisgICAgdHlwZWRlZiBSIChCT09TVF9NRU1fRk5fQ0MgVDo6KkYpIChBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgpIGNvbnN0OworICAgIGV4cGxpY2l0IEJPT1NUX01FTV9GTl9OQU1FKGNtZjgpKEYgZik6IG1mPFI+OjpCT09TVF9ORVNURURfVEVNUExBVEUgQk9PU1RfTUVNX0ZOX05BTUUyKGNtZjgpPFIsIFQsIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgRj4oZikge30KK307CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9wbGFjZWhvbGRlcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL3BsYWNlaG9sZGVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI5ZjBmYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9wbGFjZWhvbGRlcnMuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKyNpZm5kZWYgQk9PU1RfQklORF9QTEFDRUhPTERFUlNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0JJTkRfUExBQ0VIT0xERVJTX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBiaW5kL3BsYWNlaG9sZGVycy5ocHAgLSBfTiBkZWZpbml0aW9ucworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2JpbmQvYmluZC5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2JpbmQvYXJnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UKK3sKKworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPCA0KQorCitzdGF0aWMgaW5saW5lIG5kbmJvb3N0Ojphcmc8MT4gXzEoKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPDE+KCk7IH0KK3N0YXRpYyBpbmxpbmUgbmRuYm9vc3Q6OmFyZzwyPiBfMigpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8Mj4oKTsgfQorc3RhdGljIGlubGluZSBuZG5ib29zdDo6YXJnPDM+IF8zKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzwzPigpOyB9CitzdGF0aWMgaW5saW5lIG5kbmJvb3N0Ojphcmc8ND4gXzQoKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPDQ+KCk7IH0KK3N0YXRpYyBpbmxpbmUgbmRuYm9vc3Q6OmFyZzw1PiBfNSgpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8NT4oKTsgfQorc3RhdGljIGlubGluZSBuZG5ib29zdDo6YXJnPDY+IF82KCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzw2PigpOyB9CitzdGF0aWMgaW5saW5lIG5kbmJvb3N0Ojphcmc8Nz4gXzcoKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPDc+KCk7IH0KK3N0YXRpYyBpbmxpbmUgbmRuYm9vc3Q6OmFyZzw4PiBfOCgpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8OD4oKTsgfQorc3RhdGljIGlubGluZSBuZG5ib29zdDo6YXJnPDk+IF85KCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzw5PigpOyB9CisKKyNlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykgfHwgKGRlZmluZWQoX19ERUNDWFhfVkVSKSAmJiBfX0RFQ0NYWF9WRVIgPD0gNjA1OTAwMzEpIHx8IGRlZmluZWQoX19NV0VSS1NfXykgfHwgXAorICAgIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgMikgIAorCitzdGF0aWMgbmRuYm9vc3Q6OmFyZzwxPiBfMTsKK3N0YXRpYyBuZG5ib29zdDo6YXJnPDI+IF8yOworc3RhdGljIG5kbmJvb3N0Ojphcmc8Mz4gXzM7CitzdGF0aWMgbmRuYm9vc3Q6OmFyZzw0PiBfNDsKK3N0YXRpYyBuZG5ib29zdDo6YXJnPDU+IF81Oworc3RhdGljIG5kbmJvb3N0Ojphcmc8Nj4gXzY7CitzdGF0aWMgbmRuYm9vc3Q6OmFyZzw3PiBfNzsKK3N0YXRpYyBuZG5ib29zdDo6YXJnPDg+IF84Oworc3RhdGljIG5kbmJvb3N0Ojphcmc8OT4gXzk7CisKKyNlbHNlCisKK25kbmJvb3N0Ojphcmc8MT4gXzE7CituZG5ib29zdDo6YXJnPDI+IF8yOworbmRuYm9vc3Q6OmFyZzwzPiBfMzsKK25kbmJvb3N0Ojphcmc8ND4gXzQ7CituZG5ib29zdDo6YXJnPDU+IF81OworbmRuYm9vc3Q6OmFyZzw2PiBfNjsKK25kbmJvb3N0Ojphcmc8Nz4gXzc7CituZG5ib29zdDo6YXJnPDg+IF84OworbmRuYm9vc3Q6OmFyZzw5PiBfOTsKKworI2VuZGlmCisKK30gLy8gdW5uYW1lZCBuYW1lc3BhY2UKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfQklORF9QTEFDRUhPTERFUlNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2JpbmQvcHJvdGVjdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvcHJvdGVjdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ3MGY4NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvYmluZC9wcm90ZWN0LmhwcApAQCAtMCwwICsxLDMwNCBAQAorI2lmbmRlZiBCT09TVF9CSU5EX1BST1RFQ1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0JJTkRfUFJPVEVDVF9IUFBfSU5DTFVERUQKKworLy8KKy8vICBwcm90ZWN0LmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDkgU3RldmVuIFdhdGFuYWJlCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIF9iaQoreworCit0ZW1wbGF0ZTxjbGFzcyBGPiBjbGFzcyBwcm90ZWN0ZWRfYmluZF90Cit7CitwdWJsaWM6CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnJlc3VsdF90eXBlIHJlc3VsdF90eXBlOworCisgICAgZXhwbGljaXQgcHJvdGVjdGVkX2JpbmRfdChGIGYpOiBmXyhmKQorICAgIHsKKyAgICB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmXygpOworICAgIH0KKworICAgIHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSkKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSk7CisgICAgfQorCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoY29uc3QgQTEgJiBhMSkKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTE+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoY29uc3QgQTEgJiBhMSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSk7CisgICAgfQorCisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyICYgYTIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyICYgYTIpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTI+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgJiBhMikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiBjb25zdCAmIGEyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyIGNvbnN0ICYgYTIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTI+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMikKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMik7CisgICAgfQorCisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMykKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMyk7CisgICAgfQorICAgIAorI2lmICFkZWZpbmVkKEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HKSBcCisgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMpOworICAgIH0KKyAgICAKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCkKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCk7CisgICAgfQorICAgIAorI2lmICFkZWZpbmVkKEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HKSBcCisgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0KTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMsIEE0ICYgYTQsIEE1ICYgYTUpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgIH0KKyAgICAKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUpOworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMsIEE0ICYgYTQsIEE1ICYgYTUsIEE2ICYgYTYpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpOworICAgIH0KKyAgICAKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNykKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgICAgfQorICAgIAorI2lmICFkZWZpbmVkKEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HKSBcCisgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMsIEE0ICYgYTQsIEE1ICYgYTUsIEE2ICYgYTYsIEE3ICYgYTcsIEE4ICYgYTgpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgJiBhMSwgQTIgJiBhMiwgQTMgJiBhMywgQTQgJiBhNCwgQTUgJiBhNSwgQTYgJiBhNiwgQTcgJiBhNywgQTggJiBhOCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICAgIH0KKyAgICAKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcsIEE4IGNvbnN0ICYgYTgpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNiwgQTcgY29uc3QgJiBhNywgQTggY29uc3QgJiBhOCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PiByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEExICYgYTEsIEEyICYgYTIsIEEzICYgYTMsIEE0ICYgYTQsIEE1ICYgYTUsIEE2ICYgYTYsIEE3ICYgYTcsIEE4ICYgYTgsIEE5ICYgYTkpCisgICAgeworICAgICAgICByZXR1cm4gZl8oYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSAmIGExLCBBMiAmIGEyLCBBMyAmIGEzLCBBNCAmIGE0LCBBNSAmIGE1LCBBNiAmIGE2LCBBNyAmIGE3LCBBOCAmIGE4LCBBOSAmIGE5KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpOworICAgIH0KKyAgICAKKyNpZiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4gcmVzdWx0X3R5cGUgb3BlcmF0b3IoKShBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3LCBBOCBjb25zdCAmIGE4LCBBOSBjb25zdCAmIGE5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZfKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+IHJlc3VsdF90eXBlIG9wZXJhdG9yKCkoQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNiwgQTcgY29uc3QgJiBhNywgQTggY29uc3QgJiBhOCwgQTkgY29uc3QgJiBhOSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmXyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KTsKKyAgICB9CisKKyNlbmRpZgorCitwcml2YXRlOgorCisgICAgRiBmXzsKK307CisKK30gLy8gbmFtZXNwYWNlIF9iaQorCit0ZW1wbGF0ZTxjbGFzcyBGPiBfYmk6OnByb3RlY3RlZF9iaW5kX3Q8Rj4gcHJvdGVjdChGIGYpCit7CisgICAgcmV0dXJuIF9iaTo6cHJvdGVjdGVkX2JpbmRfdDxGPihmKTsKK30KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfQklORF9QUk9URUNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9iaW5kL3N0b3JhZ2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9iaW5kL3N0b3JhZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhOTdmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2JpbmQvc3RvcmFnZS5ocHAKQEAgLTAsMCArMSw0NzUgQEAKKyNpZm5kZWYgQk9PU1RfQklORF9TVE9SQUdFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9CSU5EX1NUT1JBR0VfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJpbmQvc3RvcmFnZS5ocHAKKy8vCisvLyAgYm9vc3QvYmluZC5ocHAgc3VwcG9ydCBoZWFkZXIsIG9wdGltaXplZCBzdG9yYWdlCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwNiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2JpbmQvYmluZC5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYmluZC9hcmcuaHBwPgorCisjaWZkZWYgQk9PU1RfTVNWQworIyBwcmFnbWEgd2FybmluZyhwdXNoKQorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NTEyKSAvLyBhc3NpZ25tZW50IG9wZXJhdG9yIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIF9iaQoreworCisvLyAxCisKK3RlbXBsYXRlPGNsYXNzIEExPiBzdHJ1Y3Qgc3RvcmFnZTEKK3sKKyAgICBleHBsaWNpdCBzdG9yYWdlMSggQTEgYTEgKTogYTFfKCBhMSApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX0JJTkRfVklTSVRfRUFDSCh2LCBhMV8sIDApOworICAgIH0KKworICAgIEExIGExXzsKK307CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApICYmICFkZWZpbmVkKCBfX0JPUkxBTkRDX18gKQorCit0ZW1wbGF0ZTxpbnQgST4gc3RydWN0IHN0b3JhZ2UxPCBuZG5ib29zdDo6YXJnPEk+ID4KK3sKKyAgICBleHBsaWNpdCBzdG9yYWdlMSggbmRuYm9vc3Q6OmFyZzxJPiApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYpIGNvbnN0IHsgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYTFfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCit0ZW1wbGF0ZTxpbnQgST4gc3RydWN0IHN0b3JhZ2UxPCBuZG5ib29zdDo6YXJnPEk+ICgqKSAoKSA+Cit7CisgICAgZXhwbGljaXQgc3RvcmFnZTEoIG5kbmJvb3N0Ojphcmc8ST4gKCopICgpICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJikgY29uc3QgeyB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhMV8oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKKyNlbmRpZgorCisvLyAyCisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMj4gc3RydWN0IHN0b3JhZ2UyOiBwdWJsaWMgc3RvcmFnZTE8QTE+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlMTxBMT4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTIoIEExIGExLCBBMiBhMiApOiBzdG9yYWdlMTxBMT4oIGExICksIGEyXyggYTIgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGEyXywgMCk7CisgICAgfQorCisgICAgQTIgYTJfOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGludCBJPiBzdHJ1Y3Qgc3RvcmFnZTI8IEExLCBuZG5ib29zdDo6YXJnPEk+ID46IHB1YmxpYyBzdG9yYWdlMTxBMT4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2UxPEExPiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlMiggQTEgYTEsIG5kbmJvb3N0Ojphcmc8ST4gKTogc3RvcmFnZTE8QTE+KCBhMSApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGluaGVyaXRlZDo6YWNjZXB0KHYpOworICAgIH0KKworICAgIHN0YXRpYyBuZG5ib29zdDo6YXJnPEk+IGEyXygpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8ST4oKTsgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGludCBJPiBzdHJ1Y3Qgc3RvcmFnZTI8IEExLCBuZG5ib29zdDo6YXJnPEk+ICgqKSAoKSA+OiBwdWJsaWMgc3RvcmFnZTE8QTE+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlMTxBMT4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTIoIEExIGExLCBuZG5ib29zdDo6YXJnPEk+ICgqKSAoKSApOiBzdG9yYWdlMTxBMT4oIGExICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgaW5oZXJpdGVkOjphY2NlcHQodik7CisgICAgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYTJfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCisjZW5kaWYKKworLy8gMworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPiBzdHJ1Y3Qgc3RvcmFnZTM6IHB1YmxpYyBzdG9yYWdlMjwgQTEsIEEyID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2UyPEExLCBBMj4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTMoIEExIGExLCBBMiBhMiwgQTMgYTMgKTogc3RvcmFnZTI8QTEsIEEyPiggYTEsIGEyICksIGEzXyggYTMgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGEzXywgMCk7CisgICAgfQorCisgICAgQTMgYTNfOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBpbnQgST4gc3RydWN0IHN0b3JhZ2UzPCBBMSwgQTIsIG5kbmJvb3N0Ojphcmc8ST4gPjogcHVibGljIHN0b3JhZ2UyPCBBMSwgQTIgPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTI8QTEsIEEyPiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlMyggQTEgYTEsIEEyIGEyLCBuZG5ib29zdDo6YXJnPEk+ICk6IHN0b3JhZ2UyPEExLCBBMj4oIGExLCBhMiApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGluaGVyaXRlZDo6YWNjZXB0KHYpOworICAgIH0KKworICAgIHN0YXRpYyBuZG5ib29zdDo6YXJnPEk+IGEzXygpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8ST4oKTsgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBpbnQgST4gc3RydWN0IHN0b3JhZ2UzPCBBMSwgQTIsIG5kbmJvb3N0Ojphcmc8ST4gKCopICgpID46IHB1YmxpYyBzdG9yYWdlMjwgQTEsIEEyID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2UyPEExLCBBMj4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTMoIEExIGExLCBBMiBhMiwgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgKTogc3RvcmFnZTI8QTEsIEEyPiggYTEsIGEyICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgaW5oZXJpdGVkOjphY2NlcHQodik7CisgICAgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYTNfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCisjZW5kaWYKKworLy8gNAorCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4gc3RydWN0IHN0b3JhZ2U0OiBwdWJsaWMgc3RvcmFnZTM8IEExLCBBMiwgQTMgPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTM8QTEsIEEyLCBBMz4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTQoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0ICk6IHN0b3JhZ2UzPEExLCBBMiwgQTM+KCBhMSwgYTIsIGEzICksIGE0XyggYTQgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGE0XywgMCk7CisgICAgfQorCisgICAgQTQgYTRfOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgaW50IEk+IHN0cnVjdCBzdG9yYWdlNDwgQTEsIEEyLCBBMywgbmRuYm9vc3Q6OmFyZzxJPiA+OiBwdWJsaWMgc3RvcmFnZTM8IEExLCBBMiwgQTMgPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTM8QTEsIEEyLCBBMz4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTQoIEExIGExLCBBMiBhMiwgQTMgYTMsIG5kbmJvb3N0Ojphcmc8ST4gKTogc3RvcmFnZTM8QTEsIEEyLCBBMz4oIGExLCBhMiwgYTMgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhNF8oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGludCBJPiBzdHJ1Y3Qgc3RvcmFnZTQ8IEExLCBBMiwgQTMsIG5kbmJvb3N0Ojphcmc8ST4gKCopICgpID46IHB1YmxpYyBzdG9yYWdlMzwgQTEsIEEyLCBBMyA+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlMzxBMSwgQTIsIEEzPiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlNCggQTEgYTEsIEEyIGEyLCBBMyBhMywgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgKTogc3RvcmFnZTM8QTEsIEEyLCBBMz4oIGExLCBhMiwgYTMgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhNF8oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKKyNlbmRpZgorCisvLyA1CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4gc3RydWN0IHN0b3JhZ2U1OiBwdWJsaWMgc3RvcmFnZTQ8IEExLCBBMiwgQTMsIEE0ID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2U0PEExLCBBMiwgQTMsIEE0PiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlNSggQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1ICk6IHN0b3JhZ2U0PEExLCBBMiwgQTMsIEE0PiggYTEsIGEyLCBhMywgYTQgKSwgYTVfKCBhNSApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGluaGVyaXRlZDo6YWNjZXB0KHYpOworICAgICAgICBCT09TVF9CSU5EX1ZJU0lUX0VBQ0godiwgYTVfLCAwKTsKKyAgICB9CisKKyAgICBBNSBhNV87Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgaW50IEk+IHN0cnVjdCBzdG9yYWdlNTwgQTEsIEEyLCBBMywgQTQsIG5kbmJvb3N0Ojphcmc8ST4gPjogcHVibGljIHN0b3JhZ2U0PCBBMSwgQTIsIEEzLCBBNCA+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlNDxBMSwgQTIsIEEzLCBBND4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTUoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBuZG5ib29zdDo6YXJnPEk+ICk6IHN0b3JhZ2U0PEExLCBBMiwgQTMsIEE0PiggYTEsIGEyLCBhMywgYTQgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhNV8oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBpbnQgST4gc3RydWN0IHN0b3JhZ2U1PCBBMSwgQTIsIEEzLCBBNCwgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgPjogcHVibGljIHN0b3JhZ2U0PCBBMSwgQTIsIEEzLCBBNCA+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlNDxBMSwgQTIsIEEzLCBBND4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTUoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBuZG5ib29zdDo6YXJnPEk+ICgqKSAoKSApOiBzdG9yYWdlNDxBMSwgQTIsIEEzLCBBND4oIGExLCBhMiwgYTMsIGE0ICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgaW5oZXJpdGVkOjphY2NlcHQodik7CisgICAgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYTVfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCisjZW5kaWYKKworLy8gNgorCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PiBzdHJ1Y3Qgc3RvcmFnZTY6IHB1YmxpYyBzdG9yYWdlNTwgQTEsIEEyLCBBMywgQTQsIEE1ID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2U1PEExLCBBMiwgQTMsIEE0LCBBNT4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTYoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYgKTogc3RvcmFnZTU8QTEsIEEyLCBBMywgQTQsIEE1PiggYTEsIGEyLCBhMywgYTQsIGE1ICksIGE2XyggYTYgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGE2XywgMCk7CisgICAgfQorCisgICAgQTYgYTZfOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBpbnQgST4gc3RydWN0IHN0b3JhZ2U2PCBBMSwgQTIsIEEzLCBBNCwgQTUsIG5kbmJvb3N0Ojphcmc8ST4gPjogcHVibGljIHN0b3JhZ2U1PCBBMSwgQTIsIEEzLCBBNCwgQTUgPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTU8QTEsIEEyLCBBMywgQTQsIEE1PiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlNiggQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBuZG5ib29zdDo6YXJnPEk+ICk6IHN0b3JhZ2U1PEExLCBBMiwgQTMsIEE0LCBBNT4oIGExLCBhMiwgYTMsIGE0LCBhNSApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGluaGVyaXRlZDo6YWNjZXB0KHYpOworICAgIH0KKworICAgIHN0YXRpYyBuZG5ib29zdDo6YXJnPEk+IGE2XygpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8ST4oKTsgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBpbnQgST4gc3RydWN0IHN0b3JhZ2U2PCBBMSwgQTIsIEEzLCBBNCwgQTUsIG5kbmJvb3N0Ojphcmc8ST4gKCopICgpID46IHB1YmxpYyBzdG9yYWdlNTwgQTEsIEEyLCBBMywgQTQsIEE1ID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2U1PEExLCBBMiwgQTMsIEE0LCBBNT4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTYoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgKTogc3RvcmFnZTU8QTEsIEEyLCBBMywgQTQsIEE1PiggYTEsIGEyLCBhMywgYTQsIGE1ICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgaW5oZXJpdGVkOjphY2NlcHQodik7CisgICAgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYTZfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCisjZW5kaWYKKworLy8gNworCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4gc3RydWN0IHN0b3JhZ2U3OiBwdWJsaWMgc3RvcmFnZTY8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYgPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTcoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3ICk6IHN0b3JhZ2U2PEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+KCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2ICksIGE3XyggYTcgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGE3XywgMCk7CisgICAgfQorCisgICAgQTcgYTdfOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgaW50IEk+IHN0cnVjdCBzdG9yYWdlNzwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgbmRuYm9vc3Q6OmFyZzxJPiA+OiBwdWJsaWMgc3RvcmFnZTY8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYgPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTcoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIG5kbmJvb3N0Ojphcmc8ST4gKTogc3RvcmFnZTY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj4oIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhN18oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGludCBJPiBzdHJ1Y3Qgc3RvcmFnZTc8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIG5kbmJvb3N0Ojphcmc8ST4gKCopICgpID46IHB1YmxpYyBzdG9yYWdlNjwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiA+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlNjxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2PiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlNyggQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgKTogc3RvcmFnZTY8QTEsIEEyLCBBMywgQTQsIEE1LCBBNj4oIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhN18oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKKyNlbmRpZgorCisvLyA4CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4gc3RydWN0IHN0b3JhZ2U4OiBwdWJsaWMgc3RvcmFnZTc8IEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3ID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2U3PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3PiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlOCggQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4ICk6IHN0b3JhZ2U3PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3PiggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcgKSwgYThfKCBhOCApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGluaGVyaXRlZDo6YWNjZXB0KHYpOworICAgICAgICBCT09TVF9CSU5EX1ZJU0lUX0VBQ0godiwgYThfLCAwKTsKKyAgICB9CisKKyAgICBBOCBhOF87Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgaW50IEk+IHN0cnVjdCBzdG9yYWdlODwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIG5kbmJvb3N0Ojphcmc8ST4gPjogcHVibGljIHN0b3JhZ2U3PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNyA+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTgoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBuZG5ib29zdDo6YXJnPEk+ICk6IHN0b3JhZ2U3PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3PiggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OmFyZzxJPiBhOF8oKSB7IHJldHVybiBuZG5ib29zdDo6YXJnPEk+KCk7IH0KK307CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBpbnQgST4gc3RydWN0IHN0b3JhZ2U4PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgPjogcHVibGljIHN0b3JhZ2U3PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNyA+Cit7CisgICAgdHlwZWRlZiBzdG9yYWdlNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTgoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBuZG5ib29zdDo6YXJnPEk+ICgqKSAoKSApOiBzdG9yYWdlNzxBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz4oIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3ICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgaW5oZXJpdGVkOjphY2NlcHQodik7CisgICAgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYThfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCisjZW5kaWYKKworLy8gOQorCit0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PiBzdHJ1Y3Qgc3RvcmFnZTk6IHB1YmxpYyBzdG9yYWdlODwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4ID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2U4PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTkoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCwgQTkgYTkgKTogc3RvcmFnZTg8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4PiggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4ICksIGE5XyggYTkgKSB7fQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gdm9pZCBhY2NlcHQoViAmIHYpIGNvbnN0CisgICAgeworICAgICAgICBpbmhlcml0ZWQ6OmFjY2VwdCh2KTsKKyAgICAgICAgQk9PU1RfQklORF9WSVNJVF9FQUNIKHYsIGE5XywgMCk7CisgICAgfQorCisgICAgQTkgYTlfOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBpbnQgST4gc3RydWN0IHN0b3JhZ2U5PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIG5kbmJvb3N0Ojphcmc8ST4gPjogcHVibGljIHN0b3JhZ2U4PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTggPgoreworICAgIHR5cGVkZWYgc3RvcmFnZTg8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4PiBpbmhlcml0ZWQ7CisKKyAgICBzdG9yYWdlOSggQTEgYTEsIEEyIGEyLCBBMyBhMywgQTQgYTQsIEE1IGE1LCBBNiBhNiwgQTcgYTcsIEE4IGE4LCBuZG5ib29zdDo6YXJnPEk+ICk6IHN0b3JhZ2U4PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD4oIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCApIHt9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPiB2b2lkIGFjY2VwdChWICYgdikgY29uc3QKKyAgICB7CisgICAgICAgIGluaGVyaXRlZDo6YWNjZXB0KHYpOworICAgIH0KKworICAgIHN0YXRpYyBuZG5ib29zdDo6YXJnPEk+IGE5XygpIHsgcmV0dXJuIG5kbmJvb3N0Ojphcmc8ST4oKTsgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBpbnQgST4gc3RydWN0IHN0b3JhZ2U5PCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIG5kbmJvb3N0Ojphcmc8ST4gKCopICgpID46IHB1YmxpYyBzdG9yYWdlODwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4ID4KK3sKKyAgICB0eXBlZGVmIHN0b3JhZ2U4PEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOD4gaW5oZXJpdGVkOworCisgICAgc3RvcmFnZTkoIEExIGExLCBBMiBhMiwgQTMgYTMsIEE0IGE0LCBBNSBhNSwgQTYgYTYsIEE3IGE3LCBBOCBhOCwgbmRuYm9vc3Q6OmFyZzxJPiAoKikgKCkgKTogc3RvcmFnZTg8QTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4PiggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4ICkge30KKworICAgIHRlbXBsYXRlPGNsYXNzIFY+IHZvaWQgYWNjZXB0KFYgJiB2KSBjb25zdAorICAgIHsKKyAgICAgICAgaW5oZXJpdGVkOjphY2NlcHQodik7CisgICAgfQorCisgICAgc3RhdGljIG5kbmJvb3N0Ojphcmc8ST4gYTlfKCkgeyByZXR1cm4gbmRuYm9vc3Q6OmFyZzxJPigpOyB9Cit9OworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgX2JpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjIHByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6IDQ1MTIpIC8vIGFzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZAorIyBwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfQklORF9TVE9SQUdFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9ibGFuay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2JsYW5rLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWIzOWE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9ibGFuay5ocHAKQEAgLTAsMCArMSwxMDYgQEAKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGJvb3N0IGJsYW5rLmhwcCBoZWFkZXIgZmlsZQorLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyBDb3B5cmlnaHQgKGMpIDIwMDMKKy8vIEVyaWMgRnJpZWRtYW4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfQkxBTktfSFBQCisjZGVmaW5lIEJPT1NUX0JMQU5LX0hQUAorCisjaW5jbHVkZSAibmRuYm9vc3QvYmxhbmtfZndkLmhwcCIKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0lPU1RSRUFNKQorI2luY2x1ZGUgPGlvc2Z3ZD4gLy8gZm9yIHN0ZDo6YmFzaWNfb3N0cmVhbSBmb3J3YXJkIGRlY2xhcmUKKyNpbmNsdWRlICJuZG5ib29zdC9kZXRhaWwvdGVtcGxhdGVkX3N0cmVhbXMuaHBwIgorI2VuZGlmIC8vIEJPT1NUX05PX0lPU1RSRUFNCisKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvYm9vbC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW1wdHkuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvZC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc3RhdGVsZXNzLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworc3RydWN0IGJsYW5rCit7Cit9OworCisvLyB0eXBlIHRyYWl0cyBzcGVjaWFsaXphdGlvbnMKKy8vCisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfcG9kPCBibGFuayA+CisgICAgOiBtcGw6OnRydWVfCit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX2VtcHR5PCBibGFuayA+CisgICAgOiBtcGw6OnRydWVfCit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX3N0YXRlbGVzczwgYmxhbmsgPgorICAgIDogbXBsOjp0cnVlXworeworfTsKKworLy8gcmVsYXRpb25hbCBvcGVyYXRvcnMKKy8vCisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgYmxhbmsmLCBjb25zdCBibGFuayYpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPD0oY29uc3QgYmxhbmsmLCBjb25zdCBibGFuayYpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPj0oY29uc3QgYmxhbmsmLCBjb25zdCBibGFuayYpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgYmxhbmsmLCBjb25zdCBibGFuayYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcjwoY29uc3QgYmxhbmsmLCBjb25zdCBibGFuayYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj4oY29uc3QgYmxhbmsmLCBjb25zdCBibGFuayYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBzdHJlYW1pbmcgc3VwcG9ydAorLy8KKyNpZiAhZGVmaW5lZChCT09TVF9OT19JT1NUUkVBTSkKKworQk9PU1RfVEVNUExBVEVEX1NUUkVBTV9URU1QTEFURShFLFQpCitpbmxpbmUgQk9PU1RfVEVNUExBVEVEX1NUUkVBTShvc3RyZWFtLCBFLFQpJiBvcGVyYXRvcjw8KAorICAgICAgQk9PU1RfVEVNUExBVEVEX1NUUkVBTShvc3RyZWFtLCBFLFQpJiBvdXQKKyAgICAsIGNvbnN0IGJsYW5rJgorICAgICkKK3sKKyAgICAvLyAob3V0cHV0IG5vdGhpbmcpCisgICAgcmV0dXJuIG91dDsKK30KKworI2VuZGlmIC8vIEJPT1NUX05PX0lPU1RSRUFNCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9CTEFOS19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvYmxhbmtfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvYmxhbmtfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWUxZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9ibGFua19md2QuaHBwCkBAIC0wLDAgKzEsMjIgQEAKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGJvb3N0IGJsYW5rX2Z3ZC5ocHAgaGVhZGVyIGZpbGUKKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gQ29weXJpZ2h0IChjKSAyMDAzCisvLyBFcmljIEZyaWVkbWFuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX0JMQU5LX0ZXRF9IUFAKKyNkZWZpbmUgQk9PU1RfQkxBTktfRldEX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitzdHJ1Y3QgYmxhbms7CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9CTEFOS19GV0RfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NhbGxfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY2FsbF90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZmVlZmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NhbGxfdHJhaXRzLmhwcApAQCAtMCwwICsxLDI0IEBACisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5IGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisvLyAgU2VlIGJvb3N0L2RldGFpbC9jYWxsX3RyYWl0cy5ocHAgYW5kIGJvb3N0L2RldGFpbC9vYl9jYWxsX3RyYWl0cy5ocHAKKy8vICBmb3IgZnVsbCBjb3B5cmlnaHQgbm90aWNlcy4KKworI2lmbmRlZiBCT09TVF9DQUxMX1RSQUlUU19IUFAKKyNkZWZpbmUgQk9PU1RfQ0FMTF9UUkFJVFNfSFBQCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0hQUAorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjZW5kaWYKKworI2lmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvb2JfY2FsbF90cmFpdHMuaHBwPgorI2Vsc2UKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvY2FsbF90cmFpdHMuaHBwPgorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9DQUxMX1RSQUlUU19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY2hlY2tlZF9kZWxldGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBlYzBkYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY2hlY2tlZF9kZWxldGUuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKyNpZm5kZWYgQk9PU1RfQ0hFQ0tFRF9ERUxFVEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0NIRUNLRURfREVMRVRFX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9jaGVja2VkX2RlbGV0ZS5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyLCAyMDAzIFBldGVyIERpbW92CisvLyAgQ29weXJpZ2h0IChjKSAyMDAzIERhbmllbCBGcmV5CisvLyAgQ29weXJpZ2h0IChjKSAyMDAzIEhvd2FyZCBIaW5uYW50CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L2NoZWNrZWRfZGVsZXRlLmh0bWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworLy8gdmVyaWZ5IHRoYXQgdHlwZXMgYXJlIGNvbXBsZXRlIGZvciBpbmNyZWFzZWQgc2FmZXR5CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIGNoZWNrZWRfZGVsZXRlKFQgKiB4KQoreworICAgIC8vIGludGVudGlvbmFsbHkgY29tcGxleCAtIHNpbXBsaWZpY2F0aW9uIGNhdXNlcyByZWdyZXNzaW9ucworICAgIHR5cGVkZWYgY2hhciB0eXBlX211c3RfYmVfY29tcGxldGVbIHNpemVvZihUKT8gMTogLTEgXTsKKyAgICAodm9pZCkgc2l6ZW9mKHR5cGVfbXVzdF9iZV9jb21wbGV0ZSk7CisgICAgZGVsZXRlIHg7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIGNoZWNrZWRfYXJyYXlfZGVsZXRlKFQgKiB4KQoreworICAgIHR5cGVkZWYgY2hhciB0eXBlX211c3RfYmVfY29tcGxldGVbIHNpemVvZihUKT8gMTogLTEgXTsKKyAgICAodm9pZCkgc2l6ZW9mKHR5cGVfbXVzdF9iZV9jb21wbGV0ZSk7CisgICAgZGVsZXRlIFtdIHg7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBjaGVja2VkX2RlbGV0ZXIKK3sKKyAgICB0eXBlZGVmIHZvaWQgcmVzdWx0X3R5cGU7CisgICAgdHlwZWRlZiBUICogYXJndW1lbnRfdHlwZTsKKworICAgIHZvaWQgb3BlcmF0b3IoKShUICogeCkgY29uc3QKKyAgICB7CisgICAgICAgIC8vIG5kbmJvb3N0OjogZGlzYWJsZXMgQURMCisgICAgICAgIG5kbmJvb3N0OjpjaGVja2VkX2RlbGV0ZSh4KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgY2hlY2tlZF9hcnJheV9kZWxldGVyCit7CisgICAgdHlwZWRlZiB2b2lkIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgVCAqIGFyZ3VtZW50X3R5cGU7CisKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCAqIHgpIGNvbnN0CisgICAgeworICAgICAgICBuZG5ib29zdDo6Y2hlY2tlZF9hcnJheV9kZWxldGUoeCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX0NIRUNLRURfREVMRVRFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2Fzc2VydC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvYXNzZXJ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDhjNWFkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2Fzc2VydC5ocHAKQEAgLTAsMCArMSw0NiBAQAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDYuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgQk9PU1RfQ09OQ0VQVF9BU1NFUlRfRFdBMjAwNjQzMF9IUFAKKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfQVNTRVJUX0RXQTIwMDY0MzBfSFBQCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisvLyBUaGUgb2xkIHByb3RvY29sIHVzZWQgYSBjb25zdHJhaW50cygpIG1lbWJlciBmdW5jdGlvbiBpbiBjb25jZXB0CisvLyBjaGVja2luZyBjbGFzc2VzLiAgSWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIFNGSU5BRSwgd2UgY2FuIGRldGVjdAorLy8gdGhhdCBmdW5jdGlvbiBhbmQgc2VhbWxlc3NseSBzdXBwb3J0IHRoZSBvbGQgY29uY2VwdCBjaGVja2luZworLy8gY2xhc3Nlcy4gIEluIHRoaXMgcmVsZWFzZSwgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQKKy8vIGNvbmNlcHQgY2hlY2tpbmcgY2xhc3NlcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIHdoZXJlIGF2YWlsYWJsZS4KKy8vIFRoZSBvbGQgcHJvdG9jb2wgaXMgZGVwcmVjYXRlZCwgdGhvdWdoLCBhbmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorLy8gd2lsbCBubyBsb25nZXIgYmUgdGhlIGRlZmF1bHQgaW4gdGhlIG5leHQgcmVsZWFzZS4KKworIyBpZiAhZGVmaW5lZChCT09TVF9OT19PTERfQ09OQ0VQVF9TVVBQT1JUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX05PX1NGSU5BRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICYmICEoQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPT0gMykgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfTUlOT1JfXywgPCA0KSkgXAorICAgICYmICEoQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPT0gMikpCisKKy8vIE5vdGU6IGdjYy0yLjk2IHRocm91Z2ggMy4zLnggaGF2ZSBzb21lIFNGSU5BRSwgYnV0IG5vIGFiaWxpdHkgdG8KKy8vIGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgcGFydGljdWxhcm1lbWJlciBmdW5jdGlvbnMuCisKKyMgIGRlZmluZSBCT09TVF9PTERfQ09OQ0VQVF9TVVBQT1JUCisKKyMgZW5kaWYKKworIyBpZmRlZiBCT09TVF9NU1ZDCisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L2RldGFpbC9tc3ZjLmhwcD4KKyMgZWxpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTY0KSkKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JvcmxhbmQuaHBwPgorIyBlbHNlIAorIyAgaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvZ2VuZXJhbC5ocHA+CisjIGVuZGlmCisKKyAgLy8gVXNhZ2UsIGluIGNsYXNzIG9yIGZ1bmN0aW9uIGNvbnRleHQ6CisgIC8vCisgIC8vICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoVW5hcnlGdW5jdGlvbkNvbmNlcHQ8Rixib29sLGludD4pKTsKKyAgLy8KKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfQVNTRVJUKE1vZGVsSW5QYXJlbnMpIFwKKyAgICBCT09TVF9DT05DRVBUX0FTU0VSVF9GTih2b2lkKCopTW9kZWxJblBhcmVucykKKworI2VuZGlmIC8vIEJPT1NUX0NPTkNFUFRfQVNTRVJUX0RXQTIwMDY0MzBfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JhY2t3YXJkX2NvbXBhdGliaWxpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9iYWNrd2FyZF9jb21wYXRpYmlsaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjg0NTY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9iYWNrd2FyZF9jb21wYXRpYmlsaXR5LmhwcApAQCAtMCwwICsxLDE2IEBACisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwOS4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorI2lmbmRlZiBCT09TVF9DT05DRVBUX0JBQ0tXQVJEX0NPTVBBVElCSUxJVFlfRFdBMjAwOTY4X0hQUAorIyBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9CQUNLV0FSRF9DT01QQVRJQklMSVRZX0RXQTIwMDk2OF9IUFAKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgIG5hbWVzcGFjZSBjb25jZXB0cyB7fQorCisjIGlmIGRlZmluZWQoQk9PU1RfSEFTX0NPTkNFUFRTKSAmJiAhZGVmaW5lZChCT09TVF9DT05DRVBUX05PX0JBQ0tXQVJEX0tFWVdPUkQpCisgIG5hbWVzcGFjZSBjb25jZXB0ID0gY29uY2VwdHM7CisjIGVuZGlmIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmNvbmNlcHQKKworI2VuZGlmIC8vIEJPT1NUX0NPTkNFUFRfQkFDS1dBUkRfQ09NUEFUSUJJTElUWV9EV0EyMDA5NjhfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JvcmxhbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9ib3JsYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGUyOGNhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9ib3JsYW5kLmhwcApAQCAtMCwwICsxLDMwIEBACisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwNi4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorI2lmbmRlZiBCT09TVF9DT05DRVBUX0RFVEFJTF9CT1JMQU5EX0RXQTIwMDY0MjlfSFBQCisjIGRlZmluZSBCT09TVF9DT05DRVBUX0RFVEFJTF9CT1JMQU5EX0RXQTIwMDY0MjlfSFBQCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JhY2t3YXJkX2NvbXBhdGliaWxpdHkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgY29uY2VwdHMgeworCit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWxGblB0cj4KK3N0cnVjdCByZXF1aXJlOworCit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CitzdHJ1Y3QgcmVxdWlyZTx2b2lkKCopKE1vZGVsKT4KK3sKKyAgICBlbnVtIHsgaW5zdGFudGlhdGUgPSBzaXplb2YoKCgoTW9kZWwqKTApLT5+TW9kZWwoKSksIDMpIH07Cit9OworCisjICBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9BU1NFUlRfRk4oIE1vZGVsRm5QdHIgKSAgICAgICAgIFwKKyAgZW51bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBCT09TVF9QUF9DQVQoYm9vc3RfY29uY2VwdF9jaGVjayxfX0xJTkVfXykgPSAgICAgIFwKKyAgICAgIG5kbmJvb3N0Ojpjb25jZXB0czo6cmVxdWlyZTxNb2RlbEZuUHRyPjo6aW5zdGFudGlhdGUgIFwKKyAgfQorCit9fSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmNvbmNlcHQKKworI2VuZGlmIC8vIEJPT1NUX0NPTkNFUFRfREVUQUlMX0JPUkxBTkRfRFdBMjAwNjQyOV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvY29uY2VwdF9kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X2RlZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlkYTAzNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvY29uY2VwdF9kZWYuaHBwCkBAIC0wLDAgKzEsNTEgQEAKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA2LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIEJPT1NUX0NPTkNFUFRfREVUQUlMX0NPTkNFUFRfREVGX0RXQTIwMDY1MV9IUFAKKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfREVUQUlMX0NPTkNFUFRfREVGX0RXQTIwMDY1MV9IUFAKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaF9pLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjZW5kaWYgLy8gQk9PU1RfQ09OQ0VQVF9ERVRBSUxfQ09OQ0VQVF9ERUZfRFdBMjAwNjUxX0hQUAorCisvLyBCT09TVF9jb25jZXB0KFNvbWVOYW1lLCAocDEpKHAyKS4uLihwTikpCisvLworLy8gRXhwYW5kcyB0byAidGVtcGxhdGUgPGNsYXNzIHAxLCBjbGFzcyBwMiwgLi4uY2xhc3MgcE4+IHN0cnVjdCBTb21lTmFtZSIKKy8vCisvLyBBbHNvIGRlZmluZXMgYW4gZXF1aXZhbGVudCBTb21lTmFtZUNvbmNlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisvLyBNYXliZSBpbiB0aGUgbmV4dCByZWxlYXNlIHdlIGNhbiBraWxsIG9mZiB0aGUgIkNvbmNlcHQiIHN1ZmZpeCBmb3IgZ29vZC4KKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA8PSAzKQorIyBkZWZpbmUgQk9PU1RfY29uY2VwdChuYW1lLCBwYXJhbXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSShCT09TVF9DT05DRVBUX3R5cGVuYW1lLH4scGFyYW1zKSA+ICAgICAgIFwKKyAgICBzdHJ1Y3QgbmFtZTsgLyogZm9yd2FyZCBkZWNsYXJhdGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSShCT09TVF9DT05DRVBUX3R5cGVuYW1lLH4scGFyYW1zKSA+ICAgICAgIFwKKyAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKG5hbWUsQ29uY2VwdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgOiBuYW1lPCBCT09TVF9QUF9TRVFfRU5VTShwYXJhbXMpID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLyogYXQgbGVhc3QgMi45NiBhbmQgMy40LjMgYm90aCBuZWVkIHRoaXMgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9QUF9DQVQobmFtZSxDb25jZXB0KSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlIDwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfQ09OQ0VQVF90eXBlbmFtZSx+LHBhcmFtcykgPiAgICAgICBcCisgICAgc3RydWN0IG5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisjZWxzZQorIyBkZWZpbmUgQk9PU1RfY29uY2VwdChuYW1lLCBwYXJhbXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSShCT09TVF9DT05DRVBUX3R5cGVuYW1lLH4scGFyYW1zKSA+ICAgICAgIFwKKyAgICBzdHJ1Y3QgbmFtZTsgLyogZm9yd2FyZCBkZWNsYXJhdGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSShCT09TVF9DT05DRVBUX3R5cGVuYW1lLH4scGFyYW1zKSA+ICAgICAgIFwKKyAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKG5hbWUsQ29uY2VwdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgOiBuYW1lPCBCT09TVF9QUF9TRVFfRU5VTShwYXJhbXMpID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSShCT09TVF9DT05DRVBUX3R5cGVuYW1lLH4scGFyYW1zKSA+ICAgICAgIFwKKyAgICBzdHJ1Y3QgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNlbmRpZgorICAgIAorLy8gSGVscGVyIGZvciBCT09TVF9jb25jZXB0LCBhYm92ZS4KKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfdHlwZW5hbWUociwgaWdub3JlZCwgaW5kZXgsIHQpIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihpbmRleCkgdHlwZW5hbWUgdAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2NvbmNlcHRfdW5kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X3VuZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTNkYjg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X3VuZGVmLmhwcApAQCAtMCwwICsxLDUgQEAKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA2LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjIHVuZGVmIEJPT1NUX2NvbmNlcHRfdHlwZW5hbWUKKyMgdW5kZWYgQk9PU1RfY29uY2VwdApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9nZW5lcmFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvZ2VuZXJhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVmYmYwMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvZ2VuZXJhbC5ocHAKQEAgLTAsMCArMSw3NSBAQAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDYuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgQk9PU1RfQ09OQ0VQVF9ERVRBSUxfR0VORVJBTF9EV0EyMDA2NDI5X0hQUAorIyBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9ERVRBSUxfR0VORVJBTF9EV0EyMDA2NDI5X0hQUAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L2RldGFpbC9iYWNrd2FyZF9jb21wYXRpYmlsaXR5LmhwcD4KKworIyBpZmRlZiBCT09TVF9PTERfQ09OQ0VQVF9TVVBQT1JUCisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L2RldGFpbC9oYXNfY29uc3RyYWludHMuaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgZW5kaWYKKworLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiB3b3JrcyBvbiBDb21lYXUgYW5kIEdDQywgYWxsIHRoZSB3YXkgYmFjayB0bworLy8gMi45NQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGNvbmNlcHRzIHsKKwordGVtcGxhdGUgPGNsYXNzIE1vZGVsRm4+CitzdHJ1Y3QgcmVxdWlyZW1lbnRfOworCituYW1lc3BhY2UgZGV0YWlsCit7CisgIHRlbXBsYXRlIDx2b2lkKCopKCk+IHN0cnVjdCBpbnN0YW50aWF0ZSB7fTsKK30KKwordGVtcGxhdGUgPGNsYXNzIE1vZGVsPgorc3RydWN0IHJlcXVpcmVtZW50Cit7CisgICAgc3RhdGljIHZvaWQgZmFpbGVkKCkgeyAoKE1vZGVsKikwKS0+fk1vZGVsKCk7IH0KK307CisKK3N0cnVjdCBmYWlsZWQge307CisKK3RlbXBsYXRlIDxjbGFzcyBNb2RlbD4KK3N0cnVjdCByZXF1aXJlbWVudDxmYWlsZWQgKioqKioqKioqKioqIE1vZGVsOjoqKioqKioqKioqKio+Cit7CisgICAgc3RhdGljIHZvaWQgZmFpbGVkKCkgeyAoKE1vZGVsKikwKS0+fk1vZGVsKCk7IH0KK307CisKKyMgaWZkZWYgQk9PU1RfT0xEX0NPTkNFUFRfU1VQUE9SVAorCit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CitzdHJ1Y3QgY29uc3RyYWludAoreworICAgIHN0YXRpYyB2b2lkIGZhaWxlZCgpIHsgKChNb2RlbCopMCktPmNvbnN0cmFpbnRzKCk7IH0KK307CisgIAordGVtcGxhdGUgPGNsYXNzIE1vZGVsPgorc3RydWN0IHJlcXVpcmVtZW50Xzx2b2lkKCopKE1vZGVsKT4KKyAgOiBtcGw6OmlmXzwKKyAgICAgICAgY29uY2VwdHM6Om5vdF9zYXRpc2ZpZWQ8TW9kZWw+CisgICAgICAsIGNvbnN0cmFpbnQ8TW9kZWw+CisgICAgICAsIHJlcXVpcmVtZW50PGZhaWxlZCAqKioqKioqKioqKiogTW9kZWw6OioqKioqKioqKioqKj4KKyAgICA+Ojp0eXBlCit7fTsKKyAgCisjIGVsc2UKKworLy8gRm9yIEdDQy0yLngsIHRoZXNlIGNhbid0IGhhdmUgZXhhY3RseSB0aGUgc2FtZSBuYW1lCit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CitzdHJ1Y3QgcmVxdWlyZW1lbnRfPHZvaWQoKikoTW9kZWwpPgorICAgIDogcmVxdWlyZW1lbnQ8ZmFpbGVkICoqKioqKioqKioqKiBNb2RlbDo6KioqKioqKioqKioqPgore307CisgIAorIyBlbmRpZgorCisjICBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9BU1NFUlRfRk4oIE1vZGVsRm5QdHIgKSAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiA6Om5kbmJvb3N0Ojpjb25jZXB0czo6ZGV0YWlsOjppbnN0YW50aWF0ZTwgICAgICAgICAgXAorICAgICY6Om5kbmJvb3N0Ojpjb25jZXB0czo6cmVxdWlyZW1lbnRfPE1vZGVsRm5QdHI+OjpmYWlsZWQ+ICAgIFwKKyAgICAgIEJPT1NUX1BQX0NBVChib29zdF9jb25jZXB0X2NoZWNrLF9fTElORV9fKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfQ09OQ0VQVF9ERVRBSUxfR0VORVJBTF9EV0EyMDA2NDI5X0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9oYXNfY29uc3RyYWludHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9oYXNfY29uc3RyYWludHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MDUxNWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2hhc19jb25zdHJhaW50cy5ocHAKQEAgLTAsMCArMSw1MCBAQAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDYuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgQk9PU1RfQ09OQ0VQVF9ERVRBSUxfSEFTX0NPTlNUUkFJTlRTX0RXQTIwMDY0MjlfSFBQCisjIGRlZmluZSBCT09TVF9DT05DRVBUX0RFVEFJTF9IQVNfQ09OU1RSQUlOVFNfRFdBMjAwNjQyOV9IUFAKKworIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvYmFja3dhcmRfY29tcGF0aWJpbGl0eS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBjb25jZXB0cyB7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sgCisKKy8vIEhlcmUgd2UgaW1wbGVtZW50IHRoZSBtZXRhZnVuY3Rpb24gdGhhdCBkZXRlY3RzIHdoZXRoZXIgYQorLy8gY29uc3RyYWludHMgbWV0YWZ1bmN0aW9uIGV4aXN0cworICB0eXBlZGVmIGNoYXIgeWVzOworICB0eXBlZGVmIGNoYXIgKCZubylbMl07CisKKyAgdGVtcGxhdGUgPGNsYXNzIE1vZGVsLCB2b2lkIChNb2RlbDo6KikoKT4KKyAgc3RydWN0IHdyYXBfY29uc3RyYWludHMge307CisgICAgCisjaWYgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgPD0gMHg1ODApIHx8IGRlZmluZWQoX19DVURBQ0NfXykKKyAgLy8gV29yayBhcm91bmQgdGhlIGZvbGxvd2luZyBib2d1cyBlcnJvciBpbiBTdW4gU3R1ZGlvIDExLCBieQorICAvLyB0dXJuaW5nIG9mZiB0aGUgaGFzX2NvbnN0cmFpbnRzIGZ1bmN0aW9uIGVudGlyZWx5OgorICAvLyAgICBFcnJvcjogY29tcGxleCBleHByZXNzaW9uIG5vdCBhbGxvd2VkIGluIGRlcGVuZGVudCB0ZW1wbGF0ZQorICAvLyAgICBhcmd1bWVudCBleHByZXNzaW9uCisgIGlubGluZSBubyBoYXNfY29uc3RyYWludHNfKC4uLik7CisjZWxzZQorICB0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CisgIGlubGluZSB5ZXMgaGFzX2NvbnN0cmFpbnRzXyhNb2RlbCosIHdyYXBfY29uc3RyYWludHM8TW9kZWwsJk1vZGVsOjpjb25zdHJhaW50cz4qID0gMCk7CisgIGlubGluZSBubyBoYXNfY29uc3RyYWludHNfKC4uLik7CisjZW5kaWYKK30KKworLy8gVGhpcyB3b3VsZCBiZSBjYWxsZWQgImRldGFpbDo6aGFzX2NvbnN0cmFpbnRzLCIgYnV0IGl0IGhhcyBhIHN0cm9uZworLy8gdGVuZGVuY3kgdG8gc2hvdyB1cCBpbiBlcnJvciBtZXNzYWdlcy4KK3RlbXBsYXRlIDxjbGFzcyBNb2RlbD4KK3N0cnVjdCBub3Rfc2F0aXNmaWVkCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICBib29sCisgICAgICAsIHZhbHVlID0gc2l6ZW9mKCBkZXRhaWw6Omhhc19jb25zdHJhaW50c18oKE1vZGVsKikwKSApID09IHNpemVvZihkZXRhaWw6OnllcykgKTsKKyAgICB0eXBlZGVmIG1wbDo6Ym9vbF88dmFsdWU+IHR5cGU7Cit9OworCit9fSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmNvbmNlcHRzOjpkZXRhaWwKKworI2VuZGlmIC8vIEJPT1NUX0NPTkNFUFRfREVUQUlMX0hBU19DT05TVFJBSU5UU19EV0EyMDA2NDI5X0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25jZXB0L2RldGFpbC9tc3ZjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvbXN2Yy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzExZTk0OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvbXN2Yy5ocHAKQEAgLTAsMCArMSwxMTQgQEAKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA2LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIEJPT1NUX0NPTkNFUFRfQ0hFQ0tfTVNWQ19EV0EyMDA2NDI5X0hQUAorIyBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9DSEVDS19NU1ZDX0RXQTIwMDY0MjlfSFBQCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2JhY2t3YXJkX2NvbXBhdGliaWxpdHkuaHBwPgorCisjIGlmZGVmIEJPT1NUX09MRF9DT05DRVBUX1NVUFBPUlQKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmNlcHQvZGV0YWlsL2hhc19jb25zdHJhaW50cy5ocHA+CisjICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyBlbmRpZgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBjb25jZXB0cyB7CisKKwordGVtcGxhdGUgPGNsYXNzIE1vZGVsPgorc3RydWN0IGNoZWNrCit7CisgICAgdmlydHVhbCB2b2lkIGZhaWxlZChNb2RlbCogeCkKKyAgICB7CisgICAgICAgIHgtPn5Nb2RlbCgpOworICAgIH0KK307CisKKyMgaWZuZGVmIEJPT1NUX05PX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK3N0cnVjdCBmYWlsZWQge307Cit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CitzdHJ1Y3QgY2hlY2s8ZmFpbGVkICoqKioqKioqKioqKiBNb2RlbDo6KioqKioqKioqKioqPgoreworICAgIHZpcnR1YWwgdm9pZCBmYWlsZWQoTW9kZWwqIHgpCisgICAgeworICAgICAgICB4LT5+TW9kZWwoKTsKKyAgICB9Cit9OworIyBlbmRpZgorCisjIGlmZGVmIEJPT1NUX09MRF9DT05DRVBUX1NVUFBPUlQKKyAgCituYW1lc3BhY2UgZGV0YWlsCit7CisgIC8vIE5vIG5lZWQgZm9yIGEgdmlydHVhbCBmdW5jdGlvbiBoZXJlLCBzaW5jZSBldmFsdWF0aW5nCisgIC8vIG5vdF9zYXRpc2ZpZWQgYmVsb3cgd2lsbCBoYXZlIGFscmVhZHkgaW5zdGFudGlhdGVkIHRoZQorICAvLyBjb25zdHJhaW50cygpIG1lbWJlci4KKyAgc3RydWN0IGNvbnN0cmFpbnQge307Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBNb2RlbD4KK3N0cnVjdCByZXF1aXJlCisgIDogbXBsOjppZl9jPAorICAgICAgICBub3Rfc2F0aXNmaWVkPE1vZGVsPjo6dmFsdWUKKyAgICAgICwgZGV0YWlsOjpjb25zdHJhaW50CisjIGlmbmRlZiBCT09TVF9OT19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisgICAgICAsIGNoZWNrPE1vZGVsPgorIyBlbHNlCisgICAgICAsIGNoZWNrPGZhaWxlZCAqKioqKioqKioqKiogTW9kZWw6OioqKioqKioqKioqKj4KKyMgZW5kaWYgCisgICAgICAgID46OnR5cGUKK3t9OworICAgICAgCisjIGVsc2UKKyAgCit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CitzdHJ1Y3QgcmVxdWlyZQorIyBpZm5kZWYgQk9PU1RfTk9fUEFSVElBTF9TUEVDSUFMSVpBVElPTgorICAgIDogY2hlY2s8TW9kZWw+CisjIGVsc2UKKyAgICA6IGNoZWNrPGZhaWxlZCAqKioqKioqKioqKiogTW9kZWw6OioqKioqKioqKioqKj4KKyMgZW5kaWYgCit7fTsKKyAgCisjIGVuZGlmCisgICAgCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMxMCkKKworLy8KKy8vIFRoZSBpdGVyYXRvciBsaWJyYXJ5IHNlZXMgc29tZSByZWFsbHkgc3RyYW5nZSBlcnJvcnMgdW5sZXNzIHdlCisvLyBkbyB0aGluZ3MgdGhpcyB3YXkuCisvLwordGVtcGxhdGUgPGNsYXNzIE1vZGVsPgorc3RydWN0IHJlcXVpcmU8dm9pZCgqKShNb2RlbCk+Cit7CisgICAgdmlydHVhbCB2b2lkIGZhaWxlZChNb2RlbCopCisgICAgeworICAgICAgICByZXF1aXJlPE1vZGVsPigpOworICAgIH0KK307CisKKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfQVNTRVJUX0ZOKCBNb2RlbEZuUHRyICkgICAgICBcCitlbnVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9QUF9DQVQoYm9vc3RfY29uY2VwdF9jaGVjayxfX0xJTkVfXykgPSAgICBcCisgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OmNvbmNlcHRzOjpyZXF1aXJlPE1vZGVsRm5QdHI+KSAgICBcCit9CisgIAorIyBlbHNlIC8vIE5vdCB2Yy03LjEKKyAgCit0ZW1wbGF0ZSA8Y2xhc3MgTW9kZWw+CityZXF1aXJlPE1vZGVsPgorcmVxdWlyZV8odm9pZCgqKShNb2RlbCkpOworICAKKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfQVNTRVJUX0ZOKCBNb2RlbEZuUHRyICkgICAgICAgICAgXAorZW51bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9QUF9DQVQoYm9vc3RfY29uY2VwdF9jaGVjayxfX0xJTkVfXykgPSAgICAgICAgXAorICAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OmNvbmNlcHRzOjpyZXF1aXJlXygoTW9kZWxGblB0cikwKSkgXAorfQorICAKKyMgZW5kaWYKK319CisKKyNlbmRpZiAvLyBCT09TVF9DT05DRVBUX0NIRUNLX01TVkNfRFdBMjAwNjQyOV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdC91c2FnZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvdXNhZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NWNkZDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHQvdXNhZ2UuaHBwCkBAIC0wLDAgKzEsNDQgQEAKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA2LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIEJPT1NUX0NPTkNFUFRfVVNBR0VfRFdBMjAwNjkxOV9IUFAKKyMgZGVmaW5lIEJPT1NUX0NPTkNFUFRfVVNBR0VfRFdBMjAwNjkxOV9IUFAKKworIyBpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L2Fzc2VydC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvYmFja3dhcmRfY29tcGF0aWJpbGl0eS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBjb25jZXB0cyB7IAorCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sID09IDIpCisKKyMgIGRlZmluZSBCT09TVF9DT05DRVBUX1VTQUdFKG1vZGVsKSB+bW9kZWwoKQorCisjIGVsc2UgCisKK3RlbXBsYXRlIDxjbGFzcyBNb2RlbD4KK3N0cnVjdCB1c2FnZV9yZXF1aXJlbWVudHMKK3sKKyAgICB+dXNhZ2VfcmVxdWlyZW1lbnRzKCkgeyAoKE1vZGVsKikwKS0+fk1vZGVsKCk7IH0KK307CisKKyMgIGlmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDw9IDMpCisKKyMgICBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9VU0FHRShtb2RlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBtb2RlbCgpOyAvKiBhdCBsZWFzdCAyLjk2IGFuZCAzLjQuMyBib3RoIG5lZWQgdGhpcyA6KCAqLyAgICAgICAgICAgXAorICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKG5kbmJvb3N0Ojpjb25jZXB0czo6dXNhZ2VfcmVxdWlyZW1lbnRzPG1vZGVsPikpOyBcCisgICAgICB+bW9kZWwoKQorCisjICBlbHNlCisKKyMgICBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9VU0FHRShtb2RlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgobmRuYm9vc3Q6OmNvbmNlcHRzOjp1c2FnZV9yZXF1aXJlbWVudHM8bW9kZWw+KSk7IFwKKyAgICAgIH5tb2RlbCgpCisKKyMgIGVuZGlmCisKKyMgZW5kaWYgCisKK319IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6Y29uY2VwdHMKKworI2VuZGlmIC8vIEJPT1NUX0NPTkNFUFRfVVNBR0VfRFdBMjAwNjkxOV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uY2VwdF9jaGVjay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHRfY2hlY2suaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiN2JmNTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmNlcHRfY2hlY2suaHBwCkBAIC0wLDAgKzEsMTA4MyBAQAorLy8KKy8vIChDKSBDb3B5cmlnaHQgSmVyZW15IFNpZWsgMjAwMC4KKy8vIENvcHlyaWdodCAyMDAyIFRoZSBUcnVzdGVlcyBvZiBJbmRpYW5hIFVuaXZlcnNpdHkuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFJldmlzaW9uIEhpc3Rvcnk6CisvLyAgIDA1IE1heSAgIDIwMDE6IFdvcmthcm91bmRzIGZvciBIUCBhQ0MgZnJvbSBUaG9tYXMgTWF0ZWxpY2guIChKZXJlbXkgU2llaykKKy8vICAgMDIgQXByaWwgMjAwMTogUmVtb3ZlZCBsaW1pdHMgaGVhZGVyIGFsdG9nZXRoZXIuIChKZXJlbXkgU2llaykKKy8vICAgMDEgQXByaWwgMjAwMTogTW9kaWZpZWQgdG8gdXNlIG5ldyA8bmRuYm9vc3QvbGltaXRzLmhwcD4gaGVhZGVyLiAoSk1hZGRvY2spCisvLworCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25jZXB0X2NoZWNrIGZvciBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX0NPTkNFUFRfQ0hFQ0tTX0hQUAorIyBkZWZpbmUgQk9PU1RfQ09OQ0VQVF9DSEVDS1NfSFBQCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdC9hc3NlcnQuaHBwPgorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29udmVyc2lvbl90cmFpdHMuaHBwPgorIyBpbmNsdWRlIDx1dGlsaXR5PgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hc3NlcnQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL2l0ZXJhdG9yLmhwcD4KKworIyBpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L3VzYWdlLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvY29uY2VwdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworICAvLworICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5CisgIC8vCisKKyAgdGVtcGxhdGUgPGNsYXNzIE1vZGVsPgorICBpbmxpbmUgdm9pZCBmdW5jdGlvbl9yZXF1aXJlcyhNb2RlbCogPSAwKQorICB7CisgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoTW9kZWwpKTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIHZvaWQgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKFQgY29uc3QmKSB7fQorCisjICBkZWZpbmUgQk9PU1RfQ0xBU1NfUkVRVUlSRSh0eXBlX3ZhciwgbnMsIGNvbmNlcHQpICAgIFwKKyAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgobnM6OmNvbmNlcHQ8dHlwZV92YXI+KSkKKworIyAgZGVmaW5lIEJPT1NUX0NMQVNTX1JFUVVJUkUyKHR5cGVfdmFyMSwgdHlwZV92YXIyLCBucywgY29uY2VwdCkgICBcCisgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKG5zOjpjb25jZXB0PHR5cGVfdmFyMSx0eXBlX3ZhcjI+KSkKKworIyAgZGVmaW5lIEJPT1NUX0NMQVNTX1JFUVVJUkUzKHR2MSwgdHYyLCB0djMsIG5zLCBjb25jZXB0KSAgXAorICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChuczo6Y29uY2VwdDx0djEsdHYyLHR2Mz4pKQorCisjICBkZWZpbmUgQk9PU1RfQ0xBU1NfUkVRVUlSRTQodHYxLCB0djIsIHR2MywgdHY0LCBucywgY29uY2VwdCkgXAorICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChuczo6Y29uY2VwdDx0djEsdHYyLHR2Myx0djQ+KSkKKworCisgIC8vCisgIC8vIEJlZ2luIGNvbmNlcHQgZGVmaW5pdGlvbnMKKyAgLy8KKyAgQk9PU1RfY29uY2VwdChJbnRlZ2VyLCAoVCkpCisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoSW50ZWdlcikKKyAgICAgICAgeworICAgICAgICAgICAgeC5lcnJvcl90eXBlX211c3RfYmVfYW5faW50ZWdlcl90eXBlKCk7CisgICAgICAgIH0KKyAgIHByaXZhdGU6CisgICAgICBUIHg7CisgIH07CisKKyAgdGVtcGxhdGUgPD4gc3RydWN0IEludGVnZXI8Y2hhcj4ge307CisgIHRlbXBsYXRlIDw+IHN0cnVjdCBJbnRlZ2VyPHNpZ25lZCBjaGFyPiB7fTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IEludGVnZXI8dW5zaWduZWQgY2hhcj4ge307CisgIHRlbXBsYXRlIDw+IHN0cnVjdCBJbnRlZ2VyPHNob3J0PiB7fTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IEludGVnZXI8dW5zaWduZWQgc2hvcnQ+IHt9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSW50ZWdlcjxpbnQ+IHt9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSW50ZWdlcjx1bnNpZ25lZCBpbnQ+IHt9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSW50ZWdlcjxsb25nPiB7fTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IEludGVnZXI8dW5zaWduZWQgbG9uZz4ge307CisjIGlmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyAgdGVtcGxhdGUgPD4gc3RydWN0IEludGVnZXI8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiB7fTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IEludGVnZXI8IDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4ge307CisjIGVsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCisgIHRlbXBsYXRlIDw+IHN0cnVjdCBJbnRlZ2VyPF9faW50NjQ+IHt9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSW50ZWdlcjx1bnNpZ25lZCBfX2ludDY0PiB7fTsKKyMgZW5kaWYKKworICBCT09TVF9jb25jZXB0KFNpZ25lZEludGVnZXIsKFQpKSB7CisgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShTaWduZWRJbnRlZ2VyKSB7CisgICAgICB4LmVycm9yX3R5cGVfbXVzdF9iZV9hX3NpZ25lZF9pbnRlZ2VyX3R5cGUoKTsKKyAgICB9CisgICBwcml2YXRlOgorICAgIFQgeDsKKyAgfTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IFNpZ25lZEludGVnZXI8c2lnbmVkIGNoYXI+IHsgfTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IFNpZ25lZEludGVnZXI8c2hvcnQ+IHt9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgU2lnbmVkSW50ZWdlcjxpbnQ+IHt9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgU2lnbmVkSW50ZWdlcjxsb25nPiB7fTsKKyMgaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgU2lnbmVkSW50ZWdlcjwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHt9OworIyBlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgU2lnbmVkSW50ZWdlcjxfX2ludDY0PiB7fTsKKyMgZW5kaWYKKworICBCT09TVF9jb25jZXB0KFVuc2lnbmVkSW50ZWdlciwoVCkpIHsKKyAgICBCT09TVF9DT05DRVBUX1VTQUdFKFVuc2lnbmVkSW50ZWdlcikgeworICAgICAgeC5lcnJvcl90eXBlX211c3RfYmVfYW5fdW5zaWduZWRfaW50ZWdlcl90eXBlKCk7CisgICAgfQorICAgcHJpdmF0ZToKKyAgICBUIHg7CisgIH07CisKKyAgdGVtcGxhdGUgPD4gc3RydWN0IFVuc2lnbmVkSW50ZWdlcjx1bnNpZ25lZCBjaGFyPiB7fTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IFVuc2lnbmVkSW50ZWdlcjx1bnNpZ25lZCBzaG9ydD4ge307CisgIHRlbXBsYXRlIDw+IHN0cnVjdCBVbnNpZ25lZEludGVnZXI8dW5zaWduZWQgaW50PiB7fTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IFVuc2lnbmVkSW50ZWdlcjx1bnNpZ25lZCBsb25nPiB7fTsKKyMgaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVW5zaWduZWRJbnRlZ2VyPCA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHt9OworIyBlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVW5zaWduZWRJbnRlZ2VyPHVuc2lnbmVkIF9faW50NjQ+IHt9OworIyBlbmRpZgorCisgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIC8vIEJhc2ljIENvbmNlcHRzCisKKyAgQk9PU1RfY29uY2VwdChEZWZhdWx0Q29uc3RydWN0aWJsZSwoVFQpKQorICB7CisgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShEZWZhdWx0Q29uc3RydWN0aWJsZSkgeworICAgICAgVFQgYTsgICAgICAgICAgICAgICAvLyByZXF1aXJlIGRlZmF1bHQgY29uc3RydWN0b3IKKyAgICAgIGlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhhKTsKKyAgICB9CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChBc3NpZ25hYmxlLChUVCkpCisgIHsKKyAgICBCT09TVF9DT05DRVBUX1VTQUdFKEFzc2lnbmFibGUpIHsKKyNpZiAhZGVmaW5lZChfSVRFUkFUT1JfKSAvLyBiYWNrX2luc2VydF9pdGVyYXRvciBicm9rZW4gZm9yIFZDKysgU1RMCisgICAgICBhID0gYjsgICAgICAgICAgICAgLy8gcmVxdWlyZSBhc3NpZ25tZW50IG9wZXJhdG9yCisjZW5kaWYKKyAgICAgIGNvbnN0X2NvbnN0cmFpbnRzKGIpOworICAgIH0KKyAgIHByaXZhdGU6CisgICAgdm9pZCBjb25zdF9jb25zdHJhaW50cyhjb25zdCBUVCYgeCkgeworI2lmICFkZWZpbmVkKF9JVEVSQVRPUl8pIC8vIGJhY2tfaW5zZXJ0X2l0ZXJhdG9yIGJyb2tlbiBmb3IgVkMrKyBTVEwKKyAgICAgIGEgPSB4OyAgICAgICAgICAgICAgLy8gY29uc3QgcmVxdWlyZWQgZm9yIGFyZ3VtZW50IHRvIGFzc2lnbm1lbnQKKyNlbHNlCisgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoeCk7CisjZW5kaWYKKyAgICB9CisgICBwcml2YXRlOgorICAgIFRUIGE7CisgICAgVFQgYjsKKyAgfTsKKworCisgIEJPT1NUX2NvbmNlcHQoQ29weUNvbnN0cnVjdGlibGUsKFRUKSkKKyAgeworICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoQ29weUNvbnN0cnVjdGlibGUpIHsKKyAgICAgIFRUIGEoYik7ICAgICAgICAgICAgLy8gcmVxdWlyZSBjb3B5IGNvbnN0cnVjdG9yCisgICAgICBUVCogcHRyID0gJmE7ICAgICAgIC8vIHJlcXVpcmUgYWRkcmVzcyBvZiBvcGVyYXRvcgorICAgICAgY29uc3RfY29uc3RyYWludHMoYSk7CisgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcocHRyKTsKKyAgICB9CisgICBwcml2YXRlOgorICAgIHZvaWQgY29uc3RfY29uc3RyYWludHMoY29uc3QgVFQmIGEpIHsKKyAgICAgIFRUIGMoYSk7ICAgICAgICAgICAgLy8gcmVxdWlyZSBjb25zdCBjb3B5IGNvbnN0cnVjdG9yCisgICAgICBjb25zdCBUVCogcHRyID0gJmE7IC8vIHJlcXVpcmUgY29uc3QgYWRkcmVzcyBvZiBvcGVyYXRvcgorICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMpOworICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHB0cik7CisgICAgfQorICAgIFRUIGI7CisgIH07CisKKyNpZiAoZGVmaW5lZCBfTVNDX1ZFUikKKyMgcHJhZ21hIHdhcm5pbmcoIHB1c2ggKQorIyBwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ1MTAgKSAvLyBkZWZhdWx0IGNvbnN0cnVjdG9yIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQKKyMgcHJhZ21hIHdhcm5pbmcoIGRpc2FibGUgOiA0NjEwICkgLy8gb2JqZWN0ICdjbGFzcycgY2FuIG5ldmVyIGJlIGluc3RhbnRpYXRlZCAtIHVzZXItZGVmaW5lZCBjb25zdHJ1Y3RvciByZXF1aXJlZAorI2VuZGlmCisgIC8vIFRoZSBTR0kgU1RMIHZlcnNpb24gb2YgQXNzaWduYWJsZSByZXF1aXJlcyBjb3B5IGNvbnN0cnVjdG9yIGFuZCBvcGVyYXRvcj0KKyAgQk9PU1RfY29uY2VwdChTR0lBc3NpZ25hYmxlLChUVCkpCisgIHsKKyAgICBCT09TVF9DT05DRVBUX1VTQUdFKFNHSUFzc2lnbmFibGUpIHsKKyAgICAgIFRUIGMoYSk7CisjaWYgIWRlZmluZWQoX0lURVJBVE9SXykgLy8gYmFja19pbnNlcnRfaXRlcmF0b3IgYnJva2VuIGZvciBWQysrIFNUTAorICAgICAgYSA9IGI7ICAgICAgICAgICAgICAvLyByZXF1aXJlIGFzc2lnbm1lbnQgb3BlcmF0b3IKKyNlbmRpZgorICAgICAgY29uc3RfY29uc3RyYWludHMoYik7CisgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoYyk7CisgICAgfQorICAgcHJpdmF0ZToKKyAgICB2b2lkIGNvbnN0X2NvbnN0cmFpbnRzKGNvbnN0IFRUJiB4KSB7CisgICAgICBUVCBjKHgpOworI2lmICFkZWZpbmVkKF9JVEVSQVRPUl8pIC8vIGJhY2tfaW5zZXJ0X2l0ZXJhdG9yIGJyb2tlbiBmb3IgVkMrKyBTVEwKKyAgICAgIGEgPSB4OyAgICAgICAgICAgICAgLy8gY29uc3QgcmVxdWlyZWQgZm9yIGFyZ3VtZW50IHRvIGFzc2lnbm1lbnQKKyNlbmRpZgorICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMpOworICAgIH0KKyAgICBUVCBhOworICAgIFRUIGI7CisgIH07CisjaWYgKGRlZmluZWQgX01TQ19WRVIpCisjIHByYWdtYSB3YXJuaW5nKCBwb3AgKQorI2VuZGlmCisKKyAgQk9PU1RfY29uY2VwdChDb252ZXJ0aWJsZSwoWCkoWSkpCisgIHsKKyAgICBCT09TVF9DT05DRVBUX1VTQUdFKENvbnZlcnRpYmxlKSB7CisgICAgICBZIHkgPSB4OworICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHkpOworICAgIH0KKyAgIHByaXZhdGU6CisgICAgWCB4OworICB9OworCisgIC8vIFRoZSBDKysgc3RhbmRhcmQgcmVxdWlyZW1lbnRzIGZvciBtYW55IGNvbmNlcHRzIHRhbGsgYWJvdXQgcmV0dXJuCisgIC8vIHR5cGVzIHRoYXQgbXVzdCBiZSAiY29udmVydGlibGUgdG8gYm9vbCIuICBUaGUgcHJvYmxlbSB3aXRoIHRoaXMKKyAgLy8gcmVxdWlyZW1lbnQgaXMgdGhhdCBpdCBsZWF2ZXMgdGhlIGRvb3Igb3BlbiBmb3IgZXZpbCBwcm94aWVzIHRoYXQKKyAgLy8gZGVmaW5lIHRoaW5ncyBsaWtlIG9wZXJhdG9yfHwgd2l0aCBzdHJhbmdlIHJldHVybiB0eXBlcy4gIFR3bworICAvLyBwb3NzaWJsZSBzb2x1dGlvbnMgYXJlOgorICAvLyAxKSByZXF1aXJlIHRoZSByZXR1cm4gdHlwZSB0byBiZSBleGFjdGx5IGJvb2wKKyAgLy8gMikgc3RheSB3aXRoIGNvbnZlcnRpYmxlIHRvIGJvb2wsIGFuZCBhbHNvCisgIC8vICAgIHNwZWNpZnkgc3R1ZmYgYWJvdXQgYWxsIHRoZSBsb2dpY2FsIG9wZXJhdG9ycy4KKyAgLy8gRm9yIG5vdyB3ZSBqdXN0IHRlc3QgZm9yIGNvbnZlcnRpYmxlIHRvIGJvb2wuCisgIHRlbXBsYXRlIDxjbGFzcyBUVD4KKyAgdm9pZCByZXF1aXJlX2Jvb2xlYW5fZXhwcihjb25zdCBUVCYgdCkgeworICAgIGJvb2wgeCA9IHQ7CisgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHgpOworICB9CisKKyAgQk9PU1RfY29uY2VwdChFcXVhbGl0eUNvbXBhcmFibGUsKFRUKSkKKyAgeworICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoRXF1YWxpdHlDb21wYXJhYmxlKSB7CisgICAgICByZXF1aXJlX2Jvb2xlYW5fZXhwcihhID09IGIpOworICAgICAgcmVxdWlyZV9ib29sZWFuX2V4cHIoYSAhPSBiKTsKKyAgICB9CisgICBwcml2YXRlOgorICAgIFRUIGEsIGI7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChMZXNzVGhhbkNvbXBhcmFibGUsKFRUKSkKKyAgeworICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoTGVzc1RoYW5Db21wYXJhYmxlKSB7CisgICAgICByZXF1aXJlX2Jvb2xlYW5fZXhwcihhIDwgYik7CisgICAgfQorICAgcHJpdmF0ZToKKyAgICBUVCBhLCBiOworICB9OworCisgIC8vIFRoaXMgaXMgZXF1aXZhbGVudCB0byBTR0kgU1RMJ3MgTGVzc1RoYW5Db21wYXJhYmxlLgorICBCT09TVF9jb25jZXB0KENvbXBhcmFibGUsKFRUKSkKKyAgeworICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoQ29tcGFyYWJsZSkgeworICAgICAgcmVxdWlyZV9ib29sZWFuX2V4cHIoYSA8IGIpOworICAgICAgcmVxdWlyZV9ib29sZWFuX2V4cHIoYSA+IGIpOworICAgICAgcmVxdWlyZV9ib29sZWFuX2V4cHIoYSA8PSBiKTsKKyAgICAgIHJlcXVpcmVfYm9vbGVhbl9leHByKGEgPj0gYik7CisgICAgfQorICAgcHJpdmF0ZToKKyAgICBUVCBhLCBiOworICB9OworCisjZGVmaW5lIEJPT1NUX0RFRklORV9CSU5BUllfUFJFRElDQVRFX09QX0NPTlNUUkFJTlQoT1AsTkFNRSkgICAgXAorICBCT09TVF9jb25jZXB0KE5BTUUsIChGaXJzdCkoU2Vjb25kKSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKE5BTUUpIHsgKHZvaWQpY29uc3RyYWludHNfKCk7IH0gICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICBwcml2YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgYm9vbCBjb25zdHJhaW50c18oKSB7IHJldHVybiBhIE9QIGI7IH0gICAgICAgICAgICAgICAgICBcCisgICAgICAgIEZpcnN0IGE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBTZWNvbmQgYjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgfQorCisjZGVmaW5lIEJPT1NUX0RFRklORV9CSU5BUllfT1BFUkFUT1JfQ09OU1RSQUlOVChPUCxOQU1FKSAgICBcCisgIEJPT1NUX2NvbmNlcHQoTkFNRSwgKFJldCkoRmlyc3QpKFNlY29uZCkpICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKE5BTUUpIHsgKHZvaWQpY29uc3RyYWludHNfKCk7IH0gICAgICAgICAgICAgICAgICAgICBcCisgIHByaXZhdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBSZXQgY29uc3RyYWludHNfKCkgeyByZXR1cm4gYSBPUCBiOyB9ICAgICAgICAgICAgICAgICBcCisgICAgICBGaXJzdCBhOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBTZWNvbmQgYjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworICBCT09TVF9ERUZJTkVfQklOQVJZX1BSRURJQ0FURV9PUF9DT05TVFJBSU5UKD09LCBFcXVhbE9wKTsKKyAgQk9PU1RfREVGSU5FX0JJTkFSWV9QUkVESUNBVEVfT1BfQ09OU1RSQUlOVCghPSwgTm90RXF1YWxPcCk7CisgIEJPT1NUX0RFRklORV9CSU5BUllfUFJFRElDQVRFX09QX0NPTlNUUkFJTlQoPCwgTGVzc1RoYW5PcCk7CisgIEJPT1NUX0RFRklORV9CSU5BUllfUFJFRElDQVRFX09QX0NPTlNUUkFJTlQoPD0sIExlc3NFcXVhbE9wKTsKKyAgQk9PU1RfREVGSU5FX0JJTkFSWV9QUkVESUNBVEVfT1BfQ09OU1RSQUlOVCg+LCBHcmVhdGVyVGhhbk9wKTsKKyAgQk9PU1RfREVGSU5FX0JJTkFSWV9QUkVESUNBVEVfT1BfQ09OU1RSQUlOVCg+PSwgR3JlYXRlckVxdWFsT3ApOworCisgIEJPT1NUX0RFRklORV9CSU5BUllfT1BFUkFUT1JfQ09OU1RSQUlOVCgrLCBQbHVzT3ApOworICBCT09TVF9ERUZJTkVfQklOQVJZX09QRVJBVE9SX0NPTlNUUkFJTlQoKiwgVGltZXNPcCk7CisgIEJPT1NUX0RFRklORV9CSU5BUllfT1BFUkFUT1JfQ09OU1RSQUlOVCgvLCBEaXZpZGVPcCk7CisgIEJPT1NUX0RFRklORV9CSU5BUllfT1BFUkFUT1JfQ09OU1RSQUlOVCgtLCBTdWJ0cmFjdE9wKTsKKyAgQk9PU1RfREVGSU5FX0JJTkFSWV9PUEVSQVRPUl9DT05TVFJBSU5UKCUsIE1vZE9wKTsKKworICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAvLyBGdW5jdGlvbiBPYmplY3QgQ29uY2VwdHMKKworICBCT09TVF9jb25jZXB0KEdlbmVyYXRvciwoRnVuYykoUmV0dXJuKSkKKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShHZW5lcmF0b3IpIHsgdGVzdChpc192b2lkPFJldHVybj4oKSk7IH0KKworICAgcHJpdmF0ZToKKyAgICAgIHZvaWQgdGVzdChuZG5ib29zdDo6bXBsOjpmYWxzZV8pCisgICAgICB7CisgICAgICAgICAgLy8gRG8gd2UgcmVhbGx5IHdhbnQgYSByZWZlcmVuY2UgaGVyZT8KKyAgICAgICAgICBjb25zdCBSZXR1cm4mIHIgPSBmKCk7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorCisgICAgICB2b2lkIHRlc3QobmRuYm9vc3Q6Om1wbDo6dHJ1ZV8pCisgICAgICB7CisgICAgICAgICAgZigpOworICAgICAgfQorCisgICAgICBGdW5jIGY7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChVbmFyeUZ1bmN0aW9uLChGdW5jKShSZXR1cm4pKEFyZykpCisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoVW5hcnlGdW5jdGlvbikgeyB0ZXN0KGlzX3ZvaWQ8UmV0dXJuPigpKTsgfQorCisgICBwcml2YXRlOgorICAgICAgdm9pZCB0ZXN0KG5kbmJvb3N0OjptcGw6OmZhbHNlXykKKyAgICAgIHsKKyAgICAgICAgICBmKGFyZyk7ICAgICAgICAgICAgICAgLy8gInByaW1pbmcgdGhlIHB1bXAiIHRoaXMgd2F5IGtlZXBzIG1zdmM2IGhhcHB5IChJQ0UpCisgICAgICAgICAgUmV0dXJuIHIgPSBmKGFyZyk7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorCisgICAgICB2b2lkIHRlc3QobmRuYm9vc3Q6Om1wbDo6dHJ1ZV8pCisgICAgICB7CisgICAgICAgICAgZihhcmcpOworICAgICAgfQorCisjaWYgKEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIEJPT1NUX1RFU1RFRF9BVCg0KSBcCisgICAgICAgICAgICAgICAgICAgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPiAzKSkpCisgICAgICAvLyBEZWNsYXJlIGEgZHVtbXkgY29uc3RydWt0b3IgdG8gbWFrZSBnY2MgaGFwcHkuCisgICAgICAvLyBJdCBzZWVtcyB0aGUgY29tcGlsZXIgY2FuIG5vdCBnZW5lcmF0ZSBhIHNlbnNpYmxlIGNvbnN0cnVjdG9yIHdoZW4gdGhpcyBpcyBpbnN0YW50aWF0ZWQgd2l0aCBhIHJlZmVuY2UgdHlwZS4KKyAgICAgIC8vICh3YXJuaW5nOiBub24tc3RhdGljIHJlZmVyZW5jZSAiY29uc3QgZG91YmxlJiBuZG5ib29zdDo6VW5hcnlGdW5jdGlvbjxZb3VyQ2xhc3NIZXJlPjo6YXJnIgorICAgICAgLy8gaW4gY2xhc3Mgd2l0aG91dCBhIGNvbnN0cnVjdG9yIFstV3VuaW5pdGlhbGl6ZWRdKQorICAgICAgVW5hcnlGdW5jdGlvbigpOworI2VuZGlmCisKKyAgICAgIEZ1bmMgZjsKKyAgICAgIEFyZyBhcmc7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChCaW5hcnlGdW5jdGlvbiwoRnVuYykoUmV0dXJuKShGaXJzdCkoU2Vjb25kKSkKKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShCaW5hcnlGdW5jdGlvbikgeyB0ZXN0KGlzX3ZvaWQ8UmV0dXJuPigpKTsgfQorICAgcHJpdmF0ZToKKyAgICAgIHZvaWQgdGVzdChuZG5ib29zdDo6bXBsOjpmYWxzZV8pCisgICAgICB7CisgICAgICAgICAgZihmaXJzdCxzZWNvbmQpOworICAgICAgICAgIFJldHVybiByID0gZihmaXJzdCwgc2Vjb25kKTsgLy8gcmVxdWlyZSBvcGVyYXRvcigpCisgICAgICAgICAgKHZvaWQpcjsKKyAgICAgIH0KKworICAgICAgdm9pZCB0ZXN0KG5kbmJvb3N0OjptcGw6OnRydWVfKQorICAgICAgeworICAgICAgICAgIGYoZmlyc3Qsc2Vjb25kKTsKKyAgICAgIH0KKworI2lmIChCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCBCT09TVF9URVNURURfQVQoNCkgXAorICAgICAgICAgICAgICAgICAgICAgICYmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sID4gMykpKQorICAgICAgLy8gRGVjbGFyZSBhIGR1bW15IGNvbnN0cnVjdG9yIHRvIG1ha2UgZ2NjIGhhcHB5LgorICAgICAgLy8gSXQgc2VlbXMgdGhlIGNvbXBpbGVyIGNhbiBub3QgZ2VuZXJhdGUgYSBzZW5zaWJsZSBjb25zdHJ1Y3RvciB3aGVuIHRoaXMgaXMgaW5zdGFudGlhdGVkIHdpdGggYSByZWZlbmNlIHR5cGUuCisgICAgICAvLyAod2FybmluZzogbm9uLXN0YXRpYyByZWZlcmVuY2UgImNvbnN0IGRvdWJsZSYgbmRuYm9vc3Q6OkJpbmFyeUZ1bmN0aW9uPFlvdXJDbGFzc0hlcmU+OjphcmciCisgICAgICAvLyBpbiBjbGFzcyB3aXRob3V0IGEgY29uc3RydWN0b3IgWy1XdW5pbml0aWFsaXplZF0pCisgICAgICBCaW5hcnlGdW5jdGlvbigpOworI2VuZGlmCisKKyAgICAgIEZ1bmMgZjsKKyAgICAgIEZpcnN0IGZpcnN0OworICAgICAgU2Vjb25kIHNlY29uZDsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KFVuYXJ5UHJlZGljYXRlLChGdW5jKShBcmcpKQorICB7CisgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShVbmFyeVByZWRpY2F0ZSkgeworICAgICAgcmVxdWlyZV9ib29sZWFuX2V4cHIoZihhcmcpKTsgLy8gcmVxdWlyZSBvcGVyYXRvcigpIHJldHVybmluZyBib29sCisgICAgfQorICAgcHJpdmF0ZToKKyNpZiAoQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgQk9PU1RfVEVTVEVEX0FUKDQpIFwKKyAgICAgICAgICAgICAgICAgICAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA+IDMpKSkKKyAgICAgIC8vIERlY2xhcmUgYSBkdW1teSBjb25zdHJ1Y3RvciB0byBtYWtlIGdjYyBoYXBweS4KKyAgICAgIC8vIEl0IHNlZW1zIHRoZSBjb21waWxlciBjYW4gbm90IGdlbmVyYXRlIGEgc2Vuc2libGUgY29uc3RydWN0b3Igd2hlbiB0aGlzIGlzIGluc3RhbnRpYXRlZCB3aXRoIGEgcmVmZW5jZSB0eXBlLgorICAgICAgLy8gKHdhcm5pbmc6IG5vbi1zdGF0aWMgcmVmZXJlbmNlICJjb25zdCBkb3VibGUmIG5kbmJvb3N0OjpVbmFyeVByZWRpY2F0ZTxZb3VyQ2xhc3NIZXJlPjo6YXJnIgorICAgICAgLy8gaW4gY2xhc3Mgd2l0aG91dCBhIGNvbnN0cnVjdG9yIFstV3VuaW5pdGlhbGl6ZWRdKQorICAgICAgVW5hcnlQcmVkaWNhdGUoKTsKKyNlbmRpZgorCisgICAgRnVuYyBmOworICAgIEFyZyBhcmc7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChCaW5hcnlQcmVkaWNhdGUsKEZ1bmMpKEZpcnN0KShTZWNvbmQpKQorICB7CisgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShCaW5hcnlQcmVkaWNhdGUpIHsKKyAgICAgIHJlcXVpcmVfYm9vbGVhbl9leHByKGYoYSwgYikpOyAvLyByZXF1aXJlIG9wZXJhdG9yKCkgcmV0dXJuaW5nIGJvb2wKKyAgICB9CisgICBwcml2YXRlOgorI2lmIChCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCBCT09TVF9URVNURURfQVQoNCkgXAorICAgICAgICAgICAgICAgICAgICAgICYmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sID4gMykpKQorICAgICAgLy8gRGVjbGFyZSBhIGR1bW15IGNvbnN0cnVjdG9yIHRvIG1ha2UgZ2NjIGhhcHB5LgorICAgICAgLy8gSXQgc2VlbXMgdGhlIGNvbXBpbGVyIGNhbiBub3QgZ2VuZXJhdGUgYSBzZW5zaWJsZSBjb25zdHJ1Y3RvciB3aGVuIHRoaXMgaXMgaW5zdGFudGlhdGVkIHdpdGggYSByZWZlbmNlIHR5cGUuCisgICAgICAvLyAod2FybmluZzogbm9uLXN0YXRpYyByZWZlcmVuY2UgImNvbnN0IGRvdWJsZSYgbmRuYm9vc3Q6OkJpbmFyeVByZWRpY2F0ZTxZb3VyQ2xhc3NIZXJlPjo6YXJnIgorICAgICAgLy8gaW4gY2xhc3Mgd2l0aG91dCBhIGNvbnN0cnVjdG9yIFstV3VuaW5pdGlhbGl6ZWRdKQorICAgICAgQmluYXJ5UHJlZGljYXRlKCk7CisjZW5kaWYKKyAgICBGdW5jIGY7CisgICAgRmlyc3QgYTsKKyAgICBTZWNvbmQgYjsKKyAgfTsKKworICAvLyB1c2UgdGhpcyB3aGVuIGZ1bmN0b3IgaXMgdXNlZCBpbnNpZGUgYSBjb250YWluZXIgY2xhc3MgbGlrZSBzdGQ6OnNldAorICBCT09TVF9jb25jZXB0KENvbnN0X0JpbmFyeVByZWRpY2F0ZSwoRnVuYykoRmlyc3QpKFNlY29uZCkpCisgICAgOiBCaW5hcnlQcmVkaWNhdGU8RnVuYywgRmlyc3QsIFNlY29uZD4KKyAgeworICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoQ29uc3RfQmluYXJ5UHJlZGljYXRlKSB7CisgICAgICBjb25zdF9jb25zdHJhaW50cyhmKTsKKyAgICB9CisgICBwcml2YXRlOgorICAgIHZvaWQgY29uc3RfY29uc3RyYWludHMoY29uc3QgRnVuYyYgZnVuKSB7CisgICAgICAvLyBvcGVyYXRvcigpIG11c3QgYmUgYSBjb25zdCBtZW1iZXIgZnVuY3Rpb24KKyAgICAgIHJlcXVpcmVfYm9vbGVhbl9leHByKGZ1bihhLCBiKSk7CisgICAgfQorI2lmIChCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCBCT09TVF9URVNURURfQVQoNCkgXAorICAgICAgICAgICAgICAgICAgICAgICYmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sID4gMykpKQorICAgICAgLy8gRGVjbGFyZSBhIGR1bW15IGNvbnN0cnVjdG9yIHRvIG1ha2UgZ2NjIGhhcHB5LgorICAgICAgLy8gSXQgc2VlbXMgdGhlIGNvbXBpbGVyIGNhbiBub3QgZ2VuZXJhdGUgYSBzZW5zaWJsZSBjb25zdHJ1Y3RvciB3aGVuIHRoaXMgaXMgaW5zdGFudGlhdGVkIHdpdGggYSByZWZlbmNlIHR5cGUuCisgICAgICAvLyAod2FybmluZzogbm9uLXN0YXRpYyByZWZlcmVuY2UgImNvbnN0IGRvdWJsZSYgbmRuYm9vc3Q6OkNvbnN0X0JpbmFyeVByZWRpY2F0ZTxZb3VyQ2xhc3NIZXJlPjo6YXJnIgorICAgICAgLy8gaW4gY2xhc3Mgd2l0aG91dCBhIGNvbnN0cnVjdG9yIFstV3VuaW5pdGlhbGl6ZWRdKQorICAgICAgQ29uc3RfQmluYXJ5UHJlZGljYXRlKCk7CisjZW5kaWYKKworICAgIEZ1bmMgZjsKKyAgICBGaXJzdCBhOworICAgIFNlY29uZCBiOworICB9OworCisgIEJPT1NUX2NvbmNlcHQoQWRhcHRhYmxlR2VuZXJhdG9yLChGdW5jKShSZXR1cm4pKQorICAgIDogR2VuZXJhdG9yPEZ1bmMsIHR5cGVuYW1lIEZ1bmM6OnJlc3VsdF90eXBlPgorICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEZ1bmM6OnJlc3VsdF90eXBlIHJlc3VsdF90eXBlOworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEFkYXB0YWJsZUdlbmVyYXRvcikKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoQ29udmVydGlibGU8cmVzdWx0X3R5cGUsIFJldHVybj4pKTsKKyAgICAgIH0KKyAgfTsKKworICBCT09TVF9jb25jZXB0KEFkYXB0YWJsZVVuYXJ5RnVuY3Rpb24sKEZ1bmMpKFJldHVybikoQXJnKSkKKyAgICA6IFVuYXJ5RnVuY3Rpb248RnVuYywgdHlwZW5hbWUgRnVuYzo6cmVzdWx0X3R5cGUsIHR5cGVuYW1lIEZ1bmM6OmFyZ3VtZW50X3R5cGU+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgRnVuYzo6YXJndW1lbnRfdHlwZSBhcmd1bWVudF90eXBlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBGdW5jOjpyZXN1bHRfdHlwZSByZXN1bHRfdHlwZTsKKworICAgICAgfkFkYXB0YWJsZVVuYXJ5RnVuY3Rpb24oKQorICAgICAgeworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChDb252ZXJ0aWJsZTxyZXN1bHRfdHlwZSwgUmV0dXJuPikpOworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChDb252ZXJ0aWJsZTxBcmcsIGFyZ3VtZW50X3R5cGU+KSk7CisgICAgICB9CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChBZGFwdGFibGVCaW5hcnlGdW5jdGlvbiwoRnVuYykoUmV0dXJuKShGaXJzdCkoU2Vjb25kKSkKKyAgICA6IEJpbmFyeUZ1bmN0aW9uPAorICAgICAgICAgIEZ1bmMKKyAgICAgICAgLCB0eXBlbmFtZSBGdW5jOjpyZXN1bHRfdHlwZQorICAgICAgICAsIHR5cGVuYW1lIEZ1bmM6OmZpcnN0X2FyZ3VtZW50X3R5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBGdW5jOjpzZWNvbmRfYXJndW1lbnRfdHlwZQorICAgICAgPgorICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEZ1bmM6OmZpcnN0X2FyZ3VtZW50X3R5cGUgZmlyc3RfYXJndW1lbnRfdHlwZTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgRnVuYzo6c2Vjb25kX2FyZ3VtZW50X3R5cGUgc2Vjb25kX2FyZ3VtZW50X3R5cGU7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEZ1bmM6OnJlc3VsdF90eXBlIHJlc3VsdF90eXBlOworCisgICAgICB+QWRhcHRhYmxlQmluYXJ5RnVuY3Rpb24oKQorICAgICAgeworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChDb252ZXJ0aWJsZTxyZXN1bHRfdHlwZSwgUmV0dXJuPikpOworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChDb252ZXJ0aWJsZTxGaXJzdCwgZmlyc3RfYXJndW1lbnRfdHlwZT4pKTsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoQ29udmVydGlibGU8U2Vjb25kLCBzZWNvbmRfYXJndW1lbnRfdHlwZT4pKTsKKyAgICAgIH0KKyAgfTsKKworICBCT09TVF9jb25jZXB0KEFkYXB0YWJsZVByZWRpY2F0ZSwoRnVuYykoQXJnKSkKKyAgICA6IFVuYXJ5UHJlZGljYXRlPEZ1bmMsIEFyZz4KKyAgICAsIEFkYXB0YWJsZVVuYXJ5RnVuY3Rpb248RnVuYywgYm9vbCwgQXJnPgorICB7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChBZGFwdGFibGVCaW5hcnlQcmVkaWNhdGUsKEZ1bmMpKEZpcnN0KShTZWNvbmQpKQorICAgIDogQmluYXJ5UHJlZGljYXRlPEZ1bmMsIEZpcnN0LCBTZWNvbmQ+CisgICAgLCBBZGFwdGFibGVCaW5hcnlGdW5jdGlvbjxGdW5jLCBib29sLCBGaXJzdCwgU2Vjb25kPgorICB7CisgIH07CisKKyAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgLy8gSXRlcmF0b3IgQ29uY2VwdHMKKworICBCT09TVF9jb25jZXB0KElucHV0SXRlcmF0b3IsKFRUKSkKKyAgICA6IEFzc2lnbmFibGU8VFQ+CisgICAgLCBFcXVhbGl0eUNvbXBhcmFibGU8VFQ+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPFRUPjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8VFQ+OjpkaWZmZXJlbmNlX3R5cGUgZGlmZmVyZW5jZV90eXBlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8VFQ+OjpyZWZlcmVuY2UgcmVmZXJlbmNlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8VFQ+Ojpwb2ludGVyIHBvaW50ZXI7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0czxUVD46Oml0ZXJhdG9yX2NhdGVnb3J5IGl0ZXJhdG9yX2NhdGVnb3J5OworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKElucHV0SXRlcmF0b3IpCisgICAgICB7CisgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChTaWduZWRJbnRlZ2VyPGRpZmZlcmVuY2VfdHlwZT4pKTsKKyAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKENvbnZlcnRpYmxlPGl0ZXJhdG9yX2NhdGVnb3J5LCBzdGQ6OmlucHV0X2l0ZXJhdG9yX3RhZz4pKTsKKworICAgICAgICBUVCBqKGkpOworICAgICAgICAodm9pZCkqaTsgICAgICAgICAgIC8vIHJlcXVpcmUgZGVyZWZlcmVuY2Ugb3BlcmF0b3IKKyAgICAgICAgKytqOyAgICAgICAgICAgICAgICAvLyByZXF1aXJlIHByZWluY3JlbWVudCBvcGVyYXRvcgorICAgICAgICBpKys7ICAgICAgICAgICAgICAgIC8vIHJlcXVpcmUgcG9zdGluY3JlbWVudCBvcGVyYXRvcgorICAgICAgfQorICAgcHJpdmF0ZToKKyAgICBUVCBpOworICB9OworCisgIEJPT1NUX2NvbmNlcHQoT3V0cHV0SXRlcmF0b3IsKFRUKShWYWx1ZVQpKQorICAgIDogQXNzaWduYWJsZTxUVD4KKyAgeworICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoT3V0cHV0SXRlcmF0b3IpIHsKKworICAgICAgKytpOyAgICAgICAgICAgICAgICAvLyByZXF1aXJlIHByZWluY3JlbWVudCBvcGVyYXRvcgorICAgICAgaSsrOyAgICAgICAgICAgICAgICAvLyByZXF1aXJlIHBvc3RpbmNyZW1lbnQgb3BlcmF0b3IKKyAgICAgICppKysgPSB0OyAgICAgICAgICAgLy8gcmVxdWlyZSBwb3N0aW5jcmVtZW50IGFuZCBhc3NpZ25tZW50CisgICAgfQorICAgcHJpdmF0ZToKKyAgICBUVCBpLCBqOworICAgIFZhbHVlVCB0OworICB9OworCisgIEJPT1NUX2NvbmNlcHQoRm9yd2FyZEl0ZXJhdG9yLChUVCkpCisgICAgOiBJbnB1dEl0ZXJhdG9yPFRUPgorICB7CisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEZvcndhcmRJdGVyYXRvcikKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoQ29udmVydGlibGU8CisgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgRm9yd2FyZEl0ZXJhdG9yOjppdGVyYXRvcl9jYXRlZ29yeQorICAgICAgICAgICAgLCBzdGQ6OmZvcndhcmRfaXRlcmF0b3JfdGFnCisgICAgICAgICAgPikpOworCisgICAgICAgICAgdHlwZW5hbWUgSW5wdXRJdGVyYXRvcjxUVD46OnJlZmVyZW5jZSByID0gKmk7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorCisgICBwcml2YXRlOgorICAgICAgVFQgaTsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KE11dGFibGVfRm9yd2FyZEl0ZXJhdG9yLChUVCkpCisgICAgOiBGb3J3YXJkSXRlcmF0b3I8VFQ+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoTXV0YWJsZV9Gb3J3YXJkSXRlcmF0b3IpIHsKKyAgICAgICAgKmkrKyA9ICppOyAgICAgICAgIC8vIHJlcXVpcmUgcG9zdGluY3JlbWVudCBhbmQgYXNzaWdubWVudAorICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIFRUIGk7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChCaWRpcmVjdGlvbmFsSXRlcmF0b3IsKFRUKSkKKyAgICA6IEZvcndhcmRJdGVyYXRvcjxUVD4KKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShCaWRpcmVjdGlvbmFsSXRlcmF0b3IpCisgICAgICB7CisgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKENvbnZlcnRpYmxlPAorICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjo6aXRlcmF0b3JfY2F0ZWdvcnkKKyAgICAgICAgICAgICwgc3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9yX3RhZworICAgICAgICAgID4pKTsKKworICAgICAgICAgIC0taTsgICAgICAgICAgICAgICAgLy8gcmVxdWlyZSBwcmVkZWNyZW1lbnQgb3BlcmF0b3IKKyAgICAgICAgICBpLS07ICAgICAgICAgICAgICAgIC8vIHJlcXVpcmUgcG9zdGRlY3JlbWVudCBvcGVyYXRvcgorICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIFRUIGk7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChNdXRhYmxlX0JpZGlyZWN0aW9uYWxJdGVyYXRvciwoVFQpKQorICAgIDogQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPFRUPgorICAgICwgTXV0YWJsZV9Gb3J3YXJkSXRlcmF0b3I8VFQ+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoTXV0YWJsZV9CaWRpcmVjdGlvbmFsSXRlcmF0b3IpCisgICAgICB7CisgICAgICAgICAgKmktLSA9ICppOyAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmUgcG9zdGRlY3JlbWVudCBhbmQgYXNzaWdubWVudAorICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIFRUIGk7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChSYW5kb21BY2Nlc3NJdGVyYXRvciwoVFQpKQorICAgIDogQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPFRUPgorICAgICwgQ29tcGFyYWJsZTxUVD4KKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShSYW5kb21BY2Nlc3NJdGVyYXRvcikKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoQ29udmVydGlibGU8CisgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPFRUPjo6aXRlcmF0b3JfY2F0ZWdvcnkKKyAgICAgICAgICAgICwgc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZworICAgICAgICAgID4pKTsKKworICAgICAgICAgIGkgKz0gbjsgICAgICAgICAgICAgLy8gcmVxdWlyZSBhc3NpZ25tZW50IGFkZGl0aW9uIG9wZXJhdG9yCisgICAgICAgICAgaSA9IGkgKyBuOyBpID0gbiArIGk7IC8vIHJlcXVpcmUgYWRkaXRpb24gd2l0aCBkaWZmZXJlbmNlIHR5cGUKKyAgICAgICAgICBpIC09IG47ICAgICAgICAgICAgIC8vIHJlcXVpcmUgYXNzaWdubWVudCBzdWJ0cmFjdGlvbiBvcGVyYXRvcgorICAgICAgICAgIGkgPSBpIC0gbjsgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlIHN1YnRyYWN0aW9uIHdpdGggZGlmZmVyZW5jZSB0eXBlCisgICAgICAgICAgbiA9IGkgLSBqOyAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmUgZGlmZmVyZW5jZSBvcGVyYXRvcgorICAgICAgICAgICh2b2lkKWlbbl07ICAgICAgICAgICAgICAgICAvLyByZXF1aXJlIGVsZW1lbnQgYWNjZXNzIG9wZXJhdG9yCisgICAgICB9CisKKyAgIHByaXZhdGU6CisgICAgVFQgYSwgYjsKKyAgICBUVCBpLCBqOworICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPFRUPjo6ZGlmZmVyZW5jZV90eXBlIG47CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChNdXRhYmxlX1JhbmRvbUFjY2Vzc0l0ZXJhdG9yLChUVCkpCisgICAgOiBSYW5kb21BY2Nlc3NJdGVyYXRvcjxUVD4KKyAgICAsIE11dGFibGVfQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPFRUPgorICB7CisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKE11dGFibGVfUmFuZG9tQWNjZXNzSXRlcmF0b3IpCisgICAgICB7CisgICAgICAgICAgaVtuXSA9ICppOyAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmUgZWxlbWVudCBhY2Nlc3MgYW5kIGFzc2lnbm1lbnQKKyAgICAgIH0KKyAgIHByaXZhdGU6CisgICAgVFQgaTsKKyAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8VFQ+OjpkaWZmZXJlbmNlX3R5cGUgbjsKKyAgfTsKKworICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAvLyBDb250YWluZXIgcworCisgIEJPT1NUX2NvbmNlcHQoQ29udGFpbmVyLChDKSkKKyAgICA6IEFzc2lnbmFibGU8Qz4KKyAgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6ZGlmZmVyZW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnNpemVfdHlwZSBzaXplX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpjb25zdF9yZWZlcmVuY2UgY29uc3RfcmVmZXJlbmNlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6Y29uc3RfcG9pbnRlciBjb25zdF9wb2ludGVyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoQ29udGFpbmVyKQorICAgICAgeworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChJbnB1dEl0ZXJhdG9yPGNvbnN0X2l0ZXJhdG9yPikpOworICAgICAgICAgIGNvbnN0X2NvbnN0cmFpbnRzKGMpOworICAgICAgfQorCisgICBwcml2YXRlOgorICAgICAgdm9pZCBjb25zdF9jb25zdHJhaW50cyhjb25zdCBDJiBjYykgeworICAgICAgICAgIGkgPSBjYy5iZWdpbigpOworICAgICAgICAgIGkgPSBjYy5lbmQoKTsKKyAgICAgICAgICBuID0gY2Muc2l6ZSgpOworICAgICAgICAgIG4gPSBjYy5tYXhfc2l6ZSgpOworICAgICAgICAgIGIgPSBjYy5lbXB0eSgpOworICAgICAgfQorICAgICAgQyBjOworICAgICAgYm9vbCBiOworICAgICAgY29uc3RfaXRlcmF0b3IgaTsKKyAgICAgIHNpemVfdHlwZSBuOworICB9OworCisgIEJPT1NUX2NvbmNlcHQoTXV0YWJsZV9Db250YWluZXIsKEMpKQorICAgIDogQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6cmVmZXJlbmNlIHJlZmVyZW5jZTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnBvaW50ZXIgcG9pbnRlcjsKKworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShNdXRhYmxlX0NvbnRhaW5lcikKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICBBc3NpZ25hYmxlPHR5cGVuYW1lIE11dGFibGVfQ29udGFpbmVyOjp2YWx1ZV90eXBlPikpOworCisgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKElucHV0SXRlcmF0b3I8aXRlcmF0b3I+KSk7CisKKyAgICAgICAgICBpID0gYy5iZWdpbigpOworICAgICAgICAgIGkgPSBjLmVuZCgpOworICAgICAgICAgIGMuc3dhcChjMik7CisgICAgICB9CisKKyAgIHByaXZhdGU6CisgICAgICBpdGVyYXRvciBpOworICAgICAgQyBjLCBjMjsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KEZvcndhcmRDb250YWluZXIsKEMpKQorICAgIDogQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoRm9yd2FyZENvbnRhaW5lcikKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3I8CisgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIEZvcndhcmRDb250YWluZXI6OmNvbnN0X2l0ZXJhdG9yCisgICAgICAgICAgICAgICA+KSk7CisgICAgICB9CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChNdXRhYmxlX0ZvcndhcmRDb250YWluZXIsKEMpKQorICAgIDogRm9yd2FyZENvbnRhaW5lcjxDPgorICAgICwgTXV0YWJsZV9Db250YWluZXI8Qz4KKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShNdXRhYmxlX0ZvcndhcmRDb250YWluZXIpCisgICAgICB7CisgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKAorICAgICAgICAgICAgICAgTXV0YWJsZV9Gb3J3YXJkSXRlcmF0b3I8CisgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTXV0YWJsZV9Gb3J3YXJkQ29udGFpbmVyOjppdGVyYXRvcgorICAgICAgICAgICAgICAgPikpOworICAgICAgfQorICB9OworCisgIEJPT1NUX2NvbmNlcHQoUmV2ZXJzaWJsZUNvbnRhaW5lciwoQykpCisgICAgOiBGb3J3YXJkQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgICAgQzo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvcgorICAgICAgY29uc3RfcmV2ZXJzZV9pdGVyYXRvcjsKKworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShSZXZlcnNpYmxlQ29udGFpbmVyKQorICAgICAgeworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgUmV2ZXJzaWJsZUNvbnRhaW5lcjo6Y29uc3RfaXRlcmF0b3I+KSk7CisKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPGNvbnN0X3JldmVyc2VfaXRlcmF0b3I+KSk7CisKKyAgICAgICAgICBjb25zdF9jb25zdHJhaW50cyhjKTsKKyAgICAgIH0KKyAgIHByaXZhdGU6CisgICAgICB2b2lkIGNvbnN0X2NvbnN0cmFpbnRzKGNvbnN0IEMmIGNjKQorICAgICAgeworICAgICAgICAgIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IgaSA9IGNjLnJiZWdpbigpOworICAgICAgICAgIGkgPSBjYy5yZW5kKCk7CisgICAgICB9CisgICAgICBDIGM7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChNdXRhYmxlX1JldmVyc2libGVDb250YWluZXIsKEMpKQorICAgIDogTXV0YWJsZV9Gb3J3YXJkQ29udGFpbmVyPEM+CisgICAgLCBSZXZlcnNpYmxlQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6cmV2ZXJzZV9pdGVyYXRvciByZXZlcnNlX2l0ZXJhdG9yOworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKE11dGFibGVfUmV2ZXJzaWJsZUNvbnRhaW5lcikKKyAgICAgIHsKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIE11dGFibGVfRm9yd2FyZENvbnRhaW5lcjxDPjo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKE11dGFibGVfQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPGl0ZXJhdG9yPikpOworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChNdXRhYmxlX0JpZGlyZWN0aW9uYWxJdGVyYXRvcjxyZXZlcnNlX2l0ZXJhdG9yPikpOworCisgICAgICAgICAgcmV2ZXJzZV9pdGVyYXRvciBpID0gYy5yYmVnaW4oKTsKKyAgICAgICAgICBpID0gYy5yZW5kKCk7CisgICAgICB9CisgICBwcml2YXRlOgorICAgICAgQyBjOworICB9OworCisgIEJPT1NUX2NvbmNlcHQoUmFuZG9tQWNjZXNzQ29udGFpbmVyLChDKSkKKyAgICA6IFJldmVyc2libGVDb250YWluZXI8Qz4KKyAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpzaXplX3R5cGUgc2l6ZV90eXBlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpjb25zdF9yZWZlcmVuY2UgY29uc3RfcmVmZXJlbmNlOworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKFJhbmRvbUFjY2Vzc0NvbnRhaW5lcikKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgIFJhbmRvbUFjY2Vzc0l0ZXJhdG9yPAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgUmFuZG9tQWNjZXNzQ29udGFpbmVyOjpjb25zdF9pdGVyYXRvcgorICAgICAgICAgICAgICA+KSk7CisKKyAgICAgICAgICBjb25zdF9jb25zdHJhaW50cyhjKTsKKyAgICAgIH0KKyAgIHByaXZhdGU6CisgICAgICB2b2lkIGNvbnN0X2NvbnN0cmFpbnRzKGNvbnN0IEMmIGNjKQorICAgICAgeworICAgICAgICAgIGNvbnN0X3JlZmVyZW5jZSByID0gY2Nbbl07CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorCisgICAgICBDIGM7CisgICAgICBzaXplX3R5cGUgbjsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KE11dGFibGVfUmFuZG9tQWNjZXNzQ29udGFpbmVyLChDKSkKKyAgICA6IE11dGFibGVfUmV2ZXJzaWJsZUNvbnRhaW5lcjxDPgorICAgICwgUmFuZG9tQWNjZXNzQ29udGFpbmVyPEM+CisgIHsKKyAgIHByaXZhdGU6CisgICAgICB0eXBlZGVmIE11dGFibGVfUmFuZG9tQWNjZXNzQ29udGFpbmVyIHNlbGY7CisgICBwdWJsaWM6CisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKE11dGFibGVfUmFuZG9tQWNjZXNzQ29udGFpbmVyKQorICAgICAgeworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChNdXRhYmxlX1JhbmRvbUFjY2Vzc0l0ZXJhdG9yPHR5cGVuYW1lIHNlbGY6Oml0ZXJhdG9yPikpOworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChNdXRhYmxlX1JhbmRvbUFjY2Vzc0l0ZXJhdG9yPHR5cGVuYW1lIHNlbGY6OnJldmVyc2VfaXRlcmF0b3I+KSk7CisKKyAgICAgICAgICB0eXBlbmFtZSBzZWxmOjpyZWZlcmVuY2UgciA9IGNbaV07CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorCisgICBwcml2YXRlOgorICAgICAgdHlwZW5hbWUgTXV0YWJsZV9SZXZlcnNpYmxlQ29udGFpbmVyPEM+OjpzaXplX3R5cGUgaTsKKyAgICAgIEMgYzsKKyAgfTsKKworICAvLyBBIFNlcXVlbmNlIGlzIGluaGVyZW50bHkgbXV0YWJsZQorICBCT09TVF9jb25jZXB0KFNlcXVlbmNlLChTKSkKKyAgICA6IE11dGFibGVfRm9yd2FyZENvbnRhaW5lcjxTPgorICAgICAgLy8gTWF0dCBBdXN0ZXJuJ3MgYm9vayBwdXRzIERlZmF1bHRDb25zdHJ1Y3RpYmxlIGhlcmUsIHRoZSBDKysKKyAgICAgIC8vIHN0YW5kYXJkIHBsYWNlcyBpdCBpbiBDb250YWluZXIgLS1KR1MKKyAgICAgIC8vIC4uLiBzbyB3aHkgYXJlbid0IHdlIGZvbGxvd2luZyB0aGUgc3RhbmRhcmQ/ICAtLURXQQorICAgICwgRGVmYXVsdENvbnN0cnVjdGlibGU8Uz4KKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShTZXF1ZW5jZSkKKyAgICAgIHsKKyAgICAgICAgICBTCisgICAgICAgICAgICAgIGMobiksCisgICAgICAgICAgICAgIGMyKG4sIHQpLAorICAgICAgICAgICAgICBjMyhmaXJzdCwgbGFzdCk7CisKKyAgICAgICAgICBjLmluc2VydChwLCB0KTsKKyAgICAgICAgICBjLmluc2VydChwLCBuLCB0KTsKKyAgICAgICAgICBjLmluc2VydChwLCBmaXJzdCwgbGFzdCk7CisKKyAgICAgICAgICBjLmVyYXNlKHApOworICAgICAgICAgIGMuZXJhc2UocCwgcSk7CisKKyAgICAgICAgICB0eXBlbmFtZSBTZXF1ZW5jZTo6cmVmZXJlbmNlIHIgPSBjLmZyb250KCk7CisKKyAgICAgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoYyk7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMyKTsKKyAgICAgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoYzMpOworICAgICAgICAgIGlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhyKTsKKyAgICAgICAgICBjb25zdF9jb25zdHJhaW50cyhjKTsKKyAgICAgIH0KKyAgIHByaXZhdGU6CisgICAgICB2b2lkIGNvbnN0X2NvbnN0cmFpbnRzKGNvbnN0IFMmIGMpIHsKKyAgICAgICAgICB0eXBlbmFtZSBTZXF1ZW5jZTo6Y29uc3RfcmVmZXJlbmNlIHIgPSBjLmZyb250KCk7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorCisgICAgICB0eXBlbmFtZSBTOjp2YWx1ZV90eXBlIHQ7CisgICAgICB0eXBlbmFtZSBTOjpzaXplX3R5cGUgbjsKKyAgICAgIHR5cGVuYW1lIFM6OnZhbHVlX3R5cGUqIGZpcnN0LCAqbGFzdDsKKyAgICAgIHR5cGVuYW1lIFM6Oml0ZXJhdG9yIHAsIHE7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChGcm9udEluc2VydGlvblNlcXVlbmNlLChTKSkKKyAgICA6IFNlcXVlbmNlPFM+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoRnJvbnRJbnNlcnRpb25TZXF1ZW5jZSkKKyAgICAgIHsKKyAgICAgICAgICBjLnB1c2hfZnJvbnQodCk7CisgICAgICAgICAgYy5wb3BfZnJvbnQoKTsKKyAgICAgIH0KKyAgIHByaXZhdGU6CisgICAgICBTIGM7CisgICAgICB0eXBlbmFtZSBTOjp2YWx1ZV90eXBlIHQ7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChCYWNrSW5zZXJ0aW9uU2VxdWVuY2UsKFMpKQorICAgIDogU2VxdWVuY2U8Uz4KKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShCYWNrSW5zZXJ0aW9uU2VxdWVuY2UpCisgICAgICB7CisgICAgICAgICAgYy5wdXNoX2JhY2sodCk7CisgICAgICAgICAgYy5wb3BfYmFjaygpOworICAgICAgICAgIHR5cGVuYW1lIEJhY2tJbnNlcnRpb25TZXF1ZW5jZTo6cmVmZXJlbmNlIHIgPSBjLmJhY2soKTsKKyAgICAgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcocik7CisgICAgICAgICAgY29uc3RfY29uc3RyYWludHMoYyk7CisgICAgICB9CisgICBwcml2YXRlOgorICAgICAgdm9pZCBjb25zdF9jb25zdHJhaW50cyhjb25zdCBTJiBjYykgeworICAgICAgICAgIHR5cGVuYW1lIEJhY2tJbnNlcnRpb25TZXF1ZW5jZTo6Y29uc3RfcmVmZXJlbmNlCisgICAgICAgICAgICAgIHIgPSBjYy5iYWNrKCk7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfTsKKyAgICAgIFMgYzsKKyAgICAgIHR5cGVuYW1lIFM6OnZhbHVlX3R5cGUgdDsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KEFzc29jaWF0aXZlQ29udGFpbmVyLChDKSkKKyAgICA6IEZvcndhcmRDb250YWluZXI8Qz4KKyAgICAsIERlZmF1bHRDb25zdHJ1Y3RpYmxlPEM+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6a2V5X3R5cGUga2V5X3R5cGU7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OmtleV9jb21wYXJlIGtleV9jb21wYXJlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjp2YWx1ZV9jb21wYXJlIHZhbHVlX2NvbXBhcmU7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIGl0ZXJhdG9yOworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEFzc29jaWF0aXZlQ29udGFpbmVyKQorICAgICAgeworICAgICAgICAgIGkgPSBjLmZpbmQoayk7CisgICAgICAgICAgciA9IGMuZXF1YWxfcmFuZ2Uoayk7CisgICAgICAgICAgYy5lcmFzZShrKTsKKyAgICAgICAgICBjLmVyYXNlKGkpOworICAgICAgICAgIGMuZXJhc2Uoci5maXJzdCwgci5zZWNvbmQpOworICAgICAgICAgIGNvbnN0X2NvbnN0cmFpbnRzKGMpOworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChCaW5hcnlQcmVkaWNhdGU8a2V5X2NvbXBhcmUsa2V5X3R5cGUsa2V5X3R5cGU+KSk7CisKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEFzc29jaWF0aXZlQ29udGFpbmVyOjp2YWx1ZV90eXBlIHZhbHVlX3R5cGVfOworICAgICAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChCaW5hcnlQcmVkaWNhdGU8dmFsdWVfY29tcGFyZSx2YWx1ZV90eXBlXyx2YWx1ZV90eXBlXz4pKTsKKyAgICAgIH0KKworICAgICAgLy8gUmVkdW5kYW50IHdpdGggdGhlIGJhc2UgY29uY2VwdCwgYnV0IGl0IGhlbHBzIGJlbG93LgorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKyAgIHByaXZhdGU6CisgICAgICB2b2lkIGNvbnN0X2NvbnN0cmFpbnRzKGNvbnN0IEMmIGNjKQorICAgICAgeworICAgICAgICAgIGNpID0gY2MuZmluZChrKTsKKyAgICAgICAgICBuID0gY2MuY291bnQoayk7CisgICAgICAgICAgY3IgPSBjYy5lcXVhbF9yYW5nZShrKTsKKyAgICAgIH0KKworICAgICAgQyBjOworICAgICAgaXRlcmF0b3IgaTsKKyAgICAgIHN0ZDo6cGFpcjxpdGVyYXRvcixpdGVyYXRvcj4gcjsKKyAgICAgIGNvbnN0X2l0ZXJhdG9yIGNpOworICAgICAgc3RkOjpwYWlyPGNvbnN0X2l0ZXJhdG9yLGNvbnN0X2l0ZXJhdG9yPiBjcjsKKyAgICAgIHR5cGVuYW1lIEM6OmtleV90eXBlIGs7CisgICAgICB0eXBlbmFtZSBDOjpzaXplX3R5cGUgbjsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KFVuaXF1ZUFzc29jaWF0aXZlQ29udGFpbmVyLChDKSkKKyAgICA6IEFzc29jaWF0aXZlQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoVW5pcXVlQXNzb2NpYXRpdmVDb250YWluZXIpCisgICAgICB7CisgICAgICAgICAgQyBjKGZpcnN0LCBsYXN0KTsKKworICAgICAgICAgIHBvc19mbGFnID0gYy5pbnNlcnQodCk7CisgICAgICAgICAgYy5pbnNlcnQoZmlyc3QsIGxhc3QpOworCisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMpOworICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIHN0ZDo6cGFpcjx0eXBlbmFtZSBDOjppdGVyYXRvciwgYm9vbD4gcG9zX2ZsYWc7CisgICAgICB0eXBlbmFtZSBDOjp2YWx1ZV90eXBlIHQ7CisgICAgICB0eXBlbmFtZSBDOjp2YWx1ZV90eXBlKiBmaXJzdCwgKmxhc3Q7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChNdWx0aXBsZUFzc29jaWF0aXZlQ29udGFpbmVyLChDKSkKKyAgICA6IEFzc29jaWF0aXZlQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoTXVsdGlwbGVBc3NvY2lhdGl2ZUNvbnRhaW5lcikKKyAgICAgIHsKKyAgICAgICAgICBDIGMoZmlyc3QsIGxhc3QpOworCisgICAgICAgICAgcG9zID0gYy5pbnNlcnQodCk7CisgICAgICAgICAgYy5pbnNlcnQoZmlyc3QsIGxhc3QpOworCisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMpOworICAgICAgICAgIGlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhwb3MpOworICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIHBvczsKKyAgICAgIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUgdDsKKyAgICAgIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUqIGZpcnN0LCAqbGFzdDsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KFNpbXBsZUFzc29jaWF0aXZlQ29udGFpbmVyLChDKSkKKyAgICA6IEFzc29jaWF0aXZlQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoU2ltcGxlQXNzb2NpYXRpdmVDb250YWluZXIpCisgICAgICB7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjprZXlfdHlwZSBrZXlfdHlwZTsKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKKyAgICAgICAgICBCT09TVF9NUExfQVNTRVJUKChuZG5ib29zdDo6aXNfc2FtZTxrZXlfdHlwZSx2YWx1ZV90eXBlPikpOworICAgICAgfQorICB9OworCisgIEJPT1NUX2NvbmNlcHQoUGFpckFzc29jaWF0aXZlQ29udGFpbmVyLChDKSkKKyAgICA6IEFzc29jaWF0aXZlQ29udGFpbmVyPEM+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoUGFpckFzc29jaWF0aXZlQ29udGFpbmVyKQorICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6a2V5X3R5cGUga2V5X3R5cGU7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjptYXBwZWRfdHlwZSBtYXBwZWRfdHlwZTsKKyAgICAgICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxjb25zdCBrZXlfdHlwZSwgbWFwcGVkX3R5cGU+IHJlcXVpcmVkX3ZhbHVlX3R5cGU7CisgICAgICAgICAgQk9PU1RfTVBMX0FTU0VSVCgobmRuYm9vc3Q6OmlzX3NhbWU8dmFsdWVfdHlwZSxyZXF1aXJlZF92YWx1ZV90eXBlPikpOworICAgICAgfQorICB9OworCisgIEJPT1NUX2NvbmNlcHQoU29ydGVkQXNzb2NpYXRpdmVDb250YWluZXIsKEMpKQorICAgIDogQXNzb2NpYXRpdmVDb250YWluZXI8Qz4KKyAgICAsIFJldmVyc2libGVDb250YWluZXI8Qz4KKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShTb3J0ZWRBc3NvY2lhdGl2ZUNvbnRhaW5lcikKKyAgICAgIHsKKyAgICAgICAgICBDCisgICAgICAgICAgICAgIGMoa2MpLAorICAgICAgICAgICAgICBjMihmaXJzdCwgbGFzdCksCisgICAgICAgICAgICAgIGMzKGZpcnN0LCBsYXN0LCBrYyk7CisKKyAgICAgICAgICBwID0gYy51cHBlcl9ib3VuZChrKTsKKyAgICAgICAgICBwID0gYy5sb3dlcl9ib3VuZChrKTsKKyAgICAgICAgICByID0gYy5lcXVhbF9yYW5nZShrKTsKKworICAgICAgICAgIGMuaW5zZXJ0KHAsIHQpOworCisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMpOworICAgICAgICAgIGlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhjMik7CisgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGMzKTsKKyAgICAgICAgICBjb25zdF9jb25zdHJhaW50cyhjKTsKKyAgICAgIH0KKworICAgICAgdm9pZCBjb25zdF9jb25zdHJhaW50cyhjb25zdCBDJiBjKQorICAgICAgeworICAgICAgICAgIGtjID0gYy5rZXlfY29tcCgpOworICAgICAgICAgIHZjID0gYy52YWx1ZV9jb21wKCk7CisKKyAgICAgICAgICBjcCA9IGMudXBwZXJfYm91bmQoayk7CisgICAgICAgICAgY3AgPSBjLmxvd2VyX2JvdW5kKGspOworICAgICAgICAgIGNyID0gYy5lcXVhbF9yYW5nZShrKTsKKyAgICAgIH0KKworICAgcHJpdmF0ZToKKyAgICAgIHR5cGVuYW1lIEM6OmtleV9jb21wYXJlIGtjOworICAgICAgdHlwZW5hbWUgQzo6dmFsdWVfY29tcGFyZSB2YzsKKyAgICAgIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUgdDsKKyAgICAgIHR5cGVuYW1lIEM6OmtleV90eXBlIGs7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKworICAgICAgdHlwZWRlZiBTb3J0ZWRBc3NvY2lhdGl2ZUNvbnRhaW5lciBzZWxmOworICAgICAgaXRlcmF0b3IgcDsKKyAgICAgIGNvbnN0X2l0ZXJhdG9yIGNwOworICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIHNlbGY6Oml0ZXJhdG9yLHR5cGVuYW1lIHNlbGY6Oml0ZXJhdG9yPiByOworICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIHNlbGY6OmNvbnN0X2l0ZXJhdG9yLHR5cGVuYW1lIHNlbGY6OmNvbnN0X2l0ZXJhdG9yPiBjcjsKKyAgICAgIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUqIGZpcnN0LCAqbGFzdDsKKyAgfTsKKworICAvLyBIYXNoZWRBc3NvY2lhdGl2ZUNvbnRhaW5lcgorCisgIEJPT1NUX2NvbmNlcHQoQ29sbGVjdGlvbiwoQykpCisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoQ29sbGVjdGlvbikKKyAgICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmZ1bmN0aW9uX3JlcXVpcmVzPG5kbmJvb3N0OjpJbnB1dEl0ZXJhdG9yQ29uY2VwdDxpdGVyYXRvcj4gPigpOworICAgICAgICBuZG5ib29zdDo6ZnVuY3Rpb25fcmVxdWlyZXM8bmRuYm9vc3Q6OklucHV0SXRlcmF0b3JDb25jZXB0PGNvbnN0X2l0ZXJhdG9yPiA+KCk7CisgICAgICAgIG5kbmJvb3N0OjpmdW5jdGlvbl9yZXF1aXJlczxuZG5ib29zdDo6Q29weUNvbnN0cnVjdGlibGVDb25jZXB0PHZhbHVlX3R5cGU+ID4oKTsKKyAgICAgICAgY29uc3RfY29uc3RyYWludHMoYyk7CisgICAgICAgIGkgPSBjLmJlZ2luKCk7CisgICAgICAgIGkgPSBjLmVuZCgpOworICAgICAgICBjLnN3YXAoYyk7CisgICAgICB9CisKKyAgICAgIHZvaWQgY29uc3RfY29uc3RyYWludHMoY29uc3QgQyYgY2MpIHsKKyAgICAgICAgY2kgPSBjYy5iZWdpbigpOworICAgICAgICBjaSA9IGNjLmVuZCgpOworICAgICAgICBuID0gY2Muc2l6ZSgpOworICAgICAgICBiID0gY2MuZW1wdHkoKTsKKyAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpyZWZlcmVuY2UgcmVmZXJlbmNlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpjb25zdF9yZWZlcmVuY2UgY29uc3RfcmVmZXJlbmNlOworICAgICAgLy8gdHlwZWRlZiB0eXBlbmFtZSBDOjpwb2ludGVyIHBvaW50ZXI7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OmRpZmZlcmVuY2VfdHlwZSBkaWZmZXJlbmNlX3R5cGU7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnNpemVfdHlwZSBzaXplX3R5cGU7CisKKyAgICAgIEMgYzsKKyAgICAgIGJvb2wgYjsKKyAgICAgIGl0ZXJhdG9yIGk7CisgICAgICBjb25zdF9pdGVyYXRvciBjaTsKKyAgICAgIHNpemVfdHlwZSBuOworICB9OworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworIyBpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX0NPTkNFUFRfQ0hFQ0tTX0hQUAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVhZjc5ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnLmhwcApAQCAtMCwwICsxLDcwIEBACisvLyAgQm9vc3QgY29uZmlnLmhwcCBjb25maWd1cmF0aW9uIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvY29uZmlnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgQm9vc3QgY29uZmlnLmhwcCBwb2xpY3kgYW5kIHJhdGlvbmFsZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIG1vdmVkIHRvCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcKKy8vCisvLyAgQ0FVVElPTjogVGhpcyBmaWxlIGlzIGludGVuZGVkIHRvIGJlIGNvbXBsZXRlbHkgc3RhYmxlIC0KKy8vICAgICAgICAgICBETyBOT1QgTU9ESUZZIFRISVMgRklMRSEKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0hQUAorI2RlZmluZSBCT09TVF9DT05GSUdfSFBQCisKKy8vIGlmIHdlIGRvbid0IGhhdmUgYSB1c2VyIGNvbmZpZywgdGhlbiB1c2UgdGhlIGRlZmF1bHQgbG9jYXRpb246CisjaWYgIWRlZmluZWQoQk9PU1RfVVNFUl9DT05GSUcpICYmICFkZWZpbmVkKEJPT1NUX05PX1VTRVJfQ09ORklHKQorIyAgZGVmaW5lIEJPT1NUX1VTRVJfQ09ORklHIDxuZG5ib29zdC9jb25maWcvdXNlci5ocHA+CisjZW5kaWYKKy8vIGluY2x1ZGUgaXQgZmlyc3Q6CisjaWZkZWYgQk9PU1RfVVNFUl9DT05GSUcKKyMgIGluY2x1ZGUgQk9PU1RfVVNFUl9DT05GSUcKKyNlbmRpZgorCisvLyBpZiB3ZSBkb24ndCBoYXZlIGEgY29tcGlsZXIgY29uZmlnIHNldCwgdHJ5IGFuZCBmaW5kIG9uZToKKyNpZiAhZGVmaW5lZChCT09TVF9DT01QSUxFUl9DT05GSUcpICYmICFkZWZpbmVkKEJPT1NUX05PX0NPTVBJTEVSX0NPTkZJRykgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ09ORklHKQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3NlbGVjdF9jb21waWxlcl9jb25maWcuaHBwPgorI2VuZGlmCisvLyBpZiB3ZSBoYXZlIGEgY29tcGlsZXIgY29uZmlnLCBpbmNsdWRlIGl0IG5vdzoKKyNpZmRlZiBCT09TVF9DT01QSUxFUl9DT05GSUcKKyMgIGluY2x1ZGUgQk9PU1RfQ09NUElMRVJfQ09ORklHCisjZW5kaWYKKworLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHN0ZCBsaWJyYXJ5IGNvbmZpZyBzZXQsIHRyeSBhbmQgZmluZCBvbmU6CisjaWYgIWRlZmluZWQoQk9PU1RfU1RETElCX0NPTkZJRykgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1RETElCX0NPTkZJRykgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ09ORklHKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3NlbGVjdF9zdGRsaWJfY29uZmlnLmhwcD4KKyNlbmRpZgorLy8gaWYgd2UgaGF2ZSBhIHN0ZCBsaWJyYXJ5IGNvbmZpZywgaW5jbHVkZSBpdCBub3c6CisjaWZkZWYgQk9PU1RfU1RETElCX0NPTkZJRworIyAgaW5jbHVkZSBCT09TVF9TVERMSUJfQ09ORklHCisjZW5kaWYKKworLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHBsYXRmb3JtIGNvbmZpZyBzZXQsIHRyeSBhbmQgZmluZCBvbmU6CisjaWYgIWRlZmluZWQoQk9PU1RfUExBVEZPUk1fQ09ORklHKSAmJiAhZGVmaW5lZChCT09TVF9OT19QTEFURk9STV9DT05GSUcpICYmICFkZWZpbmVkKEJPT1NUX05PX0NPTkZJRykKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9zZWxlY3RfcGxhdGZvcm1fY29uZmlnLmhwcD4KKyNlbmRpZgorLy8gaWYgd2UgaGF2ZSBhIHBsYXRmb3JtIGNvbmZpZywgaW5jbHVkZSBpdCBub3c6CisjaWZkZWYgQk9PU1RfUExBVEZPUk1fQ09ORklHCisjICBpbmNsdWRlIEJPT1NUX1BMQVRGT1JNX0NPTkZJRworI2VuZGlmCisKKy8vIGdldCBjb25maWcgc3VmZml4IGNvZGU6CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3N1ZmZpeC5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfQ09ORklHX0hQUAorCisKKworCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3ByZWZpeC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9wcmVmaXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhMGU1YWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9wcmVmaXguaHBwCkBAIC0wLDAgKzEsMjcgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBmb3IgQysrIEJ1aWxkZXIgdGhlIGZvbGxvd2luZyBvcHRpb25zIGVmZmVjdCB0aGUgQUJJOgorLy8KKy8vICAtYiAob24gb3Igb2ZmIC0gZWZmZWN0IGVtdW0gc2l6ZXMpCisvLyAgLVZ4ICAob24gb3Igb2ZmIC0gZW1wdHkgbWVtYmVycykKKy8vICAtVmUgKG9uIG9yIG9mZiAtIGVtcHR5IGJhc2UgY2xhc3NlcykKKy8vICAtYVggKGFsaWdubWVudCAtIDUgb3B0aW9ucykuCisvLyAgLXBYIChDYWxsaW5nIGNvbnZlbnRpb24gLSA0IG9wdGlvbnMpCisvLyAgLVZtWCAobWVtYmVyIHBvaW50ZXIgc2l6ZSBhbmQgbGF5b3V0IC0gNSBvcHRpb25zKQorLy8gIC1WQyAob24gb3Igb2ZmLCBjaGFuZ2VzIG5hbWUgbWFuZ2xpbmcpCisvLyAgLVZsIChvbiBvciBvZmYsIGNoYW5nZXMgc3RydWN0IGxheW91dCkuCisKKy8vICBJbiBhZGRpdGlvbiB0aGUgZm9sbG93aW5nIHdhcm5pbmdzIGFyZSBzdWZmaWNpZW50bHkgYW5ub3lpbmcgKGFuZAorLy8gIHVuZml4YWJsZSkgdG8gaGF2ZSB0aGVtIHR1cm5lZCBvZmYgYnkgZGVmYXVsdDoKKy8vCisvLyAgODAyNyAtIGZ1bmN0aW9ucyBjb250YWluaW5nIFtmb3J8d2hpbGVdIGxvb3BzIGFyZSBub3QgZXhwYW5kZWQgaW5saW5lCisvLyAgODAyNiAtIGZ1bmN0aW9ucyB0YWtpbmcgY2xhc3MgYnkgdmFsdWUgYXJndW1lbnRzIGFyZSBub3QgZXhwYW5kZWQgaW5saW5lCisKKyNwcmFnbWEgbm9wdXNob3B0d2FybgorIyAgcHJhZ21hIG9wdGlvbiBwdXNoIC1hOCAtVngtIC1WZS0gLWItIC1wYyAtVm12IC1WQy0gLVZsLSAtdy04MDI3IC13LTgwMjYKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9zdWZmaXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MDUzNWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9zdWZmaXguaHBwCkBAIC0wLDAgKzEsMTIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyMgIHByYWdtYSBvcHRpb24gcG9wCisjcHJhZ21hIG5vcHVzaG9wdHdhcm4KKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9hYmkvbXN2Y19wcmVmaXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYWJpL21zdmNfcHJlZml4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2YwNmNkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYWJpL21zdmNfcHJlZml4LmhwcApAQCAtMCwwICsxLDIyIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLworLy8gQm9vc3QgYmluYXJpZXMgYXJlIGJ1aWx0IHdpdGggdGhlIGNvbXBpbGVyJ3MgZGVmYXVsdCBBQkkgc2V0dGluZ3MsCisvLyBpZiB0aGUgdXNlciBjaGFuZ2VzIHRoZWlyIGRlZmF1bHQgYWxpZ25tZW50IGluIHRoZSBWUyBJREUgdGhlbiB0aGVpcgorLy8gY29kZSB3aWxsIG5vIGxvbmdlciBiZSBiaW5hcnkgY29tcGF0aWJsZSB3aXRoIHRoZSBiamFtIGJ1aWx0IGJpbmFyaWVzCisvLyB1bmxlc3MgdGhpcyBoZWFkZXIgaXMgaW5jbHVkZWQgdG8gZm9yY2UgQm9vc3QgY29kZSBpbnRvIGEgY29uc2lzdGVudCBBQkkuCisvLworLy8gTm90ZSB0aGF0IGluY2x1c2lvbiBvZiB0aGlzIGhlYWRlciBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgbGlicmFyaWVzIHdpdGggCisvLyBzZXBhcmF0ZSBzb3VyY2UsIGhlYWRlciBvbmx5IGxpYnJhcmllcyBETyBOT1QgbmVlZCB0aGlzIGFzIGxvbmcgYXMgYWxsCisvLyB0cmFuc2xhdGlvbiB1bml0cyBhcmUgYnVpbHQgd2l0aCB0aGUgc2FtZSBvcHRpb25zLgorLy8KKyNpZiBkZWZpbmVkKF9NX1g2NCkKKyMgIHByYWdtYSBwYWNrKHB1c2gsMTYpCisjZWxzZQorIyAgcHJhZ21hIHBhY2socHVzaCw4KQorI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYWJpL21zdmNfc3VmZml4LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaS9tc3ZjX3N1ZmZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY0ZDc4MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaS9tc3ZjX3N1ZmZpeC5ocHAKQEAgLTAsMCArMSw4IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjcHJhZ21hIHBhY2socG9wKQorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYWJpX3ByZWZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc3Y2Q2MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwCkBAIC0wLDAgKzEsMjUgQEAKKy8vICBhYmlfcHJlZml4IGhlYWRlciAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vIChjKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMKKyAgIAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisjaWZuZGVmIEJPT1NUX0NPTkZJR19BQklfUFJFRklYX0hQUAorIyBkZWZpbmUgQk9PU1RfQ09ORklHX0FCSV9QUkVGSVhfSFBQCisjZWxzZQorIyBlcnJvciBkb3VibGUgaW5jbHVzaW9uIG9mIGhlYWRlciBib29zdC9jb25maWcvYWJpX3ByZWZpeC5ocHAgaXMgYW4gZXJyb3IKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gdGhpcyBtdXN0IG9jY3VyIGFmdGVyIGFsbCBvdGhlciBpbmNsdWRlcyBhbmQgYmVmb3JlIGFueSBjb2RlIGFwcGVhcnM6CisjaWZkZWYgQk9PU1RfSEFTX0FCSV9IRUFERVJTCisjICBpbmNsdWRlIEJPT1NUX0FCSV9QUkVGSVgKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggX19CT1JMQU5EQ19fICkKKyNwcmFnbWEgbm9wdXNob3B0d2FybgorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYWJpX3N1ZmZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzEyODdjYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwCkBAIC0wLDAgKzEsMjcgQEAKKy8vICBhYmlfc3VmZmZpeCBoZWFkZXIgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAoYykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAzCisgICAKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8gVGhpcyBoZWFkZXIgc2hvdWxkIGJlICNpbmNsdWRlZCBBRlRFUiBjb2RlIHRoYXQgd2FzIHByZWNlZGVkIGJ5IGEgI2luY2x1ZGUKKy8vIDxuZG5ib29zdC9jb25maWcvYWJpX3ByZWZpeC5ocHA+LgorCisjaWZuZGVmIEJPT1NUX0NPTkZJR19BQklfUFJFRklYX0hQUAorIyBlcnJvciBIZWFkZXIgYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwIG11c3Qgb25seSBiZSB1c2VkIGFmdGVyIGJvb3N0L2NvbmZpZy9hYmlfcHJlZml4LmhwcAorI2Vsc2UKKyMgdW5kZWYgQk9PU1RfQ09ORklHX0FCSV9QUkVGSVhfSFBQCisjZW5kaWYKKworLy8gdGhlIHN1ZmZpeCBoZWFkZXIgb2NjdXJzIGFmdGVyIGFsbCBvZiBvdXIgY29kZToKKyNpZmRlZiBCT09TVF9IQVNfQUJJX0hFQURFUlMKKyMgIGluY2x1ZGUgQk9PU1RfQUJJX1NVRkZJWAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX0JPUkxBTkRDX18gKQorI3ByYWdtYSBub3B1c2hvcHR3YXJuCisjZW5kaWYKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9hdXRvX2xpbmsuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYXV0b19saW5rLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDJiZmI5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvYXV0b19saW5rLmhwcApAQCAtMCwwICsxLDQyMyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworIC8qCisgICogICBMT0NBVElPTjogICAgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorICAqICAgRklMRSAgICAgICAgIGF1dG9fbGluay5ocHAKKyAgKiAgIFZFUlNJT04gICAgICBzZWUgPG5kbmJvb3N0L3ZlcnNpb24uaHBwPgorICAqICAgREVTQ1JJUFRJT046IEF1dG9tYXRpYyBsaWJyYXJ5IGluY2x1c2lvbiBmb3IgQm9ybGFuZC9NaWNyb3NvZnQgY29tcGlsZXJzLgorICAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitVU0FHRToKK35+fn5+fgorCitCZWZvcmUgaW5jbHVkaW5nIHRoaXMgaGVhZGVyIHlvdSBtdXN0IGRlZmluZSBvbmUgb3IgbW9yZSBvZiBkZWZpbmUgdGhlIGZvbGxvd2luZyBtYWNyb3M6CisKK0JPT1NUX0xJQl9OQU1FOiAgICAgICAgICAgUmVxdWlyZWQ6IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSBib29zdF9yZWdleC4KK0JPT1NUX0xJQl9UT09MU0VUOiAgICAgICAgT3B0aW9uYWw6IHRoZSBiYXNlIG5hbWUgb2YgdGhlIHRvb2xzZXQuCitCT09TVF9EWU5fTElOSzogICAgICAgICAgIE9wdGlvbmFsOiB3aGVuIHNldCBsaW5rIHRvIGRsbCByYXRoZXIgdGhhbiBzdGF0aWMgbGlicmFyeS4KK0JPT1NUX0xJQl9ESUFHTk9TVElDOiAgICAgT3B0aW9uYWw6IHdoZW4gc2V0IHRoZSBoZWFkZXIgd2lsbCBwcmludCBvdXQgdGhlIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGhlIGxpYnJhcnkgc2VsZWN0ZWQgKHVzZWZ1bCBmb3IgZGVidWdnaW5nKS4KK0JPT1NUX0FVVE9fTElOS19OT01BTkdMRTogU3BlY2lmaWVzIHRoYXQgd2Ugc2hvdWxkIGxpbmsgdG8gQk9PU1RfTElCX05BTUUubGliLAorICAgICAgICAgICAgICAgICAgICAgICAgICByYXRoZXIgdGhhbiBhIG1hbmdsZWQtbmFtZSB2ZXJzaW9uLgorQk9PU1RfQVVUT19MSU5LX1RBR0dFRDogICBTcGVjaWZpZXMgdGhhdCB3ZSBsaW5rIHRvIGxpYnJhcmllcyBidWlsdCB3aXRoIHRoZSAtLWxheW91dD10YWdnZWQgb3B0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0IG5hbWUtbWFuZ2xlZCB2ZXJzaW9uLCBidXQgd2l0aG91dAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29tcGlsZXIgbmFtZSBhbmQgdmVyc2lvbiwgb3IgdGhlIEJvb3N0IHZlcnNpb24uICBKdXN0IHRoZSBidWlsZCBvcHRpb25zLgorCitUaGVzZSBtYWNyb3Mgd2lsbCBiZSB1bmRlZidlZCBhdCB0aGUgZW5kIG9mIHRoZSBoZWFkZXIsIGZ1cnRoZXIgdGhpcyBoZWFkZXIKK2hhcyBubyBpbmNsdWRlIGd1YXJkcyAtIHNvIGJlIHN1cmUgdG8gaW5jbHVkZSBpdCBvbmx5IG9uY2UgZnJvbSB5b3VyIGxpYnJhcnkhCisKK0FsZ29yaXRobToKK35+fn5+fn5+fn4KKworTGlicmFyaWVzIGZvciBCb3JsYW5kIGFuZCBNaWNyb3NvZnQgY29tcGlsZXJzIGFyZSBhdXRvbWF0aWNhbGx5CitzZWxlY3RlZCBoZXJlLCB0aGUgbmFtZSBvZiB0aGUgbGliIGlzIHNlbGVjdGVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nCitmb3JtdWxhOgorCitCT09TVF9MSUJfUFJFRklYCisgICArIEJPT1NUX0xJQl9OQU1FCisgICArICJfIgorICAgKyBCT09TVF9MSUJfVE9PTFNFVAorICAgKyBCT09TVF9MSUJfVEhSRUFEX09QVAorICAgKyBCT09TVF9MSUJfUlRfT1BUCisgICAiLSIKKyAgICsgQk9PU1RfTElCX1ZFUlNJT04KKworVGhlc2UgYXJlIGRlZmluZWQgYXM6CisKK0JPT1NUX0xJQl9QUkVGSVg6ICAgICAibGliIiBmb3Igc3RhdGljIGxpYnJhcmllcyBvdGhlcndpc2UgIiIuCisKK0JPT1NUX0xJQl9OQU1FOiAgICAgICBUaGUgYmFzZSBuYW1lIG9mIHRoZSBsaWIgKCBmb3IgZXhhbXBsZSBib29zdF9yZWdleCkuCisKK0JPT1NUX0xJQl9UT09MU0VUOiAgICBUaGUgY29tcGlsZXIgdG9vbHNldCBuYW1lICh2YzYsIHZjNywgYmNiNSBldGMpLgorCitCT09TVF9MSUJfVEhSRUFEX09QVDogIi1tdCIgZm9yIG11bHRpdGhyZWFkIGJ1aWxkcywgb3RoZXJ3aXNlIG5vdGhpbmcuCisKK0JPT1NUX0xJQl9SVF9PUFQ6ICAgICBBIHN1ZmZpeCB0aGF0IGluZGljYXRlcyB0aGUgcnVudGltZSBsaWJyYXJ5IHVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBsZXR0ZXJzIGFmdGVyCisgICAgICAgICAgICAgICAgICAgICAgYSBoeXBoZW46CisKKyAgICAgICAgICAgICAgICAgICAgICBzICAgICAgc3RhdGljIHJ1bnRpbWUgKGR5bmFtaWMgaWYgbm90IHByZXNlbnQpLgorICAgICAgICAgICAgICAgICAgICAgIGcgICAgICBkZWJ1Zy9kaWFnbm9zdGljIHJ1bnRpbWUgKHJlbGVhc2UgaWYgbm90IHByZXNlbnQpLgorICAgICAgICAgICAgICAgICAgICAgIHkgICAgICBQeXRob24gZGVidWcvZGlhZ25vc3RpYyBydW50aW1lIChyZWxlYXNlIGlmIG5vdCBwcmVzZW50KS4KKyAgICAgICAgICAgICAgICAgICAgICBkICAgICAgZGVidWcgYnVpbGQgKHJlbGVhc2UgaWYgbm90IHByZXNlbnQpLgorICAgICAgICAgICAgICAgICAgICAgIHAgICAgICBTVExwb3J0IGJ1aWxkLgorICAgICAgICAgICAgICAgICAgICAgIG4gICAgICBTVExwb3J0IGJ1aWxkIHdpdGhvdXQgaXRzIElPU3RyZWFtcy4KKworQk9PU1RfTElCX1ZFUlNJT046ICAgIFRoZSBCb29zdCB2ZXJzaW9uLCBpbiB0aGUgZm9ybSB4X3ksIGZvciBCb29zdCB2ZXJzaW9uIHgueS4KKworCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworIyAgaWZuZGVmIEJPT1NUX0NPTkZJR19IUFAKKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjICBlbmRpZgorI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoX19NV0VSS1NfXykgJiYgIWRlZmluZWQoX19FREdfVkVSU0lPTl9fKQorLy8KKy8vIEMgbGFuZ3VhZ2UgY29tcGF0YWJpbGl0eSAobm8sIGhvbmVzdGx5KQorLy8KKyMgIGRlZmluZSBCT09TVF9NU1ZDIF9NU0NfVkVSCisjICBkZWZpbmUgQk9PU1RfU1RSSU5HSVpFKFgpIEJPT1NUX0RPX1NUUklOR0laRShYKQorIyAgZGVmaW5lIEJPT1NUX0RPX1NUUklOR0laRShYKSAjWAorI2VuZGlmCisvLworLy8gT25seSBpbmNsdWRlIHdoYXQgZm9sbG93cyBmb3Iga25vd24gYW5kIHN1cHBvcnRlZCBjb21waWxlcnM6CisvLworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgXAorICAgIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKSBcCisgICAgfHwgKGRlZmluZWQoX19NV0VSS1NfXykgJiYgZGVmaW5lZChfV0lOMzIpICYmIChfX01XRVJLU19fID49IDB4MzAwMCkpIFwKKyAgICB8fCAoZGVmaW5lZChfX0lDTCkgJiYgZGVmaW5lZChfTVNDX0VYVEVOU0lPTlMpICYmIChfTVNDX1ZFUiA+PSAxMjAwKSkKKworI2lmbmRlZiBCT09TVF9WRVJTSU9OX0hQUAorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdmVyc2lvbi5ocHA+CisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9MSUJfTkFNRQorIyAgZXJyb3IgIk1hY3JvIEJPT1NUX0xJQl9OQU1FIG5vdCBzZXQgKGludGVybmFsIGVycm9yKSIKKyNlbmRpZgorCisvLworLy8gZXJyb3IgY2hlY2s6CisvLworI2lmIGRlZmluZWQoX19NU1ZDX1JVTlRJTUVfQ0hFQ0tTKSAmJiAhZGVmaW5lZChfREVCVUcpCisjICBwcmFnbWEgbWVzc2FnZSgiVXNpbmcgdGhlIC9SVEMgb3B0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyBhIGRlYnVnIHJ1bnRpbWUgd2lsbCBsZWFkIHRvIGxpbmtlciBlcnJvcnMiKQorIyAgcHJhZ21hIG1lc3NhZ2UoIkhpbnQ6IGdvIHRvIHRoZSBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucyBhbmQgc3dpdGNoIHRvIG9uZSBvZiB0aGUgZGVidWdnaW5nIHJ1bnRpbWVzIikKKyMgIGVycm9yICJJbmNvbXBhdGlibGUgYnVpbGQgb3B0aW9ucyIKKyNlbmRpZgorLy8KKy8vIHNlbGVjdCB0b29sc2V0IGlmIG5vdCBkZWZpbmVkIGFscmVhZHk6CisvLworI2lmbmRlZiBCT09TVF9MSUJfVE9PTFNFVAorIyAgaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDEyMDApCisgICAgLy8gTm90ZTogbm8gY29tcGlsZXJzIGJlZm9yZSAxMjAwIGFyZSBzdXBwb3J0ZWQKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDEzMDApCisKKyMgICAgaWZkZWYgVU5ERVJfQ0UKKyAgICAgICAvLyBlVkM0OgorIyAgICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAiZXZjNCIKKyMgICAgZWxzZQorICAgICAgIC8vIHZjNjoKKyMgICAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgInZjNiIKKyMgICAgZW5kaWYKKworIyAgZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTMxMCkKKworICAgICAvLyB2Yzc6CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAidmM3IgorCisjICBlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPCAxNDAwKQorCisgICAgIC8vIHZjNzE6CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAidmM3MSIKKworIyAgZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTUwMCkKKworICAgICAvLyB2YzgwOgorIyAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgInZjODAiCisKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDE2MDApCisKKyAgICAgLy8gdmM5MDoKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJ2YzkwIgorCisjICBlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPCAxNzAwKQorCisgICAgIC8vIHZjMTA6CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAidmMxMDAiCisKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorCisgICAgIC8vIHZjMTE6CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAidmMxMTAiCisKKyMgIGVsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisKKyAgICAgLy8gQ0J1aWxkZXIgNjoKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJiY2IiCisKKyMgIGVsaWYgZGVmaW5lZChfX0lDTCkKKworICAgICAvLyBJbnRlbCBDKyssIG5vIHZlcnNpb24gbnVtYmVyOgorIyAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgIml3IgorCisjICBlbGlmIGRlZmluZWQoX19NV0VSS1NfXykgJiYgKF9fTVdFUktTX18gPD0gMHgzMUZGICkKKworICAgICAvLyBNZXRyb3dlcmtzIENvZGVXYXJyaW9yIDgueAorIyAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgImN3OCIKKworIyAgZWxpZiBkZWZpbmVkKF9fTVdFUktTX18pICYmIChfX01XRVJLU19fIDw9IDB4MzJGRiApCisKKyAgICAgLy8gTWV0cm93ZXJrcyBDb2RlV2FycmlvciA5LngKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJjdzkiCisKKyMgIGVuZGlmCisjZW5kaWYgLy8gQk9PU1RfTElCX1RPT0xTRVQKKworLy8KKy8vIHNlbGVjdCB0aHJlYWQgb3B0OgorLy8KKyNpZiBkZWZpbmVkKF9NVCkgfHwgZGVmaW5lZChfX01UX18pCisjICBkZWZpbmUgQk9PU1RfTElCX1RIUkVBRF9PUFQgIi1tdCIKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfTElCX1RIUkVBRF9PUFQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX01XRVJLU19fKQorCisjICBpZmRlZiBfRExMCisKKyMgICAgIGlmIChkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSB8fCBkZWZpbmVkKF9TVExQT1JUX1ZFUlNJT04pKSAmJiAoZGVmaW5lZChfU1RMUF9PV05fSU9TVFJFQU1TKSB8fCBkZWZpbmVkKF9fU1RMX09XTl9JT1NUUkVBTVMpKQorCisjICAgICAgICBpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZ3lkcCIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpICYmIChkZWZpbmVkKF9fU1RMX0RFQlVHKSB8fCBkZWZpbmVkKF9TVExQX0RFQlVHKSkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWdkcCIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1neWRwIgorIyAgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJ3YXJuaW5nOiBTVExwb3J0IGRlYnVnIHZlcnNpb25zIGFyZSBidWlsdCB3aXRoIC9EX1NUTFBfREVCVUc9MSIpCisjICAgICAgICAgICAgZXJyb3IgIkJ1aWxkIG9wdGlvbnMgYXJlbid0IGNvbXBhdGlibGUgd2l0aCBwcmUtYnVpbHQgbGlicmFyaWVzIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWdkcCIKKyMgICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgid2FybmluZzogU1RMcG9ydCBkZWJ1ZyB2ZXJzaW9ucyBhcmUgYnVpbHQgd2l0aCAvRF9TVExQX0RFQlVHPTEiKQorIyAgICAgICAgICAgIGVycm9yICJCdWlsZCBvcHRpb25zIGFyZW4ndCBjb21wYXRpYmxlIHdpdGggcHJlLWJ1aWx0IGxpYnJhcmllcyIKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXAiCisjICAgICAgICBlbmRpZgorCisjICAgICBlbGlmIGRlZmluZWQoX19TR0lfU1RMX1BPUlQpIHx8IGRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKworIyAgICAgICAgaWYgZGVmaW5lZChfREVCVUcpICYmIChkZWZpbmVkKF9fU1RMX0RFQlVHKSB8fCBkZWZpbmVkKF9TVExQX0RFQlVHKSlcCisgICAgICAgICAgICAgICAmJiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWd5ZHBuIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZ2RwbiIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1neWRwbiIKKyMgICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgid2FybmluZzogU1RMcG9ydCBkZWJ1ZyB2ZXJzaW9ucyBhcmUgYnVpbHQgd2l0aCAvRF9TVExQX0RFQlVHPTEiKQorIyAgICAgICAgICAgIGVycm9yICJCdWlsZCBvcHRpb25zIGFyZW4ndCBjb21wYXRpYmxlIHdpdGggcHJlLWJ1aWx0IGxpYnJhcmllcyIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1nZHBuIgorIyAgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJ3YXJuaW5nOiBTVExwb3J0IGRlYnVnIHZlcnNpb25zIGFyZSBidWlsdCB3aXRoIC9EX1NUTFBfREVCVUc9MSIpCisjICAgICAgICAgICAgZXJyb3IgIkJ1aWxkIG9wdGlvbnMgYXJlbid0IGNvbXBhdGlibGUgd2l0aCBwcmUtYnVpbHQgbGlicmFyaWVzIgorIyAgICAgICAgZWxzZQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItcG4iCisjICAgICAgICBlbmRpZgorCisjICAgICBlbHNlCisKKyMgICAgICAgIGlmIGRlZmluZWQoX0RFQlVHKSAmJiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWd5ZCIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1nZCIKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVAorIyAgICAgICAgZW5kaWYKKworIyAgICAgZW5kaWYKKworIyAgZWxzZQorCisjICAgICBpZiAoZGVmaW5lZChfX1NHSV9TVExfUE9SVCkgfHwgZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKSkgJiYgKGRlZmluZWQoX1NUTFBfT1dOX0lPU1RSRUFNUykgfHwgZGVmaW5lZChfX1NUTF9PV05fSU9TVFJFQU1TKSkKKworIyAgICAgICAgaWYgZGVmaW5lZChfREVCVUcpICYmIChkZWZpbmVkKF9fU1RMX0RFQlVHKSB8fCBkZWZpbmVkKF9TVExQX0RFQlVHKSlcCisgICAgICAgICAgICAgICAmJiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNneWRwIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2dkcCIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2d5ZHAiCisjICAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIndhcm5pbmc6IFNUTHBvcnQgZGVidWcgdmVyc2lvbnMgYXJlIGJ1aWx0IHdpdGggL0RfU1RMUF9ERUJVRz0xIikKKyMgICAgICAgICAgICBlcnJvciAiQnVpbGQgb3B0aW9ucyBhcmVuJ3QgY29tcGF0aWJsZSB3aXRoIHByZS1idWlsdCBsaWJyYXJpZXMiCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKQorIyAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNnZHAiCisjICAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIndhcm5pbmc6IFNUTHBvcnQgZGVidWcgdmVyc2lvbnMgYXJlIGJ1aWx0IHdpdGggL0RfU1RMUF9ERUJVRz0xIikKKyMgICAgICAgICAgICBlcnJvciAiQnVpbGQgb3B0aW9ucyBhcmVuJ3QgY29tcGF0aWJsZSB3aXRoIHByZS1idWlsdCBsaWJyYXJpZXMiCisjICAgICAgICBlbHNlCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zcCIKKyMgICAgICAgIGVuZGlmCisKKyMgICAgIGVsaWYgZGVmaW5lZChfX1NHSV9TVExfUE9SVCkgfHwgZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKQorCisjICAgICAgICBpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2d5ZHBuIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2dkcG4iCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNneWRwbiIKKyMgICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgid2FybmluZzogU1RMcG9ydCBkZWJ1ZyB2ZXJzaW9ucyBhcmUgYnVpbHQgd2l0aCAvRF9TVExQX0RFQlVHPTEiKQorIyAgICAgICAgICAgIGVycm9yICJCdWlsZCBvcHRpb25zIGFyZW4ndCBjb21wYXRpYmxlIHdpdGggcHJlLWJ1aWx0IGxpYnJhcmllcyIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpCisjICAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2dkcG4iCisjICAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIndhcm5pbmc6IFNUTHBvcnQgZGVidWcgdmVyc2lvbnMgYXJlIGJ1aWx0IHdpdGggL0RfU1RMUF9ERUJVRz0xIikKKyMgICAgICAgICAgICBlcnJvciAiQnVpbGQgb3B0aW9ucyBhcmVuJ3QgY29tcGF0aWJsZSB3aXRoIHByZS1idWlsdCBsaWJyYXJpZXMiCisjICAgICAgICBlbHNlCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zcG4iCisjICAgICAgICBlbmRpZgorCisjICAgICBlbHNlCisKKyMgICAgICAgIGlmIGRlZmluZWQoX0RFQlVHKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNneWQiCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKQorIyAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNnZCIKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXMiCisjICAgICAgICBlbmRpZgorCisjICAgICBlbmRpZgorCisjICBlbmRpZgorCisjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKKworLy8KKy8vIGZpZ3VyZSBvdXQgd2hldGhlciB3ZSB3YW50IHRoZSBkZWJ1ZyBidWlsZHMgb3Igbm90OgorLy8KKyNpZiBfX0JPUkxBTkRDX18gPiAweDU2MQorI3ByYWdtYSBkZWZpbmVvbm9wdGlvbiBCT09TVF9CT1JMQU5EX0RFQlVHIC12CisjZW5kaWYKKy8vCisvLyBzYW5pdHkgY2hlY2s6CisvLworI2lmIGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpCisjZXJyb3IgIlByZS1idWlsdCB2ZXJzaW9ucyBvZiB0aGUgQm9vc3QgbGlicmFyaWVzIGFyZSBub3QgcHJvdmlkZWQgaW4gU1RMcG9ydC1kZWJ1ZyBmb3JtIgorI2VuZGlmCisKKyMgIGlmZGVmIF9SVExETEwKKworIyAgICAgaWYgZGVmaW5lZChCT09TVF9CT1JMQU5EX0RFQlVHKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICIteWQiCisjICAgICBlbGlmIGRlZmluZWQoQk9PU1RfQk9STEFORF9ERUJVRykKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWQiCisjICAgICBlbGlmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUIC15CisjICAgICBlbHNlCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQKKyMgICAgIGVuZGlmCisKKyMgIGVsc2UKKworIyAgICAgaWYgZGVmaW5lZChCT09TVF9CT1JMQU5EX0RFQlVHKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc3lkIgorIyAgICAgZWxpZiBkZWZpbmVkKEJPT1NUX0JPUkxBTkRfREVCVUcpCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zZCIKKyMgICAgIGVsaWYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zeSIKKyMgICAgIGVsc2UKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXMiCisjICAgICBlbmRpZgorCisjICBlbmRpZgorCisjZW5kaWYKKworLy8KKy8vIHNlbGVjdCBsaW5rYWdlIG9wdDoKKy8vCisjaWYgKGRlZmluZWQoX0RMTCkgfHwgZGVmaW5lZChfUlRMRExMKSkgJiYgZGVmaW5lZChCT09TVF9EWU5fTElOSykKKyMgIGRlZmluZSBCT09TVF9MSUJfUFJFRklYCisjZWxpZiBkZWZpbmVkKEJPT1NUX0RZTl9MSU5LKQorIyAgZXJyb3IgIk1peGluZyBhIGRsbCBib29zdCBsaWJyYXJ5IHdpdGggYSBzdGF0aWMgcnVudGltZSBpcyBhIHJlYWxseSBiYWQgaWRlYS4uLiIKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfTElCX1BSRUZJWCAibGliIgorI2VuZGlmCisKKy8vCisvLyBub3cgaW5jbHVkZSB0aGUgbGliOgorLy8KKyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9OQU1FKSBcCisgICAgICAmJiBkZWZpbmVkKEJPT1NUX0xJQl9QUkVGSVgpIFwKKyAgICAgICYmIGRlZmluZWQoQk9PU1RfTElCX1RPT0xTRVQpIFwKKyAgICAgICYmIGRlZmluZWQoQk9PU1RfTElCX1RIUkVBRF9PUFQpIFwKKyAgICAgICYmIGRlZmluZWQoQk9PU1RfTElCX1JUX09QVCkgXAorICAgICAgJiYgZGVmaW5lZChCT09TVF9MSUJfVkVSU0lPTikKKworI2lmZGVmIEJPT1NUX0FVVE9fTElOS19UQUdHRUQKKyMgIHByYWdtYSBjb21tZW50KGxpYiwgQk9PU1RfTElCX1BSRUZJWCBCT09TVF9TVFJJTkdJWkUoQk9PU1RfTElCX05BTUUpIEJPT1NUX0xJQl9USFJFQURfT1BUIEJPT1NUX0xJQl9SVF9PUFQgIi5saWIiKQorIyAgaWZkZWYgQk9PU1RfTElCX0RJQUdOT1NUSUMKKyMgICAgIHByYWdtYSBtZXNzYWdlICgiTGlua2luZyB0byBsaWIgZmlsZTogIiBCT09TVF9MSUJfUFJFRklYIEJPT1NUX1NUUklOR0laRShCT09TVF9MSUJfTkFNRSkgQk9PU1RfTElCX1RIUkVBRF9PUFQgQk9PU1RfTElCX1JUX09QVCAiLmxpYiIpCisjICBlbmRpZgorI2VsaWYgZGVmaW5lZChCT09TVF9BVVRPX0xJTktfTk9NQU5HTEUpCisjICBwcmFnbWEgY29tbWVudChsaWIsIEJPT1NUX1NUUklOR0laRShCT09TVF9MSUJfTkFNRSkgIi5saWIiKQorIyAgaWZkZWYgQk9PU1RfTElCX0RJQUdOT1NUSUMKKyMgICAgIHByYWdtYSBtZXNzYWdlICgiTGlua2luZyB0byBsaWIgZmlsZTogIiBCT09TVF9TVFJJTkdJWkUoQk9PU1RfTElCX05BTUUpICIubGliIikKKyMgIGVuZGlmCisjZWxzZQorIyAgcHJhZ21hIGNvbW1lbnQobGliLCBCT09TVF9MSUJfUFJFRklYIEJPT1NUX1NUUklOR0laRShCT09TVF9MSUJfTkFNRSkgIi0iIEJPT1NUX0xJQl9UT09MU0VUIEJPT1NUX0xJQl9USFJFQURfT1BUIEJPT1NUX0xJQl9SVF9PUFQgIi0iIEJPT1NUX0xJQl9WRVJTSU9OICIubGliIikKKyMgIGlmZGVmIEJPT1NUX0xJQl9ESUFHTk9TVElDCisjICAgICBwcmFnbWEgbWVzc2FnZSAoIkxpbmtpbmcgdG8gbGliIGZpbGU6ICIgQk9PU1RfTElCX1BSRUZJWCBCT09TVF9TVFJJTkdJWkUoQk9PU1RfTElCX05BTUUpICItIiBCT09TVF9MSUJfVE9PTFNFVCBCT09TVF9MSUJfVEhSRUFEX09QVCBCT09TVF9MSUJfUlRfT1BUICItIiBCT09TVF9MSUJfVkVSU0lPTiAiLmxpYiIpCisjICBlbmRpZgorI2VuZGlmCisKKyNlbHNlCisjICBlcnJvciAic29tZSByZXF1aXJlZCBtYWNyb3Mgd2hlcmUgbm90IGRlZmluZWQgKGludGVybmFsIGxvZ2ljIGVycm9yKS4iCisjZW5kaWYKKworCisjZW5kaWYgLy8gX01TQ19WRVIgfHwgX19CT1JMQU5EQ19fCisKKy8vCisvLyBmaW5hbGx5IHVuZGVmIGFueSBtYWNyb3Mgd2UgbWF5IGhhdmUgc2V0OgorLy8KKyNpZmRlZiBCT09TVF9MSUJfUFJFRklYCisjICB1bmRlZiBCT09TVF9MSUJfUFJFRklYCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9OQU1FKQorIyAgdW5kZWYgQk9PU1RfTElCX05BTUUKKyNlbmRpZgorLy8gRG9uJ3QgdW5kZWYgdGhpcyBvbmU6IGl0IGNhbiBiZSBzZXQgYnkgdGhlIHVzZXIgYW5kIHNob3VsZCBiZSB0aGUgCisvLyBzYW1lIGZvciBhbGwgbGlicmFyaWVzOgorLy8jaWYgZGVmaW5lZChCT09TVF9MSUJfVE9PTFNFVCkKKy8vIyAgdW5kZWYgQk9PU1RfTElCX1RPT0xTRVQKKy8vI2VuZGlmCisjaWYgZGVmaW5lZChCT09TVF9MSUJfVEhSRUFEX09QVCkKKyMgIHVuZGVmIEJPT1NUX0xJQl9USFJFQURfT1BUCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9SVF9PUFQpCisjICB1bmRlZiBCT09TVF9MSUJfUlRfT1BUCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9MSU5LX09QVCkKKyMgIHVuZGVmIEJPT1NUX0xJQl9MSU5LX09QVAorI2VuZGlmCisjaWYgZGVmaW5lZChCT09TVF9MSUJfREVCVUdfT1BUKQorIyAgdW5kZWYgQk9PU1RfTElCX0RFQlVHX09QVAorI2VuZGlmCisjaWYgZGVmaW5lZChCT09TVF9EWU5fTElOSykKKyMgIHVuZGVmIEJPT1NUX0RZTl9MSU5LCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvYm9ybGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9ib3JsYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTk2NWM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvYm9ybGFuZC5ocHAKQEAgLTAsMCArMSwyODggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBCb3JsYW5kIEMrKyBjb21waWxlciBzZXR1cDoKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBCb3JsYW5kIHByaW9yIHRvIHZlcnNpb24gNS40OgorI2lmIF9fQk9STEFORENfXyA8IDB4NTQwCisjICBlcnJvciAiQ29tcGlsZXIgbm90IHN1cHBvcnRlZCBvciBjb25maWd1cmVkIC0gcGxlYXNlIHJlY29uZmlndXJlIgorI2VuZGlmCisKKy8vIGxhc3Qga25vd24gY29tcGlsZXIgdmVyc2lvbjoKKyNpZiAoX19CT1JMQU5EQ19fID4gMHg2MTMpCisvLyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKy8vIyAgZWxzZQorLy8jICAgICBwcmFnbWEgbWVzc2FnZSggIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIikKKy8vIyAgZW5kaWYKKyNlbGlmIChfX0JPUkxBTkRDX18gPT0gMHg2MDApCisjICBlcnJvciAiQ0J1aWxkZXJYIHByZXZpZXcgY29tcGlsZXIgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIKKyNlbmRpZgorCisvLworLy8gU3VwcG9ydCBtYWNyb3MgdG8gaGVscCB3aXRoIHN0YW5kYXJkIGxpYnJhcnkgZGV0ZWN0aW9uCisjaWYgKF9fQk9STEFORENfXyA8IDB4NTYwKSB8fCBkZWZpbmVkKF9VU0VfT0xEX1JXX1NUTCkKKyMgIGRlZmluZSBCT09TVF9CQ0JfV0lUSF9ST0dVRV9XQVZFCisjZWxpZiBfX0JPUkxBTkRDX18gPCAweDU3MAorIyAgZGVmaW5lIEJPT1NUX0JDQl9XSVRIX1NUTFBPUlQKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfQkNCX1dJVEhfRElOS1VNV0FSRQorI2VuZGlmCisKKy8vCisvLyBWZXJzaW9uIDUuMCBhbmQgYmVsb3c6CisjICAgaWYgX19CT1JMQU5EQ19fIDw9IDB4MDU1MAorLy8gQm9ybGFuZCBDKytCdWlsZGVyIDQgYW5kIDU6CisjICAgICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgICAgIGlmIF9fQk9STEFORENfXyA9PSAweDA1NTAKKy8vIEJvcmxhbmQgQysrQnVpbGRlciA1LCBjb21tYW5kLWxpbmUgY29tcGlsZXIgNS41OgorIyAgICAgICBkZWZpbmUgQk9PU1RfTk9fT1BFUkFUT1JTX0lOX05BTUVTUEFDRQorIyAgICAgZW5kaWYKKy8vIFZhcmlhZGljIG1hY3JvcyBkbyBub3QgZXhpc3QgZm9yIEMrKyBCdWlsZGVyIHZlcnNpb25zIDUgYW5kIGJlbG93CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgIGVuZGlmCisKKy8vIFZlcnNpb24gNS41MSBhbmQgYmVsb3c6CisjaWYgKF9fQk9STEFORENfXyA8PSAweDU1MSkKKyMgIGRlZmluZSBCT09TVF9OT19DVl9TUEVDSUFMSVpBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0RFRFVDRURfVFlQRU5BTUUKKy8vIHdvcmthcm91bmQgZm9yIG1pc3NpbmcgV0NIQVJfTUFYL1dDSEFSX01JTjoKKyNpZmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPGNsaW1pdHM+CisjaW5jbHVkZSA8Y3djaGFyPgorI2Vsc2UKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx3Y2hhci5oPgorI2VuZGlmIC8vIF9fY3BsdXNwbHVzCisjaWZuZGVmIFdDSEFSX01BWAorIyAgZGVmaW5lIFdDSEFSX01BWCAweGZmZmYKKyNlbmRpZgorI2lmbmRlZiBXQ0hBUl9NSU4KKyMgIGRlZmluZSBXQ0hBUl9NSU4gMAorI2VuZGlmCisjZW5kaWYKKworLy8gQm9ybGFuZCBDKysgQnVpbGRlciA2IGFuZCBiZWxvdzoKKyNpZiAoX19CT1JMQU5EQ19fIDw9IDB4NTY0KQorCisjICBpZiBkZWZpbmVkKE5ERUJVRykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyAgICAgIC8vIGZpeCBicm9rZW4gPGNzdHJpbmc+IHNvIHRoYXQgQm9vc3QudGVzdCB3b3JrczoKKyMgICAgIGluY2x1ZGUgPGNzdHJpbmc+CisjICAgICB1bmRlZiBzdHJjbXAKKyMgIGVuZGlmCisgICAvLyBmaXggYnJva2VuIGVycm5vIGRlY2xhcmF0aW9uOgorIyAgaW5jbHVkZSA8ZXJybm8uaD4KKyMgIGlmbmRlZiBlcnJubworIyAgICAgZGVmaW5lIGVycm5vIGVycm5vCisjICBlbmRpZgorCisjZW5kaWYKKworLy8KKy8vIG5ldyBidWcgaW4gNS42MToKKyNpZiAoX19CT1JMQU5EQ19fID49IDB4NTYxKSAmJiAoX19CT1JMQU5EQ19fIDw9IDB4NTgwKQorICAgLy8gdGhpcyBzZWVtcyB0byBiZSBuZWVkZWQgYnkgdGhlIGNvbW1hbmQgbGluZSBjb21waWxlciwgYnV0IG5vdCB0aGUgSURFOgorIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9GVU5DVElPTl9TUEVDSUFMSVpBVElPTlMKKyNlbmRpZgorCisvLyBCb3JsYW5kIEMrKyBCdWlsZGVyIDIwMDYgVXBkYXRlIDIgYW5kIGJlbG93OgorI2lmIChfX0JPUkxBTkRDX18gPD0gMHg1ODIpCisjICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFCisjICBkZWZpbmUgQk9PU1RfQkNCX1BBUlRJQUxfU1BFQ0lBTElaQVRJT05fQlVHCisjICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVfVEVNUExBVEVTCisKKyMgIGRlZmluZSBCT09TVF9OT19QUklWQVRFX0lOX0FHR1JFR0FURQorCisjICBpZmRlZiBfV0lOMzIKKyMgICAgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorIyAgZWxpZiBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX2xpbnV4KQorICAgICAgLy8gd2Ugc2hvdWxkIHJlYWxseSBiZSBhYmxlIHRvIGRvIHdpdGhvdXQgdGhpcworICAgICAgLy8gYnV0IHRoZSB3Y3MqIGZ1bmN0aW9ucyBhcmVuJ3QgaW1wb3J0ZWQgaW50byBzdGQ6OgorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisgICAgICAvLyBfQ1BQVU5XSU5EIGRvZXNuJ3QgZ2V0IGF1dG9tYXRpY2FsbHkgc2V0IGZvciBzb21lIHJlYXNvbjoKKyMgICAgIHByYWdtYSBkZWZpbmVvbm9wdGlvbiBCT09TVF9DUFBVTldJTkQgLXgKKyMgIGVuZGlmCisjZW5kaWYKKworI2lmIChfX0JPUkxBTkRDX18gPD0gMHg2MTMpICAvLyBCZW1hbiBoYXMgYXNrZWQgQWxpc2RhaXIgZm9yIG1vcmUgaW5mbworICAgLy8gd2Ugc2hvdWxkbid0IHJlYWxseSBuZWVkIHRoaXMgLSBidXQgdG9vIG1hbnkgdGhpbmdzIGNob2tlCisgICAvLyB3aXRob3V0IGl0LCB0aGlzIG5lZWRzIG1vcmUgaW52ZXN0aWdhdGlvbjoKKyMgIGRlZmluZSBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworIyAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICBkZWZpbmUgQk9PU1RfTk9fRlVOQ1RJT05fVFlQRV9TUEVDSUFMSVpBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19VU0lOR19URU1QTEFURQorIyAgZGVmaW5lIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFCisKKy8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kCisjZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZgorCisvLyBCb3JsYW5kIEMrKyBCdWlsZGVyIDIwMDggYW5kIGJlbG93OgorIyAgZGVmaW5lIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9TQ09QRV9VU0lOR19ERUNMQVJBVElPTl9CUkVBS1NfQURMCisjICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX05FU1RFRF9ERVJJVkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTCisjICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjICBkZWZpbmUgQk9PU1RfTk9fVVNJTkdfREVDTEFSQVRJT05fT1ZFUkxPQURTX0ZST01fVFlQRU5BTUVfQkFTRQorIyAgZGVmaW5lIEJPT1NUX05PX05FU1RFRF9GUklFTkRTSElQCisjICBkZWZpbmUgQk9PU1RfTk9fVFlQRU5BTUVfV0lUSF9DVE9SCisjaWYgKF9fQk9STEFORENfXyA8IDB4NjAwKQorIyAgZGVmaW5lIEJPT1NUX0lMTEVHQUxfQ1ZfUkVGRVJFTkNFUworI2VuZGlmCisKKy8vCisvLyAgUG9zaXRpdmUgRmVhdHVyZSBkZXRlY3Rpb24KKy8vCisvLyBCb3JsYW5kIEMrKyBCdWlsZGVyIDIwMDggYW5kIGJlbG93OgorI2lmIChfX0JPUkxBTkRDX18gPj0gMHg1OTkpCisjICBwcmFnbWEgZGVmaW5lb25vcHRpb24gQk9PU1RfQ09ERUdFQVJfMFhfU1VQUE9SVCAtQXgKKyNlbmRpZgorLy8KKy8vIEMrKzB4IE1hY3JvczoKKy8vCisjaWYgIWRlZmluZWQoIEJPT1NUX0NPREVHRUFSXzBYX1NVUFBPUlQgKSB8fCAoX19CT1JMQU5EQ19fIDwgMHg2MTApCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0hBU19BTElHTk9GCisjICBkZWZpbmUgQk9PU1RfSEFTX0NIQVIxNl9UCisjICBkZWZpbmUgQk9PU1RfSEFTX0NIQVIzMl9UCisjICBkZWZpbmUgQk9PU1RfSEFTX0RFQ0xUWVBFCisjICBkZWZpbmUgQk9PU1RfSEFTX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BTCisjICBkZWZpbmUgQk9PU1RfSEFTX1JFRl9RVUFMSUZJRVIKKyMgIGRlZmluZSBCT09TVF9IQVNfUlZBTFVFX1JFRlMKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RBVElDX0FTU0VSVAorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTICAgIC8vIFVURi04IHN0aWxsIG5vdCBzdXBwb3J0ZWQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VTRVJfREVGSU5FRF9MSVRFUkFMUworCisjaWYgX19CT1JMQU5EQ19fID49IDB4NTkwCisjICBkZWZpbmUgQk9PU1RfSEFTX1RSMV9IQVNICisKKyMgIGRlZmluZSBCT09TVF9IQVNfTUFDUk9fVVNFX0ZBQ0VUCisjZW5kaWYKKworLy8KKy8vIFBvc3QgMHg1NjEgd2UgaGF2ZSBsb25nIGxvbmcgYW5kIHN0ZGludC5oOgorI2lmIF9fQk9STEFORENfXyA+PSAweDU2MQorIyAgaWZuZGVmIF9fTk9fTE9OR19MT05HCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworIyAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0xPTkdfTE9ORworIyAgZW5kaWYKKyAgIC8vIE9uIG5vbi1XaW4zMiBwbGF0Zm9ybXMgbGV0IHRoZSBwbGF0Zm9ybSBjb25maWcgZmlndXJlIHRoaXMgb3V0OgorIyAgaWZkZWYgX1dJTjMyCisjICAgICAgZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorIyAgZW5kaWYKKyNlbmRpZgorCisvLyBCb3JsYW5kIEMrK0J1aWxkZXIgNiBkZWZhdWx0cyB0byB1c2luZyBTVExQb3J0LiAgSWYgX1VTRV9PTERfUldfU1RMIGlzCisvLyBkZWZpbmVkLCB0aGVuIHdlIGhhdmUgMHg1NjAgb3IgZ3JlYXRlciB3aXRoIHRoZSBSb2d1ZSBXYXZlIGltcGxlbWVudGF0aW9uCisvLyB3aGljaCBwcmVzdW1hYmx5IGhhcyB0aGUgc3RkOjpEQkxfTUFYIGJ1Zy4KKyNpZiBkZWZpbmVkKCBCT09TVF9CQ0JfV0lUSF9ST0dVRV9XQVZFICkKKy8vIDxjbGltaXRzPiBpcyBwYXJ0bHkgYnJva2VuLCBzb21lIG1hY3JvcyBkZWZpbmUgc3ltYm9scyB0aGF0IGFyZSByZWFsbHkgaW4KKy8vIG5hbWVzcGFjZSBzdGQsIHNvIHlvdSBlbmQgdXAgaGF2aW5nIHRvIHVzZSBpbGxlZ2FsIGNvbnN0cnVjdHMgbGlrZQorLy8gc3RkOjpEQkxfTUFYLCBhcyBhIGZpeCB3ZSdsbCBqdXN0IGluY2x1ZGUgZmxvYXQuaCBhbmQgaGF2ZSBkb25lIHdpdGg6CisjaW5jbHVkZSA8ZmxvYXQuaD4KKyNlbmRpZgorLy8KKy8vIF9faW50NjQ6CisvLworI2lmIChfX0JPUkxBTkRDX18gPj0gMHg1MzApICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKKyMgIGRlZmluZSBCT09TVF9IQVNfTVNfSU5UNjQKKyNlbmRpZgorLy8KKy8vIGNoZWNrIGZvciBleGNlcHRpb24gaGFuZGxpbmcgc3VwcG9ydDoKKy8vCisjaWYgIWRlZmluZWQoX0NQUFVOV0lORCkgJiYgIWRlZmluZWQoQk9PU1RfQ1BQVU5XSU5EKSAmJiAhZGVmaW5lZChfX0VYQ0VQVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisjICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworI2VuZGlmCisvLworLy8gYWxsIHZlcnNpb25zIGhhdmUgYSA8ZGlyZW50Lmg+OgorLy8KKyNpZm5kZWYgX19TVFJJQ1RfQU5TSV9fCisjICBkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9ICisjZW5kaWYKKy8vCisvLyBhbGwgdmVyc2lvbnMgc3VwcG9ydCBfX2RlY2xzcGVjOgorLy8KKyNpZiBkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKKy8vIGNvbmZpZy9wbGF0Zm9ybS93aW4zMi5ocHAgd2lsbCBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCwgZXRjLiwgdW5sZXNzIGFscmVhZHkgZGVmaW5lZCAgCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVAorI2VuZGlmCisvLworLy8gQUJJIGZpeGluZyBoZWFkZXJzOgorLy8KKyNpZiBfX0JPUkxBTkRDX18gIT0gMHg2MDAgLy8gbm90IGltcGxlbWVudGVkIGZvciB2ZXJzaW9uIDYgY29tcGlsZXIgeWV0CisjaWZuZGVmIEJPT1NUX0FCSV9QUkVGSVgKKyMgIGRlZmluZSBCT09TVF9BQklfUFJFRklYICJuZG5ib29zdC9jb25maWcvYWJpL2JvcmxhbmRfcHJlZml4LmhwcCIKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9BQklfU1VGRklYCisjICBkZWZpbmUgQk9PU1RfQUJJX1NVRkZJWCAibmRuYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAiCisjZW5kaWYKKyNlbmRpZgorLy8KKy8vIERpc2FibGUgV2luMzIgc3VwcG9ydCBpbiBBTlNJIG1vZGU6CisvLworI2lmIF9fQk9STEFORENfXyA8IDB4NjAwCisjICBwcmFnbWEgZGVmaW5lb25vcHRpb24gQk9PU1RfRElTQUJMRV9XSU4zMiAtQQorI2VsaWYgZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9XSU4zMgorI2VuZGlmCisvLworLy8gTVNWQyBjb21wYXRpYmlsaXR5IG1vZGUgZG9lcyBzb21lIG5hc3R5IHRoaW5nczoKKy8vIFRPRE86IGxvb2sgdXAgaWYgdGhpcyBkb2Vzbid0IGFwcGx5IHRvIHRoZSB3aG9sZSAxMnh4IHJhbmdlCisvLworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA8PSAxMjAwKQorIyAgZGVmaW5lIEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVAKKyMgIGRlZmluZSBCT09TVF9OT19WT0lEX1JFVFVSTlMKKyNlbmRpZgorCisvLyBCb3JsYW5kIGRpZCBub3QgaW1wbGVtZW50IHZhbHVlLWluaXRpYWxpemF0aW9uIGNvbXBsZXRlbHksIGFzIEkgcmVwb3J0ZWQKKy8vIGluIDIwMDcsIEJvcmxhbmQgUmVwb3J0IDUxODU0LCAiVmFsdWUtaW5pdGlhbGl6YXRpb246IFBPRCBzdHJ1Y3Qgc2hvdWxkIGJlCisvLyB6ZXJvLWluaXRpYWxpemVkIiwgaHR0cDovL3FjLmVtYmFyY2FkZXJvLmNvbS93Yy9xY21haW4uYXNweD9kPTUxODU0CisvLyBTZWUgYWxzbzogaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L3ZhbHVlX2luaXQuaHRtI2NvbXBpbGVyX2lzc3VlcworLy8gKE5pZWxzIERla2tlciwgTEtFQiwgQXByaWwgMjAxMCkKKyNkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiQm9ybGFuZCBDKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX0JPUkxBTkRDX18pCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NsYW5nLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NsYW5nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTM4ODIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY2xhbmcuaHBwCkBAIC0wLDAgKzEsMTU4IEBACisvLyAoQykgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMTAKKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyBDbGFuZyBjb21waWxlciBzZXR1cC4KKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9leGNlcHRpb25zKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X3J0dGkpICYmICFkZWZpbmVkKEJPT1NUX05PX1JUVEkpCisjICBkZWZpbmUgQk9PU1RfTk9fUlRUSQorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfcnR0aSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fVFlQRUlEKQorIyAgZGVmaW5lIEJPT1NUX05PX1RZUEVJRAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9faW50NjQpICYmICFkZWZpbmVkKF9fR05VQ19fKQorIyAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfSEFTX05SVk8KKworLy8gQ2xhbmcgc3VwcG9ydHMgImxvbmcgbG9uZyIgaW4gYWxsIGNvbXBpbGF0aW9uIG1vZGVzLgorI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisKKy8vCisvLyBEeW5hbWljIHNoYXJlZCBvYmplY3QgKERTTykgYW5kIGR5bmFtaWMtbGluayBsaWJyYXJ5IChETEwpIHN1cHBvcnQKKy8vCisjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX1dJTjMyX18pICYmICFkZWZpbmVkKFdJTjMyKQorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQgX19hdHRyaWJ1dGVfXygoX192aXNpYmlsaXR5X18oImRlZmF1bHQiKSkpCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9WSVNJQkxFIF9fYXR0cmlidXRlX18oKF9fdmlzaWJpbGl0eV9fKCJkZWZhdWx0IikpKQorI2VuZGlmCisKKy8vIAorLy8gVGhlIEJPT1NUX0ZBTExUSFJPVUdIIG1hY3JvIGNhbiBiZSB1c2VkIHRvIGFubm90YXRlIGltcGxpY2l0IGZhbGwtdGhyb3VnaCAKKy8vIGJldHdlZW4gc3dpdGNoIGxhYmVscy4gCisvLyAKKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMICYmIGRlZmluZWQoX19oYXNfd2FybmluZykgCisjICBpZiBfX2hhc19mZWF0dXJlKGN4eF9hdHRyaWJ1dGVzKSAmJiBfX2hhc193YXJuaW5nKCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIikgCisjICAgIGRlZmluZSBCT09TVF9GQUxMVEhST1VHSCBbW2NsYW5nOjpmYWxsdGhyb3VnaF1dIAorIyAgZW5kaWYgCisjZW5kaWYgCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfYXV0b190eXBlKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2VuZGlmCisKKyNpZiAhKGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfY29uc3RleHByKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZGVjbHR5cGUpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X2RlY2x0eXBlX2luY29tcGxldGVfcmV0dXJuX3R5cGVzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9kZWZhdWx0ZWRfZnVuY3Rpb25zKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X2RlbGV0ZWRfZnVuY3Rpb25zKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9leHBsaWNpdF9jb252ZXJzaW9ucykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZGVmYXVsdF9mdW5jdGlvbl90ZW1wbGF0ZV9hcmdzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZ2VuZXJhbGl6ZWRfaW5pdGlhbGl6ZXJzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9sYW1iZGFzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X2xvY2FsX3R5cGVfdGVtcGxhdGVfYXJncykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9ub2V4Y2VwdCkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfbnVsbHB0cikKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9yYW5nZV9mb3IpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9yYXdfc3RyaW5nX2xpdGVyYWxzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZ2VuZXJhbGl6ZWRfaW5pdGlhbGl6ZXJzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9ydmFsdWVfcmVmZXJlbmNlcykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfc3Ryb25nX2VudW1zKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfc3RhdGljX2Fzc2VydCkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9hbGlhc190ZW1wbGF0ZXMpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfdW5pY29kZV9saXRlcmFscykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF92YXJpYWRpY190ZW1wbGF0ZXMpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF91c2VyX2xpdGVyYWxzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1VTRVJfREVGSU5FRF9MSVRFUkFMUworI2VuZGlmCisKKy8vIENsYW5nIGFsd2F5cyBzdXBwb3J0cyB2YXJpYWRpYyBtYWNyb3MKKy8vIENsYW5nIGFsd2F5cyBzdXBwb3J0cyBleHRlcm4gdGVtcGxhdGVzCisKKyNpZm5kZWYgQk9PU1RfQ09NUElMRVIKKyMgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiQ2xhbmcgdmVyc2lvbiAiIF9fY2xhbmdfdmVyc2lvbl9fCisjZW5kaWYKKworLy8gTWFjcm8gdXNlZCB0byBpZGVudGlmeSB0aGUgQ2xhbmcgY29tcGlsZXIuCisjZGVmaW5lIEJPT1NUX0NMQU5HIDEKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29kZWdlYXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29kZWdlYXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMDg2NjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb2RlZ2Vhci5ocHAKQEAgLTAsMCArMSwxODAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBDb2RlR2VhciBDKysgY29tcGlsZXIgc2V0dXA6CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfV0lUSF9DT0RFR0VBUl9XQVJOSU5HUyApCisvLyB0aGVzZSB3YXJuaW5ncyBvY2N1ciBmcmVxdWVudGx5IGluIG9wdGltaXplZCB0ZW1wbGF0ZSBjb2RlCisjIHByYWdtYSB3YXJuIC04MDA0IC8vIHZhciBhc3NpZ25lZCB2YWx1ZSwgYnV0IG5ldmVyIHVzZWQKKyMgcHJhZ21hIHdhcm4gLTgwMDggLy8gY29uZGl0aW9uIGFsd2F5cyB0cnVlL2ZhbHNlCisjIHByYWdtYSB3YXJuIC04MDY2IC8vIGRlYWQgY29kZSBjYW4gbmV2ZXIgZXhlY3V0ZQorIyBwcmFnbWEgd2FybiAtODEwNCAvLyBzdGF0aWMgbWVtYmVycyB3aXRoIGN0b3JzIG5vdCB0aHJlYWRzYWZlCisjIHByYWdtYSB3YXJuIC04MTA1IC8vIHJlZmVyZW5jZSBtZW1iZXIgaW4gY2xhc3Mgd2l0aG91dCBjdG9ycworI2VuZGlmCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgMHg2MjEKKyNpZiAoX19DT0RFR0VBUkNfXyA+IDB4NjIxKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZWxzZQorIyAgICAgcHJhZ21hIG1lc3NhZ2UoICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIpCisjICBlbmRpZgorI2VuZGlmCisKKy8vIENvZGVHZWFyIEMrKyBCdWlsZGVyIDIwMDkKKyNpZiAoX19DT0RFR0VBUkNfXyA8PSAweDYxMykKKyMgIGRlZmluZSBCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UCisjICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX05FU1RFRF9ERVJJVkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX1BSSVZBVEVfSU5fQUdHUkVHQVRFCisjICBkZWZpbmUgQk9PU1RfTk9fVVNJTkdfREVDTEFSQVRJT05fT1ZFUkxPQURTX0ZST01fVFlQRU5BTUVfQkFTRQorICAgLy8gd2Ugc2hvdWxkbid0IHJlYWxseSBuZWVkIHRoaXMgLSBidXQgdG9vIG1hbnkgdGhpbmdzIGNob2tlCisgICAvLyB3aXRob3V0IGl0LCB0aGlzIG5lZWRzIG1vcmUgaW52ZXN0aWdhdGlvbjoKKyMgIGRlZmluZSBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworIyAgZGVmaW5lIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFCisjZW5kaWYKKworLy8gQ29kZUdlYXIgQysrIEJ1aWxkZXIgMjAxMAorI2lmIChfX0NPREVHRUFSQ19fIDw9IDB4NjIxKQorIyAgZGVmaW5lIEJPT1NUX05PX1RZUEVOQU1FX1dJVEhfQ1RPUiAgICAvLyBDYW5ub3QgdXNlIHR5cGVuYW1lIGtleXdvcmQgd2hlbiBtYWtpbmcgdGVtcG9yYXJpZXMgb2YgYSBkZXBlbmRhbnQgdHlwZQorIyAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyMgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworIyAgZGVmaW5lIEJPT1NUX05PX05FU1RFRF9GUklFTkRTSElQICAgICAvLyBUQzEgZ2l2ZXMgbmVzdGVkIGNsYXNzZXMgYWNjZXNzIHJpZ2h0cyBhcyBhbnkgb3RoZXIgbWVtYmVyCisjICBkZWZpbmUgQk9PU1RfTk9fVVNJTkdfVEVNUExBVEUKKyMgIGRlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKy8vIFRlbXBvcmFyeSBoYWNrLCB1bnRpbCBzcGVjaWZpYyBNUEwgcHJlcHJvY2Vzc2VkIGhlYWRlcnMgYXJlIGdlbmVyYXRlZAorIyAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworLy8gQ29kZUdlYXIgaGFzIG5vdCB5ZXQgY29tcGxldGVseSBpbXBsZW1lbnRlZCB2YWx1ZS1pbml0aWFsaXphdGlvbiwgZm9yCisvLyBleGFtcGxlIGZvciBhcnJheSB0eXBlcywgYXMgSSByZXBvcnRlZCBpbiAyMDEwOiBFbWJhcmNhZGVybyBSZXBvcnQgODM3NTEsCisvLyAiVmFsdWUtaW5pdGlhbGl6YXRpb246IGFycmF5cyBzaG91bGQgaGF2ZSBlYWNoIGVsZW1lbnQgdmFsdWUtaW5pdGlhbGl6ZWQiLAorLy8gaHR0cDovL3FjLmVtYmFyY2FkZXJvLmNvbS93Yy9xY21haW4uYXNweD9kPTgzNzUxCisvLyBMYXN0IGNoZWNrZWQgdmVyc2lvbjogRW1iYXJjYWRlcm8gQysrIDYuMjEKKy8vIFNlZSBhbHNvOiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkvdmFsdWVfaW5pdC5odG0jY29tcGlsZXJfaXNzdWVzCisvLyAoTmllbHMgRGVra2VyLCBMS0VCLCBBcHJpbCAyMDEwKQorIyAgZGVmaW5lIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisKKyMgIGlmIGRlZmluZWQoTkRFQlVHKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorICAgICAgLy8gZml4IGJyb2tlbiA8Y3N0cmluZz4gc28gdGhhdCBCb29zdC50ZXN0IHdvcmtzOgorIyAgICAgaW5jbHVkZSA8Y3N0cmluZz4KKyMgICAgIHVuZGVmIHN0cmNtcAorIyAgZW5kaWYKKyAgIC8vIGZpeCBicm9rZW4gZXJybm8gZGVjbGFyYXRpb246CisjICBpbmNsdWRlIDxlcnJuby5oPgorIyAgaWZuZGVmIGVycm5vCisjICAgICBkZWZpbmUgZXJybm8gZXJybm8KKyMgIGVuZGlmCisKKyNlbmRpZgorLy8KKy8vIEMrKzB4IG1hY3JvczoKKy8vCisjaWYgKF9fQ09ERUdFQVJDX18gPD0gMHg2MjApCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0hBU19TVEFUSUNfQVNTRVJUCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfSEFTX0NIQVIxNl9UCisjZGVmaW5lIEJPT1NUX0hBU19DSEFSMzJfVAorI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisvLyAjZGVmaW5lIEJPT1NUX0hBU19BTElHTk9GCisjZGVmaW5lIEJPT1NUX0hBU19ERUNMVFlQRQorI2RlZmluZSBCT09TVF9IQVNfRVhQTElDSVRfQ09OVkVSU0lPTl9PUFMKKy8vICNkZWZpbmUgQk9PU1RfSEFTX1JWQUxVRV9SRUZTCisjZGVmaW5lIEJPT1NUX0hBU19TQ09QRURfRU5VTQorLy8gI2RlZmluZSBCT09TVF9IQVNfU1RBVElDX0FTU0VSVAorI2RlZmluZSBCT09TVF9IQVNfU1REX1RZUEVfVFJBSVRTCisKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9VU0VSX0RFRklORURfTElURVJBTFMKKworLy8KKy8vIFRSMSBtYWNyb3M6CisvLworI2RlZmluZSBCT09TVF9IQVNfVFIxX0hBU0gKKyNkZWZpbmUgQk9PU1RfSEFTX1RSMV9UWVBFX1RSQUlUUworI2RlZmluZSBCT09TVF9IQVNfVFIxX1VOT1JERVJFRF9NQVAKKyNkZWZpbmUgQk9PU1RfSEFTX1RSMV9VTk9SREVSRURfU0VUCisKKyNkZWZpbmUgQk9PU1RfSEFTX01BQ1JPX1VTRV9GQUNFVAorCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisKKy8vIE9uIG5vbi1XaW4zMiBwbGF0Zm9ybXMgbGV0IHRoZSBwbGF0Zm9ybSBjb25maWcgZmlndXJlIHRoaXMgb3V0OgorI2lmZGVmIF9XSU4zMgorIyAgZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorI2VuZGlmCisKKy8vCisvLyBfX2ludDY0OgorLy8KKyNpZiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCisjICBkZWZpbmUgQk9PU1RfSEFTX01TX0lOVDY0CisjZW5kaWYKKy8vCisvLyBjaGVjayBmb3IgZXhjZXB0aW9uIGhhbmRsaW5nIHN1cHBvcnQ6CisvLworI2lmICFkZWZpbmVkKF9DUFBVTldJTkQpICYmICFkZWZpbmVkKEJPT1NUX0NQUFVOV0lORCkgJiYgIWRlZmluZWQoX19FWENFUFRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKyNlbmRpZgorLy8KKy8vIGFsbCB2ZXJzaW9ucyBoYXZlIGEgPGRpcmVudC5oPjoKKy8vCisjaWYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorIyAgZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorI2VuZGlmCisvLworLy8gYWxsIHZlcnNpb25zIHN1cHBvcnQgX19kZWNsc3BlYzoKKy8vCisjaWYgZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCisvLyBjb25maWcvcGxhdGZvcm0vd2luMzIuaHBwIHdpbGwgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQsIGV0Yy4sIHVubGVzcyBhbHJlYWR5IGRlZmluZWQgIAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQKKyNlbmRpZgorLy8KKy8vIEFCSSBmaXhpbmcgaGVhZGVyczoKKy8vCisjaWZuZGVmIEJPT1NUX0FCSV9QUkVGSVgKKyMgIGRlZmluZSBCT09TVF9BQklfUFJFRklYICJuZG5ib29zdC9jb25maWcvYWJpL2JvcmxhbmRfcHJlZml4LmhwcCIKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9BQklfU1VGRklYCisjICBkZWZpbmUgQk9PU1RfQUJJX1NVRkZJWCAibmRuYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAiCisjZW5kaWYKKy8vCisvLyBEaXNhYmxlIFdpbjMyIHN1cHBvcnQgaW4gQU5TSSBtb2RlOgorLy8KKyMgIHByYWdtYSBkZWZpbmVvbm9wdGlvbiBCT09TVF9ESVNBQkxFX1dJTjMyIC1BCisvLworLy8gTVNWQyBjb21wYXRpYmlsaXR5IG1vZGUgZG9lcyBzb21lIG5hc3R5IHRoaW5nczoKKy8vIFRPRE86IGxvb2sgdXAgaWYgdGhpcyBkb2Vzbid0IGFwcGx5IHRvIHRoZSB3aG9sZSAxMnh4IHJhbmdlCisvLworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA8PSAxMjAwKQorIyAgZGVmaW5lIEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVAKKyMgIGRlZmluZSBCT09TVF9OT19WT0lEX1JFVFVSTlMKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJDb2RlR2VhciBDKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX0NPREVHRUFSQ19fKQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21lYXUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29tZWF1LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWY2MDhjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29tZWF1LmhwcApAQCAtMCwwICsxLDU5IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEJlbWFuIERhd2VzIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgQ29tZWF1IEMrKyBjb21waWxlciBzZXR1cDoKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKworI2lmIChfX0NPTU9fVkVSU0lPTl9fIDw9IDQyNDUpCisKKyMgIGlmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSIDw9IDEzMDAKKyMgICAgIGlmIF9NU0NfVkVSID4gMTAwCisgICAgICAgICAvLyBvbmx5IHNldCB0aGlzIGluIG5vbi1zdHJpY3QgbW9kZToKKyMgICAgICAgIGRlZmluZSBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQCisjICAgICBlbmRpZgorIyAgZW5kaWYKKworLy8gVm9pZCByZXR1cm5zIGRvbid0IHdvcmsgd2hlbiBlbXVsYXRpbmcgVkMgNiAoUGV0ZXIgRGltb3YpCisvLyBUT0RPOiBsb29rIHVwIGlmIHRoaXMgZG9lc24ndCBhcHBseSB0byB0aGUgd2hvbGUgMTJ4eCByYW5nZQorIyAgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDwgMTMwMCkKKyMgICAgIGRlZmluZSBCT09TVF9OT19WT0lEX1JFVFVSTlMKKyMgIGVuZGlmCisKKyNlbmRpZiAgLy8gdmVyc2lvbiA0MjQ1CisKKy8vCisvLyBlbmFibGUgX19pbnQ2NCBzdXBwb3J0IGluIFZDIGVtdWxhdGlvbiBtb2RlCisvLworIyAgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEyMDApCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX01TX0lOVDY0CisjICBlbmRpZgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJDb21lYXUgY29tcGlsZXIgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX0NPTU9fVkVSU0lPTl9fKQorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyB3ZSBkb24ndCBrbm93IENvbWVhdSBwcmlvciB0byB2ZXJzaW9uIDQyNDU6CisjaWYgX19DT01PX1ZFUlNJT05fXyA8IDQyNDUKKyMgIGVycm9yICJDb21waWxlciBub3QgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyA0MjQ1OgorI2lmIChfX0NPTU9fVkVSU0lPTl9fID4gNDI0NSkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKKworCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29tbW9uX2VkZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjVkMmQyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29tbW9uX2VkZy5ocHAKQEAgLTAsMCArMSwxMDQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMi4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hcmt1cyBTY2hvZXBmbGluIDIwMDUuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLworLy8gT3B0aW9ucyBjb21tb24gdG8gYWxsIGVkZyBiYXNlZCBjb21waWxlcnMuCisvLworLy8gVGhpcyBpcyBpbmNsdWRlZCBmcm9tIHdpdGhpbiB0aGUgaW5kaXZpZHVhbCBjb21waWxlciBtaW5pLWNvbmZpZ3MuCisKKyNpZm5kZWYgIF9fRURHX1ZFUlNJT05fXworIyAgZXJyb3IgVGhpcyBmaWxlIHJlcXVpcmVzIHRoYXQgX19FREdfVkVSU0lPTl9fIGJlIGRlZmluZWQuCisjZW5kaWYKKworI2lmIChfX0VER19WRVJTSU9OX18gPD0gMjM4KQorIyAgIGRlZmluZSBCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UCisjICAgZGVmaW5lIEJPT1NUX05PX1NGSU5BRQorI2VuZGlmCisKKyNpZiAoX19FREdfVkVSU0lPTl9fIDw9IDI0MCkKKyMgICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjZW5kaWYKKworI2lmIChfX0VER19WRVJTSU9OX18gPD0gMjQxKSAmJiAhZGVmaW5lZChCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQKQorIyAgIGRlZmluZSBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQCisjZW5kaWYKKworI2lmIChfX0VER19WRVJTSU9OX18gPD0gMjQ0KSAmJiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMpCisjICAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFX1RFTVBMQVRFUworI2VuZGlmIAorCisjaWYgKF9fRURHX1ZFUlNJT05fXyA8IDMwMCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fSVNfQUJTVFJBQ1QpCisjICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjZW5kaWYgCisKKyNpZiAoX19FREdfVkVSU0lPTl9fIDw9IDMwMykgJiYgIWRlZmluZWQoQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETCkKKyMgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETAorI2VuZGlmIAorCisvLyBTZWUgYWxzbyBrYWkuaHBwIHdoaWNoIGNoZWNrcyBhIEthaS1zcGVjaWZpYyBzeW1ib2wgZm9yIEVICisjIGlmICFkZWZpbmVkKF9fS0NDKSAmJiAhZGVmaW5lZChfX0VYQ0VQVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworIyBlbmRpZgorCisjIGlmICFkZWZpbmVkKF9fTk9fTE9OR19MT05HKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKyMgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0xPTkdfTE9ORworIyBlbmRpZgorCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisvLyAgIFNlZSBhYm92ZSBmb3IgQk9PU1RfTk9fTE9OR19MT05HCisvLworI2lmIChfX0VER19WRVJTSU9OX18gPCAzMTApCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZW5kaWYKKyNpZiAoX19FREdfVkVSU0lPTl9fIDw9IDMxMCkKKy8vIE5vIHN1cHBvcnQgZm9yIGluaXRpYWxpemVyIGxpc3RzCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyNlbmRpZgorI2lmIChfX0VER19WRVJTSU9OX18gPCA0MDApCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisKKyNpZmRlZiBjX3BsdXNwbHVzCisvLyBFREcgaGFzICJsb25nIGxvbmciIGluIG5vbi1zdHJpY3QgbW9kZQorLy8gSG93ZXZlciwgc29tZSBsaWJyYXJpZXMgaGF2ZSBpbnN1ZmZpY2llbnQgImxvbmcgbG9uZyIgc3VwcG9ydAorLy8gI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29tcGFxX2N4eC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkNWZlNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwCkBAIC0wLDAgKzEsMTkgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgVHJ1NjQgQysrIGNvbXBpbGVyIHNldHVwIChub3cgSFApOgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJIUCBUcnU2NCBDKysgIiBCT09TVF9TVFJJTkdJWkUoX19ERUNDWFhfVkVSKQorCisjaW5jbHVkZSAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIgorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyBOb3RoaW5nIHRvIGRvIGhlcmU/CisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jcmF5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzYTVkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jcmF5LmhwcApAQCAtMCwwICsxLDY0IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAxMS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgR3JlZW5oaWxscyBDIGNvbXBpbGVyIHNldHVwOgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJDcmF5IEMgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfUkVMRUFTRSkKKworI2lmIF9SRUxFQVNFIDwgNworIyAgZXJyb3IgIkJvb3N0IGlzIG5vdCBjb25maWd1cmVkIGZvciBDcmF5IGNvbXBpbGVycyBwcmlvciB0byB2ZXJzaW9uIDcsIHBsZWFzZSB0cnkgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuIgorI2VuZGlmCisKKy8vCisvLyBDaGVjayB0aGlzIGlzIGEgcmVjZW50IEVERyBiYXNlZCBjb21waWxlciwgb3RoZXJ3aXNlIHdlIGRvbid0IHN1cHBvcnQgaXQgaGVyZToKKy8vCisjaWZuZGVmIF9fRURHX1ZFUlNJT05fXworIyAgZXJyb3IgIlVuc3VwcG9ydGVkIENyYXkgY29tcGlsZXIsIHBsZWFzZSB0cnkgcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdC4iCisjZW5kaWYKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKworLy8KKy8vIENyYXkgcGVjdWxpYXJpdGllcywgcHJvYmFibHkgdmVyc2lvbiA3IHNwZWNpZmljOgorLy8KKyN1bmRlZiBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI3VuZGVmIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfSEFTX05SVk8KKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisvLyNkZWZpbmUgQk9PU1RfQkNCX1BBUlRJQUxfU1BFQ0lBTElaQVRJT05fQlVHCisjZGVmaW5lIEJPT1NUX01BVEhfRElTQUJMRV9TVERfRlBDTEFTU0lGWQorLy8jZGVmaW5lIEJPT1NUX0hBU19GUENMQVNTSUZZCisKKyNkZWZpbmUgQk9PU1RfU1BfVVNFX1BUSFJFQURTIAorI2RlZmluZSBCT09TVF9BQ19VU0VfUFRIUkVBRFMgCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2RpZ2l0YWxtYXJzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2RpZ2l0YWxtYXJzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjA2ZGMzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvZGlnaXRhbG1hcnMuaHBwCkBAIC0wLDAgKzEsMTA0IEBACisvLyAgQ29weXJpZ2h0IChDKSBDaHJpc3RvZiBNZWVyd2FsZCAyMDAzCisvLyAgQ29weXJpZ2h0IChDKSBEYW4gV2F0a2lucyAyMDAzCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIERpZ2l0YWwgTWFycyBDKysgY29tcGlsZXIgc2V0dXA6CisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSIF9fRE1DX1ZFUlNJT05fU1RSSU5HX18KKworI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjZGVmaW5lIEJPT1NUX0hBU19QUkFHTUFfT05DRQorCisjaWYgKF9fRE1DX18gPD0gMHg4MzMpCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05FRURTX1RPS0VOX1BBU1RJTkdfT1BfRk9SX1RPS0VOU19KVVhUQVBPU0lORworI2RlZmluZSBCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUworI2RlZmluZSBCT09TVF9OT19FWFBMSUNJVF9GVU5DVElPTl9URU1QTEFURV9BUkdVTUVOVFMKKyNlbmRpZgorI2lmIChfX0RNQ19fIDw9IDB4ODQwKSB8fCAhZGVmaW5lZChCT09TVF9TVFJJQ1RfQ09ORklHKQorI2RlZmluZSBCT09TVF9OT19FWFBMSUNJVF9GVU5DVElPTl9URU1QTEFURV9BUkdVTUVOVFMKKyNkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyNkZWZpbmUgQk9PU1RfTk9fT1BFUkFUT1JTX0lOX05BTUVTUEFDRQorI2RlZmluZSBCT09TVF9OT19VTlJFQUNIQUJMRV9SRVRVUk5fREVURUNUSU9OCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRQorI2RlZmluZSBCT09TVF9OT19VU0lOR19URU1QTEFURQorI2RlZmluZSBCT09TVF9GVU5DVElPTl9TQ09QRV9VU0lOR19ERUNMQVJBVElPTl9CUkVBS1NfQURMCisjZW5kaWYKKworLy8KKy8vIGhhcyBtYWNyb3M6CisjaWYgKF9fRE1DX18gPj0gMHg4NDApCisjZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorI2RlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyNkZWZpbmUgQk9PU1RfSEFTX1dJTlRIUkVBRFMKKyNlbmRpZgorCisjaWYgKF9fRE1DX18gPj0gMHg4NDcpCisjZGVmaW5lIEJPT1NUX0hBU19FWFBNMQorI2RlZmluZSBCT09TVF9IQVNfTE9HMVAKKyNlbmRpZgorCisvLworLy8gSXMgdGhpcyByZWFsbHkgdGhlIGJlc3Qgd2F5IHRvIGRldGVjdCB3aGV0aGVyIHRoZSBzdGQgbGliIGlzIGluIG5hbWVzcGFjZSBzdGQ/CisvLworI2lmZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNlbmRpZgorI2lmICFkZWZpbmVkKF9fU1RMX0lNUE9SVF9WRU5ET1JfQ1NURCkgJiYgIWRlZmluZWQoX1NUTFBfSU1QT1JUX1ZFTkRPUl9DU1REKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjZW5kaWYKKworCisvLyBjaGVjayBmb3IgZXhjZXB0aW9uIGhhbmRsaW5nIHN1cHBvcnQ6CisjaWYgIWRlZmluZWQoX0NQUFVOV0lORCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyMgIGRlZmluZSBCT09TVF9OT19FWENFUFRJT05TCisjZW5kaWYKKworLy8KKy8vIEMrKzB4IGZlYXR1cmVzCisvLworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisKKyNpZiAoX19ETUNfXyA8IDB4ODEyKQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNlbmRpZgorCisjaWYgX19ETUNfXyA8IDB4ODAwCisjZXJyb3IgIkNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQgb3IgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyAuLi46CisjaWYgKF9fRE1DX18gPiAweDg0OCkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9nY2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZDEyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9nY2MuaHBwCkBAIC0wLDAgKzEsMjgwIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGFyaW4gQWRsZXIgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMi4gCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBTeW5nZSBUb2RvIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEdOVSBDKysgY29tcGlsZXIgc2V0dXAuCisKKy8vCisvLyBEZWZpbmUgQk9PU1RfR0NDIHNvIHdlIGtub3cgdGhpcyBpcyAicmVhbCIgR0NDIGFuZCBub3Qgc29tZSBwcmV0ZW5kZXI6CisvLworI2lmICFkZWZpbmVkKF9fQ1VEQUNDX18pCisjZGVmaW5lIEJPT1NUX0dDQyAoX19HTlVDX18gKiAxMDAwMCArIF9fR05VQ19NSU5PUl9fICogMTAwICsgX19HTlVDX1BBVENITEVWRUxfXykKKyNlbmRpZgorCisjaWYgX19HTlVDX18gPCAzCisjICAgaWYgX19HTlVDX01JTk9SX18gPT0gOTEKKyAgICAgICAvLyBlZ2NzIDEuMSB3b24ndCBwYXJzZSBzaGFyZWRfcHRyLmhwcCB3aXRob3V0IHRoaXM6CisjICAgICAgZGVmaW5lIEJPT1NUX05PX0FVVE9fUFRSCisjICAgZW5kaWYKKyMgICBpZiBfX0dOVUNfTUlOT1JfXyA8IDk1CisgICAgICAvLworICAgICAgLy8gUHJpb3IgdG8gZ2NjIDIuOTUgbWVtYmVyIHRlbXBsYXRlcyBvbmx5IHBhcnRseQorICAgICAgLy8gd29yayAtIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisgICAgICAvLyBpbnN0ZWFkIHNpbmNlIGlubGluZSBtZW1iZXIgdGVtcGxhdGVzIG1vc3RseSB3b3JrLgorICAgICAgLy8KKyMgICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTCisjICAgICBpZiBfX0dOVUNfTUlOT1JfXyA+PSA5CisjICAgICAgIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisjICAgICBlbmRpZgorIyAgIGVuZGlmCisKKyMgICBpZiBfX0dOVUNfTUlOT1JfXyA8IDk2CisjICAgICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFCisjICAgZW5kaWYKKworIyAgIGlmIF9fR05VQ19NSU5PUl9fIDw9IDk3CisjICAgICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgICAgIGRlZmluZSBCT09TVF9OT19PUEVSQVRPUlNfSU5fTkFNRVNQQUNFCisjICAgZW5kaWYKKworIyAgIGRlZmluZSBCT09TVF9OT19VU0lOR19ERUNMQVJBVElPTl9PVkVSTE9BRFNfRlJPTV9UWVBFTkFNRV9CQVNFCisjICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyMgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisvLyBWYXJpYWRpYyBtYWNyb3MgZG8gbm90IGV4aXN0IGZvciBnY2MgdmVyc2lvbnMgYmVmb3JlIDMuMAorIyAgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNlbGlmIF9fR05VQ19fID09IDMKKyMgIGlmIGRlZmluZWQgKF9fUEFUSFNDQUxFX18pCisjICAgICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjICAgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgIGVuZGlmCisgICAvLworICAgLy8gZ2NjLTMueCBwcm9ibGVtczoKKyAgIC8vCisgICAvLyBCdWcgc3BlY2lmaWMgdG8gZ2NjIDMuMSBhbmQgMy4yOgorICAgLy8KKyMgIGlmICgoX19HTlVDX01JTk9SX18gPT0gMSkgfHwgKF9fR05VQ19NSU5PUl9fID09IDIpKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworIyAgZW5kaWYKKyMgIGlmIF9fR05VQ19NSU5PUl9fIDwgNAorIyAgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICBlbmRpZgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2VuZGlmCisjaWYgX19HTlVDX18gPCA0CisvLworLy8gQWxsIHByb2JsZW1zIHRvIGdjYy0zLnggYW5kIGVhcmxpZXIgaGVyZToKKy8vCisjZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorIyAgaWZkZWYgX19PUEVONjRfXworIyAgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICBlbmRpZgorI2VuZGlmCisKKyNpZiBfX0dOVUNfXyA8IDQgfHwgKCBfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNCApCisvLyBQcmV2aW91cyB2ZXJzaW9ucyBvZiBHQ0MgZGlkIG5vdCBjb21wbGV0ZWx5IGltcGxlbWVudCB2YWx1ZS1pbml0aWFsaXphdGlvbjoKKy8vIEdDQyBCdWcgMzAxMTEsICJWYWx1ZS1pbml0aWFsaXphdGlvbiBvZiBQT0QgYmFzZSBjbGFzcyBkb2Vzbid0IGluaXRpYWxpemUKKy8vIG1lbWJlcnMiLCByZXBvcnRlZCBieSBKb25hdGhhbiBXYWtlbHkgaW4gMjAwNiwKKy8vIGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzAxMTEgKGZpeGVkIGZvciBHQ0MgNC40KQorLy8gR0NDIEJ1ZyAzMzkxNiwgIkRlZmF1bHQgY29uc3RydWN0b3IgZmFpbHMgdG8gaW5pdGlhbGl6ZSBhcnJheSBtZW1iZXJzIiwKKy8vIHJlcG9ydGVkIGJ5IE1pY2hhZWwgRWxpemFiZXRoIENoYXN0YWluIGluIDIwMDcsCisvLyBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzOTE2IChmaXhlZCBmb3IgR0NDIDQuMi40KQorLy8gU2VlIGFsc286IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS92YWx1ZV9pbml0Lmh0bSNjb21waWxlcl9pc3N1ZXMKKyNkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoX19FWENFUFRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworI2VuZGlmCisKKworLy8KKy8vIFRocmVhZGluZyBzdXBwb3J0OiBUdXJuIHRoaXMgb24gdW5jb25kaXRpb25hbGx5IGhlcmUgKGV4Y2VwdCBmb3IKKy8vIHRob3NlIHBsYXRmb3JtcyB3aGVyZSB3ZSBjYW4ga25vdyBmb3Igc3VyZSkuIEl0IHdpbGwgZ2V0IHR1cm5lZCBvZmYgYWdhaW4KKy8vIGxhdGVyIGlmIG5vIHRocmVhZGluZyBBUEkgaXMgZGV0ZWN0ZWQuCisvLworI2lmICFkZWZpbmVkKF9fTUlOR1czMl9fKSAmJiAhZGVmaW5lZChsaW51eCkgJiYgIWRlZmluZWQoX19saW51eCkgJiYgIWRlZmluZWQoX19saW51eF9fKQorIyBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZiAKKworLy8KKy8vIGdjYyBoYXMgImxvbmcgbG9uZyIKKy8vCisjZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKworLy8KKy8vIGdjYyBpbXBsZW1lbnRzIHRoZSBuYW1lZCByZXR1cm4gdmFsdWUgb3B0aW1pemF0aW9uIHNpbmNlIHZlcnNpb24gMy4xCisvLworI2lmIF9fR05VQ19fID4gMyB8fCAoIF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMSApCisjZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZW5kaWYKKworLy8KKy8vIER5bmFtaWMgc2hhcmVkIG9iamVjdCAoRFNPKSBhbmQgZHluYW1pYy1saW5rIGxpYnJhcnkgKERMTCkgc3VwcG9ydAorLy8KKyNpZiBfX0dOVUNfXyA+PSA0CisjICBpZiAoZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19XSU4zMl9fKSB8fCBkZWZpbmVkKFdJTjMyKSkgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKyAgICAgLy8gQWxsIFdpbjMyIGRldmVsb3BtZW50IGVudmlyb25tZW50cywgaW5jbHVkaW5nIDY0LWJpdCBXaW5kb3dzIGFuZCBNaW5HVywgZGVmaW5lIAorICAgICAvLyBfV0lOMzIgb3Igb25lIG9mIGl0cyB2YXJpYW50IHNwZWxsaW5ncy4gTm90ZSB0aGF0IEN5Z3dpbiBpcyBhIFBPU0lYIGVudmlyb25tZW50LAorICAgICAvLyBzbyBkb2VzIG5vdCBkZWZpbmUgX1dJTjMyIG9yIGl0cyB2YXJpYW50cy4KKyMgICAgZGVmaW5lIEJPT1NUX0hBU19ERUNMU1BFQworIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKChkbGxleHBvcnQpKQorIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVCBfX2F0dHJpYnV0ZV9fKChkbGxpbXBvcnQpKQorIyAgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVAorIyAgZW5kaWYKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfVklTSUJMRSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vsc2UKKy8vIGNvbmZpZy9wbGF0Zm9ybS93aW4zMi5ocHAgd2lsbCBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCwgZXRjLiwgdW5sZXNzIGFscmVhZHkgZGVmaW5lZCAgCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVAorI2VuZGlmCisKKy8vCisvLyBSVFRJIGFuZCB0eXBlaW5mbyBkZXRlY3Rpb24gaXMgcG9zc2libGUgcG9zdCBnY2MtNC4zOgorLy8KKyNpZiBfX0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fID49IDQwMworIyAgaWZuZGVmIF9fR1hYX1JUVEkKKyMgICAgIGlmbmRlZiBCT09TVF9OT19UWVBFSUQKKyMgICAgICAgIGRlZmluZSBCT09TVF9OT19UWVBFSUQKKyMgICAgIGVuZGlmCisjICAgICBpZm5kZWYgQk9PU1RfTk9fUlRUSQorIyAgICAgICAgZGVmaW5lIEJPT1NUX05PX1JUVEkKKyMgICAgIGVuZGlmCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBSZWNlbnQgR0NDIHZlcnNpb25zIGhhdmUgX19pbnQxMjggd2hlbiBpbiA2NC1iaXQgbW9kZS4KKy8vCisvLyBXZSBkaXNhYmxlIHRoaXMgaWYgdGhlIGNvbXBpbGVyIGlzIHJlYWxseSBudmNjIGFzIGl0CisvLyBkb2Vzbid0IGFjdHVhbGx5IHN1cHBvcnQgX19pbnQxMjggYXMgb2YgQ1VEQV9WRVJTSU9OPTUwMDAKKy8vIGV2ZW4gdGhvdWdoIGl0IGRlZmluZXMgX19TSVpFT0ZfSU5UMTI4X18uICAKKy8vIFNlZSBodHRwczovL3N2bi5ib29zdC5vcmcvdHJhYy9ib29zdC90aWNrZXQvODA0OAorLy8gT25seSByZS1lbmFibGUgdGhpcyBmb3IgbnZjYyBpZiB5b3UncmUgYWJzb2x1dGVseSBzdXJlCisvLyBvZiB0aGUgY2lyY3Vtc3RhbmNlcyB1bmRlciB3aGljaCBpdCdzIHN1cHBvcnRlZDoKKy8vCisjaWYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykgJiYgIWRlZmluZWQoX19DVURBQ0NfXykKKyMgIGRlZmluZSBCT09TVF9IQVNfSU5UMTI4CisjZW5kaWYKKworLy8gQysrMHggZmVhdHVyZXMgaW4gNC4zLm4gYW5kIGxhdGVyCisvLworI2lmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPiAyKSkgJiYgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKy8vIEMrKzB4IGZlYXR1cmVzIGFyZSBvbmx5IGVuYWJsZWQgd2hlbiAtc3RkPWMrKzB4IG9yIC1zdGQ9Z251KysweCBhcmUKKy8vIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lLCB3aGljaCBpbiB0dXJuIGRlZmluZXMKKy8vIF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fLgorIyAgZGVmaW5lIEJPT1NUX0hBU19ERUNMVFlQRQorIyAgZGVmaW5lIEJPT1NUX0hBU19SVkFMVUVfUkVGUworIyAgZGVmaW5lIEJPT1NUX0hBU19TVEFUSUNfQVNTRVJUCisjICBkZWZpbmUgQk9PU1RfSEFTX1ZBUklBRElDX1RNUEwKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKworLy8gVmFyaWFkaWMgdGVtcGxhdGVzIGNvbXBpbGVyOiAKKy8vICAgaHR0cDovL3d3dy5nZW5lcmljLXByb2dyYW1taW5nLm9yZy9+ZGdyZWdvci9jcHAvdmFyaWFkaWMtdGVtcGxhdGVzLmh0bWwKKyMgIGlmIGRlZmluZWQoX19WQVJJQURJQ19URU1QTEFURVMpIHx8IChfX0dOVUNfXyA+IDQpIHx8ICgoX19HTlVDX18gPT0gNCkgJiYgKF9fR05VQ19NSU5PUl9fID49IDQpICYmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pKQorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1ZBUklBRElDX1RNUEwKKyMgIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworIyAgZW5kaWYKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjQubiBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNCkgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZW5kaWYKKworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDUpCisjICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjUuMCBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNSkgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjUuMSBhbmQgbGF0ZXIKKy8vCisjaWYgKF9fR05VQ19fKjEwMDAwICsgX19HTlVDX01JTk9SX18qMTAwICsgX19HTlVDX1BBVENITEVWRUxfXyA8IDQwNTAxKSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKy8vIHNjb3BlZCBlbnVtcyBoYXZlIGEgc2VyaW91cyBidWcgaW4gNC40LjAsIHNvIGRlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMgYmVmb3JlIDQuNS4xCisvLyBTZWUgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zODA2NAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2VuZGlmCisKKy8vIEMrKzB4IGZlYXR1cmVzIGluIDQuNi5uIGFuZCBsYXRlcgorLy8KKyNpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCA2KSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZW5kaWYKKworLy8gQysrMHggZmVhdHVyZXMgaW4gNC43Lm4gYW5kIGxhdGVyCisvLworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDcpIHx8ICFkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VU0VSX0RFRklORURfTElURVJBTFMKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjguMSBhbmQgbGF0ZXIKKy8vCisjaWYgKF9fR05VQ19fKjEwMDAwICsgX19HTlVDX01JTk9SX18qMTAwICsgX19HTlVDX1BBVENITEVWRUxfXyA8IDQwODAxKSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfQ09NUElMRVIKKyMgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiR05VIEMrKyB2ZXJzaW9uICIgX19WRVJTSU9OX18KKyNlbmRpZgorCisvLyBDb25jZXB0R0NDIGNvbXBpbGVyOgorLy8gICBodHRwOi8vd3d3LmdlbmVyaWMtcHJvZ3JhbW1pbmcub3JnL3NvZnR3YXJlL0NvbmNlcHRHQ0MvCisjaWZkZWYgX19HWFhfQ09OQ0VQVFNfXworIyAgZGVmaW5lIEJPT1NUX0hBU19DT05DRVBUUworIyAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJDb25jZXB0R0NDIHZlcnNpb24gIiBfX1ZFUlNJT05fXworI2VuZGlmCisKKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qga25vdyBnY2MgcHJpb3IgdG8gdmVyc2lvbiAyLjkwOgorI2lmIChfX0dOVUNfXyA9PSAyKSAmJiAoX19HTlVDX01JTk9SX18gPCA5MCkKKyMgIGVycm9yICJDb21waWxlciBub3QgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyA0LjYgKFByZS1yZWxlYXNlKToKKyNpZiAoX19HTlVDX18gPiA0KSB8fCAoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+IDYpKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZWxzZQorLy8gd2UgZG9uJ3QgZW1pdCB3YXJuaW5ncyBoZXJlIGFueW1vcmUgc2luY2UgdGhlcmUgYXJlIG5vIGRlZmVjdCBtYWNyb3MgZGVmaW5lZCBmb3IKKy8vIGdjYyBwb3N0IDMuNCwgc28gYW55IGZhaWx1cmVzIGFyZSBnY2MgcmVncmVzc2lvbnMuLi4KKy8vIyAgICAgd2FybmluZyAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvZ2NjX3htbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9nY2NfeG1sLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWYyZmMxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvZ2NjX3htbC5ocHAKQEAgLTAsMCArMSw2MSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDYuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEdDQy1YTUwgQysrIGNvbXBpbGVyIHNldHVwOgorCisjICBpZiAhZGVmaW5lZChfX0dDQ1hNTF9HTlVDX18pIHx8ICgoX19HQ0NYTUxfR05VQ19fIDw9IDMpICYmIChfX0dDQ1hNTF9HTlVDX01JTk9SX18gPD0gMykpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgIGVuZGlmCisKKy8vCisvLyBUaHJlYWRpbmcgc3VwcG9ydDogVHVybiB0aGlzIG9uIHVuY29uZGl0aW9uYWxseSBoZXJlIChleGNlcHQgZm9yCisvLyB0aG9zZSBwbGF0Zm9ybXMgd2hlcmUgd2UgY2FuIGtub3cgZm9yIHN1cmUpLiBJdCB3aWxsIGdldCB0dXJuZWQgb2ZmIGFnYWluCisvLyBsYXRlciBpZiBubyB0aHJlYWRpbmcgQVBJIGlzIGRldGVjdGVkLgorLy8KKyNpZiAhZGVmaW5lZChfX01JTkdXMzJfXykgJiYgIWRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKGxpbnV4KSAmJiAhZGVmaW5lZChfX2xpbnV4KSAmJiAhZGVmaW5lZChfX2xpbnV4X18pCisjIGRlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmIAorCisvLworLy8gZ2NjIGhhcyAibG9uZyBsb25nIgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworCisvLyBDKysweCBmZWF0dXJlczoKKy8vCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TICAKKyMgIGRlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1VTRVJfREVGSU5FRF9MSVRFUkFMUworCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJHQ0MtWE1MIEMrKyB2ZXJzaW9uICIgX19HQ0NYTUxfXworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2dyZWVuaGlsbHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvZ3JlZW5oaWxscy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQyZGE5NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2dyZWVuaGlsbHMuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBHcmVlbmhpbGxzIEMrKyBjb21waWxlciBzZXR1cDoKKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiR3JlZW5oaWxscyBDKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX2docykKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBHcmVlbmhpbGxzIHByaW9yIHRvIHZlcnNpb24gMDoKKyNpZiBfX2docyA8IDAKKyMgIGVycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgMDoKKyNpZiAoX19naHMgPiAwKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZW5kaWYKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9ocF9hY2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYzkxN2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9ocF9hY2MuaHBwCkBAIC0wLDAgKzEsMTQxIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IFRvb24gS25hcGVuIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgQm9yaXMgR3ViZW5rbyAyMDA2IC0gMjAwNy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBIUCBhQ0MgQysrIGNvbXBpbGVyIHNldHVwOgorCisjaWYgZGVmaW5lZChfX0VER19fKQorI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKyNlbmRpZgorCisjaWYgKF9fSFBfYUNDIDw9IDMzMTAwKQorIyAgICBkZWZpbmUgQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVAorIyAgICBkZWZpbmUgQk9PU1RfTk9fT1BFUkFUT1JTX0lOX05BTUVTUEFDRQorIyAgaWYgIWRlZmluZWQoX05BTUVTUEFDRV9TVEQpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NUUklOR1NUUkVBTQorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgKF9fSFBfYUNDIDw9IDMzMzAwKQorLy8gbWVtYmVyIHRlbXBsYXRlcyBhcmUgc3VmZmljaWVudGx5IGJyb2tlbiB0aGF0IHdlIGRpc2FibGUgdGhlbSBmb3Igbm93CisjICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTCisjICAgIGRlZmluZSBCT09TVF9OT19ERVBFTkRFTlRfTkVTVEVEX0RFUklWQVRJT05TCisjICAgIGRlZmluZSBCT09TVF9OT19VU0lOR19ERUNMQVJBVElPTl9PVkVSTE9BRFNfRlJPTV9UWVBFTkFNRV9CQVNFCisjZW5kaWYKKworI2lmIChfX0hQX2FDQyA8PSAzODAwMCkKKyMgIGRlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyNlbmRpZgorCisjaWYgKF9fSFBfYUNDID4gNTAwMDApICYmIChfX0hQX2FDQyA8IDYwMDAwKQorIyAgICBkZWZpbmUgQk9PU1RfTk9fVU5SRUFDSEFCTEVfUkVUVVJOX0RFVEVDVElPTgorIyAgICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVfVEVNUExBVEVTCisjICAgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorIyAgICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMKKyMgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworI2VuZGlmIAorCisvLyBvcHRpb25hbCBmZWF0dXJlcyByYXRoZXIgdGhhbiBkZWZlY3RzOgorI2lmIChfX0hQX2FDQyA+PSAzMzkwMCkKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19QQVJUSUFMX1NURF9BTExPQ0FUT1IKKyNlbmRpZgorCisjaWYgKF9fSFBfYUNDID49IDUwMDAwICkgJiYgKF9fSFBfYUNDIDw9IDUzODAwICkgfHwgKF9fSFBfYUNDIDwgMzEzMDAgKQorIyAgICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0tFWVdPUkQKKyNlbmRpZgorCisvLyBUaGlzIG1hY3JvIHNob3VsZCBub3QgYmUgZGVmaW5lZCB3aGVuIGNvbXBpbGluZyBpbiBzdHJpY3QgYW5zaQorLy8gbW9kZSwgYnV0LCBjdXJyZW50bHksIHdlIGRvbid0IGhhdmUgdGhlIGFiaWxpdHkgdG8gZGV0ZXJtaW5lCisvLyB3aGF0IHN0YW5kYXJkIG1vZGUgd2UgYXJlIGNvbXBpbGluZyB3aXRoLiBTb21lIGZ1dHVyZSB2ZXJzaW9uCisvLyBvZiBhQ0M2IGNvbXBpbGVyIHdpbGwgcHJvdmlkZSBwcmVkZWZpbmVkIG1hY3JvcyByZWZsZWN0aW5nIHRoZQorLy8gY29tcGlsYXRpb24gb3B0aW9ucywgaW5jbHVkaW5nIHRoZSBzdGFuZGFyZCBtb2RlLgorI2lmIChfX0hQX2FDQyA+PSA2MDAwMCkgfHwgKChfX0hQX2FDQyA+IDM4MDAwKSAmJiBkZWZpbmVkKF9faHB4c3RkOTgpKQorIyAgICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiSFAgYUNDIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19IUF9hQ0MpCisKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IHN1cHBvcnQgSFAgYUNDIHByaW9yIHRvIHZlcnNpb24gMzMwMDA6CisjaWYgX19IUF9hQ0MgPCAzMzAwMAorIyAgZXJyb3IgIkNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQgb3IgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorCisvLworLy8gRXh0ZW5kZWQgY2hlY2tzIGZvciBzdXBwb3J0aW5nIGFDQyBvbiBQQS1SSVNDCisjaWYgX19IUF9hQ0MgPiAzMDAwMCAmJiBfX0hQX2FDQyA8IDUwMDAwCisjICBpZiBfX0hQX2FDQyA8IDM4MDAwCisgICAgICAvLyB2ZXJzaW9ucyBwcmlvciB0byB2ZXJzaW9uIEEuMDMuODAgbm90IHN1cHBvcnRlZAorIyAgICAgZXJyb3IgIkNvbXBpbGVyIHZlcnNpb24gbm90IHN1cHBvcnRlZCAtIHZlcnNpb24gQS4wMy44MCBvciBoaWdoZXIgaXMgcmVxdWlyZWQiCisjICBlbGlmICFkZWZpbmVkKF9faHB4c3RkOTgpCisgICAgICAvLyBtdXN0IGNvbXBpbGUgdXNpbmcgdGhlIG9wdGlvbiAraHB4c3RkOTggd2l0aCB2ZXJzaW9uIEEuMDMuODAgYW5kIGFib3ZlCisjICAgICBlcnJvciAiQ29tcGlsZXIgb3B0aW9uICcraHB4c3RkOTgnIGlzIHJlcXVpcmVkIGZvciBwcm9wZXIgc3VwcG9ydCIKKyMgIGVuZGlmIC8vUEEtUklTQworI2VuZGlmCisKKy8vCisvLyBDKysweCBmZWF0dXJlcworLy8KKy8vICAgU2VlIGJvb3N0XGNvbmZpZ1xzdWZmaXguaHBwIGZvciBCT09TVF9OT19MT05HX0xPTkcKKy8vCisjaWYgIWRlZmluZWQoX19FREdfXykKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VTRVJfREVGSU5FRF9MSVRFUkFMUworCisvKiAKKyAgU2VlIGh0dHBzOi8vZm9ydW1zMTMuaXRyYy5ocC5jb20vc2VydmljZS9mb3J1bXMvcXVlc3Rpb25hbnN3ZXIuZG8/dGhyZWFkSWQ9MTQ0MzMzMSBhbmQKKyAgICAgIGh0dHBzOi8vZm9ydW1zMTMuaXRyYy5ocC5jb20vc2VydmljZS9mb3J1bXMvcXVlc3Rpb25hbnN3ZXIuZG8/dGhyZWFkSWQ9MTQ0MzQzNgorKi8KKworI2lmIChfX0hQX2FDQyA8IDYyNTAwKSB8fCAhZGVmaW5lZChIUF9DWFgweF9TT1VSQ0UpCisgICNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworI2VuZGlmCisKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gZm9yIEhQLVVYL2lhNjQgaXMgNjEzMDAKKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBmb3IgUEEtUklTQyBpcyAzODAwMAorI2lmICgoX19IUF9hQ0MgPiA2MTMwMCkgfHwgKChfX0hQX2FDQyA+IDM4MDAwKSAmJiBkZWZpbmVkKF9faHB4c3RkOTgpKSkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2ludGVsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2ludGVsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTI3YjhkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvaW50ZWwuaHBwCkBAIC0wLDAgKzEsMjcyIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMS04LgorLy8gIChDKSBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS4KKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEuCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyIC0gMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMiAtIDIwMDMuCisvLyAgKEMpIENvcHlyaWdodCBHdWlsbGF1bWUgTWVscXVpb25kIDIwMDIgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IE1hcnRpbiBXaWxsZSAyMDAzLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBJbnRlbCBjb21waWxlciBzZXR1cDoKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKworI2lmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiBfX0lOVEVMX0NPTVBJTEVSCisjZWxpZiBkZWZpbmVkKF9fSUNMKQorIyAgZGVmaW5lIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIF9fSUNMCisjZWxpZiBkZWZpbmVkKF9fSUNDKQorIyAgZGVmaW5lIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIF9fSUNDCisjZWxpZiBkZWZpbmVkKF9fRUNDKQorIyAgZGVmaW5lIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIF9fRUNDCisjZW5kaWYKKworLy8gRmxhZ3MgZGV0ZXJtaW5lZCBieSBjb21wYXJpbmcgb3V0cHV0IG9mICdpY3BjIC1kTSAtRScgd2l0aCBhbmQgd2l0aG91dCAnLXN0ZD1jKysweCcKKyNpZiAoIShkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfV0lONjQpKSAmJiBkZWZpbmVkKF9fU1REQ19IT1NURURfXykgJiYgKF9fU1REQ19IT1NURURfXyAmJiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPD0gMTIwMCkpKSB8fCBkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DUFAwWF9fKQorIyAgZGVmaW5lIEJPT1NUX0lOVEVMX1NURENYWDBYCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTYwMCkKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9TVERDWFgwWAorI2VuZGlmCisKKyNpZmRlZiBCT09TVF9JTlRFTF9TVERDWFgwWAorI2RlZmluZSBCT09TVF9DT01QSUxFUiAiSW50ZWwgQysrIEMrKzB4IG1vZGUgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJJbnRlbCBDKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikKKyNlbmRpZgorI2RlZmluZSBCT09TVF9JTlRFTCBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTgorCisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX1dJTjY0KQorIyAgZGVmaW5lIEJPT1NUX0lOVEVMX1dJTiBCT09TVF9JTlRFTAorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9MSU5VWCBCT09TVF9JTlRFTAorI2VuZGlmCisKKyNpZiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPD0gNTAwKSAmJiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworIyAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFX1RFTVBMQVRFUworI2VuZGlmCisKKyNpZiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPD0gNjAwKQorCisjICBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPD0gMTMwMCkgLy8gYWRkZWQgY2hlY2sgZm9yIDw9IFZDIDcgKFBldGVyIERpbW92KQorCisvLyBCb29zdCBsaWJyYXJpZXMgYXNzdW1lIHN0cm9uZyBzdGFuZGFyZCBjb25mb3JtYW5jZSB1bmxlc3Mgb3RoZXJ3aXNlCisvLyBpbmRpY2F0ZWQgYnkgYSBjb25maWcgbWFjcm8uIEFzIGNvbmZpZ3VyZWQgYnkgSW50ZWwsIHRoZSBFREcgZnJvbnQtZW5kCisvLyByZXF1aXJlcyBjZXJ0YWluIGNvbXBpbGVyIG9wdGlvbnMgYmUgc2V0IHRvIGFjaGlldmUgdGhhdCBzdHJvbmcgY29uZm9ybWFuY2UuCisvLyBQYXJ0aWN1bGFybHkgL1FvcHRpb24sYywtLWFyZ19kZXBfbG9va3VwIChyZXBvcnRlZCBieSBLaXJrIEtsb2JlICYgVGhvbWFzIFdpdHQpCisvLyBhbmQgL1pjOndjaGFyX3QsZm9yU2NvcGUuIFNlZSBib29zdC1yb290L3Rvb2xzL2J1aWxkL2ludGVsLXdpbjMyLXRvb2xzLmphbSBmb3IKKy8vIGRldGFpbHMgYXMgdGhleSBhcHBseSB0byBwYXJ0aWN1bGFyIHZlcnNpb25zIG9mIHRoZSBjb21waWxlci4gV2hlbiB0aGUKKy8vIGNvbXBpbGVyIGRvZXMgbm90IHByZWRlZmluZSBhIG1hY3JvIGluZGljYXRpbmcgaWYgYW4gb3B0aW9uIGhhcyBiZWVuIHNldCwKKy8vIHRoaXMgY29uZmlnIGZpbGUgc2ltcGx5IGFzc3VtZXMgdGhlIG9wdGlvbiBoYXMgYmVlbiBzZXQuCisvLyBUaHVzIEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVAgd2lsbCBub3QgYmUgZGVmaW5lZCwgZXZlbiBpZgorLy8gdGhlIGNvbXBpbGVyIG9wdGlvbiBpcyBub3QgZW5hYmxlZC4KKworIyAgICAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjICBlbmRpZgorCisvLyBWb2lkIHJldHVybnMsIDY0IGJpdCBpbnRlZ3JhbHMgZG9uJ3Qgd29yayB3aGVuIGVtdWxhdGluZyBWQyA2IChQZXRlciBEaW1vdikKKworIyAgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDw9IDEyMDApCisjICAgICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjICAgICBkZWZpbmUgQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVAorIyAgZW5kaWYKKworI2VuZGlmCisKKyNpZiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPD0gNzEwKSAmJiBkZWZpbmVkKF9XSU4zMikKKyMgIGRlZmluZSBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9URU1QTEFURV9QQVJBTUVURVJTCisjZW5kaWYKKworLy8gU2VlIGh0dHA6Ly9hc3BuLmFjdGl2ZXN0YXRlLmNvbS9BU1BOL01haWwvTWVzc2FnZS9ib29zdC8xNjE0ODY0CisjaWYgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPCA2MDAKKyMgIGRlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorI2Vsc2UKKy8vIFdlIHNob3VsZCB0ZXN0IHRoZSBtYWNybyBfV0NIQVJfVF9ERUZJTkVEIHRvIGNoZWNrIGlmIHRoZSBjb21waWxlcgorLy8gc3VwcG9ydHMgd2NoYXJfdCBuYXRpdmVseS4gKkJVVCogdGhlcmUgaXMgYSBwcm9ibGVtIGhlcmU6IHRoZSBzdGFuZGFyZAorLy8gaGVhZGVycyBkZWZpbmUgdGhpcyBtYWNybyBpZiB0aGV5IHR5cGVkZWYgd2NoYXJfdC4gQW55d2F5LCB3ZSdyZSBsdWNreQorLy8gYmVjYXVzZSB0aGV5IGRlZmluZSBpdCB3aXRob3V0IGEgdmFsdWUsIHdoaWxlIEludGVsIEMrKyBkZWZpbmVzIGl0CisvLyB0byAxLiBTbyB3ZSBjYW4gY2hlY2sgaXRzIHZhbHVlIHRvIHNlZSBpZiB0aGUgbWFjcm8gd2FzIGRlZmluZWQgbmF0aXZlbHkKKy8vIG9yIG5vdC4KKy8vIFVuZGVyIFVOSVgsIHRoZSBzaXR1YXRpb24gaXMgZXhhY3RseSB0aGUgc2FtZSwgYnV0IHRoZSBtYWNybyBfV0NIQVJfVAorLy8gaXMgdXNlZCBpbnN0ZWFkLgorIyAgaWYgKChfV0NIQVJfVF9ERUZJTkVEICsgMCkgPT0gMCkgJiYgKChfV0NIQVJfVCArIDApID09IDApCisjICAgIGRlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETCkKKy8vCisvLyBGaWd1cmUgb3V0IHdoZW4gSW50ZWwgaXMgZW11bGF0aW5nIHRoaXMgZ2NjIGJ1ZworLy8gKEFsbCBJbnRlbCB2ZXJzaW9ucyBwcmlvciB0byA5LjAuMjYsIGFuZCB2ZXJzaW9ucworLy8gbGF0ZXIgdGhhbiB0aGF0IGlmIHRoZXkgYXJlIHNldCB1cCB0byBlbXVsYXRlIGdjYyAzLjIKKy8vIG9yIGVhcmxpZXIpOgorLy8KKyMgIGlmICgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fIDw9IDIpKSB8fCAoQk9PU1RfSU5URUwgPCA5MDApIHx8IChfX0lOVEVMX0NPTVBJTEVSX0JVSUxEX0RBVEUgPCAyMDA1MDkxMikKKyMgICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl9TQ09QRV9VU0lOR19ERUNMQVJBVElPTl9CUkVBS1NfQURMCisjICBlbmRpZgorI2VuZGlmCisjaWYgKGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA8IDQpKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDEyMDApCisvLyBHQ0Mgb3IgVkMgZW11bGF0aW9uOgorI2RlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyNlbmRpZgorLy8KKy8vIFZlcmlmeSB0aGF0IHdlIGhhdmUgYWN0dWFsbHkgZ290IEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisvLyBzZXQgY29ycmVjdGx5LCBpZiB3ZSBkb24ndCBkbyB0aGlzIG5vdywgd2Ugd2lsbCBnZXQgZXJyb3JzIGxhdGVyCisvLyBpbiB0eXBlX3RyYWl0cyBjb2RlIGFtb25nIG90aGVyIHRoaW5ncywgZ2V0dGluZyB0aGlzIGNvcnJlY3QKKy8vIGZvciB0aGUgSW50ZWwgY29tcGlsZXIgaXMgYWN0dWFsbHkgcmVtYXJrYWJseSBmcmFnaWxlIGFuZCB0cmlja3k6CisvLworI2lmZGVmIF9fY3BsdXNwbHVzCisjaWYgZGVmaW5lZChCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVCkKKyNpbmNsdWRlIDxjd2NoYXI+Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhc3NlcnRfbm9faW50cmluc2ljX3djaGFyX3Q7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBhc3NlcnRfbm9faW50cmluc2ljX3djaGFyX3Q8d2NoYXJfdD4geyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsKKy8vIGlmIHlvdSBzZWUgYW4gZXJyb3IgaGVyZSB0aGVuIHlvdSBuZWVkIHRvIHVuc2V0IEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisvLyB3aGVyZSBpdCBpcyBkZWZpbmVkIGFib3ZlOgordHlwZWRlZiBhc3NlcnRfbm9faW50cmluc2ljX3djaGFyX3Q8dW5zaWduZWQgc2hvcnQ+Ojp0eXBlIGFzc2VydF9ub19pbnRyaW5zaWNfd2NoYXJfdF87CisjZWxzZQordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXNzZXJ0X2ludHJpbnNpY193Y2hhcl90OwordGVtcGxhdGU8PiBzdHJ1Y3QgYXNzZXJ0X2ludHJpbnNpY193Y2hhcl90PHdjaGFyX3Q+IHt9OworLy8gaWYgeW91IHNlZSBhbiBlcnJvciBoZXJlIHRoZW4gZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UIG9uIHRoZSBjb21tYW5kIGxpbmU6Cit0ZW1wbGF0ZTw+IHN0cnVjdCBhc3NlcnRfaW50cmluc2ljX3djaGFyX3Q8dW5zaWduZWQgc2hvcnQ+IHt9OworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiswID49IDEwMDApCisjICBpZiBfTVNDX1ZFUiA+PSAxMjAwCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX01TX0lOVDY0CisjICBlbmRpZgorIyAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZWxpZiBkZWZpbmVkKF9XSU4zMikKKyMgIGRlZmluZSBCT09TVF9ESVNBQkxFX1dJTjMyCisjZW5kaWYKKworLy8gSSBjaGVja2VkIHZlcnNpb24gNi4wIGJ1aWxkIDAyMDMxMlosIGl0IGltcGxlbWVudHMgdGhlIE5SVk8uCisvLyBDb3JyZWN0IHRoaXMgYXMgeW91IGZpbmQgb3V0IHdoaWNoIHZlcnNpb24gb2YgdGhlIGNvbXBpbGVyCisvLyBpbXBsZW1lbnRlZCB0aGUgTlJWTyBmaXJzdC4gIChEYW5pZWwgRnJleSkKKyNpZiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPj0gNjAwKQorIyAgZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZW5kaWYKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBJbnRlbCBwcmlvciB0byB2ZXJzaW9uIDUuMDoKKyNpZiBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA8IDUwMAorIyAgZXJyb3IgIkNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQgb3IgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorCisvLyBJbnRlbCBvbiBNYWNPUyByZXF1aXJlcworI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCisjICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZW5kaWYKKworLy8gSW50ZWwgb24gQWx0aXggSXRhbml1bQorI2lmIGRlZmluZWQoX19pdGFuaXVtX18pICYmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikKKyMgIGRlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyNlbmRpZgorCisvLworLy8gQW4gYXR0ZW1wdCB0byB2YWx1ZS1pbml0aWFsaXplIGEgcG9pbnRlci10by1tZW1iZXIgbWF5IHRyaWdnZXIgYW4KKy8vIGludGVybmFsIGVycm9yIG9uIEludGVsIDw9IDExLjEgKGxhc3QgY2hlY2tlZCB2ZXJzaW9uKSwgYXMgd2FzIAorLy8gcmVwb3J0ZWQgYnkgSm9obiBNYWRkb2NrLCBJbnRlbCBzdXBwb3J0IGlzc3VlIDU4OTgzMiwgTWF5IDIwMTAuCisvLyBNb3Jlb3ZlciwgYWNjb3JkaW5nIHRvIHRlc3QgcmVzdWx0cyBmcm9tIEh1YW5nLVZpc3RhLXg4Nl8zMl9pbnRlbCwKKy8vIGludGVsLXZjOS13aW4tMTEuMSBtYXkgbGVhdmUgYSBub24tUE9EIGFycmF5IHVuaW5pdGlhbGl6ZWQsIGluIHNvbWUgCisvLyBjYXNlcyB3aGVuIGl0IHNob3VsZCBiZSB2YWx1ZS1pbml0aWFsaXplZC4KKy8vIChOaWVscyBEZWtrZXIsIExLRUIsIE1heSAyMDEwKQorLy8gQXBwYXJlbnRseSBJbnRlbCAxMi4xIChjb21waWxlciB2ZXJzaW9uIG51bWJlciA5OTk5ICEhKSBoYXMgdGhlIHNhbWUgaXNzdWUgKGNvbXBpbGVyIHJlZ3Jlc3Npb24pLgorI2lmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikKKyMgIGlmIChfX0lOVEVMX0NPTVBJTEVSIDw9IDExMTApIHx8IChfX0lOVEVMX0NPTVBJTEVSID09IDk5OTkpIHx8IChkZWZpbmVkKF9XSU4zMikgJiYgKF9fSU5URUxfQ09NUElMRVIgPCAxNTAwKSkKKyMgICAgZGVmaW5lIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBEeW5hbWljIHNoYXJlZCBvYmplY3QgKERTTykgYW5kIGR5bmFtaWMtbGluayBsaWJyYXJ5IChETEwpIHN1cHBvcnQKKy8vCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDQpCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9JTVBPUlQKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfVklTSUJMRSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2VuZGlmCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vICAgICAtIElDQyBhZGRlZCBzdGF0aWNfYXNzZXJ0IGluIDExLjAgKGZpcnN0IHZlcnNpb24gd2l0aCBDKysweCBzdXBwb3J0KQorLy8KKyNpZiBkZWZpbmVkKEJPT1NUX0lOVEVMX1NURENYWDBYKQorIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKy8vCisvLyBUaGVzZSBwYXNzIG91ciB0ZXN0IGNhc2VzLCBidXQgYXJlbid0IG9mZmljaWFsbHkgc3VwcG9ydGVkIGFjY29yZGluZyB0bzoKKy8vIGh0dHA6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vZW4tdXMvYXJ0aWNsZXMvYzB4LWZlYXR1cmVzLXN1cHBvcnRlZC1ieS1pbnRlbC1jLWNvbXBpbGVyLworLy8KKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisvLyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworLy8jICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX0lOVEVMX1NURENYWDBYKSAmJiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPj0gMTIwMCkKKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTIC8vIEVuYWJsaW5nIHRoaXMgYnJlYWtzIEZpbGVzeXN0ZW0gYW5kIEV4Y2VwdGlvbiBsaWJyYXJpZXMKKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUyAgLy8gZG9lc24ndCByZWFsbHkgd29yayEhCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2VuZGlmCisKKy8vIGljbCBWZXJzaW9uIDEyLjEuMC4yMzMgQnVpbGQgMjAxMTA4MTEgYW5kIHBvc3NpYmx5IHNvbWUgb3RoZXIgYnVpbGRzCisvLyBoYWQgYW4gaW5jb3JyZWN0IF9fSU5URUxfQ09NUElMRVIgdmFsdWUgb2YgOTk5OS4gSW50ZWwgc2F5IHRoaXMgaGFzIGJlZW4gZml4ZWQuIAorI2lmIGRlZmluZWQoQk9PU1RfSU5URUxfU1REQ1hYMFgpICYmIChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA+IDEyMDApCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjICB1bmRlZiAgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisKKy8vIGh0dHA6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vZW4tdXMvYXJ0aWNsZXMvYzB4LWZlYXR1cmVzLXN1cHBvcnRlZC1ieS1pbnRlbC1jLWNvbXBpbGVyLworLy8gY29udGludWVzIHRvIGxpc3Qgc2NvcGVkIGVudW0gc3VwcG9ydCBhcyAiUGFydGlhbCIgCisvLyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMgCisjZW5kaWYKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA8PSAxNzAwKQorLy8KKy8vIEFsdGhvdWdoIHRoZSBJbnRlbCBjb21waWxlciBpcyBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgdGhlc2UsIGl0IGFwcGVhcnMgbm90IHRvIGluIE1TVkMgY29tcGF0aWJpbGl0eSBtb2RlOgorLy8KKyMgIGRlZmluZSAgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgIGRlZmluZSAgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjICBkZWZpbmUgIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjICBkZWZpbmUgIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyMgIGRlZmluZSAgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2VuZGlmCisKKyNpZiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPCAxMjAwKQorLy8KKy8vIGZlbnYuaCBhcHBlYXJzIG5vdCB0byB3b3JrIHdpdGggSW50ZWwgcHJpb3IgdG8gMTIuMDoKKy8vCisjICBkZWZpbmUgQk9PU1RfTk9fRkVOVl9ICisjZW5kaWYKKworLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbjoKKyNpZiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPiAxMjAwKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorLy8KKy8vICAgICAgV2UgZG9uJ3QgZW1pdCB0aGlzIHdhcm5pbmcgYW55IG1vcmUsIHNpbmNlIHdlIGhhdmUgc28gZmV3CisvLyAgICAgIGRlZmVjdCBtYWNyb3Mgc2V0IGFueXdheSAoanVzdCB0aGUgb25lKS4KKy8vCisvLyMgICAgIHByYWdtYSBtZXNzYWdlKCJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIpCisjICBlbmRpZgorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9rYWkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4Mzk2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9rYWkuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBLYWkgQysrIGNvbXBpbGVyIHNldHVwOgorCisjaW5jbHVkZSAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIgorCisjICAgaWYgKF9fS0NDX1ZFUlNJT04gPD0gNDAwMSkgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykKKyAgICAgIC8vIGF0IGxlYXN0IG9uIFN1biwgdGhlIGNvbnRlbnRzIG9mIDxjd2NoYXI+IGlzIG5vdCBpbiBuYW1lc3BhY2Ugc3RkCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyMgICBlbmRpZgorCisvLyBzZWUgYWxzbyBjb21tb25fZWRnLmhwcCB3aGljaCBuZWVkcyBhIHNwZWNpYWwgY2hlY2sgZm9yIF9fS0NDCisjIGlmICFkZWZpbmVkKF9FWENFUFRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKyMgZW5kaWYKKworLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyA0MDAxOgorI2lmIChfX0tDQ19WRVJTSU9OID4gNDAwMSkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL21ldHJvd2Vya3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvbWV0cm93ZXJrcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNhOGFmOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL21ldHJvd2Vya3MuaHBwCkBAIC0wLDAgKzEsMTQ1IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEYXJpbiBBZGxlciAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgU3RlZmFuIFNsYXBldGEgMjAwNC4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgTWV0cm93ZXJrcyBDKysgY29tcGlsZXIgc2V0dXA6CisKKy8vIGxvY2FsZSBzdXBwb3J0IGlzIGRpc2FibGVkIHdoZW4gbGlua2luZyB3aXRoIHRoZSBkeW5hbWljIHJ1bnRpbWUKKyMgICBpZmRlZiBfTVNMX05PX0xPQ0FMRQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURF9MT0NBTEUKKyMgICBlbmRpZiAKKworIyAgIGlmIF9fTVdFUktTX18gPD0gMHgyMzAxICAvLyA1LjMKKyMgICAgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworIyAgICAgZGVmaW5lIEJPT1NUX05PX1BPSU5URVJfVE9fTUVNQkVSX0NPTlNUCisjICAgICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMKKyMgICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfS0VZV09SRAorIyAgIGVuZGlmCisKKyMgICBpZiBfX01XRVJLU19fIDw9IDB4MjQwMSAgLy8gNi4yCisvLyMgICAgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworIyAgIGVuZGlmCisKKyMgICBpZihfX01XRVJLU19fIDw9IDB4MjQwNykgIC8vIDcueAorIyAgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9GVU5DVElPTl9TUEVDSUFMSVpBVElPTlMKKyMgICAgIGRlZmluZSBCT09TVF9OT19VTlJFQUNIQUJMRV9SRVRVUk5fREVURUNUSU9OCisjICAgZW5kaWYKKworIyAgIGlmKF9fTVdFUktTX18gPD0gMHgzMDAzKSAgLy8gOC54CisjICAgICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFCisjICAgIGVuZGlmCisKKy8vIHRoZSAifHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykiIHBhcnQgc2hvdWxkIGFwcGx5IHRvIHRoZSBsYXN0CisvLyB0ZXN0ZWQgdmVyc2lvbiAqb25seSo6CisjICAgaWYoX19NV0VSS1NfXyA8PSAweDMyMDcpIHx8ICFkZWZpbmVkKEJPT1NUX1NUUklDVF9DT05GSUcpIC8vIDkuNgorIyAgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTCisjICAgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgICAgZW5kaWYKKworI2lmICFfX29wdGlvbih3Y2hhcl90eXBlKQorIyAgIGRlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorI2VuZGlmCisKKyNpZiAhX19vcHRpb24oZXhjZXB0aW9ucykgJiYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyMgICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworI2VuZGlmCisKKyNpZiAoX19JTlRFTF9fICYmIF9XSU4zMikgfHwgKF9fUE9XRVJQQ19fICYmIG1hY2ludG9zaCkKKyMgICBpZiBfX01XRVJLU19fID09IDB4MzAwMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOC4wCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzAwMQorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOC4xCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzAwMgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOC4yCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzAwMworIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOC4zCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS4wCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwMQorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS4xCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwMgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS4yCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwNAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS4zCisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwNQorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS40CisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwNgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS41CisjICAgZWxpZiBfX01XRVJLU19fID09IDB4MzIwNworIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS42CisjICAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gX19NV0VSS1NfXworIyAgIGVuZGlmCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gX19NV0VSS1NfXworI2VuZGlmCisKKy8vCisvLyBDKysweCBmZWF0dXJlcworLy8KKy8vICAgU2VlIGJvb3N0XGNvbmZpZ1xzdWZmaXguaHBwIGZvciBCT09TVF9OT19MT05HX0xPTkcKKy8vCisjaWYgX19NV0VSS1NfXyA+IDB4MzIwNiAmJiBfX29wdGlvbihydmFsdWVfcmVmcykKKyMgIGRlZmluZSBCT09TVF9IQVNfUlZBTFVFX1JFRlMKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgICAgICAgICAgICAgIAorI2VuZGlmCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VTRVJfREVGSU5FRF9MSVRFUkFMUworCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJNZXRyb3dlcmtzIENvZGVXYXJyaW9yIEMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04pCisKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IHN1cHBvcnQgTWV0cm93ZXJrcyBwcmlvciB0byB2ZXJzaW9uIDUuMzoKKyNpZiBfX01XRVJLU19fIDwgMHgyMzAxCisjICBlcnJvciAiQ29tcGlsZXIgbm90IHN1cHBvcnRlZCBvciBjb25maWd1cmVkIC0gcGxlYXNlIHJlY29uZmlndXJlIgorI2VuZGlmCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uOgorI2lmIChfX01XRVJLU19fID4gMHgzMjA1KQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZW5kaWYKKyNlbmRpZgorCisKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9tcHcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYzOGVmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcApAQCAtMCwwICsxLDg3IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBNUFcgQysrIGNvbXBpbGVycyBzZXR1cDoKKworIyAgIGlmICAgIGRlZmluZWQoX19TQ19fKQorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJNUFcgU0NwcCB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fU0NfXykKKyMgICBlbGlmIGRlZmluZWQoX19NUkNfXykKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiTVBXIE1yQ3BwIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19NUkNfXykKKyMgICBlbHNlCisjICAgICBlcnJvciAiVXNpbmcgTVBXIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gYnkgbWlzdGFrZS4gIFBsZWFzZSB1cGRhdGUuIgorIyAgIGVuZGlmCisKKy8vCisvLyBNUFcgOC45MDoKKy8vCisjaWYgKE1QV19DUExVUyA8PSAweDg5MCkgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykKKyMgIGRlZmluZSBCT09TVF9OT19DVl9TUEVDSUFMSVpBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19ERVBFTkRFTlRfTkVTVEVEX0RFUklWQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMKKyMgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorIyAgZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgZGVmaW5lIEJPT1NUX05PX1VTSU5HX1RFTVBMQVRFCisKKyMgIGRlZmluZSBCT09TVF9OT19DV0NIQVIKKyMgIGRlZmluZSBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUiAvKiBhY3R1YWxseSBhIGJ1ZyB3aXRoIGNvbnN0IHJlZmVyZW5jZSBvdmVybG9hZGluZyAqLworCisjZW5kaWYKKworLy8KKy8vIEMrKzB4IGZlYXR1cmVzCisvLworLy8gICBTZWUgYm9vc3RcY29uZmlnXHN1ZmZpeC5ocHAgZm9yIEJPT1NUX05PX0xPTkdfTE9ORworLy8KKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRV9FWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IHN1cHBvcnQgTVBXIHByaW9yIHRvIHZlcnNpb24gOC45OgorI2lmIE1QV19DUExVUyA8IDB4ODkwCisjICBlcnJvciAiQ29tcGlsZXIgbm90IHN1cHBvcnRlZCBvciBjb25maWd1cmVkIC0gcGxlYXNlIHJlY29uZmlndXJlIgorI2VuZGlmCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uIGlzIDB4ODkwOgorI2lmIChNUFdfQ1BMVVMgPiAweDg5MCkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9udmNjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL252Y2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViOWJiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9udmNjLmhwcApAQCAtMCwwICsxLDI4IEBACisvLyAgKEMpIENvcHlyaWdodCBFcmljIEpvdXJkYW5uZWF1LCBKb2VsIEZhbGNvdSAyMDEwCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgTlZJRElBIENVREEgQysrIGNvbXBpbGVyIHNldHVwCisKKyNpZm5kZWYgQk9PU1RfQ09NUElMRVIKKyMgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiTlZJRElBIENVREEgQysrIENvbXBpbGVyIgorI2VuZGlmCisKKy8vIE5WSURJQSBTcGVjaWZpYyBzdXBwb3J0CisvLyBCT09TVF9HUFVfRU5BQkxFRCA6IEZsYWcgYSBmdW5jdGlvbiBvciBhIG1ldGhvZCBhcyBiZWluZyBlbmFibGVkIG9uIHRoZSBob3N0IGFuZCBkZXZpY2UKKyNkZWZpbmUgQk9PU1RfR1BVX0VOQUJMRUQgX19ob3N0X18gX19kZXZpY2VfXworCisvLyBCb29zdCBzdXBwb3J0IG1hY3JvIGZvciBOVkNDIAorLy8gTlZDQyBCYXNpY2FsbHkgYmVoYXZlcyBsaWtlIHNvbWUgZmxhdm9yIG9mIE1TVkM2ICsgc29tZSBzcGVjaWZpYyBxdWlya3MKKyNpZmRlZiBfX0dOVUNfXworCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvY29tcGlsZXIvdmlzdWFsYy5ocHA+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvcGF0aHNjYWxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BhdGhzY2FsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkMTQ2MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BhdGhzY2FsZS5ocHAKQEAgLTAsMCArMSw4MSBAQAorLy8gIChDKSBDb3B5cmlnaHQgQnJ5Y2UgTGVsYmFjaCAyMDExCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vIFBhdGhTY2FsZSBFS09QYXRoIEMrKyBDb21waWxlcgorCisjaWZuZGVmIEJPT1NUX0NPTVBJTEVSCisjICBkZWZpbmUgQk9PU1RfQ09NUElMRVIgIlBhdGhTY2FsZSBFS09QYXRoIEMrKyBDb21waWxlciB2ZXJzaW9uICIgX19QQVRIU0NBTEVfXworI2VuZGlmCisKKyNpZiBfX1BBVEhDQ19fID49IDQKKyMgIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisjICBkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICBkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorIyAgZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgZGVmaW5lIEJPT1NUX0hBU19USFJFQURTCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURTCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfWUlFTEQKKyMgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgZGVmaW5lIEJPT1NUX0hBU19QQVJUSUFMX1NURF9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9IQVNfTlJWTworIyAgZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19ICisjICBkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorIyAgZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKyMgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICBkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjICBkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9ICisjICBkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyMgIGRlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworIyAgZGVmaW5lIEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvcGdpLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRjMGQ3NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAKQEAgLTAsMCArMSwxMTkgQEAKKy8vICAoQykgQ29weXJpZ2h0IE5vZWwgQmVsY291cnQgMjAwNy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgUEdJIEMrKyBjb21waWxlciBzZXR1cDoKKworI2RlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIF9fUEdJQ19fIyNfX1BHSUNfTUlOT1JfXworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiUEdJIGNvbXBpbGVyIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoQk9PU1RfQ09NUElMRVJfVkVSU0lPTikKKworLy8KKy8vIFRocmVhZGluZyBzdXBwb3J0OgorLy8gVHVybiB0aGlzIG9uIHVuY29uZGl0aW9uYWxseSBoZXJlLCBpdCB3aWxsIGdldCB0dXJuZWQgb2ZmIGFnYWluIGxhdGVyCisvLyBpZiBubyB0aHJlYWRpbmcgQVBJIGlzIGRldGVjdGVkLgorLy8KKworI2lmIF9fUEdJQ19fID49IDExCisKKy8vIG9wdGlvbnMgcmVxdWVzdGVkIGJ5IGNvbmZpZ3VyZSAtLWVuYWJsZS10ZXN0CisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9ZSUVMRAorI2RlZmluZSBCT09TVF9IQVNfTlJWTworI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisKKy8vIG9wdGlvbnMgLS1lbmFibGUtdGVzdCB3YW50cyB1bmRlZmluZWQKKyN1bmRlZiBCT09TVF9OT19TVERDX05BTUVTUEFDRQorI3VuZGVmIEJPT1NUX05PX0VYQ0VQVElPTl9TVERfTkFNRVNQQUNFCisjdW5kZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRQorCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKworI2VsaWYgX19QR0lDX18gPj0gMTAKKworLy8gb3B0aW9ucyByZXF1ZXN0ZWQgYnkgY29uZmlndXJlIC0tZW5hYmxlLXRlc3QKKyNkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNkZWZpbmUgQk9PU1RfSEFTX05SVk8KKyNkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworCisvLyBvcHRpb25zIC0tZW5hYmxlLXRlc3Qgd2FudHMgdW5kZWZpbmVkCisjdW5kZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyN1bmRlZiBCT09TVF9OT19FWENFUFRJT05fU1REX05BTUVTUEFDRQorI3VuZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKworI2VsaWYgX19QR0lDX18gPj0gNworCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKworI2Vsc2UKKworIyAgZXJyb3IgIlBnaSBjb21waWxlciBub3QgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKworI2VuZGlmCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisvLyAgIFNlZSBib29zdFxjb25maWdcc3VmZml4LmhwcCBmb3IgQk9PU1RfTk9fTE9OR19MT05HCisvLworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRV9FWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8KKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfTVVURVgKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisKKy8vCisvLyB2ZXJzaW9uIGNoZWNrOgorLy8gcHJvYmFibHkgbm90aGluZyB0byBkbyBoZXJlPworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9zZ2lfbWlwc3Byby5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9zZ2lfbWlwc3Byby5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ4ZWE0NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3NnaV9taXBzcHJvLmhwcApAQCAtMCwwICsxLDI5IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIFNHSSBDKysgY29tcGlsZXIgc2V0dXA6CisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgIlNHSSBJcml4IGNvbXBpbGVyIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX0NPTVBJTEVSX1ZFUlNJT04pCisKKyNpbmNsdWRlICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvY29tbW9uX2VkZy5ocHAiCisKKy8vCisvLyBUaHJlYWRpbmcgc3VwcG9ydDoKKy8vIFR1cm4gdGhpcyBvbiB1bmNvbmRpdGlvbmFsbHkgaGVyZSwgaXQgd2lsbCBnZXQgdHVybmVkIG9mZiBhZ2FpbiBsYXRlcgorLy8gaWYgbm8gdGhyZWFkaW5nIEFQSSBpcyBkZXRlY3RlZC4KKy8vCisjZGVmaW5lIEJPT1NUX0hBU19USFJFQURTCisjZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorCisjdW5kZWYgQk9PU1RfTk9fU1dQUklOVEYKKyN1bmRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FCisKKy8vCisvLyB2ZXJzaW9uIGNoZWNrOgorLy8gcHJvYmFibHkgbm90aGluZyB0byBkbyBoZXJlPworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3N1bnByb19jYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9zdW5wcm9fY2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NDIxZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci9zdW5wcm9fY2MuaHBwCkBAIC0wLDAgKzEsMTUwIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMiAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgU3VuIEMrKyBjb21waWxlciBzZXR1cDoKKworIyAgICBpZiBfX1NVTlBST19DQyA8PSAweDUwMAorIyAgICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTCisjICAgICAgZGVmaW5lIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisjICAgIGVuZGlmCisKKyMgICAgaWYgKF9fU1VOUFJPX0NDIDw9IDB4NTIwKQorICAgICAgIC8vCisgICAgICAgLy8gU3VucHJvIDUuMiBhbmQgZWFybGVyOgorICAgICAgIC8vCisgICAgICAgLy8gYWx0aG91Z2ggc3VucHJvIDUuMiBzdXBwb3J0cyB0aGUgc3ludGF4IGZvcgorICAgICAgIC8vIGlubGluZSBpbml0aWFsaXphdGlvbiBpdCBvZnRlbiBnZXRzIHRoZSB2YWx1ZQorICAgICAgIC8vIHdyb25nLCBlc3BlY2lhbGx5IHdoZXJlIHRoZSB2YWx1ZSBpcyBjb21wdXRlZAorICAgICAgIC8vIGZyb20gb3RoZXIgY29uc3RhbnRzIChKIE1hZGRvY2sgNnRoIE1heSAyMDAxKQorIyAgICAgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorCisgICAgICAgLy8gQWx0aG91Z2ggc3VucHJvIDUuMiBzdXBwb3J0cyB0aGUgc3ludGF4IGZvcgorICAgICAgIC8vIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24sIGl0IG9mdGVuIHNlZW1zIHRvCisgICAgICAgLy8gYmluZCB0byB0aGUgd3Jvbmcgc3BlY2lhbGl6YXRpb24uICBCZXR0ZXIKKyAgICAgICAvLyB0byBkaXNhYmxlIGl0IHVudGlsIHN1cHBwb3J0IGJlY29tZXMgbW9yZSBzdGFibGUKKyAgICAgICAvLyAoSiBNYWRkb2NrIDZ0aCBNYXkgMjAwMSkuCisjICAgICAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyMgICAgZW5kaWYKKworIyAgICBpZiAoX19TVU5QUk9fQ0MgPD0gMHg1MzApIAorICAgICAgIC8vIFJlcXVlc3RpbmcgZGVidWcgaW5mbyAoLWcpIHdpdGggQm9vc3QuUHl0aG9uIHJlc3VsdHMKKyAgICAgICAvLyBpbiBhbiBpbnRlcm5hbCBjb21waWxlciBlcnJvciBmb3IgInN0YXRpYyBjb25zdCIKKyAgICAgICAvLyBpbml0aWFsaXplZCBpbi1jbGFzcy4KKyAgICAgICAvLyAgICA+PiBBc3NlcnRpb246ICAgKC4uL2xpbmtzL2RiZ19jc3RhYnMuY2MsIGxpbmUgNjExKQorICAgICAgIC8vICAgICAgICAgd2hpbGUgcHJvY2Vzc2luZyAuLi90ZXN0LmNwcCBhdCBsaW5lIDAuCisgICAgICAgLy8gKEplbnMgTWF1cmVyIGFjY29yZGluZyB0byBHb3R0ZnJpZWQgR2Fuc3NhdWdlIDA0IE1hciAyMDAyKQorIyAgICAgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorCisgICAgICAgLy8gU3VuUHJvIDUuMyBoYXMgYmV0dGVyIHN1cHBvcnQgZm9yIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24sCisgICAgICAgLy8gYnV0IGJyZWFrcyB3aGVuIGNvbXBpbGluZyBzdGQ6Omxlc3M8c2hhcmVkX3B0cjxUPiA+CisgICAgICAgLy8gKEplbnMgTWF1cmVyIDQgTm92IDIwMDEpLgorCisgICAgICAgLy8gc3RkOjpsZXNzIHNwZWNpYWxpemF0aW9uIGZpeGVkIGFzIHJlcG9ydGVkIGJ5IEdlb3JnZQorICAgICAgIC8vIEhlaW50emVsbWFuOyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHJlLWVuYWJsZWQKKyAgICAgICAvLyAoUGV0ZXIgRGltb3YgMTcgSmFuIDIwMDIpCisKKy8vIyAgICAgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyAgICAgICAvLyBpbnRlZ3JhbCBjb25zdGFudCBleHByZXNzaW9ucyB3aXRoIDY0IGJpdCBudW1iZXJzIGZhaWwKKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVAorIyAgICBlbmRpZgorCisjICAgIGlmIChfX1NVTlBST19DQyA8IDB4NTcwKSAKKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVfVEVNUExBVEVTCisgICAgICAgLy8gc2VlIGh0dHA6Ly9saXN0cy5ib29zdC5vcmcvTWFpbEFyY2hpdmVzL2Jvb3N0L21zZzQ3MTg0LnBocAorICAgICAgIC8vIGFuZCBodHRwOi8vbGlzdHMuYm9vc3Qub3JnL01haWxBcmNoaXZlcy9ib29zdC9tc2c0NzIyMC5waHAKKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04KKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFCisjICAgICAgZGVmaW5lIEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TCisjICAgIGVuZGlmCisjICAgIGlmIChfX1NVTlBST19DQyA8PSAweDU4MCkgCisjICAgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICAgIGVuZGlmCisKKyMgICAgaWYgKF9fU1VOUFJPX0NDIDw9IDB4NTEwMCkKKyAgICAgICAvLyBTdW4gNS4xMCBtYXkgbm90IGNvcnJlY3RseSB2YWx1ZS1pbml0aWFsaXplIG9iamVjdHMgb2YKKyAgICAgICAvLyBzb21lIHVzZXIgZGVmaW5lZCB0eXBlcywgYXMgd2FzIHJlcG9ydGVkIGluIEFwcmlsIDIwMTAKKyAgICAgICAvLyAoQ1IgNjk0NzAxNiksIGFuZCBjb25maXJtZWQgYnkgU3RldmUgQ2xhbWFnZS4KKyAgICAgICAvLyAoTmllbHMgRGVra2VyLCBMS0VCLCBNYXkgMjAxMCkuCisjICAgICAgZGVmaW5lIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisjICAgIGVuZGlmCisKKy8vCisvLyBEeW5hbWljIHNoYXJlZCBvYmplY3QgKERTTykgYW5kIGR5bmFtaWMtbGluayBsaWJyYXJ5IChETEwpIHN1cHBvcnQKKy8vCisjaWYgX19TVU5QUk9fQ0MgPiAweDUwMAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQgX19nbG9iYWwKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfSU1QT1JUIF9fZ2xvYmFsCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX1ZJU0lCTEUgX19nbG9iYWwKKyNlbmRpZgorCisKKworLy8KKy8vIElzc3VlcyB0aGF0IGVmZmVjdCBhbGwga25vd24gdmVyc2lvbnM6CisvLworI2RlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyNkZWZpbmUgQk9PU1RfTk9fQURMX0JBUlJJRVIKKworLy8KKy8vIEMrKzB4IGZlYXR1cmVzCisvLworIyAgZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9VU0VSX0RFRklORURfTElURVJBTFMKKworLy8KKy8vIFZlcnNpb24KKy8vCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgIlN1biBjb21waWxlciB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fU1VOUFJPX0NDKQorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyB3ZSBkb24ndCBzdXBwb3J0IHN1bnBybyBwcmlvciB0byB2ZXJzaW9uIDQ6CisjaWYgX19TVU5QUk9fQ0MgPCAweDQwMAorI2Vycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgMHg1OTA6CisjaWYgKF9fU1VOUFJPX0NDID4gMHg1OTApCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci92YWNwcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9jb21waWxlci92YWNwcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdiOTkwMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3ZhY3BwLmhwcApAQCAtMCwwICsxLDEzMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IFRvb24gS25hcGVuIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IExpZS1RdWFuIExlZSAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hcmt1cyBTY2hvZXBmbGluIDIwMDIgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEJlbWFuIERhd2VzIDIwMDIgLSAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBWaXN1YWwgQWdlIChJQk0pIEMrKyBjb21waWxlciBzZXR1cDoKKworI2lmIF9fSUJNQ1BQX18gPD0gNTAxCisjICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfRlVOQ1RJT05fU1BFQ0lBTElaQVRJT05TCisjZW5kaWYKKworI2lmIChfX0lCTUNQUF9fIDw9IDUwMikgCisvLyBBY3R1YWxseSB0aGUgY29tcGlsZXIgc3VwcG9ydHMgaW5jbGFzcyBtZW1iZXIgaW5pdGlhbGl6YXRpb24gYnV0IGl0CisvLyByZXF1aXJlcyBhIGRlZmluaXRpb24gZm9yIHRoZSBjbGFzcyBtZW1iZXIgYW5kIGl0IGRvZXNuJ3QgcmVjb2duaXplCisvLyBpdCBhcyBhbiBpbnRlZ3JhbCBjb25zdGFudCBleHByZXNzaW9uIHdoZW4gdXNlZCBhcyBhIHRlbXBsYXRlIGFyZ3VtZW50LgorIyAgZGVmaW5lIEJPT1NUX05PX0lOQ0xBU1NfTUVNQkVSX0lOSVRJQUxJWkFUSU9OCisjICBkZWZpbmUgQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVAorIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9LRVlXT1JECisjZW5kaWYKKworI2lmIChfX0lCTUNQUF9fIDw9IDYwMCkgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykKKyMgIGRlZmluZSBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9URU1QTEFURV9QQVJBTUVURVJTCisjZW5kaWYKKworI2lmIChfX0lCTUNQUF9fIDw9IDExMTApCisvLyBYTCBDKysgVjExLjEgYW5kIGVhcmxpZXIgdmVyc2lvbnMgbWF5IG5vdCBhbHdheXMgdmFsdWUtaW5pdGlhbGl6ZSAgCisvLyBhIHRlbXBvcmFyeSBvYmplY3QgVCgpLCB3aGVuIFQgaXMgYSBub24tUE9EIGFnZ3JlZ2F0ZSBjbGFzcyB0eXBlLiAKKy8vIE1pY2hhZWwgV29uZyAoSUJNIENhbmFkYSBMdGQpIGhhcyBjb25maXJtZWQgdGhpcyBpc3N1ZSBhbmQgZ2F2ZSBpdCAKKy8vIGhpZ2ggcHJpb3JpdHkuIC0tIE5pZWxzIERla2tlciAoTEtFQiksIE1heSAyMDEwLgorIyAgZGVmaW5lIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisjZW5kaWYKKworLy8KKy8vIE9uIEFJWCB0aHJlYWQgc3VwcG9ydCBzZWVtcyB0byBiZSBpbmRpY2F0ZWQgYnkgX1RIUkVBRF9TQUZFOgorLy8KKyNpZmRlZiBfVEhSRUFEX1NBRkUKKyMgIGRlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgIklCTSBWaXN1YWwgQWdlIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19JQk1DUFBfXykKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBWaXN1YWwgYWdlIHByaW9yIHRvIHZlcnNpb24gNToKKyNpZiBfX0lCTUNQUF9fIDwgNTAwCisjZXJyb3IgIkNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQgb3IgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyAxMjEwOgorI2lmIChfX0lCTUNQUF9fID4gMTIxMCkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKKworLy8gU29tZSB2ZXJzaW9ucyBvZiB0aGUgY29tcGlsZXIgaGF2ZSBpc3N1ZXMgd2l0aCBkZWZhdWx0IGFyZ3VtZW50cyBvbiBwYXJ0aWFsIHNwZWNpYWxpemF0aW9ucworI2lmIF9fSUJNQ1BQX18gPD0gMTAxMAorI2RlZmluZSBCT09TVF9OT19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OX0lNUExJQ0lUX0RFRkFVTFRfQVJHUworI2VuZGlmCisKKy8vCisvLyBDKysweCBmZWF0dXJlcworLy8KKy8vICAgU2VlIGJvb3N0XGNvbmZpZ1xzdWZmaXguaHBwIGZvciBCT09TVF9OT19MT05HX0xPTkcKKy8vCisjaWYgISBfX0lCTUNQUF9BVVRPX1RZUEVERURVQ1RJT04KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNlbmRpZgorI2lmICEgX19JQk1DUFBfVVRGX0xJVEVSQUxfXworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNlbmRpZgorI2lmICEgX19JQk1DUFBfQ09OU1RFWFBSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZW5kaWYKKyNpZiAhIF9fSUJNQ1BQX0RFQ0xUWVBFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSEFTX0RFQ0xUWVBFCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2lmICEgX19JQk1DUFBfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2VuZGlmCisjaWYgISBfX0lCTUNQUF9FWFRFUk5fVEVNUExBVEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNlbmRpZgorI2lmICEgX19JQk1DUFBfVkFSSUFESUNfVEVNUExBVEVTCisvLyBub3QgZW5hYmxlZCBzZXBhcmF0ZWx5IGF0IHRoaXMgdGltZQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2VuZGlmCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisjaWYgISBfX0lCTUNQUF9SVkFMVUVfUkVGRVJFTkNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZW5kaWYKKyNpZiAhIF9fSUJNQ1BQX1NDT1BFRF9FTlVNCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNpZiAhIF9fSUJNQ1BQX1NUQVRJQ19BU1NFUlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjaWYgISBfX0lCTUNQUF9WQVJJQURJQ19URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNlbmRpZgorI2lmICEgX19DOTlfTUFDUk9fV0lUSF9WQV9BUkdTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3Zpc3VhbGMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvY29tcGlsZXIvdmlzdWFsYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdkMzAyNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3Zpc3VhbGMuaHBwCkBAIC0wLDAgKzEsMzI0IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGFyaW4gQWRsZXIgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMjAwMiAtIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKy8vCisvLyAgTWljcm9zb2Z0IFZpc3VhbCBDKysgY29tcGlsZXIgc2V0dXA6CisvLworLy8gIFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIHRoZSBjaGVja3MgaW4gdGhpcyBmaWxlLCBhcyBjb250cmFyeQorLy8gIHRvIHBvcHVsYXIgYmVsaWVmIHRoZXJlIGFyZSB2ZXJzaW9ucyB3aXRoIF9NU0NfVkVSIHdpdGggdGhlIGZpbmFsCisvLyAgZGlnaXQgbm9uLXplcm8gKG1haW5seSB0aGUgTUlQUyBjcm9zcyBjb21waWxlcikuCisvLworLy8gIFNvIHdlIGVpdGhlciB0ZXN0IF9NU0NfVkVSID49IFhYWFggb3IgZWxzZSBfTVNDX1ZFUiA8IFhYWFguCisvLyAgTm8gb3RoZXIgY29tcGFyaXNvbnMgKD09LCA+LCBvciA8PSkgYXJlIHNhZmUuCisvLworCisjZGVmaW5lIEJPT1NUX01TVkMgX01TQ19WRVIKKworLy8KKy8vIEhlbHBlciBtYWNybyBCT09TVF9NU1ZDX0ZVTExfVkVSIGZvciB1c2UgaW4gQm9vc3QgY29kZToKKy8vCisjaWYgX01TQ19GVUxMX1ZFUiA+IDEwMDAwMDAwMAorIyAgZGVmaW5lIEJPT1NUX01TVkNfRlVMTF9WRVIgX01TQ19GVUxMX1ZFUgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9NU1ZDX0ZVTExfVkVSIChfTVNDX0ZVTExfVkVSICogMTApCisjZW5kaWYKKworLy8gQXR0ZW1wdCB0byBzdXBwcmVzcyBWQzYgd2FybmluZ3MgYWJvdXQgdGhlIGxlbmd0aCBvZiBkZWNvcmF0ZWQgbmFtZXMgKG9ic29sZXRlKToKKyNwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ1MDMgKSAvLyB3YXJuaW5nOiBkZWNvcmF0ZWQgbmFtZSBsZW5ndGggZXhjZWVkZWQKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBWaXN1YWwgQysrIHByaW9yIHRvIHZlcnNpb24gNjoKKyNpZiBfTVNDX1ZFUiA8IDEyMDAKKyMgIGVycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKworI2lmIF9NU0NfVkVSIDwgMTMwMCAgLy8gMTIwMCA9PSBWQysrIDYuMCwgMTIwMC0xMjAyID09IGVWQysrNAorIyAgcHJhZ21hIHdhcm5pbmcoIGRpc2FibGUgOiA0Nzg2ICkgLy8gaWRlbnQgdHJ1bmMgdG8gJzI1NScgY2hhcnMgaW4gZGVidWcgaW5mbworIyAgZGVmaW5lIEJPT1NUX05PX0RFUEVOREVOVF9UWVBFU19JTl9URU1QTEFURV9WQUxVRV9QQVJBTUVURVJTCisjICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OX1NURF9OQU1FU1BBQ0UKKworIyAgaWYgX01TQ19WRVIgPT0gMTIwMgorIyAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1RZUEVJTkZPCisjICBlbmRpZgorCisjZW5kaWYKKworLy8vIFZpc3VhbCBTdHVkaW8gaGFzIG5vIGZlbnYuaAorI2RlZmluZSBCT09TVF9OT19GRU5WX0gKKworI2lmIChfTVNDX1ZFUiA8IDEzMTApICAvLyAxMzBYID09IFZDKysgNy4wCisKKyMgIGlmICFkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMpICAgICAgLy8gVkM3IGJ1ZyB3aXRoIC9aYQorIyAgICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMKKyMgIGVuZGlmCisKKyMgIGRlZmluZSBCT09TVF9OT19FWFBMSUNJVF9GVU5DVElPTl9URU1QTEFURV9BUkdVTUVOVFMKKyMgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorIyAgZGVmaW5lIEJPT1NUX05PX1BSSVZBVEVfSU5fQUdHUkVHQVRFCisjICBkZWZpbmUgQk9PU1RfTk9fQVJHVU1FTlRfREVQRU5ERU5UX0xPT0tVUAorIyAgZGVmaW5lIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyMgIGRlZmluZSBCT09TVF9OT19ERURVQ0VEX1RZUEVOQU1FCisjICBkZWZpbmUgQk9PU1RfTk9fVVNJTkdfREVDTEFSQVRJT05fT1ZFUkxPQURTX0ZST01fVFlQRU5BTUVfQkFTRQorCisvLyAgICBWQysrIDYvNyBoYXMgbWVtYmVyIHRlbXBsYXRlcyBidXQgdGhleSBoYXZlIG51bWVyb3VzIHByb2JsZW1zIGluY2x1ZGluZworLy8gICAgY2FzZXMgb2Ygc2lsZW50IGZhaWx1cmUsIHNvIGZvciBzYWZldHkgd2UgZGVmaW5lOgorIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMKKy8vICAgIEZvciBWQysrIGV4cGVydHMgd2lzaGluZyB0byBhdHRlbXB0IHdvcmthcm91bmRzLCB3ZSBkZWZpbmU6CisjICBkZWZpbmUgQk9PU1RfTVNWQzZfTUVNQkVSX1RFTVBMQVRFUworCisjICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICBkZWZpbmUgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworIyAgZGVmaW5lIEJPT1NUX05PX1VTSU5HX1RFTVBMQVRFCisjICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19TRklOQUUKKyMgIGRlZmluZSBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9URU1QTEFURV9QQVJBTUVURVJTCisjICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9UWVBFX1NQRUNJQUxJWkFUSU9OUworLy8gVE9ETzogd2hhdCB2ZXJzaW9uIGlzIG1lYW50IGhlcmU/IEhhdmUgdGhlcmUgcmVhbGx5IGJlZW4gYW55IGZpeGVzIGluIGNsIDEyLjAxIChhcyBlLmcuIHNoaXBwZWQgd2l0aCBlVkM0KT8KKyMgIGlmIChfTVNDX1ZFUiA+PSAxMzAwKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9GVU5DVElPTl9TUEVDSUFMSVpBVElPTlMKKyMgIGVuZGlmCisKKyNlbmRpZgorCisjaWYgX01TQ19WRVIgPCAxNDAwIAorLy8gYWx0aG91Z2ggYSBjb25mb3JtaW5nIHNpZ25hdHVyZSBmb3Igc3dwcmludCBleGlzdHMgaW4gVkM3LjEKKy8vIGl0IGFwcGVhcnMgbm90IHRvIGFjdHVhbGx5IHdvcms6CisjICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKy8vIE91ciBleHRlcm4gdGVtcGxhdGUgdGVzdHMgYWxzbyBmYWlsIGZvciB0aGlzIGNvbXBpbGVyOgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorLy8gVmFyaWFkaWMgbWFjcm9zIGRvIG5vdCBleGlzdCBmb3IgVkM3LjEgYW5kIGxvd2VyCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworI2lmIGRlZmluZWQoVU5ERVJfQ0UpCisvLyBXaW5kb3dzIENFIGRvZXMgbm90IGhhdmUgYSBjb25mb3JtaW5nIHNpZ25hdHVyZSBmb3Igc3dwcmludGYKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKyNpZiBfTVNDX1ZFUiA8IDE1MDAgIC8vIDE0MFggPT0gVkMrKyA4LjAKKyMgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworI2VuZGlmCisKKyNpZiBfTVNDX1ZFUiA8IDE2MDAgIC8vIDE1MFggPT0gVkMrKyA5LjAKKyAgIC8vIEEgYnVnIGluIFZDOToKKyMgIGRlZmluZSBCT09TVF9OT19BRExfQkFSUklFUgorI2VuZGlmCisKKworLy8gTVNWQyAoaW5jbHVkaW5nIHRoZSBsYXRlc3QgY2hlY2tlZCB2ZXJzaW9uKSBoYXMgbm90IHlldCBjb21wbGV0ZWx5IAorLy8gaW1wbGVtZW50ZWQgdmFsdWUtaW5pdGlhbGl6YXRpb24sIGFzIGlzIHJlcG9ydGVkOgorLy8gIlZDKysgZG9lcyBub3QgdmFsdWUtaW5pdGlhbGl6ZSBtZW1iZXJzIG9mIGRlcml2ZWQgY2xhc3NlcyB3aXRob3V0IAorLy8gdXNlci1kZWNsYXJlZCBjb25zdHJ1Y3RvciIsIHJlcG9ydGVkIGluIDIwMDkgYnkgU3lsdmVzdGVyIEhlc3A6CisvLyBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9WaXN1YWxTdHVkaW8vZmVlZGJhY2svZGV0YWlscy80ODQyOTUKKy8vICJQcmVzZW5jZSBvZiBjb3B5IGNvbnN0cnVjdG9yIGJyZWFrcyBtZW1iZXIgY2xhc3MgaW5pdGlhbGl6YXRpb24iLAorLy8gcmVwb3J0ZWQgaW4gMjAwOSBieSBBbGV4IFZha3VsZW5rbzoKKy8vIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL1Zpc3VhbFN0dWRpby9mZWVkYmFjay9kZXRhaWxzLzQ5OTYwNgorLy8gIlZhbHVlLWluaXRpYWxpemF0aW9uIGluIG5ldy1leHByZXNzaW9uIiwgcmVwb3J0ZWQgaW4gMjAwNSBieQorLy8gUGF2ZWwgS3V6bmV0c292IChNZXRhQ29tbXVuaWNhdGlvbnMgRW5naW5lZXJpbmcpOgorLy8gaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vVmlzdWFsU3R1ZGlvL2ZlZWRiYWNrL2RldGFpbHMvMTAwNzQ0CisvLyBTZWUgYWxzbzogaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L3ZhbHVlX2luaXQuaHRtI2NvbXBpbGVyX2lzc3VlcworLy8gKE5pZWxzIERla2tlciwgTEtFQiwgTWF5IDIwMTApCisjICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKworI2lmbmRlZiBfTkFUSVZFX1dDSEFSX1RfREVGSU5FRAorIyAgZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjZW5kaWYKKworI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkgfHwgZGVmaW5lZChVTkRFUl9DRSkKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKy8vIHdlIGhhdmUgVGhyZWFkRXggb3IgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUgdW5sZXNzIHdlJ3JlIHJ1bm5pbmcgV2luZG93c0NFCisjaWYgIWRlZmluZWQoX1dJTjMyX1dDRSkgJiYgIWRlZmluZWQoVU5ERVJfQ0UpCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBREVYCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFNZU1RFTVRJTUVBU0ZJTEVUSU1FCisjZW5kaWYKKworLy8gICAKKy8vIGNoZWNrIGZvciBleGNlcHRpb24gaGFuZGxpbmcgc3VwcG9ydDogICAKKyNpZiAhZGVmaW5lZChfQ1BQVU5XSU5EKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMgICAKKyNlbmRpZiAKKworLy8KKy8vIF9faW50NjQgc3VwcG9ydDoKKy8vCisjaWYgKF9NU0NfVkVSID49IDEyMDApCisjICAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorI2VuZGlmCisjaWYgKF9NU0NfVkVSID49IDEzMTApICYmIChkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykgfHwgKF9NU0NfVkVSID49IDE0MDApKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9OT19MT05HX0xPTkcKKyNlbmRpZgorI2lmIChfTVNDX1ZFUiA+PSAxNDAwKSAmJiAhZGVmaW5lZChfREVCVUcpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZW5kaWYKKy8vCisvLyBkaXNhYmxlIFdpbjMyIEFQSSdzIGlmIGNvbXBpbGVyIGV4dGVudGlvbnMgYXJlCisvLyB0dXJuZWQgb2ZmOgorLy8KKyNpZiAhZGVmaW5lZChfTVNDX0VYVEVOU0lPTlMpICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfV0lOMzIpCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9XSU4zMgorI2VuZGlmCisjaWYgIWRlZmluZWQoX0NQUFJUVEkpICYmICFkZWZpbmVkKEJPT1NUX05PX1JUVEkpCisjICBkZWZpbmUgQk9PU1RfTk9fUlRUSQorI2VuZGlmCisKKy8vCisvLyBUUjEgZmVhdHVyZXM6CisvLworI2lmIF9NU0NfVkVSID49IDE3MDAKKy8vICMgZGVmaW5lIEJPT1NUX0hBU19UUjFfSEFTSAkJCS8vIGRvbid0IGtub3cgaWYgdGhpcyBpcyB0cnVlIHlldC4KKy8vICMgZGVmaW5lIEJPT1NUX0hBU19UUjFfVFlQRV9UUkFJVFMJLy8gZG9uJ3Qga25vdyBpZiB0aGlzIGlzIHRydWUgeWV0LgorIyBkZWZpbmUgQk9PU1RfSEFTX1RSMV9VTk9SREVSRURfTUFQCisjIGRlZmluZSBCT09TVF9IQVNfVFIxX1VOT1JERVJFRF9TRVQKKyNlbmRpZgorCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisvLyAgIFNlZSBhYm92ZSBmb3IgQk9PU1RfTk9fTE9OR19MT05HCisKKy8vIEMrKyBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgVkMrKyAxMCAoYWthIDIwMTApCisvLworI2lmIF9NU0NfVkVSIDwgMTYwMAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNlbmRpZiAvLyBfTVNDX1ZFUiA8IDE2MDAKKworI2lmIF9NU0NfVkVSID49IDE2MDAKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyNlbmRpZgorCisvLyBDKysgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IFZDKysgMTEgKGFrYSAyMDEyKQorLy8KKyNpZiBfTVNDX1ZFUiA8IDE3MDAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNlbmRpZiAvLyBfTVNDX1ZFUiA8IDE3MDAKKworLy8gQysrMTEgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IFZDKysgMTEgKGFrYSAyMDEyKSBOb3ZlbWJlciAyMDEyIENUUAorLy8gQmVjYXVzZSB0aGUgQ1RQIGlzIHVuc3VwcG9ydGVkLCB1bnJlbGVhc2UsIGFuZCBvbmx5IGFscGhhIHF1YWxpdHksCisvLyBpdCBpcyBvbmx5IHN1cHBvcnRlZCBpZiBCT09TVF9NU1ZDX0VOQUJMRV8yMDEyX05PVl9DVFAgaXMgZGVmaW5lZC4KKy8vCisjaWYgX01TQ19GVUxMX1ZFUiA8IDE3MDA1MTAyNSB8fCAhZGVmaW5lZChCT09TVF9NU1ZDX0VOQUJMRV8yMDEyX05PVl9DVFApCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorI2VuZGlmCisKKy8vIEMrKzExIGZlYXR1cmVzIG5vdCBzdXBwb3J0ZWQgYnkgYW55IHZlcnNpb25zCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVVNFUl9ERUZJTkVEX0xJVEVSQUxTCisKKy8vCisvLyBwcmVmaXggYW5kIHN1ZmZpeCBoZWFkZXJzOgorLy8KKyNpZm5kZWYgQk9PU1RfQUJJX1BSRUZJWAorIyAgZGVmaW5lIEJPT1NUX0FCSV9QUkVGSVggIm5kbmJvb3N0L2NvbmZpZy9hYmkvbXN2Y19wcmVmaXguaHBwIgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0FCSV9TVUZGSVgKKyMgIGRlZmluZSBCT09TVF9BQklfU1VGRklYICJuZG5ib29zdC9jb25maWcvYWJpL21zdmNfc3VmZml4LmhwcCIKKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX0NPTVBJTEVSCisvLyBUT0RPOgorLy8gdGhlc2UgdGhpbmdzIGFyZSBtb3N0bHkgYm9ndXMuIDEyMDAgbWVhbnMgdmVyc2lvbiAxMi4wIG9mIHRoZSBjb21waWxlci4gVGhlIAorLy8gYXJ0aWZpY2lhbCB2ZXJzaW9ucyBhc3NpZ25lZCB0byB0aGVtIG9ubHkgcmVmZXIgdG8gdGhlIHZlcnNpb25zIG9mIHNvbWUgSURFCisvLyB0aGVzZSBjb21waWxlcnMgaGF2ZSBiZWVuIHNoaXBwZWQgd2l0aCwgYW5kIGV2ZW4gdGhhdCBpcyBub3QgYWxsIG9mIGl0LiBTb21lCisvLyB3ZXJlIHNoaXBwZWQgd2l0aCBmcmVlbHkgZG93bmxvYWRhYmxlIFNES3MsIG90aGVycyBhcyBjcm9zc2NvbXBpbGVycyBpbiBlVkMuCisvLyBJT1csIHlvdSBjYW4ndCB1c2UgdGhlc2UgJ3ZlcnNpb25zJyBpbiBhbnkgc2Vuc2libGUgd2F5LiBTb3JyeS4KKyMgaWYgZGVmaW5lZChVTkRFUl9DRSkKKyMgICBpZiBfTVNDX1ZFUiA8IDEyMDAKKyAgICAgIC8vIE5vdGU6IHRoZXNlIGFyZSBzbyBmYXIgb2ZmLCB0aGV5IGFyZSBub3QgcmVhbGx5IHN1cHBvcnRlZAorIyAgIGVsaWYgX01TQ19WRVIgPCAxMzAwIC8vIGVWQysrIDQgY29tZXMgd2l0aCAxMjAwLTEyMDIKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIGV2YzQuMAorIyAgIGVsaWYgX01TQ19WRVIgPCAxNDAwCisgICAgICAvLyBOb3RlOiBJJ20gbm90IGF3YXJlIG9mIGFueSBDRSBjb21waWxlciB3aXRoIHZlcnNpb24gMTN4eAorIyAgICAgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgICAgICBlcnJvciAiVW5rbm93biBFVkMrKyBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICAgICAgZWxzZQorIyAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJVbmtub3duIEVWQysrIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIpCisjICAgICAgZW5kaWYKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTUwMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gZXZjOAorIyAgIGVsaWYgX01TQ19WRVIgPCAxNjAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiBldmM5CisjICAgZWxpZiBfTVNDX1ZFUiA8IDE3MDAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIGV2YzEwCisjICAgZWxpZiBfTVNDX1ZFUiA8IDE4MDAgCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiBldmMxMSAKKyMgICBlbHNlCisjICAgICAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgICAgIGVycm9yICJVbmtub3duIEVWQysrIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgICAgICBlbHNlCisjICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIlVua25vd24gRVZDKysgY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIikKKyMgICAgICBlbmRpZgorIyAgIGVuZGlmCisjIGVsc2UKKyMgICBpZiBfTVNDX1ZFUiA8IDEyMDAKKyAgICAgIC8vIE5vdGU6IHRoZXNlIGFyZSBzbyBmYXIgb2ZmLCB0aGV5IGFyZSBub3QgcmVhbGx5IHN1cHBvcnRlZAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gNS4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDEzMDAKKyMgICAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gNi4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDEzMTAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIDcuMAorIyAgIGVsaWYgX01TQ19WRVIgPCAxNDAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA3LjEKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTUwMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOC4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDE2MDAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIDkuMAorIyAgIGVsaWYgX01TQ19WRVIgPCAxNzAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiAxMC4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDE4MDAgCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiAxMS4wIAorIyAgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIF9NU0NfVkVSCisjICAgZW5kaWYKKyMgZW5kaWYKKworIyAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJNaWNyb3NvZnQgVmlzdWFsIEMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04pCisjZW5kaWYKKworLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyAxNzAwIChWQzExLCBha2EgMjAxMSk6CisjaWYgKF9NU0NfVkVSID4gMTcwMCkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVsc2UKKyMgICAgIHByYWdtYSBtZXNzYWdlKCJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIpCisjICBlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9ub190cjEvY21hdGguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvbm9fdHIxL2NtYXRoLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODI2OGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvbm9fdHIxL2NtYXRoLmhwcApAQCAtMCwwICsxLDI4IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFRoZSBhaW0gb2YgdGhpcyBoZWFkZXIgaXMganVzdCB0byBpbmNsdWRlIDxjbWF0aD4gYnV0IHRvIGRvCisvLyBzbyBpbiBhIHdheSB0aGF0IGRvZXMgbm90IHJlc3VsdCBpbiByZWN1cnNpdmUgaW5jbHVzaW9uIG9mCisvLyB0aGUgQm9vc3QgVFIxIGNvbXBvbmVudHMgaWYgYm9vc3QvdHIxL3RyMS9jbWF0aCBpcyBpbiB0aGUKKy8vIGluY2x1ZGUgc2VhcmNoIHBhdGguICBXZSBoYXZlIHRvIGRvIHRoaXMgdG8gYXZvaWQgY2lyY3VsYXIKKy8vIGRlcGVuZGVuY2llczoKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0NNQVRICisjICBkZWZpbmUgQk9PU1RfQ09ORklHX0NNQVRICisKKyMgIGlmbmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTkZJR19OT19DTUFUSF9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyMgIGluY2x1ZGUgPGNtYXRoPgorCisjICBpZmRlZiBCT09TVF9DT05GSUdfTk9fQ01BVEhfUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9DT05GSUdfTk9fQ01BVEhfUkVDVVJTSU9OCisjICBlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS9jb21wbGV4LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS9jb21wbGV4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTIwMDkyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvbm9fdHIxL2NvbXBsZXguaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gVGhlIGFpbSBvZiB0aGlzIGhlYWRlciBpcyBqdXN0IHRvIGluY2x1ZGUgPGNvbXBsZXg+IGJ1dCB0byBkbworLy8gc28gaW4gYSB3YXkgdGhhdCBkb2VzIG5vdCByZXN1bHQgaW4gcmVjdXJzaXZlIGluY2x1c2lvbiBvZgorLy8gdGhlIEJvb3N0IFRSMSBjb21wb25lbnRzIGlmIGJvb3N0L3RyMS90cjEvY29tcGxleCBpcyBpbiB0aGUKKy8vIGluY2x1ZGUgc2VhcmNoIHBhdGguICBXZSBoYXZlIHRvIGRvIHRoaXMgdG8gYXZvaWQgY2lyY3VsYXIKKy8vIGRlcGVuZGVuY2llczoKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0NPTVBMRVgKKyMgIGRlZmluZSBCT09TVF9DT05GSUdfQ09NUExFWAorCisjICBpZm5kZWYgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIGRlZmluZSBCT09TVF9DT05GSUdfTk9fQ09NUExFWF9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyMgIGluY2x1ZGUgPGNvbXBsZXg+CisKKyMgIGlmZGVmIEJPT1NUX0NPTkZJR19OT19DT01QTEVYX1JFQ1VSU0lPTgorIyAgICAgdW5kZWYgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgdW5kZWYgQk9PU1RfQ09ORklHX05PX0NPTVBMRVhfUkVDVVJTSU9OCisjICBlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS9mdW5jdGlvbmFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS9mdW5jdGlvbmFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzk1ZWZjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvbm9fdHIxL2Z1bmN0aW9uYWwuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gVGhlIGFpbSBvZiB0aGlzIGhlYWRlciBpcyBqdXN0IHRvIGluY2x1ZGUgPGZ1bmN0aW9uYWw+IGJ1dCB0byBkbworLy8gc28gaW4gYSB3YXkgdGhhdCBkb2VzIG5vdCByZXN1bHQgaW4gcmVjdXJzaXZlIGluY2x1c2lvbiBvZgorLy8gdGhlIEJvb3N0IFRSMSBjb21wb25lbnRzIGlmIGJvb3N0L3RyMS90cjEvZnVuY3Rpb25hbCBpcyBpbiB0aGUKKy8vIGluY2x1ZGUgc2VhcmNoIHBhdGguICBXZSBoYXZlIHRvIGRvIHRoaXMgdG8gYXZvaWQgY2lyY3VsYXIKKy8vIGRlcGVuZGVuY2llczoKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0ZVTkNUSU9OQUwKKyMgIGRlZmluZSBCT09TVF9DT05GSUdfRlVOQ1RJT05BTAorCisjICBpZm5kZWYgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIGRlZmluZSBCT09TVF9DT05GSUdfTk9fRlVOQ1RJT05BTF9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyMgIGluY2x1ZGUgPGZ1bmN0aW9uYWw+CisKKyMgIGlmZGVmIEJPT1NUX0NPTkZJR19OT19GVU5DVElPTkFMX1JFQ1VSU0lPTgorIyAgICAgdW5kZWYgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgdW5kZWYgQk9PU1RfQ09ORklHX05PX0ZVTkNUSU9OQUxfUkVDVVJTSU9OCisjICBlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS9tZW1vcnkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvbm9fdHIxL21lbW9yeS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI1ZDIwOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS9tZW1vcnkuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gVGhlIGFpbSBvZiB0aGlzIGhlYWRlciBpcyBqdXN0IHRvIGluY2x1ZGUgPG1lbW9yeT4gYnV0IHRvIGRvCisvLyBzbyBpbiBhIHdheSB0aGF0IGRvZXMgbm90IHJlc3VsdCBpbiByZWN1cnNpdmUgaW5jbHVzaW9uIG9mCisvLyB0aGUgQm9vc3QgVFIxIGNvbXBvbmVudHMgaWYgYm9vc3QvdHIxL3RyMS9tZW1vcnkgaXMgaW4gdGhlCisvLyBpbmNsdWRlIHNlYXJjaCBwYXRoLiAgV2UgaGF2ZSB0byBkbyB0aGlzIHRvIGF2b2lkIGNpcmN1bGFyCisvLyBkZXBlbmRlbmNpZXM6CisvLworCisjaWZuZGVmIEJPT1NUX0NPTkZJR19NRU1PUlkKKyMgIGRlZmluZSBCT09TVF9DT05GSUdfTUVNT1JZCisKKyMgIGlmbmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTkZJR19OT19NRU1PUllfUkVDVVJTSU9OCisjICBlbmRpZgorCisjICBpbmNsdWRlIDxtZW1vcnk+CisKKyMgIGlmZGVmIEJPT1NUX0NPTkZJR19OT19NRU1PUllfUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9DT05GSUdfTk9fTUVNT1JZX1JFQ1VSU0lPTgorIyAgZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVhOGYxMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL25vX3RyMS91dGlsaXR5LmhwcApAQCAtMCwwICsxLDI4IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFRoZSBhaW0gb2YgdGhpcyBoZWFkZXIgaXMganVzdCB0byBpbmNsdWRlIDx1dGlsaXR5PiBidXQgdG8gZG8KKy8vIHNvIGluIGEgd2F5IHRoYXQgZG9lcyBub3QgcmVzdWx0IGluIHJlY3Vyc2l2ZSBpbmNsdXNpb24gb2YKKy8vIHRoZSBCb29zdCBUUjEgY29tcG9uZW50cyBpZiBib29zdC90cjEvdHIxL3V0aWxpdHkgaXMgaW4gdGhlCisvLyBpbmNsdWRlIHNlYXJjaCBwYXRoLiAgV2UgaGF2ZSB0byBkbyB0aGlzIHRvIGF2b2lkIGNpcmN1bGFyCisvLyBkZXBlbmRlbmNpZXM6CisvLworCisjaWZuZGVmIEJPT1NUX0NPTkZJR19VVElMSVRZCisjICBkZWZpbmUgQk9PU1RfQ09ORklHX1VUSUxJVFkKKworIyAgaWZuZGVmIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIGRlZmluZSBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfQ09ORklHX05PX1VUSUxJVFlfUkVDVVJTSU9OCisjICBlbmRpZgorCisjICBpbmNsdWRlIDx1dGlsaXR5PgorCisjICBpZmRlZiBCT09TVF9DT05GSUdfTk9fVVRJTElUWV9SRUNVUlNJT04KKyMgICAgIHVuZGVmIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIHVuZGVmIEJPT1NUX0NPTkZJR19OT19VVElMSVRZX1JFQ1VSU0lPTgorIyAgZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9haXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYWl4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzUyMWNmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYWl4LmhwcApAQCAtMCwwICsxLDMzIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIElCTS9BaXggc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIklCTSBBaXgiCisKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19ICisjZGVmaW5lIEJPT1NUX0hBU19OQU5PU0xFRVAKKyNkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUKKworLy8gVGhpcyBuZWVkcyBzdXBwb3J0IGluICJuZG5ib29zdC9jc3RkaW50LmhwcCIgZXhhY3RseSBsaWtlIEZyZWVCU0QuCisvLyBUaGlzIHBsYXRmb3JtIGhhcyBoZWFkZXIgbmFtZWQgPGludHR5cGVzLmg+IHdoaWNoIGluY2x1ZGVzIGFsbAorLy8gdGhlIHRoaW5ncyBuZWVkZWQuCisjZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorCisvLyBUaHJlYWRpbmcgQVBJJ3M6CisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9ERUxBWV9OUAorI2RlZmluZSBCT09TVF9IQVNfU0NIRURfWUlFTEQKKy8vI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9ZSUVMRAorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FtaWdhb3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYW1pZ2Fvcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRiY2Y0MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FtaWdhb3MuaHBwCkBAIC0wLDAgKzEsMTUgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIkFtaWdhT1MiCisKKyNkZWZpbmUgQk9PU1RfRElTQUJMRV9USFJFQURTCisjZGVmaW5lIEJPT1NUX05PX0NXQ0hBUgorI2RlZmluZSBCT09TVF9OT19TVERfV1NUUklORworI2RlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorIAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2Jlb3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNWZjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcApAQCAtMCwwICsxLDI2IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgQmVPUyBzcGVjaWZpYyBjb25maWcgb3B0aW9uczoKKworI2RlZmluZSBCT09TVF9QTEFURk9STSAiQmVPUyIKKworI2RlZmluZSBCT09TVF9OT19DV0NIQVIKKyNkZWZpbmUgQk9PU1RfTk9fQ1dDVFlQRQorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKworI2RlZmluZSBCT09TVF9IQVNfQkVUSFJFQURTCisKKyNpZm5kZWYgQk9PU1RfRElTQUJMRV9USFJFQURTCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisgCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYnNkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2JzZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUxMGQyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2JzZC5ocHAKQEAgLTAsMCArMSw4NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IERhcmluIEFkbGVyIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgZ2VuZXJpYyBCU0QgY29uZmlnIG9wdGlvbnM6CisKKyNpZiAhZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19OZXRCU0RfXykgJiYgIWRlZmluZWQoX19PcGVuQlNEX18pICYmICFkZWZpbmVkKF9fRHJhZ29uRmx5X18pCisjZXJyb3IgIlRoaXMgcGxhdGZvcm0gaXMgbm90IEJTRCIKKyNlbmRpZgorCisjaWZkZWYgX19GcmVlQlNEX18KKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIkZyZWVCU0QgIiBCT09TVF9TVFJJTkdJWkUoX19GcmVlQlNEX18pCisjZWxpZiBkZWZpbmVkKF9fTmV0QlNEX18pCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJOZXRCU0QgIiBCT09TVF9TVFJJTkdJWkUoX19OZXRCU0RfXykKKyNlbGlmIGRlZmluZWQoX19PcGVuQlNEX18pCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJPcGVuQlNEICIgQk9PU1RfU1RSSU5HSVpFKF9fT3BlbkJTRF9fKQorI2VsaWYgZGVmaW5lZChfX0RyYWdvbkZseV9fKQorI2RlZmluZSBCT09TVF9QTEFURk9STSAiRHJhZ29uRmx5ICIgQk9PU1RfU1RSSU5HSVpFKF9fRHJhZ29uRmx5X18pCisjZW5kaWYKKworLy8KKy8vIGlzIHRoaXMgdGhlIGNvcnJlY3QgdmVyc2lvbiBjaGVjaz8KKy8vIEZyZWVCU0QgaGFzIDxubF90eXBlcy5oPiBidXQgZG9lcyBub3QKKy8vIGFkdmVydGlzZSB0aGUgZmFjdCBpbiA8dW5pc3RkLmg+OgorLy8KKyNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgKF9fRnJlZUJTRF9fID49IDMpKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCisjICBkZWZpbmUgQk9PU1RfSEFTX05MX1RZUEVTX0gKKyNlbmRpZgorCisvLworLy8gRnJlZUJTRCAzLnggaGFzIHB0aHJlYWRzIHN1cHBvcnQsIGJ1dCBkZWZpbmVzIF9QT1NJWF9USFJFQURTIGluIDxwdGhyZWFkLmg+CisvLyBhbmQgbm90IGluIDx1bmlzdGQuaD4KKy8vCisjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pICYmIChfX0ZyZWVCU0RfXyA8PSAzKSlcCisgICB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pIAorIyAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworI2VuZGlmCisKKy8vCisvLyBObyB3aWRlIGNoYXJhY3RlciBzdXBwb3J0IGluIHRoZSBCU0QgaGVhZGVyIGZpbGVzOgorLy8KKyNpZiBkZWZpbmVkKF9fTmV0QlNEX18pCisjZGVmaW5lIF9fTmV0QlNEX0dDQ19fIChfX0dOVUNfXyAgICAgICAgICogMTAwMDAwMCBcCisgICAgICAgICAgICAgICAgICAgICAgICsgX19HTlVDX01JTk9SX18gKiAgICAxMDAwIFwKKyAgICAgICAgICAgICAgICAgICAgICAgKyBfX0dOVUNfUEFUQ0hMRVZFTF9fKQorLy8gWFhYIC0gdGhlIGZvbGxvd2luZyBpcyByZXF1aXJlZCB1bnRpbCBjKytjb25maWcuaAorLy8gICAgICAgZGVmaW5lcyBfR0xJQkNYWF9IQVZFX1NXUFJJTlRGIGFuZCBmcmllbmRzCisvLyAgICAgICBvciB0aGUgcHJlcHJvY2Vzc29yIGNvbmRpdGlvbmFscyBhcmUgcmVtb3ZlZAorLy8gICAgICAgZnJvbSB0aGUgY3djaGFyIGhlYWRlci4KKyNkZWZpbmUgX0dMSUJDWFhfSEFWRV9TV1BSSU5URiAxCisjZW5kaWYKKworI2lmICEoKGRlZmluZWQoX19GcmVlQlNEX18pICYmIChfX0ZyZWVCU0RfXyA+PSA1KSkgXAorICAgICAgfHwgKGRlZmluZWQoX19OZXRCU0RfR0NDX18pICYmIChfX05ldEJTRF9HQ0NfXyA+PSAyMDk1MDAzKSkgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSkKKyMgIGRlZmluZSBCT09TVF9OT19DV0NIQVIKKyNlbmRpZgorLy8KKy8vIFRoZSBCU0QgPGN0eXBlLmg+IGhhcyBtYWNyb3Mgb25seSwgbm8gZnVuY3Rpb25zOgorLy8KKyNpZiAhZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKQorIyAgZGVmaW5lIEJPT1NUX05PX0NUWVBFX0ZVTkNUSU9OUworI2VuZGlmCisKKy8vCisvLyB0aHJlYWQgQVBJJ3Mgbm90IGF1dG8gZGV0ZWN0ZWQ6CisvLworI2RlZmluZSBCT09TVF9IQVNfU0NIRURfWUlFTEQKKyNkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorI2RlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFCisjZGVmaW5lIEJPT1NUX0hBU19TSUdBQ1RJT04KKworLy8gYm9pbGVycGxhdGUgY29kZToKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vY3JheS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI1MDAzZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwCkBAIC0wLDAgKzEsMTggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDExLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIFNHSSBJcml4IHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJDcmF5IgorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vY3lnd2luLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2N5Z3dpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZlZGEzYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2N5Z3dpbi5ocHAKQEAgLTAsMCArMSw1OCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBjeWd3aW4gc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIkN5Z3dpbiIKKyNkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9ICisjZGVmaW5lIEJPT1NUX0hBU19MT0cxUAorI2RlZmluZSBCT09TVF9IQVNfRVhQTTEKKworLy8KKy8vIFRocmVhZGluZyBBUEk6CisvLyBTZWUgaWYgd2UgaGF2ZSBQT1NJWCB0aHJlYWRzLCBpZiB3ZSBkbyB1c2UgdGhlbSwgb3RoZXJ3aXNlCisvLyByZXZlcnQgdG8gbmF0aXZlIFdpbiB0aHJlYWRzLgorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpZiBkZWZpbmVkKF9QT1NJWF9USFJFQURTKSAmJiAoX1BPU0lYX1RIUkVBRFMrMCA+PSAwKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfV0lOVEhSRUFEUykKKyMgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMKKyMgIGRlZmluZSBCT09TVF9IQVNfU0NIRURfWUlFTEQKKyMgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyMgIGRlZmluZSBCT09TVF9IQVNfU0lHQUNUSU9OCisjZWxzZQorIyAgaWYgIWRlZmluZWQoQk9PU1RfSEFTX1dJTlRIUkVBRFMpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1dJTlRIUkVBRFMKKyMgIGVuZGlmCisjICBkZWZpbmUgQk9PU1RfSEFTX0ZUSU1FCisjZW5kaWYKKworLy8KKy8vIGZpbmQgb3V0IGlmIHdlIGhhdmUgYSBzdGRpbnQuaCwgdGhlcmUgc2hvdWxkIGJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzOgorLy8KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpZmRlZiBfU1RESU5UX0gKKyNkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjZW5kaWYKKworLy8vIEN5Z3dpbiBoYXMgbm8gZmVudi5oCisjZGVmaW5lIEJPT1NUX05PX0ZFTlZfSAorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisKKy8vCisvLyBDeWd3aW4gbGllcyBhYm91dCBYU0kgY29uZm9ybWFuY2UsIHRoZXJlIGlzIG5vIG5sX3R5cGVzLmg6CisvLworI2lmZGVmIEJPT1NUX0hBU19OTF9UWVBFU19ICisjICB1bmRlZiBCT09TVF9IQVNfTkxfVFlQRVNfSAorI2VuZGlmCisgCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2hwdXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaHB1eC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M3MTdjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2hwdXguaHBwCkBAIC0wLDAgKzEsODcgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IFRvb24gS25hcGVuIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgQm9yaXMgR3ViZW5rbyAyMDA2IC0gMjAwNy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBocHV4IHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJIUC1VWCIKKworLy8gSW4gcHJpbmNpcGxlLCBIUC1VWCBoYXMgYSBuaWNlIDxzdGRpbnQuaD4gdW5kZXIgdGhlIG5hbWUgPGludHR5cGVzLmg+CisvLyBIb3dldmVyLCBpdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9ibGVtOgorLy8gVXNlIG9mIFVJTlQzMl9DKDApIHJlc3VsdHMgaW4gIjB1IGwiIGZvciB0aGUgcHJlcHJvY2Vzc2VkIHNvdXJjZQorLy8gKHZlcmlmeWFibGUgd2l0aCBnY2MgMi45NS4zKQorI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gMykpIHx8IGRlZmluZWQoX19IUF9hQ0MpCisjICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjZW5kaWYKKworI2lmICEoZGVmaW5lZChfX0hQX2FDQykgfHwgIWRlZmluZWQoX0lOQ0xVREVfX1NURENfQTFfU09VUkNFKSkKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisjaWYgZGVmaW5lZChfX0hQX2FDQykgJiYgIWRlZmluZWQoX0lOQ0xVREVfX1NURENfQTFfU09VUkNFKQorIyAgZGVmaW5lIEJPT1NUX05PX0NXQ1RZUEUKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgIGlmIChfX0dOVUNfXyA8IDMpIHx8ICgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fIDwgMykpCisgICAgICAvLyBHTlUgQyBvbiBIUC1VWCBkb2VzIG5vdCBzdXBwb3J0IHRocmVhZHMgKGNoZWNrZWQgdXAgdG8gZ2NjIDMuMykKKyMgICAgIGRlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMKKyMgIGVsaWYgIWRlZmluZWQoQk9PU1RfRElTQUJMRV9USFJFQURTKQorICAgICAgLy8gdGhyZWFkcyBzdXBwb3J0ZWQgZnJvbSBnY2MtMy4zIG9ud2FyZHM6CisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMKKyMgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9fSFBfYUNDKSAmJiAhZGVmaW5lZChCT09TVF9ESVNBQkxFX1RIUkVBRFMpCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURTCisjZW5kaWYKKworLy8gYm9pbGVycGxhdGUgY29kZToKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworLy8gdGhlIGZvbGxvd2luZyBhcmUgYWx3YXlzIGF2YWlsYWJsZToKKyNpZm5kZWYgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorIyAgZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfU0NIRURfWUlFTEQKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFCisjICAgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19OTF9UWVBFU19ICisjICAgIGRlZmluZSBCT09TVF9IQVNfTkxfVFlQRVNfSAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19OQU5PU0xFRVAKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19OQU5PU0xFRVAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICAgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSEFTX0RJUkVOVF9ICisjICAgIGRlZmluZSBCT09TVF9IQVNfRElSRU5UX0gKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfQ0xPQ0tfR0VUVElNRQorIyAgICBkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfU0lHQUNUSU9OCisjICBkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19OUlZPIAorIyAgaWZuZGVmIF9fcGFyaXNjCisjICAgIGRlZmluZSBCT09TVF9IQVNfTlJWTworIyAgZW5kaWYKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfTE9HMVAgCisjICBkZWZpbmUgQk9PU1RfSEFTX0xPRzFQCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSEFTX0VYUE0xCisjICBkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaXJpeC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9pcml4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDY0MTI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vaXJpeC5ocHAKQEAgLTAsMCArMSwzMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgU0dJIElyaXggc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIlNHSSBJcml4IgorCisjZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGIAorLy8KKy8vIHRoZXNlIGFyZSBub3QgYXV0byBkZXRlY3RlZCBieSBQT1NJWCBmZWF0dXJlIHRlc3RzOgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorCisjaWZkZWYgX19HTlVDX18KKyAgIC8vIEdOVSBDIG9uIElSSVggZG9lcyBub3Qgc3VwcG9ydCB0aHJlYWRzIChjaGVja2VkIHVwIHRvIGdjYyAzLjMpCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9USFJFQURTCisjZW5kaWYKKworLy8gYm9pbGVycGxhdGUgY29kZToKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2xpbnV4LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2xpbnV4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTc2OWFkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbGludXguaHBwCkBAIC0wLDAgKzEsMTAzIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMSAtIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIGxpbnV4IHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJsaW51eCIKKworLy8gbWFrZSBzdXJlIHdlIGhhdmUgX19HTElCQ19QUkVSRVEgaWYgYXZhaWxhYmxlIGF0IGFsbAorI2lmZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNlbHNlCisjaW5jbHVkZSA8c3RkbGliLmg+CisjZW5kaWYKKworLy8KKy8vIDxzdGRpbnQuaD4gYWRkZWQgdG8gZ2xpYmMgMi4xLjEKKy8vIFdlIGNhbiBvbmx5IHRlc3QgZm9yIDIuMSB0aG91Z2g6CisvLworI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAoKF9fR0xJQkNfXyA+IDIpIHx8ICgoX19HTElCQ19fID09IDIpICYmIChfX0dMSUJDX01JTk9SX18gPj0gMSkpKQorICAgLy8gPHN0ZGludC5oPiBkZWZpbmVzIGludDY0X3QgdW5jb25kaXRpb25hbGx5LCBidXQgPHN5cy90eXBlcy5oPiBkZWZpbmVzCisgICAvLyBpbnQ2NF90IG9ubHkgaWYgX19HTlVDX18uICBUaHVzLCBhc3N1bWUgYSBmdWxseSB1c2FibGUgPHN0ZGludC5oPgorICAgLy8gb25seSB3aGVuIHVzaW5nIEdDQy4KKyMgIGlmIGRlZmluZWQgX19HTlVDX18KKyMgICAgZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0xJQkNPTU9fXykKKyAgIC8vCisgICAvLyBjb21vIG9uIGxpbnV4IGRvZXNuJ3QgaGF2ZSBzdGQ6OiBjIGZ1bmN0aW9uczoKKyAgIC8vIE5PVEU6IHZlcnNpb25zIG9mIGxpYmNvbW8gcHJpb3IgdG8gYmV0YTI4IGhhdmUgb2N0YWwgdmVyc2lvbiBudW1iZXJpbmcsCisgICAvLyBlLmcuIHZlcnNpb24gMjUgaXMgMjEgKGRlYykKKyAgIC8vCisjICBpZiBfX0xJQkNPTU9fVkVSU0lPTl9fIDw9IDIwCisjICAgIGRlZmluZSBCT09TVF9OT19TVERDX05BTUVTUEFDRQorIyAgZW5kaWYKKworIyAgaWYgX19MSUJDT01PX1ZFUlNJT05fXyA8PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyMgIGVuZGlmCisKKyNlbmRpZgorCisvLworLy8gSWYgZ2xpYmMgaXMgcGFzdCB2ZXJzaW9uIDIgdGhlbiB3ZSBkZWZpbml0ZWx5IGhhdmUKKy8vIGdldHRpbWVvZmRheSwgZWFybGllciB2ZXJzaW9ucyBtYXkgb3IgbWF5IG5vdCBoYXZlIGl0OgorLy8KKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgKF9fR0xJQkNfXyA+PSAyKQorIyAgZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyNlbmRpZgorCisjaWZkZWYgX19VU0VfUE9TSVgxOTkzMDkKKyMgIGRlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fR0xJQkNfUFJFUkVRKQorLy8gX19HTElCQ19QUkVSRVEgaXMgYXZhaWxhYmxlIHNpbmNlIDIuMS4yCisKKyAgIC8vIHN3cHJpbnRmIGlzIGF2YWlsYWJsZSBzaW5jZSBnbGliYyAyLjIuMAorIyAgaWYgIV9fR0xJQkNfUFJFUkVRKDIsMikgfHwgKCFkZWZpbmVkKF9fVVNFX0lTT0M5OSkgJiYgIWRlZmluZWQoX19VU0VfVU5JWDk4KSkKKyMgICAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjICBlbmRpZgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX1lJRUxECisKKyNpZm5kZWYgX19HTlVDX18KKy8vCisvLyBpZiB0aGUgY29tcGlsZXIgaXMgbm90IGdjYyB3ZSBzdGlsbCBuZWVkIHRvIGJlIGFibGUgdG8gcGFyc2UKKy8vIHRoZSBHTlUgc3lzdGVtIGhlYWRlcnMsIHNvbWUgb2Ygd2hpY2ggKG1haW5seSA8c3RkaW50Lmg+KQorLy8gdXNlIEdOVSBzcGVjaWZpYyBleHRlbnNpb25zOgorLy8KKyMgIGlmbmRlZiBfX2V4dGVuc2lvbl9fCisjICAgICBkZWZpbmUgX19leHRlbnNpb25fXworIyAgZW5kaWYKKyMgIGlmbmRlZiBfX2NvbnN0X18KKyMgICAgIGRlZmluZSBfX2NvbnN0X18gY29uc3QKKyMgIGVuZGlmCisjICBpZm5kZWYgX192b2xhdGlsZV9fCisjICAgICBkZWZpbmUgX192b2xhdGlsZV9fIHZvbGF0aWxlCisjICBlbmRpZgorIyAgaWZuZGVmIF9fc2lnbmVkX18KKyMgICAgIGRlZmluZSBfX3NpZ25lZF9fIHNpZ25lZAorIyAgZW5kaWYKKyMgIGlmbmRlZiBfX3R5cGVvZl9fCisjICAgICBkZWZpbmUgX190eXBlb2ZfXyB0eXBlb2YKKyMgIGVuZGlmCisjICBpZm5kZWYgX19pbmxpbmVfXworIyAgICAgZGVmaW5lIF9faW5saW5lX18gaW5saW5lCisjICBlbmRpZgorI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbWFjb3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbWFjb3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NTU0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9tYWNvcy5ocHAKQEAgLTAsMCArMSw4NyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IERhcmluIEFkbGVyIDIwMDEgLSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IEJpbGwgS2VtcGYgMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgTWFjIE9TIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJNYWMgT1MiCisKKyNpZiBfX01BQ0hfXyAmJiAhZGVmaW5lZChfTVNMX1VTSU5HX01TTF9DKQorCisvLyBVc2luZyB0aGUgTWFjIE9TIFggc3lzdGVtIEJTRC1zdHlsZSBDIGxpYnJhcnkuCisKKyMgIGlmbmRlZiBCT09TVF9IQVNfVU5JU1REX0gKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorIyAgZW5kaWYKKy8vCisvLyBCZWdpbiBieSBpbmNsdWRpbmcgb3VyIGJvaWxlcnBsYXRlIGNvZGUgZm9yIFBPU0lYCisvLyBmZWF0dXJlIGRldGVjdGlvbiwgdGhpcyBpcyBzYWZlIGV2ZW4gd2hlbiB1c2luZworLy8gdGhlIE1TTCBhcyBNZXRyb3dlcmtzIHN1cHBseSB0aGVpciBvd24gPHVuaXN0ZC5oPgorLy8gdG8gcmVwbGFjZSB0aGUgcGxhdGZvcm0tbmF0aXZlIEJTRCBvbmUuIEcrKyB1c2VycworLy8gc2hvdWxkIGFsc28gYWx3YXlzIGJlIGFibGUgdG8gZG8gdGhpcyBvbiBNYXhPUyBYLgorLy8KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisjICBpZm5kZWYgQk9PU1RfSEFTX1NURElOVF9ICisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICBlbmRpZgorCisvLworLy8gQlNEIHJ1bnRpbWUgaGFzIHB0aHJlYWRzLCBzaWdhY3Rpb24sIHNjaGVkX3lpZWxkIGFuZCBnZXR0aW1lb2ZkYXksCisvLyBvZiB0aGVzZSBvbmx5IHB0aHJlYWRzIGFyZSBhZHZlcnRpc2VkIGluIDx1bmlzdGQuaD4sIHNvIHNldCB0aGUgCisvLyBvdGhlciBvcHRpb25zIGV4cGxpY2l0bHk6CisvLworIyAgZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyMgIGRlZmluZSBCT09TVF9IQVNfU0lHQUNUSU9OCisKKyMgIGlmIChfX0dOVUNfXyA8IDMpICYmICFkZWZpbmVkKCBfX0FQUExFX0NDX18pCisKKy8vIEdDQyBzdHJhbmdlICJpZ25vcmUgc3RkIiBtb2RlIHdvcmtzIGJldHRlciBpZiB5b3UgcHJldGVuZCBldmVyeXRoaW5nCisvLyBpcyBpbiB0aGUgc3RkIG5hbWVzcGFjZSwgZm9yIHRoZSBtb3N0IHBhcnQuCisKKyMgICAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICBlbmRpZgorCisjICBpZiAoX19HTlVDX18gPT0gNCkKKworLy8gQm90aCBnY2MgYW5kIGludGVsIHJlcXVpcmUgdGhlc2UuICAKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFCisjICAgIGRlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisKKyMgIGVuZGlmCisKKyNlbHNlCisKKy8vIFVzaW5nIHRoZSBNU0wgQyBsaWJyYXJ5LgorCisvLyBXZSB3aWxsIGV2ZW50dWFsbHkgc3VwcG9ydCB0aHJlYWRzIGluIG5vbi1DYXJib24gYnVpbGRzLCBidXQgd2UgZG8KKy8vIG5vdCBzdXBwb3J0IHRoaXMgeWV0LgorIyAgaWYgKCBkZWZpbmVkKFRBUkdFVF9BUElfTUFDX0NBUkJPTikgJiYgVEFSR0VUX0FQSV9NQUNfQ0FSQk9OICkgfHwgKCBkZWZpbmVkKFRBUkdFVF9DQVJCT04pICYmIFRBUkdFVF9DQVJCT04gKQorCisjICBpZiAhZGVmaW5lZChCT09TVF9IQVNfUFRIUkVBRFMpCisvLyBNUFRhc2tzIHN1cHBvcnQgaXMgZGVwcmVjYXRlZC9yZW1vdmVkIGZyb20gQm9vc3Q6CisvLyMgICAgZGVmaW5lIEJPT1NUX0hBU19NUFRBU0tTCisjICBlbGlmICggX19kZXN0X29zID09IF9fbWFjX29zX3ggKQorLy8gV2UgYXJlIGRvaW5nIGEgQ2FyYm9uL01hY2gtTy9NU0wgYnVpbGQgd2hpY2ggaGFzIHB0aHJlYWRzLCBidXQgb25seSB0aGUKKy8vIGdldHRpbWVvZmRheSBhbmQgbm8gcG9zaXguCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorIyAgZW5kaWYKKworI2lmZGVmIEJPT1NUX0hBU19QVEhSRUFEUworIyAgZGVmaW5lIEJPT1NUX0hBU19USFJFQURTCisjZW5kaWYKKworLy8gVGhlIHJlbW90ZSBjYWxsIG1hbmFnZXIgZGVwZW5kcyBvbiB0aGlzLgorIyAgICBkZWZpbmUgQk9PU1RfQklORF9FTkFCTEVfUEFTQ0FMCisKKyMgIGVuZGlmCisKKyNlbmRpZgorCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vcW54bnRvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3FueG50by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhiNTliZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3FueG50by5ocHAKQEAgLTAsMCArMSwzMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSmltIERvdWdsYXMgMjAwNS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgUU5YIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJRTlgiCisKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworLy8gUU5YIGNsYWltcyBYT3BlbiB2ZXJzaW9uIDUgY29tcGF0aWJpbGl0eSwgYnV0IGRvZXNuJ3QgaGF2ZSBhbiBubF90eXBlcy5oCisvLyBvciBsb2cxcCBhbmQgZXhwbTE6CisjdW5kZWYgIEJPT1NUX0hBU19OTF9UWVBFU19ICisjdW5kZWYgIEJPT1NUX0hBU19MT0cxUAorI3VuZGVmICBCT09TVF9IQVNfRVhQTTEKKworI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMKKyNkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKworI2RlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjZGVmaW5lIEJPT1NUX0hBU19DTE9DS19HRVRUSU1FCisjZGVmaW5lIEJPT1NUX0hBU19OQU5PU0xFRVAKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zb2xhcmlzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3NvbGFyaXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZTExNTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zb2xhcmlzLmhwcApAQCAtMCwwICsxLDI4IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgc3VuIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJTdW4gU29sYXJpcyIKKworI2RlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisKKy8vCisvLyBwdGhyZWFkcyBkb24ndCBhY3R1YWxseSB3b3JrIHdpdGggZ2NjIHVubGVzcyBfUFRIUkVBRFMgaXMgZGVmaW5lZDoKKy8vCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgZGVmaW5lZChfUE9TSVhfVEhSRUFEUykgJiYgIWRlZmluZWQoX1BUSFJFQURTKQorIyB1bmRlZiBCT09TVF9IQVNfUFRIUkVBRFMKKyNlbmRpZgorCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zeW1iaWFuLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3N5bWJpYW4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjY2RiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zeW1iaWFuLmhwcApAQCAtMCwwICsxLDk3IEBACisvLyAgKEMpIENvcHlyaWdodCBZdXJpeSBLcmFzbm9zY2hlayAyMDA5LiAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgc3ltYmlhbiBzcGVjaWZpYyBjb25maWcgb3B0aW9uczoKKworCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJTeW1iaWFuIgorI2RlZmluZSBCT09TVF9TWU1CSUFOIDEKKworCisjaWYgZGVmaW5lZChfX1M2MF8zWF9fKQorLy8gT3BlbiBDIC8gQysrIHBsdWdpbiB3YXMgaW50cm9kdXNlZCBpbiB0aGlzIFNESywgZWFybGllciB2ZXJzaW9ucyBkb24ndCBoYXZlIENSVCAvIFNUTAorIyAgZGVmaW5lIEJPT1NUX1M2MF8zcmRfRURJVElPTl9GUDJfT1JfTEFURVJfU0RLCisvLyBtYWtlIHN1cmUgd2UgaGF2ZSBfX0dMSUJDX1BSRVJFUSBpZiBhdmFpbGFibGUgYXQgYWxsCisjaWZkZWYgX19jcGx1c3BsdXMKKyNpbmNsdWRlIDxjc3RkbGliPgorI2Vsc2UKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZi8vIGJvaWxlcnBsYXRlIGNvZGU6CisjICBkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorLy8gUzYwIFNESyBkZWZpbmVzIF9QT1NJWF9WRVJTSU9OIGFzIFBPU0lYLjEKKyMgIGlmbmRlZiBCT09TVF9IQVNfU1RESU5UX0gKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICAgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICBlbmRpZgorIyAgaWZuZGVmIEJPT1NUX0hBU19ESVJFTlRfSAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9ICisjICBlbmRpZgorIyAgaWZuZGVmIEJPT1NUX0hBU19TSUdBQ1RJT04KKyMgICAgZGVmaW5lIEJPT1NUX0hBU19TSUdBQ1RJT04KKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfSEFTX1BUSFJFQURTCisjICAgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfSEFTX05BTk9TTEVFUAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfU0NIRURfWUlFTEQKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfSEFTX0xPRzFQCisjICAgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfSEFTX0VYUE0xCisjICAgIGRlZmluZSBCT09TVF9IQVNfRVhQTTEKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfUE9TSVhfQVBJCisjICAgIGRlZmluZSBCT09TVF9QT1NJWF9BUEkKKyMgIGVuZGlmCisvLyBlbmRpYW5lc3Mgc3VwcG9ydAorIyAgaW5jbHVkZSA8c3lzL2VuZGlhbi5oPgorLy8gU3ltYmlhbiBTREsgcHJvdmlkZXMgX0JZVEVfT1JERVIgaW5zdGVhZCBvZiBfX0JZVEVfT1JERVIKKyMgIGlmbmRlZiBfX0xJVFRMRV9FTkRJQU4KKyMgICAgaWZkZWYgX0xJVFRMRV9FTkRJQU4KKyMgICAgICBkZWZpbmUgX19MSVRUTEVfRU5ESUFOIF9MSVRUTEVfRU5ESUFOCisjICAgIGVsc2UKKyMgICAgICBkZWZpbmUgX19MSVRUTEVfRU5ESUFOIDEyMzQKKyMgICAgZW5kaWYKKyMgIGVuZGlmCisjICBpZm5kZWYgX19CSUdfRU5ESUFOCisjICAgIGlmZGVmIF9CSUdfRU5ESUFOCisjICAgICAgZGVmaW5lIF9fQklHX0VORElBTiBfQklHX0VORElBTgorIyAgICBlbHNlCisjICAgICAgZGVmaW5lIF9fQklHX0VORElBTiA0MzIxCisjICAgIGVuZGlmCisjICBlbmRpZgorIyAgaWZuZGVmIF9fQllURV9PUkRFUgorIyAgICBkZWZpbmUgX19CWVRFX09SREVSIF9fTElUVExFX0VORElBTiAvLyBTeW1iaWFuIGlzIExFCisjICBlbmRpZgorLy8gS25vd24gbGltaXRhdGlvbnMKKyMgIGRlZmluZSBCT09TVF9BU0lPX0RJU0FCTEVfU0VSSUFMX1BPUlQKKyMgIGRlZmluZSBCT09TVF9EQVRFX1RJTUVfTk9fTE9DQUxFCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJJTkcKKyMgIGRlZmluZSBCT09TVF9FWENFUFRJT05fRElTQUJMRQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKworI2Vsc2UgLy8gVE9ETzogTW9yZSBwbGF0Zm9ybSBzdXBwb3J0IGUuZy4gVUlRCisjICBlcnJvciAiVW5zdXBwb3RlZCBTeW1iaWFuIFNESyIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX1dJTlNDV19fKSAmJiAhZGVmaW5lZChCT09TVF9ESVNBQkxFX1dJTjMyKQorIyAgZGVmaW5lIEJPT1NUX0RJU0FCTEVfV0lOMzIgLy8gd2luc2N3IGRlZmluZXMgV0lOMzIgbWFjcm8KKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Ztcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS92bXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MGVmY2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS92bXMuaHBwCkBAIC0wLDAgKzEsMjUgQEAKKy8vICAoQykgQ29weXJpZ2h0IEFydHlvbSBCZWlsaXMgMjAxMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlICAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAKKworI2lmbmRlZiBCT09TVF9DT05GSUdfUExBVEZPUk1fVk1TX0hQUCAKKyNkZWZpbmUgQk9PU1RfQ09ORklHX1BMQVRGT1JNX1ZNU19IUFAgCisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIk9wZW5WTVMiIAorCisjdW5kZWYgIEJPT1NUX0hBU19TVERJTlRfSCAKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9IIAorI2RlZmluZSBCT09TVF9IQVNfTkxfVFlQRVNfSCAKKyNkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWSAKKyNkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9IIAorI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMgCisjZGVmaW5lIEJPT1NUX0hBU19OQU5PU0xFRVAgCisjZGVmaW5lIEJPT1NUX0hBU19DTE9DS19HRVRUSU1FIAorI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRSAKKyNkZWZpbmUgQk9PU1RfSEFTX0xPRzFQIAorI2RlZmluZSBCT09TVF9IQVNfRVhQTTEgCisjZGVmaW5lIEJPT1NUX0hBU19USFJFQURTIAorI3VuZGVmICBCT09TVF9IQVNfU0NIRURfWUlFTEQgCisKKyNlbmRpZiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Z4d29ya3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcGxhdGZvcm0vdnh3b3Jrcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk0YzMyOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Z4d29ya3MuaHBwCkBAIC0wLDAgKzEsMzY5IEBACisvLyAgKEMpIENvcHlyaWdodCBEdXN0aW4gU3BpY3V6emEgMjAwOS4KKy8vICAgICAgQWRhcHRlZCB0byB2eFdvcmtzIDYuOSBieSBQZXRlciBCcm9ja2FtcCAyMDEyLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBTaW5jZSBXUlMgZG9lcyBub3QgeWV0IHByb3Blcmx5IHN1cHBvcnQgYm9vc3QgdW5kZXIgdnhXb3JrcworLy8gIGFuZCB0aGlzIGZpbGUgd2FzIGJhZGx5IG91dGRhdGVkLCBidXQgSSB3YXMga2VlbiBvbiB1c2luZyBpdCwKKy8vICBJIHBhdGNoZWQgYm9vc3QgbXlzZWxmIHRvIG1ha2UgdGhpbmdzIHdvcmsuIFRoaXMgaGFzIGJlZW4gdGVzdGVkCisvLyAgYW5kIGFkYXB0ZWQgYnkgbWUgZm9yIHZ4V29ya3MgNi45ICpvbmx5KiwgYXMgSSdtIGxhY2tpbmcgYWNjZXNzCisvLyAgdG8gZWFybGllciA2LlggdmVyc2lvbnMhIFRoZSBvbmx5IHRoaW5nIEkga25vdyBmb3Igc3VyZSBpcyB0aGF0CisvLyAgdmVyeSBvbGQgdmVyc2lvbnMgb2YgdnhXb3JrcyAobmFtZWx5IGV2ZXJ5dGhpbmcgYmVsb3cgNi54KSBhcmUKKy8vICBhYnNvbHV0ZWx5IHVuYWJsZSB0byB1c2UgYm9vc3QuIFRoaXMgaXMgbWFpbmx5IGR1ZSB0byB0aGUgY29tcGxldGVseQorLy8gIG91dGRhdGVkIGxpYnJhcmllcyBhbmQgYW5jaWVudCBjb21waWxlciAoR0NDIDIuOTYgb3Igd29yc2UpLiBEbworLy8gIG5vdCBldmVuIHRoaW5rIG9mIGdldHRpbmcgdGhpcyB0byB3b3JrLCBhIG1pc2VyYWJsZSBmYWlsdXJlIHdpbGwKKy8vICBiZSBndWFyYW50ZWVkIQorLy8gIEVxdWFsbHksIHRoaXMgZmlsZSBoYXMgYmVlbiB0ZXN0ZWQgZm9yIFJUUHMgKFJlYWwgVGltZSBQcm9jZXNzZXMpCisvLyAgb25seSwgbm90IGZvciBES01zIChEb3dubG9hZGFibGUgS2VybmVsIE1vZHVsZXMpLiBUaGVzZSB0d28gdHlwZXMKKy8vICBvZiBleGVjdXRhYmxlcyBkaWZmZXIgbGFyZ2VseSBpbiB0aGUgYXZhaWxhYmxlIGZ1bmN0aW9uYWxpdHkgb2YKKy8vICB0aGUgQy1saWJyYXJ5LCBTVEwsIGFuZCBzbyBvbi4gQSBES00gdXNlcyBhIGxpYnJhcnkgc2ltaWxhciB0byB0aG9zZQorLy8gIG9mIHZ4V29ya3MgNS5YIC0gd2l0aCBhbGwgaXRzIGxpbWl0YXRpb25zIGFuZCBpbmNvbXBhdGliaWxpdGllcworLy8gIHdpdGggcmVzcGVjdCB0byBBTlNJIEMrKyBhbmQgU1RMLiBTbyBwcm9iYWJseSB0aGVyZSBtaWdodCBiZSBwcm9ibGVtcworLy8gIHdpdGggdGhlIHVzYWdlIG9mIGJvb3N0IGZyb20gREtNcy4gV1JTIG9yIGFueSB2b2x1dGVlcnMgYXJlIGZyZWUgdG8KKy8vICBwcm92ZSB0aGUgb3Bwb3NpdGUhCisKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLworLy8gU29tZSBpbXBvcnRhbnQgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSB1c2FnZSBvZiBQT1NJWCBzZW1hcGhvcmVzOgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vIFZ4V29ya3MgYXMgYSByZWFsIHRpbWUgb3BlcmF0aW5nIHN5c3RlbSBoYW5kbGVzIHRocmVhZHMgc29tZXdoYXQKKy8vIGRpZmZlcmVudCBmcm9tIHdoYXQgIm5vcm1hbCIgT1NlcyBkbywgcmVnYXJkaW5nIHRoZWlyIHNjaGVkdWxpbmchCisvLyBUaGlzIGNvdWxkIGxlYWQgdG8gYSBzY2VuYXJpbyBjYWxsZWQgInByaW9yaXR5IGludmVyc2lvbiIgd2hlbiB1c2luZworLy8gc2VtYXBob3Jlcywgc2VlIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUHJpb3JpdHlfaW52ZXJzaW9uLgorLy8KKy8vIE5vdywgVnhXb3JrcyBQT1NJWC1zZW1hcGhvcmVzIGZvciBES00ncyBkZWZhdWx0IHRvIHRoZSB1c2FnZSBvZgorLy8gcHJpb3JpdHkgaW52ZXJ0aW5nIHNlbWFwaG9yZXMsIHdoaWNoIGlzIGZpbmUuIE9uIHRoZSBvdGhlciBoYW5kLAorLy8gZm9yIFJUUCdzIGl0IGRlZmF1bHRzIHRvIHVzaW5nIG5vbiBwcmlvcml0eSBpbnZlcnRpbmcgc2VtYXBob3JlcywKKy8vIHdoaWNoIGNvdWxkIGVhc2lseSBwb3NlIGEgc2VyaW91cyBwcm9ibGVtIGZvciBhIHJlYWwgdGltZSBwcm9jZXNzLAorLy8gaS5lLiBkZWFkbG9ja3MhIFRvIG92ZXJjb21lIHRoaXMgdHdvIHBvc3NpYmlsaXRpZXMgZG8gZXhpc3Q6CisvLworLy8gYSkgUGF0Y2ggZXZlcnkgcGllY2Ugb2YgYm9vc3QgdGhhdCB1c2VzIHNlbWFwaG9yZXMgdG8gaW5zdGFuY2lhdGUKKy8vICAgIHRoZSBwcm9wZXIgdHlwZSBvZiBzZW1hcGhvcmVzLiBUaGlzIGlzIG5vbi1pbnRydXNpdmUgd2l0aCByZXNwZWN0CisvLyAgICB0byB0aGUgT1MgYW5kIGNvdWxkIHJlbGF0aXZlbHkgZWFzeSBiZWVuIGRvbmUgYnkgZ2l2aW5nIGFsbAorLy8gICAgc2VtYXBob3JlcyBhdHRyaWJ1dGVzIGRldmlhdGluZyBmcm9tIHRoZSBkZWZhdWx0IChmb3IgaW4tZGVwdGgKKy8vICAgIGluZm9ybWF0aW9uIHNlZSB0aGUgUE9TSVggZnVuY3Rpb25zIHB0aHJlYWRfbXV0ZXhhdHRyX2luaXQoKQorLy8gICAgYW5kIHB0aHJlYWRfbXV0ZXhhdHRyX3NldHByb3RvY29sKCkpLiBIb3dldmVyIHRoaXMgYnJlYWtzIGFsbAorLy8gICAgdG9vIGVhc2lseSwgYXMgd2l0aCBldmVyeSBuZXcgdmVyc2lvbiBzb21lIGJvb3N0IGxpYnJhcnkgY291bGQKKy8vICAgIGFsbCBpbiBhIHN1ZGRlbiBzdGFydCB1c2luZyBzZW1hcGhvcmVzLCByZXN1cnJlY3RpbmcgdGhlIHZlcnkKKy8vICAgIHNhbWUsIGhhcmQgdG8gbG9jYXRlIHByb2JsZW0gb3ZlciBhbmQgb3ZlciBhZ2FpbiEKKy8vCisvLyBiKSBXZSBjb3VsZCBjaGFuZ2UgdGhlIGRlZmF1bHQgcHJvcGVydGllcyBmb3IgUE9TSVgtc2VtYXBob3JlcworLy8gICAgdGhhdCBWeFdvcmtzIHVzZXMgZm9yIFJUUCdzIGFuZCB0aGlzIGlzIGJlaW5nIHN1Z2dlc3RlZCBoZXJlLAorLy8gICAgYXMgaXQgd2lsbCBtb3JlIG9yIGxlc3Mgc2VhbWxlc3NseSBpbnRlZ3JhdGUgd2l0aCBib29zdC4gSSBnb3QKKy8vICAgIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gZnJvbSBXUlMgaG93IHRvIGRvIHRoaXMsIGNvbXBhcmUKKy8vICAgIFdpbmQgUml2ZXIgVFNSIyAxMjA5NzY4OgorLy8KKy8vIEluc3RydWN0aW9ucyBmb3IgY2hhbmdpbmcgdGhlIGRlZmF1bHQgcHJvcGVydGllcyBvZiBQT1NJWC0KKy8vIHNlbWFwaG9yZXMgZm9yIFJUUCdzIGluIFZ4V29ya3MgNi45OgorLy8gLSBFZGl0IHRoZSBmaWxlIC92eHdvcmtzLTYuOS90YXJnZXQvdXNyL3NyYy9wb3NpeC9wdGhyZWFkTGliLmMKKy8vICAgaW4gdGhlIHJvb3Qgb2YgeW91ciBXb3JrYmVuY2gtaW5zdGFsbGF0aW9uLgorLy8gLSBBcm91bmQgbGluZSA5MTcgdGhlcmUgc2hvdWxkIGJlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBkZWZhdWx0CisvLyAgIG11dGV4IGF0dHJpYnV0ZXM6CisvLworLy8gICBMT0NBTCBwdGhyZWFkX211dGV4YXR0cl90IGRlZmF1bHRNdXRleEF0dHIgPQorLy8gICAgICAgeworLy8gICAgICAgUFRIUkVBRF9JTklUSUFMSVpFRF9PQkosIFBUSFJFQURfUFJJT19OT05FLCAwLAorLy8gICAgICAgUFRIUkVBRF9NVVRFWF9ERUZBVUxUCisvLyAgICAgICB9OworLy8KKy8vICAgSGVyZSwgcmVwbGFjZSBQVEhSRUFEX1BSSU9fTk9ORSBieSBQVEhSRUFEX1BSSU9fSU5IRVJJVC4KKy8vIC0gQXJvdW5kIGxpbmUgMTIzNiB0aGVyZSBzaG91bGQgYmUgYSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb24KKy8vICAgcHRocmVhZF9tdXRleGF0dHJfaW5pdCgpLiBBIGNvdXBsZSBvZiBsaW5lcyBiZWxvdyB5b3Ugc2hvdWxkCisvLyAgIGZpbmQgYSBibG9jayBvZiBjb2RlIGxpa2UgdGhpczoKKy8vCisvLyAgIHBBdHRyLT5tdXRleEF0dHJTdGF0dXMgICAgICA9IFBUSFJFQURfSU5JVElBTElaRURfT0JKOworLy8gICBwQXR0ci0+bXV0ZXhBdHRyUHJvdG9jb2wgICAgPSBQVEhSRUFEX1BSSU9fTk9ORTsKKy8vICAgcEF0dHItPm11dGV4QXR0clByaW9jZWlsaW5nID0gMDsKKy8vICAgcEF0dHItPm11dGV4QXR0clR5cGUgICAgICAgID0gUFRIUkVBRF9NVVRFWF9ERUZBVUxUOworLy8KKy8vICAgSGVyZSBhZ2FpbiwgcmVwbGFjZSBQVEhSRUFEX1BSSU9fTk9ORSBieSBQVEhSRUFEX1BSSU9fSU5IRVJJVC4KKy8vIC0gRmluYWxseSwgcmVidWlsZCB5b3VyIFZTQi4gVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBWeFdvcmtzIGtlcm5lbAorLy8gICB3aXRoIHRoZSBjaGFuZ2VkIHByb3BlcnRpZXMuIFRoYXQncyBpdCEgTm93LCB1c2luZyBib29zdCBzaG91bGQKKy8vICAgbm8gbG9uZ2VyIGNhdXNlIGFueSBwcm9ibGVtcyB3aXRoIHRhc2sgZGVhZGxvY2tzIQorLy8KKy8vIEFuZCBoZXJlJ3MgYW5vdGhlciB1c2VmdWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gY29uY2VybmluZyBWeFdvcmtzJworLy8gUE9TSVgtZnVuY3Rpb25hbGl0eSBpbiBnZW5lcmFsOgorLy8gVnhXb3JrcyBpcyBub3QgYSBnZW51aW5lIFBPU0lYLU9TIGluIGl0c2VsZiwgcmF0aGVyIGl0IGlzIHVzaW5nIGEKKy8vIGtpbmQgb2YgY29tcGF0aWJpbGl0eSBsYXllciAoc29ydCBvZiBhIHdyYXBwZXIpIHRvIGVtdWxhdGUgdGhlCisvLyBQT1NJWC1mdW5jdGlvbmFsaXR5IGJ5IHVzaW5nIGl0cyBvd24gcmVzb3VyY2VzIGFuZCBmdW5jdGlvbnMuCisvLyBBdCB0aGUgdGltZSBhIHRhc2sgKHRocmVhZCkgY2FsbHMgaXQncyBmaXJzdCBQT1NJWC1mdW5jdGlvbiBkdXJpbmcKKy8vIHJ1bnRpbWUgaXQgaXMgYmVpbmcgdHJhbnNmb3JtZWQgYnkgdGhlIE9TIGludG8gYSBQT1NJWC10aHJlYWQuCisvLyBUaGlzIHRyYW5zZm9ybWF0aW9uIGRvZXMgaW5jbHVkZSBhIGNhbGwgdG8gbWFsbG9jKCkgdG8gYWxsb2NhdGUgdGhlCisvLyBtZW1vcnkgcmVxdWlyZWQgZm9yIHRoZSBob3VzZWtlZXBpbmcgb2YgUE9TSVgtdGhyZWFkcy4gSW4gYSBoaWdoCisvLyBwcmlvcml0eSBSVFAgdGhpcyBtYWxsb2MoKSBjYWxsIG1heSBiZSBoaWdobHkgdW5kZXNpcmFibGUsIGFzIGl0cworLy8gdGltaW5nIGlzIG1vcmUgb3IgbGVzcyB1bnByZWRpY3RhYmxlIChkZXBlbmRpbmcgb24gd2hhdCB5b3VyIGFjdHVhbAorLy8gaGVhcCBsb29rcyBsaWtlKS4gWW91IGNhbiBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSBieSBjYWxsaW5nIHRoZQorLy8gZnVuY3Rpb24gdGhyZWFkX3NlbGYoKSBhdCBhIHdlbGwgZGVmaW5lZCBwb2ludCBpbiB0aGUgY29kZSBvZiB0aGUKKy8vIHRhc2ssIGUuZy4gc2hvcnRseSBhZnRlciB0aGUgdGFzayBzcGF3bnMgdXAuIFRoZXJlYnkgeW91IGFyZSBhYmxlCisvLyB0byBkZWZpbmUgdGhlIHRpbWUgd2hlbiB0aGUgdGFzay10cmFuc2Zvcm1hdGlvbiB3aWxsIHRha2UgcGxhY2UgYW5kCisvLyB5b3UgY291bGQgc2hpZnQgaXQgdG8gYW4gdW5jcml0aWNhbCBwb2ludCB3aGVyZSBhIG1hbGxvYygpIGNhbGwgaXMKKy8vIHRvbGVyYWJsZS4gU28sIGlmIHRoaXMgY291bGQgcG9zZSBhIHByb2JsZW0gZm9yIHlvdXIgY29kZSwgcmVtZW1iZXIKKy8vIHRvIGNhbGwgdGhyZWFkX3NlbGYoKSBmcm9tIHRoZSBhZmZlY3RlZCB0YXNrIGF0IGFuIGVhcmx5IHN0YWdlLgorLy8KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8vIEJsb2NrIG91dCBhbGwgdmVyc2lvbnMgYmVmb3JlIHZ4V29ya3MgNi54LCBhcyB0aGVzZSBkb24ndCB3b3JrOgorLy8gSW5jbHVkZSBoZWFkZXIgd2l0aCB0aGUgdnhXb3JrcyB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBxdWVyeSB0aGVtCisjaW5jbHVkZSA8dmVyc2lvbi5oPgorI2lmICFkZWZpbmVkKF9XUlNfVlhXT1JLU19NQUpPUikgfHwgKF9XUlNfVlhXT1JLU19NQUpPUiA8IDYpCisjICBlcnJvciAiVGhlIHZ4V29ya3MgdmVyc2lvbiB5b3UncmUgdXNpbmcgaXMgc28gYmFkbHkgb3V0ZGF0ZWQsXAorICAgICAgICAgIGl0IGRvZXNuJ3Qgd29yayBhdCBhbGwgd2l0aCBib29zdCwgc29ycnksIG5vIGNoYW5jZSEiCisjZW5kaWYKKworLy8gSGFuZGxlIHZlcnNpb25zIGFib3ZlIDUuWCBidXQgYmVsb3cgNi45CisjaWYgKF9XUlNfVlhXT1JLU19NQUpPUiA9PSA2KSAmJiAoX1dSU19WWFdPUktTX01JTk9SIDwgOSkKKy8vIFRPRE86IFN0YXJ0aW5nIGZyb20gd2hhdCB2ZXJzaW9uIGRvZXMgdnhXb3JrcyB3b3JrIHdpdGggYm9vc3Q/CisvLyBXZSBjYW4ndCByZWFzb25hYmx5IGluc2VydCBhICN3YXJuaW5nICIiIGFzIGEgdXNlciBoaW50IGhlcmUsCisvLyBhcyB0aGlzIHdpbGwgc2hvdyB1cCB3aXRoIGV2ZXJ5IGZpbGUgaW5jbHVkaW5nIHNvbWUgYm9vc3QgaGVhZGVyLAorLy8gYmFkbHkgYnVnZ2luZyB0aGUgdXNlci4uLiBTbyBmb3IgdGhlIHRpbWUgYmVpbmcgd2UganVzdCBsZWF2ZSBpdC4KKyNlbmRpZgorCisvLyB2eFdvcmtzIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gInZ4V29ya3MiCisKKy8vIFNwZWNpYWwgYmVoYXZpb3VyIGZvciBES01zOgorI2lmZGVmIF9XUlNfS0VSTkVMCisgIC8vIERLTXMgZG8gbm90IGhhdmUgdGhlIDxjd2NoYXI+LWhlYWRlciwKKyAgLy8gYnV0IGFwcGFyZW50bHkgdGhleSBkbyBoYXZlIGFuIGludHJpbnNpYyB3Y2hhcl90IG1lYW53aGlsZSEKKyMgIGRlZmluZSBCT09TVF9OT19DV0NIQVIKKworICAvLyBMb3RzIG9mIHdpZGUtZnVuY3Rpb25zIGFuZCAtaGVhZGVycyBhcmUgdW5hdmFpbGFibGUgZm9yIERLTXMgYXMgd2VsbDoKKyMgIGRlZmluZSBCT09TVF9OT19DV0NUWVBFCisjICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyMgIGRlZmluZSBCT09TVF9OT19TVERfV1NUUklORworIyAgZGVmaW5lIEJPT1NUX05PX1NURF9XU1RSRUFNQlVGCisjZW5kaWYKKworLy8gR2VuZXJhbGx5IGF2YWlsYWJsZSBoZWFkZXJzOgorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorI2RlZmluZSBCT09TVF9IQVNfU0xJU1QKKworLy8gdnhXb3JrcyBkb2VzIG5vdCBoYXZlIGluc3RhbGxlZCBhbiBpY29udi1saWJyYXJ5IGJ5IGRlZmF1bHQsCisvLyBzbyB1bmZvcnR1bmF0ZWx5IG5vIFVuaWNvZGUgc3VwcG9ydCBmcm9tIHNjcmF0Y2ggaXMgYXZhaWxhYmxlIQorLy8gVGh1cywgaW5zdGVhZCBpdCBpcyBzdWdnZXN0ZWQgdG8gc3dpdGNoIHRvIElDVSwgYXMgdGhpcyBzZWVtcworLy8gdG8gYmUgdGhlIG1vc3QgY29tcGxldGUgYW5kIHBvcnRhYmxlIG9wdGlvbi4uLgorI2RlZmluZSBCT09TVF9MT0NBTEVfV0lUSF9JQ1UKKworLy8gR2VuZXJhbGx5IGF2YWlsYWJsZSBmdW5jdGlvbmFsaXR5OgorI2RlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisjZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyNkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUKKyNkZWZpbmUgQk9PU1RfSEFTX01BQ1JPX1VTRV9GQUNFVAorCisvLyBHZW5lcmFsbHkgdW5hdmFpbGFibGUgZnVuY3Rpb25hbGl0eSwgZGVsaXZlcmVkIGJ5IGJvb3N0J3MgdGVzdCBmdW5jdGlvbjoKKy8vI2RlZmluZSBCT09TVF9OT19ERURVQ0VEX1RZUEVOQU1FIC8vIENvbW1lbnRlZCB0aGlzIG91dCwgYm9vc3QncyB0ZXN0IGdpdmVzIGFuIGVycm9ybmVvdXMgcmVzdWx0IQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisKKy8vIEdlbmVyYWxseSBhdmFpbGFibGUgdGhyZWFkaW5nIEFQSSdzOgorI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMKKyNkZWZpbmUgQk9PU1RfSEFTX1NDSEVEX1lJRUxECisjZGVmaW5lIEJPT1NUX0hBU19TSUdBQ1RJT04KKworLy8gRnVuY3Rpb25hbGl0eSBhdmFpbGFibGUgZm9yIFJUUHMgb25seToKKyNpZmRlZiBfX1JUUF9fCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyMgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgIGRlZmluZSBCT09TVF9IQVNfRVhQTTEKKyNlbmRpZgorCisvLyBGdW5jdGlvbmFsaXR5IGF2YWlsYWJsZSBmb3IgREtNcyBvbmx5OgorI2lmZGVmIF9XUlNfS0VSTkVMCisgIC8vIEx1Y2tpbHksIGF0IHRoZSBtb21lbnQgdGhlcmUgc2VlbXMgdG8gYmUgbm9uZSEKKyNlbmRpZgorCisvLyBUaGVzZSAjZGVmaW5lcyBhbGxvdyBwb3NpeF9mZWF0dXJlcyB0byB3b3JrLCBzaW5jZSB2eFdvcmtzIGRvZXNuJ3QKKy8vICNkZWZpbmUgdGhlbSBpdHNlbGYgZm9yIERLTXMgKGZvciBSVFBzIG9uIHRoZSBjb250cmFyeSBpdCBkb2VzKToKKyNpZmRlZiBfV1JTX0tFUk5FTAorIyAgaWZuZGVmIF9QT1NJWF9USU1FUlMKKyMgICAgZGVmaW5lIF9QT1NJWF9USU1FUlMgIDEKKyMgIGVuZGlmCisjICBpZm5kZWYgX1BPU0lYX1RIUkVBRFMKKyMgICAgZGVmaW5lIF9QT1NJWF9USFJFQURTIDEKKyMgIGVuZGlmCisjZW5kaWYKKworLy8gdnhXb3JrcyBkb2Vzbid0IHdvcmsgd2l0aCBhc2lvIHNlcmlhbCBwb3J0czoKKyNkZWZpbmUgQk9PU1RfQVNJT19ESVNBQkxFX1NFUklBTF9QT1JUCisvLyBUT0RPOiBUaGUgcHJvYmxlbSBoZXJlIHNlZW1zIHRvIGJlZSB0aGF0IHZ4V29ya3MgdXNlcyBpdHMgb3duLCB2ZXJ5IHNwZWNpZmljCisvLyAgICAgICB3YXlzIHRvIGhhbmRsZSBzZXJpYWwgcG9ydHMsIGluY29tcGF0aWJsZSB3aXRoIFBPU0lYIG9yIGFueXRoaW5nLi4uCisvLyAgICAgICBNYXliZSBhIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIHdvdWxkIGJlIHBvc3NpYmxlLCBidXQgdW50aWwgdGhlCisvLyAgICAgICBzdHJhaWdodCBuZWVkIGFyaXNlcy4uLiBUaGlzIGltcGxlbWVudGF0aW9uIHdvdWxkIHByZXN1bWFibHkgY29uc2lzdAorLy8gICAgICAgb2Ygc29tZSB2eFdvcmtzIHNwZWNpZmljIGlvY3RsLWNhbGxzLCBldGMuIEFueSB2b2x1dGVlcnM/CisKKy8vIHZ4V29ya3MtYXJvdW5kOiA8dGltZS5oPiAjZGVmaW5lcyBDTE9DS1NfUEVSX1NFQyBhcyBzeXNDbGtSYXRlR2V0KCkgYnV0CisvLyAgICAgICAgICAgICAgICAgbWlzZXJhYmx5IGZhaWxzIHRvICNpbmNsdWRlIHRoZSByZXF1aXJlZCA8c3lzTGliLmg+IHRvIG1ha2UKKy8vICAgICAgICAgICAgICAgICBzeXNDbGtSYXRlR2V0KCkgYXZhaWxhYmxlISBTbyB3ZSBtYW51YWxseSBpbmNsdWRlIGl0IGhlcmUuCisjaWZkZWYgX19SVFBfXworIyAgaW5jbHVkZSA8dGltZS5oPgorIyAgaW5jbHVkZSA8c3lzTGliLmg+CisjZW5kaWYKKworLy8gdnhXb3Jrcy1hcm91bmQ6IEluIDxzdGRpbnQuaD4gdGhlIG1hY3JvcyBJTlQzMl9DKCksIFVJTlQzMl9DKCksIElOVDY0X0MoKSBhbmQKKy8vICAgICAgICAgICAgICAgICBVSU5UNjRfQygpIGFyZSBkZWZpbmVkIGVycm9ybmVvdXNseSwgeWllbGRpbmcgbm90IGEgc2lnbmVkLworLy8gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcvbG9uZyBsb25nIHR5cGUsIGJ1dCBhIHNpZ25lZC91bnNpZ25lZCBpbnQvbG9uZworLy8gICAgICAgICAgICAgICAgIHR5cGUuIEV2ZW50dWFsbHkgdGhpcyBsZWFkcyB0byBjb21waWxlIGVycm9ycyBpbiByYXRpb19md2QuaHBwLAorLy8gICAgICAgICAgICAgICAgIHdoZW4gdHJ5aW5nIHRvIGRlZmluZSBzZXZlcmFsIGNvbnN0YW50cyB3aGljaCBkbyBub3QgZml0IGludG8gYQorLy8gICAgICAgICAgICAgICAgIGxvbmcgdHlwZSEgV2UgY29ycmVjdCB0aGVtIGhlcmUgYnkgcmVkZWZpbmluZy4KKyNpbmNsdWRlIDxjc3RkaW50PgorCisvLyBTb21lIG1hY3JvLW1hZ2ljIHRvIGRvIHRoZSBqb2IKKyNkZWZpbmUgVlhfSk9JTihYLCBZKSAgICAgVlhfRE9fSk9JTihYLCBZKQorI2RlZmluZSBWWF9ET19KT0lOKFgsIFkpICBWWF9ET19KT0lOMihYLCBZKQorI2RlZmluZSBWWF9ET19KT0lOMihYLCBZKSBYIyNZCisKKy8vIENvcnJlY3RseSBzZXR1cCB0aGUgbWFjcm9zCisjdW5kZWYgIElOVDMyX0MKKyN1bmRlZiAgVUlOVDMyX0MKKyN1bmRlZiAgSU5UNjRfQworI3VuZGVmICBVSU5UNjRfQworI2RlZmluZSBJTlQzMl9DKHgpICBWWF9KT0lOKHgsIEwpCisjZGVmaW5lIFVJTlQzMl9DKHgpIFZYX0pPSU4oeCwgVUwpCisjZGVmaW5lIElOVDY0X0MoeCkgIFZYX0pPSU4oeCwgTEwpCisjZGVmaW5lIFVJTlQ2NF9DKHgpIFZYX0pPSU4oeCwgVUxMKQorCisvLyAjaW5jbHVkZSBMaWJyYXJpZXMgcmVxdWlyZWQgZm9yIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYWRhcHRpb24KKyNpbmNsdWRlIDxpb0xpYi5oPgorI2luY2x1ZGUgPHRpY2tMaWIuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorCisvLyBVc2UgQy1saW5rYWdlIGZvciB0aGUgZm9sbG93aW5nIGhlbHBlciBmdW5jdGlvbnMKK2V4dGVybiAiQyIgeworCisvLyB2eFdvcmtzLWFyb3VuZDogVGhlIHJlcXVpcmVkIGZ1bmN0aW9ucyBnZXRybGltaXQoKSBhbmQgZ2V0cmxpbWl0KCkgYXJlIG1pc3NpbmcuCisvLyAgICAgICAgICAgICAgICAgQnV0IHdlIGhhdmUgdGhlIHNpbWlsYXIgZnVuY3Rpb25zIGdldHBybGltaXQoKSBhbmQgc2V0cHJsaW1pdCgpLAorLy8gICAgICAgICAgICAgICAgIHdoaWNoIG1heSBzZXJ2ZSB0aGUgcHVycG9zZS4KKy8vICAgICAgICAgICAgICAgICBQcm9ibGVtOiBUaGUgdnhXb3Jrcy1kb2N1bWVudGF0aW9uIHJlZ2FyZGluZyB0aGVzZSBmdW5jdGlvbnMKKy8vICAgICAgICAgICAgICAgICBkb2Vzbid0IGRlc2VydmUgaXRzIG5hbWUhIEl0IGlzbid0IGRvY3VtZW50ZWQgd2hhdCB0aGUgZmlyc3QgdHdvCisvLyAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBpZHR5cGUgYW5kIGlkIG1lYW4sIHNvIHdlIG11c3QgZmFsbCBiYWNrIHRvIGFuIGVkdWNhdGVkCisvLyAgICAgICAgICAgICAgICAgZ3Vlc3MgLSBudWxsLCBhcmdoLi4uIDotLworCisvLyBUT0RPOiBnZXRwcmxpbWl0KCkgYW5kIHNldHBybGltaXQoKSBkbyBleGlzdCBmb3IgUlRQcyBvbmx5LCBmb3Igd2hhdGV2ZXIgcmVhc29uLgorLy8gICAgICAgVGh1cyBmb3IgREtNcyB0aGVyZSB3b3VsZCBoYXZlIHRvIGJlIGFub3RoZXIgaW1wbGVtZW50YXRpb24uCisjaWZkZWYgX19SVFBfXworICBpbmxpbmUgaW50IGdldHJsaW1pdChpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKnJscCl7CisgICAgcmV0dXJuIGdldHBybGltaXQoMCwgMCwgcmVzb3VyY2UsIHJscCk7CisgIH0KKworICBpbmxpbmUgaW50IHNldHJsaW1pdChpbnQgcmVzb3VyY2UsIGNvbnN0IHN0cnVjdCBybGltaXQgKnJscCl7CisgICAgcmV0dXJuIHNldHBybGltaXQoMCwgMCwgcmVzb3VyY2UsIGNvbnN0X2Nhc3Q8c3RydWN0IHJsaW1pdCo+KHJscCkpOworICB9CisjZW5kaWYKKworLy8gdnhXb3JrcyBoYXMgZnRydW5jYXRlKCkgb25seSwgc28gd2UgZG8gc2ltdWxhdGUgdHJ1bmNhdGUoKToKK2lubGluZSBpbnQgdHJ1bmNhdGUoY29uc3QgY2hhciAqcCwgb2ZmX3QgbCl7CisgIGludCBmZCA9IG9wZW4ocCwgT19XUk9OTFkpOworICBpZiAoZmQgPT0gLTEpeworICAgIGVycm5vID0gRUFDQ0VTOworICAgIHJldHVybiAtMTsKKyAgfQorICBpZiAoZnRydW5jYXRlKGZkLCBsKSA9PSAtMSl7CisgICAgY2xvc2UoZmQpOworICAgIGVycm5vID0gRUFDQ0VTOworICAgIHJldHVybiAtMTsKKyAgfQorICByZXR1cm4gY2xvc2UoZmQpOworfQorCisvLyBGYWtlIHN5bWxpbmsgaGFuZGxpbmcgYnkgZHVtbXkgZnVuY3Rpb25zOgoraW5saW5lIGludCBzeW1saW5rKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKil7CisgIC8vIHZ4V29ya3MgaGFzIG5vIHN5bWxpbmtzIC0+IGFsd2F5cyByZXR1cm4gYW4gZXJyb3IhCisgIGVycm5vID0gRUFDQ0VTOworICByZXR1cm4gLTE7Cit9CisKK2lubGluZSBzc2l6ZV90IHJlYWRsaW5rKGNvbnN0IGNoYXIqLCBjaGFyKiwgc2l6ZV90KXsKKyAgLy8gdnhXb3JrcyBoYXMgbm8gc3ltbGlua3MgLT4gYWx3YXlzIHJldHVybiBhbiBlcnJvciEKKyAgZXJybm8gPSBFQUNDRVM7CisgIHJldHVybiAtMTsKK30KKworLy8gdnhXb3JrcyBjbGFpbXMgdG8gaW1wbGVtZW50IGdldHRpbWVvZmRheSBpbiBzeXMvdGltZS5oCisvLyBidXQgbmV2ZXJ0aGVsZXNzIGRvZXMgbm90IHByb3ZpZGUgaXQhIFNlZQorLy8gaHR0cHM6Ly9zdXBwb3J0LndpbmRyaXZlci5jb20vb2xzUG9ydGFsL2ZhY2VzL21haW50ZW5hbmNlL3RlY2h0aXBEZXRhaWxfbm9IZWFkZXIuanNweD9kb2NJZD0xNjQ0MiZjb250ZW50SWQ9V1JfVEVDSFRJUF8wMDYyNTYKKy8vIFdlIGltcGxlbWVudCBhIHN1cnJvZ2F0ZSB2ZXJzaW9uIGhlcmUgdmlhIGNsb2NrX2dldHRpbWU6CitpbmxpbmUgaW50IGdldHRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYsIHZvaWQgKiAvKnR6diovKSB7CisgIHN0cnVjdCB0aW1lc3BlYyB0czsKKyAgY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cyk7CisgIHR2LT50dl9zZWMgID0gdHMudHZfc2VjOworICB0di0+dHZfdXNlYyA9IHRzLnR2X25zZWMgLyAxMDAwOworICByZXR1cm4gMDsKK30KKworLy8gdnhXb3JrcyBkb2VzIHByb3ZpZGUgbmVpdGhlciBzdHJ1Y3QgdG1zIG5vciBmdW5jdGlvbiB0aW1lcygpIQorLy8gV2UgaW1wbGVtZW50IGFuIGVtcHR5IGR1bW15LWZ1bmN0aW9uLCBzaW1wbHkgc2V0dGluZyB0aGUgdXNlcgorLy8gYW5kIHN5c3RlbSB0aW1lIHRvIHRoZSBoYWxmIG9mIHRoZXcgYWN0dWFsIHN5c3RlbSB0aWNrcy12YWx1ZQorLy8gYW5kIHRoZSBjaGlsZCB1c2VyIGFuZCBzeXN0ZW0gdGltZSB0byAwLgorLy8gUmF0aGVyIHVnbHkgYnV0IGF0IGxlYXN0IGl0IHN1cHByZXNzZXMgY29tcGlsZXIgZXJyb3JzLi4uCisvLyBVbmZvcnR1bmF0ZWx5LCB0aGlzIG9mIGNvdXJzZSAqZG9lcyogaGF2ZSBhbiBzZXZlcmUgaW1wYWN0IG9uCisvLyBkZXBlbmRhbnQgbGlicmFyaWVzLCBhY3R1YWxseSB0aGlzIGlzIGNocm9ubyBvbmx5ISBIZXJlIGl0IHdpbGwKKy8vIG5vdCBiZSBwb3NzaWJsZSB0byBjb3JyZWN0bHkgdXNlIHVzZXIgYW5kIHN5c3RlbSB0aW1lcyEgQnV0CisvLyBhcyB2eFdvcmtzIGlzIGxhY2tpbmcgdGhlIGFiaWxpdHkgdG8gY2FsY3VsYXRlIHVzZXIgYW5kIHN5c3RlbQorLy8gcHJvY2VzcyB0aW1lcyB0aGVyZSBzZWVtcyB0byBiZSBubyBvdGhlciBwb3NzaWJsZSBzb2x1dGlvbi4KK3N0cnVjdCB0bXN7CisgIGNsb2NrX3QgdG1zX3V0aW1lOyAgLy8gVXNlciBDUFUgdGltZQorICBjbG9ja190IHRtc19zdGltZTsgIC8vIFN5c3RlbSBDUFUgdGltZQorICBjbG9ja190IHRtc19jdXRpbWU7IC8vIFVzZXIgQ1BVIHRpbWUgb2YgdGVybWluYXRlZCBjaGlsZCBwcm9jZXNzZXMKKyAgY2xvY2tfdCB0bXNfY3N0aW1lOyAvLyBTeXN0ZW0gQ1BVIHRpbWUgb2YgdGVybWluYXRlZCBjaGlsZCBwcm9jZXNzZXMKK307CisKK2lubGluZSBjbG9ja190IHRpbWVzKHN0cnVjdCB0bXMgKnQpeworICBzdHJ1Y3QgdGltZXNwZWMgdHM7CisgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICZ0cyk7CisgIGNsb2NrX3QgdGlja3Moc3RhdGljX2Nhc3Q8Y2xvY2tfdD4oc3RhdGljX2Nhc3Q8ZG91YmxlPih0cy50dl9zZWMpICAqIENMT0NLU19QRVJfU0VDICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxkb3VibGU+KHRzLnR2X25zZWMpICogQ0xPQ0tTX1BFUl9TRUMgLyAxMDAwMDAwLjApKTsKKyAgdC0+dG1zX3V0aW1lICA9IHRpY2tzLzJVOworICB0LT50bXNfc3RpbWUgID0gdGlja3MvMlU7CisgIHQtPnRtc19jdXRpbWUgPSAwOyAvLyB2eFdvcmtzIGlzIGxhY2tpbmcgdGhlIGNvbmNlcHQgb2YgYSBjaGlsZCBwcm9jZXNzIQorICB0LT50bXNfY3N0aW1lID0gMDsgLy8gLT4gU2V0IHRoZSB3YWl0IHRpbWVzIGZvciBjaGlsZHMgdG8gMAorICByZXR1cm4gdGlja3M7Cit9CisKK30gLy8gZXh0ZXJuICJDIgorCisvLyBQdXQgdGhlIHNlbGZtYWRlIGZ1bmN0aW9ucyBpbnRvIHRoZSBzdGQtbmFtZXNwYWNlLCBqdXN0IGluIGNhc2UKK25hbWVzcGFjZSBzdGQgeworIyBpZmRlZiBfX1JUUF9fCisgICAgdXNpbmcgOjpnZXRybGltaXQ7CisgICAgdXNpbmcgOjpzZXRybGltaXQ7CisjIGVuZGlmCisgIHVzaW5nIDo6dHJ1bmNhdGU7CisgIHVzaW5nIDo6c3ltbGluazsKKyAgdXNpbmcgOjpyZWFkbGluazsKKyAgdXNpbmcgOjp0aW1lczsKKyAgdXNpbmcgOjpnZXR0aW1lb2ZkYXk7Cit9CisKKy8vIFNvbWUgbW9yZSBtYWNyby1tYWdpYzoKKy8vIHZ4V29ya3MtYXJvdW5kOiBTb21lIGZ1bmN0aW9ucyBhcmUgbm90IHByZXNlbnQgb3IgYnJva2VuIGluIHZ4V29ya3MKKy8vICAgICAgICAgICAgICAgICBidXQgbWF5IGJlIHBhdGNoZWQgdG8gbGlmZSB2aWEgaGVscGVyIG1hY3Jvcy4uLgorCisvLyBJbmNsdWRlIHNpZ25hbC5oIHdoaWNoIG1pZ2h0IGNvbnRhaW4gYSB0eXBvIHRvIGJlIGNvcnJlY3RlZCBoZXJlCisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKyNkZWZpbmUgZ2V0cGFnZXNpemUoKSAgICBzeXNjb25mKF9TQ19QQUdFU0laRSkgICAgICAgICAvLyBnZXRwYWdlc2l6ZSBpcyBkZXByZWNhdGVkIGFueXdheSEKKyNpZm5kZWYgU19JU1NPQ0sKKyMgIGRlZmluZSBTX0lTU09DSyhtb2RlKSAoKG1vZGUgJiBTX0lGTVQpID09IFNfSUZTT0NLKSAvLyBJcyBmaWxlIGEgc29ja2V0PworI2VuZGlmCisjZGVmaW5lIGxzdGF0KHAsIGIpICAgICAgc3RhdChwLCBiKSAgICAgICAgICAgICAgICAgICAgLy8gbHN0YXQoKSA9PSBzdGF0KCksIGFzIHZ4V29ya3MgaGFzIG5vIHN5bWxpbmtzIQorI2lmbmRlZiBGUEVfRkxUSU5WCisjICBkZWZpbmUgRlBFX0ZMVElOViAgICAgKEZQRV9GTFRTVUIrMSkgICAgICAgICAgICAgICAgLy8gdnhXb3JrcyBoYXMgbm8gRlBFX0ZMVElOViwgc28gZGVmaW5lIG9uZSBhcyBhIGR1bW15CisjZW5kaWYKKyNpZiAhZGVmaW5lZChCVVNfQURSQUxOKSAmJiBkZWZpbmVkKEJVU19BRFJBTE5SKQorIyAgZGVmaW5lIEJVU19BRFJBTE4gICAgIEJVU19BRFJBTE5SICAgICAgICAgICAgICAgICAgIC8vIENvcnJlY3QgYSBzdXBwb3NlZCB0eXBvIGluIHZ4V29ya3MnIDxzaWduYWwuaD4KKyNlbmRpZgorLy90eXBlZGVmIGludCAgICAgICAgICAgICAgbG9jYWxlX3Q7ICAgICAgICAgICAgICAgICAgICAgLy8gbG9jYWxlX3QgaXMgYSBQT1NJWC1leHRlbnNpb24sIGN1cnJlbnRseSB1bnByZXNlbnQgaW4gdnhXb3JrcyEKKworLy8gI2luY2x1ZGUgYm9pbGVycGxhdGUgY29kZToKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisvLyB2eFdvcmtzIGxpZXMgYWJvdXQgWFNJIGNvbmZvcm1hbmNlLCB0aGVyZSBpcyBubyBubF90eXBlcy5oOgorI3VuZGVmIEJPT1NUX0hBU19OTF9UWVBFU19ICmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS93aW4zMi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS93aW4zMi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFiNTlmNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3dpbjMyLmhwcApAQCAtMCwwICsxLDczIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgQmlsbCBLZW1wZiAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBSZW5lIFJpdmVyYSAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIFdpbjMyIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJXaW4zMiIKKworLy8gIEdldCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIE1pbkdXIHJ1bnRpbWUsIGkuZS4gX19NSU5HVzMyXypWRVJTSU9OLgorI2lmIGRlZmluZWQoX19NSU5HVzMyX18pCisjICBpbmNsdWRlIDxfbWluZ3cuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1dQUklOVEYpCisjICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyNlbmRpZgorCisvLyAgRGVmYXVsdCBkZWZpbmVzIGZvciBCT09TVF9TWU1CT0xfRVhQT1JUIGFuZCBCT09TVF9TWU1CT0xfSU1QT1JUCisvLyAgSWYgYSBjb21waWxlciBkb2Vzbid0IHN1cHBvcnQgX19kZWNsc3BlYyhkbGxleHBvcnQpL19fZGVjbHNwZWMoZGxsaW1wb3J0KSwKKy8vICBpdHMgYm9vc3QvY29uZmlnL2NvbXBpbGVyLyBmaWxlIG11c3QgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQgYW5kCisvLyAgQk9PU1RfU1lNQk9MX0lNUE9SVAorI2lmbmRlZiBCT09TVF9TWU1CT0xfRVhQT1JUCisjICBkZWZpbmUgQk9PU1RfSEFTX0RFQ0xTUEVDCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfSU1QT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKSAmJiAoKF9fTUlOR1czMl9NQUpPUl9WRVJTSU9OID4gMikgfHwgKChfX01JTkdXMzJfTUFKT1JfVkVSU0lPTiA9PSAyKSAmJiAoX19NSU5HVzMyX01JTk9SX1ZFUlNJT04gPj0gMCkpKQorIyAgZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorIyAgaWZuZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKKyMgICAgIGRlZmluZSBfX1NURENfTElNSVRfTUFDUk9TCisjICBlbmRpZgorIyAgZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorIyAgZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKSAmJiAoX19HTlVDX18gPj0gNCkKKyMgIGRlZmluZSBCT09TVF9IQVNfRVhQTTEKKyMgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjZW5kaWYKKy8vCisvLyBXaW4zMiB3aWxsIG5vcm1hbGx5IGJlIHVzaW5nIG5hdGl2ZSBXaW4zMiB0aHJlYWRzLAorLy8gYnV0IHRoZXJlIGlzIGEgcHRocmVhZCBsaWJyYXJ5IGF2YWxpYWJsZSBhcyBhbiBvcHRpb24sCisvLyB3ZSB1c2VkIHRvIGRpc2FibGUgdGhpcyB3aGVuIEJPT1NUX0RJU0FCTEVfV0lOMzIgd2FzIAorLy8gZGVmaW5lZCBidXQgbm8gbG9uZ2VyIC0gdGhpcyBzaG91bGQgYWxsb3cgc29tZQorLy8gZmlsZXMgdG8gYmUgY29tcGlsZWQgaW4gc3RyaWN0IG1vZGUgLSB3aGlsZSBtYWludGFpbmluZworLy8gYSBjb25zaXN0ZW50IHNldHRpbmcgb2YgQk9PU1RfSEFTX1RIUkVBRFMgYWNyb3NzCisvLyBhbGwgdHJhbnNsYXRpb24gdW5pdHMgKG5lZWRlZCBmb3Igc2hhcmVkX3B0ciBldGMpLgorLy8KKworI2lmZGVmIF9XSU4zMl9XQ0UKKyMgIGRlZmluZSBCT09TVF9OT19BTlNJX0FQSVMKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFNZU1RFTVRJTUVBU0ZJTEVUSU1FCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9IQVNfUFRIUkVBRFMKKyMgIGRlZmluZSBCT09TVF9IQVNfV0lOVEhSRUFEUworI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfRElTQUJMRV9XSU4zMgorLy8gV0VLOiBBZGRlZAorI2RlZmluZSBCT09TVF9IQVNfRlRJTUUKKyNkZWZpbmUgQk9PU1RfV0lORE9XUyAxCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjk1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHAKQEAgLTAsMCArMSw5NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gQWxsIFBPU0lYIGZlYXR1cmUgdGVzdHMgZ28gaW4gdGhpcyBmaWxlLAorLy8gTm90ZSB0aGF0IHdlIHRlc3QgX1BPU0lYX0NfU09VUkNFIGFuZCBfWE9QRU5fU09VUkNFIGFzIHdlbGwKKy8vIF9QT1NJWF9WRVJTSU9OIGFuZCBfWE9QRU5fVkVSU0lPTjogb24gc29tZSBzeXN0ZW1zIFBPU0lYIEFQSSdzCisvLyBtYXkgYmUgcHJlc2VudCBidXQgbm9uZS1mdW5jdGlvbmFsIHVubGVzcyBfUE9TSVhfQ19TT1VSQ0UgYW5kCisvLyBfWE9QRU5fU09VUkNFIGhhdmUgYmVlbiBkZWZpbmVkIHRvIHRoZSByaWdodCB2YWx1ZSAoaXQncyB1cAorLy8gdG8gdGhlIHVzZXIgdG8gZG8gdGhpcyAqYmVmb3JlKiBpbmNsdWRpbmcgYW55IGhlYWRlciwgYWx0aG91Z2gKKy8vIGluIG1vc3QgY2FzZXMgdGhlIGNvbXBpbGVyIHdpbGwgZG8gdGhpcyBmb3IgeW91KS4KKworIyAgaWYgZGVmaW5lZChCT09TVF9IQVNfVU5JU1REX0gpCisjICAgICBpbmNsdWRlIDx1bmlzdGQuaD4KKworICAgICAgLy8gWE9wZW4gaGFzIDxubF90eXBlcy5oPiwgYnV0IGlzIHRoaXMgdGhlIGNvcnJlY3QgdmVyc2lvbiBjaGVjaz8KKyMgICAgIGlmIGRlZmluZWQoX1hPUEVOX1ZFUlNJT04pICYmIChfWE9QRU5fVkVSU0lPTiA+PSAzKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19ICisjICAgICBlbmRpZgorCisgICAgICAvLyBQT1NJWCB2ZXJzaW9uIDYgcmVxdWlyZXMgPHN0ZGludC5oPgorIyAgICAgaWYgZGVmaW5lZChfUE9TSVhfVkVSU0lPTikgJiYgKF9QT1NJWF9WRVJTSU9OID49IDIwMDEwMCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyMgICAgIGVuZGlmCisKKyAgICAgIC8vIFBPU0lYIHZlcnNpb24gMiByZXF1aXJlcyA8ZGlyZW50Lmg+CisjICAgICBpZiBkZWZpbmVkKF9QT1NJWF9WRVJTSU9OKSAmJiAoX1BPU0lYX1ZFUlNJT04gPj0gMTk5MDA5TCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfRElSRU5UX0gKKyMgICAgIGVuZGlmCisKKyAgICAgIC8vIFBPU0lYIHZlcnNpb24gMyByZXF1aXJlcyA8c2lnbmFsLmg+IHRvIGhhdmUgc2lnYWN0aW9uOgorIyAgICAgaWYgZGVmaW5lZChfUE9TSVhfVkVSU0lPTikgJiYgKF9QT1NJWF9WRVJTSU9OID49IDE5OTUwNkwpCisjICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorIyAgICAgZW5kaWYKKyAgICAgIC8vIFBPU0lYIGRlZmluZXMgX1BPU0lYX1RIUkVBRFMgPiAwIGZvciBwdGhyZWFkIHN1cHBvcnQsCisgICAgICAvLyBob3dldmVyIHNvbWUgcGxhdGZvcm1zIGRlZmluZSBfUE9TSVhfVEhSRUFEUyB3aXRob3V0CisgICAgICAvLyBhIHZhbHVlLCBoZW5jZSB0aGUgKF9QT1NJWF9USFJFQURTKzAgPj0gMCkgY2hlY2suCisgICAgICAvLyBTdHJpY3RseSBzcGVha2luZyB0aGlzIG1heSBjYXRjaCBwbGF0Zm9ybXMgd2l0aCBhCisgICAgICAvLyBub24tZnVuY3Rpb25pbmcgc3R1YiA8cHRocmVhZHMuaD4sIGJ1dCBzdWNoIG9jY3VycmVuY2VzIHNob3VsZAorICAgICAgLy8gb2NjdXIgdmVyeSByYXJlbHkgaWYgYXQgYWxsLgorIyAgICAgaWYgZGVmaW5lZChfUE9TSVhfVEhSRUFEUykgJiYgKF9QT1NJWF9USFJFQURTKzAgPj0gMCkgJiYgIWRlZmluZWQoQk9PU1RfSEFTX1dJTlRIUkVBRFMpICYmICFkZWZpbmVkKEJPT1NUX0hBU19NUFRBU0tTKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworIyAgICAgZW5kaWYKKworICAgICAgLy8gQk9PU1RfSEFTX05BTk9TTEVFUDoKKyAgICAgIC8vIFRoaXMgaXMgcHJlZGljYXRlZCBvbiBfUE9TSVhfVElNRVJTIG9yIF9YT1BFTl9SRUFMVElNRToKKyMgICAgIGlmIChkZWZpbmVkKF9QT1NJWF9USU1FUlMpICYmIChfUE9TSVhfVElNRVJTKzAgPj0gMCkpIFwKKyAgICAgICAgICAgICB8fCAoZGVmaW5lZChfWE9QRU5fUkVBTFRJTUUpICYmIChfWE9QRU5fUkVBTFRJTUUrMCA+PSAwKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisjICAgICBlbmRpZgorCisgICAgICAvLyBCT09TVF9IQVNfQ0xPQ0tfR0VUVElNRToKKyAgICAgIC8vIFRoaXMgaXMgcHJlZGljYXRlZCBvbiBfUE9TSVhfVElNRVJTIChhbHNvIG9uIF9YT1BFTl9SRUFMVElNRQorICAgICAgLy8gYnV0IGF0IGxlYXN0IG9uZSBwbGF0Zm9ybSAtIGxpbnV4IC0gZGVmaW5lcyB0aGF0IGZsYWcgd2l0aG91dAorICAgICAgLy8gZGVmaW5pbmcgY2xvY2tfZ2V0dGltZSk6CisjICAgICBpZiAoZGVmaW5lZChfUE9TSVhfVElNRVJTKSAmJiAoX1BPU0lYX1RJTUVSUyswID49IDApKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19DTE9DS19HRVRUSU1FCisjICAgICBlbmRpZgorCisgICAgICAvLyBCT09TVF9IQVNfU0NIRURfWUlFTEQ6CisgICAgICAvLyBUaGlzIGlzIHByZWRpY2F0ZWQgb24gX1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcgb3IKKyAgICAgIC8vIG9uIF9QT1NJWF9USFJFQURfUFJJT1JJVFlfU0NIRURVTElORyBvciBvbiBfWE9QRU5fUkVBTFRJTUUuCisjICAgICBpZiBkZWZpbmVkKF9QT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HKSAmJiAoX1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcrMCA+IDApXAorICAgICAgICAgICAgfHwgKGRlZmluZWQoX1BPU0lYX1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HKSAmJiAoX1BPU0lYX1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HKzAgPiAwKSlcCisgICAgICAgICAgICB8fCAoZGVmaW5lZChfWE9QRU5fUkVBTFRJTUUpICYmIChfWE9QRU5fUkVBTFRJTUUrMCA+PSAwKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfU0NIRURfWUlFTEQKKyMgICAgIGVuZGlmCisKKyAgICAgIC8vIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVk6CisgICAgICAvLyBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRToKKyAgICAgIC8vIFRoZXNlIGFyZSBwcmVkaWNhdGVkIG9uIF9YT1BFTl9WRVJTSU9OLCBhbmQgYXBwZWFycyB0byBiZSBmaXJzdCByZWxlYXNlZAorICAgICAgLy8gaW4gaXNzdWUgNCwgdmVyc2lvbiAyIChfWE9QRU5fVkVSU0lPTiA+IDUwMCkuCisgICAgICAvLyBMaWtld2lzZSBmb3IgdGhlIGZ1bmN0aW9ucyBsb2cxcCBhbmQgZXhwbTEuCisjICAgICBpZiBkZWZpbmVkKF9YT1BFTl9WRVJTSU9OKSAmJiAoX1hPUEVOX1ZFUlNJT04rMCA+PSA1MDApCisjICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorIyAgICAgICAgaWYgZGVmaW5lZChfWE9QRU5fU09VUkNFKSAmJiAoX1hPUEVOX1NPVVJDRSswID49IDUwMCkKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgICAgICAgZW5kaWYKKyMgICAgICAgIGlmbmRlZiBCT09TVF9IQVNfTE9HMVAKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgICAgICAgIGVuZGlmCisjICAgICAgICBpZm5kZWYgQk9PU1RfSEFTX0VYUE0xCisjICAgICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjICAgICAgICBlbmRpZgorIyAgICAgZW5kaWYKKworIyAgZW5kaWYKKworCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcmVxdWlyZXNfdGhyZWFkcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9yZXF1aXJlc190aHJlYWRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTA0YThlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvcmVxdWlyZXNfdGhyZWFkcy5ocHAKQEAgLTAsMCArMSw5MiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworCisjaWZuZGVmIEJPT1NUX0NPTkZJR19SRVFVSVJFU19USFJFQURTX0hQUAorI2RlZmluZSBCT09TVF9DT05GSUdfUkVRVUlSRVNfVEhSRUFEU19IUFAKKworI2lmbmRlZiBCT09TVF9DT05GSUdfSFBQCisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX0RJU0FCTEVfVEhSRUFEUykKKworLy8KKy8vIHNwZWNpYWwgY2FzZSB0byBoYW5kbGUgdmVyc2lvbnMgb2YgZ2NjIHdoaWNoIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHRocmVhZHM6CisvLworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoX19HTlVDX18gPCAzKSB8fCAoX19HTlVDX01JTk9SX18gPD0gMykgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykpCisvLworLy8gdGhpcyBpcyBjaGVja2VkIHVwIHRvIGdjYyAzLjM6CisvLworI2lmIGRlZmluZWQoX19zZ2kpIHx8IGRlZmluZWQoX19ocHV4KQorIyAgZXJyb3IgIk11bHRpLXRocmVhZGVkIHByb2dyYW1zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyBvbiBIUFVYIG9yIElyaXggKGxhc3QgY2hlY2tlZCB3aXRoIGdjYyAzLjMpIgorI2VuZGlmCisKKyNlbmRpZgorCisjICBlcnJvciAiVGhyZWFkaW5nIHN1cHBvcnQgdW5hdmFsaWFibGU6IGl0IGhhcyBiZWVuIGV4cGxpY2l0bHkgZGlzYWJsZWQgd2l0aCBCT09TVF9ESVNBQkxFX1RIUkVBRFMiCisKKyNlbGlmICFkZWZpbmVkKEJPT1NUX0hBU19USFJFQURTKQorCisjIGlmIGRlZmluZWQgX19DT01PX18KKy8vICBDb21lYXUgQysrCisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogLURfTVQgKFdpbmRvd3MpIG9yIC1EX1JFRU5UUkFOVCAoVW5peCkiCisKKyNlbGlmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgfHwgZGVmaW5lZChfX0lDTCkgfHwgZGVmaW5lZChfX0lDQykgfHwgZGVmaW5lZChfX0VDQykKKy8vICBJbnRlbAorI2lmZGVmIF9XSU4zMgorIyAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogZWl0aGVyIC9NVCAvTVRkIC9NRCBvciAvTURkIgorI2Vsc2UKKyMgICBlcnJvciAiQ29tcGlsZXIgdGhyZWFkaW5nIHN1cHBvcnQgaXMgbm90IHR1cm5lZCBvbi4gUGxlYXNlIHNldCB0aGUgY29ycmVjdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhyZWFkaW5nOiAtb3Blbm1wIgorI2VuZGlmCisKKyMgZWxpZiBkZWZpbmVkIF9fR05VQ19fCisvLyAgR05VIEMrKzoKKyMgICBlcnJvciAiQ29tcGlsZXIgdGhyZWFkaW5nIHN1cHBvcnQgaXMgbm90IHR1cm5lZCBvbi4gUGxlYXNlIHNldCB0aGUgY29ycmVjdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhyZWFkaW5nOiAtcHRocmVhZCAoTGludXgpLCAtcHRocmVhZHMgKFNvbGFyaXMpIG9yIC1tdGhyZWFkcyAoTWluZ3czMikiCisKKyNlbGlmIGRlZmluZWQgX19zZ2kKKy8vICBTR0kgTUlQU3BybyBDKysKKyMgICBlcnJvciAiQ29tcGlsZXIgdGhyZWFkaW5nIHN1cHBvcnQgaXMgbm90IHR1cm5lZCBvbi4gUGxlYXNlIHNldCB0aGUgY29ycmVjdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhyZWFkaW5nOiAtRF9TR0lfTVBfU09VUkNFIgorCisjZWxpZiBkZWZpbmVkIF9fREVDQ1hYCisvLyAgQ29tcGFxIFRydTY0IFVuaXggY3h4CisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogLXB0aHJlYWQiCisKKyNlbGlmIGRlZmluZWQgX19CT1JMQU5EQ19fCisvLyAgQm9ybGFuZAorIyAgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IC10V00iCisKKyNlbGlmIGRlZmluZWQgIF9fTVdFUktTX18KKy8vICBNZXRyb3dlcmtzIENvZGVXYXJyaW9yCisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogZWl0aGVyIC1ydW50aW1lIHNtLCAtcnVudGltZSBzbWQsIC1ydW50aW1lIGRtLCBvciAtcnVudGltZSBkbWQiCisKKyNlbGlmIGRlZmluZWQgIF9fU1VOUFJPX0NDCisvLyAgU3VuIFdvcmtzaG9wIENvbXBpbGVyIEMrKworIyAgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IC1tdCIKKworI2VsaWYgZGVmaW5lZCBfX0hQX2FDQworLy8gIEhQIGFDQworIyAgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IC1tdCIKKworI2VsaWYgZGVmaW5lZChfX0lCTUNQUF9fKQorLy8gIElCTSBWaXN1YWwgQWdlCisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBjb21waWxlIHRoZSBjb2RlIHdpdGggdGhlIHhsQ19yIGNvbXBpbGVyIgorCisjZWxpZiBkZWZpbmVkIF9NU0NfVkVSCisvLyAgTWljcm9zb2Z0IFZpc3VhbCBDKysKKy8vCisvLyAgTXVzdCByZW1haW4gdGhlIGxhc3QgI2VsaWYgc2luY2Ugc29tZSBvdGhlciB2ZW5kb3JzIChNZXRyb3dlcmtzLCBmb3IKKy8vICBleGFtcGxlKSBhbHNvICNkZWZpbmUgX01TQ19WRVIKKyMgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IGVpdGhlciAvTVQgL01UZCAvTUQgb3IgL01EZCIKKworI2Vsc2UKKworIyAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uICBQbGVhc2UgY29uc3VsdCB5b3VyIGNvbXBpbGVyJ3MgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbnMgdG8gdXNlIgorCisjZW5kaWYgLy8gY29tcGlsZXJzCisKKyNlbmRpZiAvLyBCT09TVF9IQVNfVEhSRUFEUworCisjZW5kaWYgLy8gQk9PU1RfQ09ORklHX1JFUVVJUkVTX1RIUkVBRFNfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zZWxlY3RfY29tcGlsZXJfY29uZmlnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3NlbGVjdF9jb21waWxlcl9jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkM2NkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zZWxlY3RfY29tcGlsZXJfY29uZmlnLmhwcApAQCAtMCwwICsxLDExMiBAQAorLy8gIEJvb3N0IGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc2VsZWN0aW9uIGhlYWRlciBmaWxlCisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBNYXJ0aW4gV2lsbGUgMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IEd1aWxsYXVtZSBNZWxxdWlvbmQgMjAwMy4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gbG9jYXRlIHdoaWNoIGNvbXBpbGVyIHdlIGFyZSB1c2luZyBhbmQgZGVmaW5lCisvLyBCT09TVF9DT01QSUxFUl9DT05GSUcgYXMgbmVlZGVkOiAKKworI2lmIGRlZmluZWQoX19HQ0NYTUxfXykKKy8vIEdDQy1YTUwgZW11bGF0ZXMgb3RoZXIgY29tcGlsZXJzLCBpdCBoYXMgdG8gYXBwZWFyIGZpcnN0IGhlcmUhCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djY194bWwuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9DUkFZQykKKy8vIEVERyBiYXNlZCBDcmF5IGNvbXBpbGVyOgorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jcmF5LmhwcCIKKworI2VsaWYgZGVmaW5lZCBfX0NVREFDQ19fCisvLyAgTlZJRElBIENVREEgQysrIGNvbXBpbGVyIGZvciBHUFUKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbnZjYy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19DT01PX18KKy8vICBDb21lYXUgQysrCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbWVhdS5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19QQVRIU0NBTEVfXykgJiYgKF9fUEFUSENDX18gPj0gNCkKKy8vIFBhdGhTY2FsZSBFS09QYXRoIGNvbXBpbGVyIChoYXMgdG8gY29tZSBiZWZvcmUgY2xhbmcgYW5kIGdjYykKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvcGF0aHNjYWxlLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKSB8fCBkZWZpbmVkKF9fSUNMKSB8fCBkZWZpbmVkKF9fSUNDKSB8fCBkZWZpbmVkKF9fRUNDKQorLy8gIEludGVsCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2ludGVsLmhwcCIKKworI2VsaWYgZGVmaW5lZCBfX2NsYW5nX18KKy8vICBDbGFuZyBDKysgZW11bGF0ZXMgR0NDLCBzbyBpdCBoYXMgdG8gYXBwZWFyIGVhcmx5LgorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jbGFuZy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19ETUNfXworLy8gIERpZ2l0YWwgTWFycyBDKysKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvZGlnaXRhbG1hcnMuaHBwIgorCisjIGVsaWYgZGVmaW5lZCBfX0dOVUNfXworLy8gIEdOVSBDKys6CisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djYy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19LQ0MKKy8vICBLYWkgQysrCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19zZ2kKKy8vICBTR0kgTUlQU3BybyBDKysKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvc2dpX21pcHNwcm8uaHBwIgorCisjZWxpZiBkZWZpbmVkIF9fREVDQ1hYCisvLyAgQ29tcGFxIFRydTY0IFVuaXggY3h4CisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwIgorCisjZWxpZiBkZWZpbmVkIF9fZ2hzCisvLyAgR3JlZW5oaWxscyBDKysKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvZ3JlZW5oaWxscy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19DT0RFR0VBUkNfXworLy8gIENvZGVHZWFyIC0gbXVzdCBiZSBjaGVja2VkIGZvciBiZWZvcmUgQm9ybGFuZAorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9jb2RlZ2Vhci5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19CT1JMQU5EQ19fCisvLyAgQm9ybGFuZAorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9ib3JsYW5kLmhwcCIKKworI2VsaWYgZGVmaW5lZCAgX19NV0VSS1NfXworLy8gIE1ldHJvd2Vya3MgQ29kZVdhcnJpb3IKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbWV0cm93ZXJrcy5ocHAiCisKKyNlbGlmIGRlZmluZWQgIF9fU1VOUFJPX0NDCisvLyAgU3VuIFdvcmtzaG9wIENvbXBpbGVyIEMrKworIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci9zdW5wcm9fY2MuaHBwIgorCisjZWxpZiBkZWZpbmVkIF9fSFBfYUNDCisvLyAgSFAgYUNDCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19NUkNfXykgfHwgZGVmaW5lZChfX1NDX18pCisvLyAgTVBXIE1yQ3BwIG9yIFNDcHAKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJuZG5ib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcCIKKworI2VsaWYgZGVmaW5lZChfX0lCTUNQUF9fKQorLy8gIElCTSBWaXN1YWwgQWdlCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3ZhY3BwLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX1BHSSkKKy8vICBQb3J0bGFuZCBHcm91cCBJbmMuCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAiCisKKyNlbGlmIGRlZmluZWQgX01TQ19WRVIKKy8vICBNaWNyb3NvZnQgVmlzdWFsIEMrKworLy8KKy8vICBNdXN0IHJlbWFpbiB0aGUgbGFzdCAjZWxpZiBzaW5jZSBzb21lIG90aGVyIHZlbmRvcnMgKE1ldHJvd2Vya3MsIGZvcgorLy8gIGV4YW1wbGUpIGFsc28gI2RlZmluZSBfTVNDX1ZFUgorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9jb21waWxlci92aXN1YWxjLmhwcCIKKworI2VsaWYgZGVmaW5lZCAoQk9PU1RfQVNTRVJUX0NPTkZJRykKKy8vIHRoaXMgbXVzdCBjb21lIGxhc3QgLSBnZW5lcmF0ZSBhbiBlcnJvciBpZiB3ZSBkb24ndAorLy8gcmVjb2duaXNlIHRoZSBjb21waWxlcjoKKyMgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIC0gcGxlYXNlIGNvbmZpZ3VyZSAoaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcvY29uZmlnLmh0bSNjb25maWd1cmluZykgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyB0byB0aGUgbWFpbiBib29zdCBtYWlsaW5nIGxpc3QgKGh0dHA6Ly93d3cuYm9vc3Qub3JnL21vcmUvbWFpbGluZ19saXN0cy5odG0jbWFpbikiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc2VsZWN0X3BsYXRmb3JtX2NvbmZpZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zZWxlY3RfcGxhdGZvcm1fY29uZmlnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWQ1NmYzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc2VsZWN0X3BsYXRmb3JtX2NvbmZpZy5ocHAKQEAgLTAsMCArMSwxMDUgQEAKKy8vICBCb29zdCBjb21waWxlciBjb25maWd1cmF0aW9uIHNlbGVjdGlvbiBoZWFkZXIgZmlsZQorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyBsb2NhdGUgd2hpY2ggcGxhdGZvcm0gd2UgYXJlIG9uIGFuZCBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHIGFzIG5lZWRlZC4KKy8vIE5vdGUgdGhhdCB3ZSBkZWZpbmUgdGhlIGhlYWRlcnMgdG8gaW5jbHVkZSB1c2luZyAiaGVhZGVyX25hbWUiIG5vdAorLy8gPGhlYWRlcl9uYW1lPiBpbiBvcmRlciB0byBwcmV2ZW50IG1hY3JvIGV4cGFuc2lvbiB3aXRoaW4gdGhlIGhlYWRlcgorLy8gbmFtZSAoZm9yIGV4YW1wbGUgImxpbnV4IiBpcyBhIG1hY3JvIG9uIGxpbnV4IHN5c3RlbXMpLgorCisjaWYgKGRlZmluZWQobGludXgpIHx8IGRlZmluZWQoX19saW51eCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19HTlVfXykgfHwgZGVmaW5lZChfX0dMSUJDX18pKSAmJiAhZGVmaW5lZChfQ1JBWUMpCisvLyBsaW51eCwgYWxzbyBvdGhlciBwbGF0Zm9ybXMgKEh1cmQgZXRjKSB0aGF0IHVzZSBHTElCQywgc2hvdWxkIHRoZXNlIHJlYWxseSBoYXZlIHRoZWlyIG93biBjb25maWcgaGVhZGVycyB0aG91Z2g/CisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbGludXguaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKKy8vIEJTRDoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9ic2QuaHBwIgorCisjZWxpZiBkZWZpbmVkKHN1bikgfHwgZGVmaW5lZChfX3N1bikKKy8vIHNvbGFyaXM6CisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vc29sYXJpcy5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19zZ2kpCisvLyBTR0kgSXJpeDoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9pcml4LmhwcCIKKworI2VsaWYgZGVmaW5lZChfX2hwdXgpCisvLyBocCB1bml4OgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2hwdXguaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCisvLyBjeWd3aW4gaXMgbm90IHdpbjMyOgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2N5Z3dpbi5ocHAiCisKKyNlbGlmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChXSU4zMikKKy8vIHdpbjMyOgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3dpbjMyLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX0JFT1NfXykKKy8vIEJlT1MKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcCIKKworI2VsaWYgZGVmaW5lZChtYWNpbnRvc2gpIHx8IGRlZmluZWQoX19BUFBMRV9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfQ0NfXykKKy8vIE1hY09TCisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vbWFjb3MuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fSUJNQ1BQX18pIHx8IGRlZmluZWQoX0FJWCkKKy8vIElCTQorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FpeC5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19hbWlnYW9zX18pCisvLyBBbWlnYU9TCisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vYW1pZ2Fvcy5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19RTlhOVE9fXykKKy8vIFFOWDoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9xbnhudG8uaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fVlhXT1JLU19fKQorLy8gdnhXb3JrczoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9wbGF0Zm9ybS92eHdvcmtzLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSAKKy8vIFN5bWJpYW46IAorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL3N5bWJpYW4uaHBwIiAKKworI2VsaWYgZGVmaW5lZChfQ1JBWUMpCisvLyBDcmF5OgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwIiAKKworI2VsaWYgZGVmaW5lZChfX1ZNUykgCisvLyBWTVM6CisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJuZG5ib29zdC9jb25maWcvcGxhdGZvcm0vdm1zLmhwcCIgCisjZWxzZQorCisjICBpZiBkZWZpbmVkKHVuaXgpIFwKKyAgICAgIHx8IGRlZmluZWQoX191bml4KSBcCisgICAgICB8fCBkZWZpbmVkKF9YT1BFTl9TT1VSQ0UpIFwKKyAgICAgIHx8IGRlZmluZWQoX1BPU0lYX1NPVVJDRSkKKworICAgLy8gZ2VuZXJpYyB1bml4IHBsYXRmb3JtOgorCisjICBpZm5kZWYgQk9PU1RfSEFTX1VOSVNURF9ICisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjICBlbmRpZgorCisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisjICBlbmRpZgorCisjICBpZiBkZWZpbmVkIChCT09TVF9BU1NFUlRfQ09ORklHKQorICAgICAgLy8gdGhpcyBtdXN0IGNvbWUgbGFzdCAtIGdlbmVyYXRlIGFuIGVycm9yIGlmIHdlIGRvbid0CisgICAgICAvLyByZWNvZ25pc2UgdGhlIHBsYXRmb3JtOgorIyAgICAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0gLSBwbGVhc2UgY29uZmlndXJlIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMgdG8gYm9vc3Qub3JnIgorIyAgZW5kaWYKKworI2VuZGlmCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zZWxlY3Rfc3RkbGliX2NvbmZpZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zZWxlY3Rfc3RkbGliX2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAxNjdhMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3NlbGVjdF9zdGRsaWJfY29uZmlnLmhwcApAQCAtMCwwICsxLDg1IEBACisvLyAgQm9vc3QgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzZWxlY3Rpb24gaGVhZGVyIGZpbGUKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gbG9jYXRlIHdoaWNoIHN0ZCBsaWIgd2UgYXJlIHVzaW5nIGFuZCBkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyBhcyBuZWVkZWQ6CisKKy8vIEZpcnN0IGluY2x1ZGUgPGNzdGRkZWY+IHRvIGRldGVybWluZSBpZiBzb21lIHZlcnNpb24gb2YgU1RMcG9ydCBpcyBpbiB1c2UgYXMgdGhlIHN0ZCBsaWIKKy8vIChkbyBub3QgcmVseSBvbiB0aGlzIGhlYWRlciBiZWluZyBpbmNsdWRlZCBzaW5jZSB1c2VycyBjYW4gc2hvcnQtY2lyY3VpdCB0aGlzIGhlYWRlciAKKy8vICBpZiB0aGV5IGtub3cgd2hvc2Ugc3RkIGxpYiB0aGV5IGFyZSB1c2luZy4pCisjaWZkZWYgX19jcGx1c3BsdXMKKyMgIGluY2x1ZGUgPGNzdGRkZWY+CisjZWxzZQorIyAgaW5jbHVkZSA8c3RkZGVmLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19TR0lfU1RMX1BPUlQpIHx8IGRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKy8vIFNUTFBvcnQgbGlicmFyeTsgdGhpcyBfbXVzdF8gY29tZSBmaXJzdCwgb3RoZXJ3aXNlIHNpbmNlCisvLyBTVExwb3J0IHR5cGljYWxseSBzaXRzIG9uIHRvcCBvZiBzb21lIG90aGVyIGxpYnJhcnksIHdlCisvLyBjYW4gZW5kIHVwIGRldGVjdGluZyB0aGF0IGZpcnN0IHJhdGhlciB0aGFuIFNUTHBvcnQ6CisjICBkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9zdGxwb3J0LmhwcCIKKworI2Vsc2UKKworLy8gSWYgb3VyIHN0ZCBsaWIgd2FzIG5vdCBzb21lIHZlcnNpb24gb2YgU1RMcG9ydCwgdGhlbiBpbmNsdWRlIDx1dGlsaXR5PiBhcyBpdCBpcyBhYm91dCAKKy8vIHRoZSBzbWFsbGVzdCBvZiB0aGUgc3RkIGxpYiBoZWFkZXJzIHRoYXQgaW5jbHVkZXMgcmVhbCBDKysgc3R1ZmYuICAoU29tZSBzdGQgbGlicyBkbyBub3QKKy8vIGluY2x1ZGUgdGhlaXIgQysrLXJlbGF0ZWQgbWFjcm9zIGluIDxjc3RkZGVmPiBzbyB0aGlzIGFkZGl0aW9uYWwgaW5jbHVkZSBtYWtlcyBzdXJlCisvLyB3ZSBnZXQgdGhvc2UgZGVmaW5pdGlvbnMpCisvLyAoYWdhaW4gZG8gbm90IHJlbHkgb24gdGhpcyBoZWFkZXIgYmVpbmcgaW5jbHVkZWQgc2luY2UgdXNlcnMgY2FuIHNob3J0LWNpcmN1aXQgdGhpcyAKKy8vICBoZWFkZXIgaWYgdGhleSBrbm93IHdob3NlIHN0ZCBsaWIgdGhleSBhcmUgdXNpbmcuKQorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHA+CisKKyNpZiBkZWZpbmVkKF9fTElCQ09NT19fKQorLy8gQ29tZWF1IFNUTDoKKyNkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjb21vLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX1NURF9SV0NPTVBJTEVSX0hfXykgfHwgZGVmaW5lZChfUldTVERfVkVSKQorLy8gUm9ndWUgV2F2ZSBsaWJyYXJ5OgorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvcm9ndWV3YXZlLmhwcCIKKworI2VsaWYgZGVmaW5lZChfTElCQ1BQX1ZFUlNJT04pCisvLyBsaWJjKysKKyMgIGRlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICJuZG5ib29zdC9jb25maWcvc3RkbGliL2xpYmNwcC5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19HTElCQ1BQX18pIHx8IGRlZmluZWQoX19HTElCQ1hYX18pCisvLyBHTlUgbGlic3RkYysrIDMKKyMgIGRlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICJuZG5ib29zdC9jb25maWcvc3RkbGliL2xpYnN0ZGNwcDMuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fU1RMX0NPTkZJR19IKQorLy8gZ2VuZXJpYyBTR0kgU1RMCisjICBkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAibmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9zZ2kuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fTVNMX0NQUF9fKQorLy8gTVNMIHN0YW5kYXJkIGxpYjoKKyMgIGRlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICJuZG5ib29zdC9jb25maWcvc3RkbGliL21zbC5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19JQk1DUFBfXykKKy8vIHRha2UgdGhlIGRlZmF1bHQgVkFDUFAgc3RkIGxpYgorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvdmFjcHAuaHBwIgorCisjZWxpZiBkZWZpbmVkKE1TSVBMX0NPTVBJTEVfSCkKKy8vIE1vZGVuYSBDKysgc3RhbmRhcmQgbGlicmFyeQorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbW9kZW5hLmhwcCIKKworI2VsaWYgKGRlZmluZWQoX1lWQUxTKSAmJiAhZGVmaW5lZChfX0lCTUNQUF9fKSkgfHwgZGVmaW5lZChfQ1BQTElCX1ZFUikKKy8vIERpbmt1bXdhcmUgTGlicmFyeSAodGhpcyBoYXMgdG8gYXBwZWFyIGFmdGVyIGFueSBwb3NzaWJsZSByZXBsYWNlbWVudCBsaWJyYXJpZXMpOgorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgIm5kbmJvb3N0L2NvbmZpZy9zdGRsaWIvZGlua3Vtd2FyZS5ocHAiCisKKyNlbGlmIGRlZmluZWQgKEJPT1NUX0FTU0VSVF9DT05GSUcpCisvLyB0aGlzIG11c3QgY29tZSBsYXN0IC0gZ2VuZXJhdGUgYW4gZXJyb3IgaWYgd2UgZG9uJ3QKKy8vIHJlY29nbmlzZSB0aGUgbGlicmFyeToKKyMgIGVycm9yICJVbmtub3duIHN0YW5kYXJkIGxpYnJhcnkgLSBwbGVhc2UgY29uZmlndXJlIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMgdG8gYm9vc3Qub3JnIgorCisjZW5kaWYKKworI2VuZGlmCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvZGlua3Vtd2FyZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvZGlua3Vtd2FyZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM3Yjk4NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJlLmhwcApAQCAtMCwwICsxLDE1NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4KKy8vICAoQykgQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEuCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLgorLy8gIChDKSBDb3B5cmlnaHQgR3VpbGxhdW1lIE1lbHF1aW9uZCAyMDAzLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkgY29uZmlnOgorCisjaWYgIWRlZmluZWQoX1lWQUxTKSAmJiAhZGVmaW5lZChfQ1BQTElCX1ZFUikKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwPgorI2lmICFkZWZpbmVkKF9ZVkFMUykgJiYgIWRlZmluZWQoX0NQUExJQl9WRVIpCisjZXJyb3IgVGhpcyBpcyBub3QgdGhlIERpbmt1bXdhcmUgbGliIQorI2VuZGlmCisjZW5kaWYKKworCisjaWYgZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgKF9DUFBMSUJfVkVSID49IDMwNikKKyAgIC8vIGZ1bGwgZGlua3Vtd2FyZSAzLjA2IGFuZCBhYm92ZQorICAgLy8gZnVsbHkgY29uZm9ybWluZyBwcm92aWRlZCB0aGUgY29tcGlsZXIgc3VwcG9ydHMgaXQ6CisjICBpZiAhKGRlZmluZWQoX0dMT0JBTF9VU0lORykgJiYgKF9HTE9CQUxfVVNJTkcrMCA+IDApKSAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pICYmICFkZWZpbmVkKF9TVEQpICYmICEoZGVmaW5lZChfX0lDQykgJiYgKF9fSUNDID49IDcwMCkpICAgLy8gY2FuIGJlIGRlZmluZWQgaW4geXZhbHMuaAorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICBlbmRpZgorIyAgaWYgIShkZWZpbmVkKF9IQVNfTUVNQkVSX1RFTVBMQVRFU19SRUJJTkQpICYmIChfSEFTX01FTUJFUl9URU1QTEFURVNfUkVCSU5EKzAgPiAwKSkgJiYgIShkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPiAxMzAwKSkgJiYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IKKyMgIGVuZGlmCisjICBkZWZpbmUgQk9PU1RfSEFTX1BBUlRJQUxfU1REX0FMTE9DQVRPUgorIyAgaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDEzMDApCisgICAgICAvLyBpZiB0aGlzIGxpYiB2ZXJzaW9uIGlzIHNldCB1cCBmb3IgdmM2IHRoZW4gdGhlcmUgaXMgbm8gc3RkOjp1c2VfZmFjZXQ6CisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1VTRV9GQUNFVAorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19UV09fQVJHX1VTRV9GQUNFVAorICAgICAgLy8gQyBsaWIgZnVuY3Rpb25zIGFyZW4ndCBpbiBuYW1lc3BhY2Ugc3RkIGVpdGhlcjoKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERDX05BTUVTUEFDRQorICAgICAgLy8gYW5kIG5vciBpcyA8ZXhjZXB0aW9uPgorIyAgICAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTl9TVERfTkFNRVNQQUNFCisjICBlbmRpZgorLy8gVGhlcmUncyBubyBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+IHN1cHBvcnQgdW5sZXNzIF9MT05HTE9ORyBpcyBkZWZpbmVkOgorIyAgaWYgIWRlZmluZWQoX0xPTkdMT05HKSAmJiAoX0NQUExJQl9WRVIgPD0gMzEwKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTCisjICBlbmRpZgorLy8gMy4wNiBhcHBlYXJzIHRvIGhhdmUgKG5vbi1zZ2kgdmVyc2lvbnMgb2YpIDxoYXNoX3NldD4gJiA8aGFzaF9tYXA+LAorLy8gYW5kIG5vIDxzbGlzdD4gYXQgYWxsCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX01TVkNfU1REX0lURVJBVE9SIDEKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1IKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURURfSVRFUkFUT1JfQ09OU1RSVUNUT1JTCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1VTRV9GQUNFVAorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9PVVRQVVRfSVRFUkFUT1JfQVNTSUdOCisjICBkZWZpbmUgQk9PU1RfSEFTX01BQ1JPX1VTRV9GQUNFVAorIyAgaWZuZGVmIF9DUFBMSUJfVkVSCisgICAgICAvLyBVcGRhdGVkIERpbmt1bSBsaWJyYXJ5IGRlZmluZXMgdGhpcywgYW5kIHByb3ZpZGVzCisgICAgICAvLyBpdHMgb3duIG1pbiBhbmQgbWF4IGRlZmluaXRpb25zLCBhcyBkb2VzIE1UQSB2ZXJzaW9uLgorIyAgICAgaWZuZGVmIF9fTVRBX18gCisjICAgICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX01JTl9NQVgKKyMgICAgIGVuZGlmCisjICAgICBkZWZpbmUgQk9PU1RfTk9fTVNfSU5UNjRfTlVNRVJJQ19MSU1JVFMKKyMgIGVuZGlmCisjZW5kaWYKKworLy8KKy8vIHN0ZCBleHRlbnNpb24gbmFtZXNwYWNlIGlzIHN0ZGV4dCBmb3IgdmM3LjEgYW5kIGxhdGVyLCAKKy8vIHRoZSBzYW1lIGFwcGxpZXMgdG8gb3RoZXIgY29tcGlsZXJzIHRoYXQgc2l0IG9uIHRvcAorLy8gb2YgdmM3LjEgKEludGVsIGFuZCBDb21lYXUpOgorLy8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTMxMCkgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgZGVmaW5lIEJPT1NUX1NURF9FWFRFTlNJT05fTkFNRVNQQUNFIHN0ZGV4dAorI2VuZGlmCisKKworI2lmIChkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPD0gMTMwMCkgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKSkgfHwgIWRlZmluZWQoX0NQUExJQl9WRVIpIHx8IChfQ1BQTElCX1ZFUiA8IDMwNikKKyAgIC8vIGlmIHdlJ3JlIHVzaW5nIGEgZGlua3VtIGxpYiB0aGF0J3MKKyAgIC8vIGJlZW4gY29uZmlndXJlZCBmb3IgVkM2LzcgdGhlbiB0aGVyZSBpcworICAgLy8gbm8gaXRlcmF0b3IgdHJhaXRzICh0cnVlIGV2ZW4gZm9yIGljbCkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1JfVFJBSVRTCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19JQ0wpICYmIChfX0lDTCA8IDgwMCkgJiYgZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgKF9DUFBMSUJfVkVSIDw9IDMxMCkKKy8vIEludGVsIEMrKyBjaG9rZXMgb3ZlciBhbnkgbm9uLXRyaXZpYWwgdXNlIG9mIDxsb2NhbGU+CisvLyB0aGlzIG1heSBiZSBhbiBvdmVybHkgcmVzdHJpY3RpdmUgZGVmaW5lLCBidXQgcmVnZXggZmFpbHMgd2l0aG91dCBpdDoKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjZW5kaWYKKworI2luY2x1ZGUgPHR5cGVpbmZvPgorI2lmICggKCFfSEFTX0VYQ0VQVElPTlMgJiYgIWRlZmluZWQoX19naHNfXykpIHx8ICghX0hBU19OQU1FU1BBQ0UgJiYgZGVmaW5lZChfX2doc19fKSkgKSAmJiAhZGVmaW5lZChfX1RJX0NPTVBJTEVSX1ZFUlNJT05fXykKKyMgIGRlZmluZSBCT09TVF9OT19TVERfVFlQRUlORk8gICAgCisjZW5kaWYgIAorCisvLyAgQysrMHggaGVhZGVycyBpbXBsZW1lbnRlZCBpbiA1MjAgKGFzIHNoaXBwZWQgYnkgTWljcm9zb2Z0KQorLy8KKyNpZiAhZGVmaW5lZChfQ1BQTElCX1ZFUikgfHwgX0NQUExJQl9WRVIgPCA1MjAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSCisjZW5kaWYKKworI2lmICghZGVmaW5lZChfSEFTX1RSMV9JTVBPUlRTKSB8fCAoX0hBU19UUjFfSU1QT1JUUyswID09IDApKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjZW5kaWYKKworLy8gIEMrKzB4IGhlYWRlcnMgaW1wbGVtZW50ZWQgaW4gNTQwIChhcyBzaGlwcGVkIGJ5IE1pY3Jvc29mdCkKKy8vCisjaWYgIWRlZmluZWQoX0NQUExJQl9WRVIpIHx8IF9DUFBMSUJfVkVSIDwgNTQwCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyNlbmRpZgorCisvLworLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCAoZnVsbHkpIGltcGxlbWVudGVkOgorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorCisjaWZkZWYgX0NQUExJQl9WRVIKKyMgIGRlZmluZSBCT09TVF9ESU5LVU1XQVJFX1NURExJQiBfQ1BQTElCX1ZFUgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9ESU5LVU1XQVJFX1NURExJQiAxCisjZW5kaWYKKworI2lmZGVmIF9DUFBMSUJfVkVSCisjICBkZWZpbmUgQk9PU1RfU1RETElCICJEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfQ1BQTElCX1ZFUikKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfU1RETElCICJEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAxLngiCisjZW5kaWYKKworCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjb21vLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjb21vLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2ZlOWYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL2xpYmNvbW8uaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAyMDAyIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgQ29tZWF1IFNUTDoKKworI2lmICFkZWZpbmVkKF9fTElCQ09NT19fKQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL25vX3RyMS91dGlsaXR5LmhwcD4KKyMgIGlmICFkZWZpbmVkKF9fTElCQ09NT19fKQorIyAgICAgIGVycm9yICJUaGlzIGlzIG5vdCB0aGUgQ29tZWF1IFNUTCEiCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBzdGQ6OnN0cmVhbWJ1Zjx3Y2hhcl90PiBpcyBub24tc3RhbmRhcmQKKy8vIE5PVEU6IHZlcnNpb25zIG9mIGxpYmNvbW8gcHJpb3IgdG8gYmV0YTI4IGhhdmUgb2N0YWwgdmVyc2lvbiBudW1iZXJpbmcsCisvLyBlLmcuIHZlcnNpb24gMjUgaXMgMjEgKGRlYykKKyNpZiBfX0xJQkNPTU9fVkVSU0lPTl9fIDw9IDIyCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyNlbmRpZgorCisjaWYgKF9fTElCQ09NT19WRVJTSU9OX18gPD0gMzEpICYmIGRlZmluZWQoX1dJTjMyKQorI2RlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKyNpZiBfX0xJQkNPTU9fVkVSU0lPTl9fID49IDMxCisjICBkZWZpbmUgQk9PU1RfSEFTX0hBU0gKKyMgIGRlZmluZSBCT09TVF9IQVNfU0xJU1QKKyNlbmRpZgorCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisvLworLy8gSW50cmluc2ljIHR5cGVfdHJhaXRzIHN1cHBvcnQuCisvLyBUaGUgU0dJIFNUTCBoYXMgaXQncyBvd24gX190eXBlX3RyYWl0cyBjbGFzcywgd2hpY2gKKy8vIGhhcyBpbnRyaW5zaWMgY29tcGlsZXIgc3VwcG9ydCB3aXRoIFNHSSdzIGNvbXBpbGVycy4KKy8vIFdoYXRldmVyIG1hcCBTR0kgc3R5bGUgdHlwZSB0cmFpdHMgdG8gYm9vc3QgZXF1aXZhbGVudHM6CisvLworI2RlZmluZSBCT09TVF9IQVNfU0dJX1RZUEVfVFJBSVRTCisKKyNkZWZpbmUgQk9PU1RfU1RETElCICJDb21lYXUgc3RhbmRhcmQgbGlicmFyeSAiIEJPT1NUX1NUUklOR0laRShfX0xJQkNPTU9fVkVSU0lPTl9fKQorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjcHAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL2xpYmNwcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q1NzQ0MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjcHAuaHBwCkBAIC0wLDAgKzEsMzcgQEAKKy8vICAoQykgQ29weXJpZ2h0IENocmlzdG9waGVyIEplZmZlcnNvbiAyMDExLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBjb25maWcgZm9yIGxpYmMrKworLy8gIE1pZ2h0IG5lZWQgbW9yZSBpbiBoZXJlIGxhdGVyLgorCisjaWYgIWRlZmluZWQoX0xJQkNQUF9WRVJTSU9OKQorIyAgaW5jbHVkZSA8Y2lzbzY0Nj4KKyMgIGlmICFkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikKKyMgICAgICBlcnJvciAiVGhpcyBpcyBub3QgbGliYysrISIKKyMgIGVuZGlmCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9TVERMSUIgImxpYmMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9MSUJDUFBfVkVSU0lPTikKKworI2RlZmluZSBCT09TVF9IQVNfVEhSRUFEUworCisjaWZkZWYgX0xJQkNQUF9IQVNfTk9fVkFSSUFESUNTCisjICAgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyNlbmRpZgorCisvLworLy8gVGhlc2UgYXBwZWFyIHRvIGJlIHVudXNhYmxlL2luY29tcGxldGUgc28gZmFyOgorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKworLy8gbGliYysrIHVzZXMgYSBub24tc3RhbmRhcmQgbWVzc2FnZXNfYmFzZQorI2RlZmluZSBCT09TVF9OT19TVERfTUVTU0FHRVMKKworLy8gIC0tLSBlbmQgLS0tCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbGlic3RkY3BwMy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbGlic3RkY3BwMy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc2YWI3NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAzLmhwcApAQCAtMCwwICsxLDE2NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEuCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBjb25maWcgZm9yIGxpYnN0ZGMrKyB2MworLy8gIG5vdCBtdWNoIHRvIGdvIGluIGhlcmU6CisKKyNkZWZpbmUgQk9PU1RfR05VX1NURExJQiAxCisKKyNpZmRlZiBfX0dMSUJDWFhfXworI2RlZmluZSBCT09TVF9TVERMSUIgIkdOVSBsaWJzdGRjKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX0dMSUJDWFhfXykKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1NURExJQiAiR05VIGxpYnN0ZGMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fR0xJQkNQUF9fKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfR0xJQkNQUF9VU0VfV0NIQVJfVCkgJiYgIWRlZmluZWQoX0dMSUJDWFhfVVNFX1dDSEFSX1QpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1dDSEFSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1dDVFlQRQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9XU1RSSU5HCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX29zZl9fKSAmJiAhZGVmaW5lZChfUkVFTlRSQU5UKSBcCisgICYmICggZGVmaW5lZChfR0xJQkNYWF9IQVZFX0dUSFJfREVGQVVMVCkgfHwgZGVmaW5lZChfR0xJQkNQUF9IQVZFX0dUSFJfREVGQVVMVCkgKQorLy8gR0NDIDMgb24gVHJ1NjQgZm9yY2VzIHRoZSBkZWZpbml0aW9uIG9mIF9SRUVOVFJBTlQgd2hlbiBhbnkgc3RkIGxpYiBoZWFkZXIKKy8vIGZpbGUgaXMgaW5jbHVkZWQsIHRoZXJlZm9yZSBmb3IgY29uc2lzdGVuY3kgd2UgZGVmaW5lIGl0IGhlcmUgYXMgd2VsbC4KKyMgIGRlZmluZSBfUkVFTlRSQU5UCisjZW5kaWYKKworI2lmZGVmIF9fR0xJQkNYWF9fIC8vIGdjYyAzLjQgYW5kIGdyZWF0ZXI6CisjICBpZiBkZWZpbmVkKF9HTElCQ1hYX0hBVkVfR1RIUl9ERUZBVUxUKSBcCisgICAgICAgIHx8IGRlZmluZWQoX0dMSUJDWFhfX1BUSFJFQURTKSBcCisgICAgICAgIHx8IGRlZmluZWQoX0dMSUJDWFhfSEFTX0dUSFJFQURTKSBcCisgICAgICAgIHx8IGRlZmluZWQoX1dJTjMyKSBcCisgICAgICAgIHx8IGRlZmluZWQoX0FJWCkKKyAgICAgIC8vCisgICAgICAvLyBJZiB0aGUgc3RkIGxpYiBoYXMgdGhyZWFkIHN1cHBvcnQgdHVybmVkIG9uLCB0aGVuIHR1cm4gaXQgb24gaW4gQm9vc3QKKyAgICAgIC8vIGFzIHdlbGwuICBXZSBkbyB0aGlzIGJlY2F1c2Ugc29tZSBnY2MtMy40IHN0ZCBsaWIgaGVhZGVycyBkZWZpbmUgX1JFRU5UQU5UCisgICAgICAvLyB3aGlsZSBvdGhlcnMgZG8gbm90Li4uCisgICAgICAvLworIyAgICAgZGVmaW5lIEJPT1NUX0hBU19USFJFQURTCisjICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfRElTQUJMRV9USFJFQURTCisjICBlbmRpZgorI2VsaWYgZGVmaW5lZChfX0dMSUJDUFBfXykgXAorICAgICAgICAmJiAhZGVmaW5lZChfR0xJQkNQUF9IQVZFX0dUSFJfREVGQVVMVCkgXAorICAgICAgICAmJiAhZGVmaW5lZChfR0xJQkNQUF9fUFRIUkVBRFMpCisgICAvLyBkaXNhYmxlIHRocmVhZCBzdXBwb3J0IGlmIHRoZSBzdGQgbGliIHdhcyBidWlsdCBzaW5nbGUgdGhyZWFkZWQ6CisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9USFJFQURTCisjZW5kaWYKKworI2lmIChkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGludXgpIHx8IGRlZmluZWQoX19saW51eF9fKSkgJiYgZGVmaW5lZChfX2FybV9fKSAmJiBkZWZpbmVkKF9HTElCQ1BQX0hBVkVfR1RIUl9ERUZBVUxUKQorLy8gbGludXggb24gYXJtIGFwcGFyZW50bHkgZG9lc24ndCBkZWZpbmUgX1JFRU5UUkFOVAorLy8gc28ganVzdCB0dXJuIG9uIHRocmVhZGluZyBzdXBwb3J0IHdoZW5ldmVyIHRoZSBzdGQgbGliIGlzIHRocmVhZCBzYWZlOgorIyAgZGVmaW5lIEJPT1NUX0hBU19USFJFQURTCisjZW5kaWYKKworI2lmICFkZWZpbmVkKF9HTElCQ1BQX1VTRV9MT05HX0xPTkcpIFwKKyAgICAmJiAhZGVmaW5lZChfR0xJQkNYWF9VU0VfTE9OR19MT05HKVwKKyAgICAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisvLyBNYXkgaGF2ZSBiZWVuIHNldCBieSBjb21waWxlci8qLmhwcCwgYnV0ICJsb25nIGxvbmciIHdpdGhvdXQgbGlicmFyeQorLy8gc3VwcG9ydCBpcyB1c2VsZXNzLgorIyAgdW5kZWYgQk9PU1RfSEFTX0xPTkdfTE9ORworI2VuZGlmCisKKy8vIEFwcGxlIGRvZXNuJ3Qgc2VlbSB0byByZWxpYWJseSBkZWZpbmVkIGEgKnVuaXgqIG1hY3JvCisjaWYgIWRlZmluZWQoQ1lHV0lOKSAmJiAoICBkZWZpbmVkKF9fdW5peF9fKSAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX3VuaXgpICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQodW5peCkgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEVfXykgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX0FQUExFKSAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoQVBQTEUpKQorIyAgaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTElCQ1hYX18pIHx8IChkZWZpbmVkKF9fR0xJQkNQUF9fKSAmJiBfX0dMSUJDUFBfXz49MjAwMjA1MTQpIC8vIEdDQyA+PSAzLjEuMAorIyAgZGVmaW5lIEJPT1NUX1NURF9FWFRFTlNJT05fTkFNRVNQQUNFIF9fZ251X2N4eAorIyAgZGVmaW5lIEJPT1NUX0hBU19TTElTVAorIyAgZGVmaW5lIEJPT1NUX0hBU19IQVNICisjICBkZWZpbmUgQk9PU1RfU0xJU1RfSEVBREVSIDxleHQvc2xpc3Q+CisjIGlmICFkZWZpbmVkKF9fR05VQ19fKSB8fCBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCAzKQorIyAgIGRlZmluZSBCT09TVF9IQVNIX1NFVF9IRUFERVIgPGV4dC9oYXNoX3NldD4KKyMgICBkZWZpbmUgQk9PU1RfSEFTSF9NQVBfSEVBREVSIDxleHQvaGFzaF9tYXA+CisjIGVsc2UKKyMgICBkZWZpbmUgQk9PU1RfSEFTSF9TRVRfSEVBREVSIDxiYWNrd2FyZC9oYXNoX3NldD4KKyMgICBkZWZpbmUgQk9PU1RfSEFTSF9NQVBfSEVBREVSIDxiYWNrd2FyZC9oYXNoX21hcD4KKyMgZW5kaWYKKyNlbmRpZgorCisvLyAgc3RkbGliYysrIEMrKzB4IHN1cHBvcnQgaXMgZGV0ZWN0ZWQgdmlhIF9fR05VQ19fLCBfX0dOVUNfTUlOT1JfXywgYW5kIHBvc3NpYmx5CisvLyAgX19HTlVDX1BBVENITEVWRUxfXyBhdCB0aGUgc3VnZ2VzdGlvbiBvZiBKb25hdGhhbiBXYWtlbHksIG9uZSBvZiB0aGUgc3RkbGliYysrCisvLyAgZGV2ZWxvcGVycy4gSGUgYWxzbyBjb21tZW50ZWQ6CisvLworLy8gICAgICAgIkknbSBub3Qgc3VyZSBob3cgdXNlZnVsIF9fR0xJQkNYWF9fIGlzIGZvciB5b3VyIHB1cnBvc2VzLCBmb3IgaW5zdGFuY2UgaW4KKy8vICAgICAgIEdDQyA0LjIuNCBpdCBpcyBzZXQgdG8gMjAwODA1MTkgYnV0IGluIEdDQyA0LjMuMCBpdCBpcyBzZXQgdG8gMjAwODAzMDUuCisvLyAgICAgICBBbHRob3VnaCA0LjMuMCB3YXMgcmVsZWFzZWQgZWFybGllciB0aGFuIDQuMi40LCBpdCBoYXMgYmV0dGVyIEMrKzB4IHN1cHBvcnQKKy8vICAgICAgIHRoYW4gYW55IHJlbGVhc2UgaW4gdGhlIDQuMiBzZXJpZXMuIgorLy8KKy8vICBBbm90aGVyIHJlc291cmNlIGZvciB1bmRlcnN0YW5kaW5nIHN0ZGxpYmMrKyBmZWF0dXJlcyBpczoKKy8vICBodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL3N0YXR1cy5odG1sI21hbnVhbC5pbnRyby5zdGF0dXMuc3RhbmRhcmQuMjAweAorCisvLyAgQysrMHggaGVhZGVycyBpbiBHQ0MgNC4zLjAgYW5kIGxhdGVyCisvLworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDMpIHx8ICFkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorI2VuZGlmCisKKy8vICBDKysweCBoZWFkZXJzIGluIEdDQyA0LjQuMCBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNCkgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSEFTX1RSMV9DT01QTEVYX0lOVkVSU0VfVFJJRyAKKyMgIGRlZmluZSBCT09TVF9IQVNfVFIxX0NPTVBMRVhfT1ZFUkxPQURTIAorI2VuZGlmCisKKyNpZiAoIWRlZmluZWQoX0dMSUJDWFhfSEFTX0dUSFJFQURTKSB8fCAhZGVmaW5lZChfR0xJQkNYWF9VU0VfQzk5X1NURElOVF9UUjEpKSAmJiAoIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRSkgfHwgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYKSkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjZW5kaWYKKworLy8gIEMrKzB4IGZlYXR1cmVzIGluIEdDQyA0LjUuMCBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNSkgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorI2VuZGlmCisKKy8vICBDKysweCBmZWF0dXJlcyBpbiBHQ0MgNC42LjAgYW5kIGxhdGVyCisvLworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDYpIHx8ICFkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyNlbmRpZgorCisvLyAgQysrMHggZmVhdHVyZXMgaW4gR0NDIDQuNy4wIGFuZCBsYXRlcgorLy8KKyNpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCA3KSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKy8vIE5vdGUgdGhhdCBhbHRob3VnaCA8Y2hyb25vPiBleGlzdGVkIHByaW9yIHRvIDQuNywgInN0ZWFkX2Nsb2NrIiBpcyBzcGVsbGVkICJtb25vdG9uaWNfY2xvY2siCisvLyBzbyA0LjcuMCBpcyB0aGUgZmlyc3QgdHJ1ZWx5IGNvbmZvcm1pbmcgb25lLgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BTExPQ0FUT1IKKyNlbmRpZgorLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCAoZnVsbHkhKSBpbXBsZW1lbnRlZAorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVE9NSUNfU01BUlRfUFRSCisKKy8vICAtLS0gZW5kIC0tLQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL21vZGVuYS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbW9kZW5hLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzI5ZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL21vZGVuYS5ocHAKQEAgLTAsMCArMSw1NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgTW9kZW5hIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IChjb21lcyB3aXRoIEtBSSBDKyspCisKKyNpZiAhZGVmaW5lZChNU0lQTF9DT01QSUxFX0gpCisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwPgorIyAgaWYgIWRlZmluZWQoX19NU0lQTF9DT01QSUxFX0gpCisjICAgICAgZXJyb3IgIlRoaXMgaXMgbm90IHRoZSBNb2RlbmEgQysrIGxpYnJhcnkhIgorIyAgZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIE1TSVBMX05MX1RZUEVTCisjZGVmaW5lIEJPT1NUX05PX1NURF9NRVNTQUdFUworI2VuZGlmCisKKyNpZm5kZWYgTVNJUExfV0NIQVJUCisjZGVmaW5lIEJPT1NUX05PX1NURF9XU1RSSU5HCisjZW5kaWYKKworLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCBpbXBsZW1lbnRlZAorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZPUldBUkRfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVVRVUkUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfU0VUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVE9NSUNfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVTkNUSU9OQUwKKworI2RlZmluZSBCT09TVF9TVERMSUIgIk1vZGVuYSBDKysgc3RhbmRhcmQgbGlicmFyeSIKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbXNsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9tc2wuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NGQ2MjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvbXNsLmhwcApAQCAtMCwwICsxLDg0IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEYXJpbiBBZGxlciAyMDAxLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBNZXRyb3dlcmtzIHN0YW5kYXJkIGxpYnJhcnk6CisKKyNpZm5kZWYgX19NU0xfQ1BQX18KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHA+CisjICBpZm5kZWYgX19NU0xfQ1BQX18KKyMgICAgIGVycm9yIFRoaXMgaXMgbm90IHRoZSBNU0wgc3RhbmRhcmQgbGlicmFyeSEKKyMgIGVuZGlmCisjZW5kaWYKKworI2lmIF9fTVNMX0NQUF9fID49IDB4NjAwMCAgLy8gUHJvIDYKKyMgIGRlZmluZSBCT09TVF9IQVNfSEFTSAorIyAgZGVmaW5lIEJPT1NUX1NURF9FWFRFTlNJT05fTkFNRVNQQUNFIE1ldHJvd2Vya3MKKyNlbmRpZgorI2RlZmluZSBCT09TVF9IQVNfU0xJU1QKKworI2lmIF9fTVNMX0NQUF9fIDwgMHg2MjA5CisjICBkZWZpbmUgQk9PU1RfTk9fU1REX01FU1NBR0VTCisjZW5kaWYKKworLy8gY2hlY2sgQyBsaWIgdmVyc2lvbiBmb3IgPHN0ZGludC5oPgorI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpZiBkZWZpbmVkKF9fTVNMX18pICYmIChfX01TTF9fID49IDB4NTAwMCkKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyMgIGlmICFkZWZpbmVkKF9fUEFMTU9TX1RSQVBTX18pCisjICAgIGRlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyMgIGVuZGlmCisgICAvLyBib2lsZXJwbGF0ZSBjb2RlOgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVdNVCkgfHwgX01TTF9USFJFQURTQUZFCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisjaWZkZWYgX01TTF9OT19FWFBMSUNJVF9GVU5DX1RFTVBMQVRFX0FSRworIyAgZGVmaW5lIEJPT1NUX05PX1NURF9VU0VfRkFDRVQKKyMgIGRlZmluZSBCT09TVF9IQVNfVFdPX0FSR19VU0VfRkFDRVQKKyNlbmRpZgorCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisjZGVmaW5lIEJPT1NUX1NURExJQiAiTWV0cm93ZXJrcyBTdGFuZGFyZCBMaWJyYXJ5IHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19NU0xfQ1BQX18pCisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvcm9ndWV3YXZlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9yb2d1ZXdhdmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NzEwNzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvcm9ndWV3YXZlLmhwcApAQCAtMCwwICsxLDE4NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCb3JpcyBHdWJlbmtvIDIwMDcuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIFJvZ3VlIFdhdmUgc3RkIGxpYjoKKworI2RlZmluZSBCT09TVF9SV19TVERMSUIgMSAKKworI2lmICFkZWZpbmVkKF9fU1REX1JXQ09NUElMRVJfSF9fKSAmJiAhZGVmaW5lZChfUldTVERfVkVSKQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL25vX3RyMS91dGlsaXR5LmhwcD4KKyMgIGlmICFkZWZpbmVkKF9fU1REX1JXQ09NUElMRVJfSF9fKSAmJiAhZGVmaW5lZChfUldTVERfVkVSKQorIyAgICAgZXJyb3IgVGhpcyBpcyBub3QgdGhlIFJvZ3VlIFdhdmUgc3RhbmRhcmQgbGlicmFyeQorIyAgZW5kaWYKKyNlbmRpZgorLy8KKy8vIGZpZ3VyZSBvdXQgYSBjb25zaXN0ZW50IHZlcnNpb24gbnVtYmVyOgorLy8KKyNpZm5kZWYgX1JXU1REX1ZFUgorIyAgZGVmaW5lIEJPT1NUX1JXU1REX1ZFUiAweDAxMDAwMAorI2VsaWYgX1JXU1REX1ZFUiA8IDB4MDEwMDAwCisjICBkZWZpbmUgQk9PU1RfUldTVERfVkVSIChfUldTVERfVkVSIDw8IDgpCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX1JXU1REX1ZFUiBfUldTVERfVkVSCisjZW5kaWYKKworI2lmbmRlZiBfUldTVERfVkVSCisjICBkZWZpbmUgQk9PU1RfU1RETElCICJSb2d1ZSBXYXZlIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAoVW5rbm93biB2ZXJzaW9uKSIKKyNlbGlmIF9SV1NURF9WRVIgPCAweDA0MDEwMjAwCisgIyAgZGVmaW5lIEJPT1NUX1NURExJQiAiUm9ndWUgV2F2ZSBzdGFuZGFyZCBsaWJyYXJ5IHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX1JXU1REX1ZFUikKKyNlbHNlCisjICBpZmRlZiBfUldTVERfVkVSX1NUUgorIyAgICBkZWZpbmUgQk9PU1RfU1RETElCICJBcGFjaGUgU1REQ1hYIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAiIF9SV1NURF9WRVJfU1RSCisjICBlbHNlCisjICAgIGRlZmluZSBCT09TVF9TVERMSUIgIkFwYWNoZSBTVERDWFggc3RhbmRhcmQgbGlicmFyeSB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9SV1NURF9WRVIpCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBQcmlvciB0byB2ZXJzaW9uIDIuMi4wIHRoZSBwcmltYXJ5IHRlbXBsYXRlIGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCisvLyBkb2VzIG5vdCBoYXZlIGNvbXBpbGUgdGltZSBjb25zdGFudHMsIGV2ZW4gdGhvdWdoIHNwZWNpYWxpemF0aW9ucyBvZiB0aGF0CisvLyB0ZW1wbGF0ZSBkbzoKKy8vCisjaWYgQk9PU1RfUldTVERfVkVSIDwgMHgwMjAyMDAKKyMgIGRlZmluZSBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworI2VuZGlmCisKKy8vIFN1biBDQyA1LjUgcGF0Y2ggMTEzODE3LTA3IGFkZHMgbG9uZyBsb25nIHNwZWNpYWxpemF0aW9uLCBidXQgZG9lcyBub3QgY2hhbmdlIHRoZQorLy8gbGlicmFyeSB2ZXJzaW9uIG51bWJlciAoaHR0cDovL3N1bnNvbHZlNi5zdW4uY29tL3NlYXJjaC9kb2N1bWVudC5kbz9hc3NldGtleT0xLTIxLTExMzgxNyk6CisjaWYgQk9PU1RfUldTVERfVkVSIDw9IDB4MDIwMTAxICYmICghZGVmaW5lZChfX1NVTlBST19DQykgfHwgKF9fU1VOUFJPX0NDIDwgMHg1NTApKQorIyAgZGVmaW5lIEJPT1NUX05PX0xPTkdfTE9OR19OVU1FUklDX0xJTUlUUworIyBlbmRpZgorCisvLworLy8gQm9ybGFuZCB2ZXJzaW9uIG9mIG51bWVyaWNfbGltaXRzIGxhY2tzIF9faW50NjQgc3BlY2lhbGlzYXRpb246CisvLworI2lmZGVmIF9fQk9STEFORENfXworIyAgZGVmaW5lIEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTCisjZW5kaWYKKworLy8KKy8vIE5vIHN0ZDo6aXRlcmF0b3IgaWYgaXQgY2FuJ3QgZmlndXJlIG91dCBkZWZhdWx0IHRlbXBsYXRlIGFyZ3M6CisvLworI2lmIGRlZmluZWQoX1JXU1REX05PX1NJTVBMRV9ERUZBVUxUX1RFTVBMQVRFUykgfHwgZGVmaW5lZChSV1NURF9OT19TSU1QTEVfREVGQVVMVF9URU1QTEFURVMpIHx8IChCT09TVF9SV1NURF9WRVIgPCAweDAyMDAwMCkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1IKKyNlbmRpZgorCisvLworLy8gTm8gaXRlcmF0b3IgdHJhaXRzIHdpdGhvdXQgcGFydGlhbCBzcGVjaWFsaXphdGlvbjoKKy8vCisjaWYgZGVmaW5lZChfUldTVERfTk9fQ0xBU1NfUEFSVElBTF9TUEVDKSB8fCBkZWZpbmVkKFJXU1REX05PX0NMQVNTX1BBUlRJQUxfU1BFQykKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1JfVFJBSVRTCisjZW5kaWYKKworLy8KKy8vIFByaW9yIHRvIHZlcnNpb24gMi4wLCBzdGQ6OmF1dG9fcHRyIHdhcyBidWdneSwgYW5kIHRoZXJlIHdlcmUgbm8KKy8vIG5ldy1zdHlsZSBpb3N0cmVhbXMsIGFuZCBubyBjb25mb3JtYW50IHN0ZDo6YWxsb2NhdG9yOgorLy8KKyNpZiAoQk9PU1RfUldTVERfVkVSIDwgMHgwMjAwMDApCisjICBkZWZpbmUgQk9PU1RfTk9fQVVUT19QVFIKKyMgIGRlZmluZSBCT09TVF9OT19TVFJJTkdTVFJFQU0KKyMgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorI2VuZGlmCisKKy8vCisvLyBObyB0ZW1wbGF0ZSBpdGVyYXRvciBjb25zdHJ1Y3RvcnMgd2l0aG91dCBtZW1iZXIgdGVtcGxhdGUgc3VwcG9ydDoKKy8vCisjaWYgZGVmaW5lZChSV1NURF9OT19NRU1CRVJfVEVNUExBVEVTKSB8fCBkZWZpbmVkKF9SV1NURF9OT19NRU1CRVJfVEVNUExBVEVTKQorIyAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFRF9JVEVSQVRPUl9DT05TVFJVQ1RPUlMKKyNlbmRpZgorCisvLworLy8gUlcgZGVmaW5lcyBfUldTVERfQUxMT0NBVE9SIGlmIHRoZSBhbGxvY2F0b3IgaXMgY29uZm9ybWFudCBhbmQgaW4gdXNlCisvLyAodGhlIG9yIF9IUEFDQ18gcGFydCBpcyBhIGhhY2sgLSB0aGUgbGlicmFyeSBzZWVtcyB0byBkZWZpbmUgX1JXU1REX0FMTE9DQVRPUgorLy8gb24gSFAgYUNDIHN5c3RlbXMgZXZlbiB0aG91Z2ggdGhlIGFsbG9jYXRvciBpcyBpbiBmYWN0IGJyb2tlbik6CisvLworI2lmICFkZWZpbmVkKF9SV1NURF9BTExPQ0FUT1IpIHx8IChkZWZpbmVkKF9fSFBfYUNDKSAmJiBfX0hQX2FDQyA8PSAzMzEwMCkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjZW5kaWYKKworLy8KKy8vIElmIHdlIGhhdmUgYSBzdGQ6OmxvY2FsZSwgd2Ugc3RpbGwgbWF5IG5vdCBoYXZlIHN0ZDo6dXNlX2ZhY2V0OgorLy8KKyNpZiBkZWZpbmVkKF9SV1NURF9OT19URU1QTEFURV9PTl9SRVRVUk5fVFlQRSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0xPQ0FMRSkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfVVNFX0ZBQ0VUCisjICBkZWZpbmUgQk9PU1RfSEFTX1RXT19BUkdfVVNFX0ZBQ0VUCisjZW5kaWYKKworLy8KKy8vIFRoZXJlJ3Mgbm8gc3RkOjpkaXN0YW5jZSBwcmlvciB0byB2ZXJzaW9uIDIsIG9yIHdpdGhvdXQKKy8vIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24gc3VwcG9ydDoKKy8vCisjaWYgKEJPT1NUX1JXU1REX1ZFUiA8IDB4MDIwMDAwKSB8fCBkZWZpbmVkKF9SV1NURF9OT19DTEFTU19QQVJUSUFMX1NQRUMpCisgICAgI2RlZmluZSBCT09TVF9OT19TVERfRElTVEFOQ0UKKyNlbmRpZgorCisvLworLy8gU29tZSB2ZXJzaW9ucyBvZiB0aGUgcm9ndWUgd2F2ZSBsaWJyYXJ5IGRvbid0IGhhdmUgYXNzaWduYWJsZQorLy8gT3V0cHV0SXRlcmF0b3JzOgorLy8KKyNpZiBCT09TVF9SV1NURF9WRVIgPCAweDAyMDEwMAorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9PVVRQVVRfSVRFUkFUT1JfQVNTSUdOCisjZW5kaWYKKworLy8KKy8vIERpc2FibGUgQk9PU1RfSEFTX0xPTkdfTE9ORyB3aGVuIHRoZSBsaWJyYXJ5IGhhcyBubyBzdXBwb3J0IGZvciBpdC4KKy8vCisjaWYgIWRlZmluZWQoX1JXU1REX0xPTkdfTE9ORykgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorIyAgdW5kZWYgQk9PU1RfSEFTX0xPTkdfTE9ORworI2VuZGlmCisKKy8vCisvLyBjaGVjayB0aGF0IG9uIEhQLVVYLCB0aGUgcHJvcGVyIFJXIGxpYnJhcnkgaXMgdXNlZAorLy8KKyNpZiBkZWZpbmVkKF9fSFBfYUNDKSAmJiAhZGVmaW5lZChfSFBfTkFNRVNQQUNFX1NURCkKKyMgIGVycm9yICJCb29zdCByZXF1aXJlcyBTdGFuZGFyZCBSVyBsaWJyYXJ5LiBQbGVhc2UgY29tcGlsZSBhbmQgbGluayB3aXRoIC1BQSIKKyNlbmRpZgorCisvLworLy8gRGVmaW5lIG1hY3JvcyBzcGVjaWZpYyB0byBSVyBWMi4yIG9uIEhQLVVYCisvLworI2lmIGRlZmluZWQoX19IUF9hQ0MpICYmIChCT09TVF9SV1NURF9WRVIgPT0gMHgwMjAyMDEwMCkKKyMgIGlmbmRlZiBfX0hQX1RDMV9NQUtFX1BBSVIKKyMgICAgZGVmaW5lIF9fSFBfVEMxX01BS0VfUEFJUgorIyAgZW5kaWYKKyMgIGlmbmRlZiBfSFBfSU5TVEFOVElBVEVfU1REMl9WTAorIyAgICBkZWZpbmUgX0hQX0lOU1RBTlRJQVRFX1NURDJfVkwKKyMgIGVuZGlmCisjZW5kaWYKKworI2lmIF9SV1NURF9WRVIgPCAweDA1MDAwMDAwCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0FSUkFZCisjZW5kaWYKKy8vIHR5cGVfdHJhaXRzIGhlYWRlciBpcyBpbmNvbXBsZXRlOgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworLy8KKy8vICBDKysweCBoZWFkZXJzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKy8vCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT0RFQ1ZUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfTVVURVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFORE9NCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1NZU1RFTV9FUlJPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQUxMT0NBVE9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVRPTUlDX1NNQVJUX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVU5DVElPTkFMCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9zZ2kuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL3NnaS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFjNWQwMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi9zZ2kuaHBwCkBAIC0wLDAgKzEsMTQ4IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGFyaW4gQWRsZXIgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgZ2VuZXJpYyBTR0kgU1RMOgorCisjaWYgIWRlZmluZWQoX19TVExfQ09ORklHX0gpCisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwPgorIyAgaWYgIWRlZmluZWQoX19TVExfQ09ORklHX0gpCisjICAgICAgZXJyb3IgIlRoaXMgaXMgbm90IHRoZSBTR0kgU1RMISIKKyMgIGVuZGlmCisjZW5kaWYKKworLy8KKy8vIE5vIHN0ZDo6aXRlcmF0b3IgdHJhaXRzIHdpdGhvdXQgcGFydGlhbCBzcGVjaWFsaXNhdGlvbjoKKy8vCisjaWYgIWRlZmluZWQoX19TVExfQ0xBU1NfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1JfVFJBSVRTCisjZW5kaWYKKworLy8KKy8vIE5vIHN0ZDo6c3RyaW5nc3RyZWFtIHdpdGggZ2NjIDwgMworLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPCAzKSAmJiBcCisgICAgICgoX19HTlVDX01JTk9SX18gPCA5NSkgfHwgKF9fR05VQ19NSU5PUl9fID09IDk2KSkgJiYgXAorICAgICAhZGVmaW5lZChfX1NUTF9VU0VfTkVXX0lPU1RSRUFNUykgfHwgXAorICAgZGVmaW5lZChfX0FQUExFX0NDX18pCisgICAvLyBOb3RlIHRoYXQgd2Ugb25seSBzZXQgdGhpcyBmb3IgR05VIEMrKyBwcmlvciB0byAyLjk1IHNpbmNlIHRoZQorICAgLy8gbGF0ZXN0IHBhdGNoZXMgZm9yIHRoYXQgcmVsZWFzZSBkbyBjb250YWluIGEgbWluaW1hbCA8c3N0cmVhbT4KKyAgIC8vIElmIHlvdSBhcmUgcnVubmluZyBhIDIuOTUgcmVsZWFzZSBwcmlvciB0byAyLjk1LjMgdGhlbiB0aGlzIHdpbGwgbmVlZAorICAgLy8gc2V0dGluZywgYnV0IHRoZXJlIGlzIG5vIHdheSB0byBkZXRlY3QgdGhhdCBhdXRvbWF0aWNhbGx5IChvdGhlcgorICAgLy8gdGhhbiBieSBydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0KS4KKyAgIC8vIEFsc28sIHRoZSB1bm9mZmljaWFsIEdOVSBDKysgMi45NiBpbmNsdWRlZCBpbiBSZWRIYXQgNy4xIGRvZXNuJ3QKKyAgIC8vIGhhdmUgPHNzdHJlYW0+LgorIyAgZGVmaW5lIEJPT1NUX05PX1NUUklOR1NUUkVBTQorI2VuZGlmCisKKy8vIEFwcGxlIGRvZXNuJ3Qgc2VlbSB0byByZWxpYWJseSBkZWZpbmVkIGEgKnVuaXgqIG1hY3JvCisjaWYgIWRlZmluZWQoQ1lHV0lOKSAmJiAoICBkZWZpbmVkKF9fdW5peF9fKSAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX3VuaXgpICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQodW5peCkgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEVfXykgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX0FQUExFKSAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoQVBQTEUpKQorIyAgaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKworCisvLworLy8gQXNzdW1lIG5vIHN0ZDo6bG9jYWxlIHdpdGhvdXQgb3duIGlvc3RyZWFtcyAodGhpcyBtYXkgYmUgYW4KKy8vIGluY29ycmVjdCBhc3N1bXB0aW9uIGluIHNvbWUgY2FzZXMpOgorLy8KKyNpZiAhZGVmaW5lZChfX1NHSV9TVExfT1dOX0lPU1RSRUFNUykgJiYgIWRlZmluZWQoX19TVExfVVNFX05FV19JT1NUUkVBTVMpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorI2VuZGlmCisKKy8vCisvLyBPcmlnaW5hbCBuYXRpdmUgU0dJIHN0cmVhbXMgaGF2ZSBub24tc3RhbmRhcmQgc3RkOjptZXNzYWdlcyBmYWNldDoKKy8vCisjaWYgZGVmaW5lZChfX3NnaSkgJiYgKF9DT01QSUxFUl9WRVJTSU9OIDw9IDY1MCkgJiYgIWRlZmluZWQoX19TR0lfU1RMX09XTl9JT1NUUkVBTVMpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorI2VuZGlmCisKKy8vCisvLyBTR0kncyBuZXcgaW9zdHJlYW1zIGhhdmUgbWlzc2luZyAiY29uc3QiIGluIG1lc3NhZ2VzPD46Om9wZW4KKy8vCisjaWYgZGVmaW5lZChfX3NnaSkgJiYgKF9DT01QSUxFUl9WRVJTSU9OIDw9IDc0MCkgJiYgZGVmaW5lZChfX1NUTF9VU0VfTkVXX0lPU1RSRUFNUykKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTUVTU0FHRVMKKyNlbmRpZgorCisvLworLy8gTm8gdGVtcGxhdGUgaXRlcmF0b3IgY29uc3RydWN0b3JzLCBvciBzdGQ6OmFsbG9jYXRvcgorLy8gd2l0aG91dCBtZW1iZXIgdGVtcGxhdGVzOgorLy8KKyNpZiAhZGVmaW5lZChfX1NUTF9NRU1CRVJfVEVNUExBVEVTKQorIyAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFRF9JVEVSQVRPUl9DT05TVFJVQ1RPUlMKKyMgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjZW5kaWYKKworLy8KKy8vIFdlIGFsd2F5cyBoYXZlIFNHSSBzdHlsZSBoYXNoX3NldCwgaGFzaF9tYXAsIGFuZCBzbGlzdDoKKy8vCisjZGVmaW5lIEJPT1NUX0hBU19IQVNICisjZGVmaW5lIEJPT1NUX0hBU19TTElTVAorCisvLworLy8gSWYgdGhpcyBpcyBHTlUgbGlic3RkYysrMiwgdGhlbiBubyA8bGltaXRzPiBhbmQgbm8gc3RkOjp3c3RyaW5nOgorLy8KKyNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fIDwgMykpCisjICBpbmNsdWRlIDxzdHJpbmc+CisjICBpZiBkZWZpbmVkKF9fQkFTVFJJTkdfXykKKyMgICAgIGRlZmluZSBCT09TVF9OT19MSU1JVFMKKy8vIE5vdGU6IDxuZG5ib29zdC9saW1pdHMuaHBwPiB3aWxsIHByb3ZpZGUgY29tcGlsZS10aW1lIGNvbnN0YW50cworIyAgICAgdW5kZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfV1NUUklORworIyAgZW5kaWYKKyNlbmRpZgorCisvLworLy8gVGhlcmUgaXMgbm8gc3RhbmRhcmQgaXRlcmF0b3IgdW5sZXNzIHdlIGhhdmUgbmFtZXNwYWNlIHN1cHBvcnQ6CisvLworI2lmICFkZWZpbmVkKF9fU1RMX1VTRV9OQU1FU1BBQ0VTKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9JVEVSQVRPUgorI2VuZGlmCisKKy8vCisvLyBJbnRyaW5zaWMgdHlwZV90cmFpdHMgc3VwcG9ydC4KKy8vIFRoZSBTR0kgU1RMIGhhcyBpdCdzIG93biBfX3R5cGVfdHJhaXRzIGNsYXNzLCB3aGljaAorLy8gaGFzIGludHJpbnNpYyBjb21waWxlciBzdXBwb3J0IHdpdGggU0dJJ3MgY29tcGlsZXJzLgorLy8gV2hhdGV2ZXIgbWFwIFNHSSBzdHlsZSB0eXBlIHRyYWl0cyB0byBib29zdCBlcXVpdmFsZW50czoKKy8vCisjZGVmaW5lIEJPT1NUX0hBU19TR0lfVFlQRV9UUkFJVFMKKworLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCBpbXBsZW1lbnRlZAorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZPUldBUkRfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVVRVUkUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfU0VUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVE9NSUNfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVTkNUSU9OQUwKKworI2RlZmluZSBCT09TVF9TVERMSUIgIlNHSSBzdGFuZGFyZCBsaWJyYXJ5IgorCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL3N0bHBvcnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL3N0bHBvcnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0OTI2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy9zdGRsaWIvc3RscG9ydC5ocHAKQEAgLTAsMCArMSwyNDMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMi4gCisvLyAgKEMpIENvcHlyaWdodCBEYXJpbiBBZGxlciAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIFNUTFBvcnQgc3RhbmRhcmQgbGlicmFyeSBjb25maWc6CisKKyNpZiAhZGVmaW5lZChfX1NHSV9TVExfUE9SVCkgJiYgIWRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKyMgIGluY2x1ZGUgPGNzdGRkZWY+CisjICBpZiAhZGVmaW5lZChfX1NHSV9TVExfUE9SVCkgJiYgIWRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKyMgICAgICBlcnJvciAiVGhpcyBpcyBub3QgU1RMUG9ydCEiCisjICBlbmRpZgorI2VuZGlmCisKKy8vIEFwcGxlIGRvZXNuJ3Qgc2VlbSB0byByZWxpYWJseSBkZWZpbmVkIGEgKnVuaXgqIG1hY3JvCisjaWYgIWRlZmluZWQoQ1lHV0lOKSAmJiAoICBkZWZpbmVkKF9fdW5peF9fKSAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX3VuaXgpICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQodW5peCkgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEVfXykgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX0FQUExFKSAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoQVBQTEUpKQorIyAgaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKworLy8KKy8vIF9fU1RMX1NUQVRJQ19DT05TVF9JTklUX0JVRyBpbXBsaWVzIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisvLyBmb3IgdmVyc2lvbnMgcHJpb3IgdG8gNC4xKGJldGEpCisvLworI2lmIChkZWZpbmVkKF9fU1RMX1NUQVRJQ19DT05TVF9JTklUX0JVRykgfHwgZGVmaW5lZChfU1RMUF9TVEFUSUNfQ09OU1RfSU5JVF9CVUcpKSAmJiAoX19TR0lfU1RMX1BPUlQgPD0gMHg0MDApCisjICBkZWZpbmUgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyNlbmRpZgorCisvLworLy8gSWYgU1RMcG9ydCB0aGlua3MgdGhhdCB0aGVyZSBpcyBubyBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9uLCB0aGVuIHRoZXJlIGlzIG5vCisvLyBzdGQ6Oml0ZXJhdG9yIHRyYWl0czoKKy8vCisjaWYgIShkZWZpbmVkKF9TVExQX0NMQVNTX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIHx8IGRlZmluZWQoX19TVExfQ0xBU1NfUEFSVElBTF9TUEVDSUFMSVpBVElPTikpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0lURVJBVE9SX1RSQUlUUworI2VuZGlmCisKKy8vCisvLyBObyBuZXcgc3R5bGUgaW9zdHJlYW1zIG9uIEdDQyB3aXRob3V0IFNUTHBvcnQncyBpb3N0cmVhbXMgZW5hYmxlZDoKKy8vCisjaWYgKGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA8IDMpKSAmJiAhKGRlZmluZWQoX19TR0lfU1RMX09XTl9JT1NUUkVBTVMpIHx8IGRlZmluZWQoX1NUTFBfT1dOX0lPU1RSRUFNUykpCisjICBkZWZpbmUgQk9PU1RfTk9fU1RSSU5HU1RSRUFNCisjZW5kaWYKKworLy8KKy8vIE5vIG5ldyBpb3N0cmVhbXMgaW1wbGllcyBubyBzdGQ6OmxvY2FsZSwgYW5kIG5vIHN0ZDo6c3RyaW5nc3RyZWFtOgorLy8KKyNpZiBkZWZpbmVkKF9fU1RMX05PX0lPU1RSRUFNUykgfHwgZGVmaW5lZChfX1NUTF9OT19ORVdfSU9TVFJFQU1TKSB8fCBkZWZpbmVkKF9TVExQX05PX0lPU1RSRUFNUykgfHwgZGVmaW5lZChfU1RMUF9OT19ORVdfSU9TVFJFQU1TKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9MT0NBTEUKKyMgIGRlZmluZSBCT09TVF9OT19TVFJJTkdTVFJFQU0KKyNlbmRpZgorCisvLworLy8gSWYgdGhlIHN0cmVhbXMgYXJlIG5vdCBuYXRpdmUsIGFuZCB3ZSBoYXZlIGEgInVzaW5nIDo6eCIgY29tcGlsZXIgYnVnCisvLyB0aGVuIHRoZSBpbyBzdHJlYW0gZmFjZXRzIGFyZSBub3QgYXZhaWxhYmxlIGluIG5hbWVzcGFjZSBzdGQ6OgorLy8KKyNpZmRlZiBfU1RMUE9SVF9WRVJTSU9OCisjICBpZiAhKF9TVExQT1JUX1ZFUlNJT04gPj0gMHg1MDApICYmICFkZWZpbmVkKF9TVExQX09XTl9JT1NUUkVBTVMpICYmIGRlZmluZWQoX1NUTFBfVVNFX05BTUVTUEFDRVMpICYmIGRlZmluZWQoQk9PU1RfTk9fVVNJTkdfVEVNUExBVEUpICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjICBlbmRpZgorI2Vsc2UKKyMgIGlmICFkZWZpbmVkKF9fU0dJX1NUTF9PV05fSU9TVFJFQU1TKSAmJiBkZWZpbmVkKF9fU1RMX1VTRV9OQU1FU1BBQ0VTKSAmJiBkZWZpbmVkKEJPT1NUX05PX1VTSU5HX1RFTVBMQVRFKSAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKSAmJiAoX1NUTFBPUlRfVkVSU0lPTiA+PSAweDUyMCkKKyMgIGRlZmluZSBCT09TVF9IQVNfVFIxX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9IQVNfVFIxX1VOT1JERVJFRF9NQVAKKyNlbmRpZgorLy8KKy8vIFdpdGhvdXQgbWVtYmVyIHRlbXBsYXRlIHN1cHBvcnQgZW5hYmxlZCwgdGhlaXIgYXJlIG5vIHRlbXBsYXRlCisvLyBpdGVyYXRlIGNvbnN0cnVjdG9ycywgYW5kIG5vIHN0ZDo6YWxsb2NhdG9yOgorLy8KKyNpZiAhKGRlZmluZWQoX19TVExfTUVNQkVSX1RFTVBMQVRFUykgfHwgZGVmaW5lZChfU1RMUF9NRU1CRVJfVEVNUExBVEVTKSkKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURURfSVRFUkFUT1JfQ09OU1RSVUNUT1JTCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorI2VuZGlmCisvLworLy8gaG93ZXZlciB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBhIHBhcnRpYWwgYWxsb2NhdG9yOgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX1BBUlRJQUxfU1REX0FMTE9DQVRPUgorCisjaWYgIWRlZmluZWQoX1NUTFBfTUVNQkVSX1RFTVBMQVRFX0NMQVNTRVMpIHx8IGRlZmluZWQoX1NUTFBfRE9OVF9TVVBQT1JUX1JFQklORF9NRU1CRVJfVEVNUExBVEUpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9TVExQX05PX01FTUJFUl9URU1QTEFURV9LRVlXT1JEKSAmJiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDw9IDEzMDApCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorI2VuZGlmCisKKy8vCisvLyBJZiBTVExwb3J0IHRoaW5rcyB0aGVyZSBpcyBubyB3Y2hhcl90IGF0IGFsbCwgdGhlbiB3ZSBoYXZlIHRvIGRpc2FibGUKKy8vIHRoZSBzdXBwb3J0IGZvciB0aGUgcmVsZXZhbnQgc3BlY2lsYXphdGlvbnMgb2Ygc3RkOjogdGVtcGxhdGVzLgorLy8KKyNpZiAhZGVmaW5lZChfU1RMUF9IQVNfV0NIQVJfVCkgJiYgIWRlZmluZWQoX1NUTFBfV0NIQVJfVF9JU19VU0hPUlQpCisjICBpZm5kZWYgIEJPT1NUX05PX1NURF9XU1RSSU5HCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJJTkcKKyMgIGVuZGlmCisjICBpZm5kZWYgIEJPT1NUX05PX1NURF9XU1RSRUFNQlVGCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyMgIGVuZGlmCisjZW5kaWYKKworLy8KKy8vIFdlIGFsd2F5cyBoYXZlIFNHSSBzdHlsZSBoYXNoX3NldCwgaGFzaF9tYXAsIGFuZCBzbGlzdDoKKy8vCisjaWZuZGVmIF9TVExQX05PX0VYVEVOU0lPTlMKKyNkZWZpbmUgQk9PU1RfSEFTX0hBU0gKKyNkZWZpbmUgQk9PU1RfSEFTX1NMSVNUCisjZW5kaWYKKworLy8KKy8vIFNUTHBvcnQgZG9lcyBhIGdvb2Qgam9iIG9mIGltcG9ydGluZyBuYW1lcyBpbnRvIG5hbWVzcGFjZSBzdGQ6OiwKKy8vIGJ1dCBkb2Vzbid0IGFsd2F5cyBnZXQgdGhlbSBhbGwsIGRlZmluZSBCT09TVF9OT19TVERDX05BTUVTUEFDRSwgc2luY2Ugb3VyCisvLyB3b3JrYXJvdW5kIGRvZXMgbm90IGNvbmZsaWN0IHdpdGggU1RMcG9ydHM6CisvLworLy8KKy8vIEhhcm9sZCBIb3dlIHNheXM6CisvLyBCb3JsYW5kIHN3aXRjaGVkIHRvIFNUTHBvcnQgaW4gQkNCNi4gRGVmaW5pbmcgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0Ugd2l0aAorLy8gQkNCNiBkb2VzIGNhdXNlIHByb2JsZW1zLiBJZiB3ZSBkZXRlY3QgQysrIEJ1aWxkZXIsIHRoZW4gZG9uJ3QgZGVmaW5lIAorLy8gQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKy8vCisjaWYgIWRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAhZGVmaW5lZChfX0RNQ19fKQorLy8KKy8vIElmIFNUTHBvcnQgaXMgdXNpbmcgaXQncyBvd24gbmFtZXNwYWNlLCBhbmQgdGhlIHJlYWwgbmFtZXMgYXJlIGluCisvLyB0aGUgZ2xvYmFsIG5hbWVzcGFjZSwgdGhlbiB3ZSBkdXBsaWNhdGUgU1RMcG9ydCdzIHVzaW5nIGRlY2xhcmF0aW9ucworLy8gKGJ5IGRlZmluaW5nIEJPT1NUX05PX1NURENfTkFNRVNQQUNFKSwgd2UgZG8gdGhpcyBiZWNhdXNlIFNUTHBvcnQgZG9lc24ndAorLy8gbmVjZXNzYXJpbHkgaW1wb3J0IGFsbCB0aGUgbmFtZXMgd2UgbmVlZCBpbnRvIG5hbWVzcGFjZSBzdGQ6OgorLy8gCisjICBpZiAoZGVmaW5lZChfX1NUTF9JTVBPUlRfVkVORE9SX0NTVEQpIFwKKyAgICAgICAgIHx8IGRlZmluZWQoX19TVExfVVNFX09XTl9OQU1FU1BBQ0UpIFwKKyAgICAgICAgIHx8IGRlZmluZWQoX1NUTFBfSU1QT1JUX1ZFTkRPUl9DU1REKSBcCisgICAgICAgICB8fCBkZWZpbmVkKF9TVExQX1VTRV9PV05fTkFNRVNQQUNFKSkgXAorICAgICAgJiYgKGRlZmluZWQoX19TVExfVkVORE9SX0dMT0JBTF9DU1REKSB8fCBkZWZpbmVkIChfU1RMUF9WRU5ET1JfR0xPQkFMX0NTVEQpKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICAgICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OX1NURF9OQU1FU1BBQ0UKKyMgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgX19CT1JMQU5EQ19fIDwgMHg1NjAKKy8vIFNUTHBvcnQgZG9lc24ndCBpbXBvcnQgc3RkOjphYnMgY29ycmVjdGx5OgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorbmFtZXNwYWNlIHN0ZCB7IHVzaW5nIDo6YWJzOyB9CisvLyBhbmQgc3RyY21wL3N0cmNweSBkb24ndCBnZXQgaW1wb3J0ZWQgZWl0aGVyICgnY29zIHRoZXkgYXJlIG1hY3JvcykKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpZmRlZiBzdHJjcHkKKyMgIHVuZGVmIHN0cmNweQorI2VuZGlmCisjaWZkZWYgc3RyY21wCisjICB1bmRlZiBzdHJjbXAKKyNlbmRpZgorI2lmZGVmIF9TVExQX1ZFTkRPUl9DU1RECituYW1lc3BhY2Ugc3RkeyB1c2luZyBfU1RMUF9WRU5ET1JfQ1NURDo6c3RyY21wOyB1c2luZyBfU1RMUF9WRU5ET1JfQ1NURDo6c3RyY3B5OyB9CisjZW5kaWYKKyNlbmRpZgorCisvLworLy8gc3RkOjp1c2VfZmFjZXQgbWF5IGJlIG5vbi1zdGFuZGFyZCwgdXNlcyBhIGNsYXNzIGluc3RlYWQ6CisvLworI2lmIGRlZmluZWQoX19TVExfTk9fRVhQTElDSVRfRlVOQ1RJT05fVE1QTF9BUkdTKSB8fCBkZWZpbmVkKF9TVExQX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RNUExfQVJHUykKKyMgIGRlZmluZSBCT09TVF9OT19TVERfVVNFX0ZBQ0VUCisjICBkZWZpbmUgQk9PU1RfSEFTX1NUTFBfVVNFX0ZBQ0VUCisjZW5kaWYKKworLy8KKy8vIElmIFNUTHBvcnQgdGhpbmtzIHRoZXJlIGFyZSBubyB3aWRlIGZ1bmN0aW9ucywgPGN3Y2hhcj4gZXRjLiBpcyBub3Qgd29ya2luZzsgYnV0CisvLyBvbmx5IGlmIEJPT1NUX05PX1NURENfTkFNRVNQQUNFIGlzIG5vdCBkZWZpbmVkIChpZiBpdCBpcyB0aGVuIHdlIGRvIHRoZSBpbXBvcnQgCisvLyBpbnRvIHN0ZDo6IG91cnNlbHZlcykuCisvLworI2lmIGRlZmluZWQoX1NUTFBfTk9fTkFUSVZFX1dJREVfRlVOQ1RJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVERDX05BTUVTUEFDRSkKKyMgIGRlZmluZSBCT09TVF9OT19DV0NIQVIKKyMgIGRlZmluZSBCT09TVF9OT19DV0NUWVBFCisjZW5kaWYKKworLy8KKy8vIElmIFNUTHBvcnQgZm9yIHNvbWUgcmVhc29uIHdhcyBjb25maWd1cmVkIHNvIHRoYXQgaXQgdGhpbmtzIHRoYXQgd2NoYXJfdAorLy8gaXMgbm90IGFuIGludHJpbnNpYyB0eXBlLCB0aGVuIHdlIGhhdmUgdG8gZGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaXQgYXMKKy8vIHdlbGwgKHdlIHdvdWxkIGJlIG1pc3NpbmcgcmVxdWlyZWQgc3BlY2lhbGl6YXRpb25zIG90aGVyd2lzZSkuCisvLworI2lmICFkZWZpbmVkKCBfU1RMUF9IQVNfV0NIQVJfVCkgfHwgZGVmaW5lZChfU1RMUF9XQ0hBUl9UX0lTX1VTSE9SVCkKKyMgIHVuZGVmICBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjZW5kaWYKKworLy8KKy8vIEJvcmxhbmQgc2hpcHMgYSB2ZXJzaW9uIG9mIFNUTHBvcnQgd2l0aCBDKysgQnVpbGRlciA2IHRoYXQgbGFja3MKKy8vIGhhc2h0YWJsZXMgYW5kIHRoZSBsaWtlOgorLy8KKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA9PSAweDU2MCkKKyMgIHVuZGVmIEJPT1NUX0hBU19IQVNICisjZW5kaWYKKworLy8KKy8vIGdjYy0yLjk1LjMvU1RMUG9ydCBkb2VzIG5vdCBsaWtlIHRoZSB1c2luZyBkZWNsYXJhdGlvbnMgd2UgdXNlIHRvIGdldCBBREwgd2l0aCBzdGQ6Om1pbi9tYXgKKy8vCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fIDwgMykKKyMgIGluY2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6bWluIGFuZCBzdGQ6Om1heAorIyAgZGVmaW5lIEJPT1NUX1VTSU5HX1NURF9NSU4oKSAoKHZvaWQpMCkKKyMgIGRlZmluZSBCT09TVF9VU0lOR19TVERfTUFYKCkgKCh2b2lkKTApCituYW1lc3BhY2UgbmRuYm9vc3QgeyB1c2luZyBzdGQ6Om1pbjsgdXNpbmcgc3RkOjptYXg7IH0KKyNlbmRpZgorCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisjZGVmaW5lIEJPT1NUX1NURExJQiAiU1RMUG9ydCBzdGFuZGFyZCBsaWJyYXJ5IHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19TR0lfU1RMX1BPUlQpCisKKworCisKKworCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3RkbGliL3ZhY3BwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi92YWNwcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQxNjk0NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N0ZGxpYi92YWNwcC5ocHAKQEAgLTAsMCArMSw1NCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKyNpZiBfX0lCTUNQUF9fIDw9IDUwMQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX0hBU19NQUNST19VU0VfRkFDRVQKKyNkZWZpbmUgQk9PU1RfTk9fU1REX01FU1NBR0VTCisKKy8vIEFwcGxlIGRvZXNuJ3Qgc2VlbSB0byByZWxpYWJseSBkZWZpbmVkIGEgKnVuaXgqIG1hY3JvCisjaWYgIWRlZmluZWQoQ1lHV0lOKSAmJiAoICBkZWZpbmVkKF9fdW5peF9fKSAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX3VuaXgpICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQodW5peCkgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEVfXykgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChfX0FQUExFKSAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoQVBQTEUpKQorIyAgaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKworLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCBpbXBsZW1lbnRlZAorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZPUldBUkRfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVVRVUkUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfU0VUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVE9NSUNfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVTkNUSU9OQUwKKworI2RlZmluZSBCT09TVF9TVERMSUIgIlZpc3VhbCBBZ2UgZGVmYXVsdCBzdGFuZGFyZCBsaWJyYXJ5IgorCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jb25maWcvc3VmZml4LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N1ZmZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY4OTAyOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3N1ZmZpeC5ocHAKQEAgLTAsMCArMSw5MzMgQEAKKy8vICBCb29zdCBjb25maWcuaHBwIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLwlib29zdGluc3BlY3Q6bmRwcmVjYXRlZF9tYWNyb3MJLS0gdGVsbCB0aGUgaW5zcGVjdCB0b29sIHRvIGlnbm9yZSB0aGlzIGZpbGUKKworLy8gIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIEpvaG4gTWFkZG9jaworLy8gIENvcHlyaWdodCAoYykgMjAwMSBEYXJpbiBBZGxlcgorLy8gIENvcHlyaWdodCAoYykgMjAwMSBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAoYykgMjAwMiBCaWxsIEtlbXBmIAorLy8gIENvcHlyaWdodCAoYykgMjAwMiBKZW5zIE1hdXJlcgorLy8gIENvcHlyaWdodCAoYykgMjAwMi0yMDAzIERhdmlkIEFicmFoYW1zCisvLyAgQ29weXJpZ2h0IChjKSAyMDAzIEdlbm5hcm8gUHJvdGEKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDMgRXJpYyBGcmllZG1hbgorLy8gIENvcHlyaWdodCAoYykgMjAxMCBFcmljIEpvdXJkYW5uZWF1LCBKb2VsIEZhbGNvdQorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEJvb3N0IGNvbmZpZy5ocHAgcG9saWN5IGFuZCByYXRpb25hbGUgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiBtb3ZlZCB0bworLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvY29uZmlnLworLy8KKy8vICBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gYmUgc3RhYmxlLCBhbmQgcmVsYXRpdmVseSB1bmNoYW5naW5nLgorLy8gIEl0IHNob3VsZCBjb250YWluIGJvaWxlcnBsYXRlIGNvZGUgb25seSAtIG5vIGNvbXBpbGVyIHNwZWNpZmljCisvLyAgY29kZSB1bmxlc3MgaXQgaXMgdW5hdm9pZGFibGUgLSBubyBjaGFuZ2VzIHVubGVzcyB1bmF2b2lkYWJsZS4KKworI2lmbmRlZiBCT09TVF9DT05GSUdfU1VGRklYX0hQUAorI2RlZmluZSBCT09TVF9DT05GSUdfU1VGRklYX0hQUAorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDQpCisvLworLy8gU29tZSBHQ0MtNC54IHZlcnNpb25zIGlzc3VlIHdhcm5pbmdzIGV2ZW4gd2hlbiBfX2V4dGVuc2lvbl9fIGlzIHVzZWQsCisvLyBzbyB1c2UgdGhpcyBhcyBhIHdvcmthcm91bmQ6CisvLworI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgorI2VuZGlmCisKKy8vCisvLyBlbnN1cmUgdGhhdCB2aXNpYmlsaXR5IG1hY3JvcyBhcmUgYWx3YXlzIGRlZmluZWQsIHRodXMgc3ltcGxpZnlpbmcgdXNlCisvLworI2lmbmRlZiBCT09TVF9TWU1CT0xfRVhQT1JUCisjIGRlZmluZSBCT09TVF9TWU1CT0xfRVhQT1JUCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfU1lNQk9MX0lNUE9SVAorIyBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX1NZTUJPTF9WSVNJQkxFCisjIGRlZmluZSBCT09TVF9TWU1CT0xfVklTSUJMRQorI2VuZGlmCisKKy8vCisvLyBsb29rIGZvciBsb25nIGxvbmcgYnkgbG9va2luZyBmb3IgdGhlIGFwcHJvcHJpYXRlIG1hY3JvcyBpbiA8bGltaXRzLmg+LgorLy8gTm90ZSB0aGF0IHdlIHVzZSBsaW1pdHMuaCByYXRoZXIgdGhhbiBjbGltaXRzIGZvciBtYXhpbWFsIHBvcnRhYmlsaXR5LAorLy8gcmVtZW1iZXIgdGhhdCBzaW5jZSB0aGVzZSBqdXN0IGRlY2xhcmUgYSBidW5jaCBvZiBtYWNyb3MsIHRoZXJlIHNob3VsZCBiZQorLy8gbm8gbmFtZXNwYWNlIGlzc3VlcyBmcm9tIHRoaXMuCisvLworI2lmICFkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpICYmICFkZWZpbmVkKEJPT1NUX05PX0xPTkdfTE9ORykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgJiYgIWRlZmluZWQoQk9PU1RfTVNWQykgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQorIyBpbmNsdWRlIDxsaW1pdHMuaD4KKyMgaWYgKGRlZmluZWQoVUxMT05HX01BWCkgfHwgZGVmaW5lZChVTE9OR19MT05HX01BWCkgfHwgZGVmaW5lZChVTE9OR0xPTkdfTUFYKSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworIyBlbHNlCisjICAgZGVmaW5lIEJPT1NUX05PX0xPTkdfTE9ORworIyBlbmRpZgorI2VuZGlmCisKKy8vIEdDQyAzLnggd2lsbCBjbGVhbiB1cCBhbGwgb2YgdGhvc2UgbmFzdHkgbWFjcm8gZGVmaW5pdGlvbnMgdGhhdAorLy8gQk9PU1RfTk9fQ1RZUEVfRlVOQ1RJT05TIGlzIGludGVuZGVkIHRvIGhlbHAgd29yayBhcm91bmQsIHNvIHVuZGVmaW5lCisvLyBpdCB1bmRlciBHQ0MgMy54LgorI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+PSAzKSAmJiBkZWZpbmVkKEJPT1NUX05PX0NUWVBFX0ZVTkNUSU9OUykKKyMgIHVuZGVmIEJPT1NUX05PX0NUWVBFX0ZVTkNUSU9OUworI2VuZGlmCisKKy8vCisvLyBBc3N1bWUgYW55IGV4dGVuc2lvbnMgYXJlIGluIG5hbWVzcGFjZSBzdGQ6OiB1bmxlc3Mgc3RhdGVkIG90aGVyd2lzZToKKy8vCisjICBpZm5kZWYgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0UKKyMgICAgZGVmaW5lIEJPT1NUX1NURF9FWFRFTlNJT05fTkFNRVNQQUNFIHN0ZAorIyAgZW5kaWYKKworLy8KKy8vIElmIGN2LXF1YWxpZmllZCBzcGVjaWFsaXphdGlvbnMgYXJlIG5vdCBhbGxvd2VkLCB0aGVuIG5laXRoZXIgYXJlIGN2LXZvaWQgb25lczoKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX0NWX1NQRUNJQUxJWkFUSU9OUykgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKKyMgIGVuZGlmCisKKy8vCisvLyBJZiB0aGVyZSBpcyBubyBudW1lcmljX2xpbWl0cyB0ZW1wbGF0ZSwgdGhlbiBpdCBjYW4ndCBoYXZlIGFueSBjb21waWxlIHRpbWUKKy8vIGNvbnN0YW50cyBlaXRoZXIhCisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19MSU1JVFMpIFwKKyAgICAgICYmICFkZWZpbmVkKEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisjICAgICBkZWZpbmUgQk9PU1RfTk9fTVNfSU5UNjRfTlVNRVJJQ19MSU1JVFMKKyMgICAgIGRlZmluZSBCT09TVF9OT19MT05HX0xPTkdfTlVNRVJJQ19MSU1JVFMKKyMgIGVuZGlmCisKKy8vCisvLyBpZiB0aGVyZSBpcyBubyBsb25nIGxvbmcgdGhlbiB0aGVyZSBpcyBubyBzcGVjaWFsaXNhdGlvbgorLy8gZm9yIG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz4gZWl0aGVyOgorLy8KKyNpZiAhZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKSAmJiAhZGVmaW5lZChCT09TVF9OT19MT05HX0xPTkdfTlVNRVJJQ19MSU1JVFMpCisjICBkZWZpbmUgQk9PU1RfTk9fTE9OR19MT05HX05VTUVSSUNfTElNSVRTCisjZW5kaWYKKworLy8KKy8vIGlmIHRoZXJlIGlzIG5vIF9faW50NjQgdGhlbiB0aGVyZSBpcyBubyBzcGVjaWFsaXNhdGlvbgorLy8gZm9yIG51bWVyaWNfbGltaXRzPF9faW50NjQ+IGVpdGhlcjoKKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KSAmJiAhZGVmaW5lZChCT09TVF9OT19NU19JTlQ2NF9OVU1FUklDX0xJTUlUUykKKyMgIGRlZmluZSBCT09TVF9OT19NU19JTlQ2NF9OVU1FUklDX0xJTUlUUworI2VuZGlmCisKKy8vCisvLyBpZiBtZW1iZXIgdGVtcGxhdGVzIGFyZSBzdXBwb3J0ZWQgdGhlbiBzbyBpcyB0aGUKKy8vIFZDNiBzdWJzZXQgb2YgbWVtYmVyIHRlbXBsYXRlczoKKy8vCisjICBpZiAhZGVmaW5lZChCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTKSBcCisgICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTVNWQzZfTUVNQkVSX1RFTVBMQVRFUykKKyMgICAgIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisjICBlbmRpZgorCisvLworLy8gV2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uLCBjYW4ndCB0ZXN0IGZvciBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9uIGJ1Z3M6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9CQ0JfUEFSVElBTF9TUEVDSUFMSVpBVElPTl9CVUcpCisjICAgICBkZWZpbmUgQk9PU1RfQkNCX1BBUlRJQUxfU1BFQ0lBTElaQVRJT05fQlVHCisjICBlbmRpZgorCisvLworLy8gV2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uLCB3ZSBjYW4ndCBoYXZlIGFycmF5LXR5cGUgcGFydGlhbCBzcGVjaWFsaXNhdGlvbnM6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKKyMgICAgIGRlZmluZSBCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUworIyAgZW5kaWYKKworLy8KKy8vIFdpdGhvdXQgcGFydGlhbCBzcGVjaWFsaXphdGlvbiwgc3RkOjppdGVyYXRvcl90cmFpdHMgY2FuJ3Qgd29yazoKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICAgICYmICFkZWZpbmVkKEJPT1NUX05PX1NURF9JVEVSQVRPUl9UUkFJVFMpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX0lURVJBVE9SX1RSQUlUUworIyAgZW5kaWYKKworLy8KKy8vIFdpdGhvdXQgcGFydGlhbCBzcGVjaWFsaXphdGlvbiwgcGFydGlhbCAKKy8vIHNwZWNpYWxpemF0aW9uIHdpdGggZGVmYXVsdCBhcmdzIHdvbid0IHdvcmsgZWl0aGVyOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTk9fUEFSVElBTF9TUEVDSUFMSVpBVElPTl9JTVBMSUNJVF9ERUZBVUxUX0FSR1MpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fUEFSVElBTF9TUEVDSUFMSVpBVElPTl9JTVBMSUNJVF9ERUZBVUxUX0FSR1MKKyMgIGVuZGlmCisKKy8vCisvLyBXaXRob3V0IG1lbWJlciB0ZW1wbGF0ZSBzdXBwb3J0LCB3ZSBjYW4ndCBoYXZlIHRlbXBsYXRlIGNvbnN0cnVjdG9ycworLy8gaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgZWl0aGVyOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFUykgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTVNWQzZfTUVNQkVSX1RFTVBMQVRFUykgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVEX0lURVJBVE9SX0NPTlNUUlVDVE9SUykKKyMgICAgIGRlZmluZSBCT09TVF9OT19URU1QTEFURURfSVRFUkFUT1JfQ09OU1RSVUNUT1JTCisjICBlbmRpZgorCisvLworLy8gV2l0aG91dCBtZW1iZXIgdGVtcGxhdGUgc3VwcG9ydCwgd2UgY2FuJ3QgaGF2ZSBhIGNvbmZvcm1pbmcKKy8vIHN0ZDo6YWxsb2NhdG9yIHRlbXBsYXRlIGVpdGhlcjoKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMpIFwKKyAgICAgICYmICFkZWZpbmVkKEJPT1NUX01TVkM2X01FTUJFUl9URU1QTEFURVMpIFwKKyAgICAgICYmICFkZWZpbmVkKEJPT1NUX05PX1NURF9BTExPQ0FUT1IpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorIyAgZW5kaWYKKworLy8KKy8vIHdpdGhvdXQgQURMIHN1cHBvcnQgdGhlbiB1c2luZyBkZWNsYXJhdGlvbnMgd2lsbCBicmVhayBBREwgYXMgd2VsbDoKKy8vCisjaWYgZGVmaW5lZChCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQKSAmJiAhZGVmaW5lZChCT09TVF9GVU5DVElPTl9TQ09QRV9VU0lOR19ERUNMQVJBVElPTl9CUkVBS1NfQURMKQorIyAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNlbmRpZgorCisvLworLy8gV2l0aG91dCB0eXBlaWQgc3VwcG9ydCB3ZSBoYXZlIG5vIGR5bmFtaWMgUlRUSSBlaXRoZXI6CisvLworI2lmIGRlZmluZWQoQk9PU1RfTk9fVFlQRUlEKSAmJiAhZGVmaW5lZChCT09TVF9OT19SVFRJKQorIyAgZGVmaW5lIEJPT1NUX05PX1JUVEkKKyNlbmRpZgorCisvLworLy8gSWYgd2UgaGF2ZSBhIHN0YW5kYXJkIGFsbG9jYXRvciwgdGhlbiB3ZSBoYXZlIGEgcGFydGlhbCBvbmUgYXMgd2VsbDoKKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0FMTE9DQVRPUikKKyMgIGRlZmluZSBCT09TVF9IQVNfUEFSVElBTF9TVERfQUxMT0NBVE9SCisjZW5kaWYKKworLy8KKy8vIFdlIGNhbid0IGhhdmUgYSB3b3JraW5nIHN0ZDo6dXNlX2ZhY2V0IGlmIHRoZXJlIGlzIG5vIHN0ZDo6bG9jYWxlOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fU1REX0xPQ0FMRSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX1VTRV9GQUNFVCkKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfVVNFX0ZBQ0VUCisjICBlbmRpZgorCisvLworLy8gV2UgY2FuJ3QgaGF2ZSBhIHN0ZDo6bWVzc2FnZXMgZmFjZXQgaWYgdGhlcmUgaXMgbm8gc3RkOjpsb2NhbGU6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19TVERfTE9DQUxFKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVERfTUVTU0FHRVMpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX01FU1NBR0VTCisjICBlbmRpZgorCisvLworLy8gV2UgY2FuJ3QgaGF2ZSBhIHdvcmtpbmcgc3RkOjp3c3RyZWFtYnVmIGlmIHRoZXJlIGlzIG5vIHN0ZDo6bG9jYWxlOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fU1REX0xPQ0FMRSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyMgIGVuZGlmCisKKy8vCisvLyBXZSBjYW4ndCBoYXZlIGEgPGN3Y3R5cGU+IGlmIHRoZXJlIGlzIG5vIDxjd2NoYXI+OgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fQ1dDSEFSKSAmJiAhZGVmaW5lZChCT09TVF9OT19DV0NUWVBFKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0NXQ1RZUEUKKyMgIGVuZGlmCisKKy8vCisvLyBXZSBjYW4ndCBoYXZlIGEgc3dwcmludGYgaWYgdGhlcmUgaXMgbm8gPGN3Y2hhcj46CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19DV0NIQVIpICYmICFkZWZpbmVkKEJPT1NUX05PX1NXUFJJTlRGKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjICBlbmRpZgorCisvLworLy8gSWYgV2luMzIgc3VwcG9ydCBpcyB0dXJuZWQgb2ZmLCB0aGVuIHdlIG11c3QgdHVybiBvZmYKKy8vIHRocmVhZGluZyBzdXBwb3J0IGFsc28sIHVubGVzcyB0aGVyZSBpcyBzb21lIG90aGVyCisvLyB0aHJlYWQgQVBJIGVuYWJsZWQ6CisvLworI2lmIGRlZmluZWQoQk9PU1RfRElTQUJMRV9XSU4zMikgJiYgZGVmaW5lZChfV0lOMzIpIFwKKyAgICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfVEhSRUFEUykgJiYgIWRlZmluZWQoQk9PU1RfSEFTX1BUSFJFQURTKQorIyAgZGVmaW5lIEJPT1NUX0RJU0FCTEVfVEhSRUFEUworI2VuZGlmCisKKy8vCisvLyBUdXJuIG9uIHRocmVhZGluZyBzdXBwb3J0IGlmIHRoZSBjb21waWxlciB0aGlua3MgdGhhdCBpdCdzIGluCisvLyBtdWx0aXRocmVhZGVkIG1vZGUuICBXZSBwdXQgdGhpcyBoZXJlIGJlY2F1c2UgdGhlcmUgYXJlIG9ubHkgYQorLy8gbGltaXRlZCBudW1iZXIgb2YgbWFjcm9zIHRoYXQgaWRlbnRpZnkgdGhpcyAoaWYgdGhlcmUncyBhbnkgbWlzc2luZworLy8gZnJvbSBoZXJlIHRoZW4gYWRkIHRvIHRoZSBhcHByb3ByaWF0ZSBjb21waWxlciBzZWN0aW9uKToKKy8vCisjaWYgKGRlZmluZWQoX19NVF9fKSB8fCBkZWZpbmVkKF9NVCkgfHwgZGVmaW5lZChfUkVFTlRSQU5UKSBcCisgICAgfHwgZGVmaW5lZChfUFRIUkVBRFMpIHx8IGRlZmluZWQoX19BUFBMRV9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfSEFTX1RIUkVBRFMpCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisvLworLy8gVHVybiB0aHJlYWRpbmcgc3VwcG9ydCBvZmYgaWYgQk9PU1RfRElTQUJMRV9USFJFQURTIGlzIGRlZmluZWQ6CisvLworI2lmIGRlZmluZWQoQk9PU1RfRElTQUJMRV9USFJFQURTKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19USFJFQURTKQorIyAgdW5kZWYgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisvLworLy8gVHVybiB0aHJlYWRpbmcgc3VwcG9ydCBvZmYgaWYgd2UgZG9uJ3QgcmVjb2duaXNlIHRoZSB0aHJlYWRpbmcgQVBJOgorLy8KKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19USFJFQURTKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfUFRIUkVBRFMpXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfSEFTX1dJTlRIUkVBRFMpICYmICFkZWZpbmVkKEJPT1NUX0hBU19CRVRIUkVBRFMpXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfSEFTX01QVEFTS1MpCisjICB1bmRlZiBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmCisKKy8vCisvLyBUdXJuIHRocmVhZGluZyBkZXRhaWwgbWFjcm9zIG9mZiBpZiB3ZSBkb24ndCAod2FudCB0bykgdXNlIHRocmVhZGluZworLy8KKyNpZm5kZWYgQk9PU1RfSEFTX1RIUkVBRFMKKyMgIHVuZGVmIEJPT1NUX0hBU19QVEhSRUFEUworIyAgdW5kZWYgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyMgIHVuZGVmIEJPT1NUX0hBU19QVEhSRUFEX1lJRUxECisjICB1bmRlZiBCT09TVF9IQVNfUFRIUkVBRF9ERUxBWV9OUAorIyAgdW5kZWYgQk9PU1RfSEFTX1dJTlRIUkVBRFMKKyMgIHVuZGVmIEJPT1NUX0hBU19CRVRIUkVBRFMKKyMgIHVuZGVmIEJPT1NUX0hBU19NUFRBU0tTCisjZW5kaWYKKworLy8KKy8vIElmIHRoZSBjb21waWxlciBjbGFpbXMgdG8gYmUgQzk5IGNvbmZvcm1hbnQsIHRoZW4gaXQgaGFkIGJldHRlcgorLy8gaGF2ZSBhIDxzdGRpbnQuaD46CisvLworIyAgaWYgZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAmJiAoX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDEpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICAgICBpZm5kZWYgQk9PU1RfSEFTX0xPRzFQCisjICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX0xPRzFQCisjICAgICBlbmRpZgorIyAgICAgaWZuZGVmIEJPT1NUX0hBU19FWFBNMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19FWFBNMQorIyAgICAgZW5kaWYKKyMgIGVuZGlmCisKKy8vCisvLyBEZWZpbmUgQk9PU1RfTk9fU0xJU1QgYW5kIEJPT1NUX05PX0hBU0ggaWYgcmVxdWlyZWQuCisvLyBOb3RlIHRoYXQgdGhpcyBpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb25seS4KKy8vCisjICBpZiAhZGVmaW5lZChCT09TVF9IQVNfU0xJU1QpICYmICFkZWZpbmVkKEJPT1NUX05PX1NMSVNUKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NMSVNUCisjICBlbmRpZgorCisjICBpZiAhZGVmaW5lZChCT09TVF9IQVNfSEFTSCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fSEFTSCkKKyMgICAgIGRlZmluZSBCT09TVF9OT19IQVNICisjICBlbmRpZgorCisvLworLy8gU2V0IEJPT1NUX1NMSVNUX0hFQURFUiBpZiBub3Qgc2V0IGFscmVhZHk6CisvLworI2lmIGRlZmluZWQoQk9PU1RfSEFTX1NMSVNUKSAmJiAhZGVmaW5lZChCT09TVF9TTElTVF9IRUFERVIpCisjICBkZWZpbmUgQk9PU1RfU0xJU1RfSEVBREVSIDxzbGlzdD4KKyNlbmRpZgorCisvLworLy8gU2V0IEJPT1NUX0hBU0hfU0VUX0hFQURFUiBpZiBub3Qgc2V0IGFscmVhZHk6CisvLworI2lmIGRlZmluZWQoQk9PU1RfSEFTX0hBU0gpICYmICFkZWZpbmVkKEJPT1NUX0hBU0hfU0VUX0hFQURFUikKKyMgIGRlZmluZSBCT09TVF9IQVNIX1NFVF9IRUFERVIgPGhhc2hfc2V0PgorI2VuZGlmCisKKy8vCisvLyBTZXQgQk9PU1RfSEFTSF9NQVBfSEVBREVSIGlmIG5vdCBzZXQgYWxyZWFkeToKKy8vCisjaWYgZGVmaW5lZChCT09TVF9IQVNfSEFTSCkgJiYgIWRlZmluZWQoQk9PU1RfSEFTSF9NQVBfSEVBREVSKQorIyAgZGVmaW5lIEJPT1NUX0hBU0hfTUFQX0hFQURFUiA8aGFzaF9tYXA+CisjZW5kaWYKKworLy8gIEJPT1NUX0hBU19BQklfSEVBREVSUworLy8gIFRoaXMgbWFjcm8gZ2V0cyBzZXQgaWYgd2UgaGF2ZSBoZWFkZXJzIHRoYXQgZml4IHRoZSBBQkksCisvLyAgYW5kIHByZXZlbnQgT0RSIHZpb2xhdGlvbnMgd2hlbiBsaW5raW5nIHRvIGV4dGVybmFsIGxpYnJhcmllczoKKyNpZiBkZWZpbmVkKEJPT1NUX0FCSV9QUkVGSVgpICYmIGRlZmluZWQoQk9PU1RfQUJJX1NVRkZJWCkgJiYgIWRlZmluZWQoQk9PU1RfSEFTX0FCSV9IRUFERVJTKQorIyAgZGVmaW5lIEJPT1NUX0hBU19BQklfSEVBREVSUworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19BQklfSEVBREVSUykgJiYgZGVmaW5lZChCT09TVF9ESVNBQkxFX0FCSV9IRUFERVJTKQorIyAgdW5kZWYgQk9PU1RfSEFTX0FCSV9IRUFERVJTCisjZW5kaWYKKworLy8gIEJPT1NUX05PX1NURENfTkFNRVNQQUNFIHdvcmthcm91bmQgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vICBCZWNhdXNlIHN0ZDo6c2l6ZV90IHVzYWdlIGlzIHNvIGNvbW1vbiwgZXZlbiBpbiBib29zdCBoZWFkZXJzIHdoaWNoIGRvIG5vdAorLy8gIG90aGVyd2lzZSB1c2UgdGhlIEMgbGlicmFyeSwgdGhlIDxjc3RkZGVmPiB3b3JrYXJvdW5kIGlzIGluY2x1ZGVkIGhlcmUgc28KKy8vICB0aGF0IHVnbHkgd29ya2Fyb3VuZCBjb2RlIG5lZWQgbm90IGFwcGVhciBpbiBtYW55IG90aGVyIGJvb3N0IGhlYWRlcnMuCisvLyAgTk9URSBXRUxMOiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3Igbm9uLWNvbmZvcm1pbmcgY29tcGlsZXJzOyA8Y3N0ZGRlZj4KKy8vICBtdXN0IHN0aWxsIGJlICNpbmNsdWRlZCBpbiB0aGUgdXN1YWwgcGxhY2VzIHNvIHRoYXQgPGNzdGRkZWY+IGluY2x1c2lvbgorLy8gIHdvcmtzIGFzIGV4cGVjdGVkIHdpdGggc3RhbmRhcmQgY29uZm9ybWluZyBjb21waWxlcnMuICBUaGUgcmVzdWx0aW5nCisvLyAgZG91YmxlIGluY2x1c2lvbiBvZiA8Y3N0ZGRlZj4gaXMgaGFybWxlc3MuCisKKyMgaWYgZGVmaW5lZChCT09TVF9OT19TVERDX05BTUVTUEFDRSkgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyMgICBpbmNsdWRlIDxjc3RkZGVmPgorICAgIG5hbWVzcGFjZSBzdGQgeyB1c2luZyA6OnB0cmRpZmZfdDsgdXNpbmcgOjpzaXplX3Q7IH0KKyMgZW5kaWYKKworLy8gIFdvcmthcm91bmQgZm9yIHRoZSB1bmZvcnR1bmF0ZSBtaW4vbWF4IG1hY3JvcyBkZWZpbmVkIGJ5IHNvbWUgcGxhdGZvcm0gaGVhZGVycworCisjZGVmaW5lIEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OCisKKyNpZm5kZWYgQk9PU1RfVVNJTkdfU1REX01JTgorIyAgZGVmaW5lIEJPT1NUX1VTSU5HX1NURF9NSU4oKSB1c2luZyBzdGQ6Om1pbgorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfVVNJTkdfU1REX01BWAorIyAgZGVmaW5lIEJPT1NUX1VTSU5HX1NURF9NQVgoKSB1c2luZyBzdGQ6Om1heAorI2VuZGlmCisKKy8vICBCT09TVF9OT19TVERfTUlOX01BWCB3b3JrYXJvdW5kICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fU1REX01JTl9NQVgpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisKK25hbWVzcGFjZSBzdGQgeworICB0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgorICBpbmxpbmUgY29uc3QgX1RwJiBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKGNvbnN0IF9UcCYgX19hLCBjb25zdCBfVHAmIF9fYikgeworICAgIHJldHVybiBfX2IgPCBfX2EgPyBfX2IgOiBfX2E7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIF9UcD4KKyAgaW5saW5lIGNvbnN0IF9UcCYgbWF4IEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OIChjb25zdCBfVHAmIF9fYSwgY29uc3QgX1RwJiBfX2IpIHsKKyAgICByZXR1cm4gIF9fYSA8IF9fYiA/IF9fYiA6IF9fYTsKKyAgfQorfQorCisjICBlbmRpZgorCisvLyBCT09TVF9TVEFUSUNfQ09OU1RBTlQgd29ya2Fyb3VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy8KKy8vIE9uIGNvbXBpbGVycyB3aGljaCBkb24ndCBhbGxvdyBpbi1jbGFzcyBpbml0aWFsaXphdGlvbiBvZiBzdGF0aWMgaW50ZWdyYWwKKy8vIGNvbnN0YW50IG1lbWJlcnMsIHdlIG11c3QgdXNlIGVudW1zIGFzIGEgd29ya2Fyb3VuZCBpZiB3ZSB3YW50IHRoZSBjb25zdGFudHMKKy8vIHRvIGJlIGF2YWlsYWJsZSBhdCBjb21waWxlLXRpbWUuIFRoaXMgbWFjcm8gZ2l2ZXMgdXMgYSBjb252ZW5pZW50IHdheSB0bworLy8gZGVjbGFyZSBzdWNoIGNvbnN0YW50cy4KKworIyAgaWZkZWYgQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04KKyMgICAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh0eXBlLCBhc3NpZ25tZW50KSBlbnVtIHsgYXNzaWdubWVudCB9CisjICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHR5cGUsIGFzc2lnbm1lbnQpIHN0YXRpYyBjb25zdCB0eXBlIGFzc2lnbm1lbnQKKyMgIGVuZGlmCisKKy8vIEJPT1NUX1VTRV9GQUNFVCAvIEhBU19GQUNFVCB3b3JrYXJvdW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gV2hlbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBkb2VzIG5vdCBoYXZlIGEgY29uZm9ybWluZyBzdGQ6OnVzZV9mYWNldCB0aGVyZQorLy8gYXJlIHZhcmlvdXMgd29ya2Fyb3VuZHMgYXZhaWxhYmxlLCBidXQgdGhleSBkaWZmZXIgZnJvbSBsaWJyYXJ5IHRvIGxpYnJhcnkuCisvLyBUaGUgc2FtZSBwcm9ibGVtIG9jY3VycyB3aXRoIGhhc19mYWNldC4KKy8vIFRoZXNlIG1hY3JvcyBwcm92aWRlIGEgY29uc2lzdGVudCB3YXkgdG8gYWNjZXNzIGEgbG9jYWxlJ3MgZmFjZXRzLgorLy8gVXNhZ2U6CisvLyAgICByZXBsYWNlCisvLyAgICAgICBzdGQ6OnVzZV9mYWNldDxUeXBlPihsb2MpOworLy8gICAgd2l0aAorLy8gICAgICAgQk9PU1RfVVNFX0ZBQ0VUKFR5cGUsIGxvYyk7CisvLyAgICBOb3RlIGRvIG5vdCBhZGQgYSBzdGQ6OiBwcmVmaXggdG8gdGhlIGZyb250IG9mIEJPT1NUX1VTRV9GQUNFVCEKKy8vICBVc2UgZm9yIEJPT1NUX0hBU19GQUNFVCBpcyBhbmFsb2dvdXMuCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX1NURF9VU0VfRkFDRVQpCisjICBpZmRlZiBCT09TVF9IQVNfVFdPX0FSR19VU0VfRkFDRVQKKyMgICAgIGRlZmluZSBCT09TVF9VU0VfRkFDRVQoVHlwZSwgbG9jKSBzdGQ6OnVzZV9mYWNldChsb2MsIHN0YXRpY19jYXN0PFR5cGUqPigwKSkKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfRkFDRVQoVHlwZSwgbG9jKSBzdGQ6Omhhc19mYWNldChsb2MsIHN0YXRpY19jYXN0PFR5cGUqPigwKSkKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9IQVNfTUFDUk9fVVNFX0ZBQ0VUKQorIyAgICAgZGVmaW5lIEJPT1NUX1VTRV9GQUNFVChUeXBlLCBsb2MpIHN0ZDo6X1VTRShsb2MsIFR5cGUpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX0ZBQ0VUKFR5cGUsIGxvYykgc3RkOjpfSEFTKGxvYywgVHlwZSkKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9IQVNfU1RMUF9VU0VfRkFDRVQpCisjICAgICBkZWZpbmUgQk9PU1RfVVNFX0ZBQ0VUKFR5cGUsIGxvYykgKCpzdGQ6Ol9Vc2VfZmFjZXQ8VHlwZSA+KGxvYykpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX0ZBQ0VUKFR5cGUsIGxvYykgc3RkOjpoYXNfZmFjZXQ8IFR5cGUgPihsb2MpCisjICBlbmRpZgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9VU0VfRkFDRVQoVHlwZSwgbG9jKSBzdGQ6OnVzZV9mYWNldDwgVHlwZSA+KGxvYykKKyMgIGRlZmluZSBCT09TVF9IQVNfRkFDRVQoVHlwZSwgbG9jKSBzdGQ6Omhhc19mYWNldDwgVHlwZSA+KGxvYykKKyNlbmRpZgorCisvLyBCT09TVF9ORVNURURfVEVNUExBVEUgd29ya2Fyb3VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gTWVtYmVyIHRlbXBsYXRlcyBhcmUgc3VwcG9ydGVkIGJ5IHNvbWUgY29tcGlsZXJzIGV2ZW4gdGhvdWdoIHRoZXkgY2FuJ3QgdXNlCisvLyB0aGUgQTo6dGVtcGxhdGUgbWVtYmVyPFU+IHN5bnRheCwgYXMgYSB3b3JrYXJvdW5kIHJlcGxhY2U6CisvLworLy8gdHlwZWRlZiB0eXBlbmFtZSBBOjp0ZW1wbGF0ZSByZWJpbmQ8VT4gYmluZGVyOworLy8KKy8vIHdpdGg6CisvLworLy8gdHlwZWRlZiB0eXBlbmFtZSBBOjpCT09TVF9ORVNURURfVEVNUExBVEUgcmViaW5kPFU+IGJpbmRlcjsKKworI2lmbmRlZiBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfS0VZV09SRAorIyAgZGVmaW5lIEJPT1NUX05FU1RFRF9URU1QTEFURSB0ZW1wbGF0ZQorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9ORVNURURfVEVNUExBVEUKKyNlbmRpZgorCisvLyBCT09TVF9VTlJFQUNIQUJMRV9SRVRVUk4oeCkgd29ya2Fyb3VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vIE5vcm1hbGx5IGV2YWx1YXRlcyB0byBub3RoaW5nLCB1bmxlc3MgQk9PU1RfTk9fVU5SRUFDSEFCTEVfUkVUVVJOX0RFVEVDVElPTgorLy8gaXMgZGVmaW5lZCwgaW4gd2hpY2ggY2FzZSBpdCBldmFsdWF0ZXMgdG8gcmV0dXJuIHg7IFVzZSB3aGVuIHlvdSBoYXZlIGEgcmV0dXJuCisvLyBzdGF0ZW1lbnQgdGhhdCBjYW4gbmV2ZXIgYmUgcmVhY2hlZC4KKworI2lmZGVmIEJPT1NUX05PX1VOUkVBQ0hBQkxFX1JFVFVSTl9ERVRFQ1RJT04KKyMgIGRlZmluZSBCT09TVF9VTlJFQUNIQUJMRV9SRVRVUk4oeCkgcmV0dXJuIHg7CisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX1VOUkVBQ0hBQkxFX1JFVFVSTih4KQorI2VuZGlmCisKKy8vIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgd29ya2Fyb3VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8KKy8vIFNvbWUgY29tcGlsZXJzIGRvbid0IHN1cHBvcnQgdGhlIHVzZSBvZiBgdHlwZW5hbWUnIGZvciBkZXBlbmRlbnQKKy8vIHR5cGVzIGluIGRlZHVjZWQgY29udGV4dHMsIGUuZy4KKy8vCisvLyAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHZvaWQgZihULCB0eXBlbmFtZSBUOjp0eXBlKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eCisvLyBSZXBsYWNlIHRoZXNlIGRlY2xhcmF0aW9ucyB3aXRoOgorLy8KKy8vICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBmKFQsIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgVDo6dHlwZSk7CisKKyNpZm5kZWYgQk9PU1RfTk9fREVEVUNFRF9UWVBFTkFNRQorIyAgZGVmaW5lIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgdHlwZW5hbWUKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRQorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfTk9fVFlQRU5BTUVfV0lUSF9DVE9SCisjICBkZWZpbmUgQk9PU1RfQ1RPUl9UWVBFTkFNRSB0eXBlbmFtZQorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9DVE9SX1RZUEVOQU1FCisjZW5kaWYKKworLy8gbG9uZyBsb25nIHdvcmthcm91bmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vIE9uIGdjYyAoYW5kIG1heWJlIG90aGVyIGNvbXBpbGVycz8pIGxvbmcgbG9uZyBpcyBhbHdheSBzdXBwb3J0ZWQKKy8vIGJ1dCBpdCdzIHVzZSBtYXkgZ2VuZXJhdGUgZWl0aGVyIHdhcm5pbmdzICh3aXRoIC1hbnNpKSwgb3IgZXJyb3JzCisvLyAod2l0aCAtcGVkYW50aWMgLWFuc2kpIHVubGVzcyBpdCdzIHVzZSBpcyBwcmVmaXhlZCBieSBfX2V4dGVuc2lvbl9fCisvLworI2lmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKK25hbWVzcGFjZSBuZG5ib29zdHsKKyMgIGlmZGVmIF9fR05VQ19fCisgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nIGxvbmdfbG9uZ190eXBlOworICAgX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bG9uZ19sb25nX3R5cGU7CisjICBlbHNlCisgICB0eXBlZGVmIGxvbmcgbG9uZyBsb25nX2xvbmdfdHlwZTsKKyAgIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsb25nX2xvbmdfdHlwZTsKKyMgIGVuZGlmCit9CisjZW5kaWYKKy8vIHNhbWUgYWdhaW4gZm9yIF9faW50MTI4OgorI2lmIGRlZmluZWQoQk9PU1RfSEFTX0lOVDEyOCkgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKK25hbWVzcGFjZSBuZG5ib29zdHsKKyMgIGlmZGVmIF9fR05VQ19fCisgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19pbnQxMjggaW50MTI4X3R5cGU7CisgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgX19pbnQxMjggdWludDEyOF90eXBlOworIyAgZWxzZQorICAgdHlwZWRlZiBfX2ludDEyOCBpbnQxMjhfdHlwZTsKKyAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQxMjggdWludDEyOF90eXBlOworIyAgZW5kaWYKK30KKyNlbmRpZgorCisvLyBCT09TVF9bQVBQRU5EX11FWFBMSUNJVF9URU1QTEFURV9bTk9OX11UWVBFIG1hY3JvcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLworLy8gU29tZSBjb21waWxlcnMgaGF2ZSBwcm9ibGVtcyB3aXRoIGZ1bmN0aW9uIHRlbXBsYXRlcyB3aG9zZSB0ZW1wbGF0ZQorLy8gcGFyYW1ldGVycyBkb24ndCBhcHBlYXIgaW4gdGhlIGZ1bmN0aW9uIHBhcmFtZXRlciBsaXN0IChiYXNpY2FsbHkKKy8vIHRoZXkganVzdCBsaW5rIG9uZSBpbnN0YW50aWF0aW9uIG9mIHRoZSB0ZW1wbGF0ZSBpbiB0aGUgZmluYWwKKy8vIGV4ZWN1dGFibGUpLiBUaGVzZSBtYWNyb3MgcHJvdmlkZSBhIHVuaWZvcm0gd2F5IHRvIGNvcGUgd2l0aCB0aGUKKy8vIHByb2JsZW0gd2l0aCBubyBlZmZlY3RzIG9uIHRoZSBjYWxsaW5nIHN5bnRheC4KKworLy8gRXhhbXBsZToKKy8vCisvLyAgI2luY2x1ZGUgPGlvc3RyZWFtPgorLy8gICNpbmNsdWRlIDxvc3RyZWFtPgorLy8gICNpbmNsdWRlIDx0eXBlaW5mbz4KKy8vCisvLyAgdGVtcGxhdGUgPGludCBuPgorLy8gIHZvaWQgZigpIHsgc3RkOjpjb3V0IDw8IG4gPDwgJyAnOyB9CisvLworLy8gIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorLy8gIHZvaWQgZygpIHsgc3RkOjpjb3V0IDw8IHR5cGVpZChUKS5uYW1lKCkgPDwgJyAnOyB9CisvLworLy8gIGludCBtYWluKCkgeworLy8gICAgZjwxPigpOworLy8gICAgZjwyPigpOworLy8KKy8vICAgIGc8aW50PigpOworLy8gICAgZzxkb3VibGU+KCk7CisvLyAgfQorLy8KKy8vIFdpdGggVkMrKyA2LjAgdGhlIG91dHB1dCBpczoKKy8vCisvLyAgIDIgMiBkb3VibGUgZG91YmxlCisvLworLy8gVG8gZml4IGl0LCB3cml0ZQorLy8KKy8vICAgdGVtcGxhdGUgPGludCBuPgorLy8gICB2b2lkIGYoQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEUoaW50LCBuKSkgeyAuLi4gfQorLy8KKy8vICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisvLyAgIHZvaWQgZyhCT09TVF9FWFBMSUNJVF9URU1QTEFURV9UWVBFKFQpKSB7IC4uLiB9CisvLworCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKworIyAgaW5jbHVkZSAibmRuYm9vc3QvdHlwZS5ocHAiCisjICBpbmNsdWRlICJuZG5ib29zdC9ub25fdHlwZS5ocHAiCisKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9UWVBFKHQpICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZTx0PiogPSAwCisjICBkZWZpbmUgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfVFlQRV9TUEVDKHQpICAgICAgICAgbmRuYm9vc3Q6OnR5cGU8dD4qCisjICBkZWZpbmUgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEUodCwgdikgICAgICAgbmRuYm9vc3Q6Om5vbl90eXBlPHQsIHY+KiA9IDAKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRV9TUEVDKHQsIHYpICBuZG5ib29zdDo6bm9uX3R5cGU8dCwgdj4qCisKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfVFlQRSh0KSAgICAgICAgXAorICAgICAgICAgICAgICwgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfVFlQRSh0KQorIyAgZGVmaW5lIEJPT1NUX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkgICBcCisgICAgICAgICAgICAgLCBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEUodCwgdikgXAorICAgICAgICAgICAgICwgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEUodCwgdikKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEVfU1BFQyh0LCB2KSAgICBcCisgICAgICAgICAgICAgLCBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRV9TUEVDKHQsIHYpCisKKyNlbHNlCisKKy8vIG5vIHdvcmthcm91bmQgbmVlZGVkOiBleHBhbmQgdG8gbm90aGluZworCisjICBkZWZpbmUgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfVFlQRSh0KQorIyAgZGVmaW5lIEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEVfU1BFQyh0KQorIyAgZGVmaW5lIEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFKHQsIHYpCisjICBkZWZpbmUgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEVfU1BFQyh0LCB2KQorCisjICBkZWZpbmUgQk9PU1RfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUodCkKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfVFlQRV9TUEVDKHQpCisjICBkZWZpbmUgQk9PU1RfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFKHQsIHYpCisjICBkZWZpbmUgQk9PU1RfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFX1NQRUModCwgdikKKworCisjZW5kaWYgLy8gZGVmaW5lZCBCT09TVF9OT19FWFBMSUNJVF9GVU5DVElPTl9URU1QTEFURV9BUkdVTUVOVFMKKworLy8gV2hlbiBCT09TVF9OT19TVERfVFlQRUlORk8gaXMgZGVmaW5lZCwgd2UgY2FuIGp1c3QgaW1wb3J0CisvLyB0aGUgZ2xvYmFsIGRlZmluaXRpb24gaW50byBzdGQgbmFtZXNwYWNlOgorI2lmIGRlZmluZWQoQk9PU1RfTk9fU1REX1RZUEVJTkZPKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorI2luY2x1ZGUgPHR5cGVpbmZvPgorbmFtZXNwYWNlIHN0ZHsgdXNpbmcgOjp0eXBlX2luZm87IH0KKyNlbmRpZgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLworLy8gSGVscGVyIG1hY3JvIEJPT1NUX1NUUklOR0laRToKKy8vIENvbnZlcnRzIHRoZSBwYXJhbWV0ZXIgWCB0byBhIHN0cmluZyBhZnRlciBtYWNybyByZXBsYWNlbWVudAorLy8gb24gWCBoYXMgYmVlbiBwZXJmb3JtZWQuCisvLworI2RlZmluZSBCT09TVF9TVFJJTkdJWkUoWCkgQk9PU1RfRE9fU1RSSU5HSVpFKFgpCisjZGVmaW5lIEJPT1NUX0RPX1NUUklOR0laRShYKSAjWAorCisvLworLy8gSGVscGVyIG1hY3JvIEJPT1NUX0pPSU46CisvLyBUaGUgZm9sbG93aW5nIHBpZWNlIG9mIG1hY3JvIG1hZ2ljIGpvaW5zIHRoZSB0d28KKy8vIGFyZ3VtZW50cyB0b2dldGhlciwgZXZlbiB3aGVuIG9uZSBvZiB0aGUgYXJndW1lbnRzIGlzCisvLyBpdHNlbGYgYSBtYWNybyAoc2VlIDE2LjMuMSBpbiBDKysgc3RhbmRhcmQpLiAgVGhlIGtleQorLy8gaXMgdGhhdCBtYWNybyBleHBhbnNpb24gb2YgbWFjcm8gYXJndW1lbnRzIGRvZXMgbm90CisvLyBvY2N1ciBpbiBCT09TVF9ET19KT0lOMiBidXQgZG9lcyBpbiBCT09TVF9ET19KT0lOLgorLy8KKyNkZWZpbmUgQk9PU1RfSk9JTiggWCwgWSApIEJPT1NUX0RPX0pPSU4oIFgsIFkgKQorI2RlZmluZSBCT09TVF9ET19KT0lOKCBYLCBZICkgQk9PU1RfRE9fSk9JTjIoWCxZKQorI2RlZmluZSBCT09TVF9ET19KT0lOMiggWCwgWSApIFgjI1kKKworLy8KKy8vIFNldCBzb21lIGRlZmF1bHQgdmFsdWVzIGZvciBjb21waWxlci9saWJyYXJ5L3BsYXRmb3JtIG5hbWVzLgorLy8gVGhlc2UgYXJlIGZvciBkZWJ1Z2dpbmcgY29uZmlnIHNldHVwIG9ubHk6CisvLworIyAgaWZuZGVmIEJPT1NUX0NPTVBJTEVSCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVIgIlVua25vd24gSVNPIEMrKyBDb21waWxlciIKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfU1RETElCCisjICAgICBkZWZpbmUgQk9PU1RfU1RETElCICJVbmtub3duIElTTyBzdGFuZGFyZCBsaWJyYXJ5IgorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9QTEFURk9STQorIyAgICAgaWYgZGVmaW5lZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgfHwgZGVmaW5lZChfWE9QRU5fU09VUkNFKSBcCisgICAgICAgICB8fCBkZWZpbmVkKF9QT1NJWF9TT1VSQ0UpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUExBVEZPUk0gIkdlbmVyaWMgVW5peCIKKyMgICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QTEFURk9STSAiVW5rbm93biIKKyMgICAgIGVuZGlmCisjICBlbmRpZgorCisvLworLy8gU2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgR1BVIHN1cHBvcnQKKy8vCisjICBpZm5kZWYgQk9PU1RfR1BVX0VOQUJMRUQKKyMgIGRlZmluZSBCT09TVF9HUFVfRU5BQkxFRCAKKyMgIGVuZGlmCisKKy8vIEJPT1NUX0ZPUkNFSU5MSU5FIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLyBNYWNybyB0byB1c2UgaW4gcGxhY2Ugb2YgJ2lubGluZScgdG8gZm9yY2UgYSBmdW5jdGlvbiB0byBiZSBpbmxpbmUKKyNpZiAhZGVmaW5lZChCT09TVF9GT1JDRUlOTElORSkKKyMgIGlmIGRlZmluZWQoX01TQ19WRVIpCisjICAgIGRlZmluZSBCT09TVF9GT1JDRUlOTElORSBfX2ZvcmNlaW5saW5lCisjICBlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID4gMworICAgICAvLyBDbGFuZyBhbHNvIGRlZmluZXMgX19HTlVDX18gKGFzIDQpCisjICAgIGRlZmluZSBCT09TVF9GT1JDRUlOTElORSBpbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkKKyMgIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX0ZPUkNFSU5MSU5FIGlubGluZQorIyAgZW5kaWYKKyNlbmRpZgorCisvLworLy8gU2V0IEJPT1NUX05PX0RFQ0xUWVBFX04zMjc2IHdoZW4gQk9PU1RfTk9fREVDTFRZUEUgaXMgZGVmaW5lZAorLy8KKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NikKKyNkZWZpbmUJQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNlbmRpZgorCisvLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGVwcmVjYXRlZCBtYWNyb3MgZm9yIDEuNTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgVGhlc2Ugd2lsbCBnbyBhd2F5IGluIGEgZnV0dXJlIHJlbGVhc2UKKworLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVCBvciBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorLy8gICAgICAgICAgIGluc3RlYWQgb2YgQk9PU1RfTk9fU1REX1VOT1JERVJFRAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVApIHx8IGRlZmluZWQgKEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfU0VUKQorIyBpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfU1REX1VOT1JERVJFRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NURF9VTk9SREVSRUQKKyMgZW5kaWYKKyNlbmRpZgorCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUIGluc3RlYWQgb2YgQk9PU1RfTk9fSU5JVElBTElaRVJfTElTVFMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKSAmJiAhZGVmaW5lZChCT09TVF9OT19JTklUSUFMSVpFUl9MSVNUUykKKyMgIGRlZmluZSBCT09TVF9OT19JTklUSUFMSVpFUl9MSVNUUworI2VuZGlmCisKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX0FSUkFZIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX0FSUkFZCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9BUlJBWSkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfQVJSQVkKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX0NIUk9OTworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTykgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX0NIUk9OTykKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfQ0hST05PCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfQ09ERUNWVAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9DT0RFQ1ZUKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9DT0RFQ1ZUCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRSBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9DT05ESVRJT05fVkFSSUFCTEUpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX0NPTkRJVElPTl9WQVJJQUJMRQorI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfRk9SV0FSRF9MSVNUCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfRk9SV0FSRF9MSVNUKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9GT1JXQVJEX0xJU1QKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX0ZVVFVSRQorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX0ZVVFVSRSkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfRlVUVVJFCisjZW5kaWYKKworLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCAKKy8vICBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9JTklUSUFMSVpFUl9MSVNUIG9yIEJPT1NUX05PX0lOSVRJQUxJWkVSX0xJU1RTCisjaWZkZWYgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgaWZuZGVmIEJPT1NUX05PXzBYX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgZW5kaWYKKyMgaWZuZGVmIEJPT1NUX05PX0lOSVRJQUxJWkVSX0xJU1RTCisjICBkZWZpbmUgQk9PU1RfTk9fSU5JVElBTElaRVJfTElTVFMKKyMgZW5kaWYKKyNlbmRpZgorCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWCBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9NVVRFWAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfTVVURVgpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX01VVEVYCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTSBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9SQU5ET00KKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00pICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9SQU5ET00pCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX1JBTkRPTQorI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTyBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9SQVRJTworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfUkFUSU8pCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX1JBVElPCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1JFR0VYCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9SRUdFWCkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfUkVHRVgKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1NZU1RFTV9FUlJPUgorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1NZU1RFTV9FUlJPUikgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1NZU1RFTV9FUlJPUikKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfU1lTVEVNX0VSUk9SCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRCBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9USFJFQUQKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9USFJFQUQpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX1RIUkVBRAorI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRSBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9UVVBMRQorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfVFVQTEUpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX1RVUExFCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1RZUEVfVFJBSVRTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFlQRV9UUkFJVFMpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9UWVBFX1RSQUlUUykKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfVFlQRV9UUkFJVFMKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1RZUEVJTkRFWAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1RZUEVJTkRFWCkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfVFlQRUlOREVYCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfVU5PUkRFUkVEX01BUAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVApICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9VTk9SREVSRURfTUFQKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9VTk9SREVSRURfTUFQCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfVU5PUkRFUkVEX1NFVAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9VTk9SREVSRURfU0VUKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9VTk9SREVSRURfU0VUCisjZW5kaWYKKworLy8gIC0tLS0tLS0tLS0tLS0tLS0tLSBFbmQgb2YgZGVwcmVjYXRlZCBtYWNyb3MgZm9yIDEuNTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXByZWNhdGVkIG1hY3JvcyBmb3IgMS41MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICBUaGVzZSB3aWxsIGdvIGF3YXkgaW4gYSBmdXR1cmUgcmVsZWFzZQorCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fQVVUT19ERUNMQVJBVElPTlMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19BVVRPX0RFQ0xBUkFUSU9OUykKKyMgIGRlZmluZSBCT09TVF9OT19BVVRPX0RFQ0xBUkFUSU9OUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TIGluc3RlYWQgb2YgICBCT09TVF9OT19BVVRPX01VTFRJREVDTEFSQVRJT05TCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19BVVRPX01VTFRJREVDTEFSQVRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0NIQVIxNl9UCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9DSEFSMTZfVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ0hBUjE2X1QpCisjICBkZWZpbmUgQk9PU1RfTk9fQ0hBUjE2X1QKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0NIQVIzMl9UCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9DSEFSMzJfVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ0hBUjMyX1QpCisjICBkZWZpbmUgQk9PU1RfTk9fQ0hBUjMyX1QKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fVEVNUExBVEVfQUxJQVNFUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfQUxJQVNFUykKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9BTElBU0VTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUiBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fQ09OU1RFWFBSCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9DT05TVEVYUFIpICYmICFkZWZpbmVkKEJPT1NUX05PX0NPTlNURVhQUikKKyMgIGRlZmluZSBCT09TVF9OT19DT05TVEVYUFIKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0RFQ0xUWVBFX04zMjc2CisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NikgJiYgIWRlZmluZWQoQk9PU1RfTk9fREVDTFRZUEVfTjMyNzYpCisjICBkZWZpbmUgQk9PU1RfTk9fREVDTFRZUEVfTjMyNzYKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0RFQ0xUWVBFCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9ERUNMVFlQRSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fREVDTFRZUEUpCisjICBkZWZpbmUgQk9PU1RfTk9fREVDTFRZUEUKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fREVGQVVMVEVEX0ZVTkNUSU9OUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fREVGQVVMVEVEX0ZVTkNUSU9OUykKKyMgIGRlZmluZSBCT09TVF9OT19ERUZBVUxURURfRlVOQ1RJT05TCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TIGluc3RlYWQgb2YgICBCT09TVF9OT19ERUxFVEVEX0ZVTkNUSU9OUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0RFTEVURURfRlVOQ1RJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0RFTEVURURfRlVOQ1RJT05TCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTIGluc3RlYWQgb2YgICBCT09TVF9OT19FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURSBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fRVhURVJOX1RFTVBMQVRFCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUpICYmICFkZWZpbmVkKEJPT1NUX05PX0VYVEVSTl9URU1QTEFURSkKKyMgIGRlZmluZSBCT09TVF9OT19FWFRFUk5fVEVNUExBVEUKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTIGluc3RlYWQgb2YgICBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTKQorIyAgZGVmaW5lIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9MQU1CREFTIGluc3RlYWQgb2YgICBCT09TVF9OT19MQU1CREFTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9MQU1CREFTKSAmJiAhZGVmaW5lZChCT09TVF9OT19MQU1CREFTKQorIyAgZGVmaW5lIEJPT1NUX05PX0xBTUJEQVMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUykKKyMgIGRlZmluZSBCT09TVF9OT19MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX05PRVhDRVBUIGluc3RlYWQgb2YgICBCT09TVF9OT19OT0VYQ0VQVAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQpICYmICFkZWZpbmVkKEJPT1NUX05PX05PRVhDRVBUKQorIyAgZGVmaW5lIEJPT1NUX05PX05PRVhDRVBUCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX05VTExQVFIgaW5zdGVhZCBvZiAgIEJPT1NUX05PX05VTExQVFIKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX05VTExQVFIpICYmICFkZWZpbmVkKEJPT1NUX05PX05VTExQVFIpCisjICBkZWZpbmUgQk9PU1RfTk9fTlVMTFBUUgorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX1JBV19MSVRFUkFMUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTKSAmJiAhZGVmaW5lZChCT09TVF9OT19SQVdfTElURVJBTFMpCisjICBkZWZpbmUgQk9PU1RfTk9fUkFXX0xJVEVSQUxTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTIGluc3RlYWQgb2YgICBCT09TVF9OT19SVkFMVUVfUkVGRVJFTkNFUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpICYmICFkZWZpbmVkKEJPT1NUX05PX1JWQUxVRV9SRUZFUkVOQ0VTKQorIyAgZGVmaW5lIEJPT1NUX05PX1JWQUxVRV9SRUZFUkVOQ0VTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fU0NPUEVEX0VOVU1TCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMpICYmICFkZWZpbmVkKEJPT1NUX05PX1NDT1BFRF9FTlVNUykKKyMgIGRlZmluZSBCT09TVF9OT19TQ09QRURfRU5VTVMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVCBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fU1RBVElDX0FTU0VSVAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1RBVElDX0FTU0VSVCkKKyMgIGRlZmluZSBCT09TVF9OT19TVEFUSUNfQVNTRVJUCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX1NURF9VTk9SREVSRUQgaW5zdGVhZCBvZiAgIEJPT1NUX05PX1NURF9VTk9SREVSRUQKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1NURF9VTk9SREVSRUQpICYmICFkZWZpbmVkKEJPT1NUX05PX1NURF9VTk9SREVSRUQpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1VOT1JERVJFRAorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTIGluc3RlYWQgb2YgICBCT09TVF9OT19VTklDT0RFX0xJVEVSQUxTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTKSAmJiAhZGVmaW5lZChCT09TVF9OT19VTklDT0RFX0xJVEVSQUxTKQorIyAgZGVmaW5lIEJPT1NUX05PX1VOSUNPREVfTElURVJBTFMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVggaW5zdGVhZCBvZiAgIEJPT1NUX05PX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgpCisjICBkZWZpbmUgQk9PU1RfTk9fVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTIGluc3RlYWQgb2YgICBCT09TVF9OT19WQVJJQURJQ19URU1QTEFURVMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fVkFSSUFESUNfVEVNUExBVEVTKQorIyAgZGVmaW5lIEJPT1NUX05PX1ZBUklBRElDX1RFTVBMQVRFUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MgaW5zdGVhZCBvZiAgIEJPT1NUX05PX1ZBUklBRElDX01BQ1JPUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TKSAmJiAhZGVmaW5lZChCT09TVF9OT19WQVJJQURJQ19NQUNST1MpCisjICBkZWZpbmUgQk9PU1RfTk9fVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTIGluc3RlYWQgb2YgICBCT09TVF9OT19OVU1FUklDX0xJTUlUU19MT1dFU1QKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTKSAmJiAhZGVmaW5lZChCT09TVF9OT19OVU1FUklDX0xJTUlUU19MT1dFU1QpCisjICBkZWZpbmUgQk9PU1RfTk9fTlVNRVJJQ19MSU1JVFNfTE9XRVNUCisjZW5kaWYKKy8vICAtLS0tLS0tLS0tLS0tLS0tLS0gRW5kIG9mIGRlcHJlY2F0ZWQgbWFjcm9zIGZvciAxLjUxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKKworLy8KKy8vIEhlbHBlciBtYWNyb3MgQk9PU1RfTk9FWENFUFQsIEJPT1NUX05PRVhDRVBUX0lGLCBCT09TVF9OT0VYQ0VQVF9FWFBSCisvLyBUaGVzZSBhaWQgdGhlIHRyYW5zaXRpb24gdG8gQysrMTEgd2hpbGUgc3RpbGwgc3VwcG9ydGluZyBDKyswMyBjb21waWxlcnMKKy8vCisjaWZkZWYgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyMgIGRlZmluZSBCT09TVF9OT0VYQ0VQVAorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUX09SX05PVEhST1cgdGhyb3coKQorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUX0lGKFByZWRpY2F0ZSkKKyMgIGRlZmluZSBCT09TVF9OT0VYQ0VQVF9FWFBSKEV4cHJlc3Npb24pIGZhbHNlCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUIG5vZXhjZXB0CisjICBkZWZpbmUgQk9PU1RfTk9FWENFUFRfT1JfTk9USFJPVyBub2V4Y2VwdAorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUX0lGKFByZWRpY2F0ZSkgbm9leGNlcHQoKFByZWRpY2F0ZSkpCisjICBkZWZpbmUgQk9PU1RfTk9FWENFUFRfRVhQUihFeHByZXNzaW9uKSBub2V4Y2VwdCgoRXhwcmVzc2lvbikpCisjZW5kaWYKKy8vCisvLyBIZWxwZXIgbWFjcm8gQk9PU1RfRkFMTFRIUk9VR0ggCisvLyBGYWxsYmFjayBkZWZpbml0aW9uIG9mIEJPT1NUX0ZBTExUSFJPVUdIIG1hY3JvIHVzZWQgdG8gbWFyayBpbnRlbmRlZCAKKy8vIGZhbGwtdGhyb3VnaCBiZXR3ZWVuIGNhc2UgbGFiZWxzIGluIGEgc3dpdGNoIHN0YXRlbWVudC4gV2UgdXNlIGEgZGVmaW5pdGlvbiAKKy8vIHRoYXQgcmVxdWlyZXMgYSBzZW1pY29sb24gYWZ0ZXIgaXQgdG8gYXZvaWQgYXQgbGVhc3Qgb25lIHR5cGUgb2YgbWlzdXNlIGV2ZW4gCisvLyBvbiB1bnN1cHBvcnRlZCBjb21waWxlcnMuIAorLy8gCisjaWZuZGVmIEJPT1NUX0ZBTExUSFJPVUdIIAorIyAgZGVmaW5lIEJPT1NUX0ZBTExUSFJPVUdIICgodm9pZCkwKSAKKyNlbmRpZiAKKworLy8KKy8vIGNvbnN0ZXhwciB3b3JrYXJvdW5kcworLy8gCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9DT05TVEVYUFIpCisjZGVmaW5lIEJPT1NUX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9DT05TVEVYUFJfT1JfQ09OU1QgY29uc3QKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0NPTlNURVhQUiBjb25zdGV4cHIKKyNkZWZpbmUgQk9PU1RfQ09OU1RFWFBSX09SX0NPTlNUIGNvbnN0ZXhwcgorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfU1RBVElDX0NPTlNURVhQUiAgc3RhdGljIEJPT1NUX0NPTlNURVhQUl9PUl9DT05TVAorCisvLworLy8gU2V0IEJPT1NUX0hBU19TVEFUSUNfQVNTRVJUIHdoZW4gQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVCBpcyBub3QgZGVmaW5lZAorLy8KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfU1RBVElDX0FTU0VSVCkKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RBVElDX0FTU0VSVAorI2VuZGlmCisKKy8vCisvLyBTZXQgQk9PU1RfSEFTX1JWQUxVRV9SRUZTIHdoZW4gQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgaXMgbm90IGRlZmluZWQKKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpICYmICFkZWZpbmVkKEJPT1NUX0hBU19SVkFMVUVfUkVGUykKKyNkZWZpbmUgQk9PU1RfSEFTX1JWQUxVRV9SRUZTCisjZW5kaWYKKworLy8KKy8vIFNldCBCT09TVF9IQVNfVkFSSUFESUNfVE1QTCB3aGVuIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUyBpcyBub3QgZGVmaW5lZAorLy8KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpICYmICFkZWZpbmVkKEJPT1NUX0hBU19WQVJJQURJQ19UTVBMKQorI2RlZmluZSBCT09TVF9IQVNfVkFSSUFESUNfVE1QTAorI2VuZGlmCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy91c2VyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3VzZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNGE5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy91c2VyLmhwcApAQCAtMCwwICsxLDEyNCBAQAorLy8gIGJvb3N0L2NvbmZpZy91c2VyLmhwcCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIERvIG5vdCBjaGVjayBpbiBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGlzIGZpbGUsCisvLyAgVGhpcyBmaWxlIG1heSBiZSBjdXN0b21pemVkIGJ5IHRoZSBlbmQgdXNlciwgYnV0IG5vdCBieSBib29zdC4KKworLy8KKy8vICBVc2UgdGhpcyBmaWxlIHRvIGRlZmluZSBhIHNpdGUgYW5kIGNvbXBpbGVyIHNwZWNpZmljCisvLyAgY29uZmlndXJhdGlvbiBwb2xpY3k6CisvLworCisvLyBkZWZpbmUgdGhpcyB0byBsb2NhdGUgYSBjb21waWxlciBjb25maWcgZmlsZToKKy8vICNkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHIDxteWhlYWRlcj4KKworLy8gZGVmaW5lIHRoaXMgdG8gbG9jYXRlIGEgc3RkbGliIGNvbmZpZyBmaWxlOgorLy8gI2RlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICAgPG15aGVhZGVyPgorCisvLyBkZWZpbmUgdGhpcyB0byBsb2NhdGUgYSBwbGF0Zm9ybSBjb25maWcgZmlsZToKKy8vICNkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHIDxteWhlYWRlcj4KKworLy8gZGVmaW5lIHRoaXMgdG8gZGlzYWJsZSBjb21waWxlciBjb25maWcsCisvLyB1c2UgaWYgeW91ciBjb21waWxlciBjb25maWcgaGFzIG5vdGhpbmcgdG8gc2V0OgorLy8gI2RlZmluZSBCT09TVF9OT19DT01QSUxFUl9DT05GSUcKKworLy8gZGVmaW5lIHRoaXMgdG8gZGlzYWJsZSBzdGRsaWIgY29uZmlnLAorLy8gdXNlIGlmIHlvdXIgc3RkbGliIGNvbmZpZyBoYXMgbm90aGluZyB0byBzZXQ6CisvLyAjZGVmaW5lIEJPT1NUX05PX1NURExJQl9DT05GSUcKKworLy8gZGVmaW5lIHRoaXMgdG8gZGlzYWJsZSBwbGF0Zm9ybSBjb25maWcsCisvLyB1c2UgaWYgeW91ciBwbGF0Zm9ybSBjb25maWcgaGFzIG5vdGhpbmcgdG8gc2V0OgorLy8gI2RlZmluZSBCT09TVF9OT19QTEFURk9STV9DT05GSUcKKworLy8gZGVmaW5lIHRoaXMgdG8gZGlzYWJsZSBhbGwgY29uZmlnIG9wdGlvbnMsCisvLyBleGNsdWRpbmcgdGhlIHVzZXIgY29uZmlnLiAgVXNlIGlmIHlvdXIKKy8vIHNldHVwIGlzIGZ1bGx5IElTTyBjb21wbGlhbnQsIGFuZCBoYXMgbm8KKy8vIHVzZWZ1bCBleHRlbnNpb25zLCBvciBmb3IgYXV0b2NvbmYgZ2VuZXJhdGVkCisvLyBzZXR1cHM6CisvLyAjZGVmaW5lIEJPT1NUX05PX0NPTkZJRworCisvLyBkZWZpbmUgdGhpcyB0byBtYWtlIHRoZSBjb25maWcgIm9wdGltaXN0aWMiCisvLyBhYm91dCB1bmtub3duIGNvbXBpbGVyIHZlcnNpb25zLiAgTm9ybWFsbHkKKy8vIHVua25vd24gY29tcGlsZXIgdmVyc2lvbnMgYXJlIGFzc3VtZWQgdG8gaGF2ZQorLy8gYWxsIHRoZSBkZWZlY3RzIG9mIHRoZSBsYXN0IGtub3duIHZlcnNpb24sIGhvd2V2ZXIKKy8vIHNldHRpbmcgdGhpcyBmbGFnLCBjYXVzZXMgdGhlIGNvbmZpZyB0byBhc3N1bWUKKy8vIHRoYXQgdW5rbm93biBjb21waWxlciB2ZXJzaW9ucyBhcmUgZnVsbHkgY29uZm9ybWFudAorLy8gd2l0aCB0aGUgc3RhbmRhcmQ6CisvLyAjZGVmaW5lIEJPT1NUX1NUUklDVF9DT05GSUcKKworLy8gZGVmaW5lIHRoaXMgdG8gY2F1c2UgdGhlIGNvbmZpZyB0byBoYWx0IGNvbXBpbGF0aW9uCisvLyB3aXRoIGFuICNlcnJvciBpZiBpdCBlbmNvdW50ZXJzIGFueXRoaW5nIHVua25vd24gLS0KKy8vIGVpdGhlciBhbiB1bmtub3duIGNvbXBpbGVyIHZlcnNpb24gb3IgYW4gdW5rbm93bgorLy8gY29tcGlsZXIvcGxhdGZvcm0vbGlicmFyeToKKy8vICNkZWZpbmUgQk9PU1RfQVNTRVJUX0NPTkZJRworCisKKy8vIGRlZmluZSBpZiB5b3Ugd2FudCB0byBkaXNhYmxlIHRocmVhZGluZyBzdXBwb3J0LCBldmVuCisvLyB3aGVuIGF2YWlsYWJsZToKKy8vICNkZWZpbmUgQk9PU1RfRElTQUJMRV9USFJFQURTCisKKy8vIGRlZmluZSB3aGVuIHlvdSB3YW50IHRvIGRpc2FibGUgV2luMzIgc3BlY2lmaWMgZmVhdHVyZXMKKy8vIGV2ZW4gd2hlbiBhdmFpbGFibGU6CisvLyAjZGVmaW5lIEJPT1NUX0RJU0FCTEVfV0lOMzIKKworLy8gQk9PU1RfRElTQUJMRV9BQklfSEVBREVSUzogU3RvcHMgYm9vc3QgaGVhZGVycyBmcm9tIGluY2x1ZGluZyBhbnkgCisvLyBwcmVmaXgvc3VmZml4IGhlYWRlcnMgdGhhdCBub3JtYWxseSBjb250cm9sIHRoaW5ncyBsaWtlIHN0cnVjdCAKKy8vIHBhY2tpbmcgYW5kIGFsaWdubWVudC4gCisvLyAjZGVmaW5lIEJPT1NUX0RJU0FCTEVfQUJJX0hFQURFUlMKKworLy8gQk9PU1RfQUJJX1BSRUZJWDogQSBwcmVmaXggaGVhZGVyIHRvIGluY2x1ZGUgaW4gcGxhY2Ugb2Ygd2hhdGV2ZXIKKy8vIGJvb3N0LmNvbmZpZyB3b3VsZCBub3JtYWxseSBzZWxlY3QsIGFueSByZXBsYWNlbWVudCBzaG91bGQgc2V0IHVwIAorLy8gc3RydWN0IHBhY2tpbmcgYW5kIGFsaWdubWVudCBvcHRpb25zIGFzIHJlcXVpcmVkLiAKKy8vICNkZWZpbmUgQk9PU1RfQUJJX1BSRUZJWCBteS1oZWFkZXItbmFtZQorCisvLyBCT09TVF9BQklfU1VGRklYOiBBIHN1ZmZpeCBoZWFkZXIgdG8gaW5jbHVkZSBpbiBwbGFjZSBvZiB3aGF0ZXZlciAKKy8vIGJvb3N0LmNvbmZpZyB3b3VsZCBub3JtYWxseSBzZWxlY3QsIGFueSByZXBsYWNlbWVudCBzaG91bGQgdW5kbyAKKy8vIHRoZSBlZmZlY3RzIG9mIHRoZSBwcmVmaXggaGVhZGVyLiAKKy8vICNkZWZpbmUgQk9PU1RfQUJJX1NVRkZJWCBteS1oZWFkZXItbmFtZQorCisvLyBCT09TVF9BTExfRFlOX0xJTks6IEZvcmNlcyBhbGwgbGlicmFyaWVzIHRoYXQgaGF2ZSBzZXBhcmF0ZSBzb3VyY2UsIAorLy8gdG8gYmUgbGlua2VkIGFzIGRsbCdzIHJhdGhlciB0aGFuIHN0YXRpYyBsaWJyYXJpZXMgb24gTWljcm9zb2Z0IFdpbmRvd3MgCisvLyAodGhpcyBtYWNybyBpcyB1c2VkIHRvIHR1cm4gb24gX19kZWNsc3BlYyhkbGxpbXBvcnQpIG1vZGlmaWVycywgc28gdGhhdCAKKy8vIHRoZSBjb21waWxlciBrbm93cyB3aGljaCBzeW1ib2xzIHRvIGxvb2sgZm9yIGluIGEgZGxsIHJhdGhlciB0aGFuIGluIGEgCisvLyBzdGF0aWMgbGlicmFyeSkuICBOb3RlIHRoYXQgdGhlcmUgbWF5IGJlIHNvbWUgbGlicmFyaWVzIHRoYXQgY2FuIG9ubHkgCisvLyBiZSBzdGF0aWNhbGx5IGxpbmtlZCAoQm9vc3QuVGVzdCBmb3IgZXhhbXBsZSkgYW5kIG90aGVycyB3aGljaCBtYXkgb25seSAKKy8vIGJlIGR5bmFtaWNhbGx5IGxpbmtlZCAoQm9vc3QuVGhyZWFkcyBmb3IgZXhhbXBsZSksIGluIHRoZXNlIGNhc2VzIHRoaXMgCisvLyBtYWNybyBoYXMgbm8gZWZmZWN0LgorLy8gI2RlZmluZSBCT09TVF9BTExfRFlOX0xJTksKKyAKKy8vIEJPT1NUX1dIQVRFVkVSX0RZTl9MSU5LOiBGb3JjZXMgbGlicmFyeSAid2hhdGV2ZXIiIHRvIGJlIGxpbmtlZCBhcyBhIGRsbCAKKy8vIHJhdGhlciB0aGFuIGEgc3RhdGljIGxpYnJhcnkgb24gTWljcm9zb2Z0IFdpbmRvd3M6IHJlcGxhY2UgdGhlIFdIQVRFVkVSIAorLy8gcGFydCBvZiB0aGUgbWFjcm8gbmFtZSB3aXRoIHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHRoYXQgeW91IHdhbnQgdG8gCisvLyBkeW5hbWljYWxseSBsaW5rIHRvLCBmb3IgZXhhbXBsZSB1c2UgQk9PU1RfREFURV9USU1FX0RZTl9MSU5LIG9yIAorLy8gQk9PU1RfUkVHRVhfRFlOX0xJTksgZXRjICh0aGlzIG1hY3JvIGlzIHVzZWQgdG8gdHVybiBvbiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgCisvLyBtb2RpZmllcnMsIHNvIHRoYXQgdGhlIGNvbXBpbGVyIGtub3dzIHdoaWNoIHN5bWJvbHMgdG8gbG9vayBmb3IgaW4gYSBkbGwgCisvLyByYXRoZXIgdGhhbiBpbiBhIHN0YXRpYyBsaWJyYXJ5KS4gIAorLy8gTm90ZSB0aGF0IHRoZXJlIG1heSBiZSBzb21lIGxpYnJhcmllcyB0aGF0IGNhbiBvbmx5IGJlIHN0YXRpY2FsbHkgbGlua2VkIAorLy8gKEJvb3N0LlRlc3QgZm9yIGV4YW1wbGUpIGFuZCBvdGhlcnMgd2hpY2ggbWF5IG9ubHkgYmUgZHluYW1pY2FsbHkgbGlua2VkIAorLy8gKEJvb3N0LlRocmVhZHMgZm9yIGV4YW1wbGUpLCBpbiB0aGVzZSBjYXNlcyB0aGlzIG1hY3JvIGlzIHVuc3VwcG9ydGVkLgorLy8gI2RlZmluZSBCT09TVF9XSEFURVZFUl9EWU5fTElOSworIAorLy8gQk9PU1RfQUxMX05PX0xJQjogVGVsbHMgdGhlIGNvbmZpZyBzeXN0ZW0gbm90IHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0IAorLy8gd2hpY2ggbGlicmFyaWVzIHRvIGxpbmsgYWdhaW5zdC4gIAorLy8gTm9ybWFsbHkgaWYgYSBjb21waWxlciBzdXBwb3J0cyAjcHJhZ21hIGxpYiwgdGhlbiB0aGUgY29ycmVjdCBsaWJyYXJ5IAorLy8gYnVpbGQgdmFyaWFudCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgYW5kIGxpbmtlZCBhZ2FpbnN0LCAKKy8vIHNpbXBseSBieSB0aGUgYWN0IG9mIGluY2x1ZGluZyBvbmUgb2YgdGhhdCBsaWJyYXJ5J3MgaGVhZGVycy4gIAorLy8gVGhpcyBtYWNybyB0dXJucyB0aGF0IGZlYXR1cmUgb2ZmLgorLy8gI2RlZmluZSBCT09TVF9BTExfTk9fTElCCisgCisvLyBCT09TVF9XSEFURVZFUl9OT19MSUI6IFRlbGxzIHRoZSBjb25maWcgc3lzdGVtIG5vdCB0byBhdXRvbWF0aWNhbGx5IAorLy8gc2VsZWN0IHdoaWNoIGxpYnJhcnkgdG8gbGluayBhZ2FpbnN0IGZvciBsaWJyYXJ5ICJ3aGF0ZXZlciIsIAorLy8gcmVwbGFjZSBXSEFURVZFUiBpbiB0aGUgbWFjcm8gbmFtZSB3aXRoIHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5OyAKKy8vIGZvciBleGFtcGxlIEJPT1NUX0RBVEVfVElNRV9OT19MSUIgb3IgQk9PU1RfUkVHRVhfTk9fTElCLiAgCisvLyBOb3JtYWxseSBpZiBhIGNvbXBpbGVyIHN1cHBvcnRzICNwcmFnbWEgbGliLCB0aGVuIHRoZSBjb3JyZWN0IGxpYnJhcnkgCisvLyBidWlsZCB2YXJpYW50IHdpbGwgYmUgYXV0b21hdGljYWxseSBzZWxlY3RlZCBhbmQgbGlua2VkIGFnYWluc3QsIHNpbXBseSAKKy8vIGJ5IHRoZSBhY3Qgb2YgaW5jbHVkaW5nIG9uZSBvZiB0aGF0IGxpYnJhcnkncyBoZWFkZXJzLiAgVGhpcyBtYWNybyB0dXJucyAKKy8vIHRoYXQgZmVhdHVyZSBvZmYuCisvLyAjZGVmaW5lIEJPT1NUX1dIQVRFVkVSX05PX0xJQgorIAorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvY29uZmlnL3dhcm5pbmdfZGlzYWJsZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy93YXJuaW5nX2Rpc2FibGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYThlODIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbmZpZy93YXJuaW5nX2Rpc2FibGUuaHBwCkBAIC0wLDAgKzEsNDcgQEAKKy8vICBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDgKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBUaGlzIGZpbGUgZXhpc3RzIHRvIHR1cm4gb2ZmIHNvbWUgb3Zlcmx5LXBlZGFudGljIHdhcm5pbmcgZW1pdHRlZAorLy8gIGJ5IGNlcnRhaW4gY29tcGlsZXJzLiAgWW91IHNob3VsZCBpbmNsdWRlIHRoaXMgaGVhZGVyIG9ubHkgaW46CisvLworLy8gICogQSB0ZXN0IGNhc2UsIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVycywgb3IsCisvLyAgKiBBIGxpYnJhcnkgc291cmNlIGZpbGUgYmVmb3JlIGFueSBvdGhlciBoZWFkZXJzLgorLy8KKy8vICBJVCBTSE9VTEQgTk9UIEJFIElOQ0xVREVEIEJZIEFOWSBCT09TVCBIRUFERVIuCisvLworLy8gIFlPVSBTSE9VTEQgTk9UIElOQ0xVREUgSVQgSUYgWU9VIENBTiBSRUFTT05BQkxZIEZJWCBUSEUgV0FSTklORy4KKy8vCisvLyAgVGhlIG9ubHkgd2FybmluZ3MgZGlzYWJsZWQgaGVyZSBhcmUgdGhvc2UgdGhhdCBhcmU6CisvLworLy8gICogUXVpdGUgdW5yZWFzb25hYmx5IHBlZGFudGljLgorLy8gICogR2VuZXJhbGx5IG9ubHkgZW1pdHRlZCBieSBhIHNpbmdsZSBjb21waWxlci4KKy8vICAqIENhbid0IGVhc2lseSBiZSBmaXhlZDogZm9yIGV4YW1wbGUgaWYgdGhlIHZlbmRvcnMgb3duIHN0ZCBsaWIgCisvLyAgICBjb2RlIGVtaXRzIHRoZXNlIHdhcm5pbmdzIQorLy8KKy8vICBOb3RlIHRoYXQgVEhJUyBIRUFERVIgTVVTVCBOT1QgSU5DTFVERSBBTlkgT1RIRVIgSEVBREVSUzoKKy8vICBub3QgZXZlbiBzdGQgbGlicmFyeSBvbmVzISAgRG9pbmcgc28gbWF5IHR1cm4gdGhlIHdhcm5pbmcKKy8vICBvZmYgdG9vIGxhdGUgdG8gYmUgb2YgYW55IHVzZS4gIEZvciBleGFtcGxlIHRoZSBWQysrIEM0OTk2CisvLyAgd2FybmluZyBjYW4gYmUgZW1pdHRlZCBmcm9tIDxpb3Nmd2Q+IGlmIHRoYXQgaGVhZGVyIGlzIGluY2x1ZGVkCisvLyAgYmVmb3JlIG9yIGJ5IHRoaXMgb25lIDotKAorLy8KKworI2lmbmRlZiBCT09TVF9DT05GSUdfV0FSTklOR19ESVNBQkxFX0hQUAorI2RlZmluZSBCT09TVF9DT05GSUdfV0FSTklOR19ESVNBQkxFX0hQUAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApIAorICAgLy8gRXJyb3IgJ2Z1bmN0aW9uJzogd2FzIGRlY2xhcmVkIGRlcHJlY2F0ZWQKKyAgIC8vIGh0dHA6Ly9tc2RuMi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvdHRjejBieXMoVlMuODApLmFzcHgKKyAgIC8vIFRoaXMgZXJyb3IgaXMgZW1pdHRlZCB3aGVuIHlvdSB1c2Ugc29tZSBwZXJmZWN0bHkgY29uZm9ybWluZworICAgLy8gc3RkIGxpYiBmdW5jdGlvbnMgaW4gYSBwZXJmZWN0bHkgY29ycmVjdCB3YXksIGFuZCBhbHNvIGJ5CisgICAvLyBzb21lIG9mIE1pY3Jvc29mdCdzIG93biBzdGQgbGliIGNvZGUgIQorIyAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0OTk2KQorI2VuZGlmCisjaWYgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKSB8fCBkZWZpbmVkKF9fSUNMKQorICAgLy8gQXMgYWJvdmU6IGdpdmVzIHdhcm5pbmcgd2hlbiBhICJkZXByZWNhdGVkIgorICAgLy8gc3RkIGxpYnJhcnkgZnVuY3Rpb24gaXMgZW5jb3VudGVyZWQuCisjICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjE3ODYpCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX0NPTkZJR19XQVJOSU5HX0RJU0FCTEVfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NvbnRhaW5lci9jb250YWluZXJfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY29udGFpbmVyL2NvbnRhaW5lcl9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZGE3YmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2NvbnRhaW5lci9jb250YWluZXJfZndkLmhwcApAQCAtMCwwICsxLDE3MyBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gKEMpIENvcHlyaWdodCBJb24gR2F6dGFuYWdhIDIwMDUtMjAxMi4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2NvbnRhaW5lciBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworI2lmbmRlZiBCT09TVF9DT05UQUlORVJfQ09OVEFJTkVSX0ZXRF9IUFAKKyNkZWZpbmUgQk9PU1RfQ09OVEFJTkVSX0NPTlRBSU5FUl9GV0RfSFBQCisKKyNpZiAoZGVmaW5lZCBfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEyMDApCisjICBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gICAgICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZCBwcmVkZWNsYXJhdGlvbnMKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLy8gQGNvbmQKKworbmFtZXNwYWNlIG5kbmJvb3N0eworbmFtZXNwYWNlIGludHJ1c2l2ZXsKKyAgIC8vQ3JlYXRlIG5hbWVzcGFjZSB0byBhdm9pZCBjb21waWxhdGlvbiBlcnJvcnMKK319CisKK25hbWVzcGFjZSBuZG5ib29zdHsgbmFtZXNwYWNlIGNvbnRhaW5lcnsgbmFtZXNwYWNlIGNvbnRhaW5lcl9kZXRhaWx7CisKK25hbWVzcGFjZSBiaSA9IG5kbmJvb3N0OjppbnRydXNpdmU7CisKK319fQorCisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxpb3Nmd2Q+CisjaW5jbHVkZSA8c3RyaW5nPgorCisvLy8gQGVuZGNvbmQKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGFpbmVycworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgY29udGFpbmVyIHsKKworLy92ZWN0b3IgY2xhc3MKK3RlbXBsYXRlIDxjbGFzcyBUCisgICAgICAgICAsY2xhc3MgQWxsb2NhdG9yID0gc3RkOjphbGxvY2F0b3I8VD4gPgorY2xhc3MgdmVjdG9yOworCisvL3ZlY3RvciBjbGFzcwordGVtcGxhdGUgPGNsYXNzIFQKKyAgICAgICAgICxjbGFzcyBBbGxvY2F0b3IgPSBzdGQ6OmFsbG9jYXRvcjxUPiA+CitjbGFzcyBzdGFibGVfdmVjdG9yOworCisvL3ZlY3RvciBjbGFzcwordGVtcGxhdGUgPGNsYXNzIFQKKyAgICAgICAgICxjbGFzcyBBbGxvY2F0b3IgPSBzdGQ6OmFsbG9jYXRvcjxUPiA+CitjbGFzcyBkZXF1ZTsKKworLy9saXN0IGNsYXNzCit0ZW1wbGF0ZSA8Y2xhc3MgVAorICAgICAgICAgLGNsYXNzIEFsbG9jYXRvciA9IHN0ZDo6YWxsb2NhdG9yPFQ+ID4KK2NsYXNzIGxpc3Q7CisKKy8vc2xpc3QgY2xhc3MKK3RlbXBsYXRlIDxjbGFzcyBUCisgICAgICAgICAsY2xhc3MgQWxsb2NhdG9yID0gc3RkOjphbGxvY2F0b3I8VD4gPgorY2xhc3Mgc2xpc3Q7CisKKy8vc2V0IGNsYXNzCit0ZW1wbGF0ZSA8Y2xhc3MgS2V5CisgICAgICAgICAsY2xhc3MgQ29tcGFyZSAgPSBzdGQ6Omxlc3M8S2V5PgorICAgICAgICAgLGNsYXNzIEFsbG9jYXRvciA9IHN0ZDo6YWxsb2NhdG9yPEtleT4gPgorY2xhc3Mgc2V0OworCisvL211bHRpc2V0IGNsYXNzCit0ZW1wbGF0ZSA8Y2xhc3MgS2V5CisgICAgICAgICAsY2xhc3MgQ29tcGFyZSAgPSBzdGQ6Omxlc3M8S2V5PgorICAgICAgICAgLGNsYXNzIEFsbG9jYXRvciA9IHN0ZDo6YWxsb2NhdG9yPEtleT4gPgorY2xhc3MgbXVsdGlzZXQ7CisKKy8vbWFwIGNsYXNzCit0ZW1wbGF0ZSA8Y2xhc3MgS2V5CisgICAgICAgICAsY2xhc3MgVAorICAgICAgICAgLGNsYXNzIENvbXBhcmUgID0gc3RkOjpsZXNzPEtleT4KKyAgICAgICAgICxjbGFzcyBBbGxvY2F0b3IgPSBzdGQ6OmFsbG9jYXRvcjxzdGQ6OnBhaXI8Y29uc3QgS2V5LCBUPiA+ID4KK2NsYXNzIG1hcDsKKworLy9tdWx0aW1hcCBjbGFzcwordGVtcGxhdGUgPGNsYXNzIEtleQorICAgICAgICAgLGNsYXNzIFQKKyAgICAgICAgICxjbGFzcyBDb21wYXJlICA9IHN0ZDo6bGVzczxLZXk+CisgICAgICAgICAsY2xhc3MgQWxsb2NhdG9yID0gc3RkOjphbGxvY2F0b3I8c3RkOjpwYWlyPGNvbnN0IEtleSwgVD4gPiA+CitjbGFzcyBtdWx0aW1hcDsKKworLy9mbGF0X3NldCBjbGFzcwordGVtcGxhdGUgPGNsYXNzIEtleQorICAgICAgICAgLGNsYXNzIENvbXBhcmUgID0gc3RkOjpsZXNzPEtleT4KKyAgICAgICAgICxjbGFzcyBBbGxvY2F0b3IgPSBzdGQ6OmFsbG9jYXRvcjxLZXk+ID4KK2NsYXNzIGZsYXRfc2V0OworCisvL2ZsYXRfbXVsdGlzZXQgY2xhc3MKK3RlbXBsYXRlIDxjbGFzcyBLZXkKKyAgICAgICAgICxjbGFzcyBDb21wYXJlICA9IHN0ZDo6bGVzczxLZXk+CisgICAgICAgICAsY2xhc3MgQWxsb2NhdG9yID0gc3RkOjphbGxvY2F0b3I8S2V5PiA+CitjbGFzcyBmbGF0X211bHRpc2V0OworCisvL2ZsYXRfbWFwIGNsYXNzCit0ZW1wbGF0ZSA8Y2xhc3MgS2V5CisgICAgICAgICAsY2xhc3MgVAorICAgICAgICAgLGNsYXNzIENvbXBhcmUgID0gc3RkOjpsZXNzPEtleT4KKyAgICAgICAgICxjbGFzcyBBbGxvY2F0b3IgPSBzdGQ6OmFsbG9jYXRvcjxzdGQ6OnBhaXI8S2V5LCBUPiA+ID4KK2NsYXNzIGZsYXRfbWFwOworCisvL2ZsYXRfbXVsdGltYXAgY2xhc3MKK3RlbXBsYXRlIDxjbGFzcyBLZXkKKyAgICAgICAgICxjbGFzcyBUCisgICAgICAgICAsY2xhc3MgQ29tcGFyZSAgPSBzdGQ6Omxlc3M8S2V5PgorICAgICAgICAgLGNsYXNzIEFsbG9jYXRvciA9IHN0ZDo6YWxsb2NhdG9yPHN0ZDo6cGFpcjxLZXksIFQ+ID4gPgorY2xhc3MgZmxhdF9tdWx0aW1hcDsKKworLy9iYXNpY19zdHJpbmcgY2xhc3MKK3RlbXBsYXRlIDxjbGFzcyBDaGFyVAorICAgICAgICAgLGNsYXNzIFRyYWl0cyA9IHN0ZDo6Y2hhcl90cmFpdHM8Q2hhclQ+CisgICAgICAgICAsY2xhc3MgQWxsb2NhdG9yICA9IHN0ZDo6YWxsb2NhdG9yPENoYXJUPiA+CitjbGFzcyBiYXNpY19zdHJpbmc7CisKKy8vISBUeXBlIHVzZWQgdG8gdGFnIHRoYXQgdGhlIGlucHV0IHJhbmdlIGlzCisvLyEgZ3VhcmFudGVlZCB0byBiZSBvcmRlcmVkCitzdHJ1Y3Qgb3JkZXJlZF9yYW5nZV90Cit7fTsKKworLy8hIFR5cGUgdXNlZCB0byB0YWcgdGhhdCB0aGUgaW5wdXQgcmFuZ2UgaXMKKy8vISBndWFyYW50ZWVkIHRvIGJlIG9yZGVyZWQgYW5kIHVuaXF1ZQorc3RydWN0IG9yZGVyZWRfdW5pcXVlX3JhbmdlX3QKKyAgIDogcHVibGljIG9yZGVyZWRfcmFuZ2VfdAore307CisKKy8vISBWYWx1ZSB1c2VkIHRvIHRhZyB0aGF0IHRoZSBpbnB1dCByYW5nZSBpcworLy8hIGd1YXJhbnRlZWQgdG8gYmUgb3JkZXJlZAorc3RhdGljIGNvbnN0IG9yZGVyZWRfcmFuZ2VfdCBvcmRlcmVkX3JhbmdlID0gb3JkZXJlZF9yYW5nZV90KCk7CisKKy8vISBWYWx1ZSB1c2VkIHRvIHRhZyB0aGF0IHRoZSBpbnB1dCByYW5nZSBpcworLy8hIGd1YXJhbnRlZWQgdG8gYmUgb3JkZXJlZCBhbmQgdW5pcXVlCitzdGF0aWMgY29uc3Qgb3JkZXJlZF91bmlxdWVfcmFuZ2VfdCBvcmRlcmVkX3VuaXF1ZV9yYW5nZSA9IG9yZGVyZWRfdW5pcXVlX3JhbmdlX3QoKTsKKworLy8vIEBjb25kCisKK25hbWVzcGFjZSBkZXRhaWxfcmVhbGx5X2RlZXBfbmFtZXNwYWNlIHsKKworLy9PdGhlcndpc2UsIGdjYyBpc3N1ZXMgYSB3YXJuaW5nIG9mIHByZXZpb3VzbHkgZGVmaW5lZAorLy9hbm9ueW1vdXNfaW5zdGFuY2UgYW5kIHVuaXF1ZV9pbnN0YW5jZQorc3RydWN0IGR1bW15Cit7CisgICBkdW1teSgpCisgICB7CisgICAgICAodm9pZClvcmRlcmVkX3JhbmdlOworICAgICAgKHZvaWQpb3JkZXJlZF91bmlxdWVfcmFuZ2U7CisgICB9Cit9OworCit9ICAvL2RldGFpbF9yZWFsbHlfZGVlcF9uYW1lc3BhY2UgeworCisvLy8gQGVuZGNvbmQKKworfX0gIC8vbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGNvbnRhaW5lciB7CisKKyNlbmRpZiAvLyNpZm5kZWYgQk9PU1RfQ09OVEFJTkVSX0NPTlRBSU5FUl9GV0RfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NzdGRpbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jc3RkaW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2JiOGEwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jc3RkaW50LmhwcApAQCAtMCwwICsxLDUwOCBAQAorLy8gIGJvb3N0IGNzdGRpbnQuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAxOTk5LiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1ZXIgMjAwMSAgCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAKKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2ludGVnZXIgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICBSZXZpc2lvbiBIaXN0b3J5CisvLyAgIDMxIE9jdCAwMSAgdXNlIEJPT1NUX0hBU19MT05HX0xPTkcgdG8gY2hlY2sgZm9yICJsb25nIGxvbmciIChKZW5zIE0uKQorLy8gICAxNiBBcHIgMDEgIGNoZWNrIExPTkdMT05HX01BWCB3aGVuIGxvb2tpbmcgZm9yICJsb25nIGxvbmciIChKZW5zIE1hdXJlcikKKy8vICAgMjMgSmFuIDAxICBwcmVmZXIgImxvbmciIG92ZXIgImludCIgZm9yIGludDMyX3QgYW5kIGludG1heF90IChKZW5zIE1hdXJlcikKKy8vICAgMTIgTm92IDAwICBNZXJnZWQgPG5kbmJvb3N0L3N0ZGludC5oPiAoSmVucyBNYXVyZXIpCisvLyAgIDIzIFNlcCAwMCAgQWRkZWQgSU5UWFhfQyBtYWNybyBzdXBwb3J0IChKb2huIE1hZGRvY2spLgorLy8gICAyMiBTZXAgMDAgIEJldHRlciA2NC1iaXQgc3VwcG9ydCAoSm9obiBNYWRkb2NrKQorLy8gICAyOSBKdW4gMDAgIFJlaW1wbGVtZW50IHRvIGF2b2lkIGluY2x1ZGluZyBzdGRpbnQuaCB3aXRoaW4gbmFtZXNwYWNlIG5kbmJvb3N0CisvLyAgICA4IEF1ZyA5OSAgSW5pdGlhbCB2ZXJzaW9uIChCZW1hbiBEYXdlcykKKworCisjaWZuZGVmIEJPT1NUX0NTVERJTlRfSFBQCisjZGVmaW5lIEJPT1NUX0NTVERJTlRfSFBQCisKKy8vCisvLyBTaW5jZSB3ZSBhbHdheXMgZGVmaW5lIHRoZSBJTlQjX0MgbWFjcm9zIGFzIHBlciBDKysweCwgCisvLyBkZWZpbmUgX19TVERDX0NPTlNUQU5UX01BQ1JPUyBzbyB0aGF0IDxzdGRpbnQuaD4gZG9lcyB0aGUgcmlnaHQKKy8vIHRoaW5nIGlmIHBvc3NpYmxlLCBhbmQgc28gdGhhdCB0aGUgdXNlciBrbm93cyB0aGF0IHRoZSBtYWNyb3MgCisvLyBhcmUgYWN0dWFsbHkgZGVmaW5lZCBhcyBwZXIgQzk5LgorLy8KKyNpZm5kZWYgX19TVERDX0NPTlNUQU5UX01BQ1JPUworIyAgZGVmaW5lIF9fU1REQ19DT05TVEFOVF9NQUNST1MKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8KKy8vIE5vdGUgdGhhdCBHTElCQyBpcyBhIGJpdCBpbmNvbnNpc3RlbnQgYWJvdXQgd2hldGhlciBpbnQ2NF90IGlzIGRlZmluZWQgb3Igbm90CisvLyBkZXBlbmRpbmcgdXBvbiB3aGF0IGhlYWRlcnMgaGFwcGVuIHRvIGhhdmUgYmVlbiBpbmNsdWRlZCBmaXJzdC4uLgorLy8gc28gd2UgZGlzYWJsZSB1c2Ugb2Ygc3RkaW50Lmggd2hlbiBHTElCQyBkb2VzIG5vdCBkZWZpbmUgX19HTElCQ19IQVZFX0xPTkdfTE9ORy4KKy8vIFNlZSBodHRwczovL3N2bi5ib29zdC5vcmcvdHJhYy9ib29zdC90aWNrZXQvMzU0OCBhbmQgaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTA5OTAKKy8vCisjaWYgZGVmaW5lZChCT09TVF9IQVNfU1RESU5UX0gpICYmICghZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19HTElCQ19IQVZFX0xPTkdfTE9ORykpCisKKy8vIFRoZSBmb2xsb3dpbmcgI2luY2x1ZGUgaXMgYW4gaW1wbGVtZW50YXRpb24gYXJ0aWZhY3Q7IG5vdCBwYXJ0IG9mIGludGVyZmFjZS4KKyMgaWZkZWYgX19ocHV4CisvLyBIUC1VWCBoYXMgYSB2YWd1ZWx5IG5pY2UgPHN0ZGludC5oPiBpbiBhIG5vbi1zdGFuZGFyZCBsb2NhdGlvbgorIyAgIGluY2x1ZGUgPGludHR5cGVzLmg+CisjICAgaWZkZWYgX19TVERDXzMyX01PREVfXworICAgICAgLy8gdGhpcyBpcyB0cmlnZ2VyZWQgd2l0aCBHQ0MsIGJlY2F1c2UgaXQgZGVmaW5lcyBfX2NwbHVzcGx1cyA8IDE5OTcwN0wKKyMgICAgIGRlZmluZSBCT09TVF9OT19JTlQ2NF9UCisjICAgZW5kaWYgCisjIGVsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0lCTUNQUF9fKSB8fCBkZWZpbmVkKF9BSVgpCisjICAgaW5jbHVkZSA8aW50dHlwZXMuaD4KKyMgZWxzZQorIyAgIGluY2x1ZGUgPHN0ZGludC5oPgorCisvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDeWd3aW4gdHdvIF9DIG1hY3JvcworIyAgIGlmIGRlZmluZWQoX19TVERDX0NPTlNUQU5UX01BQ1JPUykgJiYgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgICAgdW5kZWYgSU5UTUFYX0MKKyMgICAgIHVuZGVmIFVJTlRNQVhfQworIyAgICAgZGVmaW5lIElOVE1BWF9DKGMpIGMjI0xMCisjICAgICBkZWZpbmUgVUlOVE1BWF9DKGMpIGMjI1VMTAorIyAgIGVuZGlmCisKKyMgZW5kaWYKKworI2lmZGVmIF9fUU5YX18KKworLy8gUU5YIChEaW5rdW13YXJlIHN0ZGxpYikgZGVmaW5lcyB0aGVzZSBhcyBub24tc3RhbmRhcmQgbmFtZXMuCisvLyBSZWZsZWN0IHRvIHRoZSBzdGFuZGFyZCBuYW1lcy4KKwordHlwZWRlZiA6OmludGxlYXN0OF90IGludF9sZWFzdDhfdDsKK3R5cGVkZWYgOjppbnRmYXN0OF90IGludF9mYXN0OF90OwordHlwZWRlZiA6OnVpbnRsZWFzdDhfdCB1aW50X2xlYXN0OF90OwordHlwZWRlZiA6OnVpbnRmYXN0OF90IHVpbnRfZmFzdDhfdDsKKwordHlwZWRlZiA6OmludGxlYXN0MTZfdCBpbnRfbGVhc3QxNl90OwordHlwZWRlZiA6OmludGZhc3QxNl90IGludF9mYXN0MTZfdDsKK3R5cGVkZWYgOjp1aW50bGVhc3QxNl90IHVpbnRfbGVhc3QxNl90OwordHlwZWRlZiA6OnVpbnRmYXN0MTZfdCB1aW50X2Zhc3QxNl90OworCit0eXBlZGVmIDo6aW50bGVhc3QzMl90IGludF9sZWFzdDMyX3Q7Cit0eXBlZGVmIDo6aW50ZmFzdDMyX3QgaW50X2Zhc3QzMl90OwordHlwZWRlZiA6OnVpbnRsZWFzdDMyX3QgdWludF9sZWFzdDMyX3Q7Cit0eXBlZGVmIDo6dWludGZhc3QzMl90IHVpbnRfZmFzdDMyX3Q7CisKKyMgaWZuZGVmIEJPT1NUX05PX0lOVDY0X1QKKwordHlwZWRlZiA6OmludGxlYXN0NjRfdCBpbnRfbGVhc3Q2NF90OwordHlwZWRlZiA6OmludGZhc3Q2NF90IGludF9mYXN0NjRfdDsKK3R5cGVkZWYgOjp1aW50bGVhc3Q2NF90IHVpbnRfbGVhc3Q2NF90OwordHlwZWRlZiA6OnVpbnRmYXN0NjRfdCB1aW50X2Zhc3Q2NF90OworCisjIGVuZGlmCisKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworICB1c2luZyA6OmludDhfdDsgICAgICAgICAgICAgCisgIHVzaW5nIDo6aW50X2xlYXN0OF90OyAgICAgICAKKyAgdXNpbmcgOjppbnRfZmFzdDhfdDsgICAgICAgIAorICB1c2luZyA6OnVpbnQ4X3Q7ICAgICAgICAgICAgCisgIHVzaW5nIDo6dWludF9sZWFzdDhfdDsgICAgICAKKyAgdXNpbmcgOjp1aW50X2Zhc3Q4X3Q7ICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgCisgIHVzaW5nIDo6aW50MTZfdDsgICAgICAgICAgICAKKyAgdXNpbmcgOjppbnRfbGVhc3QxNl90OyAgICAgIAorICB1c2luZyA6OmludF9mYXN0MTZfdDsgICAgICAgCisgIHVzaW5nIDo6dWludDE2X3Q7ICAgICAgICAgICAKKyAgdXNpbmcgOjp1aW50X2xlYXN0MTZfdDsgICAgIAorICB1c2luZyA6OnVpbnRfZmFzdDE2X3Q7ICAgICAgCisgICAgICAgICAgICAgICAgICAgICAKKyAgdXNpbmcgOjppbnQzMl90OyAgICAgICAgICAgIAorICB1c2luZyA6OmludF9sZWFzdDMyX3Q7ICAgICAgCisgIHVzaW5nIDo6aW50X2Zhc3QzMl90OyAgICAgICAKKyAgdXNpbmcgOjp1aW50MzJfdDsgICAgICAgICAgIAorICB1c2luZyA6OnVpbnRfbGVhc3QzMl90OyAgICAgCisgIHVzaW5nIDo6dWludF9mYXN0MzJfdDsgICAgICAKKyAgICAgICAgICAgICAgICAgICAgIAorIyBpZm5kZWYgQk9PU1RfTk9fSU5UNjRfVAorCisgIHVzaW5nIDo6aW50NjRfdDsgICAgICAgICAgICAKKyAgdXNpbmcgOjppbnRfbGVhc3Q2NF90OyAgICAgIAorICB1c2luZyA6OmludF9mYXN0NjRfdDsgICAgICAgCisgIHVzaW5nIDo6dWludDY0X3Q7ICAgICAgICAgICAKKyAgdXNpbmcgOjp1aW50X2xlYXN0NjRfdDsgICAgIAorICB1c2luZyA6OnVpbnRfZmFzdDY0X3Q7ICAgICAgCisgICAgICAgICAgICAgICAgICAgICAKKyMgZW5kaWYKKworICB1c2luZyA6OmludG1heF90OyAgICAgIAorICB1c2luZyA6OnVpbnRtYXhfdDsgICAgIAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAoX19GcmVlQlNEX18gPD0gNCkgfHwgZGVmaW5lZChfX29zZl9fKSB8fCBkZWZpbmVkKF9fVk1TKQorLy8gRnJlZUJTRCBhbmQgVHJ1NjQgaGF2ZSBhbiA8aW50dHlwZXMuaD4gdGhhdCBjb250YWlucyBtdWNoIG9mIHdoYXQgd2UgbmVlZC4KKyMgaW5jbHVkZSA8aW50dHlwZXMuaD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworICB1c2luZyA6OmludDhfdDsgICAgICAgICAgICAgCisgIHR5cGVkZWYgaW50OF90IGludF9sZWFzdDhfdDsgICAgICAgCisgIHR5cGVkZWYgaW50OF90IGludF9mYXN0OF90OyAgICAgICAgCisgIHVzaW5nIDo6dWludDhfdDsgICAgICAgICAgICAKKyAgdHlwZWRlZiB1aW50OF90IHVpbnRfbGVhc3Q4X3Q7ICAgICAgCisgIHR5cGVkZWYgdWludDhfdCB1aW50X2Zhc3Q4X3Q7ICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgCisgIHVzaW5nIDo6aW50MTZfdDsgICAgICAgICAgICAKKyAgdHlwZWRlZiBpbnQxNl90IGludF9sZWFzdDE2X3Q7ICAgICAgCisgIHR5cGVkZWYgaW50MTZfdCBpbnRfZmFzdDE2X3Q7ICAgICAgIAorICB1c2luZyA6OnVpbnQxNl90OyAgICAgICAgICAgCisgIHR5cGVkZWYgdWludDE2X3QgdWludF9sZWFzdDE2X3Q7ICAgICAKKyAgdHlwZWRlZiB1aW50MTZfdCB1aW50X2Zhc3QxNl90OyAgICAgIAorICAgICAgICAgICAgICAgICAgICAgCisgIHVzaW5nIDo6aW50MzJfdDsgICAgICAgICAgICAKKyAgdHlwZWRlZiBpbnQzMl90IGludF9sZWFzdDMyX3Q7ICAgICAgCisgIHR5cGVkZWYgaW50MzJfdCBpbnRfZmFzdDMyX3Q7ICAgICAgIAorICB1c2luZyA6OnVpbnQzMl90OyAgICAgICAgICAgCisgIHR5cGVkZWYgdWludDMyX3QgdWludF9sZWFzdDMyX3Q7ICAgICAKKyAgdHlwZWRlZiB1aW50MzJfdCB1aW50X2Zhc3QzMl90OyAgICAgIAorICAgICAgICAgCisjIGlmbmRlZiBCT09TVF9OT19JTlQ2NF9UICAgICAgICAgIAorCisgIHVzaW5nIDo6aW50NjRfdDsgICAgICAgICAgICAKKyAgdHlwZWRlZiBpbnQ2NF90IGludF9sZWFzdDY0X3Q7ICAgICAgCisgIHR5cGVkZWYgaW50NjRfdCBpbnRfZmFzdDY0X3Q7ICAgICAgIAorICB1c2luZyA6OnVpbnQ2NF90OyAgICAgICAgICAgCisgIHR5cGVkZWYgdWludDY0X3QgdWludF9sZWFzdDY0X3Q7ICAgICAKKyAgdHlwZWRlZiB1aW50NjRfdCB1aW50X2Zhc3Q2NF90OyAgICAgIAorCisgIHR5cGVkZWYgaW50NjRfdCBpbnRtYXhfdDsKKyAgdHlwZWRlZiB1aW50NjRfdCB1aW50bWF4X3Q7CisKKyMgZWxzZQorCisgIHR5cGVkZWYgaW50MzJfdCBpbnRtYXhfdDsKKyAgdHlwZWRlZiB1aW50MzJfdCB1aW50bWF4X3Q7CisKKyMgZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2Vsc2UgIC8vIEJPT1NUX0hBU19TVERJTlRfSAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+IC8vIGltcGxlbWVudGF0aW9uIGFydGlmYWN0OyBub3QgcGFydCBvZiBpbnRlcmZhY2UKKyMgaW5jbHVkZSA8bGltaXRzLmg+ICAgICAgICAgLy8gbmVlZGVkIGZvciBsaW1pdHMgbWFjcm9zCisKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKy8vICBUaGVzZSBhcmUgZmFpcmx5IHNhZmUgZ3Vlc3NlcyBmb3Igc29tZSAxNi1iaXQsIGFuZCBtb3N0IDMyLWJpdCBhbmQgNjQtYml0CisvLyAgcGxhdGZvcm1zLiAgRm9yIG90aGVyIHN5c3RlbXMsIHRoZXkgd2lsbCBoYXZlIHRvIGJlIGhhbmQgdGFpbG9yZWQuCisvLworLy8gIEJlY2F1c2UgdGhlIGZhc3QgdHlwZXMgYXJlIGFzc3VtZWQgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIHVuZGVjb3JhdGVkIHR5cGVzLAorLy8gIGl0IG1heSBiZSBwb3NzaWJsZSB0byBoYW5kIHRhaWxvciBhIG1vcmUgZWZmaWNpZW50IGltcGxlbWVudGF0aW9uLiAgU3VjaAorLy8gIGFuIG9wdGltaXphdGlvbiBtYXkgYmUgaWxsdXNpb25hcnk7IG9uIHRoZSBJbnRlbCB4ODYtZmFtaWx5IDM4NiBvbiwgZm9yCisvLyAgZXhhbXBsZSwgYnl0ZSBhcml0aG1ldGljIGFuZCBsb2FkL3N0b3JlcyBhcmUgYXMgZmFzdCBhcyAiaW50IiBzaXplZCBvbmVzLgorCisvLyAgOC1iaXQgdHlwZXMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyMgaWYgVUNIQVJfTUFYID09IDB4ZmYKKyAgICAgdHlwZWRlZiBzaWduZWQgY2hhciAgICAgaW50OF90OworICAgICB0eXBlZGVmIHNpZ25lZCBjaGFyICAgICBpbnRfbGVhc3Q4X3Q7CisgICAgIHR5cGVkZWYgc2lnbmVkIGNoYXIgICAgIGludF9mYXN0OF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgICB1aW50OF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgICB1aW50X2xlYXN0OF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgICB1aW50X2Zhc3Q4X3Q7CisjIGVsc2UKKyMgICAgZXJyb3IgZGVmYXVsdHMgbm90IGNvcnJlY3Q7IHlvdSBtdXN0IGhhbmQgbW9kaWZ5IGJvb3N0L2NzdGRpbnQuaHBwCisjIGVuZGlmCisKKy8vICAxNi1iaXQgdHlwZXMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworIyBpZiBVU0hSVF9NQVggPT0gMHhmZmZmCisjICBpZiBkZWZpbmVkKF9fY3JheXgxKQorICAgICAvLyBUaGUgQ3JheSBYMSBoYXMgYSAxNi1iaXQgc2hvcnQsIGhvd2V2ZXIgaXQgaXMgbm90IHJlY29tbWVuZAorICAgICAvLyBmb3IgdXNlIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIGNvZGUuCisgICAgIHR5cGVkZWYgc2hvcnQgICAgICAgICAgIGludDE2X3Q7CisgICAgIHR5cGVkZWYgc2hvcnQgICAgICAgICAgIGludF9sZWFzdDE2X3Q7CisgICAgIHR5cGVkZWYgaW50ICAgICAgICAgICAgIGludF9mYXN0MTZfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCAgdWludDE2X3Q7CisgICAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgIHVpbnRfbGVhc3QxNl90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCAgICB1aW50X2Zhc3QxNl90OworIyAgZWxzZQorICAgICB0eXBlZGVmIHNob3J0ICAgICAgICAgICBpbnQxNl90OworICAgICB0eXBlZGVmIHNob3J0ICAgICAgICAgICBpbnRfbGVhc3QxNl90OworICAgICB0eXBlZGVmIHNob3J0ICAgICAgICAgICBpbnRfZmFzdDE2X3Q7CisgICAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgIHVpbnQxNl90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIHNob3J0ICB1aW50X2xlYXN0MTZfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCAgdWludF9mYXN0MTZfdDsKKyMgIGVuZGlmCisjIGVsaWYgKFVTSFJUX01BWCA9PSAweGZmZmZmZmZmKSAmJiBkZWZpbmVkKF9fTVRBX18pIAorICAgICAgLy8gT24gTVRBIC8gWE1UIHNob3J0IGlzIDMyIGJpdHMgdW5sZXNzIHRoZSAtc2hvcnQxNiBjb21waWxlciBmbGFnIGlzIHNwZWNpZmllZCAKKyAgICAgIC8vIE1UQSAvIFhNVCBkb2VzIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBub24tc3RhbmRhcmQgaW50ZWdlciB0eXBlcyAKKyAgICAgIHR5cGVkZWYgX19zaG9ydDE2ICAgICAgICAgICBpbnQxNl90OyAKKyAgICAgIHR5cGVkZWYgX19zaG9ydDE2ICAgICAgICAgICBpbnRfbGVhc3QxNl90OyAKKyAgICAgIHR5cGVkZWYgX19zaG9ydDE2ICAgICAgICAgICBpbnRfZmFzdDE2X3Q7IAorICAgICAgdHlwZWRlZiB1bnNpZ25lZCBfX3Nob3J0MTYgIHVpbnQxNl90OyAKKyAgICAgIHR5cGVkZWYgdW5zaWduZWQgX19zaG9ydDE2ICB1aW50X2xlYXN0MTZfdDsgCisgICAgICB0eXBlZGVmIHVuc2lnbmVkIF9fc2hvcnQxNiAgdWludF9mYXN0MTZfdDsgCisjIGVsaWYgKFVTSFJUX01BWCA9PSAweGZmZmZmZmZmKSAmJiBkZWZpbmVkKENSQVkpCisgICAgIC8vIG5vIDE2LWJpdCB0eXBlcyBvbiBDcmF5OgorICAgICB0eXBlZGVmIHNob3J0ICAgICAgICAgICBpbnRfbGVhc3QxNl90OworICAgICB0eXBlZGVmIHNob3J0ICAgICAgICAgICBpbnRfZmFzdDE2X3Q7CisgICAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgIHVpbnRfbGVhc3QxNl90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIHNob3J0ICB1aW50X2Zhc3QxNl90OworIyBlbHNlCisjICAgIGVycm9yIGRlZmF1bHRzIG5vdCBjb3JyZWN0OyB5b3UgbXVzdCBoYW5kIG1vZGlmeSBib29zdC9jc3RkaW50LmhwcAorIyBlbmRpZgorCisvLyAgMzItYml0IHR5cGVzICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyMgaWYgVUlOVF9NQVggPT0gMHhmZmZmZmZmZgorICAgICB0eXBlZGVmIGludCAgICAgICAgICAgICBpbnQzMl90OworICAgICB0eXBlZGVmIGludCAgICAgICAgICAgICBpbnRfbGVhc3QzMl90OworICAgICB0eXBlZGVmIGludCAgICAgICAgICAgICBpbnRfZmFzdDMyX3Q7CisgICAgIHR5cGVkZWYgdW5zaWduZWQgaW50ICAgIHVpbnQzMl90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCAgICB1aW50X2xlYXN0MzJfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgICAgdWludF9mYXN0MzJfdDsKKyMgZWxpZiAoVVNIUlRfTUFYID09IDB4ZmZmZmZmZmYpCisgICAgIHR5cGVkZWYgc2hvcnQgICAgICAgICAgICAgaW50MzJfdDsKKyAgICAgdHlwZWRlZiBzaG9ydCAgICAgICAgICAgICBpbnRfbGVhc3QzMl90OworICAgICB0eXBlZGVmIHNob3J0ICAgICAgICAgICAgIGludF9mYXN0MzJfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCAgICB1aW50MzJfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCAgICB1aW50X2xlYXN0MzJfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCAgICB1aW50X2Zhc3QzMl90OworIyBlbGlmIFVMT05HX01BWCA9PSAweGZmZmZmZmZmCisgICAgIHR5cGVkZWYgbG9uZyAgICAgICAgICAgIGludDMyX3Q7CisgICAgIHR5cGVkZWYgbG9uZyAgICAgICAgICAgIGludF9sZWFzdDMyX3Q7CisgICAgIHR5cGVkZWYgbG9uZyAgICAgICAgICAgIGludF9mYXN0MzJfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nICAgdWludDMyX3Q7CisgICAgIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgIHVpbnRfbGVhc3QzMl90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgICB1aW50X2Zhc3QzMl90OworIyBlbGlmIChVSU5UX01BWCA9PSAweGZmZmZmZmZmZmZmZmZmZmYpICYmIGRlZmluZWQoX19NVEFfXykgCisgICAgICAvLyBJbnRlZ2VycyBhcmUgNjQgYml0cyBvbiB0aGUgTVRBIC8gWE1UIAorICAgICAgdHlwZWRlZiBfX2ludDMyICAgICAgICAgICBpbnQzMl90OyAKKyAgICAgIHR5cGVkZWYgX19pbnQzMiAgICAgICAgICAgaW50X2xlYXN0MzJfdDsgCisgICAgICB0eXBlZGVmIF9faW50MzIgICAgICAgICAgIGludF9mYXN0MzJfdDsgCisgICAgICB0eXBlZGVmIHVuc2lnbmVkIF9faW50MzIgIHVpbnQzMl90OyAKKyAgICAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQzMiAgdWludF9sZWFzdDMyX3Q7IAorICAgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDMyICB1aW50X2Zhc3QzMl90OyAKKyMgZWxzZQorIyAgICBlcnJvciBkZWZhdWx0cyBub3QgY29ycmVjdDsgeW91IG11c3QgaGFuZCBtb2RpZnkgYm9vc3QvY3N0ZGludC5ocHAKKyMgZW5kaWYKKworLy8gIDY0LWJpdCB0eXBlcyArIGludG1heF90IGFuZCB1aW50bWF4X3QgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjIGlmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykgJiYgXAorICAgIWRlZmluZWQoQk9PU1RfTVNWQykgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiBcCisgICAoIWRlZmluZWQoX19HTElCQ1BQX18pIHx8IGRlZmluZWQoX0dMSUJDUFBfVVNFX0xPTkdfTE9ORykpICYmIFwKKyAgIChkZWZpbmVkKFVMTE9OR19NQVgpIHx8IGRlZmluZWQoVUxPTkdfTE9OR19NQVgpIHx8IGRlZmluZWQoVUxPTkdMT05HX01BWCkpCisjICAgIGlmIGRlZmluZWQoX19ocHV4KQorICAgICAvLyBIUC1VWCdzIHZhbHVlIG9mIFVMT05HX0xPTkdfTUFYIGlzIHVudXNhYmxlIGluIHByZXByb2Nlc3NvciBleHByZXNzaW9ucworIyAgICBlbGlmIChkZWZpbmVkKFVMTE9OR19NQVgpICYmIFVMTE9OR19NQVggPT0gMTg0NDY3NDQwNzM3MDk1NTE2MTVVTEwpIHx8IChkZWZpbmVkKFVMT05HX0xPTkdfTUFYKSAmJiBVTE9OR19MT05HX01BWCA9PSAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMTCkgfHwgKGRlZmluZWQoVUxPTkdMT05HX01BWCkgJiYgVUxPTkdMT05HX01BWCA9PSAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMioqNjQgLSAxCisjICAgIGVsc2UKKyMgICAgICAgZXJyb3IgZGVmYXVsdHMgbm90IGNvcnJlY3Q7IHlvdSBtdXN0IGhhbmQgbW9kaWZ5IGJvb3N0L2NzdGRpbnQuaHBwCisjICAgIGVuZGlmCisKKyAgICAgdHlwZWRlZiAgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgICAgICAgICAgICBpbnRtYXhfdDsKKyAgICAgdHlwZWRlZiAgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlICAgdWludG1heF90OworICAgICB0eXBlZGVmICA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSAgICAgICAgICAgIGludDY0X3Q7CisgICAgIHR5cGVkZWYgIDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlICAgICAgICAgICAgaW50X2xlYXN0NjRfdDsKKyAgICAgdHlwZWRlZiAgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgICAgICAgICAgICBpbnRfZmFzdDY0X3Q7CisgICAgIHR5cGVkZWYgIDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSAgIHVpbnQ2NF90OworICAgICB0eXBlZGVmICA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUgICB1aW50X2xlYXN0NjRfdDsKKyAgICAgdHlwZWRlZiAgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlICAgdWludF9mYXN0NjRfdDsKKworIyBlbGlmIFVMT05HX01BWCAhPSAweGZmZmZmZmZmCisKKyMgICAgaWYgVUxPTkdfTUFYID09IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IC8vIDIqKjY0IC0gMQorICAgICB0eXBlZGVmIGxvbmcgICAgICAgICAgICAgICAgIGludG1heF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgICAgICAgIHVpbnRtYXhfdDsKKyAgICAgdHlwZWRlZiBsb25nICAgICAgICAgICAgICAgICBpbnQ2NF90OworICAgICB0eXBlZGVmIGxvbmcgICAgICAgICAgICAgICAgIGludF9sZWFzdDY0X3Q7CisgICAgIHR5cGVkZWYgbG9uZyAgICAgICAgICAgICAgICAgaW50X2Zhc3Q2NF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgICAgICAgIHVpbnQ2NF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgICAgICAgIHVpbnRfbGVhc3Q2NF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgICAgICAgIHVpbnRfZmFzdDY0X3Q7CisjICAgIGVsc2UKKyMgICAgICAgZXJyb3IgZGVmYXVsdHMgbm90IGNvcnJlY3Q7IHlvdSBtdXN0IGhhbmQgbW9kaWZ5IGJvb3N0L2NzdGRpbnQuaHBwCisjICAgIGVuZGlmCisjIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nICAgICAgICAgICAgaW50bWF4X3Q7CisgICAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgICB1aW50bWF4X3Q7CisgICAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGxvbmcgICAgICAgICAgICBpbnQ2NF90OworICAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nICAgICAgICAgICAgaW50X2xlYXN0NjRfdDsKKyAgICAgX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyAgICAgICAgICAgIGludF9mYXN0NjRfdDsKKyAgICAgX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyAgIHVpbnQ2NF90OworICAgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nICAgdWludF9sZWFzdDY0X3Q7CisgICAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgICB1aW50X2Zhc3Q2NF90OworIyBlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorICAgICAvLworICAgICAvLyB3ZSBoYXZlIEJvcmxhbmQvSW50ZWwvTWljcm9zb2Z0IF9faW50NjQ6CisgICAgIC8vCisgICAgIHR5cGVkZWYgX19pbnQ2NCAgICAgICAgICAgICBpbnRtYXhfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0ICAgIHVpbnRtYXhfdDsKKyAgICAgdHlwZWRlZiBfX2ludDY0ICAgICAgICAgICAgIGludDY0X3Q7CisgICAgIHR5cGVkZWYgX19pbnQ2NCAgICAgICAgICAgICBpbnRfbGVhc3Q2NF90OworICAgICB0eXBlZGVmIF9faW50NjQgICAgICAgICAgICAgaW50X2Zhc3Q2NF90OworICAgICB0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgICAgdWludDY0X3Q7CisgICAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCAgICB1aW50X2xlYXN0NjRfdDsKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0ICAgIHVpbnRfZmFzdDY0X3Q7CisjIGVsc2UgLy8gYXNzdW1lIG5vIDY0LWJpdCBpbnRlZ2VycworIyAgZGVmaW5lIEJPT1NUX05PX0lOVDY0X1QKKyAgICAgdHlwZWRlZiBpbnQzMl90ICAgICAgICAgICAgICBpbnRtYXhfdDsKKyAgICAgdHlwZWRlZiB1aW50MzJfdCAgICAgICAgICAgICB1aW50bWF4X3Q7CisjIGVuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKworI2VuZGlmIC8vIEJPT1NUX0hBU19TVERJTlRfSAorCisjZW5kaWYgLy8gQk9PU1RfQ1NURElOVF9IUFAKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitNYWNybyBkZWZpbml0aW9uIHNlY3Rpb246CisKK0FkZGVkIDIzcmQgU2VwdGVtYmVyIDIwMDAgKEpvaG4gTWFkZG9jaykuCitNb2RpZmllZCAxMXRoIFNlcHRlbWJlciAyMDAxIHRvIGJlIGV4Y2x1ZGVkIHdoZW4KK0JPT1NUX0hBU19TVERJTlRfSCBpcyBkZWZpbmVkIChKb2huIE1hZGRvY2spLgorTW9kaWZpZWQgMTF0aCBEZWMgMjAwOSB0byBhbHdheXMgZGVmaW5lIHRoZQorSU5UI19DIG1hY3JvcyBpZiB0aGV5J3JlIG5vdCBhbHJlYWR5IGRlZmluZWQgKEpvaG4gTWFkZG9jaykuCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmICFkZWZpbmVkKEJPT1NUX19TVERDX0NPTlNUQU5UX01BQ1JPU19ERUZJTkVEKSAmJiBcCisgICAoIWRlZmluZWQoSU5UOF9DKSB8fCAhZGVmaW5lZChJTlQxNl9DKSB8fCAhZGVmaW5lZChJTlQzMl9DKSB8fCAhZGVmaW5lZChJTlQ2NF9DKSkKKy8vCisvLyBGb3IgdGhlIGZvbGxvd2luZyBjb2RlIHdlIGdldCBzZXZlcmFsIHdhcm5pbmdzIGFsb25nIHRoZSBsaW5lcyBvZjogCisvLyAKKy8vIGJvb3N0L2NzdGRpbnQuaHBwOjQyODozNTogZXJyb3I6IHVzZSBvZiBDOTkgbG9uZyBsb25nIGludGVnZXIgY29uc3RhbnQgCisvLyAKKy8vIFNvIHdlIGRlY2xhcmUgdGhpcyBhIHN5c3RlbSBoZWFkZXIgdG8gc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MuIAorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gNCkgCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyIAorI2VuZGlmIAorCisjaW5jbHVkZSA8bGltaXRzLmg+CisjIGRlZmluZSBCT09TVF9fU1REQ19DT05TVEFOVF9NQUNST1NfREVGSU5FRAorIyBpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKKy8vCisvLyBCb3JsYW5kL0ludGVsL01pY3Jvc29mdCBjb21waWxlcnMgaGF2ZSB3aWR0aCBzcGVjaWZpYyBzdWZmaXhlczoKKy8vCisjaWZuZGVmIElOVDhfQworIyAgZGVmaW5lIElOVDhfQyh2YWx1ZSkgICAgIHZhbHVlIyNpOAorI2VuZGlmCisjaWZuZGVmIElOVDE2X0MKKyMgIGRlZmluZSBJTlQxNl9DKHZhbHVlKSAgICB2YWx1ZSMjaTE2CisjZW5kaWYKKyNpZm5kZWYgSU5UMzJfQworIyAgZGVmaW5lIElOVDMyX0ModmFsdWUpICAgIHZhbHVlIyNpMzIKKyNlbmRpZgorI2lmbmRlZiBJTlQ2NF9DCisjICBkZWZpbmUgSU5UNjRfQyh2YWx1ZSkgICAgdmFsdWUjI2k2NAorI2VuZGlmCisjICBpZmRlZiBfX0JPUkxBTkRDX18KKyAgICAvLyBCb3JsYW5kIGJ1ZzogYXBwZW5kaW5nIHVpOCBtYWtlcyB0aGUgdHlwZSBhIHNpZ25lZCBjaGFyCisjICAgZGVmaW5lIFVJTlQ4X0ModmFsdWUpICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHZhbHVlIyN1KQorIyAgZWxzZQorIyAgIGRlZmluZSBVSU5UOF9DKHZhbHVlKSAgICB2YWx1ZSMjdWk4CisjICBlbmRpZgorI2lmbmRlZiBVSU5UMTZfQworIyAgZGVmaW5lIFVJTlQxNl9DKHZhbHVlKSAgIHZhbHVlIyN1aTE2CisjZW5kaWYKKyNpZm5kZWYgVUlOVDMyX0MKKyMgIGRlZmluZSBVSU5UMzJfQyh2YWx1ZSkgICB2YWx1ZSMjdWkzMgorI2VuZGlmCisjaWZuZGVmIFVJTlQ2NF9DCisjICBkZWZpbmUgVUlOVDY0X0ModmFsdWUpICAgdmFsdWUjI3VpNjQKKyNlbmRpZgorI2lmbmRlZiBJTlRNQVhfQworIyAgZGVmaW5lIElOVE1BWF9DKHZhbHVlKSAgIHZhbHVlIyNpNjQKKyMgIGRlZmluZSBVSU5UTUFYX0ModmFsdWUpICB2YWx1ZSMjdWk2NAorI2VuZGlmCisKKyMgZWxzZQorLy8gIGRvIGl0IHRoZSBvbGQgZmFzaGlvbmVkIHdheToKKworLy8gIDgtYml0IHR5cGVzICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjICBpZiAoVUNIQVJfTUFYID09IDB4ZmYpICYmICFkZWZpbmVkKElOVDhfQykKKyMgICBkZWZpbmUgSU5UOF9DKHZhbHVlKSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6aW50OF90Pih2YWx1ZSkKKyMgICBkZWZpbmUgVUlOVDhfQyh2YWx1ZSkgc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OnVpbnQ4X3Q+KHZhbHVlIyN1KQorIyAgZW5kaWYKKworLy8gIDE2LWJpdCB0eXBlcyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjICBpZiAoVVNIUlRfTUFYID09IDB4ZmZmZikgJiYgIWRlZmluZWQoSU5UMTZfQykKKyMgICBkZWZpbmUgSU5UMTZfQyh2YWx1ZSkgc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmludDE2X3Q+KHZhbHVlKQorIyAgIGRlZmluZSBVSU5UMTZfQyh2YWx1ZSkgc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OnVpbnQxNl90Pih2YWx1ZSMjdSkKKyMgIGVuZGlmCisKKy8vICAzMi1iaXQgdHlwZXMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKyNpZm5kZWYgSU5UMzJfQworIyAgaWYgKFVJTlRfTUFYID09IDB4ZmZmZmZmZmYpCisjICAgZGVmaW5lIElOVDMyX0ModmFsdWUpIHZhbHVlCisjICAgZGVmaW5lIFVJTlQzMl9DKHZhbHVlKSB2YWx1ZSMjdQorIyAgZWxpZiBVTE9OR19NQVggPT0gMHhmZmZmZmZmZgorIyAgIGRlZmluZSBJTlQzMl9DKHZhbHVlKSB2YWx1ZSMjTAorIyAgIGRlZmluZSBVSU5UMzJfQyh2YWx1ZSkgdmFsdWUjI3VMCisjICBlbmRpZgorI2VuZGlmCisKKy8vICA2NC1iaXQgdHlwZXMgKyBpbnRtYXhfdCBhbmQgdWludG1heF90ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKyNpZm5kZWYgSU5UNjRfQworIyAgaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKSAmJiBcCisgICAgKGRlZmluZWQoVUxMT05HX01BWCkgfHwgZGVmaW5lZChVTE9OR19MT05HX01BWCkgfHwgZGVmaW5lZChVTE9OR0xPTkdfTUFYKSB8fCBkZWZpbmVkKF9MTE9OR19NQVgpKQorCisjICAgIGlmIGRlZmluZWQoX19ocHV4KQorICAgICAgICAvLyBIUC1VWCdzIHZhbHVlIG9mIFVMT05HX0xPTkdfTUFYIGlzIHVudXNhYmxlIGluIHByZXByb2Nlc3NvciBleHByZXNzaW9ucworIyAgICAgICBkZWZpbmUgSU5UNjRfQyh2YWx1ZSkgdmFsdWUjI0xMCisjICAgICAgIGRlZmluZSBVSU5UNjRfQyh2YWx1ZSkgdmFsdWUjI3VMTAorIyAgICBlbGlmIChkZWZpbmVkKFVMTE9OR19NQVgpICYmIFVMTE9OR19NQVggPT0gMTg0NDY3NDQwNzM3MDk1NTE2MTVVTEwpIHx8ICBcCisgICAgICAgIChkZWZpbmVkKFVMT05HX0xPTkdfTUFYKSAmJiBVTE9OR19MT05HX01BWCA9PSAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMTCkgfHwgIFwKKyAgICAgICAgKGRlZmluZWQoVUxPTkdMT05HX01BWCkgJiYgVUxPTkdMT05HX01BWCA9PSAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMTCkgfHwgXAorICAgICAgICAoZGVmaW5lZChfTExPTkdfTUFYKSAmJiBfTExPTkdfTUFYID09IDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUxMKQorCisjICAgICAgIGRlZmluZSBJTlQ2NF9DKHZhbHVlKSB2YWx1ZSMjTEwKKyMgICAgICAgZGVmaW5lIFVJTlQ2NF9DKHZhbHVlKSB2YWx1ZSMjdUxMCisjICAgIGVsc2UKKyMgICAgICAgZXJyb3IgZGVmYXVsdHMgbm90IGNvcnJlY3Q7IHlvdSBtdXN0IGhhbmQgbW9kaWZ5IGJvb3N0L2NzdGRpbnQuaHBwCisjICAgIGVuZGlmCisjICBlbGlmIFVMT05HX01BWCAhPSAweGZmZmZmZmZmCisKKyMgICAgaWYgVUxPTkdfTUFYID09IDE4NDQ2NzQ0MDczNzA5NTUxNjE1VSAvLyAyKio2NCAtIDEKKyMgICAgICAgZGVmaW5lIElOVDY0X0ModmFsdWUpIHZhbHVlIyNMCisjICAgICAgIGRlZmluZSBVSU5UNjRfQyh2YWx1ZSkgdmFsdWUjI3VMCisjICAgIGVsc2UKKyMgICAgICAgZXJyb3IgZGVmYXVsdHMgbm90IGNvcnJlY3Q7IHlvdSBtdXN0IGhhbmQgbW9kaWZ5IGJvb3N0L2NzdGRpbnQuaHBwCisjICAgIGVuZGlmCisjICBlbGlmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyAgICAgLy8gVXN1YWwgbWFjcm9zIG5vdCBkZWZpbmVkLCB3b3JrIHRoaW5ncyBvdXQgZm9yIG91cnNlbHZlczoKKyMgICAgaWYofjB1TEwgPT0gMTg0NDY3NDQwNzM3MDk1NTE2MTVVTEwpCisjICAgICAgIGRlZmluZSBJTlQ2NF9DKHZhbHVlKSB2YWx1ZSMjTEwKKyMgICAgICAgZGVmaW5lIFVJTlQ2NF9DKHZhbHVlKSB2YWx1ZSMjdUxMCisjICAgIGVsc2UKKyMgICAgICAgZXJyb3IgZGVmYXVsdHMgbm90IGNvcnJlY3Q7IHlvdSBtdXN0IGhhbmQgbW9kaWZ5IGJvb3N0L2NzdGRpbnQuaHBwCisjICAgIGVuZGlmCisjICBlbHNlCisjICAgIGVycm9yIGRlZmF1bHRzIG5vdCBjb3JyZWN0OyB5b3UgbXVzdCBoYW5kIG1vZGlmeSBib29zdC9jc3RkaW50LmhwcAorIyAgZW5kaWYKKworIyAgaWZkZWYgQk9PU1RfTk9fSU5UNjRfVAorIyAgIGRlZmluZSBJTlRNQVhfQyh2YWx1ZSkgSU5UMzJfQyh2YWx1ZSkKKyMgICBkZWZpbmUgVUlOVE1BWF9DKHZhbHVlKSBVSU5UMzJfQyh2YWx1ZSkKKyMgIGVsc2UKKyMgICBkZWZpbmUgSU5UTUFYX0ModmFsdWUpIElOVDY0X0ModmFsdWUpCisjICAgZGVmaW5lIFVJTlRNQVhfQyh2YWx1ZSkgVUlOVDY0X0ModmFsdWUpCisjICBlbmRpZgorI2VuZGlmCisjIGVuZGlmIC8vIEJvcmxhbmQvTWljcm9zb2Z0IHNwZWNpZmljIHdpZHRoIHN1ZmZpeGVzCisKKyNlbmRpZiAvLyBJTlQjX0MgbWFjcm9zLgorCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2NzdGRsaWIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9jc3RkbGliLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTAxYmE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9jc3RkbGliLmhwcApAQCAtMCwwICsxLDQxIEBACisvLyAgYm9vc3QvY3N0ZGxpYi5ocHAgaGVhZGVyICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IEJlbWFuIERhd2VzIDIwMDEuICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkvY3N0ZGxpYi5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAgUmV2aXNpb24gSGlzdG9yeQorLy8gICAyNiBGZWIgMDEgIEluaXRpYWwgdmVyc2lvbiAoQmVtYW4gRGF3ZXMpCisKKyNpZm5kZWYgQk9PU1RfQ1NURExJQl9IUFAKKyNkZWZpbmUgQk9PU1RfQ1NURExJQl9IUFAKKworI2luY2x1ZGUgPGNzdGRsaWI+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgLy8gIFRoZSBpbnRlbnQgaXMgdG8gcHJvcG9zZSB0aGUgZm9sbG93aW5nIGZvciBhZGRpdGlvbiB0byBuYW1lc3BhY2Ugc3RkCisgICAvLyAgaW4gdGhlIEMrKyBTdGFuZGFyZCBMaWJyYXJ5LCBhbmQgdG8gdGhlbiBkZXByZWNhdGUgRVhJVF9TVUNDRVNTIGFuZAorICAgLy8gIEVYSVRfRkFJTFVSRS4gIEFzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgdGhpcyBoZWFkZXIgZGVmaW5lcyB0aGUKKyAgIC8vICBuZXcgY29uc3RhbnRzIGluIHRlcm1zIG9mIEVYSVRfU1VDQ0VTUyBhbmQgRVhJVF9GQUlMVVJFLiAgSW4gYSBuZXcKKyAgIC8vICBzdGFuZGFyZCwgdGhlIGNvbnN0YW50cyB3b3VsZCBiZSBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLCBhbHRob3VnaCBpdAorICAgLy8gIG1pZ2h0IGJlIHdvcnRod2hpbGUgdG8gInN1Z2dlc3QiICh3aGljaCBhIHN0YW5kYXJkIGlzIGFsbG93ZWQgdG8gZG8pCisgICAvLyAgdmFsdWVzIG9mIDAgYW5kIDEgcmVzcGVjdGl2ZWx5LgorCisgICAvLyAgUmF0aW9uYWxlIGZvciBoYXZpbmcgbXVsdGlwbGUgZmFpbHVyZSB2YWx1ZXM6IHNvbWUgZW52aXJvbm1lbnRzIG1heQorICAgLy8gIHdpc2ggdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBkaWZmZXJlbnQgY2xhc3NlcyBvZiBlcnJvcnMuCisgICAvLyAgUmF0aW9uYWxlIGZvciBjaG9pY2Ugb2YgdmFsdWVzOiBwcm9ncmFtcyBvZnRlbiB1c2UgdmFsdWVzIDwgMTAwIGZvcgorICAgLy8gIHRoZWlyIG93biBlcnJvciByZXBvcnRpbmcuICBWYWx1ZXMgPiAyNTUgYXJlIHNvbWV0aW1lcyByZXNlcnZlZCBmb3IKKyAgIC8vICBzeXN0ZW0gZGV0ZWN0ZWQgZXJyb3JzLiAgMjAwLzIwMSB3ZXJlIHN1Z2dlc3RlZCB0byBtaW5pbWl6ZSBjb25mbGljdC4KKworICAgY29uc3QgaW50IGV4aXRfc3VjY2VzcyA9IEVYSVRfU1VDQ0VTUzsgIC8vIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUKKyAgIGNvbnN0IGludCBleGl0X2ZhaWx1cmUgPSBFWElUX0ZBSUxVUkU7ICAvLyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlCisgICBjb25zdCBpbnQgZXhpdF9leGNlcHRpb25fZmFpbHVyZSA9IDIwMDsgLy8gb3RoZXJ3aXNlIHVuY2F1Z2h0IGV4Y2VwdGlvbgorICAgY29uc3QgaW50IGV4aXRfdGVzdF9mYWlsdXJlID0gMjAxOyAgICAgIC8vIHJlcG9ydF9lcnJvciBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICByZXBvcnRfY3JpdGljYWxfZXJyb3IgY2FsbGVkLgorfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU4MGNhNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHAKQEAgLTAsMCArMSw2OCBAQAorI2lmbmRlZiBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcCAtIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04KKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkvY3VycmVudF9mdW5jdGlvbi5odG1sCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCBjdXJyZW50X2Z1bmN0aW9uX2hlbHBlcigpCit7CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCAoZGVmaW5lZChfX01XRVJLU19fKSAmJiAoX19NV0VSS1NfXyA+PSAweDMwMDApKSB8fCAoZGVmaW5lZChfX0lDQykgJiYgKF9fSUNDID49IDYwMCkpIHx8IGRlZmluZWQoX19naHNfXykKKworIyBkZWZpbmUgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiBfX1BSRVRUWV9GVU5DVElPTl9fCisKKyNlbGlmIGRlZmluZWQoX19ETUNfXykgJiYgKF9fRE1DX18gPj0gMHg4MTApCisKKyMgZGVmaW5lIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04gX19QUkVUVFlfRlVOQ1RJT05fXworCisjZWxpZiBkZWZpbmVkKF9fRlVOQ1NJR19fKQorCisjIGRlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OIF9fRlVOQ1NJR19fCisKKyNlbGlmIChkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpICYmIChfX0lOVEVMX0NPTVBJTEVSID49IDYwMCkpIHx8IChkZWZpbmVkKF9fSUJNQ1BQX18pICYmIChfX0lCTUNQUF9fID49IDUwMCkpCisKKyMgZGVmaW5lIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04gX19GVU5DVElPTl9fCisKKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAoX19CT1JMQU5EQ19fID49IDB4NTUwKQorCisjIGRlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OIF9fRlVOQ19fCisKKyNlbGlmIGRlZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgKF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxKQorCisjIGRlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OIF9fZnVuY19fCisKKyNlbHNlCisKKyMgZGVmaW5lIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04gIih1bmtub3duKSIKKworI2VuZGlmCisKK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT05fSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2JpbmFyeV9zZWFyY2guaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvYmluYXJ5X3NlYXJjaC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGEyN2YzOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2JpbmFyeV9zZWFyY2guaHBwCkBAIC0wLDAgKzEsMjE2IEBACisvLyBDb3B5cmlnaHQgKGMpICAyMDAwIERhdmlkIEFicmFoYW1zLiAKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8gCisvLyBDb3B5cmlnaHQgKGMpIDE5OTQKKy8vIEhld2xldHQtUGFja2FyZCBDb21wYW55CisvLyAKKy8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUgYW5kIHNlbGwgdGhpcyBzb2Z0d2FyZQorLy8gYW5kIGl0cyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBpcyBoZXJlYnkgZ3JhbnRlZCB3aXRob3V0IGZlZSwKKy8vIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kCisvLyB0aGF0IGJvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhcgorLy8gaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLiAgSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkgbWFrZXMgbm8KKy8vIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisvLyBwdXJwb3NlLiAgSXQgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KKy8vIAorLy8gQ29weXJpZ2h0IChjKSAxOTk2CisvLyBTaWxpY29uIEdyYXBoaWNzIENvbXB1dGVyIFN5c3RlbXMsIEluYy4KKy8vIAorLy8gUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSBhbmQgc2VsbCB0aGlzIHNvZnR3YXJlCisvLyBhbmQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLAorLy8gcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQKKy8vIHRoYXQgYm90aCB0aGF0IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyCisvLyBpbiBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uICBTaWxpY29uIEdyYXBoaWNzIG1ha2VzIG5vCisvLyByZXByZXNlbnRhdGlvbnMgYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueQorLy8gcHVycG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCisvLyAKKyNpZm5kZWYgQklOQVJZX1NFQVJDSF9EV0FfMTIyNjAwX0hfCisjIGRlZmluZSBCSU5BUllfU0VBUkNIX0RXQV8xMjI2MDBfSF8KKworIyBpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaXRlcmF0b3IuaHBwPgorIyBpbmNsdWRlIDx1dGlsaXR5PgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGUgPGNsYXNzIEZvcndhcmRJdGVyLCBjbGFzcyBUcD4KK0ZvcndhcmRJdGVyIGxvd2VyX2JvdW5kKEZvcndhcmRJdGVyIGZpcnN0LCBGb3J3YXJkSXRlciBsYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcCYgdmFsKSAKK3sKKyAgICB0eXBlZGVmIGRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEZvcndhcmRJdGVyPiB0cmFpdHM7CisgICAgCisgICAgdHlwZW5hbWUgdHJhaXRzOjpkaWZmZXJlbmNlX3R5cGUgbGVuID0gbmRuYm9vc3Q6OmRldGFpbDo6ZGlzdGFuY2UoZmlyc3QsIGxhc3QpOworICAgIHR5cGVuYW1lIHRyYWl0czo6ZGlmZmVyZW5jZV90eXBlIGhhbGY7CisgICAgRm9yd2FyZEl0ZXIgbWlkZGxlOworCisgICAgd2hpbGUgKGxlbiA+IDApIHsKKyAgICAgIGhhbGYgPSBsZW4gPj4gMTsKKyAgICAgIG1pZGRsZSA9IGZpcnN0OworICAgICAgc3RkOjphZHZhbmNlKG1pZGRsZSwgaGFsZik7CisgICAgICBpZiAoKm1pZGRsZSA8IHZhbCkgeworICAgICAgICBmaXJzdCA9IG1pZGRsZTsKKyAgICAgICAgKytmaXJzdDsKKyAgICAgICAgbGVuID0gbGVuIC0gaGFsZiAtIDE7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIGxlbiA9IGhhbGY7CisgICAgfQorICAgIHJldHVybiBmaXJzdDsKK30KKwordGVtcGxhdGUgPGNsYXNzIEZvcndhcmRJdGVyLCBjbGFzcyBUcCwgY2xhc3MgQ29tcGFyZT4KK0ZvcndhcmRJdGVyIGxvd2VyX2JvdW5kKEZvcndhcmRJdGVyIGZpcnN0LCBGb3J3YXJkSXRlciBsYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHAmIHZhbCwgQ29tcGFyZSBjb21wKQoreworICB0eXBlZGVmIGRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEZvcndhcmRJdGVyPiB0cmFpdHM7CisKKyAgdHlwZW5hbWUgdHJhaXRzOjpkaWZmZXJlbmNlX3R5cGUgbGVuID0gbmRuYm9vc3Q6OmRldGFpbDo6ZGlzdGFuY2UoZmlyc3QsIGxhc3QpOworICB0eXBlbmFtZSB0cmFpdHM6OmRpZmZlcmVuY2VfdHlwZSBoYWxmOworICBGb3J3YXJkSXRlciBtaWRkbGU7CisKKyAgd2hpbGUgKGxlbiA+IDApIHsKKyAgICBoYWxmID0gbGVuID4+IDE7CisgICAgbWlkZGxlID0gZmlyc3Q7CisgICAgc3RkOjphZHZhbmNlKG1pZGRsZSwgaGFsZik7CisgICAgaWYgKGNvbXAoKm1pZGRsZSwgdmFsKSkgeworICAgICAgZmlyc3QgPSBtaWRkbGU7CisgICAgICArK2ZpcnN0OworICAgICAgbGVuID0gbGVuIC0gaGFsZiAtIDE7CisgICAgfQorICAgIGVsc2UKKyAgICAgIGxlbiA9IGhhbGY7CisgIH0KKyAgcmV0dXJuIGZpcnN0OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRm9yd2FyZEl0ZXIsIGNsYXNzIFRwPgorRm9yd2FyZEl0ZXIgdXBwZXJfYm91bmQoRm9yd2FyZEl0ZXIgZmlyc3QsIEZvcndhcmRJdGVyIGxhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcCYgdmFsKQoreworICB0eXBlZGVmIGRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEZvcndhcmRJdGVyPiB0cmFpdHM7CisKKyAgdHlwZW5hbWUgdHJhaXRzOjpkaWZmZXJlbmNlX3R5cGUgbGVuID0gbmRuYm9vc3Q6OmRldGFpbDo6ZGlzdGFuY2UoZmlyc3QsIGxhc3QpOworICB0eXBlbmFtZSB0cmFpdHM6OmRpZmZlcmVuY2VfdHlwZSBoYWxmOworICBGb3J3YXJkSXRlciBtaWRkbGU7CisKKyAgd2hpbGUgKGxlbiA+IDApIHsKKyAgICBoYWxmID0gbGVuID4+IDE7CisgICAgbWlkZGxlID0gZmlyc3Q7CisgICAgc3RkOjphZHZhbmNlKG1pZGRsZSwgaGFsZik7CisgICAgaWYgKHZhbCA8ICptaWRkbGUpCisgICAgICBsZW4gPSBoYWxmOworICAgIGVsc2UgeworICAgICAgZmlyc3QgPSBtaWRkbGU7CisgICAgICArK2ZpcnN0OworICAgICAgbGVuID0gbGVuIC0gaGFsZiAtIDE7CisgICAgfQorICB9CisgIHJldHVybiBmaXJzdDsKK30KKwordGVtcGxhdGUgPGNsYXNzIEZvcndhcmRJdGVyLCBjbGFzcyBUcCwgY2xhc3MgQ29tcGFyZT4KK0ZvcndhcmRJdGVyIHVwcGVyX2JvdW5kKEZvcndhcmRJdGVyIGZpcnN0LCBGb3J3YXJkSXRlciBsYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHAmIHZhbCwgQ29tcGFyZSBjb21wKQoreworICB0eXBlZGVmIGRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEZvcndhcmRJdGVyPiB0cmFpdHM7CisKKyAgdHlwZW5hbWUgdHJhaXRzOjpkaWZmZXJlbmNlX3R5cGUgbGVuID0gbmRuYm9vc3Q6OmRldGFpbDo6ZGlzdGFuY2UoZmlyc3QsIGxhc3QpOworICB0eXBlbmFtZSB0cmFpdHM6OmRpZmZlcmVuY2VfdHlwZSBoYWxmOworICBGb3J3YXJkSXRlciBtaWRkbGU7CisKKyAgd2hpbGUgKGxlbiA+IDApIHsKKyAgICBoYWxmID0gbGVuID4+IDE7CisgICAgbWlkZGxlID0gZmlyc3Q7CisgICAgc3RkOjphZHZhbmNlKG1pZGRsZSwgaGFsZik7CisgICAgaWYgKGNvbXAodmFsLCAqbWlkZGxlKSkKKyAgICAgIGxlbiA9IGhhbGY7CisgICAgZWxzZSB7CisgICAgICBmaXJzdCA9IG1pZGRsZTsKKyAgICAgICsrZmlyc3Q7CisgICAgICBsZW4gPSBsZW4gLSBoYWxmIC0gMTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIGZpcnN0OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRm9yd2FyZEl0ZXIsIGNsYXNzIFRwPgorc3RkOjpwYWlyPEZvcndhcmRJdGVyLCBGb3J3YXJkSXRlcj4KK2VxdWFsX3JhbmdlKEZvcndhcmRJdGVyIGZpcnN0LCBGb3J3YXJkSXRlciBsYXN0LCBjb25zdCBUcCYgdmFsKQoreworICB0eXBlZGVmIGRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEZvcndhcmRJdGVyPiB0cmFpdHM7CisKKyAgdHlwZW5hbWUgdHJhaXRzOjpkaWZmZXJlbmNlX3R5cGUgbGVuID0gbmRuYm9vc3Q6OmRldGFpbDo6ZGlzdGFuY2UoZmlyc3QsIGxhc3QpOworICB0eXBlbmFtZSB0cmFpdHM6OmRpZmZlcmVuY2VfdHlwZSBoYWxmOworICBGb3J3YXJkSXRlciBtaWRkbGUsIGxlZnQsIHJpZ2h0OworCisgIHdoaWxlIChsZW4gPiAwKSB7CisgICAgaGFsZiA9IGxlbiA+PiAxOworICAgIG1pZGRsZSA9IGZpcnN0OworICAgIHN0ZDo6YWR2YW5jZShtaWRkbGUsIGhhbGYpOworICAgIGlmICgqbWlkZGxlIDwgdmFsKSB7CisgICAgICBmaXJzdCA9IG1pZGRsZTsKKyAgICAgICsrZmlyc3Q7CisgICAgICBsZW4gPSBsZW4gLSBoYWxmIC0gMTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsIDwgKm1pZGRsZSkKKyAgICAgIGxlbiA9IGhhbGY7CisgICAgZWxzZSB7CisgICAgICBsZWZ0ID0gbmRuYm9vc3Q6OmRldGFpbDo6bG93ZXJfYm91bmQoZmlyc3QsIG1pZGRsZSwgdmFsKTsKKyAgICAgIHN0ZDo6YWR2YW5jZShmaXJzdCwgbGVuKTsKKyAgICAgIHJpZ2h0ID0gbmRuYm9vc3Q6OmRldGFpbDo6dXBwZXJfYm91bmQoKyttaWRkbGUsIGZpcnN0LCB2YWwpOworICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxGb3J3YXJkSXRlciwgRm9yd2FyZEl0ZXI+KGxlZnQsIHJpZ2h0KTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHN0ZDo6cGFpcjxGb3J3YXJkSXRlciwgRm9yd2FyZEl0ZXI+KGZpcnN0LCBmaXJzdCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBGb3J3YXJkSXRlciwgY2xhc3MgVHAsIGNsYXNzIENvbXBhcmU+CitzdGQ6OnBhaXI8Rm9yd2FyZEl0ZXIsIEZvcndhcmRJdGVyPgorZXF1YWxfcmFuZ2UoRm9yd2FyZEl0ZXIgZmlyc3QsIEZvcndhcmRJdGVyIGxhc3QsIGNvbnN0IFRwJiB2YWwsCisgICAgICAgICAgICAgIENvbXBhcmUgY29tcCkKK3sKKyAgdHlwZWRlZiBkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcj4gdHJhaXRzOworCisgIHR5cGVuYW1lIHRyYWl0czo6ZGlmZmVyZW5jZV90eXBlIGxlbiA9IG5kbmJvb3N0OjpkZXRhaWw6OmRpc3RhbmNlKGZpcnN0LCBsYXN0KTsKKyAgdHlwZW5hbWUgdHJhaXRzOjpkaWZmZXJlbmNlX3R5cGUgaGFsZjsKKyAgRm9yd2FyZEl0ZXIgbWlkZGxlLCBsZWZ0LCByaWdodDsKKworICB3aGlsZSAobGVuID4gMCkgeworICAgIGhhbGYgPSBsZW4gPj4gMTsKKyAgICBtaWRkbGUgPSBmaXJzdDsKKyAgICBzdGQ6OmFkdmFuY2UobWlkZGxlLCBoYWxmKTsKKyAgICBpZiAoY29tcCgqbWlkZGxlLCB2YWwpKSB7CisgICAgICBmaXJzdCA9IG1pZGRsZTsKKyAgICAgICsrZmlyc3Q7CisgICAgICBsZW4gPSBsZW4gLSBoYWxmIC0gMTsKKyAgICB9CisgICAgZWxzZSBpZiAoY29tcCh2YWwsICptaWRkbGUpKQorICAgICAgbGVuID0gaGFsZjsKKyAgICBlbHNlIHsKKyAgICAgIGxlZnQgPSBuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9ib3VuZChmaXJzdCwgbWlkZGxlLCB2YWwsIGNvbXApOworICAgICAgc3RkOjphZHZhbmNlKGZpcnN0LCBsZW4pOworICAgICAgcmlnaHQgPSBuZG5ib29zdDo6ZGV0YWlsOjp1cHBlcl9ib3VuZCgrK21pZGRsZSwgZmlyc3QsIHZhbCwgY29tcCk7CisgICAgICByZXR1cm4gc3RkOjpwYWlyPEZvcndhcmRJdGVyLCBGb3J3YXJkSXRlcj4obGVmdCwgcmlnaHQpOworICAgIH0KKyAgfQorICByZXR1cm4gc3RkOjpwYWlyPEZvcndhcmRJdGVyLCBGb3J3YXJkSXRlcj4oZmlyc3QsIGZpcnN0KTsKK30gICAgICAgICAgIAorCit0ZW1wbGF0ZSA8Y2xhc3MgRm9yd2FyZEl0ZXIsIGNsYXNzIFRwPgorYm9vbCBiaW5hcnlfc2VhcmNoKEZvcndhcmRJdGVyIGZpcnN0LCBGb3J3YXJkSXRlciBsYXN0LAorICAgICAgICAgICAgICAgICAgIGNvbnN0IFRwJiB2YWwpIHsKKyAgRm9yd2FyZEl0ZXIgaSA9IG5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2JvdW5kKGZpcnN0LCBsYXN0LCB2YWwpOworICByZXR1cm4gaSAhPSBsYXN0ICYmICEodmFsIDwgKmkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRm9yd2FyZEl0ZXIsIGNsYXNzIFRwLCBjbGFzcyBDb21wYXJlPgorYm9vbCBiaW5hcnlfc2VhcmNoKEZvcndhcmRJdGVyIGZpcnN0LCBGb3J3YXJkSXRlciBsYXN0LAorICAgICAgICAgICAgICAgICAgIGNvbnN0IFRwJiB2YWwsCisgICAgICAgICAgICAgICAgICAgQ29tcGFyZSBjb21wKSB7CisgIEZvcndhcmRJdGVyIGkgPSBuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9ib3VuZChmaXJzdCwgbGFzdCwgdmFsLCBjb21wKTsKKyAgcmV0dXJuIGkgIT0gbGFzdCAmJiAhY29tcCh2YWwsICppKTsKK30KKworfX0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpkZXRhaWwKKworI2VuZGlmIC8vIEJJTkFSWV9TRUFSQ0hfRFdBXzEyMjYwMF9IXwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvY2FsbF90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvY2FsbF90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMmNkYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9jYWxsX3RyYWl0cy5ocHAKQEAgLTAsMCArMSwxNzIgQEAKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKy8vIGNhbGxfdHJhaXRzOiBkZWZpbmVzIHR5cGVkZWZzIGZvciBmdW5jdGlvbiB1c2FnZQorLy8gKHNlZSBsaWJzL3V0aWxpdHkvY2FsbF90cmFpdHMuaHRtKQorCisvKiBSZWxlYXNlIG5vdGVzOgorICAgMjNyZCBKdWx5IDIwMDA6CisgICAgICBGaXhlZCBhcnJheSBzcGVjaWFsaXphdGlvbi4gKEpNKQorICAgICAgQWRkZWQgQm9ybGFuZCBzcGVjaWZpYyBmaXhlcyBmb3IgcmVmZXJlbmNlIHR5cGVzCisgICAgICAoaXNzdWUgcmFpc2VkIGJ5IFN0ZXZlIENsZWFyeSkuCisqLworCisjaWZuZGVmIEJPT1NUX0RFVEFJTF9DQUxMX1RSQUlUU19IUFAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0NBTExfVFJBSVRTX0hQUAorCisjaWZuZGVmIEJPT1NUX0NPTkZJR19IUFAKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2VuZGlmCisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VudW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eworCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBzbWFsbF8+CitzdHJ1Y3QgY3RfaW1wMgoreworICAgdHlwZWRlZiBjb25zdCBUJiBwYXJhbV90eXBlOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgY3RfaW1wMjxULCB0cnVlPgoreworICAgdHlwZWRlZiBjb25zdCBUIHBhcmFtX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBpc3AsIGJvb2wgYjEsIGJvb2wgYjI+CitzdHJ1Y3QgY3RfaW1wCit7CisgICB0eXBlZGVmIGNvbnN0IFQmIHBhcmFtX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBpc3AsIGJvb2wgYjI+CitzdHJ1Y3QgY3RfaW1wPFQsIGlzcCwgdHJ1ZSwgYjI+Cit7CisgICB0eXBlZGVmIHR5cGVuYW1lIGN0X2ltcDI8VCwgc2l6ZW9mKFQpIDw9IHNpemVvZih2b2lkKik+OjpwYXJhbV90eXBlIHBhcmFtX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBpc3AsIGJvb2wgYjE+CitzdHJ1Y3QgY3RfaW1wPFQsIGlzcCwgYjEsIHRydWU+Cit7CisgICB0eXBlZGVmIHR5cGVuYW1lIGN0X2ltcDI8VCwgc2l6ZW9mKFQpIDw9IHNpemVvZih2b2lkKik+OjpwYXJhbV90eXBlIHBhcmFtX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBiMSwgYm9vbCBiMj4KK3N0cnVjdCBjdF9pbXA8VCwgdHJ1ZSwgYjEsIGIyPgoreworICAgdHlwZWRlZiBjb25zdCBUIHBhcmFtX3R5cGU7Cit9OworCit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGNhbGxfdHJhaXRzCit7CitwdWJsaWM6CisgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgVCYgcmVmZXJlbmNlOworICAgdHlwZWRlZiBjb25zdCBUJiBjb25zdF9yZWZlcmVuY2U7CisgICAvLworICAgLy8gQysrIEJ1aWxkZXIgd29ya2Fyb3VuZDogd2Ugc2hvdWxkIGJlIGFibGUgdG8gZGVmaW5lIGEgY29tcGlsZSB0aW1lCisgICAvLyBjb25zdGFudCBhbmQgcGFzcyB0aGF0IGFzIGEgc2luZ2xlIHRlbXBsYXRlIHBhcmFtZXRlciB0byBjdF9pbXA8VCxib29sPiwKKyAgIC8vIGhvd2V2ZXIgY29tcGlsZXIgYnVncyBwcmV2ZW50IHRoaXMgLSBpbnN0ZWFkIHBhc3MgdGhyZWUgYm9vbCdzIHRvCisgICAvLyBjdF9pbXA8VCxib29sLGJvb2wsYm9vbD4gYW5kIGFkZCBhbiBleHRyYSBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9uCisgICAvLyBvZiBjdF9pbXAgdG8gaGFuZGxlIHRoZSBsb2dpYy4gKEpNKQorICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpjdF9pbXA8CisgICAgICBULAorICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjxUPjo6dmFsdWUsCisgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPFQ+Ojp2YWx1ZSwKKyAgICAgIDo6bmRuYm9vc3Q6OmlzX2VudW08VD46OnZhbHVlCisgICA+OjpwYXJhbV90eXBlIHBhcmFtX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjYWxsX3RyYWl0czxUJj4KK3sKKyAgIHR5cGVkZWYgVCYgdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgVCYgcmVmZXJlbmNlOworICAgdHlwZWRlZiBjb25zdCBUJiBjb25zdF9yZWZlcmVuY2U7CisgICB0eXBlZGVmIFQmIHBhcmFtX3R5cGU7ICAvLyBoaCByZW1vdmVkIGNvbnN0Cit9OworCisjaWYgQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCAgPCAweDVBMCApCisvLyB0aGVzZSBhcmUgaWxsZWdhbCBzcGVjaWFsaXNhdGlvbnM7IGN2LXF1YWxpZmllcyBhcHBsaWVkIHRvCisvLyByZWZlcmVuY2VzIGhhdmUgbm8gZWZmZWN0IGFjY29yZGluZyB0byBbOC4zLjJwMV0sCisvLyBDKysgQnVpbGRlciByZXF1aXJlcyB0aGVtIHRob3VnaCBhcyBpdCB0cmVhdHMgY3YtcXVhbGlmaWVkCisvLyByZWZlcmVuY2VzIGFzIGRpc3RpbmN0IHR5cGVzLi4uCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjYWxsX3RyYWl0czxUJmNvbnN0PgoreworICAgdHlwZWRlZiBUJiB2YWx1ZV90eXBlOworICAgdHlwZWRlZiBUJiByZWZlcmVuY2U7CisgICB0eXBlZGVmIGNvbnN0IFQmIGNvbnN0X3JlZmVyZW5jZTsKKyAgIHR5cGVkZWYgVCYgcGFyYW1fdHlwZTsgIC8vIGhoIHJlbW92ZWQgY29uc3QKK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjYWxsX3RyYWl0czxUJnZvbGF0aWxlPgoreworICAgdHlwZWRlZiBUJiB2YWx1ZV90eXBlOworICAgdHlwZWRlZiBUJiByZWZlcmVuY2U7CisgICB0eXBlZGVmIGNvbnN0IFQmIGNvbnN0X3JlZmVyZW5jZTsKKyAgIHR5cGVkZWYgVCYgcGFyYW1fdHlwZTsgIC8vIGhoIHJlbW92ZWQgY29uc3QKK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjYWxsX3RyYWl0czxUJmNvbnN0IHZvbGF0aWxlPgoreworICAgdHlwZWRlZiBUJiB2YWx1ZV90eXBlOworICAgdHlwZWRlZiBUJiByZWZlcmVuY2U7CisgICB0eXBlZGVmIGNvbnN0IFQmIGNvbnN0X3JlZmVyZW5jZTsKKyAgIHR5cGVkZWYgVCYgcGFyYW1fdHlwZTsgIC8vIGhoIHJlbW92ZWQgY29uc3QKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGNhbGxfdHJhaXRzPCBUICogPgoreworICAgdHlwZWRlZiBUICogdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgVCAqICYgcmVmZXJlbmNlOworICAgdHlwZWRlZiBUICogY29uc3QgJiBjb25zdF9yZWZlcmVuY2U7CisgICB0eXBlZGVmIFQgKiBjb25zdCBwYXJhbV90eXBlOyAgLy8gaGggcmVtb3ZlZCBjb25zdAorfTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TKQordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CitzdHJ1Y3QgY2FsbF90cmFpdHM8VCBbTl0+Cit7Citwcml2YXRlOgorICAgdHlwZWRlZiBUIGFycmF5X3R5cGVbTl07CitwdWJsaWM6CisgICAvLyBkZWdyYWRlcyBhcnJheSB0byBwb2ludGVyOgorICAgdHlwZWRlZiBjb25zdCBUKiB2YWx1ZV90eXBlOworICAgdHlwZWRlZiBhcnJheV90eXBlJiByZWZlcmVuY2U7CisgICB0eXBlZGVmIGNvbnN0IGFycmF5X3R5cGUmIGNvbnN0X3JlZmVyZW5jZTsKKyAgIHR5cGVkZWYgY29uc3QgVCogY29uc3QgcGFyYW1fdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IGNhbGxfdHJhaXRzPGNvbnN0IFQgW05dPgoreworcHJpdmF0ZToKKyAgIHR5cGVkZWYgY29uc3QgVCBhcnJheV90eXBlW05dOworcHVibGljOgorICAgLy8gZGVncmFkZXMgYXJyYXkgdG8gcG9pbnRlcjoKKyAgIHR5cGVkZWYgY29uc3QgVCogdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgYXJyYXlfdHlwZSYgcmVmZXJlbmNlOworICAgdHlwZWRlZiBjb25zdCBhcnJheV90eXBlJiBjb25zdF9yZWZlcmVuY2U7CisgICB0eXBlZGVmIGNvbnN0IFQqIGNvbnN0IHBhcmFtX3R5cGU7Cit9OworI2VuZGlmCisKK30KKworI2VuZGlmIC8vIEJPT1NUX0RFVEFJTF9DQUxMX1RSQUlUU19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2NvbnRhaW5lcl9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvY29udGFpbmVyX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI1NGU3YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2NvbnRhaW5lcl9md2QuaHBwCkBAIC0wLDAgKzEsMTYyIEBACisKKy8vIENvcHlyaWdodCAyMDA1LTIwMTEgRGFuaWVsIEphbWVzLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIE5vdGU6IGlmIHlvdSBjaGFuZ2UgdGhpcyBpbmNsdWRlIGd1YXJkLCB5b3UgYWxzbyBuZWVkIHRvIGNoYW5nZQorLy8gY29udGFpbmVyX2Z3ZF9jb21waWxlX2ZhaWwuY3BwCisjaWYgIWRlZmluZWQoQk9PU1RfREVUQUlMX0NPTlRBSU5FUl9GV0RfSFBQKQorI2RlZmluZSBCT09TVF9ERVRBSUxfQ09OVEFJTkVSX0ZXRF9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKSAmJiBcCisgICAgIWRlZmluZWQoQk9PU1RfREVUQUlMX1RFU1RfQ09ORklHX09OTFkpCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vIERlZmluZSBCT09TVF9ERVRBSUxfTk9fQ09OVEFJTkVSX0ZXRCBpZiB5b3UgZG9uJ3Qgd2FudCB0aGlzIGhlYWRlciB0byAgICAgIC8vCisvLyBmb3J3YXJkIGRlY2xhcmUgc3RhbmRhcmQgY29udGFpbmVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vIEJPT1NUX0RFVEFJTF9DT05UQUlORVJfRldEIHRvIG1ha2UgaXQgZm93YXJkIGRlY2xhcmUgY29udGFpbmVycyBldmVuIGlmIGl0IC8vCisvLyBub3JtYWxseSBkb2Vzbid0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vIEJPT1NUX0RFVEFJTF9OT19DT05UQUlORVJfRldEIG92ZXJyaWRlcyBCT09TVF9ERVRBSUxfQ09OVEFJTkVSX0ZXRC4gICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX0RFVEFJTF9OT19DT05UQUlORVJfRldEKQorIyAgaWYgZGVmaW5lZChCT09TVF9ERVRBSUxfQ09OVEFJTkVSX0ZXRCkKKyAgICAgLy8gRm9yY2UgZm9yd2FyZCBkZWNsYXJhdGlvbnMuCisjICBlbGlmIGRlZmluZWQoX19TR0lfU1RMX1BPUlQpIHx8IGRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKyAgICAgLy8gU1RMcG9ydAorIyAgICBkZWZpbmUgQk9PU1RfREVUQUlMX05PX0NPTlRBSU5FUl9GV0QKKyMgIGVsaWYgZGVmaW5lZChfX0xJQkNPTU9fXykKKyAgICAgLy8gQ29tZWF1IFNUTDoKKyMgICAgZGVmaW5lIEJPT1NUX0RFVEFJTF9OT19DT05UQUlORVJfRldECisjICBlbGlmIGRlZmluZWQoX19TVERfUldDT01QSUxFUl9IX18pIHx8IGRlZmluZWQoX1JXU1REX1ZFUikKKyAgICAgLy8gUm9ndWUgV2F2ZSBsaWJyYXJ5OgorIyAgICBkZWZpbmUgQk9PU1RfREVUQUlMX05PX0NPTlRBSU5FUl9GV0QKKyMgIGVsaWYgZGVmaW5lZChfTElCQ1BQX1ZFUlNJT04pCisgICAgIC8vIGxpYmMrKworIyAgICBkZWZpbmUgQk9PU1RfREVUQUlMX05PX0NPTlRBSU5FUl9GV0QKKyMgIGVsaWYgZGVmaW5lZChfX0dMSUJDUFBfXykgfHwgZGVmaW5lZChfX0dMSUJDWFhfXykKKyAgICAgLy8gR05VIGxpYnN0ZGMrKyAzCisgICAgIC8vCisgICAgIC8vIERpc2FibGUgZm9yd2FyZGluZyBmb3IgYWxsIHJlY2VudCB2ZXJzaW9ucywgYXMgdGhlIGxpYnJhcnkgaGFzIGEKKyAgICAgLy8gdmVyc2lvbmVkIG5hbWVzcGFjZSBtb2RlLCBhbmQgSSBkb24ndCBrbm93IGhvdyB0byBkZXRlY3QgaXQuCisjICAgIGlmIF9fR0xJQkNYWF9fID49IDIwMDcwNTEzIFwKKyAgICAgICAgfHwgZGVmaW5lZChfR0xJQkNYWF9ERUJVRykgXAorICAgICAgICB8fCBkZWZpbmVkKF9HTElCQ1hYX1BBUkFMTEVMKSBcCisgICAgICAgIHx8IGRlZmluZWQoX0dMSUJDWFhfUFJPRklMRSkKKyMgICAgICBkZWZpbmUgQk9PU1RfREVUQUlMX05PX0NPTlRBSU5FUl9GV0QKKyMgICAgZWxzZQorIyAgICAgIGlmIGRlZmluZWQoX19HTElCQ1hYX18pICYmIF9fR0xJQkNYWF9fID49IDIwMDQwNTMwCisjICAgICAgICBkZWZpbmUgQk9PU1RfQ09OVEFJTkVSX0ZXRF9DT01QTEVYX1NUUlVDVAorIyAgICAgIGVuZGlmCisjICAgIGVuZGlmCisjICBlbGlmIGRlZmluZWQoX19TVExfQ09ORklHX0gpCisgICAgIC8vIGdlbmVyaWMgU0dJIFNUTAorICAgICAvLworICAgICAvLyBGb3J3YXJkIGRlY2xhcmF0aW9uIHNlZW1zIHRvIGJlIG9rYXksIGJ1dCBpdCBoYXMgYSBjb3VwbGUgb2Ygb2RkCisgICAgIC8vIGltcGxlbWVudGF0aW9ucy4KKyMgICAgZGVmaW5lIEJPT1NUX0NPTlRBSU5FUl9GV0RfQkFEX0JJVFNFVAorIyAgICBpZiAhZGVmaW5lZChfX1NUTF9OT05fVFlQRV9UTVBMX1BBUkFNX0JVRykKKyMgICAgICBkZWZpbmUgQk9PU1RfQ09OVEFJTkVSX0ZXRF9CQURfREVRVUUKKyMgICAgIGVuZGlmCisjICBlbGlmIGRlZmluZWQoX19NU0xfQ1BQX18pCisgICAgIC8vIE1TTCBzdGFuZGFyZCBsaWI6CisjICAgIGRlZmluZSBCT09TVF9ERVRBSUxfTk9fQ09OVEFJTkVSX0ZXRAorIyAgZWxpZiBkZWZpbmVkKF9fSUJNQ1BQX18pCisgICAgIC8vIFRoZSBkZWZhdWx0IFZBQ1BQIHN0ZCBsaWIsIGZvcndhcmQgZGVjbGFyYXRpb24gc2VlbXMgdG8gYmUgZmluZS4KKyMgIGVsaWYgZGVmaW5lZChNU0lQTF9DT01QSUxFX0gpCisgICAgIC8vIE1vZGVuYSBDKysgc3RhbmRhcmQgbGlicmFyeQorIyAgICBkZWZpbmUgQk9PU1RfREVUQUlMX05PX0NPTlRBSU5FUl9GV0QKKyMgIGVsaWYgKGRlZmluZWQoX1lWQUxTKSAmJiAhZGVmaW5lZChfX0lCTUNQUF9fKSkgfHwgZGVmaW5lZChfQ1BQTElCX1ZFUikKKyAgICAgLy8gRGlua3Vtd2FyZSBMaWJyYXJ5ICh0aGlzIGhhcyB0byBhcHBlYXIgYWZ0ZXIgYW55IHBvc3NpYmxlIHJlcGxhY2VtZW50CisgICAgIC8vIGxpYnJhcmllcykKKyMgIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX0RFVEFJTF9OT19DT05UQUlORVJfRldECisjICBlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9ERVRBSUxfVEVTVF9DT05GSUdfT05MWSkKKworI2lmIGRlZmluZWQoQk9PU1RfREVUQUlMX05PX0NPTlRBSU5FUl9GV0QpICYmIFwKKyAgICAhZGVmaW5lZChCT09TVF9ERVRBSUxfVEVTVF9GT1JDRV9DT05UQUlORVJfRldEKQorCisjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxiaXRzZXQ+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNvbXBsZXg+CisKKyNlbHNlCisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaWYgZGVmaW5lZChCT09TVF9DT05UQUlORVJfRldEX0JBRF9ERVFVRSkKKyNpbmNsdWRlIDxkZXF1ZT4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9DT05UQUlORVJfRldEX0JBRF9CSVRTRVQpCisjaW5jbHVkZSA8Yml0c2V0PgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQwOTkpIC8vIHN0cnVjdC9jbGFzcyBtaXNtYXRjaCBpbiBmd2QgZGVjbGFyYXRpb25zCisjZW5kaWYKKworbmFtZXNwYWNlIHN0ZAoreworICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBjbGFzcyBhbGxvY2F0b3I7CisgICAgdGVtcGxhdGUgPGNsYXNzIGNoYXJULCBjbGFzcyB0cmFpdHMsIGNsYXNzIEFsbG9jYXRvcj4gY2xhc3MgYmFzaWNfc3RyaW5nOworCisjaWYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKSAmJiAhZGVmaW5lZChfX1NHSV9TVExfUE9SVCkgJiYgIWRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKworICAgIHRlbXBsYXRlIDxjbGFzcyBjaGFyVD4gc3RydWN0IHN0cmluZ19jaGFyX3RyYWl0czsKKyNlbHNlCisgICAgdGVtcGxhdGUgPGNsYXNzIGNoYXJUPiBzdHJ1Y3QgY2hhcl90cmFpdHM7CisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfQ09OVEFJTkVSX0ZXRF9DT01QTEVYX1NUUlVDVCkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGNvbXBsZXg7CisjZWxzZQorICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBjbGFzcyBjb21wbGV4OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9DT05UQUlORVJfRldEX0JBRF9ERVFVRSkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgQWxsb2NhdG9yPiBjbGFzcyBkZXF1ZTsKKyNlbmRpZgorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEFsbG9jYXRvcj4gY2xhc3MgbGlzdDsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgQWxsb2NhdG9yPiBjbGFzcyB2ZWN0b3I7CisgICAgdGVtcGxhdGUgPGNsYXNzIEtleSwgY2xhc3MgVCwgY2xhc3MgQ29tcGFyZSwgY2xhc3MgQWxsb2NhdG9yPiBjbGFzcyBtYXA7CisgICAgdGVtcGxhdGUgPGNsYXNzIEtleSwgY2xhc3MgVCwgY2xhc3MgQ29tcGFyZSwgY2xhc3MgQWxsb2NhdG9yPgorICAgIGNsYXNzIG11bHRpbWFwOworICAgIHRlbXBsYXRlIDxjbGFzcyBLZXksIGNsYXNzIENvbXBhcmUsIGNsYXNzIEFsbG9jYXRvcj4gY2xhc3Mgc2V0OworICAgIHRlbXBsYXRlIDxjbGFzcyBLZXksIGNsYXNzIENvbXBhcmUsIGNsYXNzIEFsbG9jYXRvcj4gY2xhc3MgbXVsdGlzZXQ7CisKKyNpZiAhZGVmaW5lZChCT09TVF9DT05UQUlORVJfRldEX0JBRF9CSVRTRVQpCisgICAgdGVtcGxhdGUgPHNpemVfdCBOPiBjbGFzcyBiaXRzZXQ7CisjZW5kaWYKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPiBzdHJ1Y3QgcGFpcjsKK30KKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX0RFVEFJTF9OT19DT05UQUlORVJfRldEICYmCisgICAgICAgLy8gIWRlZmluZWQoQk9PU1RfREVUQUlMX1RFU1RfRk9SQ0VfQ09OVEFJTkVSX0ZXRCkKKworI2VuZGlmIC8vIEJPT1NUX0RFVEFJTF9URVNUX0NPTkZJR19PTkxZCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvZW5kaWFuLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2VuZGlhbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NlZTg3ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2VuZGlhbi5ocHAKQEAgLTAsMCArMSwxMjYgQEAKKy8vIENvcHlyaWdodCAyMDA1IENhbGViIEVwc3RlaW4KKy8vIENvcHlyaWdodCAyMDA2IEpvaG4gTWFkZG9jaworLy8gQ29weXJpZ2h0IDIwMTAgUmVuZSBSaXZlcmEKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnktCisvLyBpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTcKKyAqIFNpbGljb24gR3JhcGhpY3MgQ29tcHV0ZXIgU3lzdGVtcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUgYW5kIHNlbGwgdGhpcyBzb2Z0d2FyZQorICogYW5kIGl0cyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBpcyBoZXJlYnkgZ3JhbnRlZCB3aXRob3V0IGZlZSwKKyAqIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kCisgKiB0aGF0IGJvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhcgorICogaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLiAgU2lsaWNvbiBHcmFwaGljcyBtYWtlcyBubworICogcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2UuICBJdCBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5LgorICovCisKKy8qCisgKiBDb3B5cmlnaHQgbm90aWNlIHJlcHJvZHVjZWQgZnJvbSA8bmRuYm9vc3QvZGV0YWlsL2xpbWl0cy5ocHA+LCBmcm9tCisgKiB3aGljaCB0aGlzIGNvZGUgd2FzIG9yaWdpbmFsbHkgdGFrZW4uCisgKgorICogTW9kaWZpZWQgYnkgQ2FsZWIgRXBzdGVpbiB0byB1c2UgPGVuZGlhbi5oPiB3aXRoIEdOVSBsaWJjIGFuZCB0bworICogZGVmaW5lZCB0aGUgQk9PU1RfRU5ESUFOIG1hY3JvLgorICovCisKKyNpZm5kZWYgQk9PU1RfREVUQUlMX0VORElBTl9IUFAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0VORElBTl9IUFAKKworLy8KKy8vIFNwZWNpYWwgY2FzZXMgY29tZSBmaXJzdDoKKy8vCisjaWYgZGVmaW5lZCAoX19HTElCQ19fKQorLy8gR05VIGxpYmMgb2ZmZXJzIHRoZSBoZWxwZnVsIGhlYWRlciA8ZW5kaWFuLmg+IHdoaWNoIGRlZmluZXMKKy8vIF9fQllURV9PUkRFUgorIyBpbmNsdWRlIDxlbmRpYW4uaD4KKyMgaWYgKF9fQllURV9PUkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4pCisjICBkZWZpbmUgQk9PU1RfTElUVExFX0VORElBTgorIyBlbGlmIChfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOKQorIyAgZGVmaW5lIEJPT1NUX0JJR19FTkRJQU4KKyMgZWxpZiAoX19CWVRFX09SREVSID09IF9fUERQX0VORElBTikKKyMgIGRlZmluZSBCT09TVF9QRFBfRU5ESUFOCisjIGVsc2UKKyMgIGVycm9yIFVua25vd24gbWFjaGluZSBlbmRpYW5uZXNzIGRldGVjdGVkLgorIyBlbmRpZgorIyBkZWZpbmUgQk9PU1RfQllURV9PUkRFUiBfX0JZVEVfT1JERVIKKworI2VsaWYgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBcCisgICAgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgKF9fRHJhZ29uRmx5X18pCisvLworLy8gQlNEIGhhcyBlbmRpYW4uaCwgc2VlIGh0dHBzOi8vc3ZuLmJvb3N0Lm9yZy90cmFjL2Jvb3N0L3RpY2tldC82MDEzCisjICBpZiBkZWZpbmVkKF9fT3BlbkJTRF9fKQorIyAgaW5jbHVkZSA8bWFjaGluZS9lbmRpYW4uaD4KKyMgIGVsc2UKKyMgIGluY2x1ZGUgPHN5cy9lbmRpYW4uaD4KKyMgIGVuZGlmCisjIGlmIChfQllURV9PUkRFUiA9PSBfTElUVExFX0VORElBTikKKyMgIGRlZmluZSBCT09TVF9MSVRUTEVfRU5ESUFOCisjIGVsaWYgKF9CWVRFX09SREVSID09IF9CSUdfRU5ESUFOKQorIyAgZGVmaW5lIEJPT1NUX0JJR19FTkRJQU4KKyMgZWxpZiAoX0JZVEVfT1JERVIgPT0gX1BEUF9FTkRJQU4pCisjICBkZWZpbmUgQk9PU1RfUERQX0VORElBTgorIyBlbHNlCisjICBlcnJvciBVbmtub3duIG1hY2hpbmUgZW5kaWFubmVzcyBkZXRlY3RlZC4KKyMgZW5kaWYKKyMgZGVmaW5lIEJPT1NUX0JZVEVfT1JERVIgX0JZVEVfT1JERVIKKworI2VsaWYgZGVmaW5lZCggX19BTkRST0lEX18gKQorLy8gQWRyb2lkIHNwZWNpZmljIGNvZGUsIHNlZTogaHR0cHM6Ly9zdm4uYm9vc3Qub3JnL3RyYWMvYm9vc3QvdGlja2V0Lzc1MjgKKy8vIEhlcmUgd2UgY2FuIHVzZSBtYWNoaW5lL190eXBlcy5oLCBzZWU6CisvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYyMTI5NTEvZW5kaWFubmVzcy1vZi1hbmRyb2lkLW5kaworIyBpbmNsdWRlICJtYWNoaW5lL190eXBlcy5oIgorIyBpZmRlZiBfX0FSTUVCX18KKyMgIGRlZmluZSBCT09TVF9CSUdfRU5ESUFOCisjICBkZWZpbmUgQk9PU1RfQllURV9PUkRFUiA0MzIxCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9MSVRUTEVfRU5ESUFOCisjICBkZWZpbmUgQk9PU1RfQllURV9PUkRFUiAxMjM0CisjIGVuZGlmIC8vIF9fQVJNRUJfXworCisjZWxpZiBkZWZpbmVkKCBfWEJPWCApCisvLworLy8gWEJveCBpcyBhbHdheXMgYmlnIGVuZGlhbj8/CisvLworIyBkZWZpbmUgQk9PU1RfQklHX0VORElBTgorIyBkZWZpbmUgQk9PU1RfQllURV9PUkRFUiA0MzIxCisKKyNlbGlmIGRlZmluZWQoX0JJR19FTkRJQU4pICYmICFkZWZpbmVkKF9MSVRUTEVfRU5ESUFOKSB8fCBcCisgICAgZGVmaW5lZChfX0JJR19FTkRJQU5fXykgJiYgIWRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pIHx8IFwKKyAgICBkZWZpbmVkKF9fQklHRU5ESUFOX18pICYmICFkZWZpbmVkKF9fTElUVExFRU5ESUFOX18pIHx8IFwKKyAgICBkZWZpbmVkKF9TVExQX0JJR19FTkRJQU4pICYmICFkZWZpbmVkKF9TVExQX0xJVFRMRV9FTkRJQU4pCisjIGRlZmluZSBCT09TVF9CSUdfRU5ESUFOCisjIGRlZmluZSBCT09TVF9CWVRFX09SREVSIDQzMjEKKyNlbGlmIGRlZmluZWQoX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKF9CSUdfRU5ESUFOKSB8fCBcCisgICAgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU5fXykgJiYgIWRlZmluZWQoX19CSUdfRU5ESUFOX18pIHx8IFwKKyAgICBkZWZpbmVkKF9fTElUVExFRU5ESUFOX18pICYmICFkZWZpbmVkKF9fQklHRU5ESUFOX18pIHx8IFwKKyAgICBkZWZpbmVkKF9TVExQX0xJVFRMRV9FTkRJQU4pICYmICFkZWZpbmVkKF9TVExQX0JJR19FTkRJQU4pCisjIGRlZmluZSBCT09TVF9MSVRUTEVfRU5ESUFOCisjIGRlZmluZSBCT09TVF9CWVRFX09SREVSIDEyMzQKKyNlbGlmIGRlZmluZWQoX19zcGFyYykgfHwgZGVmaW5lZChfX3NwYXJjX18pIFwKKyAgIHx8IGRlZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSBcCisgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19ocHV4KSB8fCBkZWZpbmVkKF9faHBwYSkgXAorICAgfHwgZGVmaW5lZChfTUlQU0VCKSB8fCBkZWZpbmVkKF9QT1dFUikgXAorICAgfHwgZGVmaW5lZChfX3MzOTBfXykgfHwgZGVmaW5lZChfX0FSTUVCX18pCisjIGRlZmluZSBCT09TVF9CSUdfRU5ESUFOCisjIGRlZmluZSBCT09TVF9CWVRFX09SREVSIDQzMjEKKyNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hbHBoYV9fKSBcCisgICB8fCBkZWZpbmVkKF9faWE2NCkgfHwgZGVmaW5lZChfX2lhNjRfXykgXAorICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZpbmVkKF9NX0lBNjQpIFwKKyAgIHx8IGRlZmluZWQoX01fQUxQSEEpIHx8IGRlZmluZWQoX19hbWQ2NCkgXAorICAgfHwgZGVmaW5lZChfX2FtZDY0X18pIHx8IGRlZmluZWQoX01fQU1ENjQpIFwKKyAgIHx8IGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykgXAorICAgfHwgZGVmaW5lZChfTV9YNjQpIHx8IGRlZmluZWQoX19iZmluX18pIFwKKyAgIHx8IGRlZmluZWQoX19BUk1FTF9fKSBcCisgICB8fCAoZGVmaW5lZChfV0lOMzIpICYmIGRlZmluZWQoX19BUk1fXykgJiYgZGVmaW5lZChfTVNDX1ZFUikpIC8vIEFSTSBXaW5kb3dzIENFIGRvbid0IGRlZmluZSBhbnl0aGluZyByZWFzb25hYmx5IHVuaXF1ZSwgYnV0IHRoZXJlIGFyZSBubyBiaWctZW5kaWFuIFdpbmRvd3MgdmVyc2lvbnMgCisKKyMgZGVmaW5lIEJPT1NUX0xJVFRMRV9FTkRJQU4KKyMgZGVmaW5lIEJPT1NUX0JZVEVfT1JERVIgMTIzNAorI2Vsc2UKKyMgZXJyb3IgVGhlIGZpbGUgYm9vc3QvZGV0YWlsL2VuZGlhbi5ocHAgbmVlZHMgdG8gYmUgc2V0IHVwIGZvciB5b3VyIENQVSB0eXBlLgorI2VuZGlmCisKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2ZlbnYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvZmVudi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYxOGI1NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2ZlbnYuaHBwCkBAIC0wLDAgKzEsNzQgQEAKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBDb3B5cmlnaHQgKGMpIDIwMTAgICAgICBCcnljZSBMZWxiYWNoCisKKyAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisgICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9OT19GRU5WX0gpCisgICNlcnJvciBUaGlzIHBsYXRmb3JtIGRvZXMgbm90IGhhdmUgYSBmbG9hdGluZyBwb2ludCBlbnZpcm9ubWVudAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9ERVRBSUxfRkVOVl9IUFApCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9GRU5WX0hQUAorCisvKiBJZiB3ZSdyZSB1c2luZyBjbGFuZyArIGdsaWJjLCB3ZSBoYXZlIHRvIGdldCBoYWNreS4gCisgKiBTZWUgaHR0cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTY5MDcgKi8KKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykgICAgICAgJiYgIChfX2NsYW5nX21ham9yX18gPCAzKSAmJiAgICBcCisgICAgZGVmaW5lZChfX0dOVV9MSUJSQVJZX18pICYmIC8qIHVwIHRvIHZlcnNpb24gNSAqLyBcCisgICAgZGVmaW5lZChfX0dMSUJDX18pICYmICAgICAgICAgLyogdmVyc2lvbiA2ICsgKi8gXAorICAgICFkZWZpbmVkKF9GRU5WX0gpCisgICNkZWZpbmUgX0ZFTlZfSAorCisgICNpbmNsdWRlIDxmZWF0dXJlcy5oPgorICAjaW5jbHVkZSA8Yml0cy9mZW52Lmg+CisKKyAgZXh0ZXJuICJDIiB7CisgICAgZXh0ZXJuIGludCBmZWdldGV4Y2VwdGZsYWcgKGZleGNlcHRfdCosIGludCkgX19USFJPVzsKKyAgICBleHRlcm4gaW50IGZlc2V0ZXhjZXB0ZmxhZyAoX19jb25zdCBmZXhjZXB0X3QqLCBpbnQpIF9fVEhST1c7CisgICAgZXh0ZXJuIGludCBmZWNsZWFyZXhjZXB0IChpbnQpIF9fVEhST1c7CisgICAgZXh0ZXJuIGludCBmZXJhaXNlZXhjZXB0IChpbnQpIF9fVEhST1c7CisgICAgZXh0ZXJuIGludCBmZXRlc3RleGNlcHQgKGludCkgX19USFJPVzsKKyAgICBleHRlcm4gaW50IGZlZ2V0cm91bmQgKHZvaWQpIF9fVEhST1c7CisgICAgZXh0ZXJuIGludCBmZXNldHJvdW5kIChpbnQpIF9fVEhST1c7CisgICAgZXh0ZXJuIGludCBmZWdldGVudiAoZmVudl90KikgX19USFJPVzsKKyAgICBleHRlcm4gaW50IGZlc2V0ZW52IChfX2NvbnN0IGZlbnZfdCopIF9fVEhST1c7CisgICAgZXh0ZXJuIGludCBmZXVwZGF0ZWVudiAoX19jb25zdCBmZW52X3QqKSBfX1RIUk9XOworICAgIGV4dGVybiBpbnQgZmVob2xkZXhjZXB0IChmZW52X3QqKSBfX1RIUk9XOworCisgICAgI2lmZGVmIF9fVVNFX0dOVQorICAgICAgZXh0ZXJuIGludCBmZWVuYWJsZWV4Y2VwdCAoaW50KSBfX1RIUk9XOworICAgICAgZXh0ZXJuIGludCBmZWRpc2FibGVleGNlcHQgKGludCkgX19USFJPVzsKKyAgICAgIGV4dGVybiBpbnQgZmVnZXRleGNlcHQgKHZvaWQpIF9fVEhST1c7CisgICAgI2VuZGlmCisgIH0KKworICBuYW1lc3BhY2Ugc3RkIHsgbmFtZXNwYWNlIHRyMSB7CisgICAgdXNpbmcgOjpmZW52X3Q7CisgICAgdXNpbmcgOjpmZXhjZXB0X3Q7CisgICAgdXNpbmcgOjpmZWdldGV4Y2VwdGZsYWc7CisgICAgdXNpbmcgOjpmZXNldGV4Y2VwdGZsYWc7CisgICAgdXNpbmcgOjpmZWNsZWFyZXhjZXB0OworICAgIHVzaW5nIDo6ZmVyYWlzZWV4Y2VwdDsKKyAgICB1c2luZyA6OmZldGVzdGV4Y2VwdDsKKyAgICB1c2luZyA6OmZlZ2V0cm91bmQ7CisgICAgdXNpbmcgOjpmZXNldHJvdW5kOworICAgIHVzaW5nIDo6ZmVnZXRlbnY7CisgICAgdXNpbmcgOjpmZXNldGVudjsKKyAgICB1c2luZyA6OmZldXBkYXRlZW52OworICAgIHVzaW5nIDo6ZmVob2xkZXhjZXB0OworICB9IH0KKworI2Vsc2UgLyogaWYgd2UncmUgbm90IHVzaW5nIEdOVSdzIEMgc3RkbGliLCBmZW52Lmggc2hvdWxkIHdvcmsgd2l0aCBjbGFuZyAqLworICAjaWYgZGVmaW5lZChfX1NVTlBST19DQykgLyogbG9sIHN1bmNjICovCisgICAgI2luY2x1ZGUgPHN0ZGlvLmg+CisgICNlbmRpZgorICAKKyAgI2luY2x1ZGUgPGZlbnYuaD4KKworI2VuZGlmCisKKyNlbmRpZiAvKiBCT09TVF9ERVRBSUxfRkVOVl9IUFAgKi8KKyAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2luZGlyZWN0X3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pbmRpcmVjdF90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMmQ2NzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pbmRpcmVjdF90cmFpdHMuaHBwCkBAIC0wLDAgKzEsNDg3IEBACisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgSU5ESVJFQ1RfVFJBSVRTX0RXQTIwMDIxMzFfSFBQCisjIGRlZmluZSBJTkRJUkVDVF9UUkFJVFNfRFdBMjAwMjEzMV9IUFAKKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfcG9pbnRlci5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcG9pbnRlci5ocHA+CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hbmQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbm90LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCisjICBpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL2lzX2Z1bmN0aW9uX3JlZl90ZXN0ZXIuaHBwPgorIyAgZW5kaWYgCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBkZXRhaWwgeworCituYW1lc3BhY2UgaW5kaXJlY3RfdHJhaXRzIHsKKworIyAgaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19jb25zdCA6IG1wbDo6ZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fY29uc3Q8VCBjb25zdCY+IDogbXBsOjp0cnVlXworeworfTsKKworIyAgIGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgX01TQ19GVUxMX1ZFUiA8PSAxMzEwMjE0MCAvLyB2YzcuMDEgYWxwaGEgd29ya2Fyb3VuZAordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fY29uc3Q8VCBjb25zdCB2b2xhdGlsZSY+IDogbXBsOjp0cnVlXworeworfTsKKyMgICBlbmRpZiAKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX2Z1bmN0aW9uIDogbXBsOjpmYWxzZV8KK3sKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19mdW5jdGlvbjxUJj4gOiBpc19mdW5jdGlvbjxUPgoreworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcG9pbnRlcl90b19mdW5jdGlvbiA6IG1wbDo6ZmFsc2VfCit7Cit9OworCisvLyBUaGVyZSdzIG5vIHN1Y2ggdGhpbmcgYXMgYSBwb2ludGVyLXRvLWN2LWZ1bmN0aW9uLCBzbyB3ZSBkb24ndCBuZWVkCisvLyBzcGVjaWFsaXphdGlvbnMgZm9yIHRob3NlCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19wb2ludGVyX3RvX2Z1bmN0aW9uPFQqPiA6IGlzX2Z1bmN0aW9uPFQ+Cit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJfaW1wbCA6IG1wbDo6ZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJfaW1wbDxUJj4KKyAgICA6IGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyPHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZT4KK3sKK307CisKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyCisgICAgOiBpc19yZWZlcmVuY2VfdG9fbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJfaW1wbDxUPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxpc19yZWZlcmVuY2VfdG9fbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIsKFQpKQorfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX2Z1bmN0aW9uX3BvaW50ZXJfYXV4CisgICAgOiBtcGw6OmFuZF88CisgICAgICAgICAgaXNfcmVmZXJlbmNlPFQ+CisgICAgICAgICwgaXNfcG9pbnRlcl90b19mdW5jdGlvbjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZQorICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgPgorICAgICAgPgoreworICAgIC8vIFRoZXJlJ3Mgbm8gc3VjaCB0aGluZyBhcyBhIHBvaW50ZXItdG8tY3YtZnVuY3Rpb24sIHNvIHdlIGRvbid0IG5lZWQgc3BlY2lhbGl6YXRpb25zIGZvciB0aG9zZQorfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX2Z1bmN0aW9uX3BvaW50ZXIKKyAgICA6IG1wbDo6aWZfPAorICAgICAgICAgIGlzX3JlZmVyZW5jZV90b19mdW5jdGlvbjxUPgorICAgICAgICAsIG1wbDo6ZmFsc2VfCisgICAgICAgICwgaXNfcmVmZXJlbmNlX3RvX2Z1bmN0aW9uX3BvaW50ZXJfYXV4PFQ+CisgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19ub25fY29uc3QKKyAgICA6IG1wbDo6YW5kXzwKKyAgICAgICAgICBpc19yZWZlcmVuY2U8VD4KKyAgICAgICAgLCBtcGw6Om5vdF88CisgICAgICAgICAgICAgaXNfcmVmZXJlbmNlX3RvX2NvbnN0PFQ+CisgICAgICAgICAgPgorICAgICAgPgoreworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX3ZvbGF0aWxlIDogbXBsOjpmYWxzZV8KK3sKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b192b2xhdGlsZTxUIHZvbGF0aWxlJj4gOiBtcGw6OnRydWVfCit7Cit9OworCisjICAgaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiBfTVNDX0ZVTExfVkVSIDw9IDEzMTAyMTQwIC8vIHZjNy4wMSBhbHBoYSB3b3JrYXJvdW5kCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fdm9sYXRpbGU8VCBjb25zdCB2b2xhdGlsZSY+IDogbXBsOjp0cnVlXworeworfTsKKyMgICBlbmRpZiAKKworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fcG9pbnRlciA6IG1wbDo6ZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fcG9pbnRlcjxUKiY+IDogbXBsOjp0cnVlXworeworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX3BvaW50ZXI8VCogY29uc3QmPiA6IG1wbDo6dHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19wb2ludGVyPFQqIHZvbGF0aWxlJj4gOiBtcGw6OnRydWVfCit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fcG9pbnRlcjxUKiBjb25zdCB2b2xhdGlsZSY+IDogbXBsOjp0cnVlXworeworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX2NsYXNzCisgICAgOiBtcGw6OmFuZF88CisgICAgICAgICAgaXNfcmVmZXJlbmNlPFQ+CisgICAgICAgICwgaXNfY2xhc3M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jdjwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUKKyAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgID4KKyAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsaXNfcmVmZXJlbmNlX3RvX2NsYXNzLChUKSkKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3BvaW50ZXJfdG9fY2xhc3MKKyAgICA6IG1wbDo6YW5kXzwKKyAgICAgICAgICBpc19wb2ludGVyPFQ+CisgICAgICAgICwgaXNfY2xhc3M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jdjwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9wb2ludGVyPFQ+Ojp0eXBlCisgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICA+CisgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGlzX3BvaW50ZXJfdG9fY2xhc3MsKFQpKQorfTsKKworIyAgZWxzZQorCit1c2luZyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmRldGFpbDo6aXNfZnVuY3Rpb25fcmVmX3Rlc3Rlcl87CisKK3R5cGVkZWYgY2hhciAoJmlubmVyX3llc190eXBlKVszXTsKK3R5cGVkZWYgY2hhciAoJmlubmVyX25vX3R5cGUpWzJdOwordHlwZWRlZiBjaGFyICgmb3V0ZXJfbm9fdHlwZSlbMV07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBWPgorc3RydWN0IGlzX2NvbnN0X2hlbHAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgIGlzX2NvbnN0PFY+CisgICAgICAgICwgaW5uZXJfeWVzX3R5cGUKKyAgICAgICAgLCBpbm5lcl9ub190eXBlCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBWPgorc3RydWN0IGlzX3ZvbGF0aWxlX2hlbHAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgIGlzX3ZvbGF0aWxlPFY+CisgICAgICAgICwgaW5uZXJfeWVzX3R5cGUKKyAgICAgICAgLCBpbm5lcl9ub190eXBlCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBWPgorc3RydWN0IGlzX3BvaW50ZXJfaGVscAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgaXNfcG9pbnRlcjxWPgorICAgICAgICAsIGlubmVyX3llc190eXBlCisgICAgICAgICwgaW5uZXJfbm9fdHlwZQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVj4KK3N0cnVjdCBpc19jbGFzc19oZWxwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgICAgICBpc19jbGFzczxWPgorICAgICAgICAsIGlubmVyX3llc190eXBlCisgICAgICAgICwgaW5uZXJfbm9fdHlwZQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fZnVuY3Rpb25fYXV4Cit7CisgICAgc3RhdGljIFQgdDsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gc2l6ZW9mKGRldGFpbDo6aXNfZnVuY3Rpb25fcmVmX3Rlc3Rlcih0LDApKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKSk7CisgICAgdHlwZWRlZiBtcGw6OmJvb2xfPHZhbHVlPiB0eXBlOworIH07CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19mdW5jdGlvbgorICAgIDogbXBsOjppZl88aXNfcmVmZXJlbmNlPFQ+LCBpc19yZWZlcmVuY2VfdG9fZnVuY3Rpb25fYXV4PFQ+LCBtcGw6OmJvb2xfPGZhbHNlPiA+Ojp0eXBlCit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19wb2ludGVyX3RvX2Z1bmN0aW9uX2F1eAoreworICAgIHN0YXRpYyBUIHQ7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICBib29sLCB2YWx1ZQorICAgICAgICA9IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aXNfZnVuY3Rpb25fcHRyX3Rlc3Rlcih0KSkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpOworICAgIHR5cGVkZWYgbXBsOjpib29sXzx2YWx1ZT4gdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3BvaW50ZXJfdG9fZnVuY3Rpb24KKyAgICA6IG1wbDo6aWZfPGlzX3BvaW50ZXI8VD4sIGlzX3BvaW50ZXJfdG9fZnVuY3Rpb25fYXV4PFQ+LCBtcGw6OmJvb2xfPGZhbHNlPiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGlzX3BvaW50ZXJfdG9fZnVuY3Rpb24sKFQpKQorfTsKKworc3RydWN0IGZhbHNlX2hlbHBlcjEKK3sKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICBzdHJ1Y3QgYXBwbHkgOiBtcGw6OmZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFY+Cit0eXBlbmFtZSBpc19jb25zdF9oZWxwPFY+Ojp0eXBlIHJlZmVyZW5jZV90b19jb25zdF9oZWxwZXIoViYpOyAgICAKK291dGVyX25vX3R5cGUKK3JlZmVyZW5jZV90b19jb25zdF9oZWxwZXIoLi4uKTsKKworc3RydWN0IHRydWVfaGVscGVyMQoreworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgc3RhdGljIFQgdDsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgYm9vbCwgdmFsdWUKKyAgICAgICAgICAgID0gc2l6ZW9mKHJlZmVyZW5jZV90b19jb25zdF9oZWxwZXIodCkpID09IHNpemVvZihpbm5lcl95ZXNfdHlwZSkpOworICAgICAgICB0eXBlZGVmIG1wbDo6Ym9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDxib29sIHJlZiA9IHRydWU+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX2NvbnN0X2hlbHBlcjEgOiB0cnVlX2hlbHBlcjEKK3sKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX2NvbnN0X2hlbHBlcjE8ZmFsc2U+IDogZmFsc2VfaGVscGVyMQoreworfTsKKworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fY29uc3QKKyAgICA6IGlzX3JlZmVyZW5jZV90b19jb25zdF9oZWxwZXIxPGlzX3JlZmVyZW5jZTxUPjo6dmFsdWU+Ojp0ZW1wbGF0ZSBhcHBseTxUPgoreworfTsKKworCit0ZW1wbGF0ZSA8Ym9vbCByZWYgPSB0cnVlPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19ub25fY29uc3RfaGVscGVyMQoreworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgc3RhdGljIFQgdDsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgYm9vbCwgdmFsdWUKKyAgICAgICAgICAgID0gc2l6ZW9mKHJlZmVyZW5jZV90b19jb25zdF9oZWxwZXIodCkpID09IHNpemVvZihpbm5lcl9ub190eXBlKSk7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIG1wbDo6Ym9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX25vbl9jb25zdF9oZWxwZXIxPGZhbHNlPiA6IGZhbHNlX2hlbHBlcjEKK3sKK307CisKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX25vbl9jb25zdAorICAgIDogaXNfcmVmZXJlbmNlX3RvX25vbl9jb25zdF9oZWxwZXIxPGlzX3JlZmVyZW5jZTxUPjo6dmFsdWU+Ojp0ZW1wbGF0ZSBhcHBseTxUPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxpc19yZWZlcmVuY2VfdG9fbm9uX2NvbnN0LChUKSkKK307CisKKwordGVtcGxhdGUgPHR5cGVuYW1lIFY+Cit0eXBlbmFtZSBpc192b2xhdGlsZV9oZWxwPFY+Ojp0eXBlIHJlZmVyZW5jZV90b192b2xhdGlsZV9oZWxwZXIoViYpOyAgICAKK291dGVyX25vX3R5cGUKK3JlZmVyZW5jZV90b192b2xhdGlsZV9oZWxwZXIoLi4uKTsKKwordGVtcGxhdGUgPGJvb2wgcmVmID0gdHJ1ZT4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fdm9sYXRpbGVfaGVscGVyMQoreworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgc3RhdGljIFQgdDsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgYm9vbCwgdmFsdWUKKyAgICAgICAgICAgID0gc2l6ZW9mKHJlZmVyZW5jZV90b192b2xhdGlsZV9oZWxwZXIodCkpID09IHNpemVvZihpbm5lcl95ZXNfdHlwZSkpOworICAgICAgICB0eXBlZGVmIG1wbDo6Ym9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfcmVmZXJlbmNlX3RvX3ZvbGF0aWxlX2hlbHBlcjE8ZmFsc2U+IDogZmFsc2VfaGVscGVyMQoreworfTsKKworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fdm9sYXRpbGUKKyAgICA6IGlzX3JlZmVyZW5jZV90b192b2xhdGlsZV9oZWxwZXIxPGlzX3JlZmVyZW5jZTxUPjo6dmFsdWU+Ojp0ZW1wbGF0ZSBhcHBseTxUPgoreworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFY+Cit0eXBlbmFtZSBpc19wb2ludGVyX2hlbHA8Vj46OnR5cGUgcmVmZXJlbmNlX3RvX3BvaW50ZXJfaGVscGVyKFYmKTsKK291dGVyX25vX3R5cGUgcmVmZXJlbmNlX3RvX3BvaW50ZXJfaGVscGVyKC4uLik7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IHJlZmVyZW5jZV90b19wb2ludGVyX2ltcGwKK3sKKyAgICBzdGF0aWMgVCB0OworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUKKyAgICAgICAgPSAoc2l6ZW9mKChyZWZlcmVuY2VfdG9fcG9pbnRlcl9oZWxwZXIpKHQpKSA9PSBzaXplb2YoaW5uZXJfeWVzX3R5cGUpKQorICAgICAgICApOworICAgIAorICAgIHR5cGVkZWYgbXBsOjpib29sXzx2YWx1ZT4gdHlwZTsKK307CisgICAgCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fcG9pbnRlcgorICA6IG1wbDo6ZXZhbF9pZjxpc19yZWZlcmVuY2U8VD4sIHJlZmVyZW5jZV90b19wb2ludGVyX2ltcGw8VD4sIG1wbDo6ZmFsc2VfPjo6dHlwZQoreyAgIAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxpc19yZWZlcmVuY2VfdG9fcG9pbnRlciwoVCkpCit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fZnVuY3Rpb25fcG9pbnRlcgorICA6IG1wbDo6ZXZhbF9pZjxpc19yZWZlcmVuY2U8VD4sIGlzX3BvaW50ZXJfdG9fZnVuY3Rpb25fYXV4PFQ+LCBtcGw6OmZhbHNlXz46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsaXNfcmVmZXJlbmNlX3RvX2Z1bmN0aW9uX3BvaW50ZXIsKFQpKQorfTsKKworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl9oZWxwCisgICAgOiBtcGw6OmlmXzxpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcjxUPiwgaW5uZXJfeWVzX3R5cGUsIGlubmVyX25vX3R5cGU+Cit7fTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFY+Cit0eXBlbmFtZSBpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl9oZWxwPFY+Ojp0eXBlIG1lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2hlbHBlcihWJik7CitvdXRlcl9ub190eXBlIG1lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2hlbHBlciguLi4pOworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19wb2ludGVyX3RvX21lbWJlcl9mdW5jdGlvbl9hdXgKK3sKKyAgICBzdGF0aWMgVCB0OworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUKKyAgICAgICAgPSBzaXplb2YoKG1lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2hlbHBlcikodCkpID09IHNpemVvZihpbm5lcl95ZXNfdHlwZSkpOworICAgIHR5cGVkZWYgbXBsOjpib29sXzx2YWx1ZT4gdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV90b19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcgorICAgIDogbXBsOjppZl88CisgICAgICAgIGlzX3JlZmVyZW5jZTxUPgorICAgICAgICAsIGlzX3BvaW50ZXJfdG9fbWVtYmVyX2Z1bmN0aW9uX2F1eDxUPgorICAgICAgICAsIG1wbDo6Ym9vbF88ZmFsc2U+CisgICAgID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsaXNfcmVmZXJlbmNlX3RvX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLChUKSkKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBWPgordHlwZW5hbWUgaXNfY2xhc3NfaGVscDxWPjo6dHlwZSByZWZlcmVuY2VfdG9fY2xhc3NfaGVscGVyKFYgY29uc3Qgdm9sYXRpbGUmKTsKK291dGVyX25vX3R5cGUgcmVmZXJlbmNlX3RvX2NsYXNzX2hlbHBlciguLi4pOworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfdG9fY2xhc3MKK3sKKyAgICBzdGF0aWMgVCB0OworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUKKyAgICAgICAgPSAoaXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICAgICAmIChzaXplb2YocmVmZXJlbmNlX3RvX2NsYXNzX2hlbHBlcih0KSkgPT0gc2l6ZW9mKGlubmVyX3llc190eXBlKSkpCisgICAgICAgICk7CisgICAgdHlwZWRlZiBtcGw6OmJvb2xfPHZhbHVlPiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxpc19yZWZlcmVuY2VfdG9fY2xhc3MsKFQpKQorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFY+Cit0eXBlbmFtZSBpc19jbGFzc19oZWxwPFY+Ojp0eXBlIHBvaW50ZXJfdG9fY2xhc3NfaGVscGVyKFYgY29uc3Qgdm9sYXRpbGUqKTsKK291dGVyX25vX3R5cGUgcG9pbnRlcl90b19jbGFzc19oZWxwZXIoLi4uKTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcG9pbnRlcl90b19jbGFzcworeworICAgIHN0YXRpYyBUIHQ7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICBib29sLCB2YWx1ZQorICAgICAgICA9IChpc19wb2ludGVyPFQ+Ojp2YWx1ZQorICAgICAgICAgICAmJiBzaXplb2YocG9pbnRlcl90b19jbGFzc19oZWxwZXIodCkpID09IHNpemVvZihpbm5lcl95ZXNfdHlwZSkpCisgICAgICAgICk7CisgICAgdHlwZWRlZiBtcGw6OmJvb2xfPHZhbHVlPiB0eXBlOworfTsKKyMgIGVuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gCisKK30KKwordXNpbmcgbmFtZXNwYWNlIGluZGlyZWN0X3RyYWl0czsKKworfX0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpweXRob246OmRldGFpbAorCisjZW5kaWYgLy8gSU5ESVJFQ1RfVFJBSVRTX0RXQTIwMDIxMzFfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pbnRlcmxvY2tlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pbnRlcmxvY2tlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFkODI3MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2ludGVybG9ja2VkLmhwcApAQCAtMCwwICsxLDE4MCBAQAorI2lmbmRlZiBCT09TVF9ERVRBSUxfSU5URVJMT0NLRURfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0RFVEFJTF9JTlRFUkxPQ0tFRF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2ludGVybG9ja2VkLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgZGVmaW5lZCggQk9PU1RfVVNFX1dJTkRPV1NfSCApCisKKyMgaW5jbHVkZSA8d2luZG93cy5oPgorCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQgSW50ZXJsb2NrZWRJbmNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCBJbnRlcmxvY2tlZERlY3JlbWVudAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRSBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0UgSW50ZXJsb2NrZWRFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfQUREIEludGVybG9ja2VkRXhjaGFuZ2VBZGQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0VfUE9JTlRFUiBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFX1BPSU5URVIgSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIKKworI2VsaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorCisjaWYgX1dJTjMyX1dDRSA+PSAweDYwMAorCitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQoIGxvbmcgdm9sYXRpbGUgKiApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgX0ludGVybG9ja2VkRGVjcmVtZW50KCBsb25nIHZvbGF0aWxlICogKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZCggbG9uZyB2b2xhdGlsZSAqLCBsb25nICk7CisKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0lOQ1JFTUVOVCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCBfSW50ZXJsb2NrZWREZWNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSBfSW50ZXJsb2NrZWRFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfQUREIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkCisKKyNlbHNlCisvLyB1bmRlciBXaW5kb3dzIENFIHdlIHN0aWxsIGhhdmUgb2xkLXN0eWxlIEludGVybG9ja2VkKiBmdW5jdGlvbnMKKworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgSW50ZXJsb2NrZWRJbmNyZW1lbnQoIGxvbmcqICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBJbnRlcmxvY2tlZERlY3JlbWVudCggbG9uZyogKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCBsb25nKiwgbG9uZywgbG9uZyApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgSW50ZXJsb2NrZWRFeGNoYW5nZSggbG9uZyosIGxvbmcgKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIEludGVybG9ja2VkRXhjaGFuZ2VBZGQoIGxvbmcqLCBsb25nICk7CisKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0lOQ1JFTUVOVCBJbnRlcmxvY2tlZEluY3JlbWVudAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfREVDUkVNRU5UIEludGVybG9ja2VkRGVjcmVtZW50CisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSBJbnRlcmxvY2tlZEV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9BREQgSW50ZXJsb2NrZWRFeGNoYW5nZUFkZAorCisjZW5kaWYKKworIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRV9QT0lOVEVSKGRlc3QsZXhjaGFuZ2UsY29tcGFyZSkgXAorICAgICgodm9pZCopQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRSgobG9uZyopKGRlc3QpLChsb25nKShleGNoYW5nZSksKGxvbmcpKGNvbXBhcmUpKSkKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFX1BPSU5URVIoZGVzdCxleGNoYW5nZSkgXAorICAgICgodm9pZCopQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0UoKGxvbmcqKShkZXN0KSwobG9uZykoZXhjaGFuZ2UpKSkKKworI2VsaWYgZGVmaW5lZCggQk9PU1RfTVNWQyApIHx8IGRlZmluZWQoIEJPT1NUX0lOVEVMX1dJTiApCisKKyNpZiBkZWZpbmVkKCBCT09TVF9NU1ZDICkgJiYgQk9PU1RfTVNWQyA+PSAxNjAwCisKKyNpbmNsdWRlIDxpbnRyaW4uaD4KKworI2VsaWYgZGVmaW5lZCggX19DTFJDQUxMX1BVUkVfT1JfQ0RFQ0wgKQorCitleHRlcm4gIkMiIGxvbmcgX19DTFJDQUxMX1BVUkVfT1JfQ0RFQ0wgX0ludGVybG9ja2VkSW5jcmVtZW50KCBsb25nIHZvbGF0aWxlICogKTsKK2V4dGVybiAiQyIgbG9uZyBfX0NMUkNBTExfUFVSRV9PUl9DREVDTCBfSW50ZXJsb2NrZWREZWNyZW1lbnQoIGxvbmcgdm9sYXRpbGUgKiApOworZXh0ZXJuICJDIiBsb25nIF9fQ0xSQ0FMTF9QVVJFX09SX0NERUNMIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19DTFJDQUxMX1BVUkVfT1JfQ0RFQ0wgX0ludGVybG9ja2VkRXhjaGFuZ2UoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZyApOworZXh0ZXJuICJDIiBsb25nIF9fQ0xSQ0FMTF9QVVJFX09SX0NERUNMIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkKCBsb25nIHZvbGF0aWxlICosIGxvbmcgKTsKKworI2Vsc2UKKworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgX0ludGVybG9ja2VkSW5jcmVtZW50KCBsb25nIHZvbGF0aWxlICogKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIF9JbnRlcmxvY2tlZERlY3JlbWVudCggbG9uZyB2b2xhdGlsZSAqICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZywgbG9uZyApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgX0ludGVybG9ja2VkRXhjaGFuZ2UoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZyApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZyApOworCisjZW5kaWYKKworIyBwcmFnbWEgaW50cmluc2ljKCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQgKQorIyBwcmFnbWEgaW50cmluc2ljKCBfSW50ZXJsb2NrZWREZWNyZW1lbnQgKQorIyBwcmFnbWEgaW50cmluc2ljKCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UgKQorIyBwcmFnbWEgaW50cmluc2ljKCBfSW50ZXJsb2NrZWRFeGNoYW5nZSApCisjIHByYWdtYSBpbnRyaW5zaWMoIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkICkKKworIyBpZiBkZWZpbmVkKF9NX0lBNjQpIHx8IGRlZmluZWQoX01fQU1ENjQpCisKK2V4dGVybiAiQyIgdm9pZCogX19jZGVjbCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyKCB2b2lkKiB2b2xhdGlsZSAqLCB2b2lkKiwgdm9pZCogKTsKK2V4dGVybiAiQyIgdm9pZCogX19jZGVjbCBfSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoIHZvaWQqIHZvbGF0aWxlICosIHZvaWQqICk7CisKKyMgIHByYWdtYSBpbnRyaW5zaWMoIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIgKQorIyAgcHJhZ21hIGludHJpbnNpYyggX0ludGVybG9ja2VkRXhjaGFuZ2VQb2ludGVyICkKKworIyAgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0VfUE9JTlRFUiBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyCisjICBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfUE9JTlRFUiBfSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIKKworIyBlbHNlCisKKyMgIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFX1BPSU5URVIoZGVzdCxleGNoYW5nZSxjb21wYXJlKSBcCisgICAgKCh2b2lkKilCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFKChsb25nIHZvbGF0aWxlKikoZGVzdCksKGxvbmcpKGV4Y2hhbmdlKSwobG9uZykoY29tcGFyZSkpKQorIyAgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFX1BPSU5URVIoZGVzdCxleGNoYW5nZSkgXAorICAgICgodm9pZCopQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0UoKGxvbmcgdm9sYXRpbGUqKShkZXN0KSwobG9uZykoZXhjaGFuZ2UpKSkKKworIyBlbmRpZgorCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQgX0ludGVybG9ja2VkSW5jcmVtZW50CisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9ERUNSRU1FTlQgX0ludGVybG9ja2VkRGVjcmVtZW50CisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0UgX0ludGVybG9ja2VkRXhjaGFuZ2UKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFX0FERCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZAorCisjZWxpZiBkZWZpbmVkKCBXSU4zMiApIHx8IGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQoIF9fV0lOMzJfXyApIHx8IGRlZmluZWQoIF9fQ1lHV0lOX18gKQorCisjaWYgZGVmaW5lZChfX01JTkdXNjRfXykKKyNkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUCisjZWxzZQorI2RlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9JTVBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZW5kaWYKKworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitleHRlcm4gIkMiIEJPT1NUX0lOVEVSTE9DS0VEX0lNUE9SVCBsb25nIF9fc3RkY2FsbCBJbnRlcmxvY2tlZEluY3JlbWVudCggbG9uZyB2b2xhdGlsZSAqICk7CitleHRlcm4gIkMiIEJPT1NUX0lOVEVSTE9DS0VEX0lNUE9SVCBsb25nIF9fc3RkY2FsbCBJbnRlcmxvY2tlZERlY3JlbWVudCggbG9uZyB2b2xhdGlsZSAqICk7CitleHRlcm4gIkMiIEJPT1NUX0lOVEVSTE9DS0VEX0lNUE9SVCBsb25nIF9fc3RkY2FsbCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nLCBsb25nICk7CitleHRlcm4gIkMiIEJPT1NUX0lOVEVSTE9DS0VEX0lNUE9SVCBsb25nIF9fc3RkY2FsbCBJbnRlcmxvY2tlZEV4Y2hhbmdlKCBsb25nIHZvbGF0aWxlICosIGxvbmcgKTsKK2V4dGVybiAiQyIgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUIGxvbmcgX19zdGRjYWxsIEludGVybG9ja2VkRXhjaGFuZ2VBZGQoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZyApOworCisjIGlmIGRlZmluZWQoX01fSUE2NCkgfHwgZGVmaW5lZChfTV9BTUQ2NCkKK2V4dGVybiAiQyIgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUIHZvaWQqIF9fc3RkY2FsbCBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIoIHZvaWQqIHZvbGF0aWxlICosIHZvaWQqLCB2b2lkKiApOworZXh0ZXJuICJDIiBCT09TVF9JTlRFUkxPQ0tFRF9JTVBPUlQgdm9pZCogX19zdGRjYWxsIEludGVybG9ja2VkRXhjaGFuZ2VQb2ludGVyKCB2b2lkKiB2b2xhdGlsZSAqLCB2b2lkKiApOworIyBlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfSU5DUkVNRU5UIDo6bmRuYm9vc3Q6OmRldGFpbDo6SW50ZXJsb2NrZWRJbmNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCA6Om5kbmJvb3N0OjpkZXRhaWw6OkludGVybG9ja2VkRGVjcmVtZW50CisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFIDo6bmRuYm9vc3Q6OmRldGFpbDo6SW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFIDo6bmRuYm9vc3Q6OmRldGFpbDo6SW50ZXJsb2NrZWRFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfQUREIDo6bmRuYm9vc3Q6OmRldGFpbDo6SW50ZXJsb2NrZWRFeGNoYW5nZUFkZAorCisjIGlmIGRlZmluZWQoX01fSUE2NCkgfHwgZGVmaW5lZChfTV9BTUQ2NCkKKyMgIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFX1BPSU5URVIgOjpuZG5ib29zdDo6ZGV0YWlsOjpJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIKKyMgIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9QT0lOVEVSIDo6bmRuYm9vc3Q6OmRldGFpbDo6SW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIKKyMgZWxzZQorIyAgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0VfUE9JTlRFUihkZXN0LGV4Y2hhbmdlLGNvbXBhcmUpIFwKKyAgICAoKHZvaWQqKUJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UoKGxvbmcgdm9sYXRpbGUqKShkZXN0KSwobG9uZykoZXhjaGFuZ2UpLChsb25nKShjb21wYXJlKSkpCisjICBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfUE9JTlRFUihkZXN0LGV4Y2hhbmdlKSBcCisgICAgKCh2b2lkKilCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSgobG9uZyB2b2xhdGlsZSopKGRlc3QpLChsb25nKShleGNoYW5nZSkpKQorIyBlbmRpZgorCisjZWxzZQorCisjIGVycm9yICJJbnRlcmxvY2tlZCBpbnRyaW5zaWNzIG5vdCBhdmFpbGFibGUiCisKKyNlbmRpZgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9ERVRBSUxfSU5URVJMT0NLRURfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pc19mdW5jdGlvbl9yZWZfdGVzdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2lzX2Z1bmN0aW9uX3JlZl90ZXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4MzAxZWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pc19mdW5jdGlvbl9yZWZfdGVzdGVyLmhwcApAQCAtMCwwICsxLDEzNiBAQAorCisvLyAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gQWxla3NleSBHdXJ0b3ZveSwgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX0RFVEFJTF9JU19GVU5DVElPTl9SRUZfVEVTVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9ERVRBSUxfSVNfRlVOQ1RJT05fUkVGX1RFU1RFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcCIKKworI2lmIGRlZmluZWQoQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgIm5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcCIKKyMgICBpbmNsdWRlICJuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwIgorIyAgIGluY2x1ZGUgIm5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHAiCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBkZXRhaWwgeworbmFtZXNwYWNlIGlzX2Z1bmN0aW9uX3JlZl90ZXN0ZXJfIHsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CituZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgQk9PU1RfVFRfREVDTCBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFQmIC4uLik7CisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUpCisvLyBwcmVwcm9jZXNzb3ItZ2VuZXJhdGVkIHBhcnQsIGRvbid0IGVkaXQgYnkgaGFuZCEKKwordGVtcGxhdGUgPGNsYXNzIFI+CituZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlIGlzX2Z1bmN0aW9uX3JlZl90ZXN0ZXIoUiAoJikoKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDggPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDkgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTApLCBpbnQpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUixjbGFzcyBUMCxjbGFzcyBUMSxjbGFzcyBUMixjbGFzcyBUMyxjbGFzcyBUNCxjbGFzcyBUNSxjbGFzcyBUNixjbGFzcyBUNyxjbGFzcyBUOCxjbGFzcyBUOSxjbGFzcyBUMTAsY2xhc3MgVDExID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMpLCBpbnQpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUixjbGFzcyBUMCxjbGFzcyBUMSxjbGFzcyBUMixjbGFzcyBUMyxjbGFzcyBUNCxjbGFzcyBUNSxjbGFzcyBUNixjbGFzcyBUNyxjbGFzcyBUOCxjbGFzcyBUOSxjbGFzcyBUMTAsY2xhc3MgVDExLGNsYXNzIFQxMixjbGFzcyBUMTMsY2xhc3MgVDE0ID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUsY2xhc3MgVDE2ID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYpLCBpbnQpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUixjbGFzcyBUMCxjbGFzcyBUMSxjbGFzcyBUMixjbGFzcyBUMyxjbGFzcyBUNCxjbGFzcyBUNSxjbGFzcyBUNixjbGFzcyBUNyxjbGFzcyBUOCxjbGFzcyBUOSxjbGFzcyBUMTAsY2xhc3MgVDExLGNsYXNzIFQxMixjbGFzcyBUMTMsY2xhc3MgVDE0LGNsYXNzIFQxNSxjbGFzcyBUMTYsY2xhc3MgVDE3ID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUsY2xhc3MgVDE2LGNsYXNzIFQxNyxjbGFzcyBUMTggPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4KSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUsY2xhc3MgVDE2LGNsYXNzIFQxNyxjbGFzcyBUMTgsY2xhc3MgVDE5ID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkpLCBpbnQpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUixjbGFzcyBUMCxjbGFzcyBUMSxjbGFzcyBUMixjbGFzcyBUMyxjbGFzcyBUNCxjbGFzcyBUNSxjbGFzcyBUNixjbGFzcyBUNyxjbGFzcyBUOCxjbGFzcyBUOSxjbGFzcyBUMTAsY2xhc3MgVDExLGNsYXNzIFQxMixjbGFzcyBUMTMsY2xhc3MgVDE0LGNsYXNzIFQxNSxjbGFzcyBUMTYsY2xhc3MgVDE3LGNsYXNzIFQxOCxjbGFzcyBUMTksY2xhc3MgVDIwID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUsY2xhc3MgVDE2LGNsYXNzIFQxNyxjbGFzcyBUMTgsY2xhc3MgVDE5LGNsYXNzIFQyMCxjbGFzcyBUMjEgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUsY2xhc3MgVDE2LGNsYXNzIFQxNyxjbGFzcyBUMTgsY2xhc3MgVDE5LGNsYXNzIFQyMCxjbGFzcyBUMjEsY2xhc3MgVDIyID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIpLCBpbnQpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUixjbGFzcyBUMCxjbGFzcyBUMSxjbGFzcyBUMixjbGFzcyBUMyxjbGFzcyBUNCxjbGFzcyBUNSxjbGFzcyBUNixjbGFzcyBUNyxjbGFzcyBUOCxjbGFzcyBUOSxjbGFzcyBUMTAsY2xhc3MgVDExLGNsYXNzIFQxMixjbGFzcyBUMTMsY2xhc3MgVDE0LGNsYXNzIFQxNSxjbGFzcyBUMTYsY2xhc3MgVDE3LGNsYXNzIFQxOCxjbGFzcyBUMTksY2xhc3MgVDIwLGNsYXNzIFQyMSxjbGFzcyBUMjIsY2xhc3MgVDIzID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzKSwgaW50KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsY2xhc3MgVDAsY2xhc3MgVDEsY2xhc3MgVDIsY2xhc3MgVDMsY2xhc3MgVDQsY2xhc3MgVDUsY2xhc3MgVDYsY2xhc3MgVDcsY2xhc3MgVDgsY2xhc3MgVDksY2xhc3MgVDEwLGNsYXNzIFQxMSxjbGFzcyBUMTIsY2xhc3MgVDEzLGNsYXNzIFQxNCxjbGFzcyBUMTUsY2xhc3MgVDE2LGNsYXNzIFQxNyxjbGFzcyBUMTgsY2xhc3MgVDE5LGNsYXNzIFQyMCxjbGFzcyBUMjEsY2xhc3MgVDIyLGNsYXNzIFQyMyxjbGFzcyBUMjQgPgorbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19mdW5jdGlvbl9yZWZfdGVzdGVyKFIgKCYpKFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0KSwgaW50KTsKKworI2Vsc2UKKworI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCAoMCwgMjUsICJuZG5ib29zdC9kZXRhaWwvaXNfZnVuY3Rpb25fcmVmX3Rlc3Rlci5ocHAiKSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisjZW5kaWYgLy8gQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgcHl0aG9uCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfREVUQUlMX0lTX0ZVTkNUSU9OX1JFRl9URVNURVJfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBpIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihpKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhpLGNsYXNzIFQpID4KK25kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfZnVuY3Rpb25fcmVmX3Rlc3RlcihSICgmKShCT09TVF9QUF9FTlVNX1BBUkFNUyhpLFQpKSwgaW50KTsKKworI3VuZGVmIGkKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvaXNfaW5jcmVtZW50YWJsZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pc19pbmNyZW1lbnRhYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTVjY2I2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvaXNfaW5jcmVtZW50YWJsZS5ocHAKQEAgLTAsMCArMSwxMzQgQEAKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzCisvLyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorI2lmbmRlZiBJU19JTkNSRU1FTlRBQkxFX0RXQTIwMDQxNV9IUFAKKyMgZGVmaW5lIElTX0lOQ1JFTUVOVEFCTEVfRFdBMjAwNDE1X0hQUAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90ZW1wbGF0ZV9hcml0eV9zcGVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworLy8gTXVzdCBiZSB0aGUgbGFzdCBpbmNsdWRlCisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBkZXRhaWwgeyAKKworLy8gaXNfaW5jcmVtZW50YWJsZTxUPiBtZXRhZnVuY3Rpb24KKy8vCisvLyBSZXF1aXJlczogR2l2ZW4geCBvZiB0eXBlIFQmLCBpZiB0aGUgZXhwcmVzc2lvbiArK3ggaXMgd2VsbC1mb3JtZWQKKy8vIGl0IG11c3QgaGF2ZSBjb21wbGV0ZSB0eXBlOyBvdGhlcndpc2UsIGl0IG11c3QgbmVpdGhlciBiZSBhbWJpZ3VvdXMKKy8vIG5vciB2aW9sYXRlIGFjY2Vzcy4KKworLy8gVGhpcyBuYW1lc3BhY2UgZW5zdXJlcyB0aGF0IEFETCBkb2Vzbid0IG1lc3MgdGhpbmdzIHVwLgorbmFtZXNwYWNlIGlzX2luY3JlbWVudGFibGVfCit7CisgIC8vIGEgdHlwZSByZXR1cm5lZCBmcm9tIG9wZXJhdG9yKysgd2hlbiBubyBpbmNyZW1lbnQgaXMgZm91bmQgaW4gdGhlCisgIC8vIHR5cGUncyBvd24gbmFtZXNwYWNlCisgIHN0cnVjdCB0YWcge307CisgIAorICAvLyBhbnkgc29ha3MgdXAgaW1wbGljaXQgY29udmVyc2lvbnMgYW5kIG1ha2VzIHRoZSBmb2xsb3dpbmcKKyAgLy8gb3BlcmF0b3IrKyBsZXNzLXByZWZlcnJlZCB0aGFuIGFueSBvdGhlciBzdWNoIG9wZXJhdG9yIHRoYXQKKyAgLy8gbWlnaHQgYmUgZm91bmQgdmlhIEFETC4KKyAgc3RydWN0IGFueSB7IHRlbXBsYXRlIDxjbGFzcyBUPiBhbnkoVCBjb25zdCYpOyB9OworCisgIC8vIFRoaXMgaXMgYSBsYXN0LXJlc29ydCBvcGVyYXRvcisrIGZvciB3aGVuIG5vbmUgb3RoZXIgaXMgZm91bmQKKyMgaWYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPT0gNCkgJiYgX19HTlVDX01JTk9SX18gPT0gMCAmJiBfX0dOVUNfUEFUQ0hMRVZFTF9fID09IDIKKyAgCit9CisKK25hbWVzcGFjZSBpc19pbmNyZW1lbnRhYmxlXzIKK3sKKyAgaXNfaW5jcmVtZW50YWJsZV86OnRhZyBvcGVyYXRvcisrKGlzX2luY3JlbWVudGFibGVfOjphbnkgY29uc3QmKTsKKyAgaXNfaW5jcmVtZW50YWJsZV86OnRhZyBvcGVyYXRvcisrKGlzX2luY3JlbWVudGFibGVfOjphbnkgY29uc3QmLGludCk7Cit9Cit1c2luZyBuYW1lc3BhY2UgaXNfaW5jcmVtZW50YWJsZV8yOworCituYW1lc3BhY2UgaXNfaW5jcmVtZW50YWJsZV8KK3sKKyAgCisjIGVsc2UKKyAgCisgIHRhZyBvcGVyYXRvcisrKGFueSBjb25zdCYpOworICB0YWcgb3BlcmF0b3IrKyhhbnkgY29uc3QmLGludCk7CisgIAorIyBlbmRpZiAKKworIyBpZiBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIEJPT1NUX1RFU1RFRF9BVCgweDMyMDIpKSBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKQorIyAgZGVmaW5lIEJPT1NUX2NvbW1hKGEsYikgKGEpCisjIGVsc2UgCisgIC8vIEluIGNhc2UgYW4gb3BlcmF0b3IrKyBpcyBmb3VuZCB0aGF0IHJldHVybnMgdm9pZCwgd2UnbGwgdXNlICsreCwwCisgIHRhZyBvcGVyYXRvciwodGFnLGludCk7ICAKKyMgIGRlZmluZSBCT09TVF9jb21tYShhLGIpIChhLGIpCisjIGVuZGlmIAorCisjIGlmIGRlZmluZWQoQk9PU1RfTVNWQykKKyMgIHByYWdtYSB3YXJuaW5nKHB1c2gpCisjICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQ5MTMpIC8vIFdhcm5pbmcgYWJvdXQgb3BlcmF0b3IsCisjIGVuZGlmIAorCisgIC8vIHR3byBjaGVjayBvdmVybG9hZHMgaGVscCB1cyBpZGVudGlmeSB3aGljaCBvcGVyYXRvcisrIHdhcyBwaWNrZWQKKyAgY2hhciAoJiBjaGVja18odGFnKSApWzJdOworICAKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIGNoYXIgY2hlY2tfKFQgY29uc3QmKTsKKyAgCisKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIHN0cnVjdCBpbXBsCisgIHsKKyAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PFQ+Ojp0eXBlJiB4OworCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgICAgYm9vbAorICAgICAgICAsIHZhbHVlID0gc2l6ZW9mKGlzX2luY3JlbWVudGFibGVfOjpjaGVja18oQk9PU1RfY29tbWEoKyt4LDApKSkgPT0gMQorICAgICAgKTsKKyAgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgc3RydWN0IHBvc3RmaXhfaW1wbAorICB7CisgICAgICBzdGF0aWMgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjxUPjo6dHlwZSYgeDsKKworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgIGJvb2wKKyAgICAgICAgLCB2YWx1ZSA9IHNpemVvZihpc19pbmNyZW1lbnRhYmxlXzo6Y2hlY2tfKEJPT1NUX2NvbW1hKHgrKywwKSkpID09IDEKKyAgICAgICk7CisgIH07CisKKyMgaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgcHJhZ21hIHdhcm5pbmcocG9wKQorIyBlbmRpZiAKKworfQorCisjIHVuZGVmIEJPT1NUX2NvbW1hCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IAorc3RydWN0IGlzX2luY3JlbWVudGFibGUgCitCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoOjpuZG5ib29zdDo6ZGV0YWlsOjppc19pbmNyZW1lbnRhYmxlXzo6aW1wbDxUPjo6dmFsdWUpCit7IAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woOjpuZG5ib29zdDo6ZGV0YWlsOjppc19pbmNyZW1lbnRhYmxlXzo6aW1wbDxUPjo6dmFsdWUpCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGlzX2luY3JlbWVudGFibGUsKFQpKQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gCitzdHJ1Y3QgaXNfcG9zdGZpeF9pbmNyZW1lbnRhYmxlIAorQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfaW5jcmVtZW50YWJsZV86OmltcGw8VD46OnZhbHVlKQoreyAKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfaW5jcmVtZW50YWJsZV86OnBvc3RmaXhfaW1wbDxUPjo6dmFsdWUpCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGlzX3Bvc3RmaXhfaW5jcmVtZW50YWJsZSwoVCkpCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSwgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19pbmNyZW1lbnRhYmxlKQorQk9PU1RfVFRfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSwgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19wb3N0Zml4X2luY3JlbWVudGFibGUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gSVNfSU5DUkVNRU5UQUJMRV9EV0EyMDA0MTVfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNmYjVhYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2l0ZXJhdG9yLmhwcApAQCAtMCwwICsxLDQ5NCBAQAorLy8gKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBCb29zdCB2ZXJzaW9ucyBvZgorLy8KKy8vICAgIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPD46Oml0ZXJhdG9yX2NhdGVnb3J5CisvLyAgICBzdGQ6Oml0ZXJhdG9yX3RyYWl0czw+OjpkaWZmZXJlbmNlX3R5cGUKKy8vICAgIHN0ZDo6ZGlzdGFuY2UoKQorLy8KKy8vIC4uLmZvciBhbGwgY29tcGlsZXJzIGFuZCBpdGVyYXRvcnMKKy8vCisvLyBBZGRpdGlvbmFsbHksIGlmIFggaXMgYSBwb2ludGVyCisvLyAgICBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxYPjo6cG9pbnRlcgorCisvLyBPdGhlcndpc2UsIGlmIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24gaXMgc3VwcG9ydGVkIG9yIFggaXMgbm90IGEgcG9pbnRlcgorLy8gICAgc3RkOjppdGVyYXRvcl90cmFpdHM8WD46OnZhbHVlX3R5cGUKKy8vICAgIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPFg+Ojpwb2ludGVyCisvLyAgICBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxYPjo6cmVmZXJlbmNlCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisvLyBSZXZpc2lvbiBIaXN0b3J5CisvLyAwNCBNYXIgMjAwMSAtIE1vcmUgYXR0ZW1wdGVkIGZpeGVzIGZvciBJbnRlbCBDKysgKERhdmlkIEFicmFoYW1zKQorLy8gMDMgTWFyIDIwMDEgLSBQdXQgYWxsIGltcGxlbWVudGF0aW9uIGludG8gbmFtZXNwYWNlCisvLyAgICAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0c18uIFNvbWUgcHJvZ3Jlc3MgbWFkZSBvbiBmaXhlcworLy8gICAgICAgICAgICAgICBmb3IgSW50ZWwgY29tcGlsZXIuIChEYXZpZCBBYnJhaGFtcykKKy8vIDAyIE1hciAyMDAxIC0gQ2hhbmdlZCBCT09TVF9NU1ZDIHRvIEJPT1NUX01TVkNfU1REX0lURVJBVE9SIGluIGEgZmV3CisvLyAgICAgICAgICAgICAgIHBsYWNlcy4gKEplcmVteSBTaWVrKQorLy8gMTkgRmViIDIwMDEgLSBJbXByb3ZlZCB3b3JrYXJvdW5kcyBmb3Igc3RvY2sgTVNWQzY7IHVzZSB5ZXNfdHlwZSBhbmQKKy8vICAgICAgICAgICAgICAgbm9fdHlwZSBmcm9tIHR5cGVfdHJhaXRzLmhwcDsgc3RvcHBlZCB0cnlpbmcgdG8gcmVtb3ZlX2N2CisvLyAgICAgICAgICAgICAgIGJlZm9yZSBkZXRlY3RpbmcgaXNfcG9pbnRlciwgaW4gaG9ub3Igb2YgdGhlIG5ldyB0eXBlX3RyYWl0cworLy8gICAgICAgICAgICAgICBzZW1hbnRpY3MuIChEYXZpZCBBYnJhaGFtcykKKy8vIDEzIEZlYiAyMDAxIC0gTWFrZSBpdCB3b3JrIHdpdGggbmVhcmx5IGFsbCBzdGFuZGFyZC1jb25mb3JtaW5nIGl0ZXJhdG9ycworLy8gICAgICAgICAgICAgICB1bmRlciByYXcgVkM2LiBUaGUgb25lIGNhdGVnb3J5IHJlbWFpbmluZyB3aGljaCB3aWxsIGZhaWwgaXMKKy8vICAgICAgICAgICAgICAgdGhhdCBvZiBpdGVyYXRvcnMgZGVyaXZlZCBmcm9tIHN0ZDo6aXRlcmF0b3IgYnV0IG5vdAorLy8gICAgICAgICAgICAgICBuZG5ib29zdDo6aXRlcmF0b3IgYW5kIHdoaWNoIHJlZGVmaW5lIGRpZmZlcmVuY2VfdHlwZS4KKy8vIDExIEZlYiAyMDAxIC0gQ2xlYW4gYXdheSBjb2RlIHdoaWNoIGNhbiBuZXZlciBiZSB1c2VkIChEYXZpZCBBYnJhaGFtcykKKy8vIDA5IEZlYiAyMDAxIC0gQWx3YXlzIGhhdmUgYSBkZWZpbml0aW9uIGZvciBlYWNoIHRyYWl0cyBtZW1iZXIsIGV2ZW4gaWYgaXQKKy8vICAgICAgICAgICAgICAgY2FuJ3QgYmUgcHJvcGVybHkgZGVkdWNlZC4gVGhlc2Ugd2lsbCBiZSBpbmNvbXBsZXRlIHR5cGVzIGluCisvLyAgICAgICAgICAgICAgIHNvbWUgY2FzZXMgKHVuZGVmaW5lZDx2b2lkPiksIGJ1dCBpdCBoZWxwcyBzdXBwcmVzcyBNU1ZDIGVycm9ycworLy8gICAgICAgICAgICAgICBlbHNld2hlcmUgKERhdmlkIEFicmFoYW1zKQorLy8gMDcgRmViIDIwMDEgLSBTdXBwb3J0IGZvciBtb3JlIG9mIHRoZSB0cmFpdHMgbWVtYmVycyB3aGVyZSBwb3NzaWJsZSwgbWFraW5nCisvLyAgICAgICAgICAgICAgIHRoaXMgdXNlZnVsIGFzIGEgcmVwbGFjZW1lbnQgZm9yIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPFQ+IHdoZW4KKy8vICAgICAgICAgICAgICAgdXNlZCBhcyBhIGRlZmF1bHQgdGVtcGxhdGUgcGFyYW1ldGVyLgorLy8gMDYgRmViIDIwMDEgLSBSZW1vdmVkIHVzZWxlc3MgI2luY2x1ZGVzIG9mIHN0YW5kYXJkIGxpYnJhcnkgaGVhZGVycworLy8gICAgICAgICAgICAgICAoRGF2aWQgQWJyYWhhbXMpCisKKyNpZm5kZWYgSVRFUkFUT1JfRFdBMTIyNjAwX0hQUF8KKyMgZGVmaW5lIElURVJBVE9SX0RXQTEyMjYwMF9IUFBfCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8aXRlcmF0b3I+CisKKy8vIFNUTFBvcnQgNC4wIGFuZCBiZXRhcyBoYXZlIGEgYnVnIHdoZW4gZGVidWdnaW5nIGlzIGVuYWJsZWQgYW5kIHRoZXJlIGlzIG5vCisvLyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uOiBpbnN0ZWFkIG9mIGFuIGl0ZXJhdG9yX2NhdGVnb3J5IHR5cGVkZWYsIHRoZSBzdGFuZGFyZAorLy8gY29udGFpbmVyIGl0ZXJhdG9ycyBoYXZlIF9JdGVyYXRvcl9jYXRlZ29yeS4KKy8vCisvLyBBbHNvLCB3aGV0aGVyIGRlYnVnZ2luZyBpcyBlbmFibGVkIG9yIG5vdCwgdGhlcmUgaXMgYSBicm9rZW4gc3BlY2lhbGl6YXRpb24KKy8vIG9mIHN0ZDo6aXRlcmF0b3I8b3V0cHV0X2l0ZXJhdG9yX3RhZyx2b2lkLHZvaWQsdm9pZCx2b2lkPiB3aGljaCBoYXMgbm8KKy8vIHR5cGVkZWZzIGJ1dCBpdGVyYXRvcl9jYXRlZ29yeS4KKyMgaWYgZGVmaW5lZChfX1NHSV9TVExfUE9SVCkKKworIyAgaWYgKF9fU0dJX1NUTF9QT1JUIDw9IDB4NDEwKSAmJiAhZGVmaW5lZChfX1NUTF9DTEFTU19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiBkZWZpbmVkKF9fU1RMX0RFQlVHKQorIyAgIGRlZmluZSBCT09TVF9CQURfQ09OVEFJTkVSX0lURVJBVE9SX0NBVEVHT1JZX1RZUEVERUYKKyMgIGVuZGlmCisKKyMgIGRlZmluZSBCT09TVF9CQURfT1VUUFVUX0lURVJBVE9SX1NQRUNJQUxJWkFUSU9OCisKKyMgZW5kaWYgLy8gU1RMUG9ydCA8PSA0LjFiNCAmJiBubyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uCisKKyMgaWYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0lURVJBVE9SX1RSQUlUUykgICAgICAgICAgICAgXAorICAmJiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICYmICFkZWZpbmVkKEJPT1NUX01TVkNfU1REX0lURVJBVE9SKQorICAgIAorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIERlZmluZSBhIG5ldyB0ZW1wbGF0ZSBzbyBpdCBjYW4gYmUgc3BlY2lhbGl6ZWQKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBpdGVyYXRvcl90cmFpdHMKKyAgICA6IHN0ZDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPgore307Cit1c2luZyBzdGQ6OmRpc3RhbmNlOworCit9fSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmRldGFpbAorCisjIGVsc2UKKworIyAgaWYgICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pICBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVNWQ19TVERfSVRFUkFUT1IpCisKKy8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgZXZlcnl0aGluZyBjb25mb3JtcyBleGNlcHQgQk9PU1RfTk9fU1REX0lURVJBVE9SX1RSQUlUUworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gUm9ndWUgV2F2ZSBTdGFuZGFyZCBMaWJyYXJ5IGZvb2xzIGl0c2VsZiBpbnRvIHRoaW5raW5nIHBhcnRpYWwKKy8vIHNwZWNpYWxpemF0aW9uIGlzIG1pc3Npbmcgb24gc29tZSBwbGF0Zm9ybXMgKGUuZy4gU3VuKSwgc28gZmFpbHMgdG8KKy8vIHN1cHBseSBpdGVyYXRvcl90cmFpdHMhCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CitzdHJ1Y3QgaXRlcmF0b3JfdHJhaXRzCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3I6OnJlZmVyZW5jZSByZWZlcmVuY2U7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6cG9pbnRlciBwb2ludGVyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3I6OmRpZmZlcmVuY2VfdHlwZSBkaWZmZXJlbmNlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6aXRlcmF0b3JfY2F0ZWdvcnkgaXRlcmF0b3JfY2F0ZWdvcnk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpdGVyYXRvcl90cmFpdHM8VCo+Cit7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiBUJiByZWZlcmVuY2U7CisgICAgdHlwZWRlZiBUKiBwb2ludGVyOworICAgIHR5cGVkZWYgc3RkOjpwdHJkaWZmX3QgZGlmZmVyZW5jZV90eXBlOworICAgIHR5cGVkZWYgc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZyBpdGVyYXRvcl9jYXRlZ29yeTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGl0ZXJhdG9yX3RyYWl0czxUIGNvbnN0Kj4KK3sKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKKyAgICB0eXBlZGVmIFQgY29uc3QmIHJlZmVyZW5jZTsKKyAgICB0eXBlZGVmIFQgY29uc3QqIHBvaW50ZXI7CisgICAgdHlwZWRlZiBzdGQ6OnB0cmRpZmZfdCBkaWZmZXJlbmNlX3R5cGU7CisgICAgdHlwZWRlZiBzdGQ6OnJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnIGl0ZXJhdG9yX2NhdGVnb3J5OworfTsKKworfX0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpkZXRhaWwKKworIyAgZWxzZQorCisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jb25zdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorCisjIGlmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwPgorIyBlbmRpZgorIyBpZmRlZiBCT09TVF9CQURfT1VUUFVUX0lURVJBVE9SX1NQRUNJQUxJWkFUSU9OCisjICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19iYXNlX2FuZF9kZXJpdmVkLmhwcD4KKyMgZW5kaWYKKworIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaGFzX3h4eC5ocHA+CisjIGluY2x1ZGUgPGNzdGRkZWY+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorIyBpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfREVGKHZhbHVlX3R5cGUpCitCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9ERUYocmVmZXJlbmNlKQorQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfREVGKHBvaW50ZXIpCitCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9ERUYoZGlmZmVyZW5jZV90eXBlKQorQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfREVGKGl0ZXJhdG9yX2NhdGVnb3J5KQorCisvLyBpc19tdXRhYmxlX2l0ZXJhdG9yIC0tCisvLworLy8gICBBIG1ldGFmdW5jdGlvbiByZXR1cm5pbmcgdHJ1ZSBpZmYgVCBpcyBhIG11dGFibGUgaXRlcmF0b3IgdHlwZQorLy8gICB3aXRoIGEgbmVzdGVkIHZhbHVlX3R5cGUuIFdpbGwgb25seSB3b3JrIHBvcnRhYmx5IHdpdGggaXRlcmF0b3JzCisvLyAgIHdob3NlIG9wZXJhdG9yKiByZXR1cm5zIGEgcmVmZXJlbmNlLCBidXQgdGhhdCBzZWVtcyB0byBiZSBPSyBmb3IKKy8vICAgdGhlIGl0ZXJhdG9ycyBzdXBwbGllZCBieSBEaW5rdW13YXJlLiBTb21lIGlucHV0IGl0ZXJhdG9ycyBtYXkKKy8vICAgY29tcGlsZS10aW1lIGlmIHRoZXkgYXJyaXZlIGhlcmUsIGFuZCBpZiB0aGUgY29tcGlsZXIgaXMgc3RyaWN0CisvLyAgIGFib3V0IG5vdCB0YWtpbmcgdGhlIGFkZHJlc3Mgb2YgYW4gcnZhbHVlLgorCisvLyBUaGlzIG9uZSBkZXRlY3RzIG9yZGluYXJ5IG11dGFibGUgaXRlcmF0b3JzIC0gdGhlIHJlc3VsdCBvZgorLy8gb3BlcmF0b3IqIGlzIGNvbnZlcnRpYmxlIHRvIHRoZSB2YWx1ZV90eXBlLgordGVtcGxhdGUgPGNsYXNzIFQ+Cit0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfbXV0YWJsZV9pdGVyYXRvcl9oZWxwZXIoVCBjb25zdCosIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgVDo6dmFsdWVfdHlwZSopOworCisvLyBTaW5jZSB5b3UgY2FuJ3QgdGFrZSB0aGUgYWRkcmVzcyBvZiBhbiBydmFsdWUsIHRoZSBndXRzIG9mCisvLyBpc19tdXRhYmxlX2l0ZXJhdG9yX2ltcGwgd2lsbCBmYWlsIGlmIHdlIHVzZSAmKnQgZGlyZWN0bHkuICBUaGlzCisvLyBtYWtlcyBzdXJlIHdlIGNhbiBzdGlsbCB3b3JrIHdpdGggbm9uLWx2YWx1ZSBpdGVyYXRvcnMuCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gVCogbXV0YWJsZV9pdGVyYXRvcl9sdmFsdWVfaGVscGVyKFQmIHgpOworaW50IG11dGFibGVfaXRlcmF0b3JfbHZhbHVlX2hlbHBlciguLi4pOworCisKKy8vIFRoaXMgb25lIGRldGVjdHMgb3V0cHV0IGl0ZXJhdG9ycyBzdWNoIGFzIG9zdHJlYW1faXRlcmF0b3Igd2hpY2gKKy8vIHJldHVybiByZWZlcmVuY2VzIHRvIHRoZW1zZWx2ZXMuCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3R5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19tdXRhYmxlX2l0ZXJhdG9yX2hlbHBlcihUIGNvbnN0KiwgVCBjb25zdCopOworCit0eXBlX3RyYWl0czo6bm9fdHlwZSBpc19tdXRhYmxlX2l0ZXJhdG9yX2hlbHBlciguLi4pOworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19tdXRhYmxlX2l0ZXJhdG9yX2ltcGwKK3sKKyAgICBzdGF0aWMgVCB0OworICAgIAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUgPSBzaXplb2YoCisgICAgICAgICAgICBkZXRhaWw6OmlzX211dGFibGVfaXRlcmF0b3JfaGVscGVyKAorICAgICAgICAgICAgICAgIChUKikwCisgICAgICAgICAgICAgICwgbXV0YWJsZV9pdGVyYXRvcl9sdmFsdWVfaGVscGVyKCp0KSAvLyBsaWtlICYqdAorICAgICAgICAgICAgKSkKKyAgICAgICAgPT0gc2l6ZW9mKHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICApOworfTsKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMSgKKyAgICBpc19tdXRhYmxlX2l0ZXJhdG9yLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19tdXRhYmxlX2l0ZXJhdG9yX2ltcGw8VD46OnZhbHVlKQorCisKKy8vIGlzX2Z1bGxfaXRlcmF0b3JfdHJhaXRzIC0tCisvLworLy8gICBBIG1ldGFmdW5jdGlvbiByZXR1cm5pbmcgdHJ1ZSBpZmYgVCBoYXMgYWxsIHRoZSByZXF1aXNpdGUgbmVzdGVkCisvLyAgIHR5cGVzIHRvIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cyBmb3IgYSBmdWxseS1jb25mb3JtaW5nCisvLyAgIGl0ZXJhdG9yX3RyYWl0cyBpbXBsZW1lbnRhdGlvbi4KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX2Z1bGxfaXRlcmF0b3JfdHJhaXRzX2ltcGwKK3sKKyAgICBlbnVtIHsgdmFsdWUgPSAKKyAgICAgICAgICAgaGFzX3ZhbHVlX3R5cGU8VD46OnZhbHVlIAorICAgICAgICAgICAmIGhhc19yZWZlcmVuY2U8VD46OnZhbHVlIAorICAgICAgICAgICAmIGhhc19wb2ludGVyPFQ+Ojp2YWx1ZSAKKyAgICAgICAgICAgJiBoYXNfZGlmZmVyZW5jZV90eXBlPFQ+Ojp2YWx1ZQorICAgICAgICAgICAmIGhhc19pdGVyYXRvcl9jYXRlZ29yeTxUPjo6dmFsdWUKKyAgICB9OworfTsKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMSgKKyAgICBpc19mdWxsX2l0ZXJhdG9yX3RyYWl0cyxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfZnVsbF9pdGVyYXRvcl90cmFpdHNfaW1wbDxUPjo6dmFsdWUpCisKKworIyAgIGlmZGVmIEJPT1NUX0JBRF9DT05UQUlORVJfSVRFUkFUT1JfQ0FURUdPUllfVFlQRURFRgorQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfREVGKF9JdGVyYXRvcl9jYXRlZ29yeSkKKyAgICAKKy8vIGlzX3N0bHBvcnRfNDBfZGVidWdfaXRlcmF0b3IgLS0KKy8vCisvLyAgIEEgbWV0YWZ1bmN0aW9uIHJldHVybmluZyB0cnVlIGlmZiBUIGhhcyBhbGwgdGhlIHJlcXVpc2l0ZSBuZXN0ZWQKKy8vICAgdHlwZXMgdG8gc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIG9mIGFuIFNUTFBvcnQgNC4wIGRlYnVnIGl0ZXJhdG9yCisvLyAgIGl0ZXJhdG9yX3RyYWl0cyBpbXBsZW1lbnRhdGlvbi4KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3N0bHBvcnRfNDBfZGVidWdfaXRlcmF0b3JfaW1wbAoreworICAgIGVudW0geyB2YWx1ZSA9IAorICAgICAgICAgICBoYXNfdmFsdWVfdHlwZTxUPjo6dmFsdWUgCisgICAgICAgICAgICYgaGFzX3JlZmVyZW5jZTxUPjo6dmFsdWUgCisgICAgICAgICAgICYgaGFzX3BvaW50ZXI8VD46OnZhbHVlIAorICAgICAgICAgICAmIGhhc19kaWZmZXJlbmNlX3R5cGU8VD46OnZhbHVlCisgICAgICAgICAgICYgaGFzX19JdGVyYXRvcl9jYXRlZ29yeTxUPjo6dmFsdWUKKyAgICB9OworfTsKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMSgKKyAgICBpc19zdGxwb3J0XzQwX2RlYnVnX2l0ZXJhdG9yLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19zdGxwb3J0XzQwX2RlYnVnX2l0ZXJhdG9yX2ltcGw8VD46OnZhbHVlKQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBzdGxwb3J0XzQwX2RlYnVnX2l0ZXJhdG9yX3RyYWl0cworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6cmVmZXJlbmNlIHJlZmVyZW5jZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnBvaW50ZXIgcG9pbnRlcjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OmRpZmZlcmVuY2VfdHlwZSBkaWZmZXJlbmNlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjpfSXRlcmF0b3JfY2F0ZWdvcnkgaXRlcmF0b3JfY2F0ZWdvcnk7Cit9OworIyAgIGVuZGlmIC8vIEJPT1NUX0JBRF9DT05UQUlORVJfSVRFUkFUT1JfQ0FURUdPUllfVFlQRURFRiAKKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBwb2ludGVyX2l0ZXJhdG9yX3RyYWl0czsKKworIyAgIGlmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBwb2ludGVyX2l0ZXJhdG9yX3RyYWl0czxUKj4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jb25zdDxUPjo6dHlwZSB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgVCogcG9pbnRlcjsKKyAgICB0eXBlZGVmIFQmIHJlZmVyZW5jZTsKKyAgICB0eXBlZGVmIHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcgaXRlcmF0b3JfY2F0ZWdvcnk7CisgICAgdHlwZWRlZiBzdGQ6OnB0cmRpZmZfdCBkaWZmZXJlbmNlX3R5cGU7Cit9OworIyAgIGVsc2UKKworLy8gSW4gY2FzZSBvZiBubyB0ZW1wbGF0ZSBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uLCBhbmQgaWYgVCBpcyBhCisvLyBwb2ludGVyLCBpdGVyYXRvcl90cmFpdHM8VD46OnZhbHVlX3R5cGUgY2FuIHN0aWxsIGJlIGNvbXB1dGVkLiAgRm9yCisvLyBzb21lIGJhc2ljIHR5cGVzLCByZW1vdmVfcG9pbnRlciBpcyBtYW51YWxseSBkZWZpbmVkIGluCisvLyB0eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHAuIEZvciBvdGhlcnMsIGRvIGl0IHlvdXJzZWxmLgorCit0ZW1wbGF0ZTxjbGFzcyBQPiBjbGFzcyBwbGVhc2VfaW52b2tlX0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDX29uX2N2X3VucXVhbGlmaWVkX3BvaW50ZWU7CisKK3RlbXBsYXRlPGNsYXNzIFA+CitzdHJ1Y3QgcG9pbnRlcl92YWx1ZV90eXBlCisgIDogbXBsOjppZl88CisgICAgICAgIGlzX3NhbWU8UCwgdHlwZW5hbWUgcmVtb3ZlX3BvaW50ZXI8UD46OnR5cGU+CisgICAgICAsIHBsZWFzZV9pbnZva2VfQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUNfb25fY3ZfdW5xdWFsaWZpZWRfcG9pbnRlZTxQPgorICAgICAgLCB0eXBlbmFtZSByZW1vdmVfY29uc3Q8CisgICAgICAgICAgICB0eXBlbmFtZSByZW1vdmVfcG9pbnRlcjxQPjo6dHlwZQorICAgICAgICA+Ojp0eXBlCisgICAgPgoreworfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBQPgorc3RydWN0IHBvaW50ZXJfcmVmZXJlbmNlCisgIDogbXBsOjppZl88CisgICAgICAgIGlzX3NhbWU8UCwgdHlwZW5hbWUgcmVtb3ZlX3BvaW50ZXI8UD46OnR5cGU+CisgICAgICAsIHBsZWFzZV9pbnZva2VfQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUNfb25fY3ZfdW5xdWFsaWZpZWRfcG9pbnRlZTxQPgorICAgICAgLCB0eXBlbmFtZSByZW1vdmVfcG9pbnRlcjxQPjo6dHlwZSYKKyAgICA+Cit7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBwb2ludGVyX2l0ZXJhdG9yX3RyYWl0cworeworICAgIHR5cGVkZWYgVCBwb2ludGVyOworICAgIHR5cGVkZWYgc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZyBpdGVyYXRvcl9jYXRlZ29yeTsKKyAgICB0eXBlZGVmIHN0ZDo6cHRyZGlmZl90IGRpZmZlcmVuY2VfdHlwZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgcG9pbnRlcl92YWx1ZV90eXBlPFQ+Ojp0eXBlIHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBwb2ludGVyX3JlZmVyZW5jZTxUPjo6dHlwZSByZWZlcmVuY2U7Cit9OworCisjICAgZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisvLyBXZSdsbCBzb3J0IGl0ZXJhdG9yIHR5cGVzIGludG8gb25lIG9mIHRoZXNlIGNsYXNzaWZpY2F0aW9ucywgZnJvbSB3aGljaCB3ZQorLy8gY2FuIGRldGVybWluZSB0aGUgZGlmZmVyZW5jZV90eXBlLCBwb2ludGVyLCByZWZlcmVuY2UsIGFuZCB2YWx1ZV90eXBlCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CitzdHJ1Y3Qgc3RhbmRhcmRfaXRlcmF0b3JfdHJhaXRzCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6ZGlmZmVyZW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yOjp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6cG9pbnRlciBwb2ludGVyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3I6OnJlZmVyZW5jZSByZWZlcmVuY2U7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6aXRlcmF0b3JfY2F0ZWdvcnkgaXRlcmF0b3JfY2F0ZWdvcnk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CitzdHJ1Y3QgbXN2Y19zdGRsaWJfbXV0YWJsZV90cmFpdHMKKyAgICA6IHN0ZDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+OjpkaXN0YW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZSogcG9pbnRlcjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZSYgcmVmZXJlbmNlOworfTsKKwordGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yPgorc3RydWN0IG1zdmNfc3RkbGliX2NvbnN0X3RyYWl0cworICAgIDogc3RkOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj46OmRpc3RhbmNlX3R5cGUgZGlmZmVyZW5jZV90eXBlOworICAgIHR5cGVkZWYgY29uc3QgdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+Ojp2YWx1ZV90eXBlKiBwb2ludGVyOworICAgIHR5cGVkZWYgY29uc3QgdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+Ojp2YWx1ZV90eXBlJiByZWZlcmVuY2U7Cit9OworCisjICAgaWZkZWYgQk9PU1RfQkFEX09VVFBVVF9JVEVSQVRPUl9TUEVDSUFMSVpBVElPTgordGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yPgorc3RydWN0IGlzX2JhZF9vdXRwdXRfaXRlcmF0b3IKKyAgICA6IGlzX2Jhc2VfYW5kX2Rlcml2ZWQ8CisgICAgICAgIHN0ZDo6aXRlcmF0b3I8c3RkOjpvdXRwdXRfaXRlcmF0b3JfdGFnLHZvaWQsdm9pZCx2b2lkLHZvaWQ+CisgICAgICAgICwgSXRlcmF0b3I+Cit7Cit9OworCitzdHJ1Y3QgYmFkX291dHB1dF9pdGVyYXRvcl90cmFpdHMKK3sKKyAgICB0eXBlZGVmIHZvaWQgdmFsdWVfdHlwZTsKKyAgICB0eXBlZGVmIHZvaWQgZGlmZmVyZW5jZV90eXBlOworICAgIHR5cGVkZWYgc3RkOjpvdXRwdXRfaXRlcmF0b3JfdGFnIGl0ZXJhdG9yX2NhdGVnb3J5OworICAgIHR5cGVkZWYgdm9pZCBwb2ludGVyOworICAgIHR5cGVkZWYgdm9pZCByZWZlcmVuY2U7Cit9OworIyAgIGVuZGlmCisKKy8vIElmIHdlJ3JlIGxvb2tpbmcgYXQgYW4gTVNWQzYgKG9sZCBEaW5rdW13YXJlKSBgYHN0YW5kYXJkJycKKy8vIGl0ZXJhdG9yLCB0aGlzIHdpbGwgZ2VuZXJhdGUgYW4gYXBwcm9wcmlhdGUgdHJhaXRzIGNsYXNzLiAKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBtc3ZjX3N0ZGxpYl9pdGVyYXRvcl90cmFpdHMKKyAgICA6IG1wbDo6aWZfPAorICAgICAgIGlzX211dGFibGVfaXRlcmF0b3I8SXRlcmF0b3I+CisgICAgICAgLCBtc3ZjX3N0ZGxpYl9tdXRhYmxlX3RyYWl0czxJdGVyYXRvcj4KKyAgICAgICAsIG1zdmNfc3RkbGliX2NvbnN0X3RyYWl0czxJdGVyYXRvcj4KKyAgICAgID46OnR5cGUKK3t9OworCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CitzdHJ1Y3Qgbm9uX3BvaW50ZXJfaXRlcmF0b3JfdHJhaXRzCisgICAgOiBtcGw6OmlmXzwKKyAgICAgICAgLy8gaWYgdGhlIGl0ZXJhdG9yIGNvbnRhaW5zIGFsbCB0aGUgcmlnaHQgbmVzdGVkIHR5cGVzLi4uCisgICAgICAgIGlzX2Z1bGxfaXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPgorICAgICAgICAvLyBVc2UgYSBzdGFuZGFyZCBpdGVyYXRvcl90cmFpdHMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgLCBzdGFuZGFyZF9pdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+CisjICAgaWZkZWYgQk9PU1RfQkFEX0NPTlRBSU5FUl9JVEVSQVRPUl9DQVRFR09SWV9UWVBFREVGCisgICAgICAgIC8vIENoZWNrIGZvciBTVExQb3J0IDQuMCBicm9rZW4gX0l0ZXJhdG9yX2NhdGVnb3J5IHR5cGUKKyAgICAgICAgLCBtcGw6OmlmXzwKKyAgICAgICAgICAgICBpc19zdGxwb3J0XzQwX2RlYnVnX2l0ZXJhdG9yPEl0ZXJhdG9yPgorICAgICAgICAgICAgICwgc3RscG9ydF80MF9kZWJ1Z19pdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+CisjICAgZW5kaWYKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCBhc3N1bWUgaXQncyBhIERpbmt1bSBpdGVyYXRvcgorICAgICAgICAsIG1zdmNfc3RkbGliX2l0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj4KKyMgICBpZmRlZiBCT09TVF9CQURfQ09OVEFJTkVSX0lURVJBVE9SX0NBVEVHT1JZX1RZUEVERUYKKyAgICAgICAgPjo6dHlwZQorIyAgIGVuZGlmIAorICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBpdGVyYXRvcl90cmFpdHNfYXV4CisgICAgOiBtcGw6OmlmXzwKKyAgICAgICAgaXNfcG9pbnRlcjxJdGVyYXRvcj4KKyAgICAgICAgLCBwb2ludGVyX2l0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj4KKyAgICAgICAgLCBub25fcG9pbnRlcl9pdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+CisgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yPgorc3RydWN0IGl0ZXJhdG9yX3RyYWl0cworeworICAgIC8vIEV4cGxpY2l0IGZvcndhcmRpbmcgZnJvbSBiYXNlIGNsYXNzIG5lZWRlZCB0byBrZWVwIE1TVkM2IGhhcHB5CisgICAgLy8gdW5kZXIgc29tZSBjaXJjdW1zdGFuY2VzLgorIHByaXZhdGU6CisjICAgaWZkZWYgQk9PU1RfQkFEX09VVFBVVF9JVEVSQVRPUl9TUEVDSUFMSVpBVElPTgorICAgIHR5cGVkZWYgCisgICAgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgIGlzX2JhZF9vdXRwdXRfaXRlcmF0b3I8SXRlcmF0b3I+CisgICAgICAgICwgYmFkX291dHB1dF9pdGVyYXRvcl90cmFpdHMKKyAgICAgICAgLCBpdGVyYXRvcl90cmFpdHNfYXV4PEl0ZXJhdG9yPgorICAgID46OnR5cGUgYmFzZTsKKyMgICBlbHNlCisgICAgdHlwZWRlZiBpdGVyYXRvcl90cmFpdHNfYXV4PEl0ZXJhdG9yPiBiYXNlOworIyAgIGVuZGlmCisgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzZTo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzZTo6cG9pbnRlciBwb2ludGVyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzZTo6cmVmZXJlbmNlIHJlZmVyZW5jZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhc2U6OmRpZmZlcmVuY2VfdHlwZSBkaWZmZXJlbmNlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNlOjppdGVyYXRvcl9jYXRlZ29yeSBpdGVyYXRvcl9jYXRlZ29yeTsKK307CisKKy8vIFRoaXMgc3BlY2lhbGl6YXRpb24gY3V0cyBvZmYgRVRJIChFYXJseSBUZW1wbGF0ZSBJbnN0YW50aWF0aW9uKSBmb3IgTVNWQy4KK3RlbXBsYXRlIDw+IHN0cnVjdCBpdGVyYXRvcl90cmFpdHM8aW50PgoreworICAgIHR5cGVkZWYgaW50IHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiBpbnQgcG9pbnRlcjsKKyAgICB0eXBlZGVmIGludCByZWZlcmVuY2U7CisgICAgdHlwZWRlZiBpbnQgZGlmZmVyZW5jZV90eXBlOworICAgIHR5cGVkZWYgaW50IGl0ZXJhdG9yX2NhdGVnb3J5OworfTsKKworfX0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpkZXRhaWwKKworIyAgZW5kaWYgLy8gd29ya2Fyb3VuZHMKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCB7CisKK25hbWVzcGFjZSBpdGVyYXRvcl90cmFpdHNfCit7CisgIHRlbXBsYXRlIDxjbGFzcyBJdGVyYXRvciwgY2xhc3MgRGlmZmVyZW5jZT4KKyAgc3RydWN0IGRpc3RhbmNlX3NlbGVjdAorICB7CisgICAgICBzdGF0aWMgRGlmZmVyZW5jZSBleGVjdXRlKEl0ZXJhdG9yIGkxLCBjb25zdCBJdGVyYXRvciBpMiwgLi4uKQorICAgICAgeworICAgICAgICAgIERpZmZlcmVuY2UgcmVzdWx0ID0gMDsKKyAgICAgICAgICB3aGlsZSAoaTEgIT0gaTIpCisgICAgICAgICAgeworICAgICAgICAgICAgICArK2kxOworICAgICAgICAgICAgICArK3Jlc3VsdDsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgIH0KKworICAgICAgc3RhdGljIERpZmZlcmVuY2UgZXhlY3V0ZShJdGVyYXRvciBpMSwgY29uc3QgSXRlcmF0b3IgaTIsIHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcqKQorICAgICAgeworICAgICAgICAgIHJldHVybiBpMiAtIGkxOworICAgICAgfQorICB9OworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzXworCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CitpbmxpbmUgdHlwZW5hbWUgaXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6ZGlmZmVyZW5jZV90eXBlCitkaXN0YW5jZShJdGVyYXRvciBmaXJzdCwgSXRlcmF0b3IgbGFzdCkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj46OmRpZmZlcmVuY2VfdHlwZSBkaWZmX3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSA6Om5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj46Oml0ZXJhdG9yX2NhdGVnb3J5IGl0ZXJhdG9yX2NhdGVnb3J5OworICAgIAorICAgIHJldHVybiBpdGVyYXRvcl90cmFpdHNfOjpkaXN0YW5jZV9zZWxlY3Q8SXRlcmF0b3IsZGlmZl90Pjo6ZXhlY3V0ZSgKKyAgICAgICAgZmlyc3QsIGxhc3QsIChpdGVyYXRvcl9jYXRlZ29yeSopMCk7Cit9CisKK319CisKKyMgZW5kaWYKKworCisjIHVuZGVmIEJPT1NUX0JBRF9DT05UQUlORVJfSVRFUkFUT1JfQ0FURUdPUllfVFlQRURFRgorIyB1bmRlZiBCT09TVF9CQURfT1VUUFVUX0lURVJBVE9SX1NQRUNJQUxJWkFUSU9OCisKKyNlbmRpZiAvLyBJVEVSQVRPUl9EV0ExMjI2MDBfSFBQXwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvbGNhc3RfcHJlY2lzaW9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2xjYXN0X3ByZWNpc2lvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc2M2E4MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2xjYXN0X3ByZWNpc2lvbi5ocHAKQEAgLTAsMCArMSwxODQgQEAKKy8vIENvcHlyaWdodCBBbGV4YW5kZXIgTmFzb25vdiAmIFBhdWwgQS4gQnJpc3RvdyAyMDA2LgorCisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dAorLy8gb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfREVUQUlMX0xDQVNUX1BSRUNJU0lPTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0xDQVNUX1BSRUNJU0lPTl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGNsaW1pdHM+CisjaW5jbHVkZSA8aW9zPgorI2luY2x1ZGUgPGxpbWl0cz4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaW50ZWdlcl90cmFpdHMuaHBwPgorCisjaWZuZGVmIEJPT1NUX05PX0lTX0FCU1RSQUNUCisvLyBGaXggZm9yIFNGOjEzNTg2MDAgLSBsZXhpY2FsX2Nhc3QgJiBwdXJlIHZpcnR1YWwgZnVuY3Rpb25zICYgVkMgOCBTVEwKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUykgfHwgXAorICAoZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQzwxMzEwKSkKKworI2RlZmluZSBCT09TVF9MQ0FTVF9OT19DT01QSUxFX1RJTUVfUFJFQ0lTSU9OCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX0xDQVNUX05PX0NPTVBJTEVfVElNRV9QUkVDSVNJT04KKyNpbmNsdWRlIDxuZG5ib29zdC9hc3NlcnQuaHBwPgorI2Vsc2UKKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworY2xhc3MgbGNhc3RfYWJzdHJhY3Rfc3R1YiB7fTsKKworI2lmbmRlZiBCT09TVF9MQ0FTVF9OT19DT01QSUxFX1RJTUVfUFJFQ0lTSU9OCisvLyBDYWxjdWxhdGUgYW4gYXJndW1lbnQgdG8gcGFzcyB0byBzdGQ6Omlvc19iYXNlOjpwcmVjaXNpb24gZnJvbQorLy8gbGV4aWNhbF9jYXN0LiBTZWUgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24gZm9yIGJyb2tlbiBzdGFuZGFyZAorLy8gbGlicmFyaWVzIGluIGxjYXN0X2dldF9wcmVjaXNpb24gYmVsb3cuIEtlZXAgdGhlbSBpbiBzeW5jLCBwbGVhc2UuCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGxjYXN0X3ByZWNpc2lvbgoreworI2lmZGVmIEJPT1NUX05PX0lTX0FCU1RSQUNUCisgICAgdHlwZWRlZiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+IGxpbWl0czsgLy8gTm8gZml4IGZvciBTRjoxMzU4NjAwLgorI2Vsc2UKKyAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6Om1wbDo6aWZfPAorICAgICAgICBuZG5ib29zdDo6aXNfYWJzdHJhY3Q8VD4KKyAgICAgICwgc3RkOjpudW1lcmljX2xpbWl0czxsY2FzdF9hYnN0cmFjdF9zdHViPgorICAgICAgLCBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+CisgICAgICA+Ojp0eXBlIGxpbWl0czsKKyNlbmRpZgorCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHVzZV9kZWZhdWx0X3ByZWNpc2lvbiA9CisgICAgICAgICAgICAhbGltaXRzOjppc19zcGVjaWFsaXplZCB8fCBsaW1pdHM6OmlzX2V4YWN0CisgICAgICAgICk7CisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc3BlY2lhbGl6ZWRfYmluID0KKyAgICAgICAgICAgICF1c2VfZGVmYXVsdF9wcmVjaXNpb24gJiYKKyAgICAgICAgICAgIGxpbWl0czo6cmFkaXggPT0gMiAmJiBsaW1pdHM6OmRpZ2l0cyA+IDAKKyAgICAgICAgKTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19zcGVjaWFsaXplZF9kZWMgPQorICAgICAgICAgICAgIXVzZV9kZWZhdWx0X3ByZWNpc2lvbiAmJgorICAgICAgICAgICAgbGltaXRzOjpyYWRpeCA9PSAxMCAmJiBsaW1pdHM6OmRpZ2l0czEwID4gMAorICAgICAgICApOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c3RyZWFtc2l6ZSwgc3RyZWFtc2l6ZV9tYXggPQorICAgICAgICAgICAgbmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHN0ZDo6c3RyZWFtc2l6ZT46OmNvbnN0X21heAorICAgICAgICApOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkIGludCwgcHJlY2lzaW9uX2RlYyA9IGxpbWl0czo6ZGlnaXRzMTAgKyAxVSk7CisKKyAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCFpc19zcGVjaWFsaXplZF9kZWMgfHwKKyAgICAgICAgICAgIHByZWNpc2lvbl9kZWMgPD0gc3RyZWFtc2l6ZV9tYXggKyAwVUwKKyAgICAgICAgKTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCBsb25nLCBwcmVjaXNpb25fYmluID0KKyAgICAgICAgICAgIDJVTCArIGxpbWl0czo6ZGlnaXRzICogMzAxMDNVTCAvIDEwMDAwMFVMCisgICAgICAgICk7CisKKyAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCFpc19zcGVjaWFsaXplZF9iaW4gfHwKKyAgICAgICAgICAgIChsaW1pdHM6OmRpZ2l0cyArIDBVTCA8IFVMT05HX01BWCAvIDMwMTAzVUwgJiYKKyAgICAgICAgICAgIHByZWNpc2lvbl9iaW4gPiBsaW1pdHM6OmRpZ2l0czEwICsgMFVMICYmCisgICAgICAgICAgICBwcmVjaXNpb25fYmluIDw9IHN0cmVhbXNpemVfbWF4ICsgMFVMKQorICAgICAgICApOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c3RyZWFtc2l6ZSwgdmFsdWUgPQorICAgICAgICAgICAgaXNfc3BlY2lhbGl6ZWRfYmluID8gcHJlY2lzaW9uX2JpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNfc3BlY2lhbGl6ZWRfZGVjID8gcHJlY2lzaW9uX2RlYyA6IDYKKyAgICAgICAgKTsKK307CisjZW5kaWYKKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZSBzdGQ6OnN0cmVhbXNpemUgbGNhc3RfZ2V0X3ByZWNpc2lvbihUKiA9IDApCit7CisjaWZuZGVmIEJPT1NUX0xDQVNUX05PX0NPTVBJTEVfVElNRV9QUkVDSVNJT04KKyAgICByZXR1cm4gbGNhc3RfcHJlY2lzaW9uPFQ+Ojp2YWx1ZTsKKyNlbHNlIC8vIEZvbGxvdyBsY2FzdF9wcmVjaXNpb24gYWxnb3JpdGhtIGF0IHJ1bi10aW1lOgorCisjaWZkZWYgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyAgICB0eXBlZGVmIHN0ZDo6bnVtZXJpY19saW1pdHM8VD4gbGltaXRzOyAvLyBObyBmaXggZm9yIFNGOjEzNTg2MDAuCisjZWxzZQorICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6bXBsOjppZl88CisgICAgICAgIG5kbmJvb3N0Ojppc19hYnN0cmFjdDxUPgorICAgICAgLCBzdGQ6Om51bWVyaWNfbGltaXRzPGxjYXN0X2Fic3RyYWN0X3N0dWI+CisgICAgICAsIHN0ZDo6bnVtZXJpY19saW1pdHM8VD4KKyAgICAgID46OnR5cGUgbGltaXRzOworI2VuZGlmCisKKyAgICBib29sIGNvbnN0IHVzZV9kZWZhdWx0X3ByZWNpc2lvbiA9CisgICAgICAgICFsaW1pdHM6OmlzX3NwZWNpYWxpemVkIHx8IGxpbWl0czo6aXNfZXhhY3Q7CisKKyAgICBpZighdXNlX2RlZmF1bHRfcHJlY2lzaW9uKQorICAgIHsgLy8gSW5jbHVkZXMgYWxsIGJ1aWx0LWluIGZsb2F0aW5nLXBvaW50IHR5cGVzLCBmbG9hdCwgZG91YmxlIC4uLgorICAgICAgLy8gYW5kIFVEVCB0eXBlcyBmb3Igd2hpY2ggZGlnaXRzIChzaWduaWZpY2FuZCBiaXRzKSBpcyBkZWZpbmVkIChub3QgemVybykKKworICAgICAgICBib29sIGNvbnN0IGlzX3NwZWNpYWxpemVkX2JpbiA9CisgICAgICAgICAgICBsaW1pdHM6OnJhZGl4ID09IDIgJiYgbGltaXRzOjpkaWdpdHMgPiAwOworICAgICAgICBib29sIGNvbnN0IGlzX3NwZWNpYWxpemVkX2RlYyA9CisgICAgICAgICAgICBsaW1pdHM6OnJhZGl4ID09IDEwICYmIGxpbWl0czo6ZGlnaXRzMTAgPiAwOworICAgICAgICBzdGQ6OnN0cmVhbXNpemUgY29uc3Qgc3RyZWFtc2l6ZV9tYXggPQorICAgICAgICAgICAgKG5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czxzdGQ6OnN0cmVhbXNpemU+OjptYXgpKCk7CisKKyAgICAgICAgaWYoaXNfc3BlY2lhbGl6ZWRfYmluKQorICAgICAgICB7IC8vIEZsb2F0aW5nLXBvaW50IHR5cGVzIHdpdGgKKyAgICAgICAgICAvLyBsaW1pdHM6OmRpZ2l0cyBkZWZpbmVkIGJ5IHRoZSBzcGVjaWFsaXphdGlvbi4KKworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBjb25zdCBkaWdpdHMgPSBsaW1pdHM6OmRpZ2l0czsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgY29uc3QgcHJlY2lzaW9uID0gMlVMICsgZGlnaXRzICogMzAxMDNVTCAvIDEwMDAwMFVMOworICAgICAgICAgICAgLy8gdW5zaWduZWQgbG9uZyBpcyBzZWxlY3RlZCBiZWNhdXNlIGl0IGlzIGF0IGxlYXN0IDMyLWJpdHMKKyAgICAgICAgICAgIC8vIGFuZCB0aHVzIFVMT05HX01BWCAvIDMwMTAzVUwgaXMgYmlnIGVub3VnaCBmb3IgYWxsIHR5cGVzLgorICAgICAgICAgICAgQk9PU1RfQVNTRVJUKAorICAgICAgICAgICAgICAgICAgICBkaWdpdHMgPCBVTE9OR19NQVggLyAzMDEwM1VMICYmCisgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbiA+IGxpbWl0czo6ZGlnaXRzMTAgKyAwVUwgJiYKKyAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uIDw9IHN0cmVhbXNpemVfbWF4ICsgMFVMCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIHJldHVybiBwcmVjaXNpb247CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihpc19zcGVjaWFsaXplZF9kZWMpCisgICAgICAgIHsgICAvLyBEZWNpbWFsIEZsb2F0aW5nLXBvaW50IHR5cGUsIG1vc3QgbGlrZWx5IGEgVXNlciBEZWZpbmVkIFR5cGUKKyAgICAgICAgICAgIC8vIHJhdGhlciB0aGFuIGEgcmVhbCBmbG9hdGluZy1wb2ludCBoYXJkd2FyZSB0eXBlLgorICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvbnN0IHByZWNpc2lvbiA9IGxpbWl0czo6ZGlnaXRzMTAgKyAxVTsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVChwcmVjaXNpb24gPD0gc3RyZWFtc2l6ZV9tYXggKyAwVUwpOworICAgICAgICAgICAgcmV0dXJuIHByZWNpc2lvbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEludGVncmFsIHR5cGUgKGZvciB3aGljaCBwcmVjaXNpb24gaGFzIG5vIGVmZmVjdCkKKyAgICAvLyBvciB0eXBlIFQgZm9yIHdoaWNoIGxpbWl0cyBpcyBOT1Qgc3BlY2lhbGl6ZWQsCisgICAgLy8gc28gYXNzdW1lIHN0cmVhbSBwcmVjaXNpb24gcmVtYWlucyB0aGUgZGVmYXVsdCA2IGRlY2ltYWwgZGlnaXRzLgorICAgIC8vIFdhcm5pbmc6IGlmIHlvdXIgVXNlci1kZWZpbmVkIEZsb2F0aW5nLXBvaW50IHR5cGUgVCBpcyBOT1Qgc3BlY2lhbGl6ZWQsCisgICAgLy8gdGhlbiB5b3UgbWF5IGxvc2UgYWNjdXJhY3kgYnkgb25seSB1c2luZyA2IGRlY2ltYWwgZGlnaXRzLgorICAgIC8vIFRvIGF2b2lkIHRoaXMsIHlvdSBuZWVkIHRvIHNwZWNpYWxpemUgVCB3aXRoIGVpdGhlcgorICAgIC8vIHJhZGl4ID09IDIgYW5kIGRpZ2l0cyA9PSB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW5kIGJpdHMsCisgICAgLy8gT1IKKyAgICAvLyByYWRpeCA9IDEwIGFuZCBkaWdpdHMxMCA9PSB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzLgorCisgICAgcmV0dXJuIDY7CisjZW5kaWYKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZSB2b2lkIGxjYXN0X3NldF9wcmVjaXNpb24oc3RkOjppb3NfYmFzZSYgc3RyZWFtLCBUKikKK3sKKyAgICBzdHJlYW0ucHJlY2lzaW9uKGxjYXN0X2dldF9wcmVjaXNpb248VD4oKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFNvdXJjZSwgY2xhc3MgVGFyZ2V0PgoraW5saW5lIHZvaWQgbGNhc3Rfc2V0X3ByZWNpc2lvbihzdGQ6Omlvc19iYXNlJiBzdHJlYW0sIFNvdXJjZSosIFRhcmdldCopCit7CisgICAgc3RkOjpzdHJlYW1zaXplIGNvbnN0IHMgPSBsY2FzdF9nZXRfcHJlY2lzaW9uKHN0YXRpY19jYXN0PFNvdXJjZSo+KDApKTsKKyAgICBzdGQ6OnN0cmVhbXNpemUgY29uc3QgdCA9IGxjYXN0X2dldF9wcmVjaXNpb24oc3RhdGljX2Nhc3Q8VGFyZ2V0Kj4oMCkpOworICAgIHN0cmVhbS5wcmVjaXNpb24ocyA+IHQgPyBzIDogdCk7Cit9CisKK319CisKKyNlbmRpZiAvLyAgQk9PU1RfREVUQUlMX0xDQVNUX1BSRUNJU0lPTl9IUFBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiOTUyZTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHAKQEAgLTAsMCArMSwyMiBAQAorI2lmbmRlZiBCT09TVF9ERVRBSUxfTElHSFRXRUlHSFRfTVVURVhfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2xpZ2h0d2VpZ2h0X211dGV4LmhwcCAtIGxpZ2h0d2VpZ2h0IG11dGV4CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHA+CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2xpZ2h0d2VpZ2h0X3Rlc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvbGlnaHR3ZWlnaHRfdGVzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI4N2IyZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL2xpZ2h0d2VpZ2h0X3Rlc3QuaHBwCkBAIC0wLDAgKzEsMjA4IEBACisjaWZuZGVmIEJPT1NUX0RFVEFJTF9MSUdIVFdFSUdIVF9URVNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9ERVRBSUxfTElHSFRXRUlHSFRfVEVTVF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2xpZ2h0d2VpZ2h0X3Rlc3QuaHBwIC0gbGlnaHR3ZWlnaHQgdGVzdCBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMiwgMjAwOSBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAoMikgQmVtYW4gRGF3ZXMgMjAxMCwgMjAxMQorLy8gIENvcHlyaWdodCAoMykgSW9uIEdhenRhbmFnYSAyMDEzCisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyAgICAtLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICBJZiBleHByZXNzaW9uIGlzIGZhbHNlIGluY3JlYXNlcyB0aGUgZXJyb3IgY291bnQgCisvLyAgICBhbmQgb3V0cHV0cyBhIG1lc3NhZ2UgY29udGFpbmluZyAnZXhwcmVzc2lvbicKKy8vCisvLyAgQk9PU1RfVEVTVChleHByZXNzaW9uKQorLy8KKy8vICAgIC0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgIEluY3JlYXNlcyBlcnJvciBjb3VudCBhbmQgb3V0cHV0cyBhIG1lc3NhZ2UgY29udGFpbmluZyAnbWVzc2FnZScKKy8vCisvLyAgQk9PU1RfRVJST1IobWVzc2FnZSkKKy8vCisvLyAgICAtLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICBJZiAnZXhwcjEnICE9ICdleHByMicgaW5jcmVhc2VzIHRoZSBlcnJvciBjb3VudCAKKy8vICAgIGFuZCBvdXRwdXRzIGEgbWVzc2FnZSBjb250YWluaW5nIGJvdGggZXhwcmVzc2lvbnMKKy8vCisvLyAgQk9PU1RfVEVTVF9FUShleHByMSwgZXhwcjIpCisvLworLy8gICAgLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICAgSWYgJ2V4cHIxJyA9PSAnZXhwcjInIGluY3JlYXNlcyB0aGUgZXJyb3IgY291bnQgCisvLyAgICBhbmQgb3V0cHV0cyBhIG1lc3NhZ2UgY29udGFpbmluZyBib3RoIGV4cHJlc3Npb25zCisvLworLy8gIEJPT1NUX1RFU1RfTkUoZXhwcjEsIGV4cHIyKQorLy8KKy8vICAgIC0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgIElmIEJPT1NUX05PX0VYQ0VQVElPTlMgaXMgTk9UIGRlZmluZWQgYW5kIGlmICdleHByJyBkb2VzIG5vdAorLy8gICAgdGhyb3cgYW4gZXhjZXB0aW9uIG9mIHR5cGUgJ2V4Y2VwJywgaW5jcmVhc2VzIHRoZSBlcnJvciBjb3VudAorLy8gICAgYW5kIG91dHB1dHMgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGV4cHJlc3Npb24uCisvLworLy8gICAgSWYgQk9PU1RfTk9fRVhDRVBUSU9OUyBpcyBkZWZpbmVkLCB0aGlzIG1hY3JvIGV4cGFuZHMgdG8gbm90aGluZworLy8gICAgYW5kICdleHByJyBpcyBub3QgZXZhbHVhdGVkLgorLy8KKy8vICBCT09TVF9URVNUX1RIUk9XUyhleHByLCBleGNlcCkKKy8vCisvLyAgICAtLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICBSZXR1cm5zIHRoZSBlcnJvciBjb3VudAorLy8KKy8vICBpbnQgbmRuYm9vc3Q6OnJlcG9ydF9lcnJvcnMoKQorLy8KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1ZGUgPG5kbmJvb3N0L2N1cnJlbnRfZnVuY3Rpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL25vX2V4Y2VwdGlvbnNfc3VwcG9ydC5ocHA+CisKKy8vICBJREUncyBsaWtlIFZpc3VhbCBTdHVkaW8gcGVyZm9ybSBiZXR0ZXIgaWYgb3V0cHV0IGdvZXMgdG8gc3RkOjpjb3V0IG9yCisvLyAgc29tZSBvdGhlciBzdHJlYW0sIHNvIGFsbG93IHVzZXIgdG8gY29uZmlndXJlIG91dHB1dCBzdHJlYW06CisjaWZuZGVmIEJPT1NUX0xJR0hUV0VJR0hUX1RFU1RfT1NUUkVBTQorIyBkZWZpbmUgQk9PU1RfTElHSFRXRUlHSFRfVEVTVF9PU1RSRUFNIHN0ZDo6Y2VycgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3N0cnVjdCByZXBvcnRfZXJyb3JzX3JlbWluZGVyCit7CisgIGJvb2wgY2FsbGVkX3JlcG9ydF9lcnJvcnNfZnVuY3Rpb247CisgIHJlcG9ydF9lcnJvcnNfcmVtaW5kZXIoKSA6IGNhbGxlZF9yZXBvcnRfZXJyb3JzX2Z1bmN0aW9uKGZhbHNlKSB7fQorIH5yZXBvcnRfZXJyb3JzX3JlbWluZGVyKCkKKyAgeworICAgIEJPT1NUX0FTU0VSVChjYWxsZWRfcmVwb3J0X2Vycm9yc19mdW5jdGlvbik7ICAvLyB2ZXJpZnkgcmVwb3J0X2Vycm9ycygpIHdhcyBjYWxsZWQgIAorICB9Cit9OworCitpbmxpbmUgcmVwb3J0X2Vycm9yc19yZW1pbmRlciYgcmVwb3J0X2Vycm9yc19yZW1pbmQoKQoreworICBzdGF0aWMgcmVwb3J0X2Vycm9yc19yZW1pbmRlciByOworICByZXR1cm4gcjsKK30KKworaW5saW5lIGludCAmIHRlc3RfZXJyb3JzKCkKK3sKKyAgICBzdGF0aWMgaW50IHggPSAwOworICAgIHJlcG9ydF9lcnJvcnNfcmVtaW5kKCk7CisgICAgcmV0dXJuIHg7Cit9CisKK2lubGluZSB2b2lkIHRlc3RfZmFpbGVkX2ltcGwoY2hhciBjb25zdCAqIGV4cHIsIGNoYXIgY29uc3QgKiBmaWxlLCBpbnQgbGluZSwgY2hhciBjb25zdCAqIGZ1bmN0aW9uKQoreworICAgIEJPT1NUX0xJR0hUV0VJR0hUX1RFU1RfT1NUUkVBTQorICAgICAgPDwgZmlsZSA8PCAiKCIgPDwgbGluZSA8PCAiKTogdGVzdCAnIiA8PCBleHByIDw8ICInIGZhaWxlZCBpbiBmdW5jdGlvbiAnIgorICAgICAgPDwgZnVuY3Rpb24gPDwgIiciIDw8IHN0ZDo6ZW5kbDsKKyAgICArK3Rlc3RfZXJyb3JzKCk7Cit9CisKK2lubGluZSB2b2lkIGVycm9yX2ltcGwoY2hhciBjb25zdCAqIG1zZywgY2hhciBjb25zdCAqIGZpbGUsIGludCBsaW5lLCBjaGFyIGNvbnN0ICogZnVuY3Rpb24pCit7CisgICAgQk9PU1RfTElHSFRXRUlHSFRfVEVTVF9PU1RSRUFNCisgICAgICA8PCBmaWxlIDw8ICIoIiA8PCBsaW5lIDw8ICIpOiAiIDw8IG1zZyA8PCAiIGluIGZ1bmN0aW9uICciCisgICAgICA8PCBmdW5jdGlvbiA8PCAiJyIgPDwgc3RkOjplbmRsOworICAgICsrdGVzdF9lcnJvcnMoKTsKK30KKworaW5saW5lIHZvaWQgdGhyb3dfZmFpbGVkX2ltcGwoY2hhciBjb25zdCAqIGV4Y2VwLCBjaGFyIGNvbnN0ICogZmlsZSwgaW50IGxpbmUsIGNoYXIgY29uc3QgKiBmdW5jdGlvbikKK3sKKyAgIEJPT1NUX0xJR0hUV0VJR0hUX1RFU1RfT1NUUkVBTQorICAgIDw8IGZpbGUgPDwgIigiIDw8IGxpbmUgPDwgIik6IEV4Y2VwdGlvbiAnIiA8PCBleGNlcCA8PCAiJyBub3QgdGhyb3duIGluIGZ1bmN0aW9uICciCisgICAgPDwgZnVuY3Rpb24gPDwgIiciIDw8IHN0ZDo6ZW5kbDsKKyAgICsrdGVzdF9lcnJvcnMoKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIHZvaWQgdGVzdF9lcV9pbXBsKCBjaGFyIGNvbnN0ICogZXhwcjEsIGNoYXIgY29uc3QgKiBleHByMiwKKyAgY2hhciBjb25zdCAqIGZpbGUsIGludCBsaW5lLCBjaGFyIGNvbnN0ICogZnVuY3Rpb24sIFQgY29uc3QgJiB0LCBVIGNvbnN0ICYgdSApCit7CisgICAgaWYoIHQgPT0gdSApCisgICAgeworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBCT09TVF9MSUdIVFdFSUdIVF9URVNUX09TVFJFQU0KKyAgICAgICAgICAgIDw8IGZpbGUgPDwgIigiIDw8IGxpbmUgPDwgIik6IHRlc3QgJyIgPDwgZXhwcjEgPDwgIiA9PSAiIDw8IGV4cHIyCisgICAgICAgICAgICA8PCAiJyBmYWlsZWQgaW4gZnVuY3Rpb24gJyIgPDwgZnVuY3Rpb24gPDwgIic6ICIKKyAgICAgICAgICAgIDw8ICInIiA8PCB0IDw8ICInICE9ICciIDw8IHUgPDwgIiciIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgKyt0ZXN0X2Vycm9ycygpOworICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIHZvaWQgdGVzdF9uZV9pbXBsKCBjaGFyIGNvbnN0ICogZXhwcjEsIGNoYXIgY29uc3QgKiBleHByMiwKKyAgY2hhciBjb25zdCAqIGZpbGUsIGludCBsaW5lLCBjaGFyIGNvbnN0ICogZnVuY3Rpb24sIFQgY29uc3QgJiB0LCBVIGNvbnN0ICYgdSApCit7CisgICAgaWYoIHQgIT0gdSApCisgICAgeworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBCT09TVF9MSUdIVFdFSUdIVF9URVNUX09TVFJFQU0KKyAgICAgICAgICAgIDw8IGZpbGUgPDwgIigiIDw8IGxpbmUgPDwgIik6IHRlc3QgJyIgPDwgZXhwcjEgPDwgIiAhPSAiIDw8IGV4cHIyCisgICAgICAgICAgICA8PCAiJyBmYWlsZWQgaW4gZnVuY3Rpb24gJyIgPDwgZnVuY3Rpb24gPDwgIic6ICIKKyAgICAgICAgICAgIDw8ICInIiA8PCB0IDw8ICInID09ICciIDw8IHUgPDwgIiciIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgKyt0ZXN0X2Vycm9ycygpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK2lubGluZSBpbnQgcmVwb3J0X2Vycm9ycygpCit7CisgICAgZGV0YWlsOjpyZXBvcnRfZXJyb3JzX3JlbWluZCgpLmNhbGxlZF9yZXBvcnRfZXJyb3JzX2Z1bmN0aW9uID0gdHJ1ZTsKKworICAgIGludCBlcnJvcnMgPSBkZXRhaWw6OnRlc3RfZXJyb3JzKCk7CisKKyAgICBpZiggZXJyb3JzID09IDAgKQorICAgIHsKKyAgICAgICAgQk9PU1RfTElHSFRXRUlHSFRfVEVTVF9PU1RSRUFNCisgICAgICAgICAgPDwgIk5vIGVycm9ycyBkZXRlY3RlZC4iIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIEJPT1NUX0xJR0hUV0VJR0hUX1RFU1RfT1NUUkVBTQorICAgICAgICAgIDw8IGVycm9ycyA8PCAiIGVycm9yIiA8PCAoZXJyb3JzID09IDE/ICIiOiAicyIpIDw8ICIgZGV0ZWN0ZWQuIiA8PCBzdGQ6OmVuZGw7CisgICAgICAgIHJldHVybiAxOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2RlZmluZSBCT09TVF9URVNUKGV4cHIpICgoZXhwcik/ICh2b2lkKTA6IDo6bmRuYm9vc3Q6OmRldGFpbDo6dGVzdF9mYWlsZWRfaW1wbCgjZXhwciwgX19GSUxFX18sIF9fTElORV9fLCBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OKSkKKyNkZWZpbmUgQk9PU1RfRVJST1IobXNnKSA6Om5kbmJvb3N0OjpkZXRhaWw6OmVycm9yX2ltcGwobXNnLCBfX0ZJTEVfXywgX19MSU5FX18sIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04pCisjZGVmaW5lIEJPT1NUX1RFU1RfRVEoZXhwcjEsZXhwcjIpICggOjpuZG5ib29zdDo6ZGV0YWlsOjp0ZXN0X2VxX2ltcGwoI2V4cHIxLCAjZXhwcjIsIF9fRklMRV9fLCBfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiwgZXhwcjEsIGV4cHIyKSApCisjZGVmaW5lIEJPT1NUX1RFU1RfTkUoZXhwcjEsZXhwcjIpICggOjpuZG5ib29zdDo6ZGV0YWlsOjp0ZXN0X25lX2ltcGwoI2V4cHIxLCAjZXhwcjIsIF9fRklMRV9fLCBfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiwgZXhwcjEsIGV4cHIyKSApCisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKyAgICNkZWZpbmUgQk9PU1RfVEVTVF9USFJPV1MoIEVYUFIsIEVYQ0VQICkgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHRyeSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIEVYUFI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6dGhyb3dfZmFpbGVkX2ltcGwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICgjRVhDRVAsIF9fRklMRV9fLCBfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTik7IFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGNhdGNoKEVYQ0VQIGNvbnN0JikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGNhdGNoKC4uLikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6dGhyb3dfZmFpbGVkX2ltcGwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICgjRVhDRVAsIF9fRklMRV9fLCBfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTik7IFwKKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIC8vCisjZWxzZQorICAgI2RlZmluZSBCT09TVF9URVNUX1RIUk9XUyggRVhQUiwgRVhDRVAgKQorI2VuZGlmCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0RFVEFJTF9MSUdIVFdFSUdIVF9URVNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvbm9fZXhjZXB0aW9uc19zdXBwb3J0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL25vX2V4Y2VwdGlvbnNfc3VwcG9ydC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU2OTU4ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL25vX2V4Y2VwdGlvbnNfc3VwcG9ydC5ocHAKQEAgLTAsMCArMSw4NyBAQAorI2lmbmRlZiBCT09TVF9ERVRBSUxfTk9fRVhDRVBUSU9OU19TVVBQT1JUX0hQUF8KKyNkZWZpbmUgQk9PU1RfREVUQUlMX05PX0VYQ0VQVElPTlNfU1VQUE9SVF9IUFBfCisKKyNpZiAoZGVmaW5lZCBfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEyMDApCisjICBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gKEMpIENvcHlyaWdodCAyMDA0IFBhdmVsIFZvemVuaWxlay4KKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dAorLy8gb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vIFRoaXMgZmlsZSBjb250YWlucyBoZWxwZXIgbWFjcm9zIHVzZWQgd2hlbiBleGNlcHRpb24gc3VwcG9ydCBtYXkgYmUKKy8vIGRpc2FibGVkIChhcyBpbmRpY2F0ZWQgYnkgbWFjcm8gQk9PU1RfTk9fRVhDRVBUSU9OUykuCisvLworLy8gQmVmb3JlIHBpY2tpbmcgdXAgdGhlc2UgbWFjcm9zIHlvdSBtYXkgY29uc2lkZXIgdXNpbmcgUkFJSSB0ZWNobmlxdWVzCisvLyB0byBkZWFsIHdpdGggZXhjZXB0aW9ucyAtIHRoZWlyIHN5bnRheCBjYW4gYmUgYWx3YXlzIHRoZSBzYW1lIHdpdGggCisvLyBvciB3aXRob3V0IGV4Y2VwdGlvbiBzdXBwb3J0IGVuYWJsZWQuCisvLworCisvKiBFeGFtcGxlIG9mIHVzZToKKwordm9pZCBmb28oKSB7CisgIEJPT1NUX1RSWSB7CisgICAgLi4uCisgIH0gQk9PU1RfQ0FUQ0goY29uc3Qgc3RkOjpiYWRfYWxsb2MmKSB7CisgICAgICAuLi4KKyAgICAgIEJPT1NUX1JFVEhST1cKKyAgfSBCT09TVF9DQVRDSChjb25zdCBzdGQ6OmV4Y2VwdGlvbiYgZSkgeworICAgICAgLi4uCisgIH0KKyAgQk9PU1RfQ0FUQ0hfRU5ECit9CisKK1dpdGggZXhjZXB0aW9uIHN1cHBvcnQgZW5hYmxlZCBpdCB3aWxsIGV4cGFuZCBpbnRvOgorCit2b2lkIGZvbygpIHsKKyAgeyB0cnkgeworICAgIC4uLgorICB9IGNhdGNoIChjb25zdCBzdGQ6OmJhZF9hbGxvYyYpIHsKKyAgICAgIC4uLgorICAgICAgdGhyb3c7CisgIH0gY2F0Y2ggKGNvbnN0IHN0ZDo6ZXhjZXB0aW9uJiBlKSB7CisgICAgICAuLi4KKyAgfQorICB9Cit9CisKK1dpdGggZXhjZXB0aW9uIHN1cHBvcnQgZGlzYWJsZWQgaXQgd2lsbCBleHBhbmQgaW50bzoKKwordm9pZCBmb28oKSB7CisgIHsgaWYodHJ1ZSkgeworICAgIC4uLgorICB9IGVsc2UgaWYgKGZhbHNlKSB7CisgICAgICAuLi4KKyAgfSBlbHNlIGlmIChmYWxzZSkgIHsKKyAgICAgIC4uLgorICB9CisgIH0KK30KKyovCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgIShkZWZpbmVkIEJPT1NUX05PX0VYQ0VQVElPTlMpCisjICAgIGRlZmluZSBCT09TVF9UUlkgeyB0cnkKKyMgICAgZGVmaW5lIEJPT1NUX0NBVENIKHgpIGNhdGNoKHgpCisjICAgIGRlZmluZSBCT09TVF9SRVRIUk9XIHRocm93OworIyAgICBkZWZpbmUgQk9PU1RfQ0FUQ0hfRU5EIH0KKyNlbHNlCisjICAgIGlmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1RSWSB7IGlmICgiIikKKyMgICAgICAgIGRlZmluZSBCT09TVF9DQVRDSCh4KSBlbHNlIGlmICghIiIpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9UUlkgeyBpZiAodHJ1ZSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9DQVRDSCh4KSBlbHNlIGlmIChmYWxzZSkKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1JFVEhST1cKKyMgICAgZGVmaW5lIEJPT1NUX0NBVENIX0VORCB9CisjZW5kaWYKKworCisjZW5kaWYgCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9vYl9jYWxsX3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9vYl9jYWxsX3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVmMzc0MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL29iX2NhbGxfdHJhaXRzLmhwcApAQCAtMCwwICsxLDE2OCBAQAorLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eSBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKy8vCisvLyAgQ3JpcHBsZWQgdmVyc2lvbiBmb3IgY3JpcHBsZWQgY29tcGlsZXJzOgorLy8gIHNlZSBsaWJzL3V0aWxpdHkvY2FsbF90cmFpdHMuaHRtCisvLworCisvKiBSZWxlYXNlIG5vdGVzOgorICAgMDFzdCBPY3RvYmVyIDIwMDA6CisgICAgICBGaXhlZCBjYWxsX3RyYWl0cyBvbiBWQzYsIHVzaW5nICJwb29yIG1hbidzIHBhcnRpYWwgc3BlY2lhbGlzYXRpb24iLAorICAgICAgdXNpbmcgaWRlYXMgdGFrZW4gZnJvbSAiR2VuZXJhdGl2ZSBwcm9ncmFtbWluZyIgYnkgS3J6eXN6dG9mIEN6YXJuZWNraSAKKyAgICAgICYgVWxyaWNoIEVpc2VuZWNrZXIuCisqLworCisjaWZuZGVmIEJPT1NUX09CX0NBTExfVFJBSVRTX0hQUAorI2RlZmluZSBCT09TVF9PQl9DQUxMX1RSQUlUU19IUFAKKworI2lmbmRlZiBCT09TVF9DT05GSUdfSFBQCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX0FSSVRITUVUSUNfVFlQRV9UUkFJVFNfSFBQCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYXJpdGhtZXRpY190cmFpdHMuaHBwPgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0NPTVBPU0lURV9UWVBFX1RSQUlUU19IUFAKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb21wb3NpdGVfdHJhaXRzLmhwcD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3R7CisKKyNpZmRlZiBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisvLworLy8gdXNlIG1lbWJlciB0ZW1wbGF0ZXMgdG8gZW11bGF0ZQorLy8gcGFydGlhbCBzcGVjaWFsaXNhdGlvbjoKKy8vCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBzdGFuZGFyZF9jYWxsX3RyYWl0cworeworICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisgICB0eXBlZGVmIFQmIHJlZmVyZW5jZTsKKyAgIHR5cGVkZWYgY29uc3QgVCYgY29uc3RfcmVmZXJlbmNlOworICAgdHlwZWRlZiBjb25zdCBUJiBwYXJhbV90eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IHNpbXBsZV9jYWxsX3RyYWl0cworeworICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisgICB0eXBlZGVmIFQmIHJlZmVyZW5jZTsKKyAgIHR5cGVkZWYgY29uc3QgVCYgY29uc3RfcmVmZXJlbmNlOworICAgdHlwZWRlZiBjb25zdCBUIHBhcmFtX3R5cGU7Cit9OwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgcmVmZXJlbmNlX2NhbGxfdHJhaXRzCit7CisgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgVCByZWZlcmVuY2U7CisgICB0eXBlZGVmIFQgY29uc3RfcmVmZXJlbmNlOworICAgdHlwZWRlZiBUIHBhcmFtX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBwb2ludGVyLCBib29sIGFyaXRobWV0aWMsIGJvb2wgcmVmZXJlbmNlPgorc3RydWN0IGNhbGxfdHJhaXRzX2Nob29zZXIKK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgc3RydWN0IHJlYmluZAorICAgeworICAgICAgdHlwZWRlZiBzdGFuZGFyZF9jYWxsX3RyYWl0czxUPiB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgY2FsbF90cmFpdHNfY2hvb3Nlcjx0cnVlLCBmYWxzZSwgZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgc2ltcGxlX2NhbGxfdHJhaXRzPFQ+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBjYWxsX3RyYWl0c19jaG9vc2VyPGZhbHNlLCBmYWxzZSwgdHJ1ZT4KK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgc3RydWN0IHJlYmluZAorICAgeworICAgICAgdHlwZWRlZiByZWZlcmVuY2VfY2FsbF90cmFpdHM8VD4gdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBzaXplX2lzX3NtYWxsPiAKK3N0cnVjdCBjYWxsX3RyYWl0c19zaXplb2ZfY2hvb3NlcjIKK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgc3RydWN0IHNtYWxsX3JlYmluZAorICAgeworICAgICAgdHlwZWRlZiBzaW1wbGVfY2FsbF90cmFpdHM8VD4gc21hbGxfdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZTw+IAorc3RydWN0IGNhbGxfdHJhaXRzX3NpemVvZl9jaG9vc2VyMjxmYWxzZT4KK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgc3RydWN0IHNtYWxsX3JlYmluZAorICAgeworICAgICAgdHlwZWRlZiBzdGFuZGFyZF9jYWxsX3RyYWl0czxUPiBzbWFsbF90eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgY2FsbF90cmFpdHNfY2hvb3NlcjxmYWxzZSwgdHJ1ZSwgZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIGVudW0geyBzaXplb2ZfY2hvaWNlID0gKHNpemVvZihUKSA8PSBzaXplb2Yodm9pZCopKSB9OworICAgICAgdHlwZWRlZiBjYWxsX3RyYWl0c19zaXplb2ZfY2hvb3NlcjI8KHNpemVvZihUKSA8PSBzaXplb2Yodm9pZCopKT4gY2hvb3NlcjsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgY2hvb3Nlcjo6dGVtcGxhdGUgc21hbGxfcmViaW5kPFQ+IGJvdW5kX3R5cGU7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGJvdW5kX3R5cGU6OnNtYWxsX3R5cGUgdHlwZTsKKyAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGNhbGxfdHJhaXRzCit7Citwcml2YXRlOgorICAgIHR5cGVkZWYgZGV0YWlsOjpjYWxsX3RyYWl0c19jaG9vc2VyPAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPFQ+Ojp2YWx1ZSwgCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICA+IGNob29zZXI7CisgICB0eXBlZGVmIHR5cGVuYW1lIGNob29zZXI6OnRlbXBsYXRlIHJlYmluZDxUPiBib3VuZF90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBib3VuZF90eXBlOjp0eXBlIGNhbGxfdHJhaXRzX3R5cGU7CitwdWJsaWM6CisgICB0eXBlZGVmIHR5cGVuYW1lIGNhbGxfdHJhaXRzX3R5cGU6OnZhbHVlX3R5cGUgICAgICAgdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgY2FsbF90cmFpdHNfdHlwZTo6cmVmZXJlbmNlICAgICAgICByZWZlcmVuY2U7CisgICB0eXBlZGVmIHR5cGVuYW1lIGNhbGxfdHJhaXRzX3R5cGU6OmNvbnN0X3JlZmVyZW5jZSAgY29uc3RfcmVmZXJlbmNlOworICAgdHlwZWRlZiB0eXBlbmFtZSBjYWxsX3RyYWl0c190eXBlOjpwYXJhbV90eXBlICAgICAgIHBhcmFtX3R5cGU7Cit9OworCisjZWxzZQorLy8KKy8vIHNvcnJ5IGNhbGxfdHJhaXRzIGlzIGNvbXBsZXRlbHkgbm9uLWZ1bmN0aW9uYWwKKy8vIGJsYW1lIHlvdXIgYnJva2VuIGNvbXBpbGVyOgorLy8KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgY2FsbF90cmFpdHMKK3sKKyAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworICAgdHlwZWRlZiBUJiByZWZlcmVuY2U7CisgICB0eXBlZGVmIGNvbnN0IFQmIGNvbnN0X3JlZmVyZW5jZTsKKyAgIHR5cGVkZWYgY29uc3QgVCYgcGFyYW1fdHlwZTsKK307CisKKyNlbmRpZiAvLyBtZW1iZXIgdGVtcGxhdGVzCisKK30KKworI2VuZGlmIC8vIEJPT1NUX09CX0NBTExfVFJBSVRTX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvcmVmZXJlbmNlX2NvbnRlbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9kZXRhaWwvcmVmZXJlbmNlX2NvbnRlbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZDJjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9yZWZlcmVuY2VfY29udGVudC5ocHAKQEAgLTAsMCArMSwxNDEgQEAKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGJvb3N0IGRldGFpbC9yZWZlcmVuY2VfY29udGVudC5ocHAgaGVhZGVyIGZpbGUKKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgdXBkYXRlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHJldmlzaW9uIGhpc3RvcnkuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gQ29weXJpZ2h0IChjKSAyMDAzCisvLyBFcmljIEZyaWVkbWFuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX0RFVEFJTF9SRUZFUkVOQ0VfQ09OVEVOVF9IUFAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1JFRkVSRU5DRV9DT05URU5UX0hQUAorCisjaW5jbHVkZSAibmRuYm9vc3QvY29uZmlnLmhwcCIKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisjICAgaW5jbHVkZSAibmRuYm9vc3QvbXBsL2Jvb2wuaHBwIgorIyAgIGluY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2NvcHkuaHBwIgorI2Vsc2UKKyMgICBpbmNsdWRlICJuZG5ib29zdC9tcGwvaWYuaHBwIgorIyAgIGluY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHAiCisjZW5kaWYKKworI2luY2x1ZGUgIm5kbmJvb3N0L21wbC92b2lkLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIChkZXRhaWwpIGNsYXNzIHRlbXBsYXRlIHJlZmVyZW5jZV9jb250ZW50CisvLworLy8gTm9uLUFzc2lnbmFibGUgd3JhcHBlciBmb3IgcmVmZXJlbmNlcy4KKy8vCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVD4KK2NsYXNzIHJlZmVyZW5jZV9jb250ZW50Cit7Citwcml2YXRlOiAvLyByZXByZXNlbnRhdGlvbgorCisgICAgUmVmVCBjb250ZW50XzsKKworcHVibGljOiAvLyBzdHJ1Y3RvcnMKKworICAgIH5yZWZlcmVuY2VfY29udGVudCgpCisgICAgeworICAgIH0KKworICAgIHJlZmVyZW5jZV9jb250ZW50KFJlZlQgcikKKyAgICAgICAgOiBjb250ZW50XyggciApCisgICAgeworICAgIH0KKworICAgIHJlZmVyZW5jZV9jb250ZW50KGNvbnN0IHJlZmVyZW5jZV9jb250ZW50JiBvcGVyYW5kKQorICAgICAgICA6IGNvbnRlbnRfKCBvcGVyYW5kLmNvbnRlbnRfICkKKyAgICB7CisgICAgfQorCitwcml2YXRlOiAvLyBub24tQXNzaWduYWJsZQorCisgICAgcmVmZXJlbmNlX2NvbnRlbnQmIG9wZXJhdG9yPShjb25zdCByZWZlcmVuY2VfY29udGVudCYpOworCitwdWJsaWM6IC8vIHF1ZXJpZXMKKworICAgIFJlZlQgZ2V0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBjb250ZW50XzsKKyAgICB9CisKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIChkZXRhaWwpIG1ldGFmdW5jdGlvbiBtYWtlX3JlZmVyZW5jZV9jb250ZW50CisvLworLy8gV3JhcHMgd2l0aCByZWZlcmVuY2VfY29udGVudCBpZiBzcGVjaWZpZWQgdHlwZSBpcyByZWZlcmVuY2UuCisvLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCA9IG1wbDo6dm9pZF8+IHN0cnVjdCBtYWtlX3JlZmVyZW5jZV9jb250ZW50OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgbWFrZV9yZWZlcmVuY2VfY29udGVudAoreworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgbWFrZV9yZWZlcmVuY2VfY29udGVudDwgVCYgPgoreworICAgIHR5cGVkZWYgcmVmZXJlbmNlX2NvbnRlbnQ8VCY+IHR5cGU7Cit9OworCisjZWxzZSAvLyBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IG1ha2VfcmVmZXJlbmNlX2NvbnRlbnQKKyAgICA6IG1wbDo6aWZfPAorICAgICAgICAgIGlzX3JlZmVyZW5jZTxUPgorICAgICAgICAsIHJlZmVyZW5jZV9jb250ZW50PFQ+CisgICAgICAgICwgVAorICAgICAgICA+Cit7Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiB3b3JrYXJvdW5kCisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgbWFrZV9yZWZlcmVuY2VfY29udGVudDwgbXBsOjp2b2lkXyA+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IGFwcGx5CisgICAgICAgIDogbWFrZV9yZWZlcmVuY2VfY29udGVudDxUPgorICAgIHsKKyAgICB9OworCisgICAgdHlwZWRlZiBtcGw6OnZvaWRfIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gcmVmZXJlbmNlX2NvbnRlbnQ8VCY+IHR5cGUgdHJhaXRzIHNwZWNpYWxpemF0aW9ucworLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGhhc19ub3Rocm93X2NvcHk8CisgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OnJlZmVyZW5jZV9jb250ZW50PCBUJiA+CisgICAgPgorICAgIDogbXBsOjp0cnVlXworeworfTsKKworI2VuZGlmIC8vICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9ERVRBSUxfUkVGRVJFTkNFX0NPTlRFTlRfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIzOTcwOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcApAQCAtMCwwICsxLDEzNSBAQAorI2lmbmRlZiBCT09TVF9ERVRBSUxfU1BfVFlQRUlORk9fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0RFVEFJTF9TUF9UWVBFSU5GT19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vICBkZXRhaWwvc3BfdHlwZWluZm8uaHBwCisvLworLy8gIENvcHlyaWdodCAyMDA3IFBldGVyIERpbW92CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgZGVmaW5lZCggQk9PU1RfTk9fVFlQRUlEICkKKworI2luY2x1ZGUgPG5kbmJvb3N0L2N1cnJlbnRfZnVuY3Rpb24uaHBwPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwX3R5cGVpbmZvCit7Citwcml2YXRlOgorCisgICAgc3BfdHlwZWluZm8oIHNwX3R5cGVpbmZvIGNvbnN0JiApOworICAgIHNwX3R5cGVpbmZvJiBvcGVyYXRvcj0oIHNwX3R5cGVpbmZvIGNvbnN0JiApOworCisgICAgY2hhciBjb25zdCAqIG5hbWVfOworCitwdWJsaWM6CisKKyAgICBleHBsaWNpdCBzcF90eXBlaW5mbyggY2hhciBjb25zdCAqIG5hbWUgKTogbmFtZV8oIG5hbWUgKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oIHNwX3R5cGVpbmZvIGNvbnN0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMgPT0gJnJoczsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oIHNwX3R5cGVpbmZvIGNvbnN0JiByaHMgKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMgIT0gJnJoczsKKyAgICB9CisKKyAgICBib29sIGJlZm9yZSggc3BfdHlwZWluZm8gY29uc3QmIHJocyApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RkOjpsZXNzPCBzcF90eXBlaW5mbyBjb25zdCogPigpKCB0aGlzLCAmcmhzICk7CisgICAgfQorCisgICAgY2hhciBjb25zdCogbmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbmFtZV87CisgICAgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNwX3R5cGVpZF8KK3sKKyAgICBzdGF0aWMgc3BfdHlwZWluZm8gdGlfOworCisgICAgc3RhdGljIGNoYXIgY29uc3QgKiBuYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OOworICAgIH0KK307CisKKyNpZiBkZWZpbmVkKF9fU1VOUFJPX0NDKQorLy8gc2VlICM0MTk5LCB0aGUgU3VuIFN0dWRpbyBjb21waWxlciBnZXRzIGNvbmZ1c2VkIGFib3V0IHN0YXRpYyBpbml0aWFsaXphdGlvbiAKKy8vIGNvbnN0cnVjdG9yIGFyZ3VtZW50cy4gQnV0IGFuIGFzc2lnbm1lbnQgd29ya3MganVzdCBmaW5lLiAKK3RlbXBsYXRlPGNsYXNzIFQ+IHNwX3R5cGVpbmZvIHNwX3R5cGVpZF88IFQgPjo6dGlfID0gc3BfdHlwZWlkXzwgVCA+OjpuYW1lKCk7CisjZWxzZQordGVtcGxhdGU8Y2xhc3MgVD4gc3BfdHlwZWluZm8gc3BfdHlwZWlkXzwgVCA+Ojp0aV8oc3BfdHlwZWlkXzwgVCA+OjpuYW1lKCkpOworI2VuZGlmCisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzcF90eXBlaWRfPCBUICYgPjogc3BfdHlwZWlkXzwgVCA+Cit7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc3BfdHlwZWlkXzwgVCBjb25zdCA+OiBzcF90eXBlaWRfPCBUID4KK3sKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzcF90eXBlaWRfPCBUIHZvbGF0aWxlID46IHNwX3R5cGVpZF88IFQgPgoreworfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNwX3R5cGVpZF88IFQgY29uc3Qgdm9sYXRpbGUgPjogc3BfdHlwZWlkXzwgVCA+Cit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2RlZmluZSBCT09TVF9TUF9UWVBFSUQoVCkgKG5kbmJvb3N0OjpkZXRhaWw6OnNwX3R5cGVpZF88VD46OnRpXykKKworI2Vsc2UKKworI2luY2x1ZGUgPHR5cGVpbmZvPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCisjaWYgZGVmaW5lZCggQk9PU1RfTk9fU1REX1RZUEVJTkZPICkKKwordHlwZWRlZiA6OnR5cGVfaW5mbyBzcF90eXBlaW5mbzsKKworI2Vsc2UKKwordHlwZWRlZiBzdGQ6OnR5cGVfaW5mbyBzcF90eXBlaW5mbzsKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZGVmaW5lIEJPT1NUX1NQX1RZUEVJRChUKSB0eXBlaWQoVCkKKworI2VuZGlmCisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9ERVRBSUxfU1BfVFlQRUlORk9fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NjhlNDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcApAQCAtMCwwICsxLDI2NyBAQAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIFdPUktBUk9VTkRfRFdBMjAwMjEyNl9IUFAKKyMgZGVmaW5lIFdPUktBUk9VTkRfRFdBMjAwMjEyNl9IUFAKKworLy8gQ29tcGlsZXIvbGlicmFyeSB2ZXJzaW9uIHdvcmthcm91bmQgbWFjcm8KKy8vCisvLyBVc2FnZToKKy8vCisvLyAgICAgI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorLy8gICAgICAgIC8vIHdvcmthcm91bmQgZm9yIGVWQzQgYW5kIFZDNgorLy8gICAgICAgIC4uLiAvLyB3b3JrYXJvdW5kIGNvZGUgaGVyZQorLy8gICAgICNlbmRpZgorLy8KKy8vIFdoZW4gQk9PU1RfU1RSSUNUX0NPTkZJRyBpcyBkZWZpbmVkLCBleHBhbmRzIHRvIDAuIE90aGVyd2lzZSwgdGhlCisvLyBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIHVuZGVmaW5lZCBvciBleHBhbmQgdG8gYSBudW1lcmljCisvLyB2YWx1ZS4gVGhlIGFib3ZlIGV4cGFuZHMgdG86CisvLworLy8gICAgIChCT09TVF9NU1ZDKSAhPSAwICYmIChCT09TVF9NU1ZDKSA8IDEzMDAKKy8vCisvLyBXaGVuIHVzZWQgZm9yIHdvcmthcm91bmRzIHRoYXQgYXBwbHkgdG8gdGhlIGxhdGVzdCBrbm93biB2ZXJzaW9uIAorLy8gYW5kIGFsbCBlYXJsaWVyIHZlcnNpb25zIG9mIGEgY29tcGlsZXIsIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbiAKKy8vIHNob3VsZCBiZSBvYnNlcnZlZDoKKy8vCisvLyAgICAgI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgQk9PU1RfVEVTVEVEX0FUKDEzMDEpKQorLy8KKy8vIFRoZSB2ZXJzaW9uIG51bWJlciBpbiB0aGlzIGNhc2UgY29ycmVzcG9uZHMgdG8gdGhlIGxhc3QgdmVyc2lvbiBpbgorLy8gd2hpY2ggdGhlIHdvcmthcm91bmQgd2FzIGtub3duIHRvIGhhdmUgYmVlbiByZXF1aXJlZC4gV2hlbgorLy8gQk9PU1RfREVURUNUX09VVERBVEVEX1dPUktBUk9VTkRTIGlzIG5vdCB0aGUgZGVmaW5lZCwgdGhlIG1hY3JvCisvLyBCT09TVF9URVNURURfQVQoeCkgZXhwYW5kcyB0byAiIT0gMCIsIHdoaWNoIGVmZmVjdGl2ZWx5IGFjdGl2YXRlcworLy8gdGhlIHdvcmthcm91bmQgZm9yIGFueSB2ZXJzaW9uIG9mIHRoZSBjb21waWxlci4gV2hlbgorLy8gQk9PU1RfREVURUNUX09VVERBVEVEX1dPUktBUk9VTkRTIGlzIGRlZmluZWQsIGEgY29tcGlsZXIgd2FybmluZyBvcgorLy8gZXJyb3Igd2lsbCBiZSBpc3N1ZWQgaWYgdGhlIGNvbXBpbGVyIHZlcnNpb24gZXhjZWVkcyB0aGUgYXJndW1lbnQKKy8vIHRvIEJPT1NUX1RFU1RFRF9BVCgpLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBsb2NhdGUgd29ya2Fyb3VuZHMgd2hpY2gKKy8vIG1heSBiZSBvYnNvbGV0ZWQgYnkgbmV3ZXIgdmVyc2lvbnMuCisKKyMgaWZuZGVmIEJPT1NUX1NUUklDVF9DT05GSUcKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKyNpZm5kZWYgX19CT1JMQU5EQ19fCisjZGVmaW5lIF9fQk9STEFORENfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fQk9STEFORENfX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0NPREVHRUFSQ19fCisjZGVmaW5lIF9fQ09ERUdFQVJDX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0NPREVHRUFSQ19fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9NU0NfVkVSCisjZGVmaW5lIF9NU0NfVkVSX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX01TQ19WRVJfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX01TQ19GVUxMX1ZFUgorI2RlZmluZSBfTVNDX0ZVTExfVkVSX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX01TQ19GVUxMX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NU1ZDCisjZGVmaW5lIEJPT1NUX01TVkNfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBCT09TVF9NU1ZDX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX01TVkNfRlVMTF9WRVIKKyNkZWZpbmUgQk9PU1RfTVNWQ19GVUxMX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIEJPT1NUX01TVkNfRlVMTF9WRVJfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19HTlVDX18KKyNkZWZpbmUgX19HTlVDX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0dOVUNfX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0dOVUNfTUlOT1JfXworI2RlZmluZSBfX0dOVUNfTUlOT1JfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fR05VQ19NSU5PUl9fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fR05VQ19QQVRDSExFVkVMX18KKyNkZWZpbmUgX19HTlVDX1BBVENITEVWRUxfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fR05VQ19QQVRDSExFVkVMX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19JQk1DUFBfXworI2RlZmluZSBfX0lCTUNQUF9fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19JQk1DUFBfX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX1NVTlBST19DQworI2RlZmluZSBfX1NVTlBST19DQ19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fU1VOUFJPX0NDX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fREVDQ1hYX1ZFUgorI2RlZmluZSBfX0RFQ0NYWF9WRVJfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0RFQ0NYWF9WRVJfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19NV0VSS1NfXworI2RlZmluZSBfX01XRVJLU19fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19NV0VSS1NfX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0VER19fCisjZGVmaW5lIF9fRURHX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0VER19fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fRURHX1ZFUlNJT05fXworI2RlZmluZSBfX0VER19WRVJTSU9OX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0VER19WRVJTSU9OX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19IUF9hQ0MKKyNkZWZpbmUgX19IUF9hQ0NfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0hQX2FDQ19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX2hweHN0ZDk4CisjZGVmaW5lIF9faHB4c3RkOThfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX2hweHN0ZDk4X1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9DUkFZQworI2RlZmluZSBfQ1JBWUNfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfQ1JBWUNfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19ETUNfXworI2RlZmluZSBfX0RNQ19fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19ETUNfX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBNUFdfQ1BMVVMKKyNkZWZpbmUgTVBXX0NQTFVTX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgTVBXX0NQTFVTX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fQ09NT19fCisjZGVmaW5lIF9fQ09NT19fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19DT01PX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19DT01PX1ZFUlNJT05fXworI2RlZmluZSBfX0NPTU9fVkVSU0lPTl9fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19DT01PX1ZFUlNJT05fX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0lOVEVMX0NPTVBJTEVSCisjZGVmaW5lIF9fSU5URUxfQ09NUElMRVJfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0lOVEVMX0NPTVBJTEVSX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fSUNMCisjZGVmaW5lIF9fSUNMX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19JQ0xfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX0NPTVBJTEVSX1ZFUlNJT04KKyNkZWZpbmUgX0NPTVBJTEVSX1ZFUlNJT05fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfQ09NUElMRVJfVkVSU0lPTl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorCisjaWZuZGVmIF9SV1NURF9WRVIKKyNkZWZpbmUgX1JXU1REX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9SV1NURF9WRVJfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfUldTVERfVkVSCisjZGVmaW5lIEJPT1NUX1JXU1REX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1JXU1REX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0dMSUJDUFBfXworI2RlZmluZSBfX0dMSUJDUFBfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fR0xJQkNQUF9fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9HTElCQ1hYX1VTRV9DOTlfRlBfTUFDUk9TX0RZTkFNSUMKKyNkZWZpbmUgX0dMSUJDWFhfVVNFX0M5OV9GUF9NQUNST1NfRFlOQU1JQ19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9HTElCQ1hYX1VTRV9DOTlfRlBfTUFDUk9TX0RZTkFNSUNfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19TR0lfU1RMX1BPUlQKKyNkZWZpbmUgX19TR0lfU1RMX1BPUlRfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX1NHSV9TVExfUE9SVF9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfU1RMUE9SVF9WRVJTSU9OCisjZGVmaW5lIF9TVExQT1JUX1ZFUlNJT05fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfU1RMUE9SVF9WRVJTSU9OX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fTElCQ09NT19WRVJTSU9OX18KKyNkZWZpbmUgX19MSUJDT01PX1ZFUlNJT05fX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fTElCQ09NT19WRVJTSU9OX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX0NQUExJQl9WRVIKKyNkZWZpbmUgX0NQUExJQl9WRVJfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfQ1BQTElCX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OCisjZGVmaW5lIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT05fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSU5URUxfV0lOCisjZGVmaW5lIEJPT1NUX0lOVEVMX1dJTl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0lOVEVMX1dJTl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9ESU5LVU1XQVJFX1NURExJQgorI2RlZmluZSBCT09TVF9ESU5LVU1XQVJFX1NURExJQl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0RJTktVTVdBUkVfU1RETElCX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0lOVEVMCisjZGVmaW5lIEJPT1NUX0lOVEVMX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfSU5URUxfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKy8vIEFsd2F5cyBkZWZpbmUgdG8gemVybywgaWYgaXQncyB1c2VkIGl0J2xsIGJlIGRlZmluZWQgbXkgTVBMOgorI2RlZmluZSBCT09TVF9NUExfQ0ZHX0dDQ19XT1JLQVJPVU5EX0dVQVJEIDAKKworIyAgZGVmaW5lIEJPT1NUX1dPUktBUk9VTkQoc3ltYm9sLCB0ZXN0KSAgICAgICAgICAgICAgICBcCisgICAgICAgICAoKHN5bWJvbCAjIyBfV09SS0FST1VORF9HVUFSRCArIDAgPT0gMCkgJiYgICAgIFwKKyAgICAgICAgIChzeW1ib2wgIT0gMCkgJiYgKDEgJSAoKCAoc3ltYm9sIHRlc3QpICkgKyAxKSkpCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gXiAgICAgICAgICAgXiBeCisvLyBUaGUgZXh0cmEgbGV2ZWwgb2YgcGFyZW50aGVzaXMgbmVzdGluZyBhYm92ZSwgYWxvbmcgd2l0aCB0aGUKKy8vIEJPT1NUX09QRU5fUEFSRU4gaW5kaXJlY3Rpb24gYmVsb3csIGlzIHJlcXVpcmVkIHRvIHNhdGlzZnkgdGhlCisvLyBicm9rZW4gcHJlcHJvY2Vzc29yIGluIE1XQ1cgOC4zIGFuZCBlYXJsaWVyLgorLy8KKy8vIFRoZSBiYXNpYyBtZWNoYW5pc20gd29ya3MgYXMgZm9sbG93czoKKy8vICAgICAgKHN5bWJvbCB0ZXN0KSArIDEgICAgICAgID0+ICAgaWYgKHN5bWJvbCB0ZXN0KSB0aGVuIDIgZWxzZSAxCisvLyAgICAgIDEgJSAoKHN5bWJvbCB0ZXN0KSArIDEpICA9PiAgIGlmIChzeW1ib2wgdGVzdCkgdGhlbiAxIGVsc2UgMAorLy8KKy8vIFRoZSBjb21wbGljYXRpb24gd2l0aCAlIGlzIGZvciBjb29wZXJhdGlvbiB3aXRoIEJPT1NUX1RFU1RFRF9BVCgpLgorLy8gV2hlbiAidGVzdCIgaXMgQk9PU1RfVEVTVEVEX0FUKHgpIGFuZAorLy8gQk9PU1RfREVURUNUX09VVERBVEVEX1dPUktBUk9VTkRTIGlzICNkZWZpbmVkLAorLy8KKy8vICAgICAgc3ltYm9sIHRlc3QgICAgICAgICAgICAgID0+ICAgaWYgKHN5bWJvbCA8PSB4KSB0aGVuIDEgZWxzZSAtMQorLy8gICAgICAoc3ltYm9sIHRlc3QpICsgMSAgICAgICAgPT4gICBpZiAoc3ltYm9sIDw9IHgpIHRoZW4gMiBlbHNlIDAKKy8vICAgICAgMSAlICgoc3ltYm9sIHRlc3QpICsgMSkgID0+ICAgaWYgKHN5bWJvbCA8PSB4KSB0aGVuIDEgZWxzZSBkaXZpZGUtYnktemVybworLy8KKworIyAgaWZkZWYgQk9PU1RfREVURUNUX09VVERBVEVEX1dPUktBUk9VTkRTCisjICAgZGVmaW5lIEJPT1NUX09QRU5fUEFSRU4gKAorIyAgIGRlZmluZSBCT09TVF9URVNURURfQVQodmFsdWUpICA+IHZhbHVlKSA/KC0xKTogQk9PU1RfT1BFTl9QQVJFTiAxCisjICBlbHNlCisjICAgZGVmaW5lIEJPT1NUX1RFU1RFRF9BVCh2YWx1ZSkgIT0gKCh2YWx1ZSktKHZhbHVlKSkKKyMgIGVuZGlmCisKKyMgZWxzZQorCisjICBkZWZpbmUgQk9PU1RfV09SS0FST1VORChzeW1ib2wsIHRlc3QpIDAKKworIyBlbmRpZiAKKworI2VuZGlmIC8vIFdPUktBUk9VTkRfRFdBMjAwMjEyNl9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZXhjZXB0aW9uL2N1cnJlbnRfZXhjZXB0aW9uX2Nhc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9leGNlcHRpb24vY3VycmVudF9leGNlcHRpb25fY2FzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRkYTE2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZXhjZXB0aW9uL2N1cnJlbnRfZXhjZXB0aW9uX2Nhc3QuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKy8vQ29weXJpZ2h0IChjKSAyMDA2LTIwMDkgRW1pbCBEb3RjaGV2c2tpIGFuZCBSZXZlcmdlIFN0dWRpb3MsIEluYy4KKworLy9EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvL2ZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIFVVSURfN0U4M0MxNjYyMDA4MTFERTg4NUU4MjYxNTZEODk1OTMKKyNkZWZpbmUgVVVJRF83RTgzQzE2NjIwMDgxMURFODg1RTgyNjE1NkQ4OTU5MworI2lmIChfX0dOVUNfXyoxMDArX19HTlVDX01JTk9SX18+MzAxKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgorI2VuZGlmCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoQk9PU1RfRVhDRVBUSU9OX0VOQUJMRV9XQVJOSU5HUykKKyNwcmFnbWEgd2FybmluZyhwdXNoLDEpCisjZW5kaWYKKworbmFtZXNwYWNlCituZG5ib29zdAorICAgIHsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICBpbmxpbmUKKyAgICBFICoKKyAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0KCkKKyAgICAgICAgeworICAgICAgICB0cnkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93OworICAgICAgICAgICAgfQorICAgICAgICBjYXRjaCgKKyAgICAgICAgRSAmIGUgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICZlOworICAgICAgICAgICAgfQorICAgICAgICBjYXRjaCgKKyAgICAgICAgLi4uKQorICAgICAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvYXR0cmlidXRlX25vcmV0dXJuLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZXhjZXB0aW9uL2RldGFpbC9hdHRyaWJ1dGVfbm9yZXR1cm4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlOWYwMzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvYXR0cmlidXRlX25vcmV0dXJuLmhwcApAQCAtMCwwICsxLDE3IEBACisvL0NvcHlyaWdodCAoYykgMjAwOSBFbWlsIERvdGNoZXZza2kgYW5kIFJldmVyZ2UgU3R1ZGlvcywgSW5jLgorCisvL0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgVVVJRF82MTUzMUFCMDY4MDYxMURFQURENTg0Njg1NUQ4OTU5MworI2RlZmluZSBVVUlEXzYxNTMxQUIwNjgwNjExREVBREQ1ODQ2ODU1RDg5NTkzCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorI2RlZmluZSBCT09TVF9BVFRSSUJVVEVfTk9SRVRVUk4gX19kZWNsc3BlYyhub3JldHVybikKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisjZGVmaW5lIEJPT1NUX0FUVFJJQlVURV9OT1JFVFVSTiBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfQVRUUklCVVRFX05PUkVUVVJOCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvZXJyb3JfaW5mb19pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZXhjZXB0aW9uL2RldGFpbC9lcnJvcl9pbmZvX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NDc4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvZXJyb3JfaW5mb19pbXBsLmhwcApAQCAtMCwwICsxLDc0IEBACisvL0NvcHlyaWdodCAoYykgMjAwNi0yMDEwIEVtaWwgRG90Y2hldnNraSBhbmQgUmV2ZXJnZSBTdHVkaW9zLCBJbmMuCisKKy8vRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy9maWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBVVUlEX0NFNjk4M0FDNzUzNDExRERBNzY0MjQ3OTU2RDg5NTkzCisjZGVmaW5lIFVVSURfQ0U2OTgzQUM3NTM0MTFEREE3NjQyNDc5NTZEODk1OTMKKyNpZiAoX19HTlVDX18qMTAwK19fR05VQ19NSU5PUl9fPjMwMSkgJiYgIWRlZmluZWQoQk9PU1RfRVhDRVBUSU9OX0VOQUJMRV9XQVJOSU5HUykKKyNwcmFnbWEgR0NDIHN5c3RlbV9oZWFkZXIKKyNlbmRpZgorI2lmIGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIHdhcm5pbmcocHVzaCwxKQorI2VuZGlmCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZQorbmRuYm9vc3QKKyAgICB7CisgICAgbmFtZXNwYWNlCisgICAgZXhjZXB0aW9uX2RldGFpbAorICAgICAgICB7CisgICAgICAgIGNsYXNzCisgICAgICAgIGVycm9yX2luZm9fYmFzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgcHVibGljOgorCisgICAgICAgICAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG5hbWVfdmFsdWVfc3RyaW5nKCkgY29uc3QgPSAwOworCisgICAgICAgICAgICBwcm90ZWN0ZWQ6CisKKyAgICAgICAgICAgIHZpcnR1YWwKKyAgICAgICAgICAgIH5lcnJvcl9pbmZvX2Jhc2UoKSB0aHJvdygpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBUYWcsY2xhc3MgVD4KKyAgICBjbGFzcworICAgIGVycm9yX2luZm86CisgICAgICAgIHB1YmxpYyBleGNlcHRpb25fZGV0YWlsOjplcnJvcl9pbmZvX2Jhc2UKKyAgICAgICAgeworICAgICAgICBwdWJsaWM6CisKKyAgICAgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSBjb25zdCAmIHZhbHVlICk7CisgICAgICAgIH5lcnJvcl9pbmZvKCkgdGhyb3coKTsKKworICAgICAgICB2YWx1ZV90eXBlIGNvbnN0ICYKKyAgICAgICAgdmFsdWUoKSBjb25zdAorICAgICAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlXzsKKyAgICAgICAgICAgIH0KKworICAgICAgICB2YWx1ZV90eXBlICYKKyAgICAgICAgdmFsdWUoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlXzsKKyAgICAgICAgICAgIH0KKworICAgICAgICBwcml2YXRlOgorCisgICAgICAgIHN0ZDo6c3RyaW5nIG5hbWVfdmFsdWVfc3RyaW5nKCkgY29uc3Q7CisKKyAgICAgICAgdmFsdWVfdHlwZSB2YWx1ZV87CisgICAgICAgIH07CisgICAgfQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoQk9PU1RfRVhDRVBUSU9OX0VOQUJMRV9XQVJOSU5HUykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9leGNlcHRpb24vZGV0YWlsL3R5cGVfaW5mby5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvdHlwZV9pbmZvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWM2NzFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9leGNlcHRpb24vZGV0YWlsL3R5cGVfaW5mby5ocHAKQEAgLTAsMCArMSw4MyBAQAorLy9Db3B5cmlnaHQgKGMpIDIwMDYtMjAxMCBFbWlsIERvdGNoZXZza2kgYW5kIFJldmVyZ2UgU3R1ZGlvcywgSW5jLgorCisvL0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgVVVJRF9DM0UxNzQxQzc1NDMxMUREQjI4MzRDQ0E1NUQ4OTU5MworI2RlZmluZSBVVUlEX0MzRTE3NDFDNzU0MzExRERCMjgzNENDQTU1RDg5NTkzCisjaWYgKF9fR05VQ19fKjEwMCtfX0dOVUNfTUlOT1JfXz4zMDEpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gsMSkKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2lmbmRlZiBCT09TVF9OT19UWVBFSUQKKyNpbmNsdWRlIDxuZG5ib29zdC91bml0cy9kZXRhaWwvdXRpbGl0eS5ocHA+CisjZW5kaWYKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZQorbmRuYm9vc3QKKyAgICB7CisgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgaW5saW5lCisgICAgc3RkOjpzdHJpbmcKKyAgICB0YWdfdHlwZV9uYW1lKCkKKyAgICAgICAgeworI2lmZGVmIEJPT1NUX05PX1RZUEVJRAorICAgICAgICByZXR1cm4gQk9PU1RfQ1VSUkVOVF9GVU5DVElPTjsKKyNlbHNlCisgICAgICAgIHJldHVybiB1bml0czo6ZGV0YWlsOjpkZW1hbmdsZSh0eXBlaWQoVCopLm5hbWUoKSk7CisjZW5kaWYKKyAgICAgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgaW5saW5lCisgICAgc3RkOjpzdHJpbmcKKyAgICB0eXBlX25hbWUoKQorICAgICAgICB7CisjaWZkZWYgQk9PU1RfTk9fVFlQRUlECisgICAgICAgIHJldHVybiBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIHVuaXRzOjpkZXRhaWw6OmRlbWFuZ2xlKHR5cGVpZChUKS5uYW1lKCkpOworI2VuZGlmCisgICAgICAgIH0KKworICAgIG5hbWVzcGFjZQorICAgIGV4Y2VwdGlvbl9kZXRhaWwKKyAgICAgICAgeworICAgICAgICBzdHJ1Y3QKKyAgICAgICAgdHlwZV9pbmZvXworICAgICAgICAgICAgeworICAgICAgICAgICAgZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAqIHR5cGVfOworCisgICAgICAgICAgICBleHBsaWNpdAorICAgICAgICAgICAgdHlwZV9pbmZvXyggZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAmIHR5cGUgKToKKyAgICAgICAgICAgICAgICB0eXBlXygmdHlwZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcmllbmQKKyAgICAgICAgICAgIGJvb2wKKyAgICAgICAgICAgIG9wZXJhdG9yPCggdHlwZV9pbmZvXyBjb25zdCAmIGEsIHR5cGVfaW5mb18gY29uc3QgJiBiICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDAhPShhLnR5cGVfLT5iZWZvcmUoKmIudHlwZV8pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgfQorCisjZGVmaW5lIEJPT1NUX0VYQ0VQVElPTl9TVEFUSUNfVFlQRUlEKFQpIDo6bmRuYm9vc3Q6OmV4Y2VwdGlvbl9kZXRhaWw6OnR5cGVfaW5mb18oQk9PU1RfU1BfVFlQRUlEKFQpKQorCisjaWZuZGVmIEJPT1NUX05PX1JUVEkKKyNkZWZpbmUgQk9PU1RfRVhDRVBUSU9OX0RZTkFNSUNfVFlQRUlEKHgpIDo6bmRuYm9vc3Q6OmV4Y2VwdGlvbl9kZXRhaWw6OnR5cGVfaW5mb18odHlwZWlkKHgpKQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9leGNlcHRpb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9leGNlcHRpb24vZXhjZXB0aW9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTk3MjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9leGNlcHRpb24vZXhjZXB0aW9uLmhwcApAQCAtMCwwICsxLDQ4MyBAQAorLy9Db3B5cmlnaHQgKGMpIDIwMDYtMjAwOSBFbWlsIERvdGNoZXZza2kgYW5kIFJldmVyZ2UgU3R1ZGlvcywgSW5jLgorCisvL0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgVVVJRF8yNzREQTM2NjAwNEUxMURDQjFEREZFMkU1NkQ4OTU5MworI2RlZmluZSBVVUlEXzI3NERBMzY2MDA0RTExRENCMURERkUyRTU2RDg5NTkzCisjaWYgKF9fR05VQ19fKjEwMCtfX0dOVUNfTUlOT1JfXz4zMDEpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gsMSkKKyNlbmRpZgorCituYW1lc3BhY2UKK25kbmJvb3N0CisgICAgeworICAgIG5hbWVzcGFjZQorICAgIGV4Y2VwdGlvbl9kZXRhaWwKKyAgICAgICAgeworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgY2xhc3MKKyAgICAgICAgcmVmY291bnRfcHRyCisgICAgICAgICAgICB7CisgICAgICAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgIHJlZmNvdW50X3B0cigpOgorICAgICAgICAgICAgICAgIHB4XygwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH5yZWZjb3VudF9wdHIoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZWxlYXNlKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZWZjb3VudF9wdHIoIHJlZmNvdW50X3B0ciBjb25zdCAmIHggKToKKyAgICAgICAgICAgICAgICBweF8oeC5weF8pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFkZF9yZWYoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlZmNvdW50X3B0ciAmCisgICAgICAgICAgICBvcGVyYXRvcj0oIHJlZmNvdW50X3B0ciBjb25zdCAmIHggKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBhZG9wdCh4LnB4Xyk7CisgICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZAorICAgICAgICAgICAgYWRvcHQoIFQgKiBweCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICBweF89cHg7CisgICAgICAgICAgICAgICAgYWRkX3JlZigpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVCAqCisgICAgICAgICAgICBnZXQoKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcHhfOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJpdmF0ZToKKworICAgICAgICAgICAgVCAqIHB4XzsKKworICAgICAgICAgICAgdm9pZAorICAgICAgICAgICAgYWRkX3JlZigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmKCBweF8gKQorICAgICAgICAgICAgICAgICAgICBweF8tPmFkZF9yZWYoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQKKyAgICAgICAgICAgIHJlbGVhc2UoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiggcHhfICYmIHB4Xy0+cmVsZWFzZSgpICkKKyAgICAgICAgICAgICAgICAgICAgcHhfPTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVGFnLGNsYXNzIFQ+CisgICAgY2xhc3MgZXJyb3JfaW5mbzsKKworICAgIHR5cGVkZWYgZXJyb3JfaW5mbzxzdHJ1Y3QgdGhyb3dfZnVuY3Rpb25fLGNoYXIgY29uc3QgKj4gdGhyb3dfZnVuY3Rpb247CisgICAgdHlwZWRlZiBlcnJvcl9pbmZvPHN0cnVjdCB0aHJvd19maWxlXyxjaGFyIGNvbnN0ICo+IHRocm93X2ZpbGU7CisgICAgdHlwZWRlZiBlcnJvcl9pbmZvPHN0cnVjdCB0aHJvd19saW5lXyxpbnQ+IHRocm93X2xpbmU7CisKKyAgICB0ZW1wbGF0ZSA8PgorICAgIGNsYXNzCisgICAgZXJyb3JfaW5mbzx0aHJvd19mdW5jdGlvbl8sY2hhciBjb25zdCAqPgorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBjaGFyIGNvbnN0ICogdmFsdWVfdHlwZTsKKyAgICAgICAgdmFsdWVfdHlwZSB2XzsKKyAgICAgICAgZXhwbGljaXQKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSB2ICk6CisgICAgICAgICAgICB2Xyh2KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBjbGFzcworICAgIGVycm9yX2luZm88dGhyb3dfZmlsZV8sY2hhciBjb25zdCAqPgorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBjaGFyIGNvbnN0ICogdmFsdWVfdHlwZTsKKyAgICAgICAgdmFsdWVfdHlwZSB2XzsKKyAgICAgICAgZXhwbGljaXQKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSB2ICk6CisgICAgICAgICAgICB2Xyh2KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBjbGFzcworICAgIGVycm9yX2luZm88dGhyb3dfbGluZV8saW50PgorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBpbnQgdmFsdWVfdHlwZTsKKyAgICAgICAgdmFsdWVfdHlwZSB2XzsKKyAgICAgICAgZXhwbGljaXQKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSB2ICk6CisgICAgICAgICAgICB2Xyh2KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorICAgICAgICB9OworCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgaWYgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gMSkgfHwgKF9fR05VQ19fID4gNCkKKyMgIHByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwdXNoIChkZWZhdWx0KQorIyBlbmRpZgorI2VuZGlmCisgICAgY2xhc3MgZXhjZXB0aW9uOworI2lmIGRlZmluZWQoX19HTlVDX18pCisjIGlmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDEpIHx8IChfX0dOVUNfXyA+IDQpCisjICBwcmFnbWEgR0NDIHZpc2liaWxpdHkgcG9wCisjIGVuZGlmCisjZW5kaWYKKworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIGNsYXNzIHNoYXJlZF9wdHI7CisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyAgICAgICAgY2xhc3MgZXJyb3JfaW5mb19iYXNlOworICAgICAgICBzdHJ1Y3QgdHlwZV9pbmZvXzsKKworICAgICAgICBzdHJ1Y3QKKyAgICAgICAgZXJyb3JfaW5mb19jb250YWluZXIKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHZpcnR1YWwgY2hhciBjb25zdCAqIGRpYWdub3N0aWNfaW5mb3JtYXRpb24oIGNoYXIgY29uc3QgKiApIGNvbnN0ID0gMDsKKyAgICAgICAgICAgIHZpcnR1YWwgc2hhcmVkX3B0cjxlcnJvcl9pbmZvX2Jhc2U+IGdldCggdHlwZV9pbmZvXyBjb25zdCAmICkgY29uc3QgPSAwOworICAgICAgICAgICAgdmlydHVhbCB2b2lkIHNldCggc2hhcmVkX3B0cjxlcnJvcl9pbmZvX2Jhc2U+IGNvbnN0ICYsIHR5cGVfaW5mb18gY29uc3QgJiApID0gMDsKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRfcmVmKCkgY29uc3QgPSAwOworICAgICAgICAgICAgdmlydHVhbCBib29sIHJlbGVhc2UoKSBjb25zdCA9IDA7CisgICAgICAgICAgICB2aXJ0dWFsIHJlZmNvdW50X3B0cjxleGNlcHRpb25fZGV0YWlsOjplcnJvcl9pbmZvX2NvbnRhaW5lcj4gY2xvbmUoKSBjb25zdCA9IDA7CisKKyAgICAgICAgICAgIHByb3RlY3RlZDoKKworICAgICAgICAgICAgfmVycm9yX2luZm9fY29udGFpbmVyKCkgdGhyb3coKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcz4KKyAgICAgICAgc3RydWN0IGdldF9pbmZvOworCisgICAgICAgIHRlbXBsYXRlIDw+CisgICAgICAgIHN0cnVjdCBnZXRfaW5mbzx0aHJvd19mdW5jdGlvbj47CisKKyAgICAgICAgdGVtcGxhdGUgPD4KKyAgICAgICAgc3RydWN0IGdldF9pbmZvPHRocm93X2ZpbGU+OworCisgICAgICAgIHRlbXBsYXRlIDw+CisgICAgICAgIHN0cnVjdCBnZXRfaW5mbzx0aHJvd19saW5lPjsKKworICAgICAgICBjaGFyIGNvbnN0ICogZ2V0X2RpYWdub3N0aWNfaW5mb3JtYXRpb24oIGV4Y2VwdGlvbiBjb25zdCAmLCBjaGFyIGNvbnN0ICogKTsKKworICAgICAgICB2b2lkIGNvcHlfYm9vc3RfZXhjZXB0aW9uKCBleGNlcHRpb24gKiwgZXhjZXB0aW9uIGNvbnN0ICogKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRSxjbGFzcyBUYWcsY2xhc3MgVD4KKyAgICAgICAgRSBjb25zdCAmIHNldF9pbmZvKCBFIGNvbnN0ICYsIGVycm9yX2luZm88VGFnLFQ+IGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgRSBjb25zdCAmIHNldF9pbmZvKCBFIGNvbnN0ICYsIHRocm93X2Z1bmN0aW9uIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgRSBjb25zdCAmIHNldF9pbmZvKCBFIGNvbnN0ICYsIHRocm93X2ZpbGUgY29uc3QgJiApOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBFIGNvbnN0ICYgc2V0X2luZm8oIEUgY29uc3QgJiwgdGhyb3dfbGluZSBjb25zdCAmICk7CisgICAgICAgIH0KKworI2lmIGRlZmluZWQoX19HTlVDX18pCisjIGlmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDEpIHx8IChfX0dOVUNfXyA+IDQpCisjICBwcmFnbWEgR0NDIHZpc2liaWxpdHkgcHVzaCAoZGVmYXVsdCkKKyMgZW5kaWYKKyNlbmRpZgorICAgIGNsYXNzCisgICAgZXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgcHJvdGVjdGVkOgorCisgICAgICAgIGV4Y2VwdGlvbigpOgorICAgICAgICAgICAgdGhyb3dfZnVuY3Rpb25fKDApLAorICAgICAgICAgICAgdGhyb3dfZmlsZV8oMCksCisgICAgICAgICAgICB0aHJvd19saW5lXygtMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKworI2lmZGVmIF9fSFBfYUNDCisgICAgICAgIC8vT24gSFAgYUNDLCB0aGlzIHByb3RlY3RlZCBjb3B5IGNvbnN0cnVjdG9yIHByZXZlbnRzIHRocm93aW5nIG5kbmJvb3N0OjpleGNlcHRpb24uCisgICAgICAgIC8vT24gYWxsIG90aGVyIHBsYXRmb3JtcywgdGhlIHNhbWUgZWZmZWN0IGlzIGFjaGlldmVkIGJ5IHRoZSBwdXJlIHZpcnR1YWwgZGVzdHJ1Y3Rvci4KKyAgICAgICAgZXhjZXB0aW9uKCBleGNlcHRpb24gY29uc3QgJiB4ICkgdGhyb3coKToKKyAgICAgICAgICAgIGRhdGFfKHguZGF0YV8pLAorICAgICAgICAgICAgdGhyb3dfZnVuY3Rpb25fKHgudGhyb3dfZnVuY3Rpb25fKSwKKyAgICAgICAgICAgIHRocm93X2ZpbGVfKHgudGhyb3dfZmlsZV8pLAorICAgICAgICAgICAgdGhyb3dfbGluZV8oeC50aHJvd19saW5lXykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIHZpcnR1YWwgfmV4Y2VwdGlvbigpIHRocm93KCkKKyNpZm5kZWYgX19IUF9hQ0MKKyAgICAgICAgICAgID0gMCAvL1dvcmthcm91bmQgZm9yIEhQIGFDQywgPTAgaW5jb3JyZWN0bHkgbGVhZHMgdG8gbGluayBlcnJvcnMuCisjZW5kaWYKKyAgICAgICAgICAgIDsKKworI2lmIChkZWZpbmVkKF9fTVdFUktTX18pICYmIF9fTVdFUktTX188PTB4MzIwNykgfHwgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSPD0xMzEwKQorICAgICAgICBwdWJsaWM6CisjZWxzZQorICAgICAgICBwcml2YXRlOgorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBmcmllbmQgRSBjb25zdCAmIGV4Y2VwdGlvbl9kZXRhaWw6OnNldF9pbmZvKCBFIGNvbnN0ICYsIHRocm93X2Z1bmN0aW9uIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgZnJpZW5kIEUgY29uc3QgJiBleGNlcHRpb25fZGV0YWlsOjpzZXRfaW5mbyggRSBjb25zdCAmLCB0aHJvd19maWxlIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgZnJpZW5kIEUgY29uc3QgJiBleGNlcHRpb25fZGV0YWlsOjpzZXRfaW5mbyggRSBjb25zdCAmLCB0aHJvd19saW5lIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRSxjbGFzcyBUYWcsY2xhc3MgVD4KKyAgICAgICAgZnJpZW5kIEUgY29uc3QgJiBleGNlcHRpb25fZGV0YWlsOjpzZXRfaW5mbyggRSBjb25zdCAmLCBlcnJvcl9pbmZvPFRhZyxUPiBjb25zdCAmICk7CisKKyAgICAgICAgZnJpZW5kIGNoYXIgY29uc3QgKiBleGNlcHRpb25fZGV0YWlsOjpnZXRfZGlhZ25vc3RpY19pbmZvcm1hdGlvbiggZXhjZXB0aW9uIGNvbnN0ICYsIGNoYXIgY29uc3QgKiApOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcz4KKyAgICAgICAgZnJpZW5kIHN0cnVjdCBleGNlcHRpb25fZGV0YWlsOjpnZXRfaW5mbzsKKyAgICAgICAgZnJpZW5kIHN0cnVjdCBleGNlcHRpb25fZGV0YWlsOjpnZXRfaW5mbzx0aHJvd19mdW5jdGlvbj47CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgZXhjZXB0aW9uX2RldGFpbDo6Z2V0X2luZm88dGhyb3dfZmlsZT47CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgZXhjZXB0aW9uX2RldGFpbDo6Z2V0X2luZm88dGhyb3dfbGluZT47CisgICAgICAgIGZyaWVuZCB2b2lkIGV4Y2VwdGlvbl9kZXRhaWw6OmNvcHlfYm9vc3RfZXhjZXB0aW9uKCBleGNlcHRpb24gKiwgZXhjZXB0aW9uIGNvbnN0ICogKTsKKyNlbmRpZgorICAgICAgICBtdXRhYmxlIGV4Y2VwdGlvbl9kZXRhaWw6OnJlZmNvdW50X3B0cjxleGNlcHRpb25fZGV0YWlsOjplcnJvcl9pbmZvX2NvbnRhaW5lcj4gZGF0YV87CisgICAgICAgIG11dGFibGUgY2hhciBjb25zdCAqIHRocm93X2Z1bmN0aW9uXzsKKyAgICAgICAgbXV0YWJsZSBjaGFyIGNvbnN0ICogdGhyb3dfZmlsZV87CisgICAgICAgIG11dGFibGUgaW50IHRocm93X2xpbmVfOworICAgICAgICB9OworI2lmIGRlZmluZWQoX19HTlVDX18pCisjIGlmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDEpIHx8IChfX0dOVUNfXyA+IDQpCisjICBwcmFnbWEgR0NDIHZpc2liaWxpdHkgcG9wCisjIGVuZGlmCisjZW5kaWYKKworICAgIGlubGluZQorICAgIGV4Y2VwdGlvbjo6CisgICAgfmV4Y2VwdGlvbigpIHRocm93KCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEU+CisgICAgICAgIEUgY29uc3QgJgorICAgICAgICBzZXRfaW5mbyggRSBjb25zdCAmIHgsIHRocm93X2Z1bmN0aW9uIGNvbnN0ICYgeSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICB4LnRocm93X2Z1bmN0aW9uXz15LnZfOworICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEU+CisgICAgICAgIEUgY29uc3QgJgorICAgICAgICBzZXRfaW5mbyggRSBjb25zdCAmIHgsIHRocm93X2ZpbGUgY29uc3QgJiB5ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHgudGhyb3dfZmlsZV89eS52XzsKKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBFIGNvbnN0ICYKKyAgICAgICAgc2V0X2luZm8oIEUgY29uc3QgJiB4LCB0aHJvd19saW5lIGNvbnN0ICYgeSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICB4LnRocm93X2xpbmVfPXkudl87CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyBpZiAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSB8fCAoX19HTlVDX18gPiA0KQorIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2ggKGRlZmF1bHQpCisjIGVuZGlmCisjZW5kaWYKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlcnJvcl9pbmZvX2luamVjdG9yOgorICAgICAgICAgICAgcHVibGljIFQsCisgICAgICAgICAgICBwdWJsaWMgZXhjZXB0aW9uCisgICAgICAgICAgICB7CisgICAgICAgICAgICBleHBsaWNpdAorICAgICAgICAgICAgZXJyb3JfaW5mb19pbmplY3RvciggVCBjb25zdCAmIHggKToKKyAgICAgICAgICAgICAgICBUKHgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfmVycm9yX2luZm9faW5qZWN0b3IoKSB0aHJvdygpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgaWYgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gMSkgfHwgKF9fR05VQ19fID4gNCkKKyMgIHByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKKyMgZW5kaWYKKyNlbmRpZgorCisgICAgICAgIHN0cnVjdCBsYXJnZV9zaXplIHsgY2hhciBjWzI1Nl07IH07CisgICAgICAgIGxhcmdlX3NpemUgZGlzcGF0Y2hfYm9vc3RfZXhjZXB0aW9uKCBleGNlcHRpb24gY29uc3QgKiApOworCisgICAgICAgIHN0cnVjdCBzbWFsbF9zaXplIHsgfTsKKyAgICAgICAgc21hbGxfc2l6ZSBkaXNwYXRjaF9ib29zdF9leGNlcHRpb24oIHZvaWQgY29uc3QgKiApOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyxpbnQ+CisgICAgICAgIHN0cnVjdCBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI7CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI8VCxzaXplb2YobGFyZ2Vfc2l6ZSk+CisgICAgICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI8VCxzaXplb2Yoc21hbGxfc2l6ZSk+CisgICAgICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGVycm9yX2luZm9faW5qZWN0b3I8VD4gdHlwZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlbmFibGVfZXJyb3JfaW5mb19yZXR1cm5fdHlwZQorICAgICAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI8VCxzaXplb2YoZXhjZXB0aW9uX2RldGFpbDo6ZGlzcGF0Y2hfYm9vc3RfZXhjZXB0aW9uKHN0YXRpY19jYXN0PFQgKj4oMCkpKT46OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIGlubGluZQorICAgIHR5cGVuYW1lCisgICAgZXhjZXB0aW9uX2RldGFpbDo6ZW5hYmxlX2Vycm9yX2luZm9fcmV0dXJuX3R5cGU8VD46OnR5cGUKKyAgICBlbmFibGVfZXJyb3JfaW5mbyggVCBjb25zdCAmIHggKQorICAgICAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZXhjZXB0aW9uX2RldGFpbDo6ZW5hYmxlX2Vycm9yX2luZm9fcmV0dXJuX3R5cGU8VD46OnR5cGUgcnQ7CisgICAgICAgIHJldHVybiBydCh4KTsKKyAgICAgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyBpZiAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSB8fCAoX19HTlVDX18gPiA0KQorIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2ggKGRlZmF1bHQpCisjIGVuZGlmCisjZW5kaWYKKyAgICAgICAgY2xhc3MKKyAgICAgICAgY2xvbmVfYmFzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgcHVibGljOgorCisgICAgICAgICAgICB2aXJ0dWFsIGNsb25lX2Jhc2UgY29uc3QgKiBjbG9uZSgpIGNvbnN0ID0gMDsKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCByZXRocm93KCkgY29uc3QgPSAwOworCisgICAgICAgICAgICB2aXJ0dWFsCisgICAgICAgICAgICB+Y2xvbmVfYmFzZSgpIHRocm93KCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyBpZiAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSB8fCAoX19HTlVDX18gPiA0KQorIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHBvcAorIyBlbmRpZgorI2VuZGlmCisKKyAgICAgICAgaW5saW5lCisgICAgICAgIHZvaWQKKyAgICAgICAgY29weV9ib29zdF9leGNlcHRpb24oIGV4Y2VwdGlvbiAqIGEsIGV4Y2VwdGlvbiBjb25zdCAqIGIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgcmVmY291bnRfcHRyPGVycm9yX2luZm9fY29udGFpbmVyPiBkYXRhOworICAgICAgICAgICAgaWYoIGVycm9yX2luZm9fY29udGFpbmVyICogZD1iLT5kYXRhXy5nZXQoKSApCisgICAgICAgICAgICAgICAgZGF0YSA9IGQtPmNsb25lKCk7CisgICAgICAgICAgICBhLT50aHJvd19maWxlXyA9IGItPnRocm93X2ZpbGVfOworICAgICAgICAgICAgYS0+dGhyb3dfbGluZV8gPSBiLT50aHJvd19saW5lXzsKKyAgICAgICAgICAgIGEtPnRocm93X2Z1bmN0aW9uXyA9IGItPnRocm93X2Z1bmN0aW9uXzsKKyAgICAgICAgICAgIGEtPmRhdGFfID0gZGF0YTsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpbmxpbmUKKyAgICAgICAgdm9pZAorICAgICAgICBjb3B5X2Jvb3N0X2V4Y2VwdGlvbiggdm9pZCAqLCB2b2lkIGNvbnN0ICogKQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICBjbGFzcworICAgICAgICBjbG9uZV9pbXBsOgorICAgICAgICAgICAgcHVibGljIFQsCisgICAgICAgICAgICBwdWJsaWMgdmlydHVhbCBjbG9uZV9iYXNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgY2xvbmVfdGFnIHsgfTsKKyAgICAgICAgICAgIGNsb25lX2ltcGwoIGNsb25lX2ltcGwgY29uc3QgJiB4LCBjbG9uZV90YWcgKToKKyAgICAgICAgICAgICAgICBUKHgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvcHlfYm9vc3RfZXhjZXB0aW9uKHRoaXMsJngpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljOgorCisgICAgICAgICAgICBleHBsaWNpdAorICAgICAgICAgICAgY2xvbmVfaW1wbCggVCBjb25zdCAmIHggKToKKyAgICAgICAgICAgICAgICBUKHgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvcHlfYm9vc3RfZXhjZXB0aW9uKHRoaXMsJngpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfmNsb25lX2ltcGwoKSB0aHJvdygpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJpdmF0ZToKKworICAgICAgICAgICAgY2xvbmVfYmFzZSBjb25zdCAqCisgICAgICAgICAgICBjbG9uZSgpIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgY2xvbmVfaW1wbCgqdGhpcyxjbG9uZV90YWcoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkCisgICAgICAgICAgICByZXRocm93KCkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cqdGhpczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICBpbmxpbmUKKyAgICBleGNlcHRpb25fZGV0YWlsOjpjbG9uZV9pbXBsPFQ+CisgICAgZW5hYmxlX2N1cnJlbnRfZXhjZXB0aW9uKCBUIGNvbnN0ICYgeCApCisgICAgICAgIHsKKyAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbl9kZXRhaWw6OmNsb25lX2ltcGw8VD4oeCk7CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9nZXRfZXJyb3JfaW5mby5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2V4Y2VwdGlvbi9nZXRfZXJyb3JfaW5mby5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE3OThlZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZXhjZXB0aW9uL2dldF9lcnJvcl9pbmZvLmhwcApAQCAtMCwwICsxLDEzMCBAQAorLy9Db3B5cmlnaHQgKGMpIDIwMDYtMjAwOSBFbWlsIERvdGNoZXZza2kgYW5kIFJldmVyZ2UgU3R1ZGlvcywgSW5jLgorCisvL0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgVVVJRF8xQTU5MDIyNjc1MzMxMUREOUU0Q0NGNjE1NkQ4OTU5MworI2RlZmluZSBVVUlEXzFBNTkwMjI2NzUzMzExREQ5RTRDQ0Y2MTU2RDg5NTkzCisjaWYgKF9fR05VQ19fKjEwMCtfX0dOVUNfTUlOT1JfXz4zMDEpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gsMSkKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZXhjZXB0aW9uL2V4Y2VwdGlvbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZXhjZXB0aW9uL2RldGFpbC9lcnJvcl9pbmZvX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2V4Y2VwdGlvbi9kZXRhaWwvdHlwZV9pbmZvLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zaGFyZWRfcHRyLmhwcD4KKworbmFtZXNwYWNlCituZG5ib29zdAorICAgIHsKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEVycm9ySW5mbz4KKyAgICAgICAgc3RydWN0CisgICAgICAgIGdldF9pbmZvCisgICAgICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMKKyAgICAgICAgICAgIHR5cGVuYW1lIEVycm9ySW5mbzo6dmFsdWVfdHlwZSAqCisgICAgICAgICAgICBnZXQoIGV4Y2VwdGlvbiBjb25zdCAmIHggKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiggZXhjZXB0aW9uX2RldGFpbDo6ZXJyb3JfaW5mb19jb250YWluZXIgKiBjPXguZGF0YV8uZ2V0KCkgKQorICAgICAgICAgICAgICAgICAgICBpZiggc2hhcmVkX3B0cjxleGNlcHRpb25fZGV0YWlsOjplcnJvcl9pbmZvX2Jhc2U+IGVpYiA9IGMtPmdldChCT09TVF9FWENFUFRJT05fU1RBVElDX1RZUEVJRChFcnJvckluZm8pKSApCisgICAgICAgICAgICAgICAgICAgICAgICB7CisjaWZuZGVmIEJPT1NUX05PX1JUVEkKKyAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0FTU0VSVCggMCE9ZHluYW1pY19jYXN0PEVycm9ySW5mbyAqPihlaWIuZ2V0KCkpICk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIEVycm9ySW5mbyAqIHcgPSBzdGF0aWNfY2FzdDxFcnJvckluZm8gKj4oZWliLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAmdy0+dmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDw+CisgICAgICAgIHN0cnVjdAorICAgICAgICBnZXRfaW5mbzx0aHJvd19mdW5jdGlvbj4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYworICAgICAgICAgICAgY2hhciBjb25zdCAqICoKKyAgICAgICAgICAgIGdldCggZXhjZXB0aW9uIGNvbnN0ICYgeCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB4LnRocm93X2Z1bmN0aW9uXyA/ICZ4LnRocm93X2Z1bmN0aW9uXyA6IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8PgorICAgICAgICBzdHJ1Y3QKKyAgICAgICAgZ2V0X2luZm88dGhyb3dfZmlsZT4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYworICAgICAgICAgICAgY2hhciBjb25zdCAqICoKKyAgICAgICAgICAgIGdldCggZXhjZXB0aW9uIGNvbnN0ICYgeCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB4LnRocm93X2ZpbGVfID8gJngudGhyb3dfZmlsZV8gOiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPD4KKyAgICAgICAgc3RydWN0CisgICAgICAgIGdldF9pbmZvPHRocm93X2xpbmU+CisgICAgICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMKKyAgICAgICAgICAgIGludCAqCisgICAgICAgICAgICBnZXQoIGV4Y2VwdGlvbiBjb25zdCAmIHggKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4geC50aHJvd19saW5lXyE9LTEgPyAmeC50aHJvd19saW5lXyA6IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCxjbGFzcyBSPgorICAgICAgICBzdHJ1Y3QKKyAgICAgICAgZ2V0X2Vycm9yX2luZm9fcmV0dXJuX3R5cGUKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgUiAqIHR5cGU7CisgICAgICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBULGNsYXNzIFI+CisgICAgICAgIHN0cnVjdAorICAgICAgICBnZXRfZXJyb3JfaW5mb19yZXR1cm5fdHlwZTxUIGNvbnN0LFI+CisgICAgICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIFIgY29uc3QgKiB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisjaWZkZWYgQk9PU1RfTk9fUlRUSQorICAgIHRlbXBsYXRlIDxjbGFzcyBFcnJvckluZm8+CisgICAgaW5saW5lCisgICAgdHlwZW5hbWUgRXJyb3JJbmZvOjp2YWx1ZV90eXBlIGNvbnN0ICoKKyAgICBnZXRfZXJyb3JfaW5mbyggbmRuYm9vc3Q6OmV4Y2VwdGlvbiBjb25zdCAmIHggKQorICAgICAgICB7CisgICAgICAgIHJldHVybiBleGNlcHRpb25fZGV0YWlsOjpnZXRfaW5mbzxFcnJvckluZm8+OjpnZXQoeCk7CisgICAgICAgIH0KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRXJyb3JJbmZvPgorICAgIGlubGluZQorICAgIHR5cGVuYW1lIEVycm9ySW5mbzo6dmFsdWVfdHlwZSAqCisgICAgZ2V0X2Vycm9yX2luZm8oIG5kbmJvb3N0OjpleGNlcHRpb24gJiB4ICkKKyAgICAgICAgeworICAgICAgICByZXR1cm4gZXhjZXB0aW9uX2RldGFpbDo6Z2V0X2luZm88RXJyb3JJbmZvPjo6Z2V0KHgpOworICAgICAgICB9CisjZWxzZQorICAgIHRlbXBsYXRlIDxjbGFzcyBFcnJvckluZm8sY2xhc3MgRT4KKyAgICBpbmxpbmUKKyAgICB0eXBlbmFtZSBleGNlcHRpb25fZGV0YWlsOjpnZXRfZXJyb3JfaW5mb19yZXR1cm5fdHlwZTxFLHR5cGVuYW1lIEVycm9ySW5mbzo6dmFsdWVfdHlwZT46OnR5cGUKKyAgICBnZXRfZXJyb3JfaW5mbyggRSAmIHNvbWVfZXhjZXB0aW9uICkKKyAgICAgICAgeworICAgICAgICBpZiggZXhjZXB0aW9uIGNvbnN0ICogeCA9IGR5bmFtaWNfY2FzdDxleGNlcHRpb24gY29uc3QgKj4oJnNvbWVfZXhjZXB0aW9uKSApCisgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uX2RldGFpbDo6Z2V0X2luZm88RXJyb3JJbmZvPjo6Z2V0KCp4KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM1MTEwMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24uaHBwCkBAIC0wLDAgKzEsNjYgQEAKKy8vIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAxLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvZnVuY3Rpb24KKworLy8gV2lsbGlhbSBLZW1wZiwgSmVzc2UgSm9uZXMgYW5kIEthcmwgTmVsc29uIHdlcmUgYWxsIHZlcnkgaGVscGZ1bCBpbiB0aGUKKy8vIGRlc2lnbiBvZiB0aGlzIGxpYnJhcnkuCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPiAvLyB1bmFyeV9mdW5jdGlvbiwgYmluYXJ5X2Z1bmN0aW9uCisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWZuZGVmIEJPT1NUX0ZVTkNUSU9OX01BWF9BUkdTCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fTUFYX0FSR1MgMTAKKyNlbmRpZiAvLyBCT09TVF9GVU5DVElPTl9NQVhfQVJHUworCisvLyBJbmNsdWRlIHRoZSBwcm9sb2d1ZSBoZXJlIHNvIHRoYXQgdGhlIHVzZSBvZiBmaWxlLWxldmVsIGl0ZXJhdGlvbgorLy8gaW4gYW55dGhpbmcgdGhhdCBtYXkgYmUgaW5jbHVkZWQgYnkgZnVuY3Rpb25fdGVtcGxhdGUuaHBwIGRvZXNuJ3QgYnJlYWsKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvcHJvbG9ndWUuaHBwPgorCisvLyBPbGRlciBWaXN1YWwgQWdlIEMrKyB2ZXJzaW9uIGRvIG5vdCBoYW5kbGUgdGhlIGZpbGUgaXRlcmF0aW9uIHdlbGwKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fSUJNQ1BQX18sID49IDUwMCkgJiYgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCA8IDgwMCkKKyMgIGlmIEJPT1NUX0ZVTkNUSU9OX01BWF9BUkdTID49IDAKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24wLmhwcD4KKyMgIGVuZGlmCisjICBpZiBCT09TVF9GVU5DVElPTl9NQVhfQVJHUyA+PSAxCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMS5ocHA+CisjICBlbmRpZgorIyAgaWYgQk9PU1RfRlVOQ1RJT05fTUFYX0FSR1MgPj0gMgorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjIuaHBwPgorIyAgZW5kaWYKKyMgIGlmIEJPT1NUX0ZVTkNUSU9OX01BWF9BUkdTID49IDMKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24zLmhwcD4KKyMgIGVuZGlmCisjICBpZiBCT09TVF9GVU5DVElPTl9NQVhfQVJHUyA+PSA0CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNC5ocHA+CisjICBlbmRpZgorIyAgaWYgQk9PU1RfRlVOQ1RJT05fTUFYX0FSR1MgPj0gNQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjUuaHBwPgorIyAgZW5kaWYKKyMgIGlmIEJPT1NUX0ZVTkNUSU9OX01BWF9BUkdTID49IDYKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb242LmhwcD4KKyMgIGVuZGlmCisjICBpZiBCT09TVF9GVU5DVElPTl9NQVhfQVJHUyA+PSA3CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNy5ocHA+CisjICBlbmRpZgorIyAgaWYgQk9PU1RfRlVOQ1RJT05fTUFYX0FSR1MgPj0gOAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjguaHBwPgorIyAgZW5kaWYKKyMgIGlmIEJPT1NUX0ZVTkNUSU9OX01BWF9BUkdTID49IDkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb245LmhwcD4KKyMgIGVuZGlmCisjICBpZiBCT09TVF9GVU5DVElPTl9NQVhfQVJHUyA+PSAxMAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjEwLmhwcD4KKyMgIGVuZGlmCisjZWxzZQorLy8gV2hhdCBpcyB0aGUgJzMnIGZvcj8KKyMgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgKDMsKDAsQk9PU1RfRlVOQ1RJT05fTUFYX0FSR1MsPG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9mdW5jdGlvbl9pdGVyYXRlLmhwcD4pKQorIyAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKyMgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9mdW5jdGlvbl9pdGVyYXRlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL2Z1bmN0aW9uX2l0ZXJhdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNDExOTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9mdW5jdGlvbl9pdGVyYXRlLmhwcApAQCAtMCwwICsxLDE2IEBACisvLyBCb29zdC5GdW5jdGlvbiBsaWJyYXJ5CisKKy8vICBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisjIGVycm9yIEJvb3N0LkZ1bmN0aW9uIC0gZG8gbm90IGluY2x1ZGUgdGhpcyBmaWxlIQorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgQk9PU1RfUFBfSVRFUkFUSU9OKCkKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvbWF5YmVfaW5jbHVkZS5ocHA+CisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvZ2VuX21heWJlX2luY2x1ZGUucGwgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9nZW5fbWF5YmVfaW5jbHVkZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjQzNjdkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvZ2VuX21heWJlX2luY2x1ZGUucGwKQEAgLTAsMCArMSwzNyBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjCisjIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDMgRG91Z2xhcyBHcmVnb3IgKGdyZWdvZEBjcy5ycGkuZWR1KQorIworIyBQZXJtaXNzaW9uIHRvIGNvcHksIHVzZSwgc2VsbCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGlzIGdyYW50ZWQKKyMgcHJvdmlkZWQgdGhpcyBjb3B5cmlnaHQgbm90aWNlIGFwcGVhcnMgaW4gYWxsIGNvcGllcy4KKyMgUGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIGNvZGUgYW5kIHRvIGRpc3RyaWJ1dGUgbW9kaWZpZWQgY29kZSBpcyBncmFudGVkCisjIHByb3ZpZGVkIHRoaXMgY29weXJpZ2h0IG5vdGljZSBhcHBlYXJzIGluIGFsbCBjb3BpZXMsIGFuZCBhIG5vdGljZQorIyB0aGF0IHRoZSBjb2RlIHdhcyBtb2RpZmllZCBpcyBpbmNsdWRlZCB3aXRoIHRoZSBjb3B5cmlnaHQgbm90aWNlLgorIworIyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHksCisjIGFuZCB3aXRoIG5vIGNsYWltIGFzIHRvIGl0cyBzdWl0YWJpbGl0eSBmb3IgYW55IHB1cnBvc2UuCisjCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKK3VzZSBFbmdsaXNoOworCiskbWF4X2FyZ3MgPSAkQVJHVlswXTsKKworb3BlbiAoT1VULCAiPm1heWJlX2luY2x1ZGUuaHBwIikgb3IgZGllKCJDYW5ub3Qgd3JpdGUgdG8gbWF5YmVfaW5jbHVkZS5ocHAiKTsKK2Zvcigkb25fYXJnID0gMDsgJG9uX2FyZyA8PSAkbWF4X2FyZ3M7ICsrJG9uX2FyZykgeworICAgIGlmICgkb25fYXJnID09IDApIHsKKwlwcmludCBPVVQgIiNpZiI7CisgICAgfQorICAgIGVsc2UgeworCXByaW50IE9VVCAiI2VsaWYiOworICAgIH0KKyAgICBwcmludCBPVVQgIiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAkb25fYXJnXG4iOworICAgIHByaW50IE9VVCAiIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXyRvbl9hcmdcbiI7CisgICAgcHJpbnQgT1VUICIjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8kb25fYXJnXG4iOworICAgIHByaW50IE9VVCAiIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+XG4iOworICAgIHByaW50IE9VVCAiIyAgZW5kaWZcbiI7Cit9CitwcmludCBPVVQgIiNlbHNlXG4iOworcHJpbnQgT1VUICIjICBlcnJvciBDYW5ub3QgaGFuZGxlIEJvb3N0LkZ1bmN0aW9uIG9iamVjdHMgdGhhdCBhY2NlcHQgbW9yZSB0aGFuICRtYXhfYXJncyBhcmd1bWVudHMhXG4iOworcHJpbnQgT1VUICIjZW5kaWZcbiI7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL21heWJlX2luY2x1ZGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZjAwM2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcApAQCAtMCwwICsxLDI2NyBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKyNpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAwCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMAorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMQorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzEKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzEKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDIKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8yCisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8yCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAzCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMworIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMworIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gNAorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzQKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzQKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDUKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl81CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl81CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSA2CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fNgorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fNgorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gNworIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzcKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzcKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDgKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl84CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl84CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSA5CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fOQorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fOQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMTAKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8xMAorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMTAKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDExCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMTEKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzExCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAxMgorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzEyCisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8xMgorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMTMKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8xMworIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMTMKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDE0CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMTQKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzE0CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAxNQorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzE1CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8xNQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMTYKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8xNgorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMTYKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDE3CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMTcKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzE3CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAxOAorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzE4CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8xOAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMTkKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8xOQorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMTkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDIwCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMjAKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzIwCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAyMQorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzIxCisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8yMQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMjIKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8yMgorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMjIKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDIzCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMjMKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzIzCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAyNAorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzI0CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8yNAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMjUKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8yNQorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMjUKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDI2CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMjYKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzI2CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAyNworIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzI3CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8yNworIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMjgKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8yOAorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMjgKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDI5CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMjkKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzI5CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAzMAorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzMwCisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8zMAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMzEKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8zMQorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMzEKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDMyCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMzIKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzMyCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAzMworIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzMzCisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8zMworIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMzQKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8zNAorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMzQKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDM1CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMzUKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzM1CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAzNgorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzM2CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8zNgorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMzcKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl8zNworIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fMzcKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDM4CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fMzgKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzM4CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAzOQorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzM5CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl8zOQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gNDAKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl80MAorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fNDAKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDQxCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fNDEKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzQxCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSA0MgorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzQyCisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl80MgorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gNDMKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl80MworIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fNDMKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDQ0CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fNDQKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzQ0CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSA0NQorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzQ1CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl80NQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gNDYKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl80NgorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fNDYKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDQ3CisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fNDcKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzQ3CisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSA0OAorIyAgaWZuZGVmIEJPT1NUX0ZVTkNUSU9OXzQ4CisjICAgIGRlZmluZSBCT09TVF9GVU5DVElPTl80OAorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHA+CisjICBlbmRpZgorI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gNDkKKyMgIGlmbmRlZiBCT09TVF9GVU5DVElPTl80OQorIyAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fNDkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fdGVtcGxhdGUuaHBwPgorIyAgZW5kaWYKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDUwCisjICBpZm5kZWYgQk9PU1RfRlVOQ1RJT05fNTAKKyMgICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OXzUwCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcD4KKyMgIGVuZGlmCisjZWxzZQorIyAgZXJyb3IgQ2Fubm90IGhhbmRsZSBCb29zdC5GdW5jdGlvbiBvYmplY3RzIHRoYXQgYWNjZXB0IG1vcmUgdGhhbiA1MCBhcmd1bWVudHMhCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL3Byb2xvZ3VlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL3Byb2xvZ3VlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTgzMjRjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvcHJvbG9ndWUuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKy8vIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAyLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKyNpZm5kZWYgQk9PU1RfRlVOQ1RJT05fUFJPTE9HVUVfSFBQCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1BST0xPR1VFX0hQUAorIyAgaW5jbHVkZSA8Y2Fzc2VydD4KKyMgIGluY2x1ZGUgPGFsZ29yaXRobT4KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvZnVuY3Rpb25hbC5ocHA+IC8vIHVuYXJ5X2Z1bmN0aW9uLCBiaW5hcnlfZnVuY3Rpb24KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHA+CisjICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb25fYmFzZS5ocHA+CisjICBpbmNsdWRlIDxuZG5ib29zdC9tZW1fZm4uaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2VuZGlmIC8vIEJPT1NUX0ZVTkNUSU9OX1BST0xPR1VFX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MjExZGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMC5ocHAKQEAgLTAsMCArMSwxMiBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDItMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworI2RlZmluZSBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyAwCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL21heWJlX2luY2x1ZGUuaHBwPgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmYmMxOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24xLmhwcApAQCAtMCwwICsxLDEyIEBACisvLyBCb29zdC5GdW5jdGlvbiBsaWJyYXJ5CisKKy8vICBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMi0yMDAzLiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTIDEKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvbWF5YmVfaW5jbHVkZS5ocHA+CisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24xMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMTAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZDNkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMTAuaHBwCkBAIC0wLDAgKzEsMTIgQEAKKy8vIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAyLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgMTAKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvbWF5YmVfaW5jbHVkZS5ocHA+CisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb24yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWRiZmRhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjIuaHBwCkBAIC0wLDAgKzEsMTIgQEAKKy8vIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAyLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgMgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcD4KKyN1bmRlZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNDQ3NTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uMy5ocHAKQEAgLTAsMCArMSwxMiBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDItMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworI2RlZmluZSBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyAzCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL21heWJlX2luY2x1ZGUuaHBwPgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY3YjAzYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb240LmhwcApAQCAtMCwwICsxLDEyIEBACisvLyBCb29zdC5GdW5jdGlvbiBsaWJyYXJ5CisKKy8vICBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMi0yMDAzLiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTIDQKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvbWF5YmVfaW5jbHVkZS5ocHA+CisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb241LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb241LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2NmNDIwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjUuaHBwCkBAIC0wLDAgKzEsMTIgQEAKKy8vIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAyLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgNQorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcD4KKyN1bmRlZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZTgyOWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNi5ocHAKQEAgLTAsMCArMSwxMiBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDItMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworI2RlZmluZSBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA2CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL21heWJlX2luY2x1ZGUuaHBwPgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uNy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM3YTVhYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb243LmhwcApAQCAtMCwwICsxLDEyIEBACisvLyBCb29zdC5GdW5jdGlvbiBsaWJyYXJ5CisKKy8vICBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMi0yMDAzLiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTIDcKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvbWF5YmVfaW5jbHVkZS5ocHA+CisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb244LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZnVuY3Rpb244LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWNjMjhiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjguaHBwCkBAIC0wLDAgKzEsMTIgQEAKKy8vIEJvb3N0LkZ1bmN0aW9uIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAyLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgOAorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uL2RldGFpbC9tYXliZV9pbmNsdWRlLmhwcD4KKyN1bmRlZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbjkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYzg4MzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uOS5ocHAKQEAgLTAsMCArMSwxMiBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDItMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworI2RlZmluZSBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA5CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL21heWJlX2luY2x1ZGUuaHBwPgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX2Jhc2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9iYXNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGFmMWEzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9iYXNlLmhwcApAQCAtMCwwICsxLDkxMCBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDEtMjAwNgorLy8gIENvcHlyaWdodCBFbWlsIERvdGNoZXZza2kgMjAwNworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisjaWZuZGVmIEJPT1NUX0ZVTkNUSU9OX0JBU0VfSEVBREVSCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0JBU0VfSEVBREVSCisKKyNpbmNsdWRlIDxzdGRleGNlcHQ+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxuZXc+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaW50ZWdlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29weS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2ludGVncmFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29tcG9zaXRlX3RyYWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaWNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yZWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHA+CisjaWZuZGVmIEJPT1NUX05PX1NGSU5BRQorIyAgaW5jbHVkZSAibmRuYm9vc3QvdXRpbGl0eS9lbmFibGVfaWYuaHBwIgorI2Vsc2UKKyMgIGluY2x1ZGUgIm5kbmJvb3N0L21wbC9ib29sLmhwcCIKKyNlbmRpZgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX2VxdWFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9md2QuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgIHByYWdtYSB3YXJuaW5nKCBwdXNoICkKKyMgICBwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ3OTMgKSAvLyBjb21wbGFpbnQgYWJvdXQgbmF0aXZlIGNvZGUgZ2VuZXJhdGlvbgorIyAgIHByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDogNDEyNyApIC8vICJjb25kaXRpb25hbCBleHByZXNzaW9uIGlzIGNvbnN0YW50IgorI2VuZGlmICAgICAgIAorCisvLyBEZWZpbmUgQk9PU1RfRlVOQ1RJT05fU1REX05TIHRvIHRoZSBuYW1lc3BhY2UgdGhhdCBjb250YWlucyB0eXBlX2luZm8uCisjaWZkZWYgQk9PU1RfTk9fU1REX1RZUEVJTkZPCisvLyBFbWJlZGRlZCBWQysrIGRvZXMgbm90IGhhdmUgdHlwZV9pbmZvIGluIG5hbWVzcGFjZSBzdGQKKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9TVERfTlMKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fU1REX05TIHN0ZAorI2VuZGlmCisKKy8vIEJvcnJvd2VkIGZyb20gQm9vc3QuUHl0aG9uIGxpYnJhcnk6IGRldGVybWluZXMgdGhlIGNhc2VzIHdoZXJlIHdlCisvLyBuZWVkIHRvIHVzZSBzdGQ6OnR5cGVfaW5mbzo6bmFtZSB0byBjb21wYXJlIGluc3RlYWQgb2Ygb3BlcmF0b3I9PS4KKyNpZiBkZWZpbmVkKCBCT09TVF9OT19UWVBFSUQgKQorIyAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0NPTVBBUkVfVFlQRV9JRChYLFkpICgoWCk9PShZKSkKKyNlbGlmIChkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA+PSAzKSBcCisgfHwgZGVmaW5lZChfQUlYKSBcCisgfHwgKCAgIGRlZmluZWQoX19zZ2kpICYmIGRlZmluZWQoX19ob3N0X21pcHMpKQorIyAgaW5jbHVkZSA8Y3N0cmluZz4KKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9DT01QQVJFX1RZUEVfSUQoWCxZKSBcCisgICAgIChzdGQ6OnN0cmNtcCgoWCkubmFtZSgpLChZKS5uYW1lKCkpID09IDApCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9DT01QQVJFX1RZUEVfSUQoWCxZKSAoKFgpPT0oWSkpCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgQk9PU1RfTVNWQyA8PSAxMzAwIHx8IGRlZmluZWQoX19JQ0wpICYmIF9fSUNMIDw9IDYwMCB8fCBkZWZpbmVkKF9fTVdFUktTX18pICYmIF9fTVdFUktTX18gPCAweDI0MDYgJiYgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykKKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9UQVJHRVRfRklYKHgpIHgKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fVEFSR0VUX0ZJWCh4KQorI2VuZGlmIC8vIG5vdCBNU1ZDCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg1QTApCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fRU5BQkxFX0lGX05PVF9JTlRFR1JBTChGdW5jdG9yLFR5cGUpICAgICAgICAgICAgICBcCisgICAgICB0eXBlbmFtZSA6Om5kbmJvb3N0OjplbmFibGVfaWZfYzwoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8RnVuY3Rvcj46OnZhbHVlKT46OnZhbHVlKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZT46OnR5cGUKKyNlbHNlCisvLyBCQ0MgZG9lc24ndCByZWNvZ25pemUgdGhpcyBkZXBlbmRzIG9uIGEgdGVtcGxhdGUgYXJndW1lbnQgYW5kIGNvbXBsYWlucworLy8gYWJvdXQgdGhlIHVzZSBvZiAndHlwZW5hbWUnCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fRU5BQkxFX0lGX05PVF9JTlRFR1JBTChGdW5jdG9yLFR5cGUpICAgICBcCisgICAgICA6Om5kbmJvb3N0OjplbmFibGVfaWZfYzwoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAoOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8RnVuY3Rvcj46OnZhbHVlKT46OnZhbHVlKSwgXAorICAgICAgICAgICAgICAgICAgICAgICBUeXBlPjo6dHlwZQorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgIG5hbWVzcGFjZSBmdW5jdGlvbiB7CisgICAgICBjbGFzcyBYOworCisgICAgICAvKioKKyAgICAgICAqIEEgYnVmZmVyIHVzZWQgdG8gc3RvcmUgc21hbGwgZnVuY3Rpb24gb2JqZWN0cyBpbgorICAgICAgICogbmRuYm9vc3Q6OmZ1bmN0aW9uLiBJdCBpcyBhIHVuaW9uIGNvbnRhaW5pbmcgZnVuY3Rpb24gcG9pbnRlcnMsCisgICAgICAgKiBvYmplY3QgcG9pbnRlcnMsIGFuZCBhIHN0cnVjdHVyZSB0aGF0IHJlc2VtYmxlcyBhIGJvdW5kCisgICAgICAgKiBtZW1iZXIgZnVuY3Rpb24gcG9pbnRlci4KKyAgICAgICAqLworICAgICAgdW5pb24gZnVuY3Rpb25fYnVmZmVyCisgICAgICB7CisgICAgICAgIC8vIEZvciBwb2ludGVycyB0byBmdW5jdGlvbiBvYmplY3RzCisgICAgICAgIG11dGFibGUgdm9pZCogb2JqX3B0cjsKKworICAgICAgICAvLyBGb3IgcG9pbnRlcnMgdG8gc3RkOjp0eXBlX2luZm8gb2JqZWN0cworICAgICAgICBzdHJ1Y3QgdHlwZV90IHsKKyAgICAgICAgICAvLyAoZ2V0X2Z1bmN0b3JfdHlwZV90YWcsIGNoZWNrX2Z1bmN0b3JfdHlwZV90YWcpLgorICAgICAgICAgIGNvbnN0IGRldGFpbDo6c3BfdHlwZWluZm8qIHR5cGU7CisKKyAgICAgICAgICAvLyBXaGV0aGVyIHRoZSB0eXBlIGlzIGNvbnN0LXF1YWxpZmllZC4KKyAgICAgICAgICBib29sIGNvbnN0X3F1YWxpZmllZDsKKyAgICAgICAgICAvLyBXaGV0aGVyIHRoZSB0eXBlIGlzIHZvbGF0aWxlLXF1YWxpZmllZC4KKyAgICAgICAgICBib29sIHZvbGF0aWxlX3F1YWxpZmllZDsKKyAgICAgICAgfSB0eXBlOworCisgICAgICAgIC8vIEZvciBmdW5jdGlvbiBwb2ludGVycyBvZiBhbGwga2luZHMKKyAgICAgICAgbXV0YWJsZSB2b2lkICgqZnVuY19wdHIpKCk7CisKKyAgICAgICAgLy8gRm9yIGJvdW5kIG1lbWJlciBwb2ludGVycworICAgICAgICBzdHJ1Y3QgYm91bmRfbWVtZnVuY19wdHJfdCB7CisgICAgICAgICAgdm9pZCAoWDo6Km1lbWZ1bmNfcHRyKShpbnQpOworICAgICAgICAgIHZvaWQqIG9ial9wdHI7CisgICAgICAgIH0gYm91bmRfbWVtZnVuY19wdHI7CisKKyAgICAgICAgLy8gRm9yIHJlZmVyZW5jZXMgdG8gZnVuY3Rpb24gb2JqZWN0cy4gV2UgZXhwbGljaXRseSBrZWVwCisgICAgICAgIC8vIHRyYWNrIG9mIHRoZSBjdi1xdWFsaWZpZXJzIG9uIHRoZSBvYmplY3QgcmVmZXJlbmNlZC4KKyAgICAgICAgc3RydWN0IG9ial9yZWZfdCB7CisgICAgICAgICAgbXV0YWJsZSB2b2lkKiBvYmpfcHRyOworICAgICAgICAgIGJvb2wgaXNfY29uc3RfcXVhbGlmaWVkOworICAgICAgICAgIGJvb2wgaXNfdm9sYXRpbGVfcXVhbGlmaWVkOworICAgICAgICB9IG9ial9yZWY7CisKKyAgICAgICAgLy8gVG8gcmVsYXggYWxpYXNpbmcgY29uc3RyYWludHMKKyAgICAgICAgbXV0YWJsZSBjaGFyIGRhdGE7CisgICAgICB9OworCisgICAgICAvKioKKyAgICAgICAqIFRoZSB1bnVzYWJsZSBjbGFzcyBpcyBhIHBsYWNlaG9sZGVyIGZvciB1bnVzZWQgZnVuY3Rpb24gYXJndW1lbnRzCisgICAgICAgKiBJdCBpcyBhbHNvIGNvbXBsZXRlbHkgdW51c2FibGUgZXhjZXB0IHRoYXQgaXQgY29uc3RydWN0YWJsZSBmcm9tCisgICAgICAgKiBhbnl0aGluZy4gVGhpcyBoZWxwcyBjb21waWxlcnMgd2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHRvCisgICAgICAgKiBoYW5kbGUgQm9vc3QuRnVuY3Rpb24gb2JqZWN0cyByZXR1cm5pbmcgdm9pZC4KKyAgICAgICAqLworICAgICAgc3RydWN0IHVudXNhYmxlCisgICAgICB7CisgICAgICAgIHVudXNhYmxlKCkge30KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdW51c2FibGUoY29uc3QgVCYpIHt9CisgICAgICB9OworCisgICAgICAvKiBEZXRlcm1pbmUgdGhlIHJldHVybiB0eXBlLiBUaGlzIHN1cHBvcnRzIGNvbXBpbGVycyB0aGF0IGRvIG5vdCBzdXBwb3J0CisgICAgICAgKiB2b2lkIHJldHVybnMgb3IgcGFydGlhbCBzcGVjaWFsaXphdGlvbiBieSBzaWxlbnRseSBjaGFuZ2luZyB0aGUgcmV0dXJuCisgICAgICAgKiB0eXBlIHRvICJ1bnVzYWJsZSIuCisgICAgICAgKi8KKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBmdW5jdGlvbl9yZXR1cm5fdHlwZSB7IHR5cGVkZWYgVCB0eXBlOyB9OworCisgICAgICB0ZW1wbGF0ZTw+CisgICAgICBzdHJ1Y3QgZnVuY3Rpb25fcmV0dXJuX3R5cGU8dm9pZD4KKyAgICAgIHsKKyAgICAgICAgdHlwZWRlZiB1bnVzYWJsZSB0eXBlOworICAgICAgfTsKKworICAgICAgLy8gVGhlIG9wZXJhdGlvbiB0eXBlIHRvIHBlcmZvcm0gb24gdGhlIGdpdmVuIGZ1bmN0b3IvZnVuY3Rpb24gcG9pbnRlcgorICAgICAgZW51bSBmdW5jdG9yX21hbmFnZXJfb3BlcmF0aW9uX3R5cGUgeworICAgICAgICBjbG9uZV9mdW5jdG9yX3RhZywKKyAgICAgICAgbW92ZV9mdW5jdG9yX3RhZywKKyAgICAgICAgZGVzdHJveV9mdW5jdG9yX3RhZywKKyAgICAgICAgY2hlY2tfZnVuY3Rvcl90eXBlX3RhZywKKyAgICAgICAgZ2V0X2Z1bmN0b3JfdHlwZV90YWcKKyAgICAgIH07CisKKyAgICAgIC8vIFRhZ3MgdXNlZCB0byBkZWNpZGUgYmV0d2VlbiBkaWZmZXJlbnQgdHlwZXMgb2YgZnVuY3Rpb25zCisgICAgICBzdHJ1Y3QgZnVuY3Rpb25fcHRyX3RhZyB7fTsKKyAgICAgIHN0cnVjdCBmdW5jdGlvbl9vYmpfdGFnIHt9OworICAgICAgc3RydWN0IG1lbWJlcl9wdHJfdGFnIHt9OworICAgICAgc3RydWN0IGZ1bmN0aW9uX29ial9yZWZfdGFnIHt9OworCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorICAgICAgY2xhc3MgZ2V0X2Z1bmN0aW9uX3RhZworICAgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfYzwoaXNfcG9pbnRlcjxGPjo6dmFsdWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9wdHJfdGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9vYmpfdGFnPjo6dHlwZSBwdHJfb3Jfb2JqX3RhZzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfYzwoaXNfbWVtYmVyX3BvaW50ZXI8Rj46OnZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyX3B0cl90YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cl9vcl9vYmpfdGFnPjo6dHlwZSBwdHJfb3Jfb2JqX29yX21lbV90YWc7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8KGlzX3JlZmVyZW5jZV93cmFwcGVyPEY+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX29ial9yZWZfdGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJfb3Jfb2JqX29yX21lbV90YWc+Ojp0eXBlIG9yX3JlZl90YWc7CisKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBvcl9yZWZfdGFnIHR5cGU7CisgICAgICB9OworCisgICAgICAvLyBUaGUgdHJpdmlhbCBtYW5hZ2VyIGRvZXMgbm90aGluZyBidXQgcmV0dXJuIHRoZSBzYW1lIHBvaW50ZXIgKGlmIHdlCisgICAgICAvLyBhcmUgY2xvbmluZykgb3IgcmV0dXJuIHRoZSBudWxsIHBvaW50ZXIgKGlmIHdlIGFyZSBkZWxldGluZykuCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorICAgICAgc3RydWN0IHJlZmVyZW5jZV9tYW5hZ2VyCisgICAgICB7CisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZAorICAgICAgICBtYW5hZ2UoY29uc3QgZnVuY3Rpb25fYnVmZmVyJiBpbl9idWZmZXIsIGZ1bmN0aW9uX2J1ZmZlciYgb3V0X2J1ZmZlciwgCisgICAgICAgICAgICAgICBmdW5jdG9yX21hbmFnZXJfb3BlcmF0aW9uX3R5cGUgb3ApCisgICAgICAgIHsKKyAgICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgICAgY2FzZSBjbG9uZV9mdW5jdG9yX3RhZzogCisgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9yZWYgPSBpbl9idWZmZXIub2JqX3JlZjsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIGNhc2UgbW92ZV9mdW5jdG9yX3RhZzoKKyAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3JlZiA9IGluX2J1ZmZlci5vYmpfcmVmOworICAgICAgICAgICAgaW5fYnVmZmVyLm9ial9yZWYub2JqX3B0ciA9IDA7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBjYXNlIGRlc3Ryb3lfZnVuY3Rvcl90YWc6CisgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9yZWYub2JqX3B0ciA9IDA7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBjYXNlIGNoZWNrX2Z1bmN0b3JfdHlwZV90YWc6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNvbnN0IGRldGFpbDo6c3BfdHlwZWluZm8mIGNoZWNrX3R5cGUgCisgICAgICAgICAgICAgICAgPSAqb3V0X2J1ZmZlci50eXBlLnR5cGU7CisKKyAgICAgICAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRoZSBzYW1lIHR5cGUuIFdlIGNhbiBhZGQKKyAgICAgICAgICAgICAgLy8gY3YtcXVhbGlmaWVycywgYnV0IHdlIGNhbid0IHRha2UgdGhlbSBhd2F5LgorICAgICAgICAgICAgICBpZiAoQk9PU1RfRlVOQ1RJT05fQ09NUEFSRV9UWVBFX0lEKGNoZWNrX3R5cGUsIEJPT1NUX1NQX1RZUEVJRChGKSkKKyAgICAgICAgICAgICAgICAgICYmICghaW5fYnVmZmVyLm9ial9yZWYuaXNfY29uc3RfcXVhbGlmaWVkIAorICAgICAgICAgICAgICAgICAgICAgIHx8IG91dF9idWZmZXIudHlwZS5jb25zdF9xdWFsaWZpZWQpCisgICAgICAgICAgICAgICAgICAmJiAoIWluX2J1ZmZlci5vYmpfcmVmLmlzX3ZvbGF0aWxlX3F1YWxpZmllZAorICAgICAgICAgICAgICAgICAgICAgIHx8IG91dF9idWZmZXIudHlwZS52b2xhdGlsZV9xdWFsaWZpZWQpKQorICAgICAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9IGluX2J1ZmZlci5vYmpfcmVmLm9ial9wdHI7CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9wdHIgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgY2FzZSBnZXRfZnVuY3Rvcl90eXBlX3RhZzoKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS50eXBlID0gJkJPT1NUX1NQX1RZUEVJRChGKTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS5jb25zdF9xdWFsaWZpZWQgPSBpbl9idWZmZXIub2JqX3JlZi5pc19jb25zdF9xdWFsaWZpZWQ7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudm9sYXRpbGVfcXVhbGlmaWVkID0gaW5fYnVmZmVyLm9ial9yZWYuaXNfdm9sYXRpbGVfcXVhbGlmaWVkOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgLyoqCisgICAgICAgKiBEZXRlcm1pbmUgaWYgbmRuYm9vc3Q6OmZ1bmN0aW9uIGNhbiB1c2UgdGhlIHNtYWxsLW9iamVjdAorICAgICAgICogb3B0aW1pemF0aW9uIHdpdGggdGhlIGZ1bmN0aW9uIG9iamVjdCB0eXBlIEYuCisgICAgICAgKi8KKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEY+CisgICAgICBzdHJ1Y3QgZnVuY3Rpb25fYWxsb3dzX3NtYWxsX29iamVjdF9vcHRpbWl6YXRpb24KKyAgICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UCisgICAgICAgICAgKGJvb2wsIAorICAgICAgICAgICB2YWx1ZSA9ICgoc2l6ZW9mKEYpIDw9IHNpemVvZihmdW5jdGlvbl9idWZmZXIpICYmCisgICAgICAgICAgICAgICAgICAgICAoYWxpZ25tZW50X29mPGZ1bmN0aW9uX2J1ZmZlcj46OnZhbHVlIAorICAgICAgICAgICAgICAgICAgICAgICUgYWxpZ25tZW50X29mPEY+Ojp2YWx1ZSA9PSAwKSkpKTsKKyAgICAgIH07CisKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGLHR5cGVuYW1lIEE+CisgICAgICBzdHJ1Y3QgZnVuY3Rvcl93cmFwcGVyOiBwdWJsaWMgRiwgcHVibGljIEEKKyAgICAgIHsKKyAgICAgICAgZnVuY3Rvcl93cmFwcGVyKCBGIGYsIEEgYSApOgorICAgICAgICAgIEYoZiksCisgICAgICAgICAgQShhKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0b3Jfd3JhcHBlcihjb25zdCBmdW5jdG9yX3dyYXBwZXImIGYpIDoKKyAgICAgICAgICBGKHN0YXRpY19jYXN0PGNvbnN0IEYmPihmKSksCisgICAgICAgICAgQShzdGF0aWNfY2FzdDxjb25zdCBBJj4oZikpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgLyoqCisgICAgICAgKiBUaGUgZnVuY3Rvcl9tYW5hZ2VyIGNsYXNzIGNvbnRhaW5zIGEgc3RhdGljIGZ1bmN0aW9uICJtYW5hZ2UiIHdoaWNoCisgICAgICAgKiBjYW4gY2xvbmUgb3IgZGVzdHJveSB0aGUgZ2l2ZW4gZnVuY3Rpb24vZnVuY3Rpb24gb2JqZWN0IHBvaW50ZXIuCisgICAgICAgKi8KKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgICBzdHJ1Y3QgZnVuY3Rvcl9tYW5hZ2VyX2NvbW1vbgorICAgICAgeworICAgICAgICB0eXBlZGVmIEZ1bmN0b3IgZnVuY3Rvcl90eXBlOworCisgICAgICAgIC8vIEZ1bmN0aW9uIHBvaW50ZXJzCisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZAorICAgICAgICBtYW5hZ2VfcHRyKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCkKKyAgICAgICAgeworICAgICAgICAgIGlmIChvcCA9PSBjbG9uZV9mdW5jdG9yX3RhZykKKyAgICAgICAgICAgIG91dF9idWZmZXIuZnVuY19wdHIgPSBpbl9idWZmZXIuZnVuY19wdHI7CisgICAgICAgICAgZWxzZSBpZiAob3AgPT0gbW92ZV9mdW5jdG9yX3RhZykgeworICAgICAgICAgICAgb3V0X2J1ZmZlci5mdW5jX3B0ciA9IGluX2J1ZmZlci5mdW5jX3B0cjsKKyAgICAgICAgICAgIGluX2J1ZmZlci5mdW5jX3B0ciA9IDA7CisgICAgICAgICAgfSBlbHNlIGlmIChvcCA9PSBkZXN0cm95X2Z1bmN0b3JfdGFnKQorICAgICAgICAgICAgb3V0X2J1ZmZlci5mdW5jX3B0ciA9IDA7CisgICAgICAgICAgZWxzZSBpZiAob3AgPT0gY2hlY2tfZnVuY3Rvcl90eXBlX3RhZykgeworICAgICAgICAgICAgY29uc3QgZGV0YWlsOjpzcF90eXBlaW5mbyYgY2hlY2tfdHlwZSAKKyAgICAgICAgICAgICAgPSAqb3V0X2J1ZmZlci50eXBlLnR5cGU7CisgICAgICAgICAgICBpZiAoQk9PU1RfRlVOQ1RJT05fQ09NUEFSRV9UWVBFX0lEKGNoZWNrX3R5cGUsIEJPT1NUX1NQX1RZUEVJRChGdW5jdG9yKSkpCisgICAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9ICZpbl9idWZmZXIuZnVuY19wdHI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9IDA7CisgICAgICAgICAgfSBlbHNlIC8qIG9wID09IGdldF9mdW5jdG9yX3R5cGVfdGFnICovIHsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS50eXBlID0gJkJPT1NUX1NQX1RZUEVJRChGdW5jdG9yKTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS5jb25zdF9xdWFsaWZpZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS52b2xhdGlsZV9xdWFsaWZpZWQgPSBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBGdW5jdGlvbiBvYmplY3RzIHRoYXQgZml0IGluIHRoZSBzbWFsbC1vYmplY3QgYnVmZmVyLgorICAgICAgICBzdGF0aWMgaW5saW5lIHZvaWQKKyAgICAgICAgbWFuYWdlX3NtYWxsKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCkKKyAgICAgICAgeworICAgICAgICAgIGlmIChvcCA9PSBjbG9uZV9mdW5jdG9yX3RhZyB8fCBvcCA9PSBtb3ZlX2Z1bmN0b3JfdGFnKSB7CisgICAgICAgICAgICBjb25zdCBmdW5jdG9yX3R5cGUqIGluX2Z1bmN0b3IgPSAKKyAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBmdW5jdG9yX3R5cGUqPigmaW5fYnVmZmVyLmRhdGEpOworICAgICAgICAgICAgbmV3IChyZWludGVycHJldF9jYXN0PHZvaWQqPigmb3V0X2J1ZmZlci5kYXRhKSkgZnVuY3Rvcl90eXBlKCppbl9mdW5jdG9yKTsKKworICAgICAgICAgICAgaWYgKG9wID09IG1vdmVfZnVuY3Rvcl90YWcpIHsKKyAgICAgICAgICAgICAgZnVuY3Rvcl90eXBlKiBmID0gcmVpbnRlcnByZXRfY2FzdDxmdW5jdG9yX3R5cGUqPigmaW5fYnVmZmVyLmRhdGEpOworICAgICAgICAgICAgICAodm9pZClmOyAvLyBzdXBwcmVzcyB3YXJuaW5nIGFib3V0IHRoZSB2YWx1ZSBvZiBmIG5vdCBiZWluZyB1c2VkIChNU1ZDKQorICAgICAgICAgICAgICBmLT5+RnVuY3RvcigpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSBpZiAob3AgPT0gZGVzdHJveV9mdW5jdG9yX3RhZykgeworICAgICAgICAgICAgLy8gU29tZSBjb21waWxlcnMgKEJvcmxhbmQsIHZjNiwgLi4uKSBhcmUgdW5oYXBweSB3aXRoIH5mdW5jdG9yX3R5cGUuCisgICAgICAgICAgICAgZnVuY3Rvcl90eXBlKiBmID0gcmVpbnRlcnByZXRfY2FzdDxmdW5jdG9yX3R5cGUqPigmb3V0X2J1ZmZlci5kYXRhKTsKKyAgICAgICAgICAgICAodm9pZClmOyAvLyBzdXBwcmVzcyB3YXJuaW5nIGFib3V0IHRoZSB2YWx1ZSBvZiBmIG5vdCBiZWluZyB1c2VkIChNU1ZDKQorICAgICAgICAgICAgIGYtPn5GdW5jdG9yKCk7CisgICAgICAgICAgfSBlbHNlIGlmIChvcCA9PSBjaGVja19mdW5jdG9yX3R5cGVfdGFnKSB7CisgICAgICAgICAgICBjb25zdCBkZXRhaWw6OnNwX3R5cGVpbmZvJiBjaGVja190eXBlIAorICAgICAgICAgICAgICA9ICpvdXRfYnVmZmVyLnR5cGUudHlwZTsKKyAgICAgICAgICAgIGlmIChCT09TVF9GVU5DVElPTl9DT01QQVJFX1RZUEVfSUQoY2hlY2tfdHlwZSwgQk9PU1RfU1BfVFlQRUlEKEZ1bmN0b3IpKSkKKyAgICAgICAgICAgICAgb3V0X2J1ZmZlci5vYmpfcHRyID0gJmluX2J1ZmZlci5kYXRhOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9wdHIgPSAwOworICAgICAgICAgIH0gZWxzZSAvKiBvcCA9PSBnZXRfZnVuY3Rvcl90eXBlX3RhZyAqLyB7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudHlwZSA9ICZCT09TVF9TUF9UWVBFSUQoRnVuY3Rvcik7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUuY29uc3RfcXVhbGlmaWVkID0gZmFsc2U7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudm9sYXRpbGVfcXVhbGlmaWVkID0gZmFsc2U7ICAgICAgICAgICAgCisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9OworCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgICAgc3RydWN0IGZ1bmN0b3JfbWFuYWdlcgorICAgICAgeworICAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBGdW5jdG9yIGZ1bmN0b3JfdHlwZTsKKworICAgICAgICAvLyBGdW5jdGlvbiBwb2ludGVycworICAgICAgICBzdGF0aWMgaW5saW5lIHZvaWQKKyAgICAgICAgbWFuYWdlcihjb25zdCBmdW5jdGlvbl9idWZmZXImIGluX2J1ZmZlciwgZnVuY3Rpb25fYnVmZmVyJiBvdXRfYnVmZmVyLCAKKyAgICAgICAgICAgICAgICBmdW5jdG9yX21hbmFnZXJfb3BlcmF0aW9uX3R5cGUgb3AsIGZ1bmN0aW9uX3B0cl90YWcpCisgICAgICAgIHsKKyAgICAgICAgICBmdW5jdG9yX21hbmFnZXJfY29tbW9uPEZ1bmN0b3I+OjptYW5hZ2VfcHRyKGluX2J1ZmZlcixvdXRfYnVmZmVyLG9wKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZ1bmN0aW9uIG9iamVjdHMgdGhhdCBmaXQgaW4gdGhlIHNtYWxsLW9iamVjdCBidWZmZXIuCisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZAorICAgICAgICBtYW5hZ2VyKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCwgbXBsOjp0cnVlXykKKyAgICAgICAgeworICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9jb21tb248RnVuY3Rvcj46Om1hbmFnZV9zbWFsbChpbl9idWZmZXIsb3V0X2J1ZmZlcixvcCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEZ1bmN0aW9uIG9iamVjdHMgdGhhdCByZXF1aXJlIGhlYXAgYWxsb2NhdGlvbgorICAgICAgICBzdGF0aWMgaW5saW5lIHZvaWQKKyAgICAgICAgbWFuYWdlcihjb25zdCBmdW5jdGlvbl9idWZmZXImIGluX2J1ZmZlciwgZnVuY3Rpb25fYnVmZmVyJiBvdXRfYnVmZmVyLCAKKyAgICAgICAgICAgICAgICBmdW5jdG9yX21hbmFnZXJfb3BlcmF0aW9uX3R5cGUgb3AsIG1wbDo6ZmFsc2VfKQorICAgICAgICB7CisgICAgICAgICAgaWYgKG9wID09IGNsb25lX2Z1bmN0b3JfdGFnKSB7CisgICAgICAgICAgICAvLyBDbG9uZSB0aGUgZnVuY3RvcgorICAgICAgICAgICAgLy8gR0NDIDIuOTUuMyBnZXRzIHRoZSBDViBxdWFsaWZpZXJzIHdyb25nIGhlcmUsIHNvIHdlCisgICAgICAgICAgICAvLyBjYW4ndCBkbyB0aGUgc3RhdGljX2Nhc3QgdGhhdCB3ZSBzaG91bGQgZG8uCisgICAgICAgICAgICAvLyBqZXdpbGxjbzogQ2hhbmdpbmcgdGhpcyB0byBzdGF0aWNfY2FzdCBiZWNhdXNlIEdDQyAyLjk1LjMgaXMKKyAgICAgICAgICAgIC8vIG9ic29sZXRlLgorICAgICAgICAgICAgY29uc3QgZnVuY3Rvcl90eXBlKiBmID0KKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgZnVuY3Rvcl90eXBlKj4oaW5fYnVmZmVyLm9ial9wdHIpOworICAgICAgICAgICAgZnVuY3Rvcl90eXBlKiBuZXdfZiA9IG5ldyBmdW5jdG9yX3R5cGUoKmYpOworICAgICAgICAgICAgb3V0X2J1ZmZlci5vYmpfcHRyID0gbmV3X2Y7CisgICAgICAgICAgfSBlbHNlIGlmIChvcCA9PSBtb3ZlX2Z1bmN0b3JfdGFnKSB7CisgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9wdHIgPSBpbl9idWZmZXIub2JqX3B0cjsKKyAgICAgICAgICAgIGluX2J1ZmZlci5vYmpfcHRyID0gMDsKKyAgICAgICAgICB9IGVsc2UgaWYgKG9wID09IGRlc3Ryb3lfZnVuY3Rvcl90YWcpIHsKKyAgICAgICAgICAgIC8qIENhc3QgZnJvbSB0aGUgdm9pZCBwb2ludGVyIHRvIHRoZSBmdW5jdG9yIHBvaW50ZXIgdHlwZSAqLworICAgICAgICAgICAgZnVuY3Rvcl90eXBlKiBmID0KKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZnVuY3Rvcl90eXBlKj4ob3V0X2J1ZmZlci5vYmpfcHRyKTsKKyAgICAgICAgICAgIGRlbGV0ZSBmOworICAgICAgICAgICAgb3V0X2J1ZmZlci5vYmpfcHRyID0gMDsKKyAgICAgICAgICB9IGVsc2UgaWYgKG9wID09IGNoZWNrX2Z1bmN0b3JfdHlwZV90YWcpIHsKKyAgICAgICAgICAgIGNvbnN0IGRldGFpbDo6c3BfdHlwZWluZm8mIGNoZWNrX3R5cGUKKyAgICAgICAgICAgICAgPSAqb3V0X2J1ZmZlci50eXBlLnR5cGU7CisgICAgICAgICAgICBpZiAoQk9PU1RfRlVOQ1RJT05fQ09NUEFSRV9UWVBFX0lEKGNoZWNrX3R5cGUsIEJPT1NUX1NQX1RZUEVJRChGdW5jdG9yKSkpCisgICAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9IGluX2J1ZmZlci5vYmpfcHRyOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9wdHIgPSAwOworICAgICAgICAgIH0gZWxzZSAvKiBvcCA9PSBnZXRfZnVuY3Rvcl90eXBlX3RhZyAqLyB7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudHlwZSA9ICZCT09TVF9TUF9UWVBFSUQoRnVuY3Rvcik7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUuY29uc3RfcXVhbGlmaWVkID0gZmFsc2U7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudm9sYXRpbGVfcXVhbGlmaWVkID0gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIGZ1bmN0aW9uIG9iamVjdHMsIHdlIGRldGVybWluZSB3aGV0aGVyIHRoZSBmdW5jdGlvbgorICAgICAgICAvLyBvYmplY3QgY2FuIHVzZSB0aGUgc21hbGwtb2JqZWN0IG9wdGltaXphdGlvbiBidWZmZXIgb3IKKyAgICAgICAgLy8gd2hldGhlciB3ZSBuZWVkIHRvIGFsbG9jYXRlIGl0IG9uIHRoZSBoZWFwLgorICAgICAgICBzdGF0aWMgaW5saW5lIHZvaWQKKyAgICAgICAgbWFuYWdlcihjb25zdCBmdW5jdGlvbl9idWZmZXImIGluX2J1ZmZlciwgZnVuY3Rpb25fYnVmZmVyJiBvdXRfYnVmZmVyLCAKKyAgICAgICAgICAgICAgICBmdW5jdG9yX21hbmFnZXJfb3BlcmF0aW9uX3R5cGUgb3AsIGZ1bmN0aW9uX29ial90YWcpCisgICAgICAgIHsKKyAgICAgICAgICBtYW5hZ2VyKGluX2J1ZmZlciwgb3V0X2J1ZmZlciwgb3AsCisgICAgICAgICAgICAgICAgICBtcGw6OmJvb2xfPChmdW5jdGlvbl9hbGxvd3Nfc21hbGxfb2JqZWN0X29wdGltaXphdGlvbjxmdW5jdG9yX3R5cGU+Ojp2YWx1ZSk+KCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIG1lbWJlciBwb2ludGVycywgd2UgdXNlIHRoZSBzbWFsbC1vYmplY3Qgb3B0aW1pemF0aW9uIGJ1ZmZlci4KKyAgICAgICAgc3RhdGljIGlubGluZSB2b2lkCisgICAgICAgIG1hbmFnZXIoY29uc3QgZnVuY3Rpb25fYnVmZmVyJiBpbl9idWZmZXIsIGZ1bmN0aW9uX2J1ZmZlciYgb3V0X2J1ZmZlciwgCisgICAgICAgICAgICAgICAgZnVuY3Rvcl9tYW5hZ2VyX29wZXJhdGlvbl90eXBlIG9wLCBtZW1iZXJfcHRyX3RhZykKKyAgICAgICAgeworICAgICAgICAgIG1hbmFnZXIoaW5fYnVmZmVyLCBvdXRfYnVmZmVyLCBvcCwgbXBsOjp0cnVlXygpKTsKKyAgICAgICAgfQorCisgICAgICBwdWJsaWM6CisgICAgICAgIC8qIERpc3BhdGNoIHRvIGFuIGFwcHJvcHJpYXRlIG1hbmFnZXIgYmFzZWQgb24gd2hldGhlciB3ZSBoYXZlIGEKKyAgICAgICAgICAgZnVuY3Rpb24gcG9pbnRlciBvciBhIGZ1bmN0aW9uIG9iamVjdCBwb2ludGVyLiAqLworICAgICAgICBzdGF0aWMgaW5saW5lIHZvaWQKKyAgICAgICAgbWFuYWdlKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgZnVuY3Rvcl9tYW5hZ2VyX29wZXJhdGlvbl90eXBlIG9wKQorICAgICAgICB7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBnZXRfZnVuY3Rpb25fdGFnPGZ1bmN0b3JfdHlwZT46OnR5cGUgdGFnX3R5cGU7CisgICAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICAgIGNhc2UgZ2V0X2Z1bmN0b3JfdHlwZV90YWc6CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudHlwZSA9ICZCT09TVF9TUF9UWVBFSUQoZnVuY3Rvcl90eXBlKTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS5jb25zdF9xdWFsaWZpZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS52b2xhdGlsZV9xdWFsaWZpZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBtYW5hZ2VyKGluX2J1ZmZlciwgb3V0X2J1ZmZlciwgb3AsIHRhZ190eXBlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3RvciwgdHlwZW5hbWUgQWxsb2NhdG9yPgorICAgICAgc3RydWN0IGZ1bmN0b3JfbWFuYWdlcl9hCisgICAgICB7CisgICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIEZ1bmN0b3IgZnVuY3Rvcl90eXBlOworCisgICAgICAgIC8vIEZ1bmN0aW9uIHBvaW50ZXJzCisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZAorICAgICAgICBtYW5hZ2VyKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCwgZnVuY3Rpb25fcHRyX3RhZykKKyAgICAgICAgeworICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9jb21tb248RnVuY3Rvcj46Om1hbmFnZV9wdHIoaW5fYnVmZmVyLG91dF9idWZmZXIsb3ApOworICAgICAgICB9CisKKyAgICAgICAgLy8gRnVuY3Rpb24gb2JqZWN0cyB0aGF0IGZpdCBpbiB0aGUgc21hbGwtb2JqZWN0IGJ1ZmZlci4KKyAgICAgICAgc3RhdGljIGlubGluZSB2b2lkCisgICAgICAgIG1hbmFnZXIoY29uc3QgZnVuY3Rpb25fYnVmZmVyJiBpbl9idWZmZXIsIGZ1bmN0aW9uX2J1ZmZlciYgb3V0X2J1ZmZlciwgCisgICAgICAgICAgICAgICAgZnVuY3Rvcl9tYW5hZ2VyX29wZXJhdGlvbl90eXBlIG9wLCBtcGw6OnRydWVfKQorICAgICAgICB7CisgICAgICAgICAgZnVuY3Rvcl9tYW5hZ2VyX2NvbW1vbjxGdW5jdG9yPjo6bWFuYWdlX3NtYWxsKGluX2J1ZmZlcixvdXRfYnVmZmVyLG9wKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRnVuY3Rpb24gb2JqZWN0cyB0aGF0IHJlcXVpcmUgaGVhcCBhbGxvY2F0aW9uCisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZAorICAgICAgICBtYW5hZ2VyKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCwgbXBsOjpmYWxzZV8pCisgICAgICAgIHsKKyAgICAgICAgICB0eXBlZGVmIGZ1bmN0b3Jfd3JhcHBlcjxGdW5jdG9yLEFsbG9jYXRvcj4gZnVuY3Rvcl93cmFwcGVyX3R5cGU7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBbGxvY2F0b3I6OnRlbXBsYXRlIHJlYmluZDxmdW5jdG9yX3dyYXBwZXJfdHlwZT46Om90aGVyCisgICAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvcl90eXBlOworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgd3JhcHBlcl9hbGxvY2F0b3JfdHlwZTo6cG9pbnRlciB3cmFwcGVyX2FsbG9jYXRvcl9wb2ludGVyX3R5cGU7CisKKyAgICAgICAgICBpZiAob3AgPT0gY2xvbmVfZnVuY3Rvcl90YWcpIHsKKyAgICAgICAgICAgIC8vIENsb25lIHRoZSBmdW5jdG9yCisgICAgICAgICAgICAvLyBHQ0MgMi45NS4zIGdldHMgdGhlIENWIHF1YWxpZmllcnMgd3JvbmcgaGVyZSwgc28gd2UKKyAgICAgICAgICAgIC8vIGNhbid0IGRvIHRoZSBzdGF0aWNfY2FzdCB0aGF0IHdlIHNob3VsZCBkby4KKyAgICAgICAgICAgIGNvbnN0IGZ1bmN0b3Jfd3JhcHBlcl90eXBlKiBmID0KKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgZnVuY3Rvcl93cmFwcGVyX3R5cGUqPihpbl9idWZmZXIub2JqX3B0cik7CisgICAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvcl90eXBlIHdyYXBwZXJfYWxsb2NhdG9yKHN0YXRpY19jYXN0PEFsbG9jYXRvciBjb25zdCAmPigqZikpOworICAgICAgICAgICAgd3JhcHBlcl9hbGxvY2F0b3JfcG9pbnRlcl90eXBlIGNvcHkgPSB3cmFwcGVyX2FsbG9jYXRvci5hbGxvY2F0ZSgxKTsKKyAgICAgICAgICAgIHdyYXBwZXJfYWxsb2NhdG9yLmNvbnN0cnVjdChjb3B5LCAqZik7CisKKyAgICAgICAgICAgIC8vIEdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBwb2ludGVyIHR5cGUKKyAgICAgICAgICAgIGZ1bmN0b3Jfd3JhcHBlcl90eXBlKiBuZXdfZiA9IHN0YXRpY19jYXN0PGZ1bmN0b3Jfd3JhcHBlcl90eXBlKj4oY29weSk7CisgICAgICAgICAgICBvdXRfYnVmZmVyLm9ial9wdHIgPSBuZXdfZjsKKyAgICAgICAgICB9IGVsc2UgaWYgKG9wID09IG1vdmVfZnVuY3Rvcl90YWcpIHsKKyAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9IGluX2J1ZmZlci5vYmpfcHRyOworICAgICAgICAgICAgaW5fYnVmZmVyLm9ial9wdHIgPSAwOworICAgICAgICAgIH0gZWxzZSBpZiAob3AgPT0gZGVzdHJveV9mdW5jdG9yX3RhZykgeworICAgICAgICAgICAgLyogQ2FzdCBmcm9tIHRoZSB2b2lkIHBvaW50ZXIgdG8gdGhlIGZ1bmN0b3Jfd3JhcHBlcl90eXBlICovCisgICAgICAgICAgICBmdW5jdG9yX3dyYXBwZXJfdHlwZSogdmljdGltID0KKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZnVuY3Rvcl93cmFwcGVyX3R5cGUqPihpbl9idWZmZXIub2JqX3B0cik7CisgICAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvcl90eXBlIHdyYXBwZXJfYWxsb2NhdG9yKHN0YXRpY19jYXN0PEFsbG9jYXRvciBjb25zdCAmPigqdmljdGltKSk7CisgICAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvci5kZXN0cm95KHZpY3RpbSk7CisgICAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvci5kZWFsbG9jYXRlKHZpY3RpbSwxKTsKKyAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9IDA7CisgICAgICAgICAgfSBlbHNlIGlmIChvcCA9PSBjaGVja19mdW5jdG9yX3R5cGVfdGFnKSB7CisgICAgICAgICAgICBjb25zdCBkZXRhaWw6OnNwX3R5cGVpbmZvJiBjaGVja190eXBlIAorICAgICAgICAgICAgICA9ICpvdXRfYnVmZmVyLnR5cGUudHlwZTsKKyAgICAgICAgICAgIGlmIChCT09TVF9GVU5DVElPTl9DT01QQVJFX1RZUEVfSUQoY2hlY2tfdHlwZSwgQk9PU1RfU1BfVFlQRUlEKEZ1bmN0b3IpKSkKKyAgICAgICAgICAgICAgb3V0X2J1ZmZlci5vYmpfcHRyID0gaW5fYnVmZmVyLm9ial9wdHI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIG91dF9idWZmZXIub2JqX3B0ciA9IDA7CisgICAgICAgICAgfSBlbHNlIC8qIG9wID09IGdldF9mdW5jdG9yX3R5cGVfdGFnICovIHsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS50eXBlID0gJkJPT1NUX1NQX1RZUEVJRChGdW5jdG9yKTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS5jb25zdF9xdWFsaWZpZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIG91dF9idWZmZXIudHlwZS52b2xhdGlsZV9xdWFsaWZpZWQgPSBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBGb3IgZnVuY3Rpb24gb2JqZWN0cywgd2UgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGZ1bmN0aW9uCisgICAgICAgIC8vIG9iamVjdCBjYW4gdXNlIHRoZSBzbWFsbC1vYmplY3Qgb3B0aW1pemF0aW9uIGJ1ZmZlciBvcgorICAgICAgICAvLyB3aGV0aGVyIHdlIG5lZWQgdG8gYWxsb2NhdGUgaXQgb24gdGhlIGhlYXAuCisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZAorICAgICAgICBtYW5hZ2VyKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCBmdW5jdGlvbl9idWZmZXImIG91dF9idWZmZXIsIAorICAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCwgZnVuY3Rpb25fb2JqX3RhZykKKyAgICAgICAgeworICAgICAgICAgIG1hbmFnZXIoaW5fYnVmZmVyLCBvdXRfYnVmZmVyLCBvcCwKKyAgICAgICAgICAgICAgICAgIG1wbDo6Ym9vbF88KGZ1bmN0aW9uX2FsbG93c19zbWFsbF9vYmplY3Rfb3B0aW1pemF0aW9uPGZ1bmN0b3JfdHlwZT46OnZhbHVlKT4oKSk7CisgICAgICAgIH0KKworICAgICAgcHVibGljOgorICAgICAgICAvKiBEaXNwYXRjaCB0byBhbiBhcHByb3ByaWF0ZSBtYW5hZ2VyIGJhc2VkIG9uIHdoZXRoZXIgd2UgaGF2ZSBhCisgICAgICAgICAgIGZ1bmN0aW9uIHBvaW50ZXIgb3IgYSBmdW5jdGlvbiBvYmplY3QgcG9pbnRlci4gKi8KKyAgICAgICAgc3RhdGljIGlubGluZSB2b2lkCisgICAgICAgIG1hbmFnZShjb25zdCBmdW5jdGlvbl9idWZmZXImIGluX2J1ZmZlciwgZnVuY3Rpb25fYnVmZmVyJiBvdXRfYnVmZmVyLCAKKyAgICAgICAgICAgICAgIGZ1bmN0b3JfbWFuYWdlcl9vcGVyYXRpb25fdHlwZSBvcCkKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZ2V0X2Z1bmN0aW9uX3RhZzxmdW5jdG9yX3R5cGU+Ojp0eXBlIHRhZ190eXBlOworICAgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAgICBjYXNlIGdldF9mdW5jdG9yX3R5cGVfdGFnOgorICAgICAgICAgICAgb3V0X2J1ZmZlci50eXBlLnR5cGUgPSAmQk9PU1RfU1BfVFlQRUlEKGZ1bmN0b3JfdHlwZSk7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUuY29uc3RfcXVhbGlmaWVkID0gZmFsc2U7CisgICAgICAgICAgICBvdXRfYnVmZmVyLnR5cGUudm9sYXRpbGVfcXVhbGlmaWVkID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbWFuYWdlcihpbl9idWZmZXIsIG91dF9idWZmZXIsIG9wLCB0YWdfdHlwZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH07CisKKyAgICAgIC8vIEEgdHlwZSB0aGF0IGlzIG9ubHkgdXNlZCBmb3IgY29tcGFyaXNvbnMgYWdhaW5zdCB6ZXJvCisgICAgICBzdHJ1Y3QgdXNlbGVzc19jbGVhcl90eXBlIHt9OworCisjaWZkZWYgQk9PU1RfTk9fU0ZJTkFFCisgICAgICAvLyBUaGVzZSByb3V0aW5lcyBwZXJmb3JtIGNvbXBhcmlzb25zIGJldHdlZW4gYSBCb29zdC5GdW5jdGlvbgorICAgICAgLy8gb2JqZWN0IGFuZCBhbiBhcmJpdHJhcnkgZnVuY3Rpb24gb2JqZWN0ICh3aGVuIHRoZSBsYXN0CisgICAgICAvLyBwYXJhbWV0ZXIgaXMgbXBsOjpib29sXzxmYWxzZT4pIG9yIGFnYWluc3QgemVybyAod2hlbiB0aGUKKyAgICAgIC8vIGxhc3QgcGFyYW1ldGVyIGlzIG1wbDo6Ym9vbF88dHJ1ZT4pLiBUaGV5IGFyZSBvbmx5IG5lY2Vzc2FyeQorICAgICAgLy8gZm9yIGNvbXBpbGVycyB0aGF0IGRvbid0IHN1cHBvcnQgU0ZJTkFFLgorICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24sIHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgICAgIGJvb2wKKyAgICAgICAgY29tcGFyZV9lcXVhbChjb25zdCBGdW5jdGlvbiYgZiwgY29uc3QgRnVuY3RvciYsIGludCwgbXBsOjpib29sXzx0cnVlPikKKyAgICAgICAgeyByZXR1cm4gZi5lbXB0eSgpOyB9CisKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uLCB0eXBlbmFtZSBGdW5jdG9yPgorICAgICAgICBib29sCisgICAgICAgIGNvbXBhcmVfbm90X2VxdWFsKGNvbnN0IEZ1bmN0aW9uJiBmLCBjb25zdCBGdW5jdG9yJiwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBtcGw6OmJvb2xfPHRydWU+KQorICAgICAgICB7IHJldHVybiAhZi5lbXB0eSgpOyB9CisKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uLCB0eXBlbmFtZSBGdW5jdG9yPgorICAgICAgICBib29sCisgICAgICAgIGNvbXBhcmVfZXF1YWwoY29uc3QgRnVuY3Rpb24mIGYsIGNvbnN0IEZ1bmN0b3ImIGcsIGxvbmcsCisgICAgICAgICAgICAgICAgICAgICAgbXBsOjpib29sXzxmYWxzZT4pCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoY29uc3QgRnVuY3RvciogZnAgPSBmLnRlbXBsYXRlIHRhcmdldDxGdW5jdG9yPigpKQorICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uX2VxdWFsKCpmcCwgZyk7CisgICAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24sIHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgICAgIGJvb2wKKyAgICAgICAgY29tcGFyZV9lcXVhbChjb25zdCBGdW5jdGlvbiYgZiwgY29uc3QgcmVmZXJlbmNlX3dyYXBwZXI8RnVuY3Rvcj4mIGcsCisgICAgICAgICAgICAgICAgICAgICAgaW50LCBtcGw6OmJvb2xfPGZhbHNlPikKKyAgICAgICAgeworICAgICAgICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IGYudGVtcGxhdGUgdGFyZ2V0PEZ1bmN0b3I+KCkpCisgICAgICAgICAgICByZXR1cm4gZnAgPT0gZy5nZXRfcG9pbnRlcigpOworICAgICAgICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uLCB0eXBlbmFtZSBGdW5jdG9yPgorICAgICAgICBib29sCisgICAgICAgIGNvbXBhcmVfbm90X2VxdWFsKGNvbnN0IEZ1bmN0aW9uJiBmLCBjb25zdCBGdW5jdG9yJiBnLCBsb25nLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtcGw6OmJvb2xfPGZhbHNlPikKKyAgICAgICAgeworICAgICAgICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IGYudGVtcGxhdGUgdGFyZ2V0PEZ1bmN0b3I+KCkpCisgICAgICAgICAgICByZXR1cm4gIWZ1bmN0aW9uX2VxdWFsKCpmcCwgZyk7CisgICAgICAgICAgZWxzZSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbiwgdHlwZW5hbWUgRnVuY3Rvcj4KKyAgICAgICAgYm9vbAorICAgICAgICBjb21wYXJlX25vdF9lcXVhbChjb25zdCBGdW5jdGlvbiYgZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlX3dyYXBwZXI8RnVuY3Rvcj4mIGcsIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbXBsOjpib29sXzxmYWxzZT4pCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoY29uc3QgRnVuY3RvciogZnAgPSBmLnRlbXBsYXRlIHRhcmdldDxGdW5jdG9yPigpKQorICAgICAgICAgICAgcmV0dXJuIGZwICE9IGcuZ2V0X3BvaW50ZXIoKTsKKyAgICAgICAgICBlbHNlIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYgLy8gQk9PU1RfTk9fU0ZJTkFFCisKKyAgICAgIC8qKgorICAgICAgICogU3RvcmVzIHRoZSAibWFuYWdlciIgcG9ydGlvbiBvZiB0aGUgdnRhYmxlIGZvciBhCisgICAgICAgKiBuZG5ib29zdDo6ZnVuY3Rpb24gb2JqZWN0LgorICAgICAgICovCisgICAgICBzdHJ1Y3QgdnRhYmxlX2Jhc2UKKyAgICAgIHsKKyAgICAgICAgdm9pZCAoKm1hbmFnZXIpKGNvbnN0IGZ1bmN0aW9uX2J1ZmZlciYgaW5fYnVmZmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2J1ZmZlciYgb3V0X2J1ZmZlciwgCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdG9yX21hbmFnZXJfb3BlcmF0aW9uX3R5cGUgb3ApOworICAgICAgfTsKKyAgICB9IC8vIGVuZCBuYW1lc3BhY2UgZnVuY3Rpb24KKyAgfSAvLyBlbmQgbmFtZXNwYWNlIGRldGFpbAorCisvKioKKyAqIFRoZSBmdW5jdGlvbl9iYXNlIGNsYXNzIGNvbnRhaW5zIHRoZSBiYXNpYyBlbGVtZW50cyBuZWVkZWQgZm9yIHRoZQorICogZnVuY3Rpb24xLCBmdW5jdGlvbjIsIGZ1bmN0aW9uMywgZXRjLiBjbGFzc2VzLiBJdCBpcyBjb21tb24gdG8gYWxsCisgKiBmdW5jdGlvbnMgKGFuZCBhcyBzdWNoIGNhbiBiZSB1c2VkIHRvIHRlbGwgaWYgd2UgaGF2ZSBvbmUgb2YgdGhlCisgKiBmdW5jdGlvbk4gb2JqZWN0cykuCisgKi8KK2NsYXNzIGZ1bmN0aW9uX2Jhc2UKK3sKK3B1YmxpYzoKKyAgZnVuY3Rpb25fYmFzZSgpIDogdnRhYmxlKDApIHsgfQorCisgIC8qKiBEZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIGlzIGVtcHR5IChpLmUuLCBoYXMgbm8gdGFyZ2V0KS4gKi8KKyAgYm9vbCBlbXB0eSgpIGNvbnN0IHsgcmV0dXJuICF2dGFibGU7IH0KKworICAvKiogUmV0cmlldmUgdGhlIHR5cGUgb2YgdGhlIHN0b3JlZCBmdW5jdGlvbiBvYmplY3QsIG9yIEJPT1NUX1NQX1RZUEVJRCh2b2lkKQorICAgICAgaWYgdGhpcyBpcyBlbXB0eS4gKi8KKyAgY29uc3QgZGV0YWlsOjpzcF90eXBlaW5mbyYgdGFyZ2V0X3R5cGUoKSBjb25zdAorICB7CisgICAgaWYgKCF2dGFibGUpIHJldHVybiBCT09TVF9TUF9UWVBFSUQodm9pZCk7CisKKyAgICBkZXRhaWw6OmZ1bmN0aW9uOjpmdW5jdGlvbl9idWZmZXIgdHlwZTsKKyAgICBnZXRfdnRhYmxlKCktPm1hbmFnZXIoZnVuY3RvciwgdHlwZSwgZGV0YWlsOjpmdW5jdGlvbjo6Z2V0X2Z1bmN0b3JfdHlwZV90YWcpOworICAgIHJldHVybiAqdHlwZS50eXBlLnR5cGU7CisgIH0KKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIEZ1bmN0b3IqIHRhcmdldCgpCisgICAgeworICAgICAgaWYgKCF2dGFibGUpIHJldHVybiAwOworCisgICAgICBkZXRhaWw6OmZ1bmN0aW9uOjpmdW5jdGlvbl9idWZmZXIgdHlwZV9yZXN1bHQ7CisgICAgICB0eXBlX3Jlc3VsdC50eXBlLnR5cGUgPSAmQk9PU1RfU1BfVFlQRUlEKEZ1bmN0b3IpOworICAgICAgdHlwZV9yZXN1bHQudHlwZS5jb25zdF9xdWFsaWZpZWQgPSBpc19jb25zdDxGdW5jdG9yPjo6dmFsdWU7CisgICAgICB0eXBlX3Jlc3VsdC50eXBlLnZvbGF0aWxlX3F1YWxpZmllZCA9IGlzX3ZvbGF0aWxlPEZ1bmN0b3I+Ojp2YWx1ZTsKKyAgICAgIGdldF92dGFibGUoKS0+bWFuYWdlcihmdW5jdG9yLCB0eXBlX3Jlc3VsdCwgCisgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjpmdW5jdGlvbjo6Y2hlY2tfZnVuY3Rvcl90eXBlX3RhZyk7CisgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnVuY3Rvcio+KHR5cGVfcmVzdWx0Lm9ial9wdHIpOworICAgIH0KKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgY29uc3QgRnVuY3RvciogdGFyZ2V0KCBGdW5jdG9yICogPSAwICkgY29uc3QKKyNlbHNlCisgICAgY29uc3QgRnVuY3RvciogdGFyZ2V0KCkgY29uc3QKKyNlbmRpZgorICAgIHsKKyAgICAgIGlmICghdnRhYmxlKSByZXR1cm4gMDsKKworICAgICAgZGV0YWlsOjpmdW5jdGlvbjo6ZnVuY3Rpb25fYnVmZmVyIHR5cGVfcmVzdWx0OworICAgICAgdHlwZV9yZXN1bHQudHlwZS50eXBlID0gJkJPT1NUX1NQX1RZUEVJRChGdW5jdG9yKTsKKyAgICAgIHR5cGVfcmVzdWx0LnR5cGUuY29uc3RfcXVhbGlmaWVkID0gdHJ1ZTsKKyAgICAgIHR5cGVfcmVzdWx0LnR5cGUudm9sYXRpbGVfcXVhbGlmaWVkID0gaXNfdm9sYXRpbGU8RnVuY3Rvcj46OnZhbHVlOworICAgICAgZ2V0X3Z0YWJsZSgpLT5tYW5hZ2VyKGZ1bmN0b3IsIHR5cGVfcmVzdWx0LCAKKyAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmZ1bmN0aW9uOjpjaGVja19mdW5jdG9yX3R5cGVfdGFnKTsKKyAgICAgIC8vIEdDQyAyLjk1LjMgZ2V0cyB0aGUgQ1YgcXVhbGlmaWVycyB3cm9uZyBoZXJlLCBzbyB3ZQorICAgICAgLy8gY2FuJ3QgZG8gdGhlIHN0YXRpY19jYXN0IHRoYXQgd2Ugc2hvdWxkIGRvLgorICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEZ1bmN0b3IqPih0eXBlX3Jlc3VsdC5vYmpfcHRyKTsKKyAgICB9CisKKyAgdGVtcGxhdGU8dHlwZW5hbWUgRj4KKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IEYmIGYpIGNvbnN0CisgICAgeworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgICBpZiAoY29uc3QgRiogZnAgPSB0aGlzLT50YXJnZXQoIChGKikwICkpCisjZWxzZQorICAgICAgaWYgKGNvbnN0IEYqIGZwID0gdGhpcy0+dGVtcGxhdGUgdGFyZ2V0PEY+KCkpCisjZW5kaWYKKyAgICAgIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uX2VxdWFsKCpmcCwgZik7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgfQorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA8PSAzCisgIC8vIEdDQyAzLjMgYW5kIG5ld2VyIGNhbm5vdCBjb3B5IHdpdGggdGhlIGdsb2JhbCBvcGVyYXRvcj09LCBkdWUgdG8KKyAgLy8gcHJvYmxlbXMgd2l0aCBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHJldHVybiB0eXBlcyBiZWZvcmUgaXQKKyAgLy8gaGFzIGJlZW4gdmVyaWZpZWQgdGhhdCB0aGUgYXJndW1lbnQgdHlwZXMgbWF0Y2ggdXAuCisgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgQk9PU1RfRlVOQ1RJT05fRU5BQkxFX0lGX05PVF9JTlRFR1JBTChGdW5jdG9yLCBib29sKQorICAgIG9wZXJhdG9yPT0oRnVuY3RvciBnKSBjb25zdAorICAgIHsKKyAgICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IHRhcmdldDxGdW5jdG9yPigpKQorICAgICAgICByZXR1cm4gZnVuY3Rpb25fZXF1YWwoKmZwLCBnKTsKKyAgICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICAgIH0KKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIEJPT1NUX0ZVTkNUSU9OX0VOQUJMRV9JRl9OT1RfSU5URUdSQUwoRnVuY3RvciwgYm9vbCkKKyAgICBvcGVyYXRvciE9KEZ1bmN0b3IgZykgY29uc3QKKyAgICB7CisgICAgICBpZiAoY29uc3QgRnVuY3RvciogZnAgPSB0YXJnZXQ8RnVuY3Rvcj4oKSkKKyAgICAgICAgcmV0dXJuICFmdW5jdGlvbl9lcXVhbCgqZnAsIGcpOworICAgICAgZWxzZSByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworcHVibGljOiAvLyBzaG91bGQgYmUgcHJvdGVjdGVkLCBidXQgR0NDIDIuOTUuMyB3aWxsIGZhaWwgdG8gYWxsb3cgYWNjZXNzCisgIGRldGFpbDo6ZnVuY3Rpb246OnZ0YWJsZV9iYXNlKiBnZXRfdnRhYmxlKCkgY29uc3QgeworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGRldGFpbDo6ZnVuY3Rpb246OnZ0YWJsZV9iYXNlKj4oCisgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxzdGQ6OnNpemVfdD4odnRhYmxlKSAmIH5zdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oMHgwMSkpOworICB9CisKKyAgYm9vbCBoYXNfdHJpdmlhbF9jb3B5X2FuZF9kZXN0cm95KCkgY29uc3QgeworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHN0ZDo6c2l6ZV90Pih2dGFibGUpICYgMHgwMTsKKyAgfQorCisgIGRldGFpbDo6ZnVuY3Rpb246OnZ0YWJsZV9iYXNlKiB2dGFibGU7CisgIG11dGFibGUgZGV0YWlsOjpmdW5jdGlvbjo6ZnVuY3Rpb25fYnVmZmVyIGZ1bmN0b3I7Cit9OworCisvKioKKyAqIFRoZSBiYWRfZnVuY3Rpb25fY2FsbCBleGNlcHRpb24gY2xhc3MgaXMgdGhyb3duIHdoZW4gYSBuZG5ib29zdDo6ZnVuY3Rpb24KKyAqIG9iamVjdCBpcyBpbnZva2VkCisgKi8KK2NsYXNzIGJhZF9mdW5jdGlvbl9jYWxsIDogcHVibGljIHN0ZDo6cnVudGltZV9lcnJvcgoreworcHVibGljOgorICBiYWRfZnVuY3Rpb25fY2FsbCgpIDogc3RkOjpydW50aW1lX2Vycm9yKCJjYWxsIHRvIGVtcHR5IG5kbmJvb3N0OjpmdW5jdGlvbiIpIHt9Cit9OworCisjaWZuZGVmIEJPT1NUX05PX1NGSU5BRQoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBmdW5jdGlvbl9iYXNlJiBmLAorICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmZ1bmN0aW9uOjp1c2VsZXNzX2NsZWFyX3R5cGUqKQoreworICByZXR1cm4gZi5lbXB0eSgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGZ1bmN0aW9uX2Jhc2UmIGYsCisgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6ZnVuY3Rpb246OnVzZWxlc3NfY2xlYXJfdHlwZSopCit7CisgIHJldHVybiAhZi5lbXB0eSgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGRldGFpbDo6ZnVuY3Rpb246OnVzZWxlc3NfY2xlYXJfdHlwZSosCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uX2Jhc2UmIGYpCit7CisgIHJldHVybiBmLmVtcHR5KCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oZGV0YWlsOjpmdW5jdGlvbjo6dXNlbGVzc19jbGVhcl90eXBlKiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25fYmFzZSYgZikKK3sKKyAgcmV0dXJuICFmLmVtcHR5KCk7Cit9CisjZW5kaWYKKworI2lmZGVmIEJPT1NUX05PX1NGSU5BRQorLy8gQ29tcGFyaXNvbnMgYmV0d2VlbiBuZG5ib29zdDo6ZnVuY3Rpb24gb2JqZWN0cyBhbmQgYXJiaXRyYXJ5IGZ1bmN0aW9uIG9iamVjdHMKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgZnVuY3Rpb25fYmFzZSYgZiwgRnVuY3RvciBnKQorICB7CisgICAgdHlwZWRlZiBtcGw6OmJvb2xfPChpc19pbnRlZ3JhbDxGdW5jdG9yPjo6dmFsdWUpPiBpbnRlZ3JhbDsKKyAgICByZXR1cm4gZGV0YWlsOjpmdW5jdGlvbjo6Y29tcGFyZV9lcXVhbChmLCBnLCAwLCBpbnRlZ3JhbCgpKTsKKyAgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KEZ1bmN0b3IgZywgY29uc3QgZnVuY3Rpb25fYmFzZSYgZikKKyAgeworICAgIHR5cGVkZWYgbXBsOjpib29sXzwoaXNfaW50ZWdyYWw8RnVuY3Rvcj46OnZhbHVlKT4gaW50ZWdyYWw7CisgICAgcmV0dXJuIGRldGFpbDo6ZnVuY3Rpb246OmNvbXBhcmVfZXF1YWwoZiwgZywgMCwgaW50ZWdyYWwoKSk7CisgIH0KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBmdW5jdGlvbl9iYXNlJiBmLCBGdW5jdG9yIGcpCisgIHsKKyAgICB0eXBlZGVmIG1wbDo6Ym9vbF88KGlzX2ludGVncmFsPEZ1bmN0b3I+Ojp2YWx1ZSk+IGludGVncmFsOworICAgIHJldHVybiBkZXRhaWw6OmZ1bmN0aW9uOjpjb21wYXJlX25vdF9lcXVhbChmLCBnLCAwLCBpbnRlZ3JhbCgpKTsKKyAgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KEZ1bmN0b3IgZywgY29uc3QgZnVuY3Rpb25fYmFzZSYgZikKKyAgeworICAgIHR5cGVkZWYgbXBsOjpib29sXzwoaXNfaW50ZWdyYWw8RnVuY3Rvcj46OnZhbHVlKT4gaW50ZWdyYWw7CisgICAgcmV0dXJuIGRldGFpbDo6ZnVuY3Rpb246OmNvbXBhcmVfbm90X2VxdWFsKGYsIGcsIDAsIGludGVncmFsKCkpOworICB9CisjZWxzZQorCisjICBpZiAhKGRlZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPD0gMykKKy8vIENvbXBhcmlzb25zIGJldHdlZW4gbmRuYm9vc3Q6OmZ1bmN0aW9uIG9iamVjdHMgYW5kIGFyYml0cmFyeSBmdW5jdGlvbgorLy8gb2JqZWN0cy4gR0NDIDMuMyBhbmQgYmVmb3JlIGhhcyBhbiBvYm5veGlvdXMgYnVnIHRoYXQgcHJldmVudHMgdGhpcworLy8gZnJvbSB3b3JraW5nLgordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgQk9PU1RfRlVOQ1RJT05fRU5BQkxFX0lGX05PVF9JTlRFR1JBTChGdW5jdG9yLCBib29sKQorICBvcGVyYXRvcj09KGNvbnN0IGZ1bmN0aW9uX2Jhc2UmIGYsIEZ1bmN0b3IgZykKKyAgeworICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IGYudGVtcGxhdGUgdGFyZ2V0PEZ1bmN0b3I+KCkpCisgICAgICByZXR1cm4gZnVuY3Rpb25fZXF1YWwoKmZwLCBnKTsKKyAgICBlbHNlIHJldHVybiBmYWxzZTsKKyAgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICBCT09TVF9GVU5DVElPTl9FTkFCTEVfSUZfTk9UX0lOVEVHUkFMKEZ1bmN0b3IsIGJvb2wpCisgIG9wZXJhdG9yPT0oRnVuY3RvciBnLCBjb25zdCBmdW5jdGlvbl9iYXNlJiBmKQorICB7CisgICAgaWYgKGNvbnN0IEZ1bmN0b3IqIGZwID0gZi50ZW1wbGF0ZSB0YXJnZXQ8RnVuY3Rvcj4oKSkKKyAgICAgIHJldHVybiBmdW5jdGlvbl9lcXVhbChnLCAqZnApOworICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgIEJPT1NUX0ZVTkNUSU9OX0VOQUJMRV9JRl9OT1RfSU5URUdSQUwoRnVuY3RvciwgYm9vbCkKKyAgb3BlcmF0b3IhPShjb25zdCBmdW5jdGlvbl9iYXNlJiBmLCBGdW5jdG9yIGcpCisgIHsKKyAgICBpZiAoY29uc3QgRnVuY3RvciogZnAgPSBmLnRlbXBsYXRlIHRhcmdldDxGdW5jdG9yPigpKQorICAgICAgcmV0dXJuICFmdW5jdGlvbl9lcXVhbCgqZnAsIGcpOworICAgIGVsc2UgcmV0dXJuIHRydWU7CisgIH0KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgQk9PU1RfRlVOQ1RJT05fRU5BQkxFX0lGX05PVF9JTlRFR1JBTChGdW5jdG9yLCBib29sKQorICBvcGVyYXRvciE9KEZ1bmN0b3IgZywgY29uc3QgZnVuY3Rpb25fYmFzZSYgZikKKyAgeworICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IGYudGVtcGxhdGUgdGFyZ2V0PEZ1bmN0b3I+KCkpCisgICAgICByZXR1cm4gIWZ1bmN0aW9uX2VxdWFsKGcsICpmcCk7CisgICAgZWxzZSByZXR1cm4gdHJ1ZTsKKyAgfQorIyAgZW5kaWYKKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgQk9PU1RfRlVOQ1RJT05fRU5BQkxFX0lGX05PVF9JTlRFR1JBTChGdW5jdG9yLCBib29sKQorICBvcGVyYXRvcj09KGNvbnN0IGZ1bmN0aW9uX2Jhc2UmIGYsIHJlZmVyZW5jZV93cmFwcGVyPEZ1bmN0b3I+IGcpCisgIHsKKyAgICBpZiAoY29uc3QgRnVuY3RvciogZnAgPSBmLnRlbXBsYXRlIHRhcmdldDxGdW5jdG9yPigpKQorICAgICAgcmV0dXJuIGZwID09IGcuZ2V0X3BvaW50ZXIoKTsKKyAgICBlbHNlIHJldHVybiBmYWxzZTsKKyAgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICBCT09TVF9GVU5DVElPTl9FTkFCTEVfSUZfTk9UX0lOVEVHUkFMKEZ1bmN0b3IsIGJvb2wpCisgIG9wZXJhdG9yPT0ocmVmZXJlbmNlX3dyYXBwZXI8RnVuY3Rvcj4gZywgY29uc3QgZnVuY3Rpb25fYmFzZSYgZikKKyAgeworICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IGYudGVtcGxhdGUgdGFyZ2V0PEZ1bmN0b3I+KCkpCisgICAgICByZXR1cm4gZy5nZXRfcG9pbnRlcigpID09IGZwOworICAgIGVsc2UgcmV0dXJuIGZhbHNlOworICB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgIEJPT1NUX0ZVTkNUSU9OX0VOQUJMRV9JRl9OT1RfSU5URUdSQUwoRnVuY3RvciwgYm9vbCkKKyAgb3BlcmF0b3IhPShjb25zdCBmdW5jdGlvbl9iYXNlJiBmLCByZWZlcmVuY2Vfd3JhcHBlcjxGdW5jdG9yPiBnKQorICB7CisgICAgaWYgKGNvbnN0IEZ1bmN0b3IqIGZwID0gZi50ZW1wbGF0ZSB0YXJnZXQ8RnVuY3Rvcj4oKSkKKyAgICAgIHJldHVybiBmcCAhPSBnLmdldF9wb2ludGVyKCk7CisgICAgZWxzZSByZXR1cm4gdHJ1ZTsKKyAgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICBCT09TVF9GVU5DVElPTl9FTkFCTEVfSUZfTk9UX0lOVEVHUkFMKEZ1bmN0b3IsIGJvb2wpCisgIG9wZXJhdG9yIT0ocmVmZXJlbmNlX3dyYXBwZXI8RnVuY3Rvcj4gZywgY29uc3QgZnVuY3Rpb25fYmFzZSYgZikKKyAgeworICAgIGlmIChjb25zdCBGdW5jdG9yKiBmcCA9IGYudGVtcGxhdGUgdGFyZ2V0PEZ1bmN0b3I+KCkpCisgICAgICByZXR1cm4gZy5nZXRfcG9pbnRlcigpICE9IGZwOworICAgIGVsc2UgcmV0dXJuIHRydWU7CisgIH0KKworI2VuZGlmIC8vIENvbXBpbGVyIHN1cHBvcnRpbmcgU0ZJTkFFCisKK25hbWVzcGFjZSBkZXRhaWwgeworICBuYW1lc3BhY2UgZnVuY3Rpb24geworICAgIGlubGluZSBib29sIGhhc19lbXB0eV90YXJnZXQoY29uc3QgZnVuY3Rpb25fYmFzZSogZikKKyAgICB7CisgICAgICByZXR1cm4gZi0+ZW1wdHkoKTsKKyAgICB9CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMTApCisgICAgaW5saW5lIGJvb2wgaGFzX2VtcHR5X3RhcmdldChjb25zdCB2b2lkKikKKyAgICB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2Vsc2UKKyAgICBpbmxpbmUgYm9vbCBoYXNfZW1wdHlfdGFyZ2V0KC4uLikKKyAgICB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCisgIH0gLy8gZW5kIG5hbWVzcGFjZSBmdW5jdGlvbgorfSAvLyBlbmQgbmFtZXNwYWNlIGRldGFpbAorfSAvLyBlbmQgbmFtZXNwYWNlIG5kbmJvb3N0CisKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9FTkFCTEVfSUZfTk9UX0lOVEVHUkFMCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fQ09NUEFSRV9UWVBFX0lECisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjICAgcHJhZ21hIHdhcm5pbmcoIHBvcCApCisjZW5kaWYgICAgICAgCisKKyNlbmRpZiAvLyBCT09TVF9GVU5DVElPTl9CQVNFX0hFQURFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExZGY2ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX2Z3ZC5ocHAKQEAgLTAsMCArMSw3MCBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeQorLy8gIENvcHlyaWdodCAoQykgRG91Z2xhcyBHcmVnb3IgMjAwOAorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0CisvLyAgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuICAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKyNpZm5kZWYgQk9PU1RfRlVOQ1RJT05fRldEX0hQUAorI2RlZmluZSBCT09TVF9GVU5DVElPTl9GV0RfSFBQCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmIGRlZmluZWQoX19zZ2kpICYmIGRlZmluZWQoX0NPTVBJTEVSX1ZFUlNJT04pICYmIF9DT01QSUxFUl9WRVJTSU9OIDw9IDczMCAmJiAhZGVmaW5lZChCT09TVF9TVFJJQ1RfQ09ORklHKQorLy8gV29yayBhcm91bmQgYSBjb21waWxlciBidWcuCisvLyBuZG5ib29zdDo6cHl0aG9uOjpvYmplY3RzOjpmdW5jdGlvbiBoYXMgdG8gYmUgc2VlbiBieSB0aGUgY29tcGlsZXIgYmVmb3JlIHRoZQorLy8gbmRuYm9vc3Q6OmZ1bmN0aW9uIGNsYXNzIHRlbXBsYXRlLgorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHB5dGhvbiB7IG5hbWVzcGFjZSBvYmplY3RzIHsKKyAgY2xhc3MgZnVuY3Rpb247Cit9fX0KKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgICAgICAgICAgICAgICAgICAgIFwKKyB8fCBkZWZpbmVkKEJPT1NUX0JDQl9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OX0JVRykgICAgICAgICAgICAgICAgICAgICAgICAgXAorIHx8ICEoZGVmaW5lZChCT09TVF9TVFJJQ1RfQ09ORklHKSB8fCAhZGVmaW5lZChfX1NVTlBST19DQykgfHwgX19TVU5QUk9fQ0MgPiAweDU0MCkKKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9OT19GVU5DVElPTl9UWVBFX1NZTlRBWAorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgIGNsYXNzIGJhZF9mdW5jdGlvbl9jYWxsOworCisjaWYgIWRlZmluZWQoQk9PU1RfRlVOQ1RJT05fTk9fRlVOQ1RJT05fVFlQRV9TWU5UQVgpCisgIC8vIFByZWZlcnJlZCBzeW50YXgKKyAgdGVtcGxhdGU8dHlwZW5hbWUgU2lnbmF0dXJlPiBjbGFzcyBmdW5jdGlvbjsKKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBTaWduYXR1cmU+CisgIGlubGluZSB2b2lkIHN3YXAoZnVuY3Rpb248U2lnbmF0dXJlPiYgZjEsIGZ1bmN0aW9uPFNpZ25hdHVyZT4mIGYyKQorICB7CisgICAgZjEuc3dhcChmMik7CisgIH0KKyNlbmRpZiAvLyBoYXZlIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24KKworICAvLyBQb3J0YWJsZSBzeW50YXgKKyAgdGVtcGxhdGU8dHlwZW5hbWUgUj4gY2xhc3MgZnVuY3Rpb24wOworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMT4gY2xhc3MgZnVuY3Rpb24xOworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IGNsYXNzIGZ1bmN0aW9uMjsKKyAgdGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4gY2xhc3MgZnVuY3Rpb24zOworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4gCisgICAgY2xhc3MgZnVuY3Rpb240OworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgICAgdHlwZW5hbWUgVDU+IAorICAgIGNsYXNzIGZ1bmN0aW9uNTsKKyAgdGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsCisgICAgICAgICAgIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4gCisgICAgY2xhc3MgZnVuY3Rpb242OworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4gCisgICAgY2xhc3MgZnVuY3Rpb243OworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+IAorICAgIGNsYXNzIGZ1bmN0aW9uODsKKyAgdGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsCisgICAgICAgICAgIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4gCisgICAgY2xhc3MgZnVuY3Rpb245OworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LAorICAgICAgICAgICB0eXBlbmFtZSBUMTA+IAorICAgIGNsYXNzIGZ1bmN0aW9uMTA7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3RlbXBsYXRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjU2YjczCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90ZW1wbGF0ZS5ocHAKQEAgLTAsMCArMSwxMTg1IEBACisvLyBCb29zdC5GdW5jdGlvbiBsaWJyYXJ5CisKKy8vICBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMS0yMDA2CisvLyAgQ29weXJpZ2h0IEVtaWwgRG90Y2hldnNraSAyMDA3CisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKy8vIE5vdGU6IHRoaXMgaGVhZGVyIGlzIGEgaGVhZGVyIHRlbXBsYXRlIGFuZCBtdXN0IE5PVCBoYXZlIG11bHRpcGxlLWluY2x1c2lvbgorLy8gcHJvdGVjdGlvbi4KKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9kZXRhaWwvcHJvbG9ndWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9ub19leGNlcHRpb25zX3N1cHBvcnQuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgIHByYWdtYSB3YXJuaW5nKCBwdXNoICkKKyMgICBwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQxMjcgKSAvLyAiY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudCIKKyNlbmRpZiAgICAgICAKKworI2RlZmluZSBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUyBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9GVU5DVElPTl9OVU1fQVJHUywgdHlwZW5hbWUgVCkKKworI2RlZmluZSBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTLCBUKQorCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1BBUk0oSixJLEQpIEJPT1NUX1BQX0NBVChULEkpIEJPT1NUX1BQX0NBVChhLEkpCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fUEFSTVMgQk9PU1RfUFBfRU5VTShCT09TVF9GVU5DVElPTl9OVU1fQVJHUyxCT09TVF9GVU5DVElPTl9QQVJNLEJPT1NUX1BQX0VNUFRZKQorCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0FSR1MgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MsIGEpCisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fQVJHX1RZUEUoSixJLEQpIFwKKyAgdHlwZWRlZiBCT09TVF9QUF9DQVQoVCxJKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKGFyZywgQk9PU1RfUFBfSU5DKEkpKSxfdHlwZSk7CisKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fQVJHX1RZUEVTIEJPT1NUX1BQX1JFUEVBVChCT09TVF9GVU5DVElPTl9OVU1fQVJHUyxCT09TVF9GVU5DVElPTl9BUkdfVFlQRSxCT09TVF9QUF9FTVBUWSkKKworLy8gQ29tbWEgaWYgbm9uemVybyBudW1iZXIgb2YgYXJndW1lbnRzCisjaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMAorIyAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0NPTU1BICwKKyNlbmRpZiAvLyBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA+IDAKKworLy8gQ2xhc3MgbmFtZXMgdXNlZCBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIGNvZGUKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04gQk9PU1RfSk9JTihmdW5jdGlvbixCT09TVF9GVU5DVElPTl9OVU1fQVJHUykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT05fSU5WT0tFUiBcCisgIEJPT1NUX0pPSU4oZnVuY3Rpb25faW52b2tlcixCT09TVF9GVU5DVElPTl9OVU1fQVJHUykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fVk9JRF9GVU5DVElPTl9JTlZPS0VSIFwKKyAgQk9PU1RfSk9JTih2b2lkX2Z1bmN0aW9uX2ludm9rZXIsQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MpCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OX09CSl9JTlZPS0VSIFwKKyAgQk9PU1RfSk9JTihmdW5jdGlvbl9vYmpfaW52b2tlcixCT09TVF9GVU5DVElPTl9OVU1fQVJHUykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fVk9JRF9GVU5DVElPTl9PQkpfSU5WT0tFUiBcCisgIEJPT1NUX0pPSU4odm9pZF9mdW5jdGlvbl9vYmpfaW52b2tlcixCT09TVF9GVU5DVElPTl9OVU1fQVJHUykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT05fUkVGX0lOVk9LRVIgXAorICBCT09TVF9KT0lOKGZ1bmN0aW9uX3JlZl9pbnZva2VyLEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTKQorI2RlZmluZSBCT09TVF9GVU5DVElPTl9WT0lEX0ZVTkNUSU9OX1JFRl9JTlZPS0VSIFwKKyAgQk9PU1RfSk9JTih2b2lkX2Z1bmN0aW9uX3JlZl9pbnZva2VyLEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTKQorI2RlZmluZSBCT09TVF9GVU5DVElPTl9NRU1CRVJfSU5WT0tFUiBcCisgIEJPT1NUX0pPSU4oZnVuY3Rpb25fbWVtX2ludm9rZXIsQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MpCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1ZPSURfTUVNQkVSX0lOVk9LRVIgXAorICBCT09TVF9KT0lOKGZ1bmN0aW9uX3ZvaWRfbWVtX2ludm9rZXIsQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MpCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9JTlZPS0VSIFwKKyAgQk9PU1RfSk9JTihnZXRfZnVuY3Rpb25faW52b2tlcixCT09TVF9GVU5DVElPTl9OVU1fQVJHUykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fR0VUX0ZVTkNUSU9OX09CSl9JTlZPS0VSIFwKKyAgQk9PU1RfSk9JTihnZXRfZnVuY3Rpb25fb2JqX2ludm9rZXIsQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MpCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9SRUZfSU5WT0tFUiBcCisgIEJPT1NUX0pPSU4oZ2V0X2Z1bmN0aW9uX3JlZl9pbnZva2VyLEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTKQorI2RlZmluZSBCT09TVF9GVU5DVElPTl9HRVRfTUVNQkVSX0lOVk9LRVIgXAorICBCT09TVF9KT0lOKGdldF9tZW1iZXJfaW52b2tlcixCT09TVF9GVU5DVElPTl9OVU1fQVJHUykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fR0VUX0lOVk9LRVIgXAorICBCT09TVF9KT0lOKGdldF9pbnZva2VyLEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTKQorI2RlZmluZSBCT09TVF9GVU5DVElPTl9WVEFCTEUgQk9PU1RfSk9JTihiYXNpY192dGFibGUsQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MpCisKKyNpZm5kZWYgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fVk9JRF9SRVRVUk5fVFlQRSB2b2lkCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fUkVUVVJOKFgpIFgKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fVk9JRF9SRVRVUk5fVFlQRSBuZG5ib29zdDo6ZGV0YWlsOjpmdW5jdGlvbjo6dW51c2FibGUKKyMgIGRlZmluZSBCT09TVF9GVU5DVElPTl9SRVRVUk4oWCkgWDsgcmV0dXJuIEJPT1NUX0ZVTkNUSU9OX1ZPSURfUkVUVVJOX1RZUEUgKCkKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICBuYW1lc3BhY2UgZnVuY3Rpb24geworICAgICAgdGVtcGxhdGU8CisgICAgICAgIHR5cGVuYW1lIEZ1bmN0aW9uUHRyLAorICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TCisgICAgICAgID4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9GVU5DVElPTl9JTlZPS0VSCisgICAgICB7CisgICAgICAgIHN0YXRpYyBSIGludm9rZShmdW5jdGlvbl9idWZmZXImIGZ1bmN0aW9uX3B0ciBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fUEFSTVMpCisgICAgICAgIHsKKyAgICAgICAgICBGdW5jdGlvblB0ciBmID0gcmVpbnRlcnByZXRfY2FzdDxGdW5jdGlvblB0cj4oZnVuY3Rpb25fcHRyLmZ1bmNfcHRyKTsKKyAgICAgICAgICByZXR1cm4gZihCT09TVF9GVU5DVElPTl9BUkdTKTsKKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgdGVtcGxhdGU8CisgICAgICAgIHR5cGVuYW1lIEZ1bmN0aW9uUHRyLAorICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TCisgICAgICAgID4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9WT0lEX0ZVTkNUSU9OX0lOVk9LRVIKKyAgICAgIHsKKyAgICAgICAgc3RhdGljIEJPT1NUX0ZVTkNUSU9OX1ZPSURfUkVUVVJOX1RZUEUKKyAgICAgICAgaW52b2tlKGZ1bmN0aW9uX2J1ZmZlciYgZnVuY3Rpb25fcHRyIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9QQVJNUykKKworICAgICAgICB7CisgICAgICAgICAgRnVuY3Rpb25QdHIgZiA9IHJlaW50ZXJwcmV0X2Nhc3Q8RnVuY3Rpb25QdHI+KGZ1bmN0aW9uX3B0ci5mdW5jX3B0cik7CisgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fUkVUVVJOKGYoQk9PU1RfRlVOQ1RJT05fQVJHUykpOworICAgICAgICB9CisgICAgICB9OworCisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgdHlwZW5hbWUgRnVuY3Rpb25PYmosCisgICAgICAgIHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMKKyAgICAgID4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9GVU5DVElPTl9PQkpfSU5WT0tFUgorICAgICAgeworICAgICAgICBzdGF0aWMgUiBpbnZva2UoZnVuY3Rpb25fYnVmZmVyJiBmdW5jdGlvbl9vYmpfcHRyIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9QQVJNUykKKworICAgICAgICB7CisgICAgICAgICAgRnVuY3Rpb25PYmoqIGY7CisgICAgICAgICAgaWYgKGZ1bmN0aW9uX2FsbG93c19zbWFsbF9vYmplY3Rfb3B0aW1pemF0aW9uPEZ1bmN0aW9uT2JqPjo6dmFsdWUpCisgICAgICAgICAgICBmID0gcmVpbnRlcnByZXRfY2FzdDxGdW5jdGlvbk9iaio+KCZmdW5jdGlvbl9vYmpfcHRyLmRhdGEpOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGYgPSByZWludGVycHJldF9jYXN0PEZ1bmN0aW9uT2JqKj4oZnVuY3Rpb25fb2JqX3B0ci5vYmpfcHRyKTsKKyAgICAgICAgICByZXR1cm4gKCpmKShCT09TVF9GVU5DVElPTl9BUkdTKTsKKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgdGVtcGxhdGU8CisgICAgICAgIHR5cGVuYW1lIEZ1bmN0aW9uT2JqLAorICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TCisgICAgICA+CisgICAgICBzdHJ1Y3QgQk9PU1RfRlVOQ1RJT05fVk9JRF9GVU5DVElPTl9PQkpfSU5WT0tFUgorICAgICAgeworICAgICAgICBzdGF0aWMgQk9PU1RfRlVOQ1RJT05fVk9JRF9SRVRVUk5fVFlQRQorICAgICAgICBpbnZva2UoZnVuY3Rpb25fYnVmZmVyJiBmdW5jdGlvbl9vYmpfcHRyIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9QQVJNUykKKworICAgICAgICB7CisgICAgICAgICAgRnVuY3Rpb25PYmoqIGY7CisgICAgICAgICAgaWYgKGZ1bmN0aW9uX2FsbG93c19zbWFsbF9vYmplY3Rfb3B0aW1pemF0aW9uPEZ1bmN0aW9uT2JqPjo6dmFsdWUpCisgICAgICAgICAgICBmID0gcmVpbnRlcnByZXRfY2FzdDxGdW5jdGlvbk9iaio+KCZmdW5jdGlvbl9vYmpfcHRyLmRhdGEpOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGYgPSByZWludGVycHJldF9jYXN0PEZ1bmN0aW9uT2JqKj4oZnVuY3Rpb25fb2JqX3B0ci5vYmpfcHRyKTsKKyAgICAgICAgICBCT09TVF9GVU5DVElPTl9SRVRVUk4oKCpmKShCT09TVF9GVU5DVElPTl9BUkdTKSk7CisgICAgICAgIH0KKyAgICAgIH07CisKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICB0eXBlbmFtZSBGdW5jdGlvbk9iaiwKKyAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUworICAgICAgPgorICAgICAgc3RydWN0IEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OX1JFRl9JTlZPS0VSCisgICAgICB7CisgICAgICAgIHN0YXRpYyBSIGludm9rZShmdW5jdGlvbl9idWZmZXImIGZ1bmN0aW9uX29ial9wdHIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1BBUk1TKQorCisgICAgICAgIHsKKyAgICAgICAgICBGdW5jdGlvbk9iaiogZiA9IAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxGdW5jdGlvbk9iaio+KGZ1bmN0aW9uX29ial9wdHIub2JqX3B0cik7CisgICAgICAgICAgcmV0dXJuICgqZikoQk9PU1RfRlVOQ1RJT05fQVJHUyk7CisgICAgICAgIH0KKyAgICAgIH07CisKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICB0eXBlbmFtZSBGdW5jdGlvbk9iaiwKKyAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUworICAgICAgPgorICAgICAgc3RydWN0IEJPT1NUX0ZVTkNUSU9OX1ZPSURfRlVOQ1RJT05fUkVGX0lOVk9LRVIKKyAgICAgIHsKKyAgICAgICAgc3RhdGljIEJPT1NUX0ZVTkNUSU9OX1ZPSURfUkVUVVJOX1RZUEUKKyAgICAgICAgaW52b2tlKGZ1bmN0aW9uX2J1ZmZlciYgZnVuY3Rpb25fb2JqX3B0ciBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fUEFSTVMpCisKKyAgICAgICAgeworICAgICAgICAgIEZ1bmN0aW9uT2JqKiBmID0gCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PEZ1bmN0aW9uT2JqKj4oZnVuY3Rpb25fb2JqX3B0ci5vYmpfcHRyKTsKKyAgICAgICAgICBCT09TVF9GVU5DVElPTl9SRVRVUk4oKCpmKShCT09TVF9GVU5DVElPTl9BUkdTKSk7CisgICAgICAgIH0KKyAgICAgIH07CisKKyNpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA+IDAKKyAgICAgIC8qIEhhbmRsZSBpbnZvY2F0aW9uIG9mIG1lbWJlciBwb2ludGVycy4gKi8KKyAgICAgIHRlbXBsYXRlPAorICAgICAgICB0eXBlbmFtZSBNZW1iZXJQdHIsCisgICAgICAgIHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMKKyAgICAgID4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9NRU1CRVJfSU5WT0tFUgorICAgICAgeworICAgICAgICBzdGF0aWMgUiBpbnZva2UoZnVuY3Rpb25fYnVmZmVyJiBmdW5jdGlvbl9vYmpfcHRyIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9QQVJNUykKKworICAgICAgICB7CisgICAgICAgICAgTWVtYmVyUHRyKiBmID0gCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PE1lbWJlclB0cio+KCZmdW5jdGlvbl9vYmpfcHRyLmRhdGEpOworICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6bWVtX2ZuKCpmKShCT09TVF9GVU5DVElPTl9BUkdTKTsKKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgdGVtcGxhdGU8CisgICAgICAgIHR5cGVuYW1lIE1lbWJlclB0ciwKKyAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUworICAgICAgPgorICAgICAgc3RydWN0IEJPT1NUX0ZVTkNUSU9OX1ZPSURfTUVNQkVSX0lOVk9LRVIKKyAgICAgIHsKKyAgICAgICAgc3RhdGljIEJPT1NUX0ZVTkNUSU9OX1ZPSURfUkVUVVJOX1RZUEUKKyAgICAgICAgaW52b2tlKGZ1bmN0aW9uX2J1ZmZlciYgZnVuY3Rpb25fb2JqX3B0ciBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fUEFSTVMpCisKKyAgICAgICAgeworICAgICAgICAgIE1lbWJlclB0ciogZiA9IAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxNZW1iZXJQdHIqPigmZnVuY3Rpb25fb2JqX3B0ci5kYXRhKTsKKyAgICAgICAgICBCT09TVF9GVU5DVElPTl9SRVRVUk4obmRuYm9vc3Q6Om1lbV9mbigqZikoQk9PU1RfRlVOQ1RJT05fQVJHUykpOworICAgICAgICB9CisgICAgICB9OworI2VuZGlmCisKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICB0eXBlbmFtZSBGdW5jdGlvblB0ciwKKyAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUworICAgICAgPgorICAgICAgc3RydWN0IEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9JTlZPS0VSCisgICAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPChpc192b2lkPFI+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVk9JRF9GVU5DVElPTl9JTlZPS0VSPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisgICAgICAgICAgICAgICAgICAgICAgICAgID4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OX0lOVk9LRVI8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25QdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgICB9OworCisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgdHlwZW5hbWUgRnVuY3Rpb25PYmosCisgICAgICAgIHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMKKyAgICAgICA+CisgICAgICBzdHJ1Y3QgQk9PU1RfRlVOQ1RJT05fR0VUX0ZVTkNUSU9OX09CSl9JTlZPS0VSCisgICAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPChpc192b2lkPFI+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVk9JRF9GVU5DVElPTl9PQkpfSU5WT0tFUjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbk9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUworICAgICAgICAgICAgICAgICAgICAgICAgICA+LAorICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9GVU5DVElPTl9PQkpfSU5WT0tFUjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbk9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUworICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICAgIH07CisKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICB0eXBlbmFtZSBGdW5jdGlvbk9iaiwKKyAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUworICAgICAgID4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9HRVRfRlVOQ1RJT05fUkVGX0lOVk9LRVIKKyAgICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8KGlzX3ZvaWQ8Uj46OnZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9WT0lEX0ZVTkNUSU9OX1JFRl9JTlZPS0VSPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uT2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisgICAgICAgICAgICAgICAgICAgICAgICAgID4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OX1JFRl9JTlZPS0VSPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uT2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgICAgfTsKKworI2lmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID4gMAorICAgICAgLyogUmV0cmlldmUgdGhlIGFwcHJvcHJpYXRlIGludm9rZXIgZm9yIGEgbWVtYmVyIHBvaW50ZXIuICAqLworICAgICAgdGVtcGxhdGU8CisgICAgICAgIHR5cGVuYW1lIE1lbWJlclB0ciwKKyAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUworICAgICAgID4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9HRVRfTUVNQkVSX0lOVk9LRVIKKyAgICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8KGlzX3ZvaWQ8Uj46OnZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9WT0lEX01FTUJFUl9JTlZPS0VSPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbWJlclB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUworICAgICAgICAgICAgICAgICAgICAgICAgICA+LAorICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9NRU1CRVJfSU5WT0tFUjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1iZXJQdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgICB9OworI2VuZGlmCisKKyAgICAgIC8qIEdpdmVuIHRoZSB0YWcgcmV0dXJuZWQgYnkgZ2V0X2Z1bmN0aW9uX3RhZywgcmV0cmlldmUgdGhlCisgICAgICAgICBhY3R1YWwgaW52b2tlciB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGdpdmVuIGZ1bmN0aW9uCisgICAgICAgICBvYmplY3QuIAorCisgICAgICAgICBFYWNoIHNwZWNpYWxpemF0aW9uIGNvbnRhaW5zIGFuICJhcHBseSIgbmVzdGVkIGNsYXNzIHRlbXBsYXRlCisgICAgICAgICB0aGF0IGFjY2VwdHMgdGhlIGZ1bmN0aW9uIG9iamVjdCwgcmV0dXJuIHR5cGUsIGZ1bmN0aW9uCisgICAgICAgICBhcmd1bWVudCB0eXBlcywgYW5kIGFsbG9jYXRvci4gVGhlIHJlc3VsdGluZyAiYXBwbHkiIGNsYXNzCisgICAgICAgICBjb250YWlucyB0d28gdHlwZWRlZnMsICJpbnZva2VyX3R5cGUiIGFuZCAibWFuYWdlcl90eXBlIiwKKyAgICAgICAgIHdoaWNoIGNvcnJlc3BvbmQgdG8gdGhlIGludm9rZXIgYW5kIG1hbmFnZXIgdHlwZXMuICovCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUYWc+CisgICAgICBzdHJ1Y3QgQk9PU1RfRlVOQ1RJT05fR0VUX0lOVk9LRVIgeyB9OworCisgICAgICAvKiBSZXRyaWV2ZSB0aGUgaW52b2tlciBmb3IgYSBmdW5jdGlvbiBwb2ludGVyLiAqLworICAgICAgdGVtcGxhdGU8PgorICAgICAgc3RydWN0IEJPT1NUX0ZVTkNUSU9OX0dFVF9JTlZPS0VSPGZ1bmN0aW9uX3B0cl90YWc+CisgICAgICB7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uUHRyLAorICAgICAgICAgICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TPgorICAgICAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfRlVOQ1RJT05fR0VUX0ZVTkNUSU9OX0lOVk9LRVI8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgIGludm9rZXJfdHlwZTsKKworICAgICAgICAgIHR5cGVkZWYgZnVuY3Rvcl9tYW5hZ2VyPEZ1bmN0aW9uUHRyPiBtYW5hZ2VyX3R5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25QdHIsCisgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMsCisgICAgICAgICAgICAgICAgIHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICAgICAgc3RydWN0IGFwcGx5X2EKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfRlVOQ1RJT05fR0VUX0ZVTkNUSU9OX0lOVk9LRVI8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgIGludm9rZXJfdHlwZTsKKworICAgICAgICAgIHR5cGVkZWYgZnVuY3Rvcl9tYW5hZ2VyPEZ1bmN0aW9uUHRyPiBtYW5hZ2VyX3R5cGU7CisgICAgICAgIH07CisgICAgICB9OworCisjaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPiAwCisgICAgICAvKiBSZXRyaWV2ZSB0aGUgaW52b2tlciBmb3IgYSBtZW1iZXIgcG9pbnRlci4gKi8KKyAgICAgIHRlbXBsYXRlPD4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9HRVRfSU5WT0tFUjxtZW1iZXJfcHRyX3RhZz4KKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtYmVyUHRyLAorICAgICAgICAgICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TPgorICAgICAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfRlVOQ1RJT05fR0VUX01FTUJFUl9JTlZPS0VSPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1iZXJQdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUworICAgICAgICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgaW52b2tlcl90eXBlOworCisgICAgICAgICAgdHlwZWRlZiBmdW5jdG9yX21hbmFnZXI8TWVtYmVyUHRyPiBtYW5hZ2VyX3R5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtYmVyUHRyLAorICAgICAgICAgICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TLAorICAgICAgICAgICAgICAgICB0eXBlbmFtZSBBbGxvY2F0b3I+CisgICAgICAgIHN0cnVjdCBhcHBseV9hCisgICAgICAgIHsKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX0ZVTkNUSU9OX0dFVF9NRU1CRVJfSU5WT0tFUjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtYmVyUHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgIGludm9rZXJfdHlwZTsKKworICAgICAgICAgIHR5cGVkZWYgZnVuY3Rvcl9tYW5hZ2VyPE1lbWJlclB0cj4gbWFuYWdlcl90eXBlOworICAgICAgICB9OworICAgICAgfTsKKyNlbmRpZgorCisgICAgICAvKiBSZXRyaWV2ZSB0aGUgaW52b2tlciBmb3IgYSBmdW5jdGlvbiBvYmplY3QuICovCisgICAgICB0ZW1wbGF0ZTw+CisgICAgICBzdHJ1Y3QgQk9PU1RfRlVOQ1RJT05fR0VUX0lOVk9LRVI8ZnVuY3Rpb25fb2JqX3RhZz4KKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25PYmosCisgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVM+CisgICAgICAgIHN0cnVjdCBhcHBseQorICAgICAgICB7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9GVU5DVElPTl9HRVRfRlVOQ1RJT05fT0JKX0lOVk9LRVI8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uT2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgIGludm9rZXJfdHlwZTsKKworICAgICAgICAgIHR5cGVkZWYgZnVuY3Rvcl9tYW5hZ2VyPEZ1bmN0aW9uT2JqPiBtYW5hZ2VyX3R5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25PYmosCisgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMsCisgICAgICAgICAgICAgICAgIHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICAgICAgc3RydWN0IGFwcGx5X2EKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfRlVOQ1RJT05fR0VUX0ZVTkNUSU9OX09CSl9JTlZPS0VSPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbk9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICBpbnZva2VyX3R5cGU7CisKKyAgICAgICAgICB0eXBlZGVmIGZ1bmN0b3JfbWFuYWdlcl9hPEZ1bmN0aW9uT2JqLCBBbGxvY2F0b3I+IG1hbmFnZXJfdHlwZTsKKyAgICAgICAgfTsKKyAgICAgIH07CisKKyAgICAgIC8qIFJldHJpZXZlIHRoZSBpbnZva2VyIGZvciBhIHJlZmVyZW5jZSB0byBhIGZ1bmN0aW9uIG9iamVjdC4gKi8KKyAgICAgIHRlbXBsYXRlPD4KKyAgICAgIHN0cnVjdCBCT09TVF9GVU5DVElPTl9HRVRfSU5WT0tFUjxmdW5jdGlvbl9vYmpfcmVmX3RhZz4KKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUmVmV3JhcHBlciwKKyAgICAgICAgICAgICAgICAgdHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQSBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUz4KKyAgICAgICAgc3RydWN0IGFwcGx5CisgICAgICAgIHsKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9SRUZfSU5WT0tFUjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgUmVmV3JhcHBlcjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICBpbnZva2VyX3R5cGU7CisKKyAgICAgICAgICB0eXBlZGVmIHJlZmVyZW5jZV9tYW5hZ2VyPHR5cGVuYW1lIFJlZldyYXBwZXI6OnR5cGU+IG1hbmFnZXJfdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZWZXcmFwcGVyLAorICAgICAgICAgICAgICAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TLAorICAgICAgICAgICAgICAgICB0eXBlbmFtZSBBbGxvY2F0b3I+CisgICAgICAgIHN0cnVjdCBhcHBseV9hCisgICAgICAgIHsKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9SRUZfSU5WT0tFUjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgUmVmV3JhcHBlcjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICBpbnZva2VyX3R5cGU7CisKKyAgICAgICAgICB0eXBlZGVmIHJlZmVyZW5jZV9tYW5hZ2VyPHR5cGVuYW1lIFJlZldyYXBwZXI6OnR5cGU+IG1hbmFnZXJfdHlwZTsKKyAgICAgICAgfTsKKyAgICAgIH07CisKKworICAgICAgLyoqCisgICAgICAgKiB2dGFibGUgZm9yIGEgc3BlY2lmaWMgbmRuYm9vc3Q6OmZ1bmN0aW9uIGluc3RhbmNlLiBUaGlzCisgICAgICAgKiBzdHJ1Y3R1cmUgbXVzdCBiZSBhbiBhZ2dyZWdhdGUgc28gdGhhdCB3ZSBjYW4gdXNlIHN0YXRpYworICAgICAgICogaW5pdGlhbGl6YXRpb24gaW4gbmRuYm9vc3Q6OmZ1bmN0aW9uJ3MgYXNzaWduX3RvIGFuZCBhc3NpZ25fdG9fYQorICAgICAgICogbWVtYmVycy4gSXQgdGhlcmVmb3JlIGNhbm5vdCBoYXZlIGFueSBjb25zdHJ1Y3RvcnMsCisgICAgICAgKiBkZXN0cnVjdG9ycywgYmFzZSBjbGFzc2VzLCBldGMuCisgICAgICAgKi8KKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVM+CisgICAgICBzdHJ1Y3QgQk9PU1RfRlVOQ1RJT05fVlRBQkxFCisgICAgICB7CisjaWZuZGVmIEJPT1NUX05PX1ZPSURfUkVUVVJOUworICAgICAgICB0eXBlZGVmIFIgICAgICAgICByZXN1bHRfdHlwZTsKKyNlbHNlCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZnVuY3Rpb25fcmV0dXJuX3R5cGU8Uj46OnR5cGUgcmVzdWx0X3R5cGU7CisjZW5kaWYgLy8gQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisKKyAgICAgICAgdHlwZWRlZiByZXN1bHRfdHlwZSAoKmludm9rZXJfdHlwZSkoZnVuY3Rpb25fYnVmZmVyJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTKTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorICAgICAgICBib29sIGFzc2lnbl90byhGIGYsIGZ1bmN0aW9uX2J1ZmZlciYgZnVuY3RvcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZ2V0X2Z1bmN0aW9uX3RhZzxGPjo6dHlwZSB0YWc7CisgICAgICAgICAgcmV0dXJuIGFzc2lnbl90byhmLCBmdW5jdG9yLCB0YWcoKSk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRix0eXBlbmFtZSBBbGxvY2F0b3I+CisgICAgICAgIGJvb2wgYXNzaWduX3RvX2EoRiBmLCBmdW5jdGlvbl9idWZmZXImIGZ1bmN0b3IsIEFsbG9jYXRvciBhKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBnZXRfZnVuY3Rpb25fdGFnPEY+Ojp0eXBlIHRhZzsKKyAgICAgICAgICByZXR1cm4gYXNzaWduX3RvX2EoZiwgZnVuY3RvciwgYSwgdGFnKCkpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBjbGVhcihmdW5jdGlvbl9idWZmZXImIGZ1bmN0b3IpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICBpZiAoYmFzZS5tYW5hZ2VyKQorICAgICAgICAgICAgYmFzZS5tYW5hZ2VyKGZ1bmN0b3IsIGZ1bmN0b3IsIGRlc3Ryb3lfZnVuY3Rvcl90YWcpOworICAgICAgICB9CisKKyAgICAgIHByaXZhdGU6CisgICAgICAgIC8vIEZ1bmN0aW9uIHBvaW50ZXJzCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uUHRyPgorICAgICAgICBib29sIAorICAgICAgICBhc3NpZ25fdG8oRnVuY3Rpb25QdHIgZiwgZnVuY3Rpb25fYnVmZmVyJiBmdW5jdG9yLCBmdW5jdGlvbl9wdHJfdGFnKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgdGhpcy0+Y2xlYXIoZnVuY3Rvcik7CisgICAgICAgICAgaWYgKGYpIHsKKyAgICAgICAgICAgIC8vIHNob3VsZCBiZSBhIHJlaW50ZXJwcmV0IGNhc3QsIGJ1dCBzb21lIGNvbXBpbGVycyBpbnNpc3QKKyAgICAgICAgICAgIC8vIG9uIGdpdmluZyBjdi1xdWFsaWZpZXJzIHRvIGZyZWUgZnVuY3Rpb25zCisgICAgICAgICAgICBmdW5jdG9yLmZ1bmNfcHRyID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkICgqKSgpPihmKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uUHRyLHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICAgICAgYm9vbCAKKyAgICAgICAgYXNzaWduX3RvX2EoRnVuY3Rpb25QdHIgZiwgZnVuY3Rpb25fYnVmZmVyJiBmdW5jdG9yLCBBbGxvY2F0b3IsIGZ1bmN0aW9uX3B0cl90YWcpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICByZXR1cm4gYXNzaWduX3RvKGYsZnVuY3RvcixmdW5jdGlvbl9wdHJfdGFnKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTWVtYmVyIHBvaW50ZXJzCisjaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPiAwCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1lbWJlclB0cj4KKyAgICAgICAgYm9vbCBhc3NpZ25fdG8oTWVtYmVyUHRyIGYsIGZ1bmN0aW9uX2J1ZmZlciYgZnVuY3RvciwgbWVtYmVyX3B0cl90YWcpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAvLyBEUEcgVEJEOiBBZGQgZXhwbGljaXQgc3VwcG9ydCBmb3IgbWVtYmVyIGZ1bmN0aW9uCisgICAgICAgICAgLy8gb2JqZWN0cywgc28gd2UgaW52b2tlIHRocm91Z2ggbWVtX2ZuKCkgYnV0IHdlIHJldGFpbiB0aGUKKyAgICAgICAgICAvLyByaWdodCB0YXJnZXRfdHlwZSgpIHZhbHVlcy4KKyAgICAgICAgICBpZiAoZikgeworICAgICAgICAgICAgdGhpcy0+YXNzaWduX3RvKG5kbmJvb3N0OjptZW1fZm4oZiksIGZ1bmN0b3IpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtYmVyUHRyLHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICAgICAgYm9vbCBhc3NpZ25fdG9fYShNZW1iZXJQdHIgZiwgZnVuY3Rpb25fYnVmZmVyJiBmdW5jdG9yLCBBbGxvY2F0b3IgYSwgbWVtYmVyX3B0cl90YWcpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAvLyBEUEcgVEJEOiBBZGQgZXhwbGljaXQgc3VwcG9ydCBmb3IgbWVtYmVyIGZ1bmN0aW9uCisgICAgICAgICAgLy8gb2JqZWN0cywgc28gd2UgaW52b2tlIHRocm91Z2ggbWVtX2ZuKCkgYnV0IHdlIHJldGFpbiB0aGUKKyAgICAgICAgICAvLyByaWdodCB0YXJnZXRfdHlwZSgpIHZhbHVlcy4KKyAgICAgICAgICBpZiAoZikgeworICAgICAgICAgICAgdGhpcy0+YXNzaWduX3RvX2EobmRuYm9vc3Q6Om1lbV9mbihmKSwgZnVuY3RvciwgYSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmIC8vIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID4gMAorCisgICAgICAgIC8vIEZ1bmN0aW9uIG9iamVjdHMKKyAgICAgICAgLy8gQXNzaWduIHRvIGEgZnVuY3Rpb24gb2JqZWN0IHVzaW5nIHRoZSBzbWFsbCBvYmplY3Qgb3B0aW1pemF0aW9uCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uT2JqPgorICAgICAgICB2b2lkIAorICAgICAgICBhc3NpZ25fZnVuY3RvcihGdW5jdGlvbk9iaiBmLCBmdW5jdGlvbl9idWZmZXImIGZ1bmN0b3IsIG1wbDo6dHJ1ZV8pIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICBuZXcgKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KCZmdW5jdG9yLmRhdGEpKSBGdW5jdGlvbk9iaihmKTsKKyAgICAgICAgfQorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbk9iaix0eXBlbmFtZSBBbGxvY2F0b3I+CisgICAgICAgIHZvaWQgCisgICAgICAgIGFzc2lnbl9mdW5jdG9yX2EoRnVuY3Rpb25PYmogZiwgZnVuY3Rpb25fYnVmZmVyJiBmdW5jdG9yLCBBbGxvY2F0b3IsIG1wbDo6dHJ1ZV8pIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICBhc3NpZ25fZnVuY3RvcihmLGZ1bmN0b3IsbXBsOjp0cnVlXygpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzc2lnbiB0byBhIGZ1bmN0aW9uIG9iamVjdCBhbGxvY2F0ZWQgb24gdGhlIGhlYXAuCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uT2JqPgorICAgICAgICB2b2lkIAorICAgICAgICBhc3NpZ25fZnVuY3RvcihGdW5jdGlvbk9iaiBmLCBmdW5jdGlvbl9idWZmZXImIGZ1bmN0b3IsIG1wbDo6ZmFsc2VfKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgZnVuY3Rvci5vYmpfcHRyID0gbmV3IEZ1bmN0aW9uT2JqKGYpOworICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uT2JqLHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICAgICAgdm9pZCAKKyAgICAgICAgYXNzaWduX2Z1bmN0b3JfYShGdW5jdGlvbk9iaiBmLCBmdW5jdGlvbl9idWZmZXImIGZ1bmN0b3IsIEFsbG9jYXRvciBhLCBtcGw6OmZhbHNlXykgY29uc3QKKyAgICAgICAgeworICAgICAgICAgIHR5cGVkZWYgZnVuY3Rvcl93cmFwcGVyPEZ1bmN0aW9uT2JqLEFsbG9jYXRvcj4gZnVuY3Rvcl93cmFwcGVyX3R5cGU7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBbGxvY2F0b3I6OnRlbXBsYXRlIHJlYmluZDxmdW5jdG9yX3dyYXBwZXJfdHlwZT46Om90aGVyCisgICAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvcl90eXBlOworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgd3JhcHBlcl9hbGxvY2F0b3JfdHlwZTo6cG9pbnRlciB3cmFwcGVyX2FsbG9jYXRvcl9wb2ludGVyX3R5cGU7CisgICAgICAgICAgd3JhcHBlcl9hbGxvY2F0b3JfdHlwZSB3cmFwcGVyX2FsbG9jYXRvcihhKTsKKyAgICAgICAgICB3cmFwcGVyX2FsbG9jYXRvcl9wb2ludGVyX3R5cGUgY29weSA9IHdyYXBwZXJfYWxsb2NhdG9yLmFsbG9jYXRlKDEpOworICAgICAgICAgIHdyYXBwZXJfYWxsb2NhdG9yLmNvbnN0cnVjdChjb3B5LCBmdW5jdG9yX3dyYXBwZXJfdHlwZShmLGEpKTsKKyAgICAgICAgICBmdW5jdG9yX3dyYXBwZXJfdHlwZSogbmV3X2YgPSBzdGF0aWNfY2FzdDxmdW5jdG9yX3dyYXBwZXJfdHlwZSo+KGNvcHkpOworICAgICAgICAgIGZ1bmN0b3Iub2JqX3B0ciA9IG5ld19mOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25PYmo+CisgICAgICAgIGJvb2wgCisgICAgICAgIGFzc2lnbl90byhGdW5jdGlvbk9iaiBmLCBmdW5jdGlvbl9idWZmZXImIGZ1bmN0b3IsIGZ1bmN0aW9uX29ial90YWcpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICBpZiAoIW5kbmJvb3N0OjpkZXRhaWw6OmZ1bmN0aW9uOjpoYXNfZW1wdHlfdGFyZ2V0KG5kbmJvb3N0OjphZGRyZXNzb2YoZikpKSB7CisgICAgICAgICAgICBhc3NpZ25fZnVuY3RvcihmLCBmdW5jdG9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wbDo6Ym9vbF88KGZ1bmN0aW9uX2FsbG93c19zbWFsbF9vYmplY3Rfb3B0aW1pemF0aW9uPEZ1bmN0aW9uT2JqPjo6dmFsdWUpPigpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uT2JqLHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICAgICAgYm9vbCAKKyAgICAgICAgYXNzaWduX3RvX2EoRnVuY3Rpb25PYmogZiwgZnVuY3Rpb25fYnVmZmVyJiBmdW5jdG9yLCBBbGxvY2F0b3IgYSwgZnVuY3Rpb25fb2JqX3RhZykgY29uc3QKKyAgICAgICAgeworICAgICAgICAgIGlmICghbmRuYm9vc3Q6OmRldGFpbDo6ZnVuY3Rpb246Omhhc19lbXB0eV90YXJnZXQobmRuYm9vc3Q6OmFkZHJlc3NvZihmKSkpIHsKKyAgICAgICAgICAgIGFzc2lnbl9mdW5jdG9yX2EoZiwgZnVuY3RvciwgYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wbDo6Ym9vbF88KGZ1bmN0aW9uX2FsbG93c19zbWFsbF9vYmplY3Rfb3B0aW1pemF0aW9uPEZ1bmN0aW9uT2JqPjo6dmFsdWUpPigpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUmVmZXJlbmNlIHRvIGEgZnVuY3Rpb24gb2JqZWN0CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uT2JqPgorICAgICAgICBib29sIAorICAgICAgICBhc3NpZ25fdG8oY29uc3QgcmVmZXJlbmNlX3dyYXBwZXI8RnVuY3Rpb25PYmo+JiBmLCAKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2J1ZmZlciYgZnVuY3RvciwgZnVuY3Rpb25fb2JqX3JlZl90YWcpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICBmdW5jdG9yLm9ial9yZWYub2JqX3B0ciA9ICh2b2lkICopKGYuZ2V0X3BvaW50ZXIoKSk7CisgICAgICAgICAgZnVuY3Rvci5vYmpfcmVmLmlzX2NvbnN0X3F1YWxpZmllZCA9IGlzX2NvbnN0PEZ1bmN0aW9uT2JqPjo6dmFsdWU7CisgICAgICAgICAgZnVuY3Rvci5vYmpfcmVmLmlzX3ZvbGF0aWxlX3F1YWxpZmllZCA9IGlzX3ZvbGF0aWxlPEZ1bmN0aW9uT2JqPjo6dmFsdWU7CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25PYmosdHlwZW5hbWUgQWxsb2NhdG9yPgorICAgICAgICBib29sIAorICAgICAgICBhc3NpZ25fdG9fYShjb25zdCByZWZlcmVuY2Vfd3JhcHBlcjxGdW5jdGlvbk9iaj4mIGYsIAorICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fYnVmZmVyJiBmdW5jdG9yLCBBbGxvY2F0b3IsIGZ1bmN0aW9uX29ial9yZWZfdGFnKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgcmV0dXJuIGFzc2lnbl90byhmLGZ1bmN0b3IsZnVuY3Rpb25fb2JqX3JlZl90YWcoKSk7CisgICAgICAgIH0KKworICAgICAgcHVibGljOgorICAgICAgICB2dGFibGVfYmFzZSBiYXNlOworICAgICAgICBpbnZva2VyX3R5cGUgaW52b2tlcjsKKyAgICAgIH07CisgICAgfSAvLyBlbmQgbmFtZXNwYWNlIGZ1bmN0aW9uCisgIH0gLy8gZW5kIG5hbWVzcGFjZSBkZXRhaWwKKworICB0ZW1wbGF0ZTwKKyAgICB0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMKKyAgPgorICBjbGFzcyBCT09TVF9GVU5DVElPTl9GVU5DVElPTiA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlCisKKyNpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAxCisKKyAgICAsIHB1YmxpYyBzdGQ6OnVuYXJ5X2Z1bmN0aW9uPFQwLFI+CisKKyNlbGlmIEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTID09IDIKKworICAgICwgcHVibGljIHN0ZDo6YmluYXJ5X2Z1bmN0aW9uPFQwLFQxLFI+CisKKyNlbmRpZgorCisgIHsKKyAgcHVibGljOgorI2lmbmRlZiBCT09TVF9OT19WT0lEX1JFVFVSTlMKKyAgICB0eXBlZGVmIFIgICAgICAgICByZXN1bHRfdHlwZTsKKyNlbHNlCisgICAgdHlwZWRlZiAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6ZnVuY3Rpb246OmZ1bmN0aW9uX3JldHVybl90eXBlPFI+Ojp0eXBlCisgICAgICByZXN1bHRfdHlwZTsKKyNlbmRpZiAvLyBCT09TVF9OT19WT0lEX1JFVFVSTlMKKworICBwcml2YXRlOgorICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6ZnVuY3Rpb246OkJPT1NUX0ZVTkNUSU9OX1ZUQUJMRTwKKyAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQSBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTPgorICAgICAgdnRhYmxlX3R5cGU7CisKKyAgICB2dGFibGVfdHlwZSogZ2V0X3Z0YWJsZSgpIGNvbnN0IHsKKyAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZ0YWJsZV90eXBlKj4oCisgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6c2l6ZV90Pih2dGFibGUpICYgfnN0YXRpY19jYXN0PHN0ZDo6c2l6ZV90PigweDAxKSk7CisgICAgfQorCisgICAgc3RydWN0IGNsZWFyX3R5cGUge307CisKKyAgcHVibGljOgorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIGFyZ3MgPSBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyk7CisKKyAgICAvLyBhZGQgc2lnbmF0dXJlIGZvciBuZG5ib29zdDo6bGFtYmRhCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJncz4KKyAgICBzdHJ1Y3Qgc2lnCisgICAgeworICAgICAgdHlwZWRlZiByZXN1bHRfdHlwZSB0eXBlOworICAgIH07CisKKyNpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAxCisgICAgdHlwZWRlZiBUMCBhcmd1bWVudF90eXBlOworI2VsaWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1MgPT0gMgorICAgIHR5cGVkZWYgVDAgZmlyc3RfYXJndW1lbnRfdHlwZTsKKyAgICB0eXBlZGVmIFQxIHNlY29uZF9hcmd1bWVudF90eXBlOworI2VuZGlmCisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBhcml0eSA9IEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTKTsKKyAgICBCT09TVF9GVU5DVElPTl9BUkdfVFlQRVMKKworICAgIHR5cGVkZWYgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04gc2VsZl90eXBlOworCisgICAgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04oKSA6IGZ1bmN0aW9uX2Jhc2UoKSB7IH0KKworICAgIC8vIE1TVkMgY2hva2VzIGlmIHRoZSBmb2xsb3dpbmcgdHdvIGNvbnN0cnVjdG9ycyBhcmUgY29sbGFwc2VkIGludG8KKyAgICAvLyBvbmUgd2l0aCBhIGRlZmF1bHQgcGFyYW1ldGVyLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04oRnVuY3RvciBCT09TVF9GVU5DVElPTl9UQVJHRVRfRklYKGNvbnN0ICYpIGYKKyNpZm5kZWYgQk9PU1RfTk9fU0ZJTkFFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHR5cGVuYW1lIGVuYWJsZV9pZl9jPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc19pbnRlZ3JhbDxGdW5jdG9yPjo6dmFsdWUpPjo6dmFsdWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludD46OnR5cGUgPSAwCisjZW5kaWYgLy8gQk9PU1RfTk9fU0ZJTkFFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6CisgICAgICBmdW5jdGlvbl9iYXNlKCkKKyAgICB7CisgICAgICB0aGlzLT5hc3NpZ25fdG8oZik7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3IsdHlwZW5hbWUgQWxsb2NhdG9yPgorICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OKEZ1bmN0b3IgQk9PU1RfRlVOQ1RJT05fVEFSR0VUX0ZJWChjb25zdCAmKSBmLCBBbGxvY2F0b3IgYQorI2lmbmRlZiBCT09TVF9OT19TRklOQUUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsdHlwZW5hbWUgZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzX2ludGVncmFsPEZ1bmN0b3I+Ojp2YWx1ZSk+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Pjo6dHlwZSA9IDAKKyNlbmRpZiAvLyBCT09TVF9OT19TRklOQUUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDoKKyAgICAgIGZ1bmN0aW9uX2Jhc2UoKQorICAgIHsKKyAgICAgIHRoaXMtPmFzc2lnbl90b19hKGYsYSk7CisgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX1NGSU5BRQorICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OKGNsZWFyX3R5cGUqKSA6IGZ1bmN0aW9uX2Jhc2UoKSB7IH0KKyNlbHNlCisgICAgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04oaW50IHplcm8pIDogZnVuY3Rpb25fYmFzZSgpCisgICAgeworICAgICAgQk9PU1RfQVNTRVJUKHplcm8gPT0gMCk7CisgICAgfQorI2VuZGlmCisKKyAgICBCT09TVF9GVU5DVElPTl9GVU5DVElPTihjb25zdCBCT09TVF9GVU5DVElPTl9GVU5DVElPTiYgZikgOiBmdW5jdGlvbl9iYXNlKCkKKyAgICB7CisgICAgICB0aGlzLT5hc3NpZ25fdG9fb3duKGYpOworICAgIH0KKyAgICAKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBCT09TVF9GVU5DVElPTl9GVU5DVElPTihCT09TVF9GVU5DVElPTl9GVU5DVElPTiYmIGYpIDogZnVuY3Rpb25fYmFzZSgpCisgICAgeworICAgICAgdGhpcy0+bW92ZV9hc3NpZ24oZik7CisgICAgfQorI2VuZGlmCisgICAgCisgICAgfkJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OKCkgeyBjbGVhcigpOyB9CisKKyAgICByZXN1bHRfdHlwZSBvcGVyYXRvcigpKEJPT1NUX0ZVTkNUSU9OX1BBUk1TKSBjb25zdAorICAgIHsKKyAgICAgIGlmICh0aGlzLT5lbXB0eSgpKQorICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKGJhZF9mdW5jdGlvbl9jYWxsKCkpOworCisgICAgICByZXR1cm4gZ2V0X3Z0YWJsZSgpLT5pbnZva2VyCisgICAgICAgICAgICAgICAodGhpcy0+ZnVuY3RvciBCT09TVF9GVU5DVElPTl9DT01NQSBCT09TVF9GVU5DVElPTl9BUkdTKTsKKyAgICB9CisKKyAgICAvLyBUaGUgZGlzdGluY3Rpb24gYmV0d2VlbiB3aGVuIHRvIHVzZSBCT09TVF9GVU5DVElPTl9GVU5DVElPTiBhbmQKKyAgICAvLyB3aGVuIHRvIHVzZSBzZWxmX3R5cGUgaXMgb2Jub3hpb3VzLiBNU1ZDIGNhbm5vdCBoYW5kbGUgc2VsZl90eXBlIGFzCisgICAgLy8gdGhlIHJldHVybiB0eXBlIG9mIHRoZXNlIGFzc2lnbm1lbnQgb3BlcmF0b3JzLCBidXQgQm9ybGFuZCBDKysgY2Fubm90CisgICAgLy8gaGFuZGxlIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OIGFzIHRoZSB0eXBlIG9mIHRoZSB0ZW1wb3JhcnkgdG8KKyAgICAvLyBjb25zdHJ1Y3QuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyNpZm5kZWYgQk9PU1RfTk9fU0ZJTkFFCisgICAgdHlwZW5hbWUgZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAobmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgICAoaXNfaW50ZWdyYWw8RnVuY3Rvcj46OnZhbHVlKT46OnZhbHVlKSwKKyAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OJj46OnR5cGUKKyNlbHNlCisgICAgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04mCisjZW5kaWYKKyAgICBvcGVyYXRvcj0oRnVuY3RvciBCT09TVF9GVU5DVElPTl9UQVJHRVRfRklYKGNvbnN0ICYpIGYpCisgICAgeworICAgICAgdGhpcy0+Y2xlYXIoKTsKKyAgICAgIEJPT1NUX1RSWSAgeworICAgICAgICB0aGlzLT5hc3NpZ25fdG8oZik7CisgICAgICB9IEJPT1NUX0NBVENIICguLi4pIHsKKyAgICAgICAgdnRhYmxlID0gMDsKKyAgICAgICAgQk9PU1RfUkVUSFJPVzsKKyAgICAgIH0KKyAgICAgIEJPT1NUX0NBVENIX0VORAorICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yLHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgICB2b2lkIGFzc2lnbihGdW5jdG9yIEJPT1NUX0ZVTkNUSU9OX1RBUkdFVF9GSVgoY29uc3QgJikgZiwgQWxsb2NhdG9yIGEpCisgICAgeworICAgICAgdGhpcy0+Y2xlYXIoKTsKKyAgICAgIEJPT1NUX1RSWXsKKyAgICAgICAgdGhpcy0+YXNzaWduX3RvX2EoZixhKTsKKyAgICAgIH0gQk9PU1RfQ0FUQ0ggKC4uLikgeworICAgICAgICB2dGFibGUgPSAwOworICAgICAgICBCT09TVF9SRVRIUk9XOworICAgICAgfQorICAgICAgQk9PU1RfQ0FUQ0hfRU5ECisgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX1NGSU5BRQorICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OJiBvcGVyYXRvcj0oY2xlYXJfdHlwZSopCisgICAgeworICAgICAgdGhpcy0+Y2xlYXIoKTsKKyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisjZWxzZQorICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OJiBvcGVyYXRvcj0oaW50IHplcm8pCisgICAgeworICAgICAgQk9PU1RfQVNTRVJUKHplcm8gPT0gMCk7CisgICAgICB0aGlzLT5jbGVhcigpOworICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyNlbmRpZgorCisgICAgLy8gQXNzaWdubWVudCBmcm9tIGFub3RoZXIgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04KKyAgICBCT09TVF9GVU5DVElPTl9GVU5DVElPTiYgb3BlcmF0b3I9KGNvbnN0IEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OJiBmKQorICAgIHsKKyAgICAgIGlmICgmZiA9PSB0aGlzKQorICAgICAgICByZXR1cm4gKnRoaXM7CisKKyAgICAgIHRoaXMtPmNsZWFyKCk7CisgICAgICBCT09TVF9UUlkgeworICAgICAgICB0aGlzLT5hc3NpZ25fdG9fb3duKGYpOworICAgICAgfSBCT09TVF9DQVRDSCAoLi4uKSB7CisgICAgICAgIHZ0YWJsZSA9IDA7CisgICAgICAgIEJPT1NUX1JFVEhST1c7CisgICAgICB9CisgICAgICBCT09TVF9DQVRDSF9FTkQKKyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgLy8gTW92ZSBhc3NpZ25tZW50IGZyb20gYW5vdGhlciBCT09TVF9GVU5DVElPTl9GVU5DVElPTgorICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OJiBvcGVyYXRvcj0oQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT04mJiBmKQorICAgIHsKKyAgICAgIAorICAgICAgaWYgKCZmID09IHRoaXMpCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAgICAgdGhpcy0+Y2xlYXIoKTsKKyAgICAgIEJPT1NUX1RSWSB7CisgICAgICAgIHRoaXMtPm1vdmVfYXNzaWduKGYpOworICAgICAgfSBCT09TVF9DQVRDSCAoLi4uKSB7CisgICAgICAgIHZ0YWJsZSA9IDA7CisgICAgICAgIEJPT1NUX1JFVEhST1c7CisgICAgICB9CisgICAgICBCT09TVF9DQVRDSF9FTkQKKyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisjZW5kaWYKKworICAgIHZvaWQgc3dhcChCT09TVF9GVU5DVElPTl9GVU5DVElPTiYgb3RoZXIpCisgICAgeworICAgICAgaWYgKCZvdGhlciA9PSB0aGlzKQorICAgICAgICByZXR1cm47CisKKyAgICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OIHRtcDsKKyAgICAgIHRtcC5tb3ZlX2Fzc2lnbigqdGhpcyk7CisgICAgICB0aGlzLT5tb3ZlX2Fzc2lnbihvdGhlcik7CisgICAgICBvdGhlci5tb3ZlX2Fzc2lnbih0bXApOworICAgIH0KKworICAgIC8vIENsZWFyIG91dCBhIHRhcmdldCwgaWYgdGhlcmUgaXMgb25lCisgICAgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgaWYgKHZ0YWJsZSkgeworICAgICAgICBpZiAoIXRoaXMtPmhhc190cml2aWFsX2NvcHlfYW5kX2Rlc3Ryb3koKSkKKyAgICAgICAgICBnZXRfdnRhYmxlKCktPmNsZWFyKHRoaXMtPmZ1bmN0b3IpOworICAgICAgICB2dGFibGUgPSAwOworICAgICAgfQorICAgIH0KKworI2lmIChkZWZpbmVkIF9fU1VOUFJPX0NDKSAmJiAoX19TVU5QUk9fQ0MgPD0gMHg1MzApICYmICEoZGVmaW5lZCBCT09TVF9OT19DT01QSUxFUl9DT05GSUcpCisgICAgLy8gU3VuIEMrKyA1LjMgY2FuJ3QgaGFuZGxlIHRoZSBzYWZlX2Jvb2wgaWRpb20sIHNvIGRvbid0IHVzZSBpdAorICAgIG9wZXJhdG9yIGJvb2wgKCkgY29uc3QgeyByZXR1cm4gIXRoaXMtPmVtcHR5KCk7IH0KKyNlbHNlCisgIHByaXZhdGU6CisgICAgc3RydWN0IGR1bW15IHsKKyAgICAgIHZvaWQgbm9ubnVsbCgpIHt9CisgICAgfTsKKworICAgIHR5cGVkZWYgdm9pZCAoZHVtbXk6OipzYWZlX2Jvb2wpKCk7CisKKyAgcHVibGljOgorICAgIG9wZXJhdG9yIHNhZmVfYm9vbCAoKSBjb25zdAorICAgICAgeyByZXR1cm4gKHRoaXMtPmVtcHR5KCkpPyAwIDogJmR1bW15Ojpub25udWxsOyB9CisKKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0CisgICAgICB7IHJldHVybiB0aGlzLT5lbXB0eSgpOyB9CisjZW5kaWYKKworICBwcml2YXRlOgorICAgIHZvaWQgYXNzaWduX3RvX293bihjb25zdCBCT09TVF9GVU5DVElPTl9GVU5DVElPTiYgZikKKyAgICB7CisgICAgICBpZiAoIWYuZW1wdHkoKSkgeworICAgICAgICB0aGlzLT52dGFibGUgPSBmLnZ0YWJsZTsKKyAgICAgICAgaWYgKHRoaXMtPmhhc190cml2aWFsX2NvcHlfYW5kX2Rlc3Ryb3koKSkKKyAgICAgICAgICB0aGlzLT5mdW5jdG9yID0gZi5mdW5jdG9yOworICAgICAgICBlbHNlCisgICAgICAgICAgZ2V0X3Z0YWJsZSgpLT5iYXNlLm1hbmFnZXIoZi5mdW5jdG9yLCB0aGlzLT5mdW5jdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmZ1bmN0aW9uOjpjbG9uZV9mdW5jdG9yX3RhZyk7CisgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkIGFzc2lnbl90byhGdW5jdG9yIGYpCisgICAgeworICAgICAgdXNpbmcgZGV0YWlsOjpmdW5jdGlvbjo6dnRhYmxlX2Jhc2U7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmdW5jdGlvbjo6Z2V0X2Z1bmN0aW9uX3RhZzxGdW5jdG9yPjo6dHlwZSB0YWc7CisgICAgICB0eXBlZGVmIGRldGFpbDo6ZnVuY3Rpb246OkJPT1NUX0ZVTkNUSU9OX0dFVF9JTlZPS0VSPHRhZz4gZ2V0X2ludm9rZXI7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGdldF9pbnZva2VyOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSBhcHBseTxGdW5jdG9yLCBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIAorICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUz4KKyAgICAgICAgaGFuZGxlcl90eXBlOworICAgICAgCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGhhbmRsZXJfdHlwZTo6aW52b2tlcl90eXBlIGludm9rZXJfdHlwZTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaGFuZGxlcl90eXBlOjptYW5hZ2VyX3R5cGUgbWFuYWdlcl90eXBlOworCisgICAgICAvLyBOb3RlOiBpdCBpcyBleHRyZW1lbHkgaW1wb3J0YW50IHRoYXQgdGhpcyBpbml0aWFsaXphdGlvbiB1c2UKKyAgICAgIC8vIHN0YXRpYyBpbml0aWFsaXphdGlvbi4gT3RoZXJ3aXNlLCB3ZSB3aWxsIGhhdmUgYSByYWNlCisgICAgICAvLyBjb25kaXRpb24gaGVyZSBpbiBtdWx0aS10aHJlYWRlZCBjb2RlLiBTZWUKKyAgICAgIC8vIGh0dHA6Ly90aHJlYWQuZ21hbmUub3JnL2dtYW5lLmNvbXAubGliLmJvb3N0LmRldmVsLzE2NDkwMi8uCisgICAgICBzdGF0aWMgY29uc3QgdnRhYmxlX3R5cGUgc3RvcmVkX3Z0YWJsZSA9IAorICAgICAgICB7IHsgJm1hbmFnZXJfdHlwZTo6bWFuYWdlIH0sICZpbnZva2VyX3R5cGU6Omludm9rZSB9OworCisgICAgICBpZiAoc3RvcmVkX3Z0YWJsZS5hc3NpZ25fdG8oZiwgZnVuY3RvcikpIHsKKyAgICAgICAgc3RkOjpzaXplX3QgdmFsdWUgPSByZWludGVycHJldF9jYXN0PHN0ZDo6c2l6ZV90Pigmc3RvcmVkX3Z0YWJsZS5iYXNlKTsKKyAgICAgICAgaWYgKG5kbmJvb3N0OjpoYXNfdHJpdmlhbF9jb3B5X2NvbnN0cnVjdG9yPEZ1bmN0b3I+Ojp2YWx1ZSAmJgorICAgICAgICAgICAgbmRuYm9vc3Q6Omhhc190cml2aWFsX2Rlc3RydWN0b3I8RnVuY3Rvcj46OnZhbHVlICYmCisgICAgICAgICAgICBkZXRhaWw6OmZ1bmN0aW9uOjpmdW5jdGlvbl9hbGxvd3Nfc21hbGxfb2JqZWN0X29wdGltaXphdGlvbjxGdW5jdG9yPjo6dmFsdWUpCisgICAgICAgICAgdmFsdWUgfD0gc3RhdGljX2Nhc3Q8c2l6ZV90PigweDAxKTsKKyAgICAgICAgdnRhYmxlID0gcmVpbnRlcnByZXRfY2FzdDxkZXRhaWw6OmZ1bmN0aW9uOjp2dGFibGVfYmFzZSAqPih2YWx1ZSk7CisgICAgICB9IGVsc2UgCisgICAgICAgIHZ0YWJsZSA9IDA7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcix0eXBlbmFtZSBBbGxvY2F0b3I+CisgICAgdm9pZCBhc3NpZ25fdG9fYShGdW5jdG9yIGYsQWxsb2NhdG9yIGEpCisgICAgeworICAgICAgdXNpbmcgZGV0YWlsOjpmdW5jdGlvbjo6dnRhYmxlX2Jhc2U7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmdW5jdGlvbjo6Z2V0X2Z1bmN0aW9uX3RhZzxGdW5jdG9yPjo6dHlwZSB0YWc7CisgICAgICB0eXBlZGVmIGRldGFpbDo6ZnVuY3Rpb246OkJPT1NUX0ZVTkNUSU9OX0dFVF9JTlZPS0VSPHRhZz4gZ2V0X2ludm9rZXI7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGdldF9pbnZva2VyOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSBhcHBseV9hPEZ1bmN0b3IsIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEgCisgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUywKKyAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvY2F0b3I+CisgICAgICAgIGhhbmRsZXJfdHlwZTsKKyAgICAgIAorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBoYW5kbGVyX3R5cGU6Omludm9rZXJfdHlwZSBpbnZva2VyX3R5cGU7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGhhbmRsZXJfdHlwZTo6bWFuYWdlcl90eXBlIG1hbmFnZXJfdHlwZTsKKworICAgICAgLy8gTm90ZTogaXQgaXMgZXh0cmVtZWx5IGltcG9ydGFudCB0aGF0IHRoaXMgaW5pdGlhbGl6YXRpb24gdXNlCisgICAgICAvLyBzdGF0aWMgaW5pdGlhbGl6YXRpb24uIE90aGVyd2lzZSwgd2Ugd2lsbCBoYXZlIGEgcmFjZQorICAgICAgLy8gY29uZGl0aW9uIGhlcmUgaW4gbXVsdGktdGhyZWFkZWQgY29kZS4gU2VlCisgICAgICAvLyBodHRwOi8vdGhyZWFkLmdtYW5lLm9yZy9nbWFuZS5jb21wLmxpYi5ib29zdC5kZXZlbC8xNjQ5MDIvLgorICAgICAgc3RhdGljIGNvbnN0IHZ0YWJsZV90eXBlIHN0b3JlZF92dGFibGUgPQorICAgICAgICB7IHsgJm1hbmFnZXJfdHlwZTo6bWFuYWdlIH0sICZpbnZva2VyX3R5cGU6Omludm9rZSB9OworCisgICAgICBpZiAoc3RvcmVkX3Z0YWJsZS5hc3NpZ25fdG9fYShmLCBmdW5jdG9yLCBhKSkgeyAKKyAgICAgICAgc3RkOjpzaXplX3QgdmFsdWUgPSByZWludGVycHJldF9jYXN0PHN0ZDo6c2l6ZV90Pigmc3RvcmVkX3Z0YWJsZS5iYXNlKTsKKyAgICAgICAgaWYgKG5kbmJvb3N0OjpoYXNfdHJpdmlhbF9jb3B5X2NvbnN0cnVjdG9yPEZ1bmN0b3I+Ojp2YWx1ZSAmJgorICAgICAgICAgICAgbmRuYm9vc3Q6Omhhc190cml2aWFsX2Rlc3RydWN0b3I8RnVuY3Rvcj46OnZhbHVlICYmCisgICAgICAgICAgICBkZXRhaWw6OmZ1bmN0aW9uOjpmdW5jdGlvbl9hbGxvd3Nfc21hbGxfb2JqZWN0X29wdGltaXphdGlvbjxGdW5jdG9yPjo6dmFsdWUpCisgICAgICAgICAgdmFsdWUgfD0gc3RhdGljX2Nhc3Q8c3RkOjpzaXplX3Q+KDB4MDEpOworICAgICAgICB2dGFibGUgPSByZWludGVycHJldF9jYXN0PGRldGFpbDo6ZnVuY3Rpb246OnZ0YWJsZV9iYXNlICo+KHZhbHVlKTsKKyAgICAgIH0gZWxzZSAKKyAgICAgICAgdnRhYmxlID0gMDsKKyAgICB9CisKKyAgICAvLyBNb3ZlcyB0aGUgdmFsdWUgZnJvbSB0aGUgc3BlY2lmaWVkIGFyZ3VtZW50IHRvICp0aGlzLiBJZiB0aGUgYXJndW1lbnQgCisgICAgLy8gaGFzIGl0cyBmdW5jdGlvbiBvYmplY3QgYWxsb2NhdGVkIG9uIHRoZSBoZWFwLCBtb3ZlX2Fzc2lnbiB3aWxsIHBhc3MgCisgICAgLy8gaXRzIGJ1ZmZlciB0byAqdGhpcywgYW5kIHNldCB0aGUgYXJndW1lbnQncyBidWZmZXIgcG9pbnRlciB0byBOVUxMLiAKKyAgICB2b2lkIG1vdmVfYXNzaWduKEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OJiBmKSAKKyAgICB7IAorICAgICAgaWYgKCZmID09IHRoaXMpCisgICAgICAgIHJldHVybjsKKworICAgICAgQk9PU1RfVFJZIHsKKyAgICAgICAgaWYgKCFmLmVtcHR5KCkpIHsKKyAgICAgICAgICB0aGlzLT52dGFibGUgPSBmLnZ0YWJsZTsKKyAgICAgICAgICBpZiAodGhpcy0+aGFzX3RyaXZpYWxfY29weV9hbmRfZGVzdHJveSgpKQorICAgICAgICAgICAgdGhpcy0+ZnVuY3RvciA9IGYuZnVuY3RvcjsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBnZXRfdnRhYmxlKCktPmJhc2UubWFuYWdlcihmLmZ1bmN0b3IsIHRoaXMtPmZ1bmN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6ZnVuY3Rpb246Om1vdmVfZnVuY3Rvcl90YWcpOworICAgICAgICAgIGYudnRhYmxlID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBjbGVhcigpOworICAgICAgICB9CisgICAgICB9IEJPT1NUX0NBVENIICguLi4pIHsKKyAgICAgICAgdnRhYmxlID0gMDsKKyAgICAgICAgQk9PU1RfUkVUSFJPVzsKKyAgICAgIH0KKyAgICAgIEJPT1NUX0NBVENIX0VORAorICAgIH0KKyAgfTsKKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TPgorICBpbmxpbmUgdm9pZCBzd2FwKEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OPAorICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUworICAgICAgICAgICAgICAgICAgID4mIGYxLAorICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OPAorICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfQVJHUworICAgICAgICAgICAgICAgICAgID4mIGYyKQorICB7CisgICAgZjEuc3dhcChmMik7CisgIH0KKworLy8gUG9pc29uIGNvbXBhcmlzb25zIGJldHdlZW4gbmRuYm9vc3Q6OmZ1bmN0aW9uIG9iamVjdHMgb2YgdGhlIHNhbWUgdHlwZS4KK3RlbXBsYXRlPHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVM+CisgIHZvaWQgb3BlcmF0b3I9PShjb25zdCBCT09TVF9GVU5DVElPTl9GVU5DVElPTjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTPiYsCisgICAgICAgICAgICAgICAgICBjb25zdCBCT09TVF9GVU5DVElPTl9GVU5DVElPTjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUiBCT09TVF9GVU5DVElPTl9DT01NQQorICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTPiYpOwordGVtcGxhdGU8dHlwZW5hbWUgUiBCT09TVF9GVU5DVElPTl9DT01NQSBCT09TVF9GVU5DVElPTl9URU1QTEFURV9QQVJNUz4KKyAgdm9pZCBvcGVyYXRvciE9KGNvbnN0IEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OPAorICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1M+JiwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OPAorICAgICAgICAgICAgICAgICAgICAgICAgICBSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BCisgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1M+JiApOworCisjaWYgIWRlZmluZWQoQk9PU1RfRlVOQ1RJT05fTk9fRlVOQ1RJT05fVFlQRV9TWU5UQVgpCisKKyNpZiBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyA9PSAwCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1BBUlRJQUxfU1BFQyBSICh2b2lkKQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fUEFSVElBTF9TUEVDIFIgKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX0ZVTkNUSU9OX05VTV9BUkdTLFQpKQorI2VuZGlmCisKK3RlbXBsYXRlPHR5cGVuYW1lIFIgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyAgICAgICAgIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX1BBUk1TPgorY2xhc3MgZnVuY3Rpb248Qk9PU1RfRlVOQ1RJT05fUEFSVElBTF9TUEVDPgorICA6IHB1YmxpYyBCT09TVF9GVU5DVElPTl9GVU5DVElPTjxSIEJPT1NUX0ZVTkNUSU9OX0NPTU1BIEJPT1NUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1M+Cit7CisgIHR5cGVkZWYgQk9PU1RfRlVOQ1RJT05fRlVOQ1RJT048UiBCT09TVF9GVU5DVElPTl9DT01NQSBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTPiBiYXNlX3R5cGU7CisgIHR5cGVkZWYgZnVuY3Rpb24gc2VsZl90eXBlOworCisgIHN0cnVjdCBjbGVhcl90eXBlIHt9OworCitwdWJsaWM6CisKKyAgZnVuY3Rpb24oKSA6IGJhc2VfdHlwZSgpIHt9CisKKyAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgZnVuY3Rpb24oRnVuY3RvciBmCisjaWZuZGVmIEJPT1NUX05PX1NGSU5BRQorICAgICAgICAgICAsdHlwZW5hbWUgZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzX2ludGVncmFsPEZ1bmN0b3I+Ojp2YWx1ZSk+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgIGludD46OnR5cGUgPSAwCisjZW5kaWYKKyAgICAgICAgICAgKSA6CisgICAgYmFzZV90eXBlKGYpCisgIHsKKyAgfQorICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yLHR5cGVuYW1lIEFsbG9jYXRvcj4KKyAgZnVuY3Rpb24oRnVuY3RvciBmLCBBbGxvY2F0b3IgYQorI2lmbmRlZiBCT09TVF9OT19TRklOQUUKKyAgICAgICAgICAgLHR5cGVuYW1lIGVuYWJsZV9pZl9jPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChpc19pbnRlZ3JhbDxGdW5jdG9yPjo6dmFsdWUpPjo6dmFsdWUpLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQ+Ojp0eXBlID0gMAorI2VuZGlmCisgICAgICAgICAgICkgOgorICAgIGJhc2VfdHlwZShmLGEpCisgIHsKKyAgfQorCisjaWZuZGVmIEJPT1NUX05PX1NGSU5BRQorICBmdW5jdGlvbihjbGVhcl90eXBlKikgOiBiYXNlX3R5cGUoKSB7fQorI2VuZGlmCisKKyAgZnVuY3Rpb24oY29uc3Qgc2VsZl90eXBlJiBmKSA6IGJhc2VfdHlwZShzdGF0aWNfY2FzdDxjb25zdCBiYXNlX3R5cGUmPihmKSl7fQorCisgIGZ1bmN0aW9uKGNvbnN0IGJhc2VfdHlwZSYgZikgOiBiYXNlX3R5cGUoc3RhdGljX2Nhc3Q8Y29uc3QgYmFzZV90eXBlJj4oZikpe30KKworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworICAvLyBNb3ZlIGNvbnN0cnVjdG9ycworICBmdW5jdGlvbihzZWxmX3R5cGUmJiBmKTogYmFzZV90eXBlKHN0YXRpY19jYXN0PGJhc2VfdHlwZSYmPihmKSl7fQorICBmdW5jdGlvbihiYXNlX3R5cGUmJiBmKTogYmFzZV90eXBlKHN0YXRpY19jYXN0PGJhc2VfdHlwZSYmPihmKSl7fQorI2VuZGlmCisgIAorICBzZWxmX3R5cGUmIG9wZXJhdG9yPShjb25zdCBzZWxmX3R5cGUmIGYpCisgIHsKKyAgICBzZWxmX3R5cGUoZikuc3dhcCgqdGhpcyk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgc2VsZl90eXBlJiBvcGVyYXRvcj0oc2VsZl90eXBlJiYgZikKKyAgeworICAgIHNlbGZfdHlwZShzdGF0aWNfY2FzdDxzZWxmX3R5cGUmJj4oZikpLnN3YXAoKnRoaXMpOworICAgIHJldHVybiAqdGhpczsKKyAgfQorI2VuZGlmICAKKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorI2lmbmRlZiBCT09TVF9OT19TRklOQUUKKyAgdHlwZW5hbWUgZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaXNfaW50ZWdyYWw8RnVuY3Rvcj46OnZhbHVlKT46OnZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICBzZWxmX3R5cGUmPjo6dHlwZQorI2Vsc2UKKyAgc2VsZl90eXBlJgorI2VuZGlmCisgIG9wZXJhdG9yPShGdW5jdG9yIGYpCisgIHsKKyAgICBzZWxmX3R5cGUoZikuc3dhcCgqdGhpcyk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyNpZm5kZWYgQk9PU1RfTk9fU0ZJTkFFCisgIHNlbGZfdHlwZSYgb3BlcmF0b3I9KGNsZWFyX3R5cGUqKQorICB7CisgICAgdGhpcy0+Y2xlYXIoKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKyNlbmRpZgorCisgIHNlbGZfdHlwZSYgb3BlcmF0b3I9KGNvbnN0IGJhc2VfdHlwZSYgZikKKyAgeworICAgIHNlbGZfdHlwZShmKS5zd2FwKCp0aGlzKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKyAgCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgIHNlbGZfdHlwZSYgb3BlcmF0b3I9KGJhc2VfdHlwZSYmIGYpCisgIHsKKyAgICBzZWxmX3R5cGUoc3RhdGljX2Nhc3Q8YmFzZV90eXBlJiY+KGYpKS5zd2FwKCp0aGlzKTsKKyAgICByZXR1cm4gKnRoaXM7CisgIH0KKyNlbmRpZiAKK307CisKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9QQVJUSUFMX1NQRUMKKyNlbmRpZiAvLyBoYXZlIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24KKworfSAvLyBlbmQgbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vIENsZWFudXAgYWZ0ZXIgb3Vyc2VsdmVzLi4uCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fVlRBQkxFCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fQ09NTUEKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9GVU5DVElPTgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX0ZVTkNUSU9OX0lOVk9LRVIKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9WT0lEX0ZVTkNUSU9OX0lOVk9LRVIKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9GVU5DVElPTl9PQkpfSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX1ZPSURfRlVOQ1RJT05fT0JKX0lOVk9LRVIKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9GVU5DVElPTl9SRUZfSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX1ZPSURfRlVOQ1RJT05fUkVGX0lOVk9LRVIKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9NRU1CRVJfSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX1ZPSURfTUVNQkVSX0lOVk9LRVIKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9HRVRfRlVOQ1RJT05fSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9PQkpfSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX0dFVF9GVU5DVElPTl9SRUZfSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX0dFVF9NRU1fRlVOQ1RJT05fSU5WT0tFUgorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX0dFVF9JTlZPS0VSCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fVEVNUExBVEVfUEFSTVMKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9URU1QTEFURV9BUkdTCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fUEFSTVMKKyN1bmRlZiBCT09TVF9GVU5DVElPTl9QQVJNCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fQVJHUworI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX0FSR19UWVBFCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fQVJHX1RZUEVTCisjdW5kZWYgQk9PU1RfRlVOQ1RJT05fVk9JRF9SRVRVUk5fVFlQRQorI3VuZGVmIEJPT1NUX0ZVTkNUSU9OX1JFVFVSTgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgIHByYWdtYSB3YXJuaW5nKCBwb3AgKQorI2VuZGlmICAgICAgIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90eXBlb2YuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl90eXBlb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZDI2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2Z1bmN0aW9uX3R5cGVvZi5ocHAKQEAgLTAsMCArMSw0NSBAQAorLy8gQm9vc3QuRnVuY3Rpb24gbGlicmFyeSAtIFR5cGVvZiBzdXBwb3J0CisvLyAgQ29weXJpZ2h0IChDKSBEb3VnbGFzIEdyZWdvciAyMDA4CisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworI2lmbmRlZiBCT09TVF9GVU5DVElPTl9UWVBFT0ZfSFBQCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1RZUEVPRl9IUFAKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbi9mdW5jdGlvbl9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi90eXBlb2YuaHBwPgorCisjaW5jbHVkZSBCT09TVF9UWVBFT0ZfSU5DUkVNRU5UX1JFR0lTVFJBVElPTl9HUk9VUCgpCisKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKG5kbmJvb3N0OjpiYWRfZnVuY3Rpb25fY2FsbCkKKworI2lmICFkZWZpbmVkKEJPT1NUX0ZVTkNUSU9OX05PX0ZVTkNUSU9OX1RZUEVfU1lOVEFYKQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFKG5kbmJvb3N0OjpmdW5jdGlvbiwgKHR5cGVuYW1lKSkKKyNlbmRpZgorCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUobmRuYm9vc3Q6OmZ1bmN0aW9uMCwgKHR5cGVuYW1lKSkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURShuZG5ib29zdDo6ZnVuY3Rpb24xLCAodHlwZW5hbWUpKHR5cGVuYW1lKSkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURShuZG5ib29zdDo6ZnVuY3Rpb24yLCAodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUobmRuYm9vc3Q6OmZ1bmN0aW9uMywgCisgICh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUobmRuYm9vc3Q6OmZ1bmN0aW9uNCwgCisgICh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFKG5kbmJvb3N0OjpmdW5jdGlvbjUsIAorICAodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUobmRuYm9vc3Q6OmZ1bmN0aW9uNiwgCisgICh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUobmRuYm9vc3Q6OmZ1bmN0aW9uNywgCisgICh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkKKyAgKHR5cGVuYW1lKSkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURShuZG5ib29zdDo6ZnVuY3Rpb244LCAKKyAgKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKQorICAodHlwZW5hbWUpKHR5cGVuYW1lKSkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURShuZG5ib29zdDo6ZnVuY3Rpb245LCAKKyAgKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKQorICAodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUobmRuYm9vc3Q6OmZ1bmN0aW9uMTAsIAorICAodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkodHlwZW5hbWUpCisgICh0eXBlbmFtZSkodHlwZW5hbWUpKHR5cGVuYW1lKSh0eXBlbmFtZSkpCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb24vZ2VuX2Z1bmN0aW9uX04ucGwgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2dlbl9mdW5jdGlvbl9OLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmYzUzYzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uL2dlbl9mdW5jdGlvbl9OLnBsCkBAIC0wLDAgKzEsMjYgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIworIyBCb29zdC5GdW5jdGlvbiBsaWJyYXJ5CisjCisjIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAxLTIwMDMuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorIyBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorIyAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIworIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCit1c2UgRW5nbGlzaDsKKworaWYgKCQjQVJHViA8IDApIHsKKyAgcHJpbnQgIlVzYWdlOiBwZXJsIGdlbl9mdW5jdGlvbl9OIDxudW1iZXIgb2YgYXJndW1lbnRzPlxuIjsKKyAgZXhpdDsKK30KKworCiskdG90YWxOdW1BcmdzID0gJEFSR1ZbMF07Citmb3IgKCRudW1BcmdzID0gMDsgJG51bUFyZ3MgPD0gJHRvdGFsTnVtQXJnczsgKyskbnVtQXJncykgeworICBvcGVuIE9VVCwgIj5mdW5jdGlvbiRudW1BcmdzLmhwcCI7CisgIHByaW50IE9VVCAiI2RlZmluZSBCT09TVF9GVU5DVElPTl9OVU1fQVJHUyAkbnVtQXJnc1xuIjsKKyAgcHJpbnQgT1VUICIjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb24vZGV0YWlsL21heWJlX2luY2x1ZGUuaHBwPlxuIjsKKyAgcHJpbnQgT1VUICIjdW5kZWYgQk9PU1RfRlVOQ1RJT05fTlVNX0FSR1NcbiI7CisgIGNsb3NlIE9VVDsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ5MmQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fZXF1YWwuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwNC4KKy8vICBDb3B5cmlnaHQgMjAwNSBQZXRlciBEaW1vdgorCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvCisvLyAgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKyNpZm5kZWYgQk9PU1RfRlVOQ1RJT05fRVFVQUxfSFBQCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX0VRVUFMX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGLCB0eXBlbmFtZSBHPgorICBib29sIGZ1bmN0aW9uX2VxdWFsX2ltcGwoY29uc3QgRiYgZiwgY29uc3QgRyYgZywgbG9uZykKKyAgeyByZXR1cm4gZiA9PSBnOyB9CisKKy8vIGZ1bmN0aW9uX2VxdWFsX2ltcGwgbmVlZHMgdG8gYmUgdW5xdWFsaWZpZWQgdG8gcGljaworLy8gdXNlciBvdmVybG9hZHMgb24gdHdvLXBoYXNlIGNvbXBpbGVycworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGLCB0eXBlbmFtZSBHPgorICBib29sIGZ1bmN0aW9uX2VxdWFsKGNvbnN0IEYmIGYsIGNvbnN0IEcmIGcpCisgIHsgcmV0dXJuIGZ1bmN0aW9uX2VxdWFsX2ltcGwoZiwgZywgMCk7IH0KKworfSAvLyBlbmQgbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9GVU5DVElPTl9FUVVBTF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29tcG9uZW50cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbXBvbmVudHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNTMwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbXBvbmVudHMuaHBwCkBAIC0wLDAgKzEsNDMxIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfQ09NUE9ORU5UU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfQ09NUE9ORU5UU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRlZ3JhbF9jb25zdGFudC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjAuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDw9IDB4NTY1KQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9iaXRhbmQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTAuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9mcm9udC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JlZ2luLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYWR2YW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2l0ZXJhdG9yX3JhbmdlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvam9pbnRfdmlldy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvY29weS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Zyb250X2luc2VydGVyLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyLmhwcD4KKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX0ZUX05PX0NWX0ZVTkNfU1VQUE9SVAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9yZW1vdmUuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY29uZmlnLmhwcD4KKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgaWYgICBCT09TVF9GVF9NQVhfQVJJVFkgPCAxMAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMC5ocHA+CisjICAgZWxpZiBCT09TVF9GVF9NQVhfQVJJVFkgPCAyMAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMC5ocHA+CisjICAgZWxpZiBCT09TVF9GVF9NQVhfQVJJVFkgPCAzMAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMC5ocHA+CisjICAgZWxpZiBCT09TVF9GVF9NQVhfQVJJVFkgPCA0MAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MC5ocHA+CisjICAgZWxpZiBCT09TVF9GVF9NQVhfQVJJVFkgPCA1MAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MC5ocHA+CisjICAgZW5kaWYKKyNlbHNlCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXIuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NfdHJhbnNmb3JtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wcm9wZXJ0eV90YWdzLmhwcD4KKworLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreyAKKyAgbmFtZXNwYWNlIGZ1bmN0aW9uX3R5cGVzIAorICB7CisKKyAgICB1c2luZyBtcGw6OnBsYWNlaG9sZGVyczo6XzsKKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBDbGFzc1R5cGVUcmFuc2Zvcm0gPSBhZGRfcmVmZXJlbmNlPF8+ID4gCisgICAgc3RydWN0IGNvbXBvbmVudHM7CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsIAorICAgIHsKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEw+IHN0cnVjdCBjb21wb25lbnRzX2ltcGw7CisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDw9IDB4NTY1KQorICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgT3JpZ1QsIHR5cGVuYW1lIEw+IHN0cnVjdCBjb21wb25lbnRzX2JjYzsKKyNlbmRpZgorICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENsYXNzVHlwZVRyYW5zZm9ybT4gCisgICAgc3RydWN0IGNvbXBvbmVudHMKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDw9IDB4NTY1KQorICAgICAgOiBkZXRhaWw6OmNvbXBvbmVudHNfaW1wbDxULCBDbGFzc1R5cGVUcmFuc2Zvcm0+CisjZWxzZQorICAgICAgOiBkZXRhaWw6OmNvbXBvbmVudHNfYmNjPHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZSxULAorICAgICAgICAgICAgQ2xhc3NUeXBlVHJhbnNmb3JtPgorI2VuZGlmCisgICAgeyAKKyAgICAgIHR5cGVkZWYgY29tcG9uZW50czxULENsYXNzVHlwZVRyYW5zZm9ybT4gdHlwZTsKKworICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLGNvbXBvbmVudHMsKFQsQ2xhc3NUeXBlVHJhbnNmb3JtKSkKKyAgICB9OworCisvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQorCisgIG5hbWVzcGFjZSBkZXRhaWwgeworCisgICAgc3RydWN0IGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZzsgCisKKyAgICBzdHJ1Y3QgY29tcG9uZW50c19ub25fZnVuY19iYXNlCisgICAgeworICAgICAgdHlwZWRlZiBtcGw6OnZlY3RvcjA8PiB0eXBlczsKKyAgICAgIHR5cGVkZWYgdm9pZCBmdW5jdGlvbl9hcml0eTsKKworICAgICAgdHlwZWRlZiBkZXRhaWw6OmNvbnN0YW50PDA+IGJpdHM7CisgICAgICB0eXBlZGVmIGRldGFpbDo6Y29uc3RhbnQ8MD4gbWFzazsKKworICAgICAgdHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOworICAgIH07CisKKyAgICB0ZW1wbGF0ZQorICAgIDwgdHlwZW5hbWUgQ29tcG9uZW50cworICAgICwgdHlwZW5hbWUgSWZUYWdnZWQKKyAgICAsIHR5cGVuYW1lIFRoZW5UYWcKKyAgICAsIHR5cGVuYW1lIERlZmF1bHRCYXNlID0gY29tcG9uZW50c19ub25fZnVuY19iYXNlCisgICAgPgorICAgIHN0cnVjdCByZXRhZ2dlZF9pZgorICAgICAgOiBtcGw6OmlmXworICAgICAgICA8IGRldGFpbDo6cmVwcmVzZW50c19pbXBsPENvbXBvbmVudHMsIElmVGFnZ2VkPgorICAgICAgICAsIGRldGFpbDo6Y2hhbmdlZF90YWc8Q29tcG9uZW50cyxJZlRhZ2dlZCxUaGVuVGFnPgorICAgICAgICAsIERlZmF1bHRCYXNlCisgICAgICAgID46OnR5cGUKKyAgICB7IH07CisKKyAgICAvLyBXZSBkZXRlY3QgcGxhaW4gZnVuY3Rpb24gdHlwZXMgYW5kIGZ1bmN0aW9uIHJlZmVyZW5jZXMgYXMgZnVuY3Rpb24gCisgICAgLy8gcG9pbnRlcnMgYnkgcmVjdXJzaXZlIGluc3RhbnRpYXRpb24gb2YgY29tcG9uZW50c19pbXBsLiAKKyAgICAvLyBUaGUgdGhpcmQgc3BlY2lhbGl6YXRpb24gb2YgY29tcG9uZW50c19pbXBsIG1ha2VzIHN1cmUgdGhlIHJlY3Vyc2lvbiAKKyAgICAvLyB0ZXJtaW5hdGVzICh3aGVuIGFkZGluZyBwb2ludGVycykuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsCisgICAgICA6IGRldGFpbDo6cmV0YWdnZWRfaWYKKyAgICAgICAgPCBkZXRhaWw6OmNvbXBvbmVudHNfaW1wbDxUKixMPgorICAgICAgICAsIHBvaW50ZXJfdGFnLCAvKiAtLT4gKi8gZnVuY3Rpb25fdGFnID4KKyAgICB7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsPFQmLCBMPgorICAgICAgOiBkZXRhaWw6OnJldGFnZ2VkX2lmCisgICAgICAgIDwgZGV0YWlsOjpjb21wb25lbnRzX2ltcGw8VCosTD4KKyAgICAgICAgLCBwb2ludGVyX3RhZywgLyogLS0+ICovIHJlZmVyZW5jZV90YWcgPgorICAgIHsgfTsKKworI2lmICFCT09TVF9GVF9OT19DVl9GVU5DX1NVUFBPUlQKKyAgICAvLyBSZXRyeSB0aGUgdHlwZSB3aXRoIGEgbWVtYmVyIHBvaW50ZXIgYXR0YWNoZWQgdG8gZGV0ZWN0IGN2IGZ1bmN0aW9ucworICAgIGNsYXNzIGFfY2xhc3M7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBMPgorICAgIHN0cnVjdCBjdl9mdW5jX2Jhc2UKKyAgICAgIDogZGV0YWlsOjpyZXRhZ2dlZF9pZjxCYXNlLG1lbWJlcl9wb2ludGVyX3RhZyxmdW5jdGlvbl90YWc+CisgICAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgICBtcGw6OnJlbW92ZQorICAgICAgICAgIDwgdHlwZW5hbWUgQmFzZTo6dHlwZXMKKyAgICAgICAgICAsIHR5cGVuYW1lIGRldGFpbDo6Y2xhc3NfdHJhbnNmb3JtPGFfY2xhc3MsTD46OnR5cGU+Ojp0eXBlCisgICAgICB0eXBlczsKKyAgICB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsPFQqLCBMPgorICAgICAgOiBtcGw6OmlmXworICAgICAgICA8IGRldGFpbDo6cmVwcmVzZW50c19pbXBsPCBkZXRhaWw6OmNvbXBvbmVudHNfaW1wbDxUIGFfY2xhc3M6OiosIEw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG1lbWJlcl9wb2ludGVyX3RhZyA+CisgICAgICAgICwgZGV0YWlsOjpjdl9mdW5jX2Jhc2U8IGRldGFpbDo6Y29tcG9uZW50c19pbXBsPFQgYV9jbGFzczo6KiwgTD4sIFQsIEw+CisgICAgICAgICwgY29tcG9uZW50c19ub25fZnVuY19iYXNlCisgICAgICAgID46OnR5cGUKKyAgICB7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBMPgorICAgIHN0cnVjdCBjb21wb25lbnRzX2ltcGw8VCBhX2NsYXNzOjoqLCBMPgorICAgICAgOiBjb21wb25lbnRzX25vbl9mdW5jX2Jhc2UKKyAgICB7IH07CisjZWxzZQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEw+CisgICAgc3RydWN0IGNvbXBvbmVudHNfaW1wbDxUKiwgTD4KKyAgICAgIDogY29tcG9uZW50c19ub25fZnVuY19iYXNlCisgICAgeyB9OyAKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsPFQqIGNvbnN0LCBMPiAKKyAgICAgIDogY29tcG9uZW50c19pbXBsPFQqLEw+CisgICAgeyB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsPFQqIHZvbGF0aWxlLCBMPiAKKyAgICAgIDogY29tcG9uZW50c19pbXBsPFQqLEw+CisgICAgeyB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsPFQqIGNvbnN0IHZvbGF0aWxlLCBMPiAKKyAgICAgIDogY29tcG9uZW50c19pbXBsPFQqLEw+CisgICAgeyB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19pbXBsPFQgY29uc3QsIEw+IAorICAgICAgOiBjb21wb25lbnRzX2ltcGw8VCxMPgorICAgIHsgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEw+CisgICAgc3RydWN0IGNvbXBvbmVudHNfaW1wbDxUIHZvbGF0aWxlLCBMPiAKKyAgICAgIDogY29tcG9uZW50c19pbXBsPFQsTD4KKyAgICB7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBMPgorICAgIHN0cnVjdCBjb21wb25lbnRzX2ltcGw8VCBjb25zdCB2b2xhdGlsZSwgTD4gCisgICAgICA6IGNvbXBvbmVudHNfaW1wbDxULEw+CisgICAgeyB9OworCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDPgorICAgIHN0cnVjdCBtZW1iZXJfb2JqX3B0cl9yZXN1bHQKKyAgICB7IHR5cGVkZWYgVCAmIHR5cGU7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDPgorICAgIHN0cnVjdCBtZW1iZXJfb2JqX3B0cl9yZXN1bHQ8VCwgQyBjb25zdD4KKyAgICB7IHR5cGVkZWYgVCBjb25zdCAmIHR5cGU7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDPgorICAgIHN0cnVjdCBtZW1iZXJfb2JqX3B0cl9yZXN1bHQ8VCwgQyB2b2xhdGlsZT4KKyAgICB7IHR5cGVkZWYgVCB2b2xhdGlsZSAmIHR5cGU7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDPgorICAgIHN0cnVjdCBtZW1iZXJfb2JqX3B0cl9yZXN1bHQ8VCwgQyBjb25zdCB2b2xhdGlsZT4KKyAgICB7IHR5cGVkZWYgVCBjb25zdCB2b2xhdGlsZSAmIHR5cGU7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDPgorICAgIHN0cnVjdCBtZW1iZXJfb2JqX3B0cl9yZXN1bHQ8VCAmLCBDPgorICAgIHsgdHlwZWRlZiBUICYgdHlwZTsgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIGNsYXNzIEM+CisgICAgc3RydWN0IG1lbWJlcl9vYmpfcHRyX3Jlc3VsdDxUICYsIEMgY29uc3Q+CisgICAgeyB0eXBlZGVmIFQgJiB0eXBlOyB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgY2xhc3MgQz4KKyAgICBzdHJ1Y3QgbWVtYmVyX29ial9wdHJfcmVzdWx0PFQgJiwgQyB2b2xhdGlsZT4KKyAgICB7IHR5cGVkZWYgVCAmIHR5cGU7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDPgorICAgIHN0cnVjdCBtZW1iZXJfb2JqX3B0cl9yZXN1bHQ8VCAmLCBDIGNvbnN0IHZvbGF0aWxlPgorICAgIHsgdHlwZWRlZiBUICYgdHlwZTsgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIGNsYXNzIEMsIHR5cGVuYW1lIEw+CisgICAgc3RydWN0IG1lbWJlcl9vYmpfcHRyX2NvbXBvbmVudHMKKyAgICAgIDogbWVtYmVyX29iamVjdF9wb2ludGVyX2Jhc2UKKyAgICB7CisgICAgICB0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPFQgQzo6KiwgTD4gdHlwZTsKKyAgICAgIHR5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKKworICAgICAgdHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMT4gZnVuY3Rpb25fYXJpdHk7CisKKyAgICAgIHR5cGVkZWYgbXBsOjp2ZWN0b3IyPCB0eXBlbmFtZSBkZXRhaWw6Om1lbWJlcl9vYmpfcHRyX3Jlc3VsdDxULEM+Ojp0eXBlLAorICAgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y2xhc3NfdHJhbnNmb3JtPEMsTD46OnR5cGUgPiB0eXBlczsKKyAgICB9OworCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8PSAweDU2NSkKKyMgICBkZWZpbmUgQk9PU1RfRlRfdmFyaWF0aW9ucyBCT09TVF9GVF9wb2ludGVyfEJPT1NUX0ZUX21lbWJlcl9wb2ludGVyCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBDLCB0eXBlbmFtZSBMPgorICAgIHN0cnVjdCBjb21wb25lbnRzX2ltcGw8VCBDOjoqLCBMPgorICAgICAgOiBtZW1iZXJfb2JqX3B0cl9jb21wb25lbnRzPFQsQyxMPgorICAgIHsgfTsKKworI2Vsc2UgIAorIyAgIGRlZmluZSBCT09TVF9GVF92YXJpYXRpb25zIEJPT1NUX0ZUX3BvaW50ZXIKKworICAgIC8vIFRoaXMgd29ya2Fyb3VuZCByZW1vdmVzIHRoZSBtZW1iZXIgcG9pbnRlciBmcm9tIHRoZSB0eXBlIHRvIGFsbG93IAorICAgIC8vIGRldGVjdGlvbiBvZiBtZW1iZXIgZnVuY3Rpb24gcG9pbnRlcnMgd2l0aCBCQ0MuIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEw+CisgICAgc3RydWN0IGNvbXBvbmVudHNfaW1wbDxUIEM6OiosIEw+CisgICAgICA6IGRldGFpbDo6cmV0YWdnZWRfaWYKKyAgICAgICAgPCBkZXRhaWw6OmNvbXBvbmVudHNfaW1wbDx0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PFQ+Ojp0eXBlICosIEw+CisgICAgICAgICwgcG9pbnRlcl90YWcsIC8qIC0tPiAqLyBtZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl90YWcKKyAgICAgICAgLCBtZW1iZXJfb2JqX3B0cl9jb21wb25lbnRzPFQsQyxMPiA+CisgICAgeyB9OworCisgICAgLy8gQkNDIGxldHMgdXMgdGVzdCB0aGUgY3YtcXVhbGlmaWNhdGlvbiBvZiBhIGZ1bmN0aW9uIHR5cGUgYnkgdGVtcGxhdGUgCisgICAgLy8gcGFydGlhbCBzcGVjaWFsaXphdGlvbiAtIHNvIHdlIHVzZSB0aGlzIGJ1ZyBmZWF0dXJlIHRvIGZpbmQgb3V0IHRoZSAKKyAgICAvLyBtZW1iZXIgZnVuY3Rpb24ncyBjdi1xdWFsaWZpY2F0aW9uICh1bmZvcnR1bmF0ZWx5IHRoZXJlIGFyZSBzb21lIAorICAgIC8vIGludmlzaWJsZSBtb2RpZmllcnMgdGhhdCBpbXBvc2Ugc29tZSBsaW1pdGF0aW9ucyBvbiB0aGVzZSB0eXBlcyBldmVuIGlmCisgICAgLy8gd2UgcmVtb3ZlIHRoZSBxdWFsaWZpZXJzLCBTbyB3ZSBjYW5ub3QgZXhwbG9pdCB0aGUgc2FtZSBidWcgdG8gbWFrZSB0aGUgCisgICAgLy8gbGlicmFyeSB3b3JrIGZvciBjdi1xdWFsaWZpZWQgZnVuY3Rpb24gdHlwZXMpLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBlbmNvZGVfY3YKKyAgICB7IHR5cGVkZWYgY2hhciAoJiB0eXBlKVsxXTsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDEpOyB9OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBlbmNvZGVfY3Y8VCBjb25zdCAqPgorICAgIHsgdHlwZWRlZiBjaGFyICgmIHR5cGUpWzJdOyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gMik7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGVuY29kZV9jdjxUIHZvbGF0aWxlICo+CisgICAgeyB0eXBlZGVmIGNoYXIgKCYgdHlwZSlbM107IEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAzKTsgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgZW5jb2RlX2N2PFQgY29uc3Qgdm9sYXRpbGUgKj4gCisgICAgeyB0eXBlZGVmIGNoYXIgKCYgdHlwZSlbNF07IEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSA0KTsgfTsKKworICAgIC8vIEZvciBtZW1iZXIgZnVuY3Rpb24gcG9pbnRlcnMgd2UgaGF2ZSB0byB1c2UgYSBmdW5jdGlvbiB0ZW1wbGF0ZSAocGFydGlhbAorICAgIC8vIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIGZvciBhIG1lbWJlciBwb2ludGVyIGRyb3BzIHRoZSBjdiBxdWFsaWZpY2F0aW9uIAorICAgIC8vIG9mIHRoZSBmdW5jdGlvbiB0eXBlKS4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDPgorICAgIHR5cGVuYW1lIGVuY29kZV9jdjxUICo+Ojp0eXBlIG1mcF9jdl90ZXN0ZXIoVCBDOjoqKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBlbmNvZGVfbWZwX2N2CisgICAgeyAKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAKKyAgICAgICAgICBzaXplb2YoZGV0YWlsOjptZnBfY3ZfdGVzdGVyKChUKTBMKSkpOyAKKyAgICB9OworCisgICAgLy8gQXNzb2NpYXRlIGJpdHMgd2l0aCB0aGUgQ1YgY29kZXMgYWJvdmUuCisgICAgdGVtcGxhdGU8c3RkOjpzaXplX3Q+IHN0cnVjdCBjdl90YWdfbWZwX2ltcGw7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdGFnX21mcAorICAgICAgOiBkZXRhaWw6OmN2X3RhZ19tZnBfaW1wbAorICAgICAgICA8IDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmVuY29kZV9tZnBfY3Y8VD46OnZhbHVlID4KKyAgICB7IH07CisKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBjdl90YWdfbWZwX2ltcGw8MT4gOiBub25fY3YgICAgICAgICAgICAgIHsgfTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBjdl90YWdfbWZwX2ltcGw8Mj4gOiBjb25zdF9ub25fdm9sYXRpbGUgIHsgfTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBjdl90YWdfbWZwX2ltcGw8Mz4gOiB2b2xhdGlsZV9ub25fY29uc3QgIHsgfTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBjdl90YWdfbWZwX2ltcGw8ND4gOiBjdl9xdWFsaWZpZWQgICAgICAgIHsgfTsKKworICAgIC8vIE1ldGFmdW5jdGlvbiB0byBkZWNvZGUgdGhlIGN2IGNvZGUgYW5kIGFwcGx5IGl0IHRvIGEgdHlwZS4KKyAgICAvLyBXZSBhZGQgYSBwb2ludGVyLCBiZWNhdXNlIG90aGVyd2lzZSBjdi1xdWFsaWZpZXJzIHdvbid0IHN0aWNrIChhbm90aGVyIGJ1ZykuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgQ1Y+IHN0cnVjdCBkZWNvZGVfY3Y7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgZGVjb2RlX2N2PFQsMT4gOiBtcGw6OmlkZW50aXR5PFQgKj4gICAgICAgICAge307CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGRlY29kZV9jdjxULDI+IDogbXBsOjppZGVudGl0eTxUIGNvbnN0ICo+ICAgIHt9OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBkZWNvZGVfY3Y8VCwzPiA6IG1wbDo6aWRlbnRpdHk8VCB2b2xhdGlsZSAqPiB7fTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgZGVjb2RlX2N2PFQsND4gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbXBsOjppZGVudGl0eTxUIGNvbnN0IHZvbGF0aWxlICo+IHt9OworCisgICAgLy8gVGhlIGNsYXNzIHR5cGUgdHJhbnNmb3JtYXRpb24gY29tZXMgYWZ0ZXIgYWRkaW5nIGN2LXF1YWxpZmllcnMuIFdlIGhhdmUKKyAgICAvLyB3cmFwIGl0IHRvIHJlbW92ZSB0aGUgcG9pbnRlciBhZGRlZCBpbiBkZWNvZGVfY3ZfaW1wbC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBMPiBzdHJ1Y3QgYmNjX2NsYXNzX3RyYW5zZm9ybV9pbXBsOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEw+IHN0cnVjdCBiY2NfY2xhc3NfdHJhbnNmb3JtX2ltcGw8VCAqLCBMPgorICAgICAgOiBjbGFzc190cmFuc2Zvcm08VCxMPiAKKyAgICB7IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBELCB0eXBlbmFtZSBMPiBzdHJ1Y3QgYmNjX2NsYXNzX3RyYW5zZm9ybSAKKyAgICAgIDogYmNjX2NsYXNzX3RyYW5zZm9ybV9pbXBsCisgICAgICAgIDwgdHlwZW5hbWUgZGVjb2RlX2N2CisgICAgICAgICAgPCBUCisgICAgICAgICAgLCA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjplbmNvZGVfbWZwX2N2PEQ+Ojp2YWx1ZSAKKyAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgTAorICAgICAgICA+IAorICAgIHsgfTsKKworICAgIC8vIEFmdGVyIGV4dHJhY3RpbmcgdGhlIG1lbWJlciBwb2ludGVlIGZyb20gdGhlIHR5cGUgdGhlIGNsYXNzIHR5cGUgaXMgc3RpbGwKKyAgICAvLyBpbiB0aGUgdHlwZSAoc29tZXdoZXJlIC0tIHlvdSB3b24ndCBzZWUgd2l0aCBSVFRJLCB0aGF0IGlzKSBhbmQgdGhhdCB0eXBlCisgICAgLy8gaXMgZmxhZ2dlZCB1bnVzYWJsZSBhbmQgKm5vdCogaWRlbnRpY2FsIHRvIHRoZSBub25tZW1iZXIgZnVuY3Rpb24gdHlwZS4KKyAgICAvLyBXZSBjYW4sIGhvd2V2ZXIsIGRlY29tcG9zZSB0aGlzIHR5cGUgdmlhIGNvbXBvbmVudHNfaW1wbCBidXQgc3VycHJpc2luZ2x5CisgICAgLy8gYSBwb2ludGVyIHRvIHRoZSBjb25zdCBxdWFsaWZpZWQgY2xhc3MgdHlwZSBwb3BzIHVwIGFnYWluIGFzIHRoZSBmaXJzdCAKKyAgICAvLyBwYXJhbWV0ZXIgdHlwZS4gCisgICAgLy8gV2UgaGF2ZSB0byByZXBsYWNlIHRoaXMgdHlwZSB3aXRoIHRoZSBwcm9wZXJseSBjdi1xdWFsaWZpZWQgYW5kIAorICAgIC8vIHRyYW5zZm9ybWVkIGNsYXNzIHR5cGUsIGludGVncmF0ZSB0aGUgY3YgcXVhbGlmaWNhdGlvbiBpbnRvIHRoZSBiaXRzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhc2UsIHR5cGVuYW1lIE1GUCwgdHlwZW5hbWUgT3JpZ1QsIHR5cGVuYW1lIEw+CisgICAgc3RydWN0IG1mcF9jb21wb25lbnRzOworCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBPcmlnVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgbWZwX2NvbXBvbmVudHM8QmFzZSxUIEM6OiosT3JpZ1QsTD4gCisgICAgeworICAgIHByaXZhdGU6CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6ZnJvbnQ8dHlwZW5hbWUgQmFzZTo6dHlwZXM+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmJjY19jbGFzc190cmFuc2Zvcm08QyxPcmlnVCxMPjo6dHlwZSBjbGFzc190eXBlOworCisgICAgICB0eXBlZGVmIG1wbDo6dmVjdG9yMjxyZXN1bHRfdHlwZSwgY2xhc3NfdHlwZT4gcmVzdWx0X2FuZF9jbGFzc190eXBlOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIAorICAgICAgICBtcGw6OmFkdmFuY2UKKyAgICAgICAgPCB0eXBlbmFtZSBtcGw6OmJlZ2luPHR5cGVuYW1lIEJhc2U6OnR5cGVzPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6aWZfCisgICAgICAgICAgPCBtcGw6OmVxdWFsX3RvPCB0eXBlbmFtZSBkZXRhaWw6OmNsYXNzaWZpZXI8T3JpZ1Q+OjpmdW5jdGlvbl9hcml0eQorICAgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgQmFzZTo6ZnVuY3Rpb25fYXJpdHkgPgorICAgICAgICAgICwgbXBsOjppbnRlZ3JhbF9jPGludCwyPiAsIG1wbDo6aW50ZWdyYWxfYzxpbnQsMT4gCisgICAgICAgICAgPjo6dHlwZQorICAgICAgICA+Ojp0eXBlCisgICAgICBmcm9tOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmVuZDx0eXBlbmFtZSBCYXNlOjp0eXBlcz46OnR5cGUgdG87CisKKyAgICAgIHR5cGVkZWYgbXBsOjppdGVyYXRvcl9yYW5nZTxmcm9tLHRvPiBwYXJhbV90eXBlczsKKworICAgICAgdHlwZWRlZiBtcGw6OmpvaW50X3ZpZXc8IHJlc3VsdF9hbmRfY2xhc3NfdHlwZSwgcGFyYW1fdHlwZXM+IHR5cGVzX3ZpZXc7CisgICAgcHVibGljOgorCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIAorICAgICAgICBtcGw6OnJldmVyc2VfY29weTx0eXBlc192aWV3LCBtcGw6OmZyb250X2luc2VydGVyPCBtcGw6OnZlY3RvcjA8PiA+ID46OnR5cGUgCisgICAgICB0eXBlczsKKworICAgICAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICAgICAgZnVuY3Rpb25fdHlwZXM6OnRhZzwgQmFzZSwgZGV0YWlsOjpjdl90YWdfbWZwPE9yaWdUPiA+OjpiaXRzIAorICAgICAgYml0czsKKworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBCYXNlOjptYXNrIG1hc2s7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpjbGFzc2lmaWVyPE9yaWdUPjo6ZnVuY3Rpb25fYXJpdHkgZnVuY3Rpb25fYXJpdHk7CisKKyAgICAgIHR5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKKyAgICB9OworCisgICAgLy8gTm93IHB1dCBpdCBhbGwgdG9nZXRoZXI6IGRldGVjdCBjdi1xdWFsaWZpY2F0aW9uIG9mIGZ1bmN0aW9uIHR5cGVzIGFuZCBkbworICAgIC8vIHRoZSB3ZWlyZCB0cmFuc2Zvcm1hdGlvbnMgYWJvdmUgZm9yIG1lbWJlciBmdW5jdGlvbiBwb2ludGVycy4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBPcmlnVCwgdHlwZW5hbWUgTD4KKyAgICBzdHJ1Y3QgY29tcG9uZW50c19iY2MKKyAgICAgIDogbXBsOjppZl8KKyAgICAgICAgPCBkZXRhaWw6OnJlcHJlc2VudHNfaW1wbDwgZGV0YWlsOjpjb21wb25lbnRzX2ltcGw8VCxMPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBtZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl90YWc+CisgICAgICAgICwgZGV0YWlsOjptZnBfY29tcG9uZW50czxkZXRhaWw6OmNvbXBvbmVudHNfaW1wbDxULEw+LFQsT3JpZ1QsTD4KKyAgICAgICAgLCBkZXRhaWw6OmNvbXBvbmVudHNfaW1wbDxULEw+CisgICAgICAgID46OnR5cGUKKyAgICB7IH07CisKKyNlbmRpZiAvLyBlbmQgb2YgQk9STEFORCBXT1JLQVJPVU5ECisKKyNkZWZpbmUgQk9PU1RfRlRfYWxfcGF0aCBib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2xvb3AuaHBwPgorCisgIH0gfSAvLyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXM6OmRldGFpbAorCisgIEJPT1NUX1RUX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHMpCisKK30gLy8gbmFtZXNwYWNlIDo6Ym9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2FzX21wbF9zZXF1ZW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3JldGFnX2RlZmF1bHRfY2MuaHBwPgorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY2NfbmFtZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY2NfbmFtZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNjlkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbmZpZy9jY19uYW1lcy5ocHAKQEAgLTAsMCArMSwzMSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0ZUX0NPTkZJR19DQ19OQU1FU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfQ09ORklHX0NDX05BTUVTX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX0ZUX0JVSUxUSU5fQ0NfTkFNRVMgXAorICAoKCBJTVBMSUNJVCAgICAgICAgICAgLCBpbXBsaWNpdF9jYyAsIEJPT1NUX1BQX0VNUFRZICAgICAgICAgICAgICAgICkpXAorICAoKCBDREVDTCAgICAgICAgICAgICAgLCBjZGVjbF9jYyAgICAsIEJPT1NUX1BQX0lERU5USVRZKF9fY2RlY2wgICApICkpXAorICAoKCBTVERDQUxMICAgICAgICAgICAgLCBzdGRjYWxsX2NjICAsIEJPT1NUX1BQX0lERU5USVRZKF9fc3RkY2FsbCApICkpXAorICAoKCBQQVNDQUwgICAgICAgICAgICAgLCBwYXNjYWxfY2MgICAsIEJPT1NUX1BQX0lERU5USVRZKHBhc2NhbCAgICApICkpXAorICAoKCBGQVNUQ0FMTCAgICAgICAgICAgLCBmYXN0Y2FsbF9jYyAsIEJPT1NUX1BQX0lERU5USVRZKF9fZmFzdGNhbGwpICkpXAorICAoKCBDTFJDQUxMICAgICAgICAgICAgLCBjbHJjYWxsX2NjICAsIEJPT1NUX1BQX0lERU5USVRZKF9fY2xyY2FsbCApICkpXAorICAoKCBUSElTQ0FMTCAgICAgICAgICAgLCB0aGlzY2FsbF9jYyAsIEJPT1NUX1BQX0lERU5USVRZKF9fdGhpc2NhbGwpICkpXAorICAoKCBJTVBMSUNJVF9USElTQ0FMTCAgLCB0aGlzY2FsbF9jYyAsIEJPT1NUX1BQX0VNUFRZICAgICAgICAgICAgICAgICkpIAorCisvLyBhcHBlbmQgdXNlci1kZWZpbmVkIGNjIG5hbWVzIHRvIGJ1aWx0aW4gb25lcworI2lmZGVmIEJPT1NUX0ZUX0NDX05BTUVTIAorIyAgIGRlZmluZSBCT09TVF9GVF9DQ19OQU1FU19TRVEgQk9PU1RfRlRfQlVJTFRJTl9DQ19OQU1FUyBCT09TVF9GVF9DQ19OQU1FUworIyAgIGRlZmluZSBCT09TVF9GVF9DQ19QUkVQUk9DRVNTSU5HIDEKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX0ZUX0NDX05BTUVTX1NFUSBCT09TVF9GVF9CVUlMVElOX0NDX05BTUVTCisjZW5kaWYKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbXBpbGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbXBpbGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjA2ZDE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY29tcGlsZXIuaHBwCkBAIC0wLDAgKzEsMTE2IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfQ09ORklHX0NPTVBJTEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9GVF9DT05GSUdfQ09NUElMRVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykKKworIyAgIGlmIEJPT1NUX01TVkMgPCAxMzEwCisjICAgICBlcnJvciAidW5zdXBwb3J0ZWQgY29tcGlsZXIgdmVyc2lvbiIKKyMgICBlbmRpZgorCisjICAgaWZkZWYgQk9PU1RfRlRfQVVUT0RFVEVDVF9DQUxMSU5HX0NPTlZFTlRJT05TCisKKyAgICAgIC8vIGVuYWJsZSBjbHJjYWxsIGNhbGxpbmcgY292ZW50aW9uIChjYWxsIHRvIC5ORVQgbWFuYWdlZCBjb2RlKSB3aGVuCisgICAgICAvLyBjb21waWxpbmcgd2l0aCAvY2xyIAorIyAgICAgaWYgQk9PU1RfTVNWQyA+PSAxNDAwICYmIGRlZmluZWQoX19jcGx1c3BsdXNfY2xpKQorIyAgICAgICBpZm5kZWYgQk9PU1RfRlRfQ0NfQ0xSQ0FMTAorIyAgICAgICBkZWZpbmUgQk9PU1RfRlRfQ0NfQ0xSQ0FMTCBjYWxsYWJsZV9idWlsdGluCisjICAgICAgIGVuZGlmCisjICAgICBlbmRpZgorCisgICAgICAvLyBJbnRlbCB4ODYgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGNhbGxpbmcgY29udmVudGlvbnMKKyMgICAgIGlmZGVmIF9NX0lYODYKKyMgICAgICAgZGVmaW5lIEJPT1NUX0ZUX0NPTU1PTl9YODZfQ0NzIGNhbGxhYmxlX2J1aWx0aW4KKyMgICAgICAgaWYgQk9PU1RfTVNWQyA8IDE0MDAKKyAgICAgICAgICAvLyB2ZXJzaW9uIDcuMSBpcyBtaXNzaW5nIGEga2V5d29yZCB0byBzcGVjaWZ5IHRoZSB0aGlzY2FsbCBjYyAuLi4KKyMgICAgICAgICBpZm5kZWYgQk9PU1RfRlRfQ0NfSU1QTElDSVRfVEhJU0NBTEwKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfRlRfQ0NfSU1QTElDSVRfVEhJU0NBTEwgbm9uX3ZhcmlhZGljfG1lbWJlcnxjYWxsYWJsZV9idWlsdGluCisjICAgICAgICAgaWZuZGVmIEJPT1NUX0ZUX0NPTkZJR19PSworIyAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIklORk98IC9HZCAvR3IgL0d6IHdpbGwgY29tcGlsZXIgb3B0aW9ucyB3aWxsIGNhdXNlIikKKyMgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJJTkZPfCBhIGNvbXBpbGUgZXJyb3IuIikKKyMgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJJTkZPfCBSZWNvbmZpZ3VyZSBCb29zdC5GdW5jdGlvblR5cGVzIGluIHRoaXMgY2FzZS4iKQorIyAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIklORk98IFRoaXMgbWVzc2FnZSBjYW4gYmUgc3VwcHJlc3NlZCBieSBkZWZpbmluZyIpCisjICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgiSU5GT3wgQk9PU1RfRlRfQ09ORklHX09LLiIpCisjICAgICAgICAgZW5kaWYKKyMgICAgICAgICBlbmRpZgorIyAgICAgICBlbHNlIAorICAgICAgICAgIC8vIC4uLmludHJvZHVjZWQgaW4gdmVyc2lvbiA4CisjICAgICAgICAgaWZuZGVmIEJPT1NUX0ZUX0NDX1RISVNDQUxMCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0ZUX0NDX1RISVNDQUxMIG5vbl92YXJpYWRpY3xtZW1iZXJ8Y2FsbGFibGVfYnVpbHRpbgorIyAgICAgICAgIGVuZGlmCisjICAgICAgIGVuZGlmCisjICAgICBlbmRpZgorIyAgIGVuZGlmCisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKEJPT1NUX0lOVEVMX0xJTlVYKQorCisjICAgaWYgX19HTlVDX18gPCAzCisjICAgICBlcnJvciAidW5zdXBwb3J0ZWQgY29tcGlsZXIgdmVyc2lvbiIKKyMgICBlbmRpZgorCisjICAgaWZkZWYgQk9PU1RfRlRfQVVUT0RFVEVDVF9DQUxMSU5HX0NPTlZFTlRJT05TCisKKyMgICAgIGlmIGRlZmluZWQoX19pMzg2X18pCisjICAgICAgIC8vIHNlZSBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIwNDM5CisjICAgICAgIC8vIHNlZSBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI5MzI4CisjICAgICAgIGlmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sQk9PU1RfVEVTVEVEX0FUKDQpKQorIyAgICAgICAgIGlmbmRlZiBCT09TVF9GVF9DQ19JTVBMSUNJVCAKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfRlRfQ0NfSU1QTElDSVQgbWVtYmVyfGNhbGxhYmxlX2J1aWx0aW4KKyMgICAgICAgICBlbmRpZgorIyAgICAgICAgIGRlZmluZSBCT09TVF9GVF9DT01NT05fWDg2X0NDcyBub25fbWVtYmVyfGNhbGxhYmxlX2J1aWx0aW4KKyMgICAgICAgZWxzZQorIyAgICAgICAgIGRlZmluZSBCT09TVF9GVF9DT01NT05fWDg2X0NDcyBjYWxsYWJsZV9idWlsdGluCisjICAgICAgIGVuZGlmCisjICAgICBlbHNlCisjICAgICAgIGlmbmRlZiBCT09TVF9GVF9DQ19JTVBMSUNJVAorIyAgICAgICBkZWZpbmUgQk9PU1RfRlRfQ0NfSU1QTElDSVQgY2FsbGFibGVfYnVpbHRpbgorIyAgICAgICBlbmRpZgorIyAgICAgZW5kaWYKKyMgICBlbmRpZgorCisjICAgaWYgKGRlZmluZWQoQk9PU1RfRlRfQ0NfQ0RFQ0wpIHx8IGRlZmluZWQoQk9PU1RfRlRfQ09NTU9OX1g4Nl9DQ3MpKSBcCisgICAgICAgICYmICFkZWZpbmVkKF9fY2RlY2wpCisjICAgICBkZWZpbmUgX19jZGVjbCBfX2F0dHJpYnV0ZV9fKChfX2NkZWNsX18pKQorIyAgIGVuZGlmCisjICAgaWYgKGRlZmluZWQoQk9PU1RfRlRfQ0NfU1REQ0FMTCkgfHwgZGVmaW5lZChCT09TVF9GVF9DT01NT05fWDg2X0NDcykpIFwKKyAgICAgICAgJiYgIWRlZmluZWQoX19zdGRjYWxsKQorIyAgICAgZGVmaW5lIF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fKChfX3N0ZGNhbGxfXykpCisjICAgZW5kaWYKKyMgICBpZiAoZGVmaW5lZChCT09TVF9GVF9DQ19GQVNUQ0FMTCkgfHwgZGVmaW5lZChCT09TVF9GVF9DT01NT05fWDg2X0NDcykpIFwKKyAgICAgICAgJiYgIWRlZmluZWQoX19mYXN0Y2FsbCkKKyMgICAgIGRlZmluZSBfX2Zhc3RjYWxsIF9fYXR0cmlidXRlX18oKF9fZmFzdGNhbGxfXykpCisjICAgZW5kaWYKKworI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisKKyMgICBpZiBfX0JPUkxBTkRDX18gPCAweDU1MAorIyAgICAgZXJyb3IgInVuc3VwcG9ydGVkIGNvbXBpbGVyIHZlcnNpb24iCisjICAgZWxpZiBfX0JPUkxBTkRDX18gPiAweDU2NQorIyAgICAgcHJhZ21hIG1lc3NhZ2UoIldBUk5JTkc6IGxpYnJhcnkgdW50ZXN0ZWQgd2l0aCB0aGlzIGNvbXBpbGVyIHZlcnNpb24iKQorIyAgIGVuZGlmCisKKyMgICBpZmRlZiBCT09TVF9GVF9BVVRPREVURUNUX0NBTExJTkdfQ09OVkVOVElPTlMKKyMgICAgIGRlZmluZSBCT09TVF9GVF9DT01NT05fWDg2X0NDcyBjYWxsYWJsZV9idWlsdGluCisjICAgZW5kaWYKKworICAgIC8vIHN5bnRhY3RpYyBzcGVjaWFsaXRpZXMgb2YgY2Mgc3BlY2lmaWVyCisjICAgZGVmaW5lIEJPT1NUX0ZUX1NZTlRBWChyZXN1bHQsbHBhcmVuLGNjX3NwZWMsdHlwZV9tb2QsbmFtZSxycGFyZW4pIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCgpIGNjX3NwZWMoKSBscGFyZW4oKSB0eXBlX21vZCgpIG5hbWUoKSBycGFyZW4oKQorI2Vsc2UKKyAgICAvLyBvbmx5IGVuYWJsZSBkZWZhdWx0IGNhbGxpbmcgY29udmVudGlvbgorIyAgIGRlZmluZSBCT09TVF9GVF9DQ19JTVBMSUNJVCBjYWxsYWJsZV9idWlsdGluCisjZW5kaWYKKworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY29uZmlnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI0MjhhNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbmZpZy5ocHAKQEAgLTAsMCArMSw1OSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0ZUX0NPTkZJR19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfQ09ORklHX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbXBpbGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb25maWcvY2NfbmFtZXMuaHBwPgorCisvLyBtYXhpbXVtIGFsbG93ZWQgYXJpdHkKKyNpZm5kZWYgQk9PU1RfRlRfTUFYX0FSSVRZCisjZGVmaW5lIEJPT1NUX0ZUX01BWF9BUklUWSAyMAorI2VuZGlmCisKKy8vIHRoZSBtb3N0IGNvbW1vbiBjYWxsaW5nIGNvbnZlbnRpb25zIGZvciB4ODYgYXJjaGl0ZWN0dXJlIGNhbiBiZSBlbmFibGVkIGF0CisvLyBvbmNlIGluIHRoZSBjb21waWxlciBjb25maWcKKyNpZmRlZiBCT09TVF9GVF9DT01NT05fWDg2X0NDcworIyAgIGlmbmRlZiBCT09TVF9GVF9DQ19DREVDTAorIyAgIGRlZmluZSBCT09TVF9GVF9DQ19DREVDTCBCT09TVF9GVF9DT01NT05fWDg2X0NDcworIyAgIGVuZGlmCisjICAgaWZuZGVmIEJPT1NUX0ZUX0NDX1NURENBTEwKKyMgICBkZWZpbmUgQk9PU1RfRlRfQ0NfU1REQ0FMTCBub25fdmFyaWFkaWN8Qk9PU1RfRlRfQ09NTU9OX1g4Nl9DQ3MKKyMgICBlbmRpZgorIyAgIGlmbmRlZiBCT09TVF9GVF9DQ19GQVNUQ0FMTAorIyAgIGRlZmluZSBCT09TVF9GVF9DQ19GQVNUQ0FMTCBub25fdmFyaWFkaWN8Qk9PU1RfRlRfQ09NTU9OX1g4Nl9DQ3MKKyMgICBlbmRpZgorI2VuZGlmCisKKy8vIHdoZXJlIHRvIHBsYWNlIHRoZSBjYyBzcGVjaWZpZXIgKHRoZSBjb21tb24gd2F5KQorI2lmbmRlZiBCT09TVF9GVF9TWU5UQVgKKyMgICBkZWZpbmUgQk9PU1RfRlRfU1lOVEFYKHJlc3VsdCxscGFyZW4sY2Nfc3BlYyx0eXBlX21vZCxuYW1lLHJwYXJlbikgXAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KCkgbHBhcmVuKCkgY2Nfc3BlYygpIHR5cGVfbW9kKCkgbmFtZSgpIHJwYXJlbigpCisjZW5kaWYKKworLy8gcGFyYW0gZm9yIG51bGxhcnkgZnVuY3Rpb25zCisvLyBzZXQgdG8gInZvaWQiIGZvciBjb21waWxlcnMgdGhhdCByZXF1aXJlIG51bGxhcnkgZnVuY3Rpb25zIHRvIHJlYWQgCisvLyAiUiAodm9pZCkiIGluIHRlbXBsYXRlIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24KKyNpZm5kZWYgQk9PU1RfRlRfTlVMTEFSWV9QQVJBTQorI2RlZmluZSBCT09TVF9GVF9OVUxMQVJZX1BBUkFNIAorI2VuZGlmCisKKy8vIHRoZXJlIGlzIGEgcGVuZGluZyBkZWZlY3QgcmVwb3J0IG9uIGN2IHF1YWxpZmllZCBmdW5jdGlvbiB0eXBlcywgc28gc3VwcG9ydAorLy8gZm9yIHRoZXNlIHR5cGVzIGlzIGRpc2FibGVkLCB1bmxlc3MgZm9yIGNvbXBpbGVycyB3aGVyZSBpdCdzIGtub3duIHRvIHdvcmsKKyNpZm5kZWYgQk9PU1RfRlRfTk9fQ1ZfRlVOQ19TVVBQT1JUCisjZGVmaW5lIEJPT1NUX0ZUX05PX0NWX0ZVTkNfU1VQUE9SVCAxCisjZW5kaWYKKworLy8gZnVsbCBwcmVwcm9jZXNzaW5nIGltcGxpZXMgcHJlcHJvY2Vzc2luZyBvZiB0aGUgY2NzCisjaWYgZGVmaW5lZChCT09TVF9GVF9QUkVQUk9DRVNTSU5HX01PREUpICYmICFkZWZpbmVkKEJPT1NUX0ZUX0NDX1BSRVBST0NFU1NJTkcpCisjICAgZGVmaW5lIEJPT1NUX0ZUX0NDX1BSRVBST0NFU1NJTkcgMQorI2VuZGlmCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc190cmFuc2Zvcm0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NfdHJhbnNmb3JtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmFjZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NfdHJhbnNmb3JtLmhwcApAQCAtMCwwICsxLDYyIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfREVUQUlMX0NMQVNTX1RSQU5TRk9STV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfREVUQUlMX0NMQVNTX1RSQU5TRk9STV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Fsd2F5cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKwordXNpbmcgbXBsOjpwbGFjZWhvbGRlcnM6Ol87CisKKy8vIFRyYW5zZm9ybWF0aW9uIG1ldGFmdW5jdGlvbiBmb3IgdGhlIGNsYXNzIHR5cGUgb2YgbWVtYmVyIGZ1bmN0aW9uIHBvaW50ZXJzLgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjbGFzc190cmFuc2Zvcm0KK3sgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmFwcGx5MTxMLFQ+Ojp0eXBlIHR5cGU7IH07CisKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisvLyBXZSBjYW4gc2hvcnQtY2lyY3VpdCB0aGUgbWVjaGFuaXNtIGltcGxlbWVudGVkIGluIHRoZSBwcmltYXJ5IHRlbXBsYXRlIGZvciAKKy8vIHRoZSBtb3N0IGNvbW1vbiBsYW1iZGEgZXhwcmVzc2lvbiBhbmQgc2F2ZSBib3RoIHRoZSAidW4tbGFtYmRhaW5nIiBhbmQgdGhlCisvLyB0eXBlIHRyYWl0cyBpbnZvY2F0aW9uICh3ZSBrbm93IHRoYXQgVCBjYW4gb25seSBiZSBhIGNsYXNzIHR5cGUpLgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY2xhc3NfdHJhbnNmb3JtPCBULCBtcGw6OmlkZW50aXR5PF8+ID4KK3sgdHlwZWRlZiBUIHR5cGU7IH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjbGFzc190cmFuc2Zvcm08IFQsIGFkZF9yZWZlcmVuY2U8Xz4gPiAKK3sgdHlwZWRlZiBUICYgdHlwZTsgfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGNsYXNzX3RyYW5zZm9ybTwgVCwgYWRkX3BvaW50ZXI8Xz4gPgoreyB0eXBlZGVmIFQgKiB0eXBlOyB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY2xhc3NfdHJhbnNmb3JtPCBULCByZW1vdmVfY3Y8Xz4gPgoreyB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGUgdHlwZTsgfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGNsYXNzX3RyYW5zZm9ybTwgVCwgYWRkX3JlZmVyZW5jZTwgcmVtb3ZlX2N2PF8+ID4gPgoreyB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGUgJiB0eXBlOyB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY2xhc3NfdHJhbnNmb3JtPCBULCBhZGRfcG9pbnRlcjwgcmVtb3ZlX2N2PF8+ID4gPgoreyB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGUgKiB0eXBlOyB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgY2xhc3NfdHJhbnNmb3JtPCBULCBtcGw6OmFsd2F5czxVPiA+Cit7IHR5cGVkZWYgVSB0eXBlOyB9OworI2VuZGlmCisKKworfSB9IH0gLy8gbmFtZXNwYWNlIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWwKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEwOGJjZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXIuaHBwCkBAIC0wLDAgKzEsODIgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GVF9ERVRBSUxfQ0xBU1NJRklFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfREVUQUlMX0NMQVNTSUZJRVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcmVmZXJlbmNlLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbmZpZy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL3Byb3BlcnR5X3RhZ3MuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGNsYXNzaWZpZXI7CisKK3RlbXBsYXRlPHN0ZDo6c2l6ZV90IFM+IHN0cnVjdCBjaGFyX2FycmF5IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbU107IH07CisKK3RlbXBsYXRlPGJpdHNfdCBGbGFncywgYml0c190IENDSUQsIHN0ZDo6c2l6ZV90IEFyaXR5PiBzdHJ1Y3QgZW5jb2RlX2NoYXJyCit7CisgIHR5cGVkZWYgdHlwZW5hbWUgY2hhcl9hcnJheTwKKyAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjplbmNvZGVfY2hhcnJfaW1wbDxGbGFncyxDQ0lELEFyaXR5Pjo6dmFsdWUgCisgID46OnR5cGUgdHlwZTsKK307CisKK2NoYXIgQk9PU1RfVFRfREVDTCBjbGFzc2lmaWVyX2ltcGwoLi4uKTsKKworI2RlZmluZSBCT09TVF9GVF92YXJpYXRpb25zIEJPT1NUX0ZUX2Z1bmN0aW9ufEJPT1NUX0ZUX3BvaW50ZXJ8XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0ZUX21lbWJlcl9wb2ludGVyCisKKyNkZWZpbmUgQk9PU1RfRlRfdHlwZV9mdW5jdGlvbihjYyxuYW1lKSBCT09TVF9GVF9TWU5UQVgoIFwKKyAgICBSIEJPT1NUX1BQX0VNUFRZLEJPT1NUX1BQX0xQQVJFTixjYywqIEJPT1NUX1BQX0VNUFRZLG5hbWUsQk9PU1RfUFBfUlBBUkVOKQorCisjZGVmaW5lIEJPT1NUX0ZUX3R5cGVfZnVuY3Rpb25fcG9pbnRlcihjYyxuYW1lKSBCT09TVF9GVF9TWU5UQVgoIFwKKyAgICBSIEJPT1NUX1BQX0VNUFRZLEJPT1NUX1BQX0xQQVJFTixjYywqKiBCT09TVF9QUF9FTVBUWSxuYW1lLEJPT1NUX1BQX1JQQVJFTikKKworI2RlZmluZSBCT09TVF9GVF90eXBlX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyKGNjLG5hbWUpIEJPT1NUX0ZUX1NZTlRBWCggXAorICAgIFIgQk9PU1RfUFBfRU1QVFksQk9PU1RfUFBfTFBBUkVOLGNjLFQwOjoqKiBCT09TVF9QUF9FTVBUWSxuYW1lLEJPT1NUX1BQX1JQQVJFTikKKworI2RlZmluZSBCT09TVF9GVF9hbF9wYXRoIGJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfbG9vcC5ocHA+CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjbGFzc2lmaWVyX2JpdHMKK3sKKyAgc3RhdGljIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPFQ+Ojp0eXBlIHRlc3RlcjsKKworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYml0c190LHZhbHVlID0gKGJpdHNfdClzaXplb2YoCisgICAgbmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNsYXNzaWZpZXJfaW1wbCgmIHRlc3RlcikgCisgICktMSk7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY2xhc3NpZmllcgoreworICB0eXBlZGVmIGRldGFpbDo6Y29uc3RhbnQ8CisgICAgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6ZGVjb2RlX2JpdHM8CisgICAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpjbGFzc2lmaWVyX2JpdHM8VD46OnZhbHVlCisgICAgPjo6dGFnX2JpdHMgPiAKKyAgYml0czsKKworICB0eXBlZGVmIGRldGFpbDo6ZnVsbF9tYXNrIG1hc2s7CisgCisgIHR5cGVkZWYgZGV0YWlsOjpjb25zdGFudDwKKyAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpkZWNvZGVfYml0czwKKyAgICAgIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNsYXNzaWZpZXJfYml0czxUPjo6dmFsdWUKKyAgICA+Ojphcml0eSA+IAorICBmdW5jdGlvbl9hcml0eTsKK307CisKKworCit9IH0gfSAvLyBuYW1lc3BhY2UgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5MTBfMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjdmM2MyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5MTBfMC5ocHAKQEAgLTAsMCArMSw1NSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMD4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKEJPT1NUX0ZUX251bGxhcnlfcGFyYW0gQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDU+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDY+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw3PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDg+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDk+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxMD4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8xLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTEwXzEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjYTgwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8xLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpICggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDU+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw2PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDc+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDg+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw5PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEwPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTIwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMDViYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8wLmhwcApAQCAtMCwwICsxLDUzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTEwXzAuaHBwPgordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTE+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEyPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxMz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTQ+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE1PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxNj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTc+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE4PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxOT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjA+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5MjBfMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8xLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODcxZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5MjBfMS5ocHAKQEAgLTAsMCArMSw1MyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkxMF8xLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDExPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTI+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxMz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE0PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTU+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxNj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE3PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTg+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxOT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIwPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTMwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YTRmYjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8wLmhwcApAQCAtMCwwICsxLDUzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTIwXzAuaHBwPgordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjE+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIyPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjQ+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI1PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjc+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI4PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyOT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzA+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5MzBfMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8xLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDFjZDZmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5MzBfMS5ocHAKQEAgLTAsMCArMSw1MyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkyMF8xLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIxPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjI+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI0PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjU+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI3PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjg+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyOT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMwPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTQwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3M2Q4NGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8wLmhwcApAQCAtMCwwICsxLDUzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTMwXzAuaHBwPgordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzE+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMyPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzMz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzQ+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM1PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzNj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzc+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM4PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzOT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDA+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5NDBfMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8xLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWRhYmQwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5NDBfMS5ocHAKQEAgLTAsMCArMSw1MyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHkzMF8xLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMxPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzI+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzMz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM0PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzU+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzNj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM3PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzg+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzOT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQwPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTUwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMmY2NmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8wLmhwcApAQCAtMCwwICsxLDUzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NsYXNzaWZpZXJfaW1wbC9hcml0eTQwXzAuaHBwPgordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDE+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQyPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0Mz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDQ+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ1PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0Nj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCAsIHR5cGVuYW1lIFQ0NSAsIHR5cGVuYW1lIFQ0NiA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDc+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ4PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ICwgdHlwZW5hbWUgVDQ4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0OT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCAsIHR5cGVuYW1lIFQ0NSAsIHR5cGVuYW1lIFQ0NiAsIHR5cGVuYW1lIFQ0NyAsIHR5cGVuYW1lIFQ0OCAsIHR5cGVuYW1lIFQ0OSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNTA+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCAsIFQ0OSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5NTBfMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk1MF8xLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjcxMGE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL2FyaXR5NTBfMS5ocHAKQEAgLTAsMCArMSw1MiBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvYXJpdHk0MF8xLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQxPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDI+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0Mz4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ0PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDU+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0Nj4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ3PiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCAsIHR5cGVuYW1lIFQ0NSAsIHR5cGVuYW1lIFQ0NiAsIHR5cGVuYW1lIFQ0NyA+Cit0eXBlbmFtZSBlbmNvZGVfY2hhcnI8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDg+IDo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ICwgdHlwZW5hbWUgVDQ4ID4KK3R5cGVuYW1lIGVuY29kZV9jaGFycjxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0OT4gOjp0eXBlCitjbGFzc2lmaWVyX2ltcGwoQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2KTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcgLCB0eXBlbmFtZSBUNDggLCB0eXBlbmFtZSBUNDkgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDUwPiA6OnR5cGUKK2NsYXNzaWZpZXJfaW1wbChCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4ICwgVDQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL21hc3Rlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jbGFzc2lmaWVyX2ltcGwvbWFzdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGRhY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY2xhc3NpZmllcl9pbXBsL21hc3Rlci5ocHAKQEAgLTAsMCArMSwzMyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworI2lmIEJPT1NUX0ZUX0FSSVRZX0xPT1BfUFJFRklYCisKKyMgICBpZm5kZWYgQk9PU1RfRlRfREVUQUlMX0NMQVNTSUZJRVJfSU1QTF9NQVNURVJfSFBQX0lOQ0xVREVECisjICAgZGVmaW5lIEJPT1NUX0ZUX0RFVEFJTF9DTEFTU0lGSUVSX0lNUExfTUFTVEVSX0hQUF9JTkNMVURFRAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwPgorIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfdHlwZV9uYW1lCisKKyNlbGlmIEJPT1NUX0ZUX0FSSVRZX0xPT1BfSVNfSVRFUkFUSU5HCisKK3RlbXBsYXRlPCBCT09TVF9GVF90cGxhcmdzKEJPT1NUX1BQX0lERU5USVRZKHR5cGVuYW1lKSkgPgordHlwZW5hbWUgZW5jb2RlX2NoYXJyPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLEJPT1NUX0ZUX2FyaXR5Pjo6dHlwZQorY2xhc3NpZmllcl9pbXBsKEJPT1NUX0ZUX3R5cGUpOworCisjZWxpZiBCT09TVF9GVF9BUklUWV9MT09QX1NVRkZJWAorCisjICAgdW5kZWYgQk9PU1RfRlRfdHlwZV9uYW1lCisKKyNlbHNlCisjICAgZXJyb3IgImF0dGVtcHQgdG8gdXNlIGFyaXR5IGxvb3AgbWFzdGVyIGZpbGUgd2l0aG91dCBsb29wIgorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfYXNfbXBsX3NlcXVlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfYXNfbXBsX3NlcXVlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDk0ZTRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19hc19tcGxfc2VxdWVuY2UuaHBwCkBAIC0wLDAgKzEsMTM4IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfREVUQUlMX0NPTVBPTkVOVFNfQVNfTVBMX1NFUVVFTkNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9GVF9ERVRBSUxfQ09NUE9ORU5UU19BU19NUExfU0VRVUVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9lbXB0eV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9mcm9udF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iYWNrX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F0X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JlZ2luX2VuZF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9jbGVhcl9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2Zyb250X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3BvcF9mcm9udF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2JhY2tfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcG9wX2JhY2tfZndkLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4gc3RydWN0IHNpemVfaW1wbAorPCBmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgPgoreworICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorICAgIDogbXBsOjpzaXplIDx0eXBlbmFtZSBTOjp0eXBlcz4KKyAgeyB9OworfTsKK3RlbXBsYXRlPD4gc3RydWN0IGVtcHR5X2ltcGwKKzwgZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Y29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnID4KK3sKKyAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKyAgICA6IG1wbDo6ZW1wdHkgPHR5cGVuYW1lIFM6OnR5cGVzPgorICB7IH07Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgZnJvbnRfaW1wbAorPCBmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgPgoreworICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorICAgIDogbXBsOjpmcm9udCA8dHlwZW5hbWUgUzo6dHlwZXM+CisgIHsgfTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiYWNrX2ltcGwKKzwgZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Y29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnID4KK3sKKyAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKyAgICA6IG1wbDo6YmFjayA8dHlwZW5hbWUgUzo6dHlwZXM+CisgIHsgfTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBhdF9pbXBsCis8IGZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyA+Cit7CisgIHRlbXBsYXRlPCB0eXBlbmFtZSBTLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgOiBtcGw6OmF0IDx0eXBlbmFtZSBTOjp0eXBlcywgTiA+CisgIHsgfTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiZWdpbl9pbXBsCis8IGZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyA+Cit7CisgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisgICAgOiBtcGw6OmJlZ2luIDx0eXBlbmFtZSBTOjp0eXBlcz4KKyAgeyB9OworfTsKK3RlbXBsYXRlPD4gc3RydWN0IGVuZF9pbXBsCis8IGZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyA+Cit7CisgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisgICAgOiBtcGw6OmVuZCA8dHlwZW5hbWUgUzo6dHlwZXM+CisgIHsgfTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBjbGVhcl9pbXBsCis8IGZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyA+Cit7CisgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4KKyAgc3RydWN0IGFwcGx5CisgICAgOiBTCisgIHsKKyAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmNsZWFyPCB0eXBlbmFtZSBTOjp0eXBlcyA+Ojp0eXBlIHR5cGVzOworICB9OworfTsKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGwKKzwgZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Y29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnID4KK3sKKyAgdGVtcGxhdGU8IHR5cGVuYW1lIFMsIHR5cGVuYW1lIFQgPgorICBzdHJ1Y3QgYXBwbHkKKyAgICA6IFMKKyAgeyAKKyAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OnB1c2hfZnJvbnQ8IHR5cGVuYW1lIFM6OnR5cGVzLCBUID46OnR5cGUgdHlwZXM7CisgIH07Cit9OwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsCis8IGZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyA+Cit7CisgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4KKyAgc3RydWN0IGFwcGx5CisgICAgOiBTCisgIHsKKyAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OnBvcF9mcm9udDwgdHlwZW5hbWUgUzo6dHlwZXMgPjo6dHlwZSB0eXBlczsgCisgIH07Cit9OwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsCis8IGZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyA+Cit7CisgIHRlbXBsYXRlPCB0eXBlbmFtZSBTLCB0eXBlbmFtZSBUID4KKyAgc3RydWN0IGFwcGx5CisgICAgOiBTCisgIHsKKyAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OnB1c2hfYmFjazwgdHlwZW5hbWUgUzo6dHlwZXMsIFQgPjo6dHlwZSB0eXBlczsgCisgIH07Cit9OwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGwKKzwgZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Y29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnID4KK3sKKyAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICBzdHJ1Y3QgYXBwbHkKKyAgICA6IFMKKyAgeworICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6cG9wX2JhY2s8IHR5cGVuYW1lIFM6OnR5cGVzID46OnR5cGUgdHlwZXM7IAorICB9OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSA6Om5kbmJvb3N0OjptcGwKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTEwXzAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MTBfMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk2YzZhOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTEwXzAuaHBwCkBAIC0wLDAgKzEsMTMyIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBSLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoQk9PU1RfRlRfbnVsbGFyeV9wYXJhbSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoQk9PU1RfRlRfbnVsbGFyeV9wYXJhbSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMTwgUiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMjwgUiAsIFQwID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMj4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzwgUiAsIFQwICwgVDEgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I0PCBSICwgVDAgLCBUMSAsIFQyID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsND4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNjwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw2PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I3PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNz4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yODwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsOD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yOTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw5PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IxMDwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDEwPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IxMTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ID4gdHlwZXM7Cit9OworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkxMF8xLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTEwXzEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMDZhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkxMF8xLmhwcApAQCAtMCwwICsxLDEyMiBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpICggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDE+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjI8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwyPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IzPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I0PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDQ+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjU8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw1PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I2PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw2PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I3PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDc+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3Rvcjg8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw4PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I5PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw5PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IxMDwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwxMD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMTE8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ID4gdHlwZXM7Cit9OworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkyMF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTIwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjcwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkyMF8wLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkxMF8wLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDExPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IxMjwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTI+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjEzPCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwxMz4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMTQ8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDE0PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IxNTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTU+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE2PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwxNj4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMTc8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDE3PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IxODwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTg+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE5PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwxOT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMjA8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDIwPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyMTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ID4gdHlwZXM7Cit9OworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkyMF8xLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTIwXzEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNjg4ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkyMF8xLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkxMF8xLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTE+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjEyPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTI+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjEzPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTM+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE0PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTQ+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE1PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTU+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE2PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTY+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE3PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTc+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE4PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTg+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjE5PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMTk+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjIwPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMjA+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjIxPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSA+IHR5cGVzOworfTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkzMF8wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjBiYTlkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMC5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCisKKy8vIGlucHV0OiAgQk9PU1RfRlRfc3ludGF4ICAgICB0eXBlIG1hY3JvIHRvIHVzZQorLy8gaW5wdXQ6ICBCT09TVF9GVF9jYyAgICAgICAgIGVtcHR5IG9yIGNjIHNwZWNpZmllciAKKy8vIGlucHV0OiAgQk9PU1RfRlRfZWxsICAgICAgICBlbXB0eSBvciAiLi4uIgorLy8gaW5wdXQ6ICBCT09TVF9GVF9jdiAgICAgICAgIGVtcHR5IG9yIGN2IHF1YWxpZmllcnMKKy8vIGlucHV0OiAgQk9PU1RfRlRfZmxhZ3MgICAgICBzaW5nbGUgZGVjaW1hbCBpbnRlZ2VyIGVuY29kaW5nIHRoZSBmbGFncworLy8gb3V0cHV0OiBCT09TVF9GVF9uICAgICAgICAgIG51bWJlciBvZiBjb21wb25lbnQgdHlwZXMgKGFyaXR5KzEpCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX2FyaXR5ICAgICAgY3VycmVudCBhcml0eQorLy8gb3V0cHV0OiBCT09TVF9GVF90eXBlICAgICAgIG1hY3JvIHRoYXQgZXhwYW5kcyB0byB0aGUgdHlwZQorLy8gb3V0cHV0OiBCT09TVF9GVF90cGxhcmdzKHApIHRlbXBsYXRlIGFyZ3VtZW50cyB3aXRoIGdpdmVuIHByZWZpeAorLy8gb3V0cHV0OiBCT09TVF9GVF9wYXJhbXMocCkgIHBhcmFtZXRlcnMgd2l0aCBnaXZlbiBwcmVmaXgKKworIyBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MjBfMC5ocHA+Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwyMT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMjI8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDIyPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyMzwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMjM+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjI0PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwyND4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMjU8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI1PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyNjwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMjY+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjI3PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwyNz4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMjg8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI4PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyOTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMjk+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjMwPCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzMD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzE8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSA+IHR5cGVzOworfTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHkzMF8xLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzc3OThmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MzBfMS5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCisKKy8vIGlucHV0OiAgQk9PU1RfRlRfc3ludGF4ICAgICB0eXBlIG1hY3JvIHRvIHVzZQorLy8gaW5wdXQ6ICBCT09TVF9GVF9jYyAgICAgICAgIGVtcHR5IG9yIGNjIHNwZWNpZmllciAKKy8vIGlucHV0OiAgQk9PU1RfRlRfZWxsICAgICAgICBlbXB0eSBvciAiLi4uIgorLy8gaW5wdXQ6ICBCT09TVF9GVF9jdiAgICAgICAgIGVtcHR5IG9yIGN2IHF1YWxpZmllcnMKKy8vIGlucHV0OiAgQk9PU1RfRlRfZmxhZ3MgICAgICBzaW5nbGUgZGVjaW1hbCBpbnRlZ2VyIGVuY29kaW5nIHRoZSBmbGFncworLy8gb3V0cHV0OiBCT09TVF9GVF9uICAgICAgICAgIG51bWJlciBvZiBjb21wb25lbnQgdHlwZXMgKGFyaXR5KzEpCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX2FyaXR5ICAgICAgY3VycmVudCBhcml0eQorLy8gb3V0cHV0OiBCT09TVF9GVF90eXBlICAgICAgIG1hY3JvIHRoYXQgZXhwYW5kcyB0byB0aGUgdHlwZQorLy8gb3V0cHV0OiBCT09TVF9GVF90cGxhcmdzKHApIHRlbXBsYXRlIGFyZ3VtZW50cyB3aXRoIGdpdmVuIHByZWZpeAorLy8gb3V0cHV0OiBCT09TVF9GVF9wYXJhbXMocCkgIHBhcmFtZXRlcnMgd2l0aCBnaXZlbiBwcmVmaXgKKworIyBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5MjBfMS5ocHA+Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDIxPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyMjwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDIyPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyMzwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDIzPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyNDwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI0PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyNTwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI1PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyNjwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI2PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyNzwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI3PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyODwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI4PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IyOTwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDI5PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IzMDwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDMwPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IzMTwgUiwgdHlwZW5hbWUgY2xhc3NfdHJhbnNmb3JtPFQwIEJPT1NUX0ZUX2N2LCBMPiA6OnR5cGUgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgPiB0eXBlczsKK307CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTQwXzAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NDBfMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ1N2JkNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTQwXzAuaHBwCkBAIC0wLDAgKzEsMTIzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTMwXzAuaHBwPgordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMzE+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjMyPCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzMj4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzM8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDMzPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IzNDwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMzQ+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjM1PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzNT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzY8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDM2PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3IzNzwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsMzc+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjM4PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzOD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzk8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDM5PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I0MDwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDA+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQxPCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgPiB0eXBlczsKK307CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTQwXzEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL2FyaXR5NDBfMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcwZWMzMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTQwXzEuaHBwCkBAIC0wLDAgKzEsMTIzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTMwXzEuaHBwPgordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzMT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzI8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzMj4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzM8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzMz4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzQ8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzND4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzU8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzNT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzY8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzNj4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzc8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzNz4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzg8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzOD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yMzk8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCwzOT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNDA8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw0MD4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNDE8IFIsIHR5cGVuYW1lIGNsYXNzX3RyYW5zZm9ybTxUMCBCT09TVF9GVF9jdiwgTD4gOjp0eXBlICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ID4gdHlwZXM7Cit9OworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHk1MF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTUwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyZmRhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHk1MF8wLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHk0MF8wLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDQxPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I0MjwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDI+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQzPCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw0Mz4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNDQ8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDQ0PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I0NTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDU+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ2PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw0Nj4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNDc8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDQ3PiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I0ODwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ID4gdHlwZXM7Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCAsIHR5cGVuYW1lIFQ0NSAsIHR5cGVuYW1lIFQ0NiAsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+Cit7Cit0eXBlZGVmIGVuY29kZV9iaXRzPEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkPiBiaXRzOwordHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7Cit0eXBlZGVmIGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDg+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ5PCBSICwgVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgPiB0eXBlczsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ICwgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBMPgorc3RydWN0IGNvbXBvbmVudHNfaW1wbDxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgLCBUNDggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YsIEw+IHR5cGU7Cit0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7Cit0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OnNpemVfdCw0OT4gZnVuY3Rpb25fYXJpdHk7Cit0eXBlZGVmIG1wbDo6dmVjdG9yNTA8IFIgLCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcgLCB0eXBlbmFtZSBUNDggLCB0eXBlbmFtZSBUNDksIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCAsIFQ0OSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPgorewordHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKK3R5cGVkZWYgY29uc3RhbnQ8Qk9PU1RfRlRfZnVsbF9tYXNrPiBtYXNrOwordHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgLCBUNDggLCBUNDkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4gdHlwZTsKK3R5cGVkZWYgY29tcG9uZW50c19tcGxfc2VxdWVuY2VfdGFnIHRhZzsKK3R5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6c2l6ZV90LDUwPiBmdW5jdGlvbl9hcml0eTsKK3R5cGVkZWYgbXBsOjp2ZWN0b3I1MTwgUiAsIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4ICwgVDQ5ID4gdHlwZXM7Cit9OworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHk1MF8xLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2NvbXBvbmVudHNfaW1wbC9hcml0eTUwXzEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZmQ5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHk1MF8xLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvYXJpdHk0MF8xLmhwcD4KK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDE+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQyPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDI+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQzPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDM+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ0PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDQ+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ1PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDU+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ2PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDY+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ3PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDc+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ4PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDg+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjQ5PCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcgLCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgLCBUNDggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNDk+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjUwPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCA+IHR5cGVzOworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcgLCB0eXBlbmFtZSBUNDggLCB0eXBlbmFtZSBUNDksIHR5cGVuYW1lIEw+CitzdHJ1Y3QgY29tcG9uZW50c19pbXBsPEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYywgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgLCBUNDggLCBUNDkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiwgTD4KK3sKK3R5cGVkZWYgZW5jb2RlX2JpdHM8Qk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7Cit0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gbWFzazsKK3R5cGVkZWYgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8Qk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLCBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCAsIFQ0OSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2LCBMPiB0eXBlOwordHlwZWRlZiBjb21wb25lbnRzX21wbF9zZXF1ZW5jZV90YWcgdGFnOwordHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsNTA+IGZ1bmN0aW9uX2FyaXR5OwordHlwZWRlZiBtcGw6OnZlY3RvcjUxPCBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+IDo6dHlwZSAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCAsIFQ0OSA+IHR5cGVzOworfTsKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL21hc3Rlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jb21wb25lbnRzX2ltcGwvbWFzdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjNjYTg4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvY29tcG9uZW50c19pbXBsL21hc3Rlci5ocHAKQEAgLTAsMCArMSw2MSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworI2lmICAgQk9PU1RfRlRfQVJJVFlfTE9PUF9QUkVGSVgKKworIyAgIGlmbmRlZiBCT09TVF9GVF9ERVRBSUxfQ09NUE9ORU5UU19JTVBMX01BU1RFUl9IUFBfSU5DTFVERUQKKyMgICBkZWZpbmUgQk9PU1RfRlRfREVUQUlMX0NPTVBPTkVOVFNfSU1QTF9NQVNURVJfSFBQX0lOQ0xVREVECisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2VtcHR5LmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2lkZW50aXR5LmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RlYy5ocHA+CisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWFfaWYuaHBwPgorIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfdHlwZV9uYW1lCisKKyMgICBpZiAhQk9PU1RfRlRfbWZwCisKKyMgICAgIGRlZmluZSBCT09TVF9GVF90eXBlcyBcCisgICAgICAgICAgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9GVF9hcml0eSkgQk9PU1RfRlRfcGFyYW1zKEJPT1NUX1BQX0VNUFRZKQorIyAgIGVsc2UKKworIyAgICAgZGVmaW5lIEJPT1NUX0ZUX3R5cGVzIFwKKyAgICAgICAgICBSLCB0eXBlbmFtZSBjbGFzc190cmFuc2Zvcm08VDAgQk9PU1RfRlRfY3YsIEw+Ojp0eXBlIFwKKyAgICAgICAgICBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9ERUMoQk9PU1RfRlRfYXJpdHkpKSBcCisgICAgICAgICAgQk9PU1RfRlRfcGFyYW1zKEJPT1NUX1BQX0VNUFRZKQorCisjICAgZW5kaWYKKworI2VsaWYgQk9PU1RfRlRfQVJJVFlfTE9PUF9JU19JVEVSQVRJTkcKKwordGVtcGxhdGU8IEJPT1NUX0ZUX3RwbGFyZ3MoQk9PU1RfUFBfSURFTlRJVFkodHlwZW5hbWUpKSwgdHlwZW5hbWUgTD4KK3N0cnVjdCBjb21wb25lbnRzX2ltcGw8Qk9PU1RfRlRfdHlwZSwgTD4KK3sKKyAgdHlwZWRlZiBlbmNvZGVfYml0czxCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZD4gYml0czsKKyAgdHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9mdWxsX21hc2s+IG1hc2s7CisKKyAgdHlwZWRlZiBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxCT09TVF9GVF90eXBlLCBMPiB0eXBlOworICB0eXBlZGVmIGNvbXBvbmVudHNfbXBsX3NlcXVlbmNlX3RhZyB0YWc7CisKKyAgdHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpzaXplX3QsQk9PU1RfRlRfYXJpdHk+IGZ1bmN0aW9uX2FyaXR5OworCisgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKG1wbDo6dmVjdG9yLEJPT1NUX0ZUX24pPCBCT09TVF9GVF90eXBlcyA+IHR5cGVzOworfTsKKworI2VsaWYgQk9PU1RfRlRfQVJJVFlfTE9PUF9TVUZGSVgKKworIyAgIHVuZGVmIEJPT1NUX0ZUX3R5cGVzCisjICAgdW5kZWYgQk9PU1RfRlRfdHlwZV9uYW1lCisKKyNlbHNlCisjICAgZXJyb3IgImF0dGVtcHQgdG8gdXNlIGFyaXR5IGxvb3AgbWFzdGVyIGZpbGUgd2l0aG91dCBsb29wIgorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2N2X3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jdl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5N2RkZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9jdl90cmFpdHMuaHBwCkBAIC0wLDAgKzEsMTM0IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfREVUQUlMX0NWX1RSQUlUU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfREVUQUlMX0NWX1RSQUlUU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDw9IDB4NTgyKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wcm9wZXJ0eV90YWdzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGZ1bmN0aW9uX3R5cGVzIHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZiAhIChkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPD0gMHg1ODIpKQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzIAoreyB0eXBlZGVmIG5vbl9jdiB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUICY+ICAgICAKK3sgdHlwZWRlZiBub25fY3YgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCAqPiAgICAKK3sgdHlwZWRlZiBub25fY3YgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCAqIGNvbnN0PiAKK3sgdHlwZWRlZiBub25fY3YgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCAqIHZvbGF0aWxlPiAKK3sgdHlwZWRlZiBub25fY3YgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCAqIGNvbnN0IHZvbGF0aWxlPiAKK3sgdHlwZWRlZiBub25fY3YgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0PiAKK3sgdHlwZWRlZiBjb25zdF9ub25fdm9sYXRpbGUgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCBjb25zdCAmPgoreyB0eXBlZGVmIGNvbnN0X25vbl92b2xhdGlsZSB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0ICo+IAoreyB0eXBlZGVmIGNvbnN0X25vbl92b2xhdGlsZSB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0ICogY29uc3Q+IAoreyB0eXBlZGVmIGNvbnN0X25vbl92b2xhdGlsZSB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0ICogdm9sYXRpbGU+IAoreyB0eXBlZGVmIGNvbnN0X25vbl92b2xhdGlsZSB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0ICogY29uc3Qgdm9sYXRpbGU+IAoreyB0eXBlZGVmIGNvbnN0X25vbl92b2xhdGlsZSB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzPFQgdm9sYXRpbGU+ICAKK3sgdHlwZWRlZiB2b2xhdGlsZV9ub25fY29uc3QgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCB2b2xhdGlsZSAmPiAgCit7IHR5cGVkZWYgdm9sYXRpbGVfbm9uX2NvbnN0IHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzPFQgdm9sYXRpbGUgKj4gCit7IHR5cGVkZWYgdm9sYXRpbGVfbm9uX2NvbnN0IHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzPFQgdm9sYXRpbGUgKiBjb25zdD4gCit7IHR5cGVkZWYgdm9sYXRpbGVfbm9uX2NvbnN0IHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzPFQgdm9sYXRpbGUgKiB2b2xhdGlsZT4gCit7IHR5cGVkZWYgdm9sYXRpbGVfbm9uX2NvbnN0IHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzPFQgdm9sYXRpbGUgKiBjb25zdCB2b2xhdGlsZT4gCit7IHR5cGVkZWYgdm9sYXRpbGVfbm9uX2NvbnN0IHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCBjb25zdCB2b2xhdGlsZT4gICAKK3sgdHlwZWRlZiBjdl9xdWFsaWZpZWQgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCBjb25zdCB2b2xhdGlsZSAmPgoreyB0eXBlZGVmIGN2X3F1YWxpZmllZCB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0IHZvbGF0aWxlICo+Cit7IHR5cGVkZWYgY3ZfcXVhbGlmaWVkIHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzPFQgY29uc3Qgdm9sYXRpbGUgKiBjb25zdD4KK3sgdHlwZWRlZiBjdl9xdWFsaWZpZWQgdGFnOyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHM8VCBjb25zdCB2b2xhdGlsZSAqIHZvbGF0aWxlPgoreyB0eXBlZGVmIGN2X3F1YWxpZmllZCB0YWc7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0czxUIGNvbnN0IHZvbGF0aWxlICogY29uc3Qgdm9sYXRpbGU+Cit7IHR5cGVkZWYgY3ZfcXVhbGlmaWVkIHRhZzsgdHlwZWRlZiBUIHR5cGU7IH07CisKKyNlbHNlCit0ZW1wbGF0ZTxzdGQ6OnNpemVfdD4gc3RydWN0IGN2X3RhZ19pbXBsOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBjdl90YWdfaW1wbDwxPiB7IHR5cGVkZWYgbm9uX2N2IHR5cGU7fTsKK3RlbXBsYXRlPD4gc3RydWN0IGN2X3RhZ19pbXBsPDI+IHsgdHlwZWRlZiBjb25zdF9ub25fdm9sYXRpbGUgdHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IGN2X3RhZ19pbXBsPDM+IHsgdHlwZWRlZiB2b2xhdGlsZV9ub25fY29uc3QgdHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IGN2X3RhZ19pbXBsPDQ+IHsgdHlwZWRlZiBjdl9xdWFsaWZpZWQgdHlwZTsgfTsKKwordHlwZWRlZiBjaGFyICgmIGNhc2VfMSlbMV07Cit0eXBlZGVmIGNoYXIgKCYgY2FzZV8yKVsyXTsKK3R5cGVkZWYgY2hhciAoJiBjYXNlXzMpWzNdOwordHlwZWRlZiBjaGFyICgmIGNhc2VfNClbNF07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNhc2VfMSBzd2l0Y2hfY3YoVCAqKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNhc2VfMiBzd2l0Y2hfY3YoVCBjb25zdCAqKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNhc2VfMyBzd2l0Y2hfY3YoVCB2b2xhdGlsZSAqKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNhc2VfNCBzd2l0Y2hfY3YoVCBjb25zdCB2b2xhdGlsZSAqKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVCAgICAgICAgICAgICAgICAqIHJlZl90b19wdHIoVCAmKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgY29uc3QgICAgICAgICAgKiByZWZfdG9fcHRyKFQgY29uc3QgJik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIHZvbGF0aWxlICAgICAgICogcmVmX3RvX3B0cihUIHZvbGF0aWxlICYpOwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBjb25zdCB2b2xhdGlsZSAqIHJlZl90b19wdHIoVCBjb25zdCB2b2xhdGlsZSAmKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVCAgICAgICAgICAgICAgICAqIHJlZl90b19wdHIoVCAqIGNvbnN0IHZvbGF0aWxlICYpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IGN2X2NvZGUKK3sKKyAgc3RhdGljIFQgX3Q7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAKKyAgICAgIHNpemVvZig6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpzd2l0Y2hfY3YoCisgICAgICAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpyZWZfdG9fcHRyKF90KSApICkpOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0cyAKK3sKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Y3ZfdGFnX2ltcGw8IAorICAgIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmN2X2NvZGU8VD46OnZhbHVlID46OnR5cGUKKyAgdGFnOworCisgIC8vIG1heSByZXF1aXJlIEJvb3N0LlR5cGVUcmFpdHMgYnJva2VuIGNvbXBpbGVyIHNwZWNpYWxpemF0aW9ucworICAvLyB0byB3b3JrCisgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9wb2ludGVyPAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgCisgICAgICAgICAgICAgID46OnR5cGUgCisgICAgICAgICAgPjo6dHlwZSB0eXBlOyAKK307CisjZW5kaWYKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsCisKKyNlbmRpZgorIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc19kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc19kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNDgzMzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9hbGlhc2VzX2RlZi5ocHAKQEAgLTAsMCArMSwxNiBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zCisKKyNkZWZpbmUgY2FsbGFibGVfYnVpbHRpbiBCT09TVF9GVF9jYWxsYWJsZV9idWlsdGluCisjZGVmaW5lIG1lbWJlciAgICAgICAgICAgQk9PU1RfRlRfbWVtYmVyX3BvaW50ZXIKKyNkZWZpbmUgbm9uX21lbWJlciAgICAgICBCT09TVF9GVF9ub25fbWVtYmVyCisjZGVmaW5lIHZhcmlhZGljICAgICAgICAgQk9PU1RfRlRfdmFyaWFkaWMKKyNkZWZpbmUgbm9uX3ZhcmlhZGljICAgICBCT09TVF9GVF9ub25fdmFyaWFkaWMKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc191bmRlZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9hbGlhc2VzX3VuZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDRlNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc191bmRlZi5ocHAKQEAgLTAsMCArMSwxNiBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zCisKKyN1bmRlZiBjYWxsYWJsZV9idWlsdGluCisjdW5kZWYgbWVtYmVyCisjdW5kZWYgbm9uX21lbWJlcgorI3VuZGVmIHZhcmlhZGljCisjdW5kZWYgbm9uX3ZhcmlhZGljCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2VuY29kaW5nL2RlZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MDc0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9kZWYuaHBwCkBAIC0wLDAgKzEsNTEgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucworCisvLyBUeXBlIGVuY29kaW5nOgorLy8KKy8vIGJpdCAwOiBjYWxsYWJsZSBidWlsdGluCisvLyBiaXQgMTogbm9uIG1lbWJlcgorLy8gYml0IDI6IG5ha2VkIGZ1bmN0aW9uCisvLyBiaXQgMzogcG9pbnRlcgorLy8gYml0IDQ6IHJlZmVyZW5jZQorLy8gYml0IDU6IG1lbWJlciBwb2ludGVyCisvLyBiaXQgNjogbWVtYmVyIGZ1bmN0aW9uIHBvaW50ZXIKKy8vIGJpdCA3OiBtZW1iZXIgb2JqZWN0IHBvaW50ZXIKKworI2RlZmluZSBCT09TVF9GVF90eXBlX21hc2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBmZiAvLyAxMTExIDExMTEgCisjZGVmaW5lIEJPT1NUX0ZUX2NhbGxhYmxlX2J1aWx0aW4gICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxIC8vIDAwMDAgMDAwMQorI2RlZmluZSBCT09TVF9GVF9ub25fbWVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMiAvLyAwMDAwIDAwMTAKKyNkZWZpbmUgQk9PU1RfRlRfZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDcgLy8gMDAwMCAwMTExCisjZGVmaW5lIEJPT1NUX0ZUX3BvaW50ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBiIC8vIDAwMDAgMTAxMQorI2RlZmluZSBCT09TVF9GVF9yZWZlcmVuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMyAvLyAwMDAxIDAwMTEKKyNkZWZpbmUgQk9PU1RfRlRfbm9uX21lbWJlcl9jYWxsYWJsZV9idWlsdGluICAgICAgICAgIDB4MDAwMDAwMDMgLy8gMDAwMCAwMDExCisjZGVmaW5lIEJPT1NUX0ZUX21lbWJlcl9wb2ludGVyICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwIC8vIDAwMTAgMDAwMAorI2RlZmluZSBCT09TVF9GVF9tZW1iZXJfZnVuY3Rpb25fcG9pbnRlciAgICAgICAgICAgICAgMHgwMDAwMDA2MSAvLyAwMTEwIDAwMDEKKyNkZWZpbmUgQk9PU1RfRlRfbWVtYmVyX29iamVjdF9wb2ludGVyICAgICAgICAgICAgICAgIDB4MDAwMDAwYTMgLy8gMTAxMCAwMDAxCisjZGVmaW5lIEJPT1NUX0ZUX21lbWJlcl9vYmplY3RfcG9pbnRlcl9mbGFncyAgICAgICAgICAweDAwMDAwMmEzCisKKyNkZWZpbmUgQk9PU1RfRlRfdmFyaWFkaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgQk9PU1RfRlRfbm9uX3ZhcmlhZGljICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDAKKyNkZWZpbmUgQk9PU1RfRlRfdmFyaWFkaWNfbWFzayAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzMDAKKworI2RlZmluZSBCT09TVF9GVF9jb25zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMAorI2RlZmluZSBCT09TVF9GVF92b2xhdGlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMAorCisjZGVmaW5lIEJPT1NUX0ZUX2RlZmF1bHRfY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwCisjZGVmaW5lIEJPT1NUX0ZUX2NjX21hc2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwZmY4MDAwCisKKyNkZWZpbmUgQk9PU1RfRlRfa2luZF9tYXNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwZmMgCisKKyNkZWZpbmUgQk9PU1RfRlRfZmxhZ3NfbWFzayAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBmZmYKKyNkZWZpbmUgQk9PU1RfRlRfZnVsbF9tYXNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBmZjBmZmYKKworI2RlZmluZSBCT09TVF9GVF9hcml0eV9zaGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgQk9PU1RfRlRfYXJpdHlfbWFzayAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2YwMDAwMDAKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvdW5kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvdW5kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MjBkNmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy91bmRlZi5ocHAKQEAgLTAsMCArMSwzOCBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworI3VuZGVmIEJPT1NUX0ZUX3R5cGVfbWFzaworI3VuZGVmIEJPT1NUX0ZUX2tpbmRfbWFzaworI3VuZGVmIEJPT1NUX0ZUX2NhbGxhYmxlX2J1aWx0aW4KKyN1bmRlZiBCT09TVF9GVF9ub25fbWVtYmVyCisjdW5kZWYgQk9PU1RfRlRfZnVuY3Rpb24KKyN1bmRlZiBCT09TVF9GVF9wb2ludGVyCisjdW5kZWYgQk9PU1RfRlRfcmVmZXJlbmNlCisjdW5kZWYgQk9PU1RfRlRfbm9uX21lbWJlcl9jYWxsYWJsZV9idWlsdGluCisjdW5kZWYgQk9PU1RfRlRfbWVtYmVyX3BvaW50ZXIKKyN1bmRlZiBCT09TVF9GVF9tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcgorI3VuZGVmIEJPT1NUX0ZUX21lbWJlcl9vYmplY3RfcG9pbnRlcgorI3VuZGVmIEJPT1NUX0ZUX21lbWJlcl9vYmplY3RfcG9pbnRlcl9mbGFncworCisjdW5kZWYgQk9PU1RfRlRfdmFyaWFkaWMKKyN1bmRlZiBCT09TVF9GVF9ub25fdmFyaWFkaWMKKyN1bmRlZiBCT09TVF9GVF92YXJpYWRpY19tYXNrCisKKyN1bmRlZiBCT09TVF9GVF9jb25zdAorI3VuZGVmIEJPT1NUX0ZUX3ZvbGF0aWxlCisKKyN1bmRlZiBCT09TVF9GVF9kZWZhdWx0X2NjCisjdW5kZWYgQk9PU1RfRlRfY2NfbWFzaworCisjdW5kZWYgQk9PU1RfRlRfZmxhZ3NfbWFzaworI3VuZGVmIEJPT1NUX0ZUX2Z1bGxfbWFzaworCisjdW5kZWYgQk9PU1RfRlRfYXJpdHlfbWFzaworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9hcml0eV9sb29wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2FyaXR5X2xvb3AuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3OTg5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9hcml0eV9sb29wLmhwcApAQCAtMCwwICsxLDE0OSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworI2lmbmRlZiBCT09TVF9GVF9QUkVQUk9DRVNTSU5HX01PREUKKy8vIGlucHV0OiAgQk9PU1RfRlRfbWZwICAgICAgICAwIG9yIDEgPD0+IG1lbWJlciBmdW5jdGlvbiBwb2ludGVyPworLy8gaW5wdXQ6ICBCT09TVF9GVF90eXBlX25hbWUgIEJPT1NUX0ZUX3R5cGUgLS0+ICJSICgqIC4uLl90eXBlX25hbWUpKCkiIChwYXNzMikKKyNlbmRpZgorLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjaWZkZWYgX19XQVZFX18KKyMgICBwcmFnbWEgd2F2ZSBvcHRpb24ocHJlc2VydmU6IDApCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9GVF9BUklUWV9MT09QX0lTX0lURVJBVElORworCisjICAgZGVmaW5lIEJPT1NUX0ZUX0FMX1BSRVBST0NFU1NFRCBcCisgICAgICAgIEJPT1NUX0ZUX0FMX0ZJTEUoQk9PU1RfRlRfYWxfcGF0aCxCT09TVF9GVF9GUk9NX0FSSVRZLEJPT1NUX0ZUX21mcCkKKworIyAgIGRlZmluZSBCT09TVF9GVF9BTF9GSUxFKGJhc2VfcGF0aCxtYXhfYXJpdHksbWZwKSBcCisgICAgICAgIEJPT1NUX0ZUX0FMX0ZJTEVfSShiYXNlX3BhdGgsbWF4X2FyaXR5LG1mcCkKKyMgICBkZWZpbmUgQk9PU1RfRlRfQUxfRklMRV9JKGJhc2VfcGF0aCxtYXhfYXJpdHksbWZwKSBcCisgICAgICAgIDxiYXNlX3BhdGgvYXJpdHkgIyMgbWF4X2FyaXR5ICMjIF8gIyMgbWZwLmhwcD4KKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX0ZUX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgICAgaWYgQk9PU1RfRlRfTUFYX0FSSVRZIDwgMTAKKyMgICAgICAgZGVmaW5lIEJPT1NUX0ZUX0ZST01fQVJJVFkgMCAKKyMgICAgIGVsaWYgQk9PU1RfRlRfTUFYX0FSSVRZIDwgMjAKKyMgICAgICAgZGVmaW5lIEJPT1NUX0ZUX0ZST01fQVJJVFkgMTAKKyMgICAgIGVsaWYgQk9PU1RfRlRfTUFYX0FSSVRZIDwgMzAKKyMgICAgICAgZGVmaW5lIEJPT1NUX0ZUX0ZST01fQVJJVFkgMjAKKyMgICAgIGVsaWYgQk9PU1RfRlRfTUFYX0FSSVRZIDwgNDAKKyMgICAgICAgZGVmaW5lIEJPT1NUX0ZUX0ZST01fQVJJVFkgMzAKKyMgICAgIGVuZGlmCisKKyMgICAgIGlmIEJPT1NUX0ZUX0ZST01fQVJJVFkKKyMgICAgICAgaW5jbHVkZSBCT09TVF9GVF9BTF9QUkVQUk9DRVNTRUQKKyMgICAgIGVuZGlmCisKKyMgICBlbGlmICFkZWZpbmVkKEJPT1NUX0ZUX0ZST01fQVJJVFkpIC8vIHNpbmdsZSBwYXNzIHByZXByb2Nlc3NpbmcKKyMgICAgIGRlZmluZSBCT09TVF9GVF9GUk9NX0FSSVRZIDAKKworIyAgIGVsaWYgQk9PU1RfRlRfRlJPTV9BUklUWSA+IDAgICAgICAgLy8gYXJpdHkyMCBpbmNsdWRlcyBhcml0eTEwCitCT09TVF9QUF9FWFBBTkQoIykgaW5jbHVkZSBCT09TVF9GVF9BTF9QUkVQUk9DRVNTRUQKKyMgICBlbmRpZgorCisjICAgdW5kZWYgQk9PU1RfRlRfQUxfUFJFUFJPQ0VTU0VECisKKyMgICB1bmRlZiBCT09TVF9GVF9BTF9GSUxFCisjICAgdW5kZWYgQk9PU1RfRlRfQUxfRklMRV9JCisKKyMgICBpZiBCT09TVF9GVF9NQVhfQVJJVFkgPiBCT09TVF9GVF9GUk9NX0FSSVRZCisKKyMgICAgIGlmbmRlZiBCT09TVF9GVF9ERVRBSUxfQVJJVFlfTE9PUF9IUFBfSU5DTFVERUQKKyMgICAgIGRlZmluZSBCT09TVF9GVF9ERVRBSUxfQVJJVFlfTE9PUF9IUFBfSU5DTFVERUQKKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHA+CisjICAgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHA+CisjICAgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZXhwYW5kLmhwcD4KKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwPgorIyAgICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zLmhwcD4KKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcD4KKyMgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3RyYWlsaW5nX3BhcmFtcy5ocHA+CisjICAgICBlbmRpZgorCisjICAgICBkZWZpbmUgQk9PU1RfRlRfQUxfSU5DTFVERV9GSUxFIDxCT09TVF9GVF9hbF9wYXRoL21hc3Rlci5ocHA+CisKKyMgICAgIGRlZmluZSBCT09TVF9GVF9BUklUWV9MT09QX1BSRUZJWCAxCisjICAgICBpbmNsdWRlIEJPT1NUX0ZUX0FMX0lOQ0xVREVfRklMRQorIyAgICAgdW5kZWYgIEJPT1NUX0ZUX0FSSVRZX0xPT1BfUFJFRklYCisKKyMgICAgIGlmICFCT09TVF9QUF9JU19JVEVSQVRJTkcKKyMgICAgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzEgQk9PU1RfRlRfQUxfSU5DTFVERV9GSUxFCisjICAgICBlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpID09IDEKKyMgICAgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzIgQk9PU1RfRlRfQUxfSU5DTFVERV9GSUxFCisjICAgICBlbHNlCisjICAgICAgIGVycm9yICJsb29wcyBuZXN0ZWQgdG9vIGRlZXBseSIKKyMgICAgIGVuZGlmCisKKyMgICAgIGRlZmluZSBCT09TVF9GVF9hcml0eSBCT09TVF9QUF9JVEVSQVRJT04oKQorIyAgICAgZGVmaW5lIEJPT1NUX0ZUX24gICAgIEJPT1NUX1BQX0lOQyhCT09TVF9GVF9hcml0eSkKKworIyAgICAgZGVmaW5lIEJPT1NUX0ZUX3R5cGUgXAorICAgICAgICAgIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyxCT09TVF9GVF90eXBlX25hbWUgQk9PU1RfUFBfRU1QVFkpXAorICAgICAgICAgICAgICAgKEJPT1NUX0ZUX3BhcmFtcyhCT09TVF9QUF9FTVBUWSkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdgorCisjICAgICBkZWZpbmUgQk9PU1RfRlRfdHBsYXJncyhwcmVmeCkgXAorICAgICAgICAgIHByZWZ4KCkgUiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9GVF9hcml0eSxwcmVmeCgpIFQpCisKKyMgICAgIGlmICFCT09TVF9GVF9tZnAKKworIyAgICAgICBkZWZpbmUgQk9PU1RfRlRfcGFyYW1zKHByZWZ4KSBcCisgICAgICAgICAgICBCT09TVF9QUF9JRihCT09TVF9GVF9hcml0eSxCT09TVF9QUF9FTlVNX1BBUkFNUywgXAorICAgICAgICAgICAgICAgIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0gQk9PU1RfUFBfVFVQTEVfRUFUKDIpKSggXAorICAgICAgICAgICAgICAgICAgICBCT09TVF9GVF9hcml0eSxwcmVmeCgpIFQpIAorIyAgICAgZWxzZQorCisjICAgICAgIGRlZmluZSBCT09TVF9GVF9wYXJhbXMocHJlZngpIFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVMoQk9PU1RfRlRfYXJpdHkscHJlZngoKSBUKQorCisjICAgICBlbmRpZgorCisjICAgICBpZiAhQk9PU1RfRlRfRlJPTV9BUklUWSAKKyMgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMgKEJPT1NUX0ZUX21mcCwgQk9PU1RfRlRfTUFYX0FSSVRZKQorIyAgICAgZWxzZQorIyAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUyBcCisgICAgICAgICAgICAoQk9PU1RfRlRfRlJPTV9BUklUWSsxLCBCT09TVF9GVF9NQVhfQVJJVFkpCisjICAgICBlbmRpZgorCisjICAgICBkZWZpbmUgQk9PU1RfRlRfQVJJVFlfTE9PUF9JU19JVEVSQVRJTkcgMQorIyAgICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKyMgICAgIHVuZGVmICBCT09TVF9GVF9BUklUWV9MT09QX0lTX0lURVJBVElORworCisjICAgICB1bmRlZiBCT09TVF9GVF9hcml0eQorIyAgICAgdW5kZWYgQk9PU1RfRlRfcGFyYW1zCisjICAgICB1bmRlZiBCT09TVF9GVF90cGxhcmdzCisjICAgICB1bmRlZiBCT09TVF9GVF90eXBlCisKKyMgICAgIGRlZmluZSBCT09TVF9GVF9BUklUWV9MT09QX1NVRkZJWCAxCisjICAgICBpbmNsdWRlIEJPT1NUX0ZUX0FMX0lOQ0xVREVfRklMRQorIyAgICAgdW5kZWYgIEJPT1NUX0ZUX0FSSVRZX0xPT1BfU1VGRklYCisKKyMgICAgIHVuZGVmIEJPT1NUX0ZUX0FMX0lOQ0xVREVfRklMRQorIyAgIGVuZGlmCisKKyMgICB1bmRlZiBCT09TVF9GVF9GUk9NX0FSSVRZCisKKyNlbHNlCisjICAgZXJyb3IgImF0dGVtcHQgdG8gbmVzdCBhcml0eSBsb29wcyIKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9jY19sb29wL21hc3Rlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9jY19sb29wL21hc3Rlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGY4MjFkMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2NjX2xvb3AvbWFzdGVyLmhwcApAQCAtMCwwICsxLDEzNiBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zCisKKyNpZmRlZiBfX1dBVkVfXworLy8gdGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBmcm9tIHRoZSBtYXN0ZXIuaHBwIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CisjICAgcHJhZ21hIHdhdmUgb3B0aW9uKHByZXNlcnZlOiAwKQorI2VuZGlmCisKKworI2lmICFCT09TVF9QUF9JU19JVEVSQVRJTkcKKworIyAgIGlmbmRlZiBCT09TVF9GVF9ERVRBSUxfQ0NfTE9PUF9NQVNURVJfSFBQX0lOQ0xVREVECisjICAgZGVmaW5lIEJPT1NUX0ZUX0RFVEFJTF9DQ19MT09QX01BU1RFUl9IUFBfSU5DTFVERUQKKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbmZpZy9jY19uYW1lcy5ocHA+CisKKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZWxlbS5ocHA+CisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZXhwYW5kLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2luYy5ocHA+CisjICAgZW5kaWYKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9kZWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9hbGlhc2VzX2RlZi5ocHA+CisKKyMgICBkZWZpbmUgIEJPT1NUX1BQX0ZJTEVOQU1FXzEgXAorICAgICAgICA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2NjX2xvb3AvbWFzdGVyLmhwcD4KKyMgICBkZWZpbmUgIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMgXAorICAgICAgICAoMCxCT09TVF9QUF9TRVFfU0laRShCT09TVF9GVF9DQ19OQU1FU19TRVEpLTEpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKyMgICBpZiAhZGVmaW5lZChCT09TVF9GVF9jb25maWdfdmFsaWQpICYmIEJPT1NUX0ZUX0NDX1BSRVBST0NFU1NJTkcKKyMgICAgIGRlZmluZSBCT09TVF9GVF9jY19pZCAxCisjICAgICBkZWZpbmUgQk9PU1RfRlRfY2NfbmFtZSBpbXBsaWNpdF9jYworIyAgICAgZGVmaW5lIEJPT1NUX0ZUX2NjIEJPT1NUX1BQX0VNUFRZCisjICAgICBkZWZpbmUgQk9PU1RfRlRfY29uZCBjYWxsYWJsZV9idWlsdGluCisjICAgICBpbmNsdWRlIEJPT1NUX0ZUX2NjX2ZpbGUKKyMgICAgIHVuZGVmIEJPT1NUX0ZUX2NvbmQKKyMgICAgIHVuZGVmIEJPT1NUX0ZUX2NjX25hbWUKKyMgICAgIHVuZGVmIEJPT1NUX0ZUX2NjCisjICAgICB1bmRlZiBCT09TVF9GVF9jY19pZAorIyAgIGVsaWYgIWRlZmluZWQoQk9PU1RfRlRfY29uZmlnX3ZhbGlkKSAvLyBhbmQgZ2VuZXJhdGluZyBwcmVwcm9jZXNzZWQgZmlsZQorQk9PU1RfUFBfRVhQQU5EKCMpIGlmbmRlZiBCT09TVF9GVF9jb25maWdfdmFsaWQKK0JPT1NUX1BQX0VYUEFORCgjKSAgIGRlZmluZSBCT09TVF9GVF9jY19pZCAxCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfY2NfbmFtZSBpbXBsaWNpdF9jYworQk9PU1RfUFBfRVhQQU5EKCMpICAgZGVmaW5lIEJPT1NUX0ZUX2NjIEJPT1NUX1BQX0VNUFRZCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfY29uZCBjYWxsYWJsZV9idWlsdGluCisjZGVmaW5lIF8oKQorQk9PU1RfUFBfRVhQQU5EKCMpICAgaW5jbHVkZSBCT09TVF9GVF9jY19maWxlCisjdW5kZWYgXworQk9PU1RfUFBfRVhQQU5EKCMpICAgdW5kZWYgQk9PU1RfRlRfY29uZAorQk9PU1RfUFBfRVhQQU5EKCMpICAgdW5kZWYgQk9PU1RfRlRfY2NfbmFtZQorQk9PU1RfUFBfRVhQQU5EKCMpICAgdW5kZWYgQk9PU1RfRlRfY2MKK0JPT1NUX1BQX0VYUEFORCgjKSAgIHVuZGVmIEJPT1NUX0ZUX2NjX2lkCitCT09TVF9QUF9FWFBBTkQoIykgZWxzZQorQk9PU1RfUFBfRVhQQU5EKCMpICAgdW5kZWYgQk9PU1RfRlRfY29uZmlnX3ZhbGlkCitCT09TVF9QUF9FWFBBTkQoIykgZW5kaWYKKworIyAgIGVsc2UKKyMgICAgIHVuZGVmIEJPT1NUX0ZUX2NvbmZpZ192YWxpZAorIyAgIGVuZGlmCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc191bmRlZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2VuY29kaW5nL3VuZGVmLmhwcD4KKworI2VsaWYgQk9PU1RfRlRfQ0NfUFJFUFJPQ0VTU0lORworCisjICAgZGVmaW5lIEJPT1NUX0ZUX2NjX2lkICBCT09TVF9QUF9JTkMoQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpKQorIyAgIGRlZmluZSBCT09TVF9GVF9jY19pbmYgXAorICAgICAgICBCT09TVF9QUF9TRVFfRUxFTShCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSksQk9PU1RfRlRfQ0NfTkFNRVNfU0VRKQorCisjICAgZGVmaW5lIEJPT1NUX0ZUX2NjX3BwX25hbWUgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLDAsQk9PU1RfRlRfY2NfaW5mKQorIyAgIGRlZmluZSBCT09TVF9GVF9jY19uYW1lICAgIEJPT1NUX1BQX1RVUExFX0VMRU0oMywxLEJPT1NUX0ZUX2NjX2luZikKKyMgICBkZWZpbmUgQk9PU1RfRlRfY2MgICAgICAgICBCT09TVF9QUF9UVVBMRV9FTEVNKDMsMixCT09TVF9GVF9jY19pbmYpCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfY29uZCBCT09TVF9QUF9DQVQoQk9PU1RfRlRfQ0NfLEJPT1NUX0ZUX2NjX3BwX25hbWUpCisKKyMgICBpZiBCT09TVF9GVF9jb25kCisjICAgICBkZWZpbmUgQk9PU1RfRlRfY29uZmlnX3ZhbGlkIDEKKyMgICAgIGluY2x1ZGUgQk9PU1RfRlRfY2NfZmlsZQorIyAgIGVuZGlmCisKKyMgICB1bmRlZiBCT09TVF9GVF9jb25kCisKKyMgICB1bmRlZiBCT09TVF9GVF9jY19wcF9uYW1lCisjICAgdW5kZWYgQk9PU1RfRlRfY2NfbmFtZQorIyAgIHVuZGVmIEJPT1NUX0ZUX2NjCisKKyMgICB1bmRlZiBCT09TVF9GVF9jY19pZAorIyAgIHVuZGVmIEJPT1NUX0ZUX2NjX2luZgorCisjZWxzZSAvLyBpZiBnZW5lcmF0aW5nIHByZXByb2Nlc3NlZCBmaWxlCitCT09TVF9QUF9FWFBBTkQoIykgZGVmaW5lIEJPT1NUX0ZUX2NjX2lkIEJPT1NUX1BQX0lOQyhCT09TVF9QUF9JVEVSQVRJT04oKSkKKworIyAgIGRlZmluZSBCT09TVF9GVF9jY19pbmYgXAorICAgICAgICBCT09TVF9QUF9TRVFfRUxFTShCT09TVF9QUF9JVEVSQVRJT04oKSxCT09TVF9GVF9DQ19OQU1FU19TRVEpCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfY2NfcHBfbmFtZSBCT09TVF9QUF9UVVBMRV9FTEVNKDMsMCxCT09TVF9GVF9jY19pbmYpCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfQ0NfREVGKG5hbWUsaW5kZXgpIFwKKyAgICAgICAgbmFtZSBCT09TVF9QUF9UVVBMRV9FTEVNKDMsaW5kZXgsQk9PU1RfRlRfY2NfaW5mKQorQk9PU1RfUFBfRVhQQU5EKCMpIGRlZmluZSBCT09TVF9GVF9DQ19ERUYoQk9PU1RfRlRfY2NfbmFtZSwxKQorQk9PU1RfUFBfRVhQQU5EKCMpIGRlZmluZSBCT09TVF9GVF9DQ19ERUYoQk9PU1RfRlRfY2MsMikKKyMgICB1bmRlZiAgQk9PU1RfRlRfQ0NfREVGCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfY2NfY29uZF92IEJPT1NUX1BQX0NBVChCT09TVF9GVF9DQ18sQk9PU1RfRlRfY2NfcHBfbmFtZSkKK0JPT1NUX1BQX0VYUEFORCgjKSBkZWZpbmUgQk9PU1RfRlRfY29uZCBCT09TVF9GVF9jY19jb25kX3YKKyMgICB1bmRlZiAgQk9PU1RfRlRfY2NfY29uZF92CisKKyMgICB1bmRlZiBCT09TVF9GVF9jY19wcF9uYW1lCisjICAgdW5kZWYgQk9PU1RfRlRfY2NfaW5mCisKK0JPT1NUX1BQX0VYUEFORCgjKSBpZiBCT09TVF9GVF9jb25kCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfY29uZmlnX3ZhbGlkIDEKKyNkZWZpbmUgXygpCitCT09TVF9QUF9FWFBBTkQoIykgICBpbmNsdWRlIEJPT1NUX0ZUX2NjX2ZpbGUKKyN1bmRlZiBfCitCT09TVF9QUF9FWFBBTkQoIykgZW5kaWYKKworQk9PU1RfUFBfRVhQQU5EKCMpIHVuZGVmIEJPT1NUX0ZUX2NvbmQKKworQk9PU1RfUFBfRVhQQU5EKCMpIHVuZGVmIEJPT1NUX0ZUX2NjX25hbWUKK0JPT1NUX1BQX0VYUEFORCgjKSB1bmRlZiBCT09TVF9GVF9jYworCitCT09TVF9QUF9FWFBBTkQoIykgdW5kZWYgQk9PU1RfRlRfY2NfaWQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2NjX2xvb3AvcHJlcHJvY2Vzc2VkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2NjX2xvb3AvcHJlcHJvY2Vzc2VkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTQwNzljCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfY2NfbG9vcC9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsMTIwIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMKKworLy8gdGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBmcm9tIHRoZSBtYXN0ZXIuaHBwIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CisjIGRlZmluZSBCT09TVF9GVF9jY19pZCAxCisjIGRlZmluZSBCT09TVF9GVF9jY19uYW1lIGltcGxpY2l0X2NjCisjIGRlZmluZSBCT09TVF9GVF9jYyBCT09TVF9QUF9FTVBUWQorIyBkZWZpbmUgQk9PU1RfRlRfY29uZCBCT09TVF9GVF9DQ19JTVBMSUNJVAorIyBpZiBCT09TVF9GVF9jb25kCisjIGRlZmluZSBCT09TVF9GVF9jb25maWdfdmFsaWQgMQorIyBpbmNsdWRlIEJPT1NUX0ZUX2NjX2ZpbGUKKyMgZW5kaWYKKyMgdW5kZWYgQk9PU1RfRlRfY29uZAorIyB1bmRlZiBCT09TVF9GVF9jY19uYW1lCisjIHVuZGVmIEJPT1NUX0ZUX2NjCisjIHVuZGVmIEJPT1NUX0ZUX2NjX2lkCisjIGRlZmluZSBCT09TVF9GVF9jY19pZCAyCisjIGRlZmluZSBCT09TVF9GVF9jY19uYW1lIGNkZWNsX2NjCisjIGRlZmluZSBCT09TVF9GVF9jYyBCT09TVF9QUF9JREVOVElUWShfX2NkZWNsICkKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmQgQk9PU1RfRlRfQ0NfQ0RFQ0wKKyMgaWYgQk9PU1RfRlRfY29uZAorIyBkZWZpbmUgQk9PU1RfRlRfY29uZmlnX3ZhbGlkIDEKKyMgaW5jbHVkZSBCT09TVF9GVF9jY19maWxlCisjIGVuZGlmCisjIHVuZGVmIEJPT1NUX0ZUX2NvbmQKKyMgdW5kZWYgQk9PU1RfRlRfY2NfbmFtZQorIyB1bmRlZiBCT09TVF9GVF9jYworIyB1bmRlZiBCT09TVF9GVF9jY19pZAorIyBkZWZpbmUgQk9PU1RfRlRfY2NfaWQgMworIyBkZWZpbmUgQk9PU1RfRlRfY2NfbmFtZSBzdGRjYWxsX2NjCisjIGRlZmluZSBCT09TVF9GVF9jYyBCT09TVF9QUF9JREVOVElUWShfX3N0ZGNhbGwgKQorIyBkZWZpbmUgQk9PU1RfRlRfY29uZCBCT09TVF9GVF9DQ19TVERDQUxMCisjIGlmIEJPT1NUX0ZUX2NvbmQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmZpZ192YWxpZCAxCisjIGluY2x1ZGUgQk9PU1RfRlRfY2NfZmlsZQorIyBlbmRpZgorIyB1bmRlZiBCT09TVF9GVF9jb25kCisjIHVuZGVmIEJPT1NUX0ZUX2NjX25hbWUKKyMgdW5kZWYgQk9PU1RfRlRfY2MKKyMgdW5kZWYgQk9PU1RfRlRfY2NfaWQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjX2lkIDQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjX25hbWUgcGFzY2FsX2NjCisjIGRlZmluZSBCT09TVF9GVF9jYyBCT09TVF9QUF9JREVOVElUWShwYXNjYWwgKQorIyBkZWZpbmUgQk9PU1RfRlRfY29uZCBCT09TVF9GVF9DQ19QQVNDQUwKKyMgaWYgQk9PU1RfRlRfY29uZAorIyBkZWZpbmUgQk9PU1RfRlRfY29uZmlnX3ZhbGlkIDEKKyMgaW5jbHVkZSBCT09TVF9GVF9jY19maWxlCisjIGVuZGlmCisjIHVuZGVmIEJPT1NUX0ZUX2NvbmQKKyMgdW5kZWYgQk9PU1RfRlRfY2NfbmFtZQorIyB1bmRlZiBCT09TVF9GVF9jYworIyB1bmRlZiBCT09TVF9GVF9jY19pZAorIyBkZWZpbmUgQk9PU1RfRlRfY2NfaWQgNQorIyBkZWZpbmUgQk9PU1RfRlRfY2NfbmFtZSBmYXN0Y2FsbF9jYworIyBkZWZpbmUgQk9PU1RfRlRfY2MgQk9PU1RfUFBfSURFTlRJVFkoX19mYXN0Y2FsbCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmQgQk9PU1RfRlRfQ0NfRkFTVENBTEwKKyMgaWYgQk9PU1RfRlRfY29uZAorIyBkZWZpbmUgQk9PU1RfRlRfY29uZmlnX3ZhbGlkIDEKKyMgaW5jbHVkZSBCT09TVF9GVF9jY19maWxlCisjIGVuZGlmCisjIHVuZGVmIEJPT1NUX0ZUX2NvbmQKKyMgdW5kZWYgQk9PU1RfRlRfY2NfbmFtZQorIyB1bmRlZiBCT09TVF9GVF9jYworIyB1bmRlZiBCT09TVF9GVF9jY19pZAorIyBkZWZpbmUgQk9PU1RfRlRfY2NfaWQgNgorIyBkZWZpbmUgQk9PU1RfRlRfY2NfbmFtZSBjbHJjYWxsX2NjCisjIGRlZmluZSBCT09TVF9GVF9jYyBCT09TVF9QUF9JREVOVElUWShfX2NscmNhbGwgKQorIyBkZWZpbmUgQk9PU1RfRlRfY29uZCBCT09TVF9GVF9DQ19DTFJDQUxMCisjIGlmIEJPT1NUX0ZUX2NvbmQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmZpZ192YWxpZCAxCisjIGluY2x1ZGUgQk9PU1RfRlRfY2NfZmlsZQorIyBlbmRpZgorIyB1bmRlZiBCT09TVF9GVF9jb25kCisjIHVuZGVmIEJPT1NUX0ZUX2NjX25hbWUKKyMgdW5kZWYgQk9PU1RfRlRfY2MKKyMgdW5kZWYgQk9PU1RfRlRfY2NfaWQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjX2lkIDcKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjX25hbWUgdGhpc2NhbGxfY2MKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjIEJPT1NUX1BQX0lERU5USVRZKF9fdGhpc2NhbGwpCisjIGRlZmluZSBCT09TVF9GVF9jb25kIEJPT1NUX0ZUX0NDX1RISVNDQUxMCisjIGlmIEJPT1NUX0ZUX2NvbmQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmZpZ192YWxpZCAxCisjIGluY2x1ZGUgQk9PU1RfRlRfY2NfZmlsZQorIyBlbmRpZgorIyB1bmRlZiBCT09TVF9GVF9jb25kCisjIHVuZGVmIEJPT1NUX0ZUX2NjX25hbWUKKyMgdW5kZWYgQk9PU1RfRlRfY2MKKyMgdW5kZWYgQk9PU1RfRlRfY2NfaWQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjX2lkIDgKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjX25hbWUgdGhpc2NhbGxfY2MKKyMgZGVmaW5lIEJPT1NUX0ZUX2NjIEJPT1NUX1BQX0VNUFRZCisjIGRlZmluZSBCT09TVF9GVF9jb25kIEJPT1NUX0ZUX0NDX0lNUExJQ0lUX1RISVNDQUxMCisjIGlmIEJPT1NUX0ZUX2NvbmQKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmZpZ192YWxpZCAxCisjIGluY2x1ZGUgQk9PU1RfRlRfY2NfZmlsZQorIyBlbmRpZgorIyB1bmRlZiBCT09TVF9GVF9jb25kCisjIHVuZGVmIEJPT1NUX0ZUX2NjX25hbWUKKyMgdW5kZWYgQk9PU1RfRlRfY2MKKyMgdW5kZWYgQk9PU1RfRlRfY2NfaWQKKyMgaWZuZGVmIEJPT1NUX0ZUX2NvbmZpZ192YWxpZAorIyBkZWZpbmUgQk9PU1RfRlRfY2NfaWQgMQorIyBkZWZpbmUgQk9PU1RfRlRfY2NfbmFtZSBpbXBsaWNpdF9jYworIyBkZWZpbmUgQk9PU1RfRlRfY2MgQk9PU1RfUFBfRU1QVFkKKyMgZGVmaW5lIEJPT1NUX0ZUX2NvbmQgMHgwMDAwMDAwMQorIyBpbmNsdWRlIEJPT1NUX0ZUX2NjX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY29uZAorIyB1bmRlZiBCT09TVF9GVF9jY19uYW1lCisjIHVuZGVmIEJPT1NUX0ZUX2NjCisjIHVuZGVmIEJPT1NUX0ZUX2NjX2lkCisjIGVsc2UKKyMgdW5kZWYgQk9PU1RfRlRfY29uZmlnX3ZhbGlkCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9sb29wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX2xvb3AuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjZTZhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9sb29wLmhwcApAQCAtMCwwICsxLDgwIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMKKworI2lmbmRlZiBCT09TVF9GVF9ERVRBSUxfUFBfTE9PUF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfREVUQUlMX1BQX0xPT1BfSFBQX0lOQ0xVREVECisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZXhwYW5kLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL3BhcmVuLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2VuY29kaW5nL2RlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2VuY29kaW5nL2FsaWFzZXNfZGVmLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfRlRfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGRlZmluZSBCT09TVF9GVF9sb29wIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfY2NfbG9vcC9tYXN0ZXIuaHBwPgorI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfRlRfbG9vcCBcCisgICAgICAgIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfY2NfbG9vcC9wcmVwcm9jZXNzZWQuaHBwPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX0ZUX2FsX3BhdGgpCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfY2NfZmlsZSBcCisgICAgICAgIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdmFyaWF0ZV9sb29wL3ByZXByb2Nlc3NlZC5ocHA+CisjICAgZGVmaW5lIEJPT1NUX0ZUX3ZhcmlhdGVfZmlsZSBcCisgICAgICAgIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfYXJpdHlfbG9vcC5ocHA+CisKKyMgICBpZm5kZWYgQk9PU1RfRlRfdHlwZV9mdW5jdGlvbgorIyAgIGRlZmluZSBCT09TVF9GVF90eXBlX2Z1bmN0aW9uKGNjLG5hbWUpIEJPT1NUX0ZUX1NZTlRBWCggXAorICAgICAgUiBCT09TVF9QUF9FTVBUWSxCT09TVF9QUF9FTVBUWSxjYyxCT09TVF9QUF9FTVBUWSxuYW1lLEJPT1NUX1BQX0VNUFRZKQorIyAgIGVuZGlmCisjICAgaWZuZGVmIEJPT1NUX0ZUX3R5cGVfZnVuY3Rpb25fcG9pbnRlcgorIyAgIGRlZmluZSBCT09TVF9GVF90eXBlX2Z1bmN0aW9uX3BvaW50ZXIoY2MsbmFtZSkgQk9PU1RfRlRfU1lOVEFYKCBcCisgICAgICBSIEJPT1NUX1BQX0VNUFRZLEJPT1NUX1BQX0xQQVJFTixjYywqIEJPT1NUX1BQX0VNUFRZLG5hbWUsQk9PU1RfUFBfUlBBUkVOKQorIyAgIGVuZGlmCisjICAgaWZuZGVmIEJPT1NUX0ZUX3R5cGVfZnVuY3Rpb25fcmVmZXJlbmNlCisjICAgZGVmaW5lIEJPT1NUX0ZUX3R5cGVfZnVuY3Rpb25fcmVmZXJlbmNlKGNjLG5hbWUpIEJPT1NUX0ZUX1NZTlRBWCggXAorICAgICAgUiBCT09TVF9QUF9FTVBUWSxCT09TVF9QUF9MUEFSRU4sY2MsJiBCT09TVF9QUF9FTVBUWSxuYW1lLEJPT1NUX1BQX1JQQVJFTikKKyMgICBlbmRpZgorIyAgIGlmbmRlZiBCT09TVF9GVF90eXBlX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyCisjICAgZGVmaW5lIEJPT1NUX0ZUX3R5cGVfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIoY2MsbmFtZSkgQk9PU1RfRlRfU1lOVEFYKCBcCisgICAgICBSIEJPT1NUX1BQX0VNUFRZLEJPT1NUX1BQX0xQQVJFTixjYyxUMDo6KiBCT09TVF9QUF9FTVBUWSxuYW1lLEJPT1NUX1BQX1JQQVJFTikKKyMgICBlbmRpZgorCisjICAgaW5jbHVkZSBCT09TVF9GVF9sb29wCisKKyMgICB1bmRlZiBCT09TVF9GVF90eXBlX2Z1bmN0aW9uCisjICAgdW5kZWYgQk9PU1RfRlRfdHlwZV9mdW5jdGlvbl9wb2ludGVyCisjICAgdW5kZWYgQk9PU1RfRlRfdHlwZV9mdW5jdGlvbl9yZWZlcmVuY2UKKyMgICB1bmRlZiBCT09TVF9GVF90eXBlX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyCisKKyMgICB1bmRlZiBCT09TVF9GVF92YXJpYXRpb25zCisjICAgdW5kZWYgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjICAgdW5kZWYgQk9PU1RfRlRfY2NfZmlsZQorIyAgIHVuZGVmIEJPT1NUX0ZUX2FsX3BhdGgKKworI2VsaWYgZGVmaW5lZChCT09TVF9GVF9jY19maWxlKQorCisjICAgaW5jbHVkZSBCT09TVF9GVF9sb29wCisjICAgdW5kZWYgQk9PU1RfRlRfY2NfZmlsZQorCisjZWxzZQorCisjICAgZXJyb3IgImFyZ3VtZW50IG1pc3NpbmciCisKKyNlbmRpZgorCisjdW5kZWYgQk9PU1RfRlRfbG9vcAorCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2VuY29kaW5nL2FsaWFzZXNfdW5kZWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy91bmRlZi5ocHA+CisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9tYXN0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9tYXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMGYyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9yZXRhZ19kZWZhdWx0X2NjL21hc3Rlci5ocHAKQEAgLTAsMCArMSwxMDMgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBndWFyZGVkIGV4dGVybmFsbHkKKworI2lmZGVmIF9fV0FWRV9fCisvLyB0aGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGZyb20gdGhlIG1hc3Rlci5ocHAgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKKyMgICBwcmFnbWEgd2F2ZSBvcHRpb24ocHJlc2VydmU6IDApCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX1ZBTFVFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vc2VsZi5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvZGVmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvYWxpYXNlc19kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeworCituYW1lc3BhY2UgZGV0YWlsCit7CisgIHRlbXBsYXRlPGNsYXNzIFRhZywgY2xhc3MgUmVmVGFnPiBzdHJ1Y3Qgc2VsZWN0b3JfYml0cworICB7CisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBub25fbWVtYmVyfG1lbWJlcnxub25fdmFyaWFkaWN8dmFyaWFkaWMKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0FTU0lHTl9TTE9UKDEpCisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYml0c190LCB2YWx1ZSA9ICgKKyAgICAgICAgKDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHM8VGFnPjo6dmFsdWUgJiBCT09TVF9GVF9kZWZhdWx0X2NjKSAKKyAgICAgIHwgKDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHM8UmVmVGFnPjo6dmFsdWUgJiBCT09TVF9QUF9TTE9UKDEpKQorICAgICkpOworICB9OworCisgIHRlbXBsYXRlPGJpdHNfdCBTZWxlY3RvckJpdHM+IHN0cnVjdCBkZWZhdWx0X2NjX3RhZzsgCisgIAorICB0ZW1wbGF0ZTxjbGFzcyBUYWcsIGNsYXNzIFJlZlRhZz4gc3RydWN0IHJldGFnX2RlZmF1bHRfY2MKKyAgICA6IGRldGFpbDo6Y29tcG91bmRfdGFnCisgICAgICA8IFRhZywgZGV0YWlsOjpkZWZhdWx0X2NjX3RhZzwgCisgICAgICAgICAgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6c2VsZWN0b3JfYml0czxUYWcsUmVmVGFnPjo6dmFsdWUgPiA+CisgIHsgfTsKKworICB0ZW1wbGF0ZTxiaXRzX3QgU2VsZWN0b3JCaXRzPiBzdHJ1Y3QgZGVmYXVsdF9jY190YWcKKyAgeworICAgIHR5cGVkZWYgbnVsbF90YWc6OmJpdHMgYml0czsKKyAgICB0eXBlZGVmIG51bGxfdGFnOjptYXNrIG1hc2s7CisgIH07CisKKyAgY2xhc3MgdGVzdF9jbGFzczsKKyAgdHlwZWRlZiBjb25zdGFudDxCT09TVF9GVF9jY19tYXNrPiBjY19tYXNrX2NvbnN0YW50OworCisjICAgZGVmaW5lIEJPT1NUX0ZUX3NlbGYgXAorICAgICAgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9yZXRhZ19kZWZhdWx0X2NjL21hc3Rlci5ocHA+CisKKyMgICBkZWZpbmUgIGRlZmF1bHRfY2NfIEJPT1NUX0ZUX2RlZmF1bHRfY2MKKworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgZGVmYXVsdF9jY198bm9uX21lbWJlcnxub25fdmFyaWFkaWMKKyMgICBkZWZpbmUgIEJPT1NUX0ZUX3Rlc3RlciB2b2lkICgqdGVzdGVyKSgpCisjICAgZGVmaW5lICBCT09TVF9QUF9JTkRJUkVDVF9TRUxGIEJPT1NUX0ZUX3NlbGYKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lOQ0xVREVfU0VMRigpCisKKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIGRlZmF1bHRfY2NffG5vbl9tZW1iZXJ8dmFyaWFkaWMKKyMgICBkZWZpbmUgIEJPT1NUX0ZUX3Rlc3RlciB2b2lkICgqdGVzdGVyKSguLi4pCisjICAgZGVmaW5lICBCT09TVF9QUF9JTkRJUkVDVF9TRUxGIEJPT1NUX0ZUX3NlbGYKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lOQ0xVREVfU0VMRigpCisKKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIGRlZmF1bHRfY2NffG1lbWJlcnxub25fdmFyaWFkaWMKKyMgICBkZWZpbmUgIEJPT1NUX0ZUX3Rlc3RlciB2b2lkICh0ZXN0X2NsYXNzOjoqdGVzdGVyKSgpCisjICAgZGVmaW5lICBCT09TVF9QUF9JTkRJUkVDVF9TRUxGIEJPT1NUX0ZUX3NlbGYKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lOQ0xVREVfU0VMRigpCisKKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIGRlZmF1bHRfY2NffG1lbWJlcnx2YXJpYWRpYworIyAgIGRlZmluZSAgQk9PU1RfRlRfdGVzdGVyIHZvaWQgKHRlc3RfY2xhc3M6Oip0ZXN0ZXIpKC4uLikKKyMgICBkZWZpbmUgIEJPT1NUX1BQX0lORElSRUNUX1NFTEYgQk9PU1RfRlRfc2VsZgorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSU5DTFVERV9TRUxGKCkKKworIyAgIHVuZGVmICAgZGVmYXVsdF9jY18KKworIyAgIHVuZGVmIEJPT1NUX0ZUX3NlbGYKKworfSB9IH0gLy8gbmFtZXNwYWNlIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWwKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9hbGlhc2VzX3VuZGVmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvdW5kZWYuaHBwPgorCisjZWxzZSAvLyBpZiBkZWZpbmVkKEJPT1NUX1BQX1ZBTFVFKQorCisjICAgaW5jbHVkZSBCT09TVF9QUF9BU1NJR05fU0xPVCgxKQorCisgIHRlbXBsYXRlPD4gc3RydWN0IGRlZmF1bHRfY2NfdGFnPEJPT1NUX1BQX1NMT1QoMSk+IAorICB7CisgICAgdHlwZWRlZiBCT09TVF9GVF90ZXN0ZXI7CisgICAgdHlwZWRlZiBtcGw6OmJpdGFuZF88Y29tcG9uZW50czx0ZXN0ZXI+OjpiaXRzLGNjX21hc2tfY29uc3RhbnQ+IGJpdHM7CisgICAgdHlwZWRlZiBjY19tYXNrX2NvbnN0YW50IG1hc2s7CisgIH07CisKKyMgICB1bmRlZiBCT09TVF9GVF90ZXN0ZXIKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3JldGFnX2RlZmF1bHRfY2MvcHJlcHJvY2Vzc2VkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3JldGFnX2RlZmF1bHRfY2MvcHJlcHJvY2Vzc2VkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzBjN2FiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsNTkgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBndWFyZGVkIGV4dGVybmFsbHkKKworLy8gdGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBmcm9tIHRoZSBtYXN0ZXIuaHBwIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeworbmFtZXNwYWNlIGRldGFpbAorewordGVtcGxhdGU8Y2xhc3MgVGFnLCBjbGFzcyBSZWZUYWc+IHN0cnVjdCBzZWxlY3Rvcl9iaXRzCit7CitCT09TVF9TVEFUSUNfQ09OU1RBTlQoYml0c190LCB2YWx1ZSA9ICgKKyg6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpiaXRzPFRhZz4gOjp2YWx1ZSAmIDB4MDAwMDgwMDApIAorfCAoOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Yml0czxSZWZUYWc+IDo6dmFsdWUgJiA4MDIpCispKTsKK307Cit0ZW1wbGF0ZTxiaXRzX3QgU2VsZWN0b3JCaXRzPiBzdHJ1Y3QgZGVmYXVsdF9jY190YWc7IAordGVtcGxhdGU8Y2xhc3MgVGFnLCBjbGFzcyBSZWZUYWc+IHN0cnVjdCByZXRhZ19kZWZhdWx0X2NjCis6IGRldGFpbDo6Y29tcG91bmRfdGFnCis8IFRhZywgZGV0YWlsOjpkZWZhdWx0X2NjX3RhZzwgCis6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpzZWxlY3Rvcl9iaXRzPFRhZyxSZWZUYWc+IDo6dmFsdWUgPiA+Cit7IH07Cit0ZW1wbGF0ZTxiaXRzX3QgU2VsZWN0b3JCaXRzPiBzdHJ1Y3QgZGVmYXVsdF9jY190YWcKK3sKK3R5cGVkZWYgbnVsbF90YWc6OmJpdHMgYml0czsKK3R5cGVkZWYgbnVsbF90YWc6Om1hc2sgbWFzazsKK307CitjbGFzcyB0ZXN0X2NsYXNzOwordHlwZWRlZiBjb25zdGFudDwweDAwZmY4MDAwPiBjY19tYXNrX2NvbnN0YW50OwordGVtcGxhdGU8ID4gc3RydWN0IGRlZmF1bHRfY2NfdGFnPDMzMjgyPiAKK3sKK3R5cGVkZWYgdm9pZCAoICp0ZXN0ZXIpKCk7Cit0eXBlZGVmIG1wbDo6Yml0YW5kXzxjb21wb25lbnRzPHRlc3Rlcj4gOjpiaXRzLGNjX21hc2tfY29uc3RhbnQ+IGJpdHM7Cit0eXBlZGVmIGNjX21hc2tfY29uc3RhbnQgbWFzazsKK307Cit0ZW1wbGF0ZTwgPiBzdHJ1Y3QgZGVmYXVsdF9jY190YWc8MzMwMjY+IAorewordHlwZWRlZiB2b2lkICggKnRlc3RlcikoIC4uLiApOwordHlwZWRlZiBtcGw6OmJpdGFuZF88Y29tcG9uZW50czx0ZXN0ZXI+IDo6Yml0cyxjY19tYXNrX2NvbnN0YW50PiBiaXRzOwordHlwZWRlZiBjY19tYXNrX2NvbnN0YW50IG1hc2s7Cit9OwordGVtcGxhdGU8ID4gc3RydWN0IGRlZmF1bHRfY2NfdGFnPDMzMzEyPiAKK3sKK3R5cGVkZWYgdm9pZCAodGVzdF9jbGFzczo6ICp0ZXN0ZXIpKCk7Cit0eXBlZGVmIG1wbDo6Yml0YW5kXzxjb21wb25lbnRzPHRlc3Rlcj4gOjpiaXRzLGNjX21hc2tfY29uc3RhbnQ+IGJpdHM7Cit0eXBlZGVmIGNjX21hc2tfY29uc3RhbnQgbWFzazsKK307Cit0ZW1wbGF0ZTwgPiBzdHJ1Y3QgZGVmYXVsdF9jY190YWc8MzMwNTY+IAorewordHlwZWRlZiB2b2lkICh0ZXN0X2NsYXNzOjogKnRlc3RlcikoIC4uLiApOwordHlwZWRlZiBtcGw6OmJpdGFuZF88Y29tcG9uZW50czx0ZXN0ZXI+IDo6Yml0cyxjY19tYXNrX2NvbnN0YW50PiBiaXRzOwordHlwZWRlZiBjY19tYXNrX2NvbnN0YW50IG1hc2s7Cit9OworfSB9IH0gCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF90YWdzL2NjX3RhZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF90YWdzL2NjX3RhZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFmMWQ4OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3RhZ3MvY2NfdGFnLmhwcApAQCAtMCwwICsxLDE3IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMKKworICBzdHJ1Y3QgQk9PU1RfRlRfY2NfbmFtZQorICB7CisgICAgdHlwZWRlZiBkZXRhaWw6OmVuY29kZV9iaXRzPDAsQk9PU1RfRlRfY2NfaWQ+IGJpdHM7CisgICAgdHlwZWRlZiBkZXRhaWw6OmNvbnN0YW50PEJPT1NUX0ZUX2NjX21hc2s+IG1hc2s7CisgIH07CisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9tYXN0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9tYXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNDVlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF90YWdzL21hc3Rlci5ocHAKQEAgLTAsMCArMSwxMjYgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBndWFyZGVkIGV4dGVybmFsbHkKKworI2lmZGVmIF9fV0FWRV9fCisvLyB0aGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGZyb20gdGhlIG1hc3Rlci5ocHAgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKKyMgICBwcmFnbWEgd2F2ZSBvcHRpb24ocHJlc2VydmU6IDApCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX0ZUX1BSRVBST0NFU1NJTkdfTU9ERSkgfHwgZGVmaW5lZChCT09TVF9GVF9DT05GSUdfSFBQX0lOQ0xVREVEKQorIyAgIGVycm9yICJ0aGlzIGZpbGUgdXNlZCB3aXRoIHR3by1wYXNzIHByZXByb2Nlc3NpbmcsIG9ubHkiCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeworCit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPEJPT1NUX0ZUX25vbl92YXJpYWRpYyxCT09TVF9GVF92YXJpYWRpY19tYXNrPiBub25fdmFyaWFkaWM7Cit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPEJPT1NUX0ZUX3ZhcmlhZGljLEJPT1NUX0ZUX3ZhcmlhZGljX21hc2s+ICAgICB2YXJpYWRpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPDAsQk9PU1RfRlRfY29uc3Q+ICAgICAgICAgICAgICAgICAgICAgbm9uX2NvbnN0OwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzxCT09TVF9GVF9jb25zdCxCT09TVF9GVF9jb25zdD4gICAgICAgIGNvbnN0X3F1YWxpZmllZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPDAsQk9PU1RfRlRfdm9sYXRpbGU+ICAgICAgICAgICAgICAgICAgbm9uX3ZvbGF0aWxlOwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzxCT09TVF9GVF92b2xhdGlsZSxCT09TVF9GVF92b2xhdGlsZT4gIHZvbGF0aWxlX3F1YWxpZmllZDsgCisKK3R5cGVkZWYgZGV0YWlsOjpwcm9wZXJ0eV90YWc8Qk9PU1RfRlRfZGVmYXVsdF9jYyxCT09TVF9GVF9jY19tYXNrPiBkZWZhdWx0X2NjOworCisjZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX0ZUX2NvbnN0fEJPT1NUX0ZUX3ZvbGF0aWxlIAorI2luY2x1ZGUgQk9PU1RfUFBfQVNTSUdOX1NMT1QoMSkKKwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzwwICAgICAgICAgICAgICAgICwgQk9PU1RfUFBfU0xPVCgxKT4gbm9uX2N2OwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzxCT09TVF9GVF9jb25zdCAgICwgQk9PU1RfUFBfU0xPVCgxKT4gY29uc3Rfbm9uX3ZvbGF0aWxlOwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzxCT09TVF9GVF92b2xhdGlsZSwgQk9PU1RfUFBfU0xPVCgxKT4gdm9sYXRpbGVfbm9uX2NvbnN0OwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzxCT09TVF9QUF9TTE9UKDEpICwgQk9PU1RfUFBfU0xPVCgxKT4gY3ZfcXVhbGlmaWVkOworCituYW1lc3BhY2UgZGV0YWlsIHsKKworICB0eXBlZGVmIGNvbnN0YW50PEJPT1NUX0ZUX2Z1bGxfbWFzaz4gZnVsbF9tYXNrOworCisgIHRlbXBsYXRlIDxiaXRzX3QgRmxhZ3MsIGJpdHNfdCBDQ0lEPiBzdHJ1Y3QgZW5jb2RlX2JpdHNfaW1wbAorICB7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKCBiaXRzX3QsIHZhbHVlID0gCisgICAgICBGbGFncyB8IChCT09TVF9GVF9kZWZhdWx0X2NjICogQ0NJRCkgPDwgMSApOworICB9OworCisgIHRlbXBsYXRlIDxiaXRzX3QgRmxhZ3MsIGJpdHNfdCBDQ0lELCBzdGQ6OnNpemVfdCBBcml0eT4gCisgIHN0cnVjdCBlbmNvZGVfY2hhcnJfaW1wbAorICB7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IChzdGQ6OnNpemVfdCkoMSsKKyAgICAgIEZsYWdzIHwgKEJPT1NUX0ZUX2RlZmF1bHRfY2MgKiBDQ0lEKSA8PCAxIHwgQXJpdHkgPDwgQk9PU1RfRlRfYXJpdHlfc2hpZnQKKyAgICApKTsKKyAgfTsKKworICB0ZW1wbGF0ZSA8Yml0c190IEJpdHM+IHN0cnVjdCBkZWNvZGVfYml0cworICB7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJpdHNfdCwgZmxhZ3MgPSBCaXRzICYgQk9PU1RfRlRfZmxhZ3NfbWFzayk7CisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYml0c190LCBjY19pZCA9IAorICAgICAgKCAoQml0cyAmIEJPT1NUX0ZUX2Z1bGxfbWFzaykgLyBCT09TVF9GVF9kZWZhdWx0X2NjKSA+PiAxIAorICAgICk7CisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYml0c190LCB0YWdfYml0cyA9IChCaXRzICYgQk9PU1RfRlRfZnVsbF9tYXNrKSk7CisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIGFyaXR5ID0gKHN0ZDo6c2l6ZV90KQorICAgICAgKEJpdHMgPj4gQk9PU1RfRlRfYXJpdHlfc2hpZnQpIAorICAgICk7CisgIH07CisKKyAgdGVtcGxhdGUgPGJpdHNfdCBMSFNfYml0cywgYml0c190IExIU19tYXNrLCBiaXRzX3QgUkhTX2JpdHMsIGJpdHNfdCBSSFNfbWFzaz4KKyAgc3RydWN0IHRhZ19pY2UKKyAgeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBtYXRjaCA9CisgICAgICBSSFNfYml0cyA9PSAoTEhTX2JpdHMgJiBSSFNfbWFzayAmIChSSFNfYml0cyB8fkJPT1NUX0ZUX3R5cGVfbWFzaykpCisgICAgKTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChiaXRzX3QsIGNvbWJpbmVkX2JpdHMgPSAKKyAgICAgIChMSFNfYml0cyAmIH5SSFNfbWFzaykgfCBSSFNfYml0cworICAgICk7CisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYml0c190LCBjb21iaW5lZF9tYXNrID0KKyAgICAgIExIU19tYXNrIHwgUkhTX21hc2sKKyAgICApOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJpdHNfdCwgZXh0cmFjdGVkX2JpdHMgPQorICAgICAgTEhTX2JpdHMgJiBSSFNfbWFzaworICAgICk7CisKKyAgfTsKKworI2RlZmluZSBCT09TVF9GVF9tYXNrIEJPT1NUX0ZUX3R5cGVfbWFzaworICB0eXBlZGVmIHByb3BlcnR5X3RhZzxCT09TVF9GVF9jYWxsYWJsZV9idWlsdGluLEJPT1NUX0ZUX21hc2s+ICAgICAgICAgICAgY2FsbGFibGVfYnVpbHRpbl90YWc7CisgIHR5cGVkZWYgcHJvcGVydHlfdGFnPEJPT1NUX0ZUX25vbl9tZW1iZXJfY2FsbGFibGVfYnVpbHRpbixCT09TVF9GVF9tYXNrPiBub25tZW1iZXJfY2FsbGFibGVfYnVpbHRpbl90YWc7CisgIHR5cGVkZWYgcHJvcGVydHlfdGFnPEJPT1NUX0ZUX2Z1bmN0aW9uLEJPT1NUX0ZUX21hc2s+ICAgICAgIGZ1bmN0aW9uX3RhZzsKKyAgdHlwZWRlZiBwcm9wZXJ0eV90YWc8Qk9PU1RfRlRfcmVmZXJlbmNlLEJPT1NUX0ZUX21hc2s+ICAgICAgcmVmZXJlbmNlX3RhZzsKKyAgdHlwZWRlZiBwcm9wZXJ0eV90YWc8Qk9PU1RfRlRfcG9pbnRlcixCT09TVF9GVF9tYXNrPiAgICAgICAgcG9pbnRlcl90YWc7CisgIHR5cGVkZWYgcHJvcGVydHlfdGFnPEJPT1NUX0ZUX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLEJPT1NUX0ZUX21hc2s+IG1lbWJlcl9mdW5jdGlvbl9wb2ludGVyX3RhZzsKKyAgdHlwZWRlZiBwcm9wZXJ0eV90YWc8Qk9PU1RfRlRfbWVtYmVyX29iamVjdF9wb2ludGVyLEJPT1NUX0ZUX21hc2s+IG1lbWJlcl9vYmplY3RfcG9pbnRlcl90YWc7CisgIHR5cGVkZWYgcHJvcGVydHlfdGFnPEJPT1NUX0ZUX21lbWJlcl9vYmplY3RfcG9pbnRlcl9mbGFncyxCT09TVF9GVF9mdWxsX21hc2s+IG1lbWJlcl9vYmplY3RfcG9pbnRlcl9iYXNlOworICB0eXBlZGVmIHByb3BlcnR5X3RhZzxCT09TVF9GVF9tZW1iZXJfcG9pbnRlcixCT09TVF9GVF9tYXNrPiBtZW1iZXJfcG9pbnRlcl90YWc7CisjdW5kZWYgIEJPT1NUX0ZUX21hc2sgCisKKyNkZWZpbmUgQk9PU1RfUFBfVkFMVUUgQk9PU1RfRlRfZnVuY3Rpb258Qk9PU1RfRlRfbm9uX3ZhcmlhZGljfEJPT1NUX0ZUX2RlZmF1bHRfY2MKKyNpbmNsdWRlIEJPT1NUX1BQX0FTU0lHTl9TTE9UKDEpCisjZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX0ZUX3R5cGVfbWFza3xCT09TVF9GVF92YXJpYWRpY19tYXNrfEJPT1NUX0ZUX2NjX21hc2sKKyNpbmNsdWRlIEJPT1NUX1BQX0FTU0lHTl9TTE9UKDIpCisKKyAgdHlwZWRlZiBwcm9wZXJ0eV90YWc8IEJPT1NUX1BQX1NMT1QoMSkgLCBCT09TVF9QUF9TTE9UKDIpID4gbnZfZGNjX2Z1bmM7CisKKyNkZWZpbmUgQk9PU1RfUFBfVkFMVUUgXAorICAgIEJPT1NUX0ZUX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyfEJPT1NUX0ZUX25vbl92YXJpYWRpY3xCT09TVF9GVF9kZWZhdWx0X2NjCisjaW5jbHVkZSBCT09TVF9QUF9BU1NJR05fU0xPVCgxKQorCisgIHR5cGVkZWYgcHJvcGVydHlfdGFnPCBCT09TVF9QUF9TTE9UKDEpICwgQk9PU1RfUFBfU0xPVCgyKSA+IG52X2RjY19tZnA7CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IH0gLy8gbmFtZXNwYWNlIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3RhZ3MvcHJlcHJvY2Vzc2VkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3RhZ3MvcHJlcHJvY2Vzc2VkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWExYzM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsNzcgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBndWFyZGVkIGV4dGVybmFsbHkKKworLy8gdGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBmcm9tIHRoZSBtYXN0ZXIuaHBwIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgewordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzwweDAwMDAwMjAwLDB4MDAwMDAzMDA+IG5vbl92YXJpYWRpYzsKK3R5cGVkZWYgZGV0YWlsOjpwcm9wZXJ0eV90YWc8MHgwMDAwMDEwMCwweDAwMDAwMzAwPiB2YXJpYWRpYzsKK3R5cGVkZWYgZGV0YWlsOjpwcm9wZXJ0eV90YWc8MCwweDAwMDAwNDAwPiBub25fY29uc3Q7Cit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPDB4MDAwMDA0MDAsMHgwMDAwMDQwMD4gY29uc3RfcXVhbGlmaWVkOwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzwwLDB4MDAwMDA4MDA+IG5vbl92b2xhdGlsZTsKK3R5cGVkZWYgZGV0YWlsOjpwcm9wZXJ0eV90YWc8MHgwMDAwMDgwMCwweDAwMDAwODAwPiB2b2xhdGlsZV9xdWFsaWZpZWQ7IAordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzwweDAwMDA4MDAwLDB4MDBmZjgwMDA+IGRlZmF1bHRfY2M7Cit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPDAgLCAzMDcyPiBub25fY3Y7Cit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPDB4MDAwMDA0MDAgLCAzMDcyPiBjb25zdF9ub25fdm9sYXRpbGU7Cit0eXBlZGVmIGRldGFpbDo6cHJvcGVydHlfdGFnPDB4MDAwMDA4MDAsIDMwNzI+IHZvbGF0aWxlX25vbl9jb25zdDsKK3R5cGVkZWYgZGV0YWlsOjpwcm9wZXJ0eV90YWc8MzA3MiAsIDMwNzI+IGN2X3F1YWxpZmllZDsKK25hbWVzcGFjZSBkZXRhaWwgewordHlwZWRlZiBjb25zdGFudDwweDAwZmYwZmZmPiBmdWxsX21hc2s7Cit0ZW1wbGF0ZSA8Yml0c190IEZsYWdzLCBiaXRzX3QgQ0NJRD4gc3RydWN0IGVuY29kZV9iaXRzX2ltcGwKK3sKK0JPT1NUX1NUQVRJQ19DT05TVEFOVCggYml0c190LCB2YWx1ZSA9IAorRmxhZ3MgfCAoMHgwMDAwODAwMCAqIENDSUQpIDw8IDEgKTsKK307Cit0ZW1wbGF0ZSA8Yml0c190IEZsYWdzLCBiaXRzX3QgQ0NJRCwgc3RkOjpzaXplX3QgQXJpdHk+IAorc3RydWN0IGVuY29kZV9jaGFycl9pbXBsCit7CitCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gKHN0ZDo6c2l6ZV90KSgxKworRmxhZ3MgfCAoMHgwMDAwODAwMCAqIENDSUQpIDw8IDEgfCBBcml0eSA8PCAyNAorKSk7Cit9OwordGVtcGxhdGUgPGJpdHNfdCBCaXRzPiBzdHJ1Y3QgZGVjb2RlX2JpdHMKK3sKK0JPT1NUX1NUQVRJQ19DT05TVEFOVChiaXRzX3QsIGZsYWdzID0gQml0cyAmIDB4MDAwMDBmZmYpOworQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJpdHNfdCwgY2NfaWQgPSAKKyggKEJpdHMgJiAweDAwZmYwZmZmKSAvIDB4MDAwMDgwMDApID4+IDEgCispOworQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJpdHNfdCwgdGFnX2JpdHMgPSAoQml0cyAmIDB4MDBmZjBmZmYpKTsKK0JPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgYXJpdHkgPSAoc3RkOjpzaXplX3QpCisoQml0cyA+PiAyNCkgCispOworfTsKK3RlbXBsYXRlIDxiaXRzX3QgTEhTX2JpdHMsIGJpdHNfdCBMSFNfbWFzaywgYml0c190IFJIU19iaXRzLCBiaXRzX3QgUkhTX21hc2s+CitzdHJ1Y3QgdGFnX2ljZQoreworQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIG1hdGNoID0KK1JIU19iaXRzID09IChMSFNfYml0cyAmIFJIU19tYXNrICYgKFJIU19iaXRzIHwgfjB4MDAwMDAwZmYpKQorKTsKK0JPT1NUX1NUQVRJQ19DT05TVEFOVChiaXRzX3QsIGNvbWJpbmVkX2JpdHMgPSAKKyhMSFNfYml0cyAmIH5SSFNfbWFzaykgfCBSSFNfYml0cworKTsKK0JPT1NUX1NUQVRJQ19DT05TVEFOVChiaXRzX3QsIGNvbWJpbmVkX21hc2sgPQorTEhTX21hc2sgfCBSSFNfbWFzaworKTsKK0JPT1NUX1NUQVRJQ19DT05TVEFOVChiaXRzX3QsIGV4dHJhY3RlZF9iaXRzID0KK0xIU19iaXRzICYgUkhTX21hc2sKKyk7Cit9OwordHlwZWRlZiBwcm9wZXJ0eV90YWc8MHgwMDAwMDAwMSwweDAwMDAwMGZmPiBjYWxsYWJsZV9idWlsdGluX3RhZzsKK3R5cGVkZWYgcHJvcGVydHlfdGFnPDB4MDAwMDAwMDMsMHgwMDAwMDBmZj4gbm9ubWVtYmVyX2NhbGxhYmxlX2J1aWx0aW5fdGFnOwordHlwZWRlZiBwcm9wZXJ0eV90YWc8MHgwMDAwMDAwNywweDAwMDAwMGZmPiBmdW5jdGlvbl90YWc7Cit0eXBlZGVmIHByb3BlcnR5X3RhZzwweDAwMDAwMDEzLDB4MDAwMDAwZmY+IHJlZmVyZW5jZV90YWc7Cit0eXBlZGVmIHByb3BlcnR5X3RhZzwweDAwMDAwMDBiLDB4MDAwMDAwZmY+IHBvaW50ZXJfdGFnOwordHlwZWRlZiBwcm9wZXJ0eV90YWc8MHgwMDAwMDA2MSwweDAwMDAwMGZmPiBtZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl90YWc7Cit0eXBlZGVmIHByb3BlcnR5X3RhZzwweDAwMDAwMGEzLDB4MDAwMDAwZmY+IG1lbWJlcl9vYmplY3RfcG9pbnRlcl90YWc7Cit0eXBlZGVmIHByb3BlcnR5X3RhZzwweDAwMDAwMmEzLDB4MDBmZjBmZmY+IG1lbWJlcl9vYmplY3RfcG9pbnRlcl9iYXNlOwordHlwZWRlZiBwcm9wZXJ0eV90YWc8MHgwMDAwMDAyMCwweDAwMDAwMGZmPiBtZW1iZXJfcG9pbnRlcl90YWc7Cit0eXBlZGVmIHByb3BlcnR5X3RhZzwgMzMyODcgLCAxNjc0NTQ3MSA+IG52X2RjY19mdW5jOwordHlwZWRlZiBwcm9wZXJ0eV90YWc8IDMzMzc3ICwgMTY3NDU0NzEgPiBudl9kY2NfbWZwOworfSAKK30gfSAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9tYXN0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdmFyaWF0ZV9sb29wL21hc3Rlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ1MjAxOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9tYXN0ZXIuaHBwCkBAIC0wLDAgKzEsMTUyIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZmRlZiBfX1dBVkVfXworLy8gdGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBmcm9tIHRoZSBtYXN0ZXIuaHBwIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CisjICAgcHJhZ21hIHdhdmUgb3B0aW9uKHByZXNlcnZlOiAwKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9GVF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgZXJyb3IgInRoaXMgZmlsZSBpcyBvbmx5IGZvciB0d28tcGFzcyBwcmVwcm9jZXNzaW5nIgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9WQUxVRSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZXhwYW5kLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvZW5jb2RpbmcvZGVmLmhwcD4KKworQk9PU1RfUFBfRVhQQU5EKCMpIGRlZmluZSBCT09TVF9GVF9tZnAgMAorQk9PU1RfUFBfRVhQQU5EKCMpIGRlZmluZSBCT09TVF9GVF9zeW50YXggQk9PU1RfRlRfdHlwZV9mdW5jdGlvbgorCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9mdW5jdGlvbnxCT09TVF9GVF9ub25fdmFyaWFkaWMKKyMgICBpbmNsdWRlIF9fRklMRV9fCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9mdW5jdGlvbnxCT09TVF9GVF92YXJpYWRpYworIyAgIGluY2x1ZGUgX19GSUxFX18KKworQk9PU1RfUFBfRVhQQU5EKCMpIGlmICFCT09TVF9GVF9OT19DVl9GVU5DX1NVUFBPUlQKKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIFwKKyAgICAgIEJPT1NUX0ZUX2Z1bmN0aW9ufEJPT1NUX0ZUX25vbl92YXJpYWRpY3xCT09TVF9GVF9jb25zdAorIyAgIGluY2x1ZGUgX19GSUxFX18KKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIFwKKyAgICAgIEJPT1NUX0ZUX2Z1bmN0aW9ufEJPT1NUX0ZUX3ZhcmlhZGljfEJPT1NUX0ZUX2NvbnN0CisjICAgaW5jbHVkZSBfX0ZJTEVfXworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgXAorICAgICAgQk9PU1RfRlRfZnVuY3Rpb258Qk9PU1RfRlRfbm9uX3ZhcmlhZGljfEJPT1NUX0ZUX3ZvbGF0aWxlCisjICAgaW5jbHVkZSBfX0ZJTEVfXworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgXAorICAgICAgQk9PU1RfRlRfZnVuY3Rpb258Qk9PU1RfRlRfdmFyaWFkaWN8Qk9PU1RfRlRfdm9sYXRpbGUKKyMgICBpbmNsdWRlIF9fRklMRV9fCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9mdW5jdGlvbnxCT09TVF9GVF9ub25fdmFyaWFkaWN8Qk9PU1RfRlRfY29uc3R8Qk9PU1RfRlRfdm9sYXRpbGUKKyMgICBpbmNsdWRlIF9fRklMRV9fCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9mdW5jdGlvbnxCT09TVF9GVF92YXJpYWRpY3xCT09TVF9GVF9jb25zdHxCT09TVF9GVF92b2xhdGlsZQorIyAgIGluY2x1ZGUgX19GSUxFX18KK0JPT1NUX1BQX0VYUEFORCgjKSBlbmRpZgorCisKK0JPT1NUX1BQX0VYUEFORCgjKSB1bmRlZiAgQk9PU1RfRlRfc3ludGF4CitCT09TVF9QUF9FWFBBTkQoIykgZGVmaW5lIEJPT1NUX0ZUX3N5bnRheCBCT09TVF9GVF90eXBlX2Z1bmN0aW9uX3BvaW50ZXIKKworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgXAorICAgICAgQk9PU1RfRlRfcG9pbnRlcnxCT09TVF9GVF9ub25fdmFyaWFkaWMKKyMgICBpbmNsdWRlIF9fRklMRV9fCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9wb2ludGVyfEJPT1NUX0ZUX3ZhcmlhZGljCisjICAgaW5jbHVkZSBfX0ZJTEVfXworCitCT09TVF9QUF9FWFBBTkQoIykgdW5kZWYgIEJPT1NUX0ZUX3N5bnRheAorQk9PU1RfUFBfRVhQQU5EKCMpIGRlZmluZSBCT09TVF9GVF9zeW50YXggQk9PU1RfRlRfdHlwZV9mdW5jdGlvbl9yZWZlcmVuY2UKKworIyAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9yZWZlcmVuY2V8Qk9PU1RfRlRfbm9uX3ZhcmlhZGljCisjICAgaW5jbHVkZSBfX0ZJTEVfXworIyAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9yZWZlcmVuY2V8Qk9PU1RfRlRfdmFyaWFkaWMKKyMgICBpbmNsdWRlIF9fRklMRV9fCisKK0JPT1NUX1BQX0VYUEFORCgjKSB1bmRlZiAgQk9PU1RfRlRfc3ludGF4CitCT09TVF9QUF9FWFBBTkQoIykgdW5kZWYgIEJPT1NUX0ZUX21mcAorCitCT09TVF9QUF9FWFBBTkQoIykgZGVmaW5lIEJPT1NUX0ZUX21mcCAxCitCT09TVF9QUF9FWFBBTkQoIykgZGVmaW5lIEJPT1NUX0ZUX3N5bnRheCBCT09TVF9GVF90eXBlX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyCisKKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIFwKKyAgICAgIEJPT1NUX0ZUX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyfEJPT1NUX0ZUX25vbl92YXJpYWRpYworIyAgIGluY2x1ZGUgX19GSUxFX18KKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIFwKKyAgICAgIEJPT1NUX0ZUX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyfEJPT1NUX0ZUX3ZhcmlhZGljCisjICAgaW5jbHVkZSBfX0ZJTEVfXworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgXAorICAgICAgQk9PU1RfRlRfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJ8Qk9PU1RfRlRfbm9uX3ZhcmlhZGljfEJPT1NUX0ZUX2NvbnN0CisjICAgaW5jbHVkZSBfX0ZJTEVfXworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgXAorICAgICAgQk9PU1RfRlRfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJ8Qk9PU1RfRlRfdmFyaWFkaWN8Qk9PU1RfRlRfY29uc3QKKyMgICBpbmNsdWRlIF9fRklMRV9fCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcnxCT09TVF9GVF9ub25fdmFyaWFkaWN8Qk9PU1RfRlRfdm9sYXRpbGUKKyMgICBpbmNsdWRlIF9fRklMRV9fCisjICAgZGVmaW5lICBCT09TVF9QUF9WQUxVRSBcCisgICAgICBCT09TVF9GVF9tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcnxCT09TVF9GVF92YXJpYWRpY3xCT09TVF9GVF92b2xhdGlsZQorIyAgIGluY2x1ZGUgX19GSUxFX18KKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIFwKKyAgICAgIEJPT1NUX0ZUX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyfEJPT1NUX0ZUX25vbl92YXJpYWRpY3xCT09TVF9GVF9jb25zdHxCT09TVF9GVF92b2xhdGlsZQorIyAgIGluY2x1ZGUgX19GSUxFX18KKyMgICBkZWZpbmUgIEJPT1NUX1BQX1ZBTFVFIFwKKyAgICAgIEJPT1NUX0ZUX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyfEJPT1NUX0ZUX3ZhcmlhZGljfEJPT1NUX0ZUX2NvbnN0fEJPT1NUX0ZUX3ZvbGF0aWxlCisjICAgaW5jbHVkZSBfX0ZJTEVfXworCitCT09TVF9QUF9FWFBBTkQoIykgdW5kZWYgIEJPT1NUX0ZUX3N5bnRheAorQk9PU1RfUFBfRVhQQU5EKCMpIHVuZGVmICBCT09TVF9GVF9tZnAKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9lbmNvZGluZy91bmRlZi5ocHA+CisjZWxzZSAKKworIyAgIGluY2x1ZGUgQk9PU1RfUFBfQVNTSUdOX1NMT1QoMSkKKworIyAgIGRlZmluZSAgQk9PU1RfUFBfVkFMVUUgQk9PU1RfUFBfU0xPVCgxKSAmIEJPT1NUX0ZUX2tpbmRfbWFzaworIyAgIGluY2x1ZGUgQk9PU1RfUFBfQVNTSUdOX1NMT1QoMikKKworQk9PU1RfUFBfRVhQQU5EKCMpIGlmICEhKEJPT1NUX1BQX1NMT1QoMikgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCitCT09TVF9QUF9FWFBBTkQoIykgaWYgKEJPT1NUX1BQX1NMT1QoMSkgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorCisjICAgaWYgKCBCT09TVF9QUF9TTE9UKDEpICYgKEJPT1NUX0ZUX3ZhcmlhZGljKSApCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfZWxsIC4uLgorQk9PU1RfUFBfRVhQQU5EKCMpICAgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgICBlbHNlCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfZWxsCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbSBCT09TVF9GVF9OVUxMQVJZX1BBUkFNCisjICAgZW5kaWYKKworIyAgIGlmICEoIEJPT1NUX1BQX1NMT1QoMSkgJiAoQk9PU1RfRlRfdm9sYXRpbGUpICkKKyMgICAgIGlmICEoIEJPT1NUX1BQX1NMT1QoMSkgJiAoQk9PU1RfRlRfY29uc3QpICkKK0JPT1NUX1BQX0VYUEFORCgjKSAgIGRlZmluZSBCT09TVF9GVF9jdiAKKyMgICAgIGVsc2UKK0JPT1NUX1BQX0VYUEFORCgjKSAgIGRlZmluZSBCT09TVF9GVF9jdiBjb25zdAorIyAgICAgZW5kaWYKKyMgICBlbHNlCisjICAgICBpZiAhKCBCT09TVF9QUF9TTE9UKDEpICYgKEJPT1NUX0ZUX2NvbnN0KSApCitCT09TVF9QUF9FWFBBTkQoIykgICBkZWZpbmUgQk9PU1RfRlRfY3Ygdm9sYXRpbGUKKyMgICAgIGVsc2UKK0JPT1NUX1BQX0VYUEFORCgjKSAgIGRlZmluZSBCT09TVF9GVF9jdiBjb25zdCB2b2xhdGlsZQorIyAgICAgZW5kaWYKKyMgICBlbmRpZgorQk9PU1RfUFBfRVhQQU5EKCMpICAgZGVmaW5lIEJPT1NUX0ZUX2ZsYWdzIEJPT1NUX1BQX1NMT1QoMSkKK0JPT1NUX1BQX0VYUEFORCgjKSAgIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisKK0JPT1NUX1BQX0VYUEFORCgjKSAgIHVuZGVmIEJPT1NUX0ZUX2N2CitCT09TVF9QUF9FWFBBTkQoIykgICB1bmRlZiBCT09TVF9GVF9lbGwKK0JPT1NUX1BQX0VYUEFORCgjKSAgIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KK0JPT1NUX1BQX0VYUEFORCgjKSAgIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCitCT09TVF9QUF9FWFBBTkQoIykgZW5kaWYKK0JPT1NUX1BQX0VYUEFORCgjKSBlbmRpZgorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9wcmVwcm9jZXNzZWQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdmFyaWF0ZV9sb29wL3ByZXByb2Nlc3NlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U3YzRmOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3BwX3ZhcmlhdGVfbG9vcC9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsMjgzIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIHRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgZnJvbSB0aGUgbWFzdGVyLmhwcCBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeQorIyBkZWZpbmUgQk9PU1RfRlRfbWZwIDAKKyMgZGVmaW5lIEJPT1NUX0ZUX3N5bnRheCBCT09TVF9GVF90eXBlX2Z1bmN0aW9uCisjIGlmICEgISAoNCAmIChCT09TVF9GVF92YXJpYXRpb25zKSkKKyMgaWYgKDUxOSAmIChCT09TVF9GVF9jb25kKSkgPT0gKEJPT1NUX0ZUX2NvbmQpCisjIGRlZmluZSBCT09TVF9GVF9lbGwKKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0gQk9PU1RfRlRfTlVMTEFSWV9QQVJBTQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgCisjIGRlZmluZSBCT09TVF9GVF9mbGFncyA1MTkKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgaWYgISAhICg0ICYgKEJPT1NUX0ZUX3ZhcmlhdGlvbnMpKQorIyBpZiAoMjYzICYgKEJPT1NUX0ZUX2NvbmQpKSA9PSAoQk9PU1RfRlRfY29uZCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2VsbCAuLi4KKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IAorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgMjYzCisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICFCT09TVF9GVF9OT19DVl9GVU5DX1NVUFBPUlQKKyMgaWYgISAhICg0ICYgKEJPT1NUX0ZUX3ZhcmlhdGlvbnMpKQorIyBpZiAoMTU0MyAmIChCT09TVF9GVF9jb25kKSkgPT0gKEJPT1NUX0ZUX2NvbmQpCisjIGRlZmluZSBCT09TVF9GVF9lbGwKKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0gQk9PU1RfRlRfTlVMTEFSWV9QQVJBTQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgY29uc3QKKyMgZGVmaW5lIEJPT1NUX0ZUX2ZsYWdzIDE1NDMKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgaWYgISAhICg0ICYgKEJPT1NUX0ZUX3ZhcmlhdGlvbnMpKQorIyBpZiAoMTI4NyAmIChCT09TVF9GVF9jb25kKSkgPT0gKEJPT1NUX0ZUX2NvbmQpCisjIGRlZmluZSBCT09TVF9GVF9lbGwgLi4uCisjIGRlZmluZSBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIGRlZmluZSBCT09TVF9GVF9jdiBjb25zdAorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgMTI4NworIyBpbmNsdWRlIEJPT1NUX0ZUX3ZhcmlhdGVfZmlsZQorIyB1bmRlZiBCT09TVF9GVF9jdgorIyB1bmRlZiBCT09TVF9GVF9lbGwKKyMgdW5kZWYgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyB1bmRlZiBCT09TVF9GVF9mbGFncworIyBlbmRpZgorIyBlbmRpZgorIyBpZiAhICEgKDQgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICgyNTY3ICYgKEJPT1NUX0ZUX2NvbmQpKSA9PSAoQk9PU1RfRlRfY29uZCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2VsbAorIyBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbSBCT09TVF9GVF9OVUxMQVJZX1BBUkFNCisjIGRlZmluZSBCT09TVF9GVF9jdiB2b2xhdGlsZQorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgMjU2NworIyBpbmNsdWRlIEJPT1NUX0ZUX3ZhcmlhdGVfZmlsZQorIyB1bmRlZiBCT09TVF9GVF9jdgorIyB1bmRlZiBCT09TVF9GVF9lbGwKKyMgdW5kZWYgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyB1bmRlZiBCT09TVF9GVF9mbGFncworIyBlbmRpZgorIyBlbmRpZgorIyBpZiAhICEgKDQgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICgyMzExICYgKEJPT1NUX0ZUX2NvbmQpKSA9PSAoQk9PU1RfRlRfY29uZCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2VsbCAuLi4KKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IHZvbGF0aWxlCisjIGRlZmluZSBCT09TVF9GVF9mbGFncyAyMzExCisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICEgISAoNCAmIChCT09TVF9GVF92YXJpYXRpb25zKSkKKyMgaWYgKDM1OTEgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsCisjIGRlZmluZSBCT09TVF9GVF9udWxsYXJ5X3BhcmFtIEJPT1NUX0ZUX05VTExBUllfUEFSQU0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IGNvbnN0IHZvbGF0aWxlCisjIGRlZmluZSBCT09TVF9GVF9mbGFncyAzNTkxCisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICEgISAoNCAmIChCT09TVF9GVF92YXJpYXRpb25zKSkKKyMgaWYgKDMzMzUgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsIC4uLgorIyBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgY29uc3Qgdm9sYXRpbGUKKyMgZGVmaW5lIEJPT1NUX0ZUX2ZsYWdzIDMzMzUKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgZW5kaWYKKyMgdW5kZWYgQk9PU1RfRlRfc3ludGF4CisjIGRlZmluZSBCT09TVF9GVF9zeW50YXggQk9PU1RfRlRfdHlwZV9mdW5jdGlvbl9wb2ludGVyCisjIGlmICEgISAoOCAmIChCT09TVF9GVF92YXJpYXRpb25zKSkKKyMgaWYgKDUyMyAmIChCT09TVF9GVF9jb25kKSkgPT0gKEJPT1NUX0ZUX2NvbmQpCisjIGRlZmluZSBCT09TVF9GVF9lbGwKKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0gQk9PU1RfRlRfTlVMTEFSWV9QQVJBTQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgCisjIGRlZmluZSBCT09TVF9GVF9mbGFncyA1MjMKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgaWYgISAhICg4ICYgKEJPT1NUX0ZUX3ZhcmlhdGlvbnMpKQorIyBpZiAoMjY3ICYgKEJPT1NUX0ZUX2NvbmQpKSA9PSAoQk9PU1RfRlRfY29uZCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2VsbCAuLi4KKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IAorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgMjY3CisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIHVuZGVmIEJPT1NUX0ZUX3N5bnRheAorIyBkZWZpbmUgQk9PU1RfRlRfc3ludGF4IEJPT1NUX0ZUX3R5cGVfZnVuY3Rpb25fcmVmZXJlbmNlCisjIGlmICEgISAoMTYgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICg1MzEgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsCisjIGRlZmluZSBCT09TVF9GVF9udWxsYXJ5X3BhcmFtIEJPT1NUX0ZUX05VTExBUllfUEFSQU0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IAorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgNTMxCisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICEgISAoMTYgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICgyNzUgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsIC4uLgorIyBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgCisjIGRlZmluZSBCT09TVF9GVF9mbGFncyAyNzUKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgdW5kZWYgQk9PU1RfRlRfc3ludGF4CisjIHVuZGVmIEJPT1NUX0ZUX21mcAorIyBkZWZpbmUgQk9PU1RfRlRfbWZwIDEKKyMgZGVmaW5lIEJPT1NUX0ZUX3N5bnRheCBCT09TVF9GVF90eXBlX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyCisjIGlmICEgISAoOTYgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICg2MDkgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsCisjIGRlZmluZSBCT09TVF9GVF9udWxsYXJ5X3BhcmFtIEJPT1NUX0ZUX05VTExBUllfUEFSQU0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IAorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgNjA5CisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICEgISAoOTYgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICgzNTMgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsIC4uLgorIyBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgCisjIGRlZmluZSBCT09TVF9GVF9mbGFncyAzNTMKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgaWYgISAhICg5NiAmIChCT09TVF9GVF92YXJpYXRpb25zKSkKKyMgaWYgKDE2MzMgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsCisjIGRlZmluZSBCT09TVF9GVF9udWxsYXJ5X3BhcmFtIEJPT1NUX0ZUX05VTExBUllfUEFSQU0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IGNvbnN0CisjIGRlZmluZSBCT09TVF9GVF9mbGFncyAxNjMzCisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICEgISAoOTYgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICgxMzc3ICYgKEJPT1NUX0ZUX2NvbmQpKSA9PSAoQk9PU1RfRlRfY29uZCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2VsbCAuLi4KKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgZGVmaW5lIEJPT1NUX0ZUX2N2IGNvbnN0CisjIGRlZmluZSBCT09TVF9GVF9mbGFncyAxMzc3CisjIGluY2x1ZGUgQk9PU1RfRlRfdmFyaWF0ZV9maWxlCisjIHVuZGVmIEJPT1NUX0ZUX2N2CisjIHVuZGVmIEJPT1NUX0ZUX2VsbAorIyB1bmRlZiBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIHVuZGVmIEJPT1NUX0ZUX2ZsYWdzCisjIGVuZGlmCisjIGVuZGlmCisjIGlmICEgISAoOTYgJiAoQk9PU1RfRlRfdmFyaWF0aW9ucykpCisjIGlmICgyNjU3ICYgKEJPT1NUX0ZUX2NvbmQpKSA9PSAoQk9PU1RfRlRfY29uZCkKKyMgZGVmaW5lIEJPT1NUX0ZUX2VsbAorIyBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbSBCT09TVF9GVF9OVUxMQVJZX1BBUkFNCisjIGRlZmluZSBCT09TVF9GVF9jdiB2b2xhdGlsZQorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgMjY1NworIyBpbmNsdWRlIEJPT1NUX0ZUX3ZhcmlhdGVfZmlsZQorIyB1bmRlZiBCT09TVF9GVF9jdgorIyB1bmRlZiBCT09TVF9GVF9lbGwKKyMgdW5kZWYgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyB1bmRlZiBCT09TVF9GVF9mbGFncworIyBlbmRpZgorIyBlbmRpZgorIyBpZiAhICEgKDk2ICYgKEJPT1NUX0ZUX3ZhcmlhdGlvbnMpKQorIyBpZiAoMjQwMSAmIChCT09TVF9GVF9jb25kKSkgPT0gKEJPT1NUX0ZUX2NvbmQpCisjIGRlZmluZSBCT09TVF9GVF9lbGwgLi4uCisjIGRlZmluZSBCT09TVF9GVF9udWxsYXJ5X3BhcmFtCisjIGRlZmluZSBCT09TVF9GVF9jdiB2b2xhdGlsZQorIyBkZWZpbmUgQk9PU1RfRlRfZmxhZ3MgMjQwMQorIyBpbmNsdWRlIEJPT1NUX0ZUX3ZhcmlhdGVfZmlsZQorIyB1bmRlZiBCT09TVF9GVF9jdgorIyB1bmRlZiBCT09TVF9GVF9lbGwKKyMgdW5kZWYgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyB1bmRlZiBCT09TVF9GVF9mbGFncworIyBlbmRpZgorIyBlbmRpZgorIyBpZiAhICEgKDk2ICYgKEJPT1NUX0ZUX3ZhcmlhdGlvbnMpKQorIyBpZiAoMzY4MSAmIChCT09TVF9GVF9jb25kKSkgPT0gKEJPT1NUX0ZUX2NvbmQpCisjIGRlZmluZSBCT09TVF9GVF9lbGwKKyMgZGVmaW5lIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0gQk9PU1RfRlRfTlVMTEFSWV9QQVJBTQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgY29uc3Qgdm9sYXRpbGUKKyMgZGVmaW5lIEJPT1NUX0ZUX2ZsYWdzIDM2ODEKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgaWYgISAhICg5NiAmIChCT09TVF9GVF92YXJpYXRpb25zKSkKKyMgaWYgKDM0MjUgJiAoQk9PU1RfRlRfY29uZCkpID09IChCT09TVF9GVF9jb25kKQorIyBkZWZpbmUgQk9PU1RfRlRfZWxsIC4uLgorIyBkZWZpbmUgQk9PU1RfRlRfbnVsbGFyeV9wYXJhbQorIyBkZWZpbmUgQk9PU1RfRlRfY3YgY29uc3Qgdm9sYXRpbGUKKyMgZGVmaW5lIEJPT1NUX0ZUX2ZsYWdzIDM0MjUKKyMgaW5jbHVkZSBCT09TVF9GVF92YXJpYXRlX2ZpbGUKKyMgdW5kZWYgQk9PU1RfRlRfY3YKKyMgdW5kZWYgQk9PU1RfRlRfZWxsCisjIHVuZGVmIEJPT1NUX0ZUX251bGxhcnlfcGFyYW0KKyMgdW5kZWYgQk9PU1RfRlRfZmxhZ3MKKyMgZW5kaWYKKyMgZW5kaWYKKyMgdW5kZWYgQk9PU1RfRlRfc3ludGF4CisjIHVuZGVmIEJPT1NUX0ZUX21mcApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcmV0YWdfZGVmYXVsdF9jYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9yZXRhZ19kZWZhdWx0X2NjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWRjYjAyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcmV0YWdfZGVmYXVsdF9jYy5ocHAKQEAgLTAsMCArMSwyMyBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0ZUX0RFVEFJTF9SRVRBR19ERUZBVUxUX0NDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9GVF9ERVRBSUxfUkVUQUdfREVGQVVMVF9DQ19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iaXRhbmQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29tcG9uZW50cy5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX0ZUX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9tYXN0ZXIuaHBwPgorI2Vsc2UKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfcmV0YWdfZGVmYXVsdF9jYy9wcmVwcm9jZXNzZWQuaHBwPgorI2VuZGlmCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ODY1Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplLmhwcApAQCAtMCwwICsxLDc5IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfREVUQUlMX1NZTlRIRVNJWkVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0ZUX0RFVEFJTF9TWU5USEVTSVpFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3NpemUuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29uZmlnL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvcHJvcGVydHlfdGFncy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL2N2X3RyYWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3JldGFnX2RlZmF1bHRfY2MuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8Yml0c190IEZsYWdzLCBiaXRzX3QgQ0NJRCwgc3RkOjpzaXplX3QgU2l6ZT4KK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbworeworICB0ZW1wbGF0ZTx0eXBlbmFtZSBTZXE+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaSB7IH07Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBTZXEsIGJpdHNfdCBCaXRzPgorc3RydWN0IHN5bnRoZXNpemVfaW1wbAorICA6IGRldGFpbDo6c3ludGhlc2l6ZV9pbXBsX28KKyAgICA8IDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmRlY29kZV9iaXRzPEJpdHM+OjpmbGFncworICAgICwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6ZGVjb2RlX2JpdHM8Qml0cz46OmNjX2lkCisgICAgLCA6Om5kbmJvb3N0OjptcGw6OnNpemU8U2VxPjo6dmFsdWUKKyAgICA+CisgICAgOjp0ZW1wbGF0ZSBzeW50aGVzaXplX2ltcGxfaTxTZXE+Cit7IH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFNlcSwgdHlwZW5hbWUgVGFnPgorc3RydWN0IHN5bnRoZXNpemVfZnVuYworICA6IGRldGFpbDo6c3ludGhlc2l6ZV9pbXBsCisgICAgPCBTZXEKKyAgICAsIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHMKKyAgICAgIDwgZGV0YWlsOjpyZXRhZ19kZWZhdWx0X2NjCisgICAgICAgIDwgZnVuY3Rpb25fdHlwZXM6OnRhZzxudl9kY2NfZnVuYywgVGFnPiA+IAorICAgICAgPjo6dmFsdWUgCisgICAgPgoreyB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBTZXEsIHR5cGVuYW1lIFRhZz4KK3N0cnVjdCBzeW50aGVzaXplX21mcAorICA6IGRldGFpbDo6c3ludGhlc2l6ZV9pbXBsCisgICAgPCBTZXEgCisgICAgLCA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpiaXRzCisgICAgICA8IGRldGFpbDo6cmV0YWdfZGVmYXVsdF9jYworICAgICAgICA8IGZ1bmN0aW9uX3R5cGVzOjp0YWcKKyAgICAgICAgICA8IHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCB0eXBlbmFtZSBtcGw6OmF0X2M8U2VxLDE+Ojp0eXBlID46OnRhZworICAgICAgICAgICwgbnZfZGNjX21mcCwgVGFnCisgICAgICAgID4gPgorICAgICAgPjo6dmFsdWUKKyAgICA+Cit7IH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFMsIHR5cGVuYW1lIFIgPSB0eXBlbmFtZSBtcGw6OmF0X2M8UywwPjo6dHlwZSwKKyAgICB0eXBlbmFtZSBDID0gdHlwZW5hbWUgbXBsOjphdF9jPFMsMT46OnR5cGU+CitzdHJ1Y3Qgc3ludGhlc2l6ZV9tb3AKK3sKKyAgdHlwZWRlZiBSIEM6OiogdHlwZTsKK307CisKKyNkZWZpbmUgQk9PU1RfRlRfdmFyaWF0aW9ucyBCT09TVF9GVF9mdW5jdGlvbnxCT09TVF9GVF9tZW1iZXJfcG9pbnRlcgorI2RlZmluZSBCT09TVF9GVF9hbF9wYXRoIGJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfbG9vcC5ocHA+CisKK30gfSB9IC8vIG5hbWVzcGFjZSA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHkxMF8wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMjJlNTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHkxMF8wLmhwcApAQCAtMCwwICsxLDMzNCBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGUoZmxhZ3MsY2MsYXJpdHkpIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KQorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpIG1ha2VfdHlwZV8gIyMgZmxhZ3MgIyMgXyAjIyBjYyAjIyBfICMjIGFyaXR5Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDApCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoQk9PU1RfRlRfbnVsbGFyeV9wYXJhbSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDApIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA0ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNCkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA1ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw1KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA3ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDYpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNykKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA4ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw4KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsOCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxMCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw5KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEwKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDExID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEwKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307CisjIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZQorIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHkxMF8xLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZDU5NjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHkxMF8xLmhwcApAQCAtMCwwICsxLDMyNiBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBubyBpbmNsdWRlIGd1YXJkcywgdGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KKworLy8gaW5wdXQ6ICBCT09TVF9GVF9zeW50YXggICAgIHR5cGUgbWFjcm8gdG8gdXNlCisvLyBpbnB1dDogIEJPT1NUX0ZUX2NjICAgICAgICAgZW1wdHkgb3IgY2Mgc3BlY2lmaWVyIAorLy8gaW5wdXQ6ICBCT09TVF9GVF9lbGwgICAgICAgIGVtcHR5IG9yICIuLi4iCisvLyBpbnB1dDogIEJPT1NUX0ZUX2N2ICAgICAgICAgZW1wdHkgb3IgY3YgcXVhbGlmaWVycworLy8gaW5wdXQ6ICBCT09TVF9GVF9mbGFncyAgICAgIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgZW5jb2RpbmcgdGhlIGZsYWdzCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX24gICAgICAgICAgbnVtYmVyIG9mIGNvbXBvbmVudCB0eXBlcyAoYXJpdHkrMSkKKy8vIG91dHB1dDogQk9PU1RfRlRfYXJpdHkgICAgICBjdXJyZW50IGFyaXR5CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3R5cGUgICAgICAgbWFjcm8gdGhhdCBleHBhbmRzIHRvIHRoZSB0eXBlCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3RwbGFyZ3MocCkgdGVtcGxhdGUgYXJndW1lbnRzIHdpdGggZ2l2ZW4gcHJlZml4CisvLyBvdXRwdXQ6IEJPT1NUX0ZUX3BhcmFtcyhwKSAgcGFyYW1ldGVycyB3aXRoIGdpdmVuIHByZWZpeAorCisjIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGUoZmxhZ3MsY2MsYXJpdHkpIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KQorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpIG1ha2VfdHlwZV8gIyMgZmxhZ3MgIyMgXyAjIyBjYyAjIyBfICMjIGFyaXR5Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpICggQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMikKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA0ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNCkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgNSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA2ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw1KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDYpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA3ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDYpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNykKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgOCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDcpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsOCkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA5ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw4KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDkpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxMCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw5KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEwKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxMSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxMCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OworIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGUKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MjBfMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHkyMF8wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Njk4OGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MjBfMC5ocHAKQEAgLTAsMCArMSw1MTcgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCisKKy8vIGlucHV0OiAgQk9PU1RfRlRfc3ludGF4ICAgICB0eXBlIG1hY3JvIHRvIHVzZQorLy8gaW5wdXQ6ICBCT09TVF9GVF9jYyAgICAgICAgIGVtcHR5IG9yIGNjIHNwZWNpZmllciAKKy8vIGlucHV0OiAgQk9PU1RfRlRfZWxsICAgICAgICBlbXB0eSBvciAiLi4uIgorLy8gaW5wdXQ6ICBCT09TVF9GVF9jdiAgICAgICAgIGVtcHR5IG9yIGN2IHF1YWxpZmllcnMKKy8vIGlucHV0OiAgQk9PU1RfRlRfZmxhZ3MgICAgICBzaW5nbGUgZGVjaW1hbCBpbnRlZ2VyIGVuY29kaW5nIHRoZSBmbGFncworLy8gb3V0cHV0OiBCT09TVF9GVF9uICAgICAgICAgIG51bWJlciBvZiBjb21wb25lbnQgdHlwZXMgKGFyaXR5KzEpCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX2FyaXR5ICAgICAgY3VycmVudCBhcml0eQorLy8gb3V0cHV0OiBCT09TVF9GVF90eXBlICAgICAgIG1hY3JvIHRoYXQgZXhwYW5kcyB0byB0aGUgdHlwZQorLy8gb3V0cHV0OiBCT09TVF9GVF90cGxhcmdzKHApIHRlbXBsYXRlIGFyZ3VtZW50cyB3aXRoIGdpdmVuIHByZWZpeAorLy8gb3V0cHV0OiBCT09TVF9GVF9wYXJhbXMocCkgIHBhcmFtZXRlcnMgd2l0aCBnaXZlbiBwcmVmaXgKKworIyBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MTBfMC5ocHA+CisjIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGUoZmxhZ3MsY2MsYXJpdHkpIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KQorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpIG1ha2VfdHlwZV8gIyMgZmxhZ3MgIyMgXyAjIyBjYyAjIyBfICMjIGFyaXR5Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTEpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMTIgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDExKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxMikKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEyKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDE0ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEzKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTQpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMTUgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE0KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxNSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE1KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDE3ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE2KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTcpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMTggPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE3KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxOCkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE4KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDIwID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE5KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjApCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMjEgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIwKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlCisjIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MjBfMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlNjY0NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzEuaHBwCkBAIC0wLDAgKzEsNTI3IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTEwXzEuaHBwPgorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlKGZsYWdzLGNjLGFyaXR5KSBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbChmbGFncyxjYyxhcml0eSkKKyMgZGVmaW5lIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KSBtYWtlX3R5cGVfICMjIGZsYWdzICMjIF8gIyMgY2MgIyMgXyAjIyBhcml0eQordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDExKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxMiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTEpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEyKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEyKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDEzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxNCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxMykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE0KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxNSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTQpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE1KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE1KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxNyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxNikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE3KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxOCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMTcpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE4KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAxOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE4KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDE5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyMCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwxOSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIwKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyMSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjApIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OworIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGUKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MzBfMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHkzMF8wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODEwNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MzBfMC5ocHAKQEAgLTAsMCArMSw3MTcgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCisKKy8vIGlucHV0OiAgQk9PU1RfRlRfc3ludGF4ICAgICB0eXBlIG1hY3JvIHRvIHVzZQorLy8gaW5wdXQ6ICBCT09TVF9GVF9jYyAgICAgICAgIGVtcHR5IG9yIGNjIHNwZWNpZmllciAKKy8vIGlucHV0OiAgQk9PU1RfRlRfZWxsICAgICAgICBlbXB0eSBvciAiLi4uIgorLy8gaW5wdXQ6ICBCT09TVF9GVF9jdiAgICAgICAgIGVtcHR5IG9yIGN2IHF1YWxpZmllcnMKKy8vIGlucHV0OiAgQk9PU1RfRlRfZmxhZ3MgICAgICBzaW5nbGUgZGVjaW1hbCBpbnRlZ2VyIGVuY29kaW5nIHRoZSBmbGFncworLy8gb3V0cHV0OiBCT09TVF9GVF9uICAgICAgICAgIG51bWJlciBvZiBjb21wb25lbnQgdHlwZXMgKGFyaXR5KzEpCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX2FyaXR5ICAgICAgY3VycmVudCBhcml0eQorLy8gb3V0cHV0OiBCT09TVF9GVF90eXBlICAgICAgIG1hY3JvIHRoYXQgZXhwYW5kcyB0byB0aGUgdHlwZQorLy8gb3V0cHV0OiBCT09TVF9GVF90cGxhcmdzKHApIHRlbXBsYXRlIGFyZ3VtZW50cyB3aXRoIGdpdmVuIHByZWZpeAorLy8gb3V0cHV0OiBCT09TVF9GVF9wYXJhbXMocCkgIHBhcmFtZXRlcnMgd2l0aCBnaXZlbiBwcmVmaXgKKworIyBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MjBfMC5ocHA+CisjIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGUoZmxhZ3MsY2MsYXJpdHkpIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KQorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpIG1ha2VfdHlwZV8gIyMgZmxhZ3MgIyMgXyAjIyBjYyAjIyBfICMjIGFyaXR5Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjEpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMjIgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMikKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDI0ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjQpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMjUgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDI3ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjcpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMjggPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyOCkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyOCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDMwID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyOSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzApCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMzEgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzMCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlCisjIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MzBfMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE3NTMwZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzEuaHBwCkBAIC0wLDAgKzEsNzI3IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTIwXzEuaHBwPgorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlKGZsYWdzLGNjLGFyaXR5KSBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbChmbGFncyxjYyxhcml0eSkKKyMgZGVmaW5lIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KSBtYWtlX3R5cGVfICMjIGZsYWdzICMjIF8gIyMgY2MgIyMgXyAjIyBhcml0eQordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIxKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyMiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIxKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIyKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyMikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDIzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyNCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjMpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI0KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyNSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI0KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI1KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyNSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyNyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjYpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI3KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyOCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI3KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI4KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAyOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwyOCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDI5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzMCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMjkpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMwKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzMSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMwKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OworIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGUKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5NDBfMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHk0MF8wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWVmMjkyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5NDBfMC5ocHAKQEAgLTAsMCArMSw5MTcgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCisKKy8vIGlucHV0OiAgQk9PU1RfRlRfc3ludGF4ICAgICB0eXBlIG1hY3JvIHRvIHVzZQorLy8gaW5wdXQ6ICBCT09TVF9GVF9jYyAgICAgICAgIGVtcHR5IG9yIGNjIHNwZWNpZmllciAKKy8vIGlucHV0OiAgQk9PU1RfRlRfZWxsICAgICAgICBlbXB0eSBvciAiLi4uIgorLy8gaW5wdXQ6ICBCT09TVF9GVF9jdiAgICAgICAgIGVtcHR5IG9yIGN2IHF1YWxpZmllcnMKKy8vIGlucHV0OiAgQk9PU1RfRlRfZmxhZ3MgICAgICBzaW5nbGUgZGVjaW1hbCBpbnRlZ2VyIGVuY29kaW5nIHRoZSBmbGFncworLy8gb3V0cHV0OiBCT09TVF9GVF9uICAgICAgICAgIG51bWJlciBvZiBjb21wb25lbnQgdHlwZXMgKGFyaXR5KzEpCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX2FyaXR5ICAgICAgY3VycmVudCBhcml0eQorLy8gb3V0cHV0OiBCT09TVF9GVF90eXBlICAgICAgIG1hY3JvIHRoYXQgZXhwYW5kcyB0byB0aGUgdHlwZQorLy8gb3V0cHV0OiBCT09TVF9GVF90cGxhcmdzKHApIHRlbXBsYXRlIGFyZ3VtZW50cyB3aXRoIGdpdmVuIHByZWZpeAorLy8gb3V0cHV0OiBCT09TVF9GVF9wYXJhbXMocCkgIHBhcmFtZXRlcnMgd2l0aCBnaXZlbiBwcmVmaXgKKworIyBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5MzBfMC5ocHA+CisjIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGUoZmxhZ3MsY2MsYXJpdHkpIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KQorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpIG1ha2VfdHlwZV8gIyMgZmxhZ3MgIyMgXyAjIyBjYyAjIyBfICMjIGFyaXR5Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzEpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMzIgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzEpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzMikKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzIpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDM0ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzMpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzQpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMzUgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMxID4gOjp0eXBlIGl0ZXJfMzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMiA+IDo6dHlwZSBpdGVyXzMzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzMgPiA6OnR5cGUgaXRlcl8zNDsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzQpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzNSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzUpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDM3ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzYpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzcpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgMzggPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMxID4gOjp0eXBlIGl0ZXJfMzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMiA+IDo6dHlwZSBpdGVyXzMzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzMgPiA6OnR5cGUgaXRlcl8zNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM0ID4gOjp0eXBlIGl0ZXJfMzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNSA+IDo6dHlwZSBpdGVyXzM2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzYgPiA6OnR5cGUgaXRlcl8zNzsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzcpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzOCkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzgpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQwID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzkpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM5ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDApCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgNDEgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMxID4gOjp0eXBlIGl0ZXJfMzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMiA+IDo6dHlwZSBpdGVyXzMzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzMgPiA6OnR5cGUgaXRlcl8zNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM0ID4gOjp0eXBlIGl0ZXJfMzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNSA+IDo6dHlwZSBpdGVyXzM2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzYgPiA6OnR5cGUgaXRlcl8zNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM3ID4gOjp0eXBlIGl0ZXJfMzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOCA+IDo6dHlwZSBpdGVyXzM5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzkgPiA6OnR5cGUgaXRlcl80MDsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDApIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDAgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlCisjIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5NDBfMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYyMGMwNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzEuaHBwCkBAIC0wLDAgKzEsOTI3IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTMwXzEuaHBwPgorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlKGZsYWdzLGNjLGFyaXR5KSBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbChmbGFncyxjYyxhcml0eSkKKyMgZGVmaW5lIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KSBtYWtlX3R5cGVfICMjIGZsYWdzICMjIF8gIyMgY2MgIyMgXyAjIyBhcml0eQordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMxKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzMiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzMSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMyKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzMyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzIpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMzKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzNCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDMzKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM0KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzNSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzNCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM1KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzNiA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzUpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM2KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzNyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM2KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM3KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzOCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCwzNykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM4KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCAzOSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsMzgpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM5KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA0MCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM4ID4gOjp0eXBlIGl0ZXJfMzk7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDM5KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQwKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA0MSA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM4ID4gOjp0eXBlIGl0ZXJfMzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOSA+IDo6dHlwZSBpdGVyXzQwOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0MCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OworIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGUKKyMgdW5kZWYgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5NTBfMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHk1MF8wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTJjNmE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5NTBfMC5ocHAKQEAgLTAsMCArMSwxMTE3IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisvLyBpbnB1dDogIEJPT1NUX0ZUX3N5bnRheCAgICAgdHlwZSBtYWNybyB0byB1c2UKKy8vIGlucHV0OiAgQk9PU1RfRlRfY2MgICAgICAgICBlbXB0eSBvciBjYyBzcGVjaWZpZXIgCisvLyBpbnB1dDogIEJPT1NUX0ZUX2VsbCAgICAgICAgZW1wdHkgb3IgIi4uLiIKKy8vIGlucHV0OiAgQk9PU1RfRlRfY3YgICAgICAgICBlbXB0eSBvciBjdiBxdWFsaWZpZXJzCisvLyBpbnB1dDogIEJPT1NUX0ZUX2ZsYWdzICAgICAgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBlbmNvZGluZyB0aGUgZmxhZ3MKKy8vIG91dHB1dDogQk9PU1RfRlRfbiAgICAgICAgICBudW1iZXIgb2YgY29tcG9uZW50IHR5cGVzIChhcml0eSsxKQorLy8gb3V0cHV0OiBCT09TVF9GVF9hcml0eSAgICAgIGN1cnJlbnQgYXJpdHkKKy8vIG91dHB1dDogQk9PU1RfRlRfdHlwZSAgICAgICBtYWNybyB0aGF0IGV4cGFuZHMgdG8gdGhlIHR5cGUKKy8vIG91dHB1dDogQk9PU1RfRlRfdHBsYXJncyhwKSB0ZW1wbGF0ZSBhcmd1bWVudHMgd2l0aCBnaXZlbiBwcmVmaXgKKy8vIG91dHB1dDogQk9PU1RfRlRfcGFyYW1zKHApICBwYXJhbWV0ZXJzIHdpdGggZ2l2ZW4gcHJlZml4CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTQwXzAuaHBwPgorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlKGZsYWdzLGNjLGFyaXR5KSBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbChmbGFncyxjYyxhcml0eSkKKyMgZGVmaW5lIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KSBtYWtlX3R5cGVfICMjIGZsYWdzICMjIF8gIyMgY2MgIyMgXyAjIyBhcml0eQordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQxKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQyID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0MSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDIpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgNDMgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMxID4gOjp0eXBlIGl0ZXJfMzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMiA+IDo6dHlwZSBpdGVyXzMzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzMgPiA6OnR5cGUgaXRlcl8zNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM0ID4gOjp0eXBlIGl0ZXJfMzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNSA+IDo6dHlwZSBpdGVyXzM2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzYgPiA6OnR5cGUgaXRlcl8zNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM3ID4gOjp0eXBlIGl0ZXJfMzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOCA+IDo6dHlwZSBpdGVyXzM5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzkgPiA6OnR5cGUgaXRlcl80MDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQwID4gOjp0eXBlIGl0ZXJfNDE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MSA+IDo6dHlwZSBpdGVyXzQyOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0MikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0MykKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA0NCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM4ID4gOjp0eXBlIGl0ZXJfMzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOSA+IDo6dHlwZSBpdGVyXzQwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDAgPiA6OnR5cGUgaXRlcl80MTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQxID4gOjp0eXBlIGl0ZXJfNDI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MiA+IDo6dHlwZSBpdGVyXzQzOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0MykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ0KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ1ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDUpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgNDYgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMxID4gOjp0eXBlIGl0ZXJfMzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMiA+IDo6dHlwZSBpdGVyXzMzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzMgPiA6OnR5cGUgaXRlcl8zNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM0ID4gOjp0eXBlIGl0ZXJfMzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNSA+IDo6dHlwZSBpdGVyXzM2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzYgPiA6OnR5cGUgaXRlcl8zNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM3ID4gOjp0eXBlIGl0ZXJfMzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOCA+IDo6dHlwZSBpdGVyXzM5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzkgPiA6OnR5cGUgaXRlcl80MDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQwID4gOjp0eXBlIGl0ZXJfNDE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MSA+IDo6dHlwZSBpdGVyXzQyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDIgPiA6OnR5cGUgaXRlcl80MzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQzID4gOjp0eXBlIGl0ZXJfNDQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NCA+IDo6dHlwZSBpdGVyXzQ1OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NikKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA0NyA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM4ID4gOjp0eXBlIGl0ZXJfMzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOSA+IDo6dHlwZSBpdGVyXzQwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDAgPiA6OnR5cGUgaXRlcl80MTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQxID4gOjp0eXBlIGl0ZXJfNDI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MiA+IDo6dHlwZSBpdGVyXzQzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDMgPiA6OnR5cGUgaXRlcl80NDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ0ID4gOjp0eXBlIGl0ZXJfNDU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NSA+IDo6dHlwZSBpdGVyXzQ2OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NikgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCAsIHR5cGVuYW1lIFQ0NSAsIHR5cGVuYW1lIFQ0NiA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ3KQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ4ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NiA+IDo6dHlwZSBpdGVyXzQ3OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ3ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDgpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLCBUMjUgLCBUMjYgLCBUMjcgLCBUMjggLCBUMjkgLCBUMzAgLCBUMzEgLCBUMzIgLCBUMzMgLCBUMzQgLCBUMzUgLCBUMzYgLCBUMzcgLCBUMzggLCBUMzkgLCBUNDAgLCBUNDEgLCBUNDIgLCBUNDMgLCBUNDQgLCBUNDUgLCBUNDYgLCBUNDcgQk9PU1RfRlRfZWxsKSBCT09TVF9GVF9jdiA7Cit9OwordGVtcGxhdGU8ID4gCitzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX288IEJPT1NUX0ZUX2ZsYWdzLCBCT09TVF9GVF9jY19pZCwgNDkgPiAKK3sgCit0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKK3sKK3ByaXZhdGU6Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YmVnaW48Uz4gOjp0eXBlIGl0ZXJfMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzAgPiA6OnR5cGUgaXRlcl8xOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMSA+IDo6dHlwZSBpdGVyXzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yID4gOjp0eXBlIGl0ZXJfMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMgPiA6OnR5cGUgaXRlcl80OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNCA+IDo6dHlwZSBpdGVyXzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl81ID4gOjp0eXBlIGl0ZXJfNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzYgPiA6OnR5cGUgaXRlcl83OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNyA+IDo6dHlwZSBpdGVyXzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl84ID4gOjp0eXBlIGl0ZXJfOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzkgPiA6OnR5cGUgaXRlcl8xMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEwID4gOjp0eXBlIGl0ZXJfMTE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMSA+IDo6dHlwZSBpdGVyXzEyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTIgPiA6OnR5cGUgaXRlcl8xMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEzID4gOjp0eXBlIGl0ZXJfMTQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNCA+IDo6dHlwZSBpdGVyXzE1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTUgPiA6OnR5cGUgaXRlcl8xNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE2ID4gOjp0eXBlIGl0ZXJfMTc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNyA+IDo6dHlwZSBpdGVyXzE4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTggPiA6OnR5cGUgaXRlcl8xOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE5ID4gOjp0eXBlIGl0ZXJfMjA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMCA+IDo6dHlwZSBpdGVyXzIxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjEgPiA6OnR5cGUgaXRlcl8yMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIyID4gOjp0eXBlIGl0ZXJfMjM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMyA+IDo6dHlwZSBpdGVyXzI0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjQgPiA6OnR5cGUgaXRlcl8yNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI1ID4gOjp0eXBlIGl0ZXJfMjY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNiA+IDo6dHlwZSBpdGVyXzI3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjcgPiA6OnR5cGUgaXRlcl8yODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI4ID4gOjp0eXBlIGl0ZXJfMjk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOSA+IDo6dHlwZSBpdGVyXzMwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzAgPiA6OnR5cGUgaXRlcl8zMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMxID4gOjp0eXBlIGl0ZXJfMzI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMiA+IDo6dHlwZSBpdGVyXzMzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzMgPiA6OnR5cGUgaXRlcl8zNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM0ID4gOjp0eXBlIGl0ZXJfMzU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNSA+IDo6dHlwZSBpdGVyXzM2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzYgPiA6OnR5cGUgaXRlcl8zNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM3ID4gOjp0eXBlIGl0ZXJfMzg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOCA+IDo6dHlwZSBpdGVyXzM5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzkgPiA6OnR5cGUgaXRlcl80MDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQwID4gOjp0eXBlIGl0ZXJfNDE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MSA+IDo6dHlwZSBpdGVyXzQyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDIgPiA6OnR5cGUgaXRlcl80MzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQzID4gOjp0eXBlIGl0ZXJfNDQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NCA+IDo6dHlwZSBpdGVyXzQ1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDUgPiA6OnR5cGUgaXRlcl80NjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ2ID4gOjp0eXBlIGl0ZXJfNDc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NyA+IDo6dHlwZSBpdGVyXzQ4OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0OCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDggPiA6OnR5cGUKKz4gOjp0eXBlIHR5cGU7Cit9OworfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBSICwgdHlwZW5hbWUgVDAgLCB0eXBlbmFtZSBUMSAsIHR5cGVuYW1lIFQyICwgdHlwZW5hbWUgVDMgLCB0eXBlbmFtZSBUNCAsIHR5cGVuYW1lIFQ1ICwgdHlwZW5hbWUgVDYgLCB0eXBlbmFtZSBUNyAsIHR5cGVuYW1lIFQ4ICwgdHlwZW5hbWUgVDkgLCB0eXBlbmFtZSBUMTAgLCB0eXBlbmFtZSBUMTEgLCB0eXBlbmFtZSBUMTIgLCB0eXBlbmFtZSBUMTMgLCB0eXBlbmFtZSBUMTQgLCB0eXBlbmFtZSBUMTUgLCB0eXBlbmFtZSBUMTYgLCB0eXBlbmFtZSBUMTcgLCB0eXBlbmFtZSBUMTggLCB0eXBlbmFtZSBUMTkgLCB0eXBlbmFtZSBUMjAgLCB0eXBlbmFtZSBUMjEgLCB0eXBlbmFtZSBUMjIgLCB0eXBlbmFtZSBUMjMgLCB0eXBlbmFtZSBUMjQgLCB0eXBlbmFtZSBUMjUgLCB0eXBlbmFtZSBUMjYgLCB0eXBlbmFtZSBUMjcgLCB0eXBlbmFtZSBUMjggLCB0eXBlbmFtZSBUMjkgLCB0eXBlbmFtZSBUMzAgLCB0eXBlbmFtZSBUMzEgLCB0eXBlbmFtZSBUMzIgLCB0eXBlbmFtZSBUMzMgLCB0eXBlbmFtZSBUMzQgLCB0eXBlbmFtZSBUMzUgLCB0eXBlbmFtZSBUMzYgLCB0eXBlbmFtZSBUMzcgLCB0eXBlbmFtZSBUMzggLCB0eXBlbmFtZSBUMzkgLCB0eXBlbmFtZSBUNDAgLCB0eXBlbmFtZSBUNDEgLCB0eXBlbmFtZSBUNDIgLCB0eXBlbmFtZSBUNDMgLCB0eXBlbmFtZSBUNDQgLCB0eXBlbmFtZSBUNDUgLCB0eXBlbmFtZSBUNDYgLCB0eXBlbmFtZSBUNDcgLCB0eXBlbmFtZSBUNDggPgorc3RydWN0IEJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0OSkKK3sKK3R5cGVkZWYgQk9PU1RfRlRfc3ludGF4KEJPT1NUX0ZUX2NjLHR5cGUgQk9PU1RfUFBfRU1QVFkpIChUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAsIFQyNSAsIFQyNiAsIFQyNyAsIFQyOCAsIFQyOSAsIFQzMCAsIFQzMSAsIFQzMiAsIFQzMyAsIFQzNCAsIFQzNSAsIFQzNiAsIFQzNyAsIFQzOCAsIFQzOSAsIFQ0MCAsIFQ0MSAsIFQ0MiAsIFQ0MyAsIFQ0NCAsIFQ0NSAsIFQ0NiAsIFQ0NyAsIFQ0OCBCT09TVF9GVF9lbGwpIEJPT1NUX0ZUX2N2IDsKK307Cit0ZW1wbGF0ZTwgPiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCA1MCA+IAoreyAKK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVjdCBzeW50aGVzaXplX2ltcGxfaQoreworcHJpdmF0ZToKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPiA6OnR5cGUgaXRlcl8wOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMCA+IDo6dHlwZSBpdGVyXzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xID4gOjp0eXBlIGl0ZXJfMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIgPiA6OnR5cGUgaXRlcl8zOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMyA+IDo6dHlwZSBpdGVyXzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80ID4gOjp0eXBlIGl0ZXJfNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzUgPiA6OnR5cGUgaXRlcl82OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNiA+IDo6dHlwZSBpdGVyXzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl83ID4gOjp0eXBlIGl0ZXJfODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzggPiA6OnR5cGUgaXRlcl85OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOSA+IDo6dHlwZSBpdGVyXzEwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTAgPiA6OnR5cGUgaXRlcl8xMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzExID4gOjp0eXBlIGl0ZXJfMTI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMiA+IDo6dHlwZSBpdGVyXzEzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTMgPiA6OnR5cGUgaXRlcl8xNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE0ID4gOjp0eXBlIGl0ZXJfMTU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNSA+IDo6dHlwZSBpdGVyXzE2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTYgPiA6OnR5cGUgaXRlcl8xNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE3ID4gOjp0eXBlIGl0ZXJfMTg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOCA+IDo6dHlwZSBpdGVyXzE5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTkgPiA6OnR5cGUgaXRlcl8yMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIwID4gOjp0eXBlIGl0ZXJfMjE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMSA+IDo6dHlwZSBpdGVyXzIyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjIgPiA6OnR5cGUgaXRlcl8yMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIzID4gOjp0eXBlIGl0ZXJfMjQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNCA+IDo6dHlwZSBpdGVyXzI1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjUgPiA6OnR5cGUgaXRlcl8yNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI2ID4gOjp0eXBlIGl0ZXJfMjc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNyA+IDo6dHlwZSBpdGVyXzI4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjggPiA6OnR5cGUgaXRlcl8yOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI5ID4gOjp0eXBlIGl0ZXJfMzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMCA+IDo6dHlwZSBpdGVyXzMxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzEgPiA6OnR5cGUgaXRlcl8zMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMyID4gOjp0eXBlIGl0ZXJfMzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMyA+IDo6dHlwZSBpdGVyXzM0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzQgPiA6OnR5cGUgaXRlcl8zNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM1ID4gOjp0eXBlIGl0ZXJfMzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNiA+IDo6dHlwZSBpdGVyXzM3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzcgPiA6OnR5cGUgaXRlcl8zODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM4ID4gOjp0eXBlIGl0ZXJfMzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zOSA+IDo6dHlwZSBpdGVyXzQwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDAgPiA6OnR5cGUgaXRlcl80MTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQxID4gOjp0eXBlIGl0ZXJfNDI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MiA+IDo6dHlwZSBpdGVyXzQzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDMgPiA6OnR5cGUgaXRlcl80NDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ0ID4gOjp0eXBlIGl0ZXJfNDU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NSA+IDo6dHlwZSBpdGVyXzQ2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDYgPiA6OnR5cGUgaXRlcl80NzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ3ID4gOjp0eXBlIGl0ZXJfNDg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80OCA+IDo6dHlwZSBpdGVyXzQ5OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0OSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80OSA+IDo6dHlwZQorPiA6OnR5cGUgdHlwZTsKK307Cit9OwordGVtcGxhdGU8IHR5cGVuYW1lIFIgLCB0eXBlbmFtZSBUMCAsIHR5cGVuYW1lIFQxICwgdHlwZW5hbWUgVDIgLCB0eXBlbmFtZSBUMyAsIHR5cGVuYW1lIFQ0ICwgdHlwZW5hbWUgVDUgLCB0eXBlbmFtZSBUNiAsIHR5cGVuYW1lIFQ3ICwgdHlwZW5hbWUgVDggLCB0eXBlbmFtZSBUOSAsIHR5cGVuYW1lIFQxMCAsIHR5cGVuYW1lIFQxMSAsIHR5cGVuYW1lIFQxMiAsIHR5cGVuYW1lIFQxMyAsIHR5cGVuYW1lIFQxNCAsIHR5cGVuYW1lIFQxNSAsIHR5cGVuYW1lIFQxNiAsIHR5cGVuYW1lIFQxNyAsIHR5cGVuYW1lIFQxOCAsIHR5cGVuYW1lIFQxOSAsIHR5cGVuYW1lIFQyMCAsIHR5cGVuYW1lIFQyMSAsIHR5cGVuYW1lIFQyMiAsIHR5cGVuYW1lIFQyMyAsIHR5cGVuYW1lIFQyNCAsIHR5cGVuYW1lIFQyNSAsIHR5cGVuYW1lIFQyNiAsIHR5cGVuYW1lIFQyNyAsIHR5cGVuYW1lIFQyOCAsIHR5cGVuYW1lIFQyOSAsIHR5cGVuYW1lIFQzMCAsIHR5cGVuYW1lIFQzMSAsIHR5cGVuYW1lIFQzMiAsIHR5cGVuYW1lIFQzMyAsIHR5cGVuYW1lIFQzNCAsIHR5cGVuYW1lIFQzNSAsIHR5cGVuYW1lIFQzNiAsIHR5cGVuYW1lIFQzNyAsIHR5cGVuYW1lIFQzOCAsIHR5cGVuYW1lIFQzOSAsIHR5cGVuYW1lIFQ0MCAsIHR5cGVuYW1lIFQ0MSAsIHR5cGVuYW1lIFQ0MiAsIHR5cGVuYW1lIFQ0MyAsIHR5cGVuYW1lIFQ0NCAsIHR5cGVuYW1lIFQ0NSAsIHR5cGVuYW1lIFQ0NiAsIHR5cGVuYW1lIFQ0NyAsIHR5cGVuYW1lIFQ0OCAsIHR5cGVuYW1lIFQ0OSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDUwKQorewordHlwZWRlZiBCT09TVF9GVF9zeW50YXgoQk9PU1RfRlRfY2MsdHlwZSBCT09TVF9QUF9FTVBUWSkgKFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4ICwgVDQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDUxID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NiA+IDo6dHlwZSBpdGVyXzQ3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDcgPiA6OnR5cGUgaXRlcl80ODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ4ID4gOjp0eXBlIGl0ZXJfNDk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80OSA+IDo6dHlwZSBpdGVyXzUwOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw1MCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80OSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUwID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307CisjIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZQorIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHk1MF8xLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9hcml0eTUwXzEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNzRkMTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvYXJpdHk1MF8xLmhwcApAQCAtMCwwICsxLDExMjcgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gbm8gaW5jbHVkZSBndWFyZHMsIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCisKKy8vIGlucHV0OiAgQk9PU1RfRlRfc3ludGF4ICAgICB0eXBlIG1hY3JvIHRvIHVzZQorLy8gaW5wdXQ6ICBCT09TVF9GVF9jYyAgICAgICAgIGVtcHR5IG9yIGNjIHNwZWNpZmllciAKKy8vIGlucHV0OiAgQk9PU1RfRlRfZWxsICAgICAgICBlbXB0eSBvciAiLi4uIgorLy8gaW5wdXQ6ICBCT09TVF9GVF9jdiAgICAgICAgIGVtcHR5IG9yIGN2IHF1YWxpZmllcnMKKy8vIGlucHV0OiAgQk9PU1RfRlRfZmxhZ3MgICAgICBzaW5nbGUgZGVjaW1hbCBpbnRlZ2VyIGVuY29kaW5nIHRoZSBmbGFncworLy8gb3V0cHV0OiBCT09TVF9GVF9uICAgICAgICAgIG51bWJlciBvZiBjb21wb25lbnQgdHlwZXMgKGFyaXR5KzEpCisvLyBvdXRwdXQ6IEJPT1NUX0ZUX2FyaXR5ICAgICAgY3VycmVudCBhcml0eQorLy8gb3V0cHV0OiBCT09TVF9GVF90eXBlICAgICAgIG1hY3JvIHRoYXQgZXhwYW5kcyB0byB0aGUgdHlwZQorLy8gb3V0cHV0OiBCT09TVF9GVF90cGxhcmdzKHApIHRlbXBsYXRlIGFyZ3VtZW50cyB3aXRoIGdpdmVuIHByZWZpeAorLy8gb3V0cHV0OiBCT09TVF9GVF9wYXJhbXMocCkgIHBhcmFtZXRlcnMgd2l0aCBnaXZlbiBwcmVmaXgKKworIyBpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvc3ludGhlc2l6ZV9pbXBsL2FyaXR5NDBfMS5ocHA+CisjIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGUoZmxhZ3MsY2MsYXJpdHkpIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KQorIyBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpIG1ha2VfdHlwZV8gIyMgZmxhZ3MgIyMgXyAjIyBjYyAjIyBfICMjIGFyaXR5Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDEpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQyID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0MSkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDIpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQzID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDIpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQyID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDMpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ0ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQzKSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQzID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDQpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzIEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ1ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDUpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ2ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDUpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ1ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDYpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ3ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ2KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ2ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDcpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ4ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NiA+IDo6dHlwZSBpdGVyXzQ3OworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw0NykgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ3ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDgpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDQ5ID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NiA+IDo6dHlwZSBpdGVyXzQ3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDcgPiA6OnR5cGUgaXRlcl80ODsKK3B1YmxpYzoKK3R5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDgpIAorPCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzAgPiA6OnR5cGUgCissIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKK3R5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMSA+IDo6dHlwZSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl82ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl85ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ4ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ICwgdHlwZW5hbWUgVDQ4ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNDkpCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDUwID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NiA+IDo6dHlwZSBpdGVyXzQ3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDcgPiA6OnR5cGUgaXRlcl80ODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ4ID4gOjp0eXBlIGl0ZXJfNDk7CitwdWJsaWM6Cit0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLDQ5KSAKKzwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8wID4gOjp0eXBlIAorLCB0eXBlbmFtZSBkZXRhaWw6OmN2X3RyYWl0czwgCit0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEgPiA6OnR5cGUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl81ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl84ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzEzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80OCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ5ID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgUiAsIHR5cGVuYW1lIFQwICwgdHlwZW5hbWUgVDEgLCB0eXBlbmFtZSBUMiAsIHR5cGVuYW1lIFQzICwgdHlwZW5hbWUgVDQgLCB0eXBlbmFtZSBUNSAsIHR5cGVuYW1lIFQ2ICwgdHlwZW5hbWUgVDcgLCB0eXBlbmFtZSBUOCAsIHR5cGVuYW1lIFQ5ICwgdHlwZW5hbWUgVDEwICwgdHlwZW5hbWUgVDExICwgdHlwZW5hbWUgVDEyICwgdHlwZW5hbWUgVDEzICwgdHlwZW5hbWUgVDE0ICwgdHlwZW5hbWUgVDE1ICwgdHlwZW5hbWUgVDE2ICwgdHlwZW5hbWUgVDE3ICwgdHlwZW5hbWUgVDE4ICwgdHlwZW5hbWUgVDE5ICwgdHlwZW5hbWUgVDIwICwgdHlwZW5hbWUgVDIxICwgdHlwZW5hbWUgVDIyICwgdHlwZW5hbWUgVDIzICwgdHlwZW5hbWUgVDI0ICwgdHlwZW5hbWUgVDI1ICwgdHlwZW5hbWUgVDI2ICwgdHlwZW5hbWUgVDI3ICwgdHlwZW5hbWUgVDI4ICwgdHlwZW5hbWUgVDI5ICwgdHlwZW5hbWUgVDMwICwgdHlwZW5hbWUgVDMxICwgdHlwZW5hbWUgVDMyICwgdHlwZW5hbWUgVDMzICwgdHlwZW5hbWUgVDM0ICwgdHlwZW5hbWUgVDM1ICwgdHlwZW5hbWUgVDM2ICwgdHlwZW5hbWUgVDM3ICwgdHlwZW5hbWUgVDM4ICwgdHlwZW5hbWUgVDM5ICwgdHlwZW5hbWUgVDQwICwgdHlwZW5hbWUgVDQxICwgdHlwZW5hbWUgVDQyICwgdHlwZW5hbWUgVDQzICwgdHlwZW5hbWUgVDQ0ICwgdHlwZW5hbWUgVDQ1ICwgdHlwZW5hbWUgVDQ2ICwgdHlwZW5hbWUgVDQ3ICwgdHlwZW5hbWUgVDQ4ICwgdHlwZW5hbWUgVDQ5ID4KK3N0cnVjdCBCT09TVF9GVF9tYWtlX3R5cGUoQk9PU1RfRlRfZmxhZ3MsQk9PU1RfRlRfY2NfaWQsNTApCit7Cit0eXBlZGVmIEJPT1NUX0ZUX3N5bnRheChCT09TVF9GVF9jYyx0eXBlIEJPT1NUX1BQX0VNUFRZKSAoVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0ICwgVDI1ICwgVDI2ICwgVDI3ICwgVDI4ICwgVDI5ICwgVDMwICwgVDMxICwgVDMyICwgVDMzICwgVDM0ICwgVDM1ICwgVDM2ICwgVDM3ICwgVDM4ICwgVDM5ICwgVDQwICwgVDQxICwgVDQyICwgVDQzICwgVDQ0ICwgVDQ1ICwgVDQ2ICwgVDQ3ICwgVDQ4ICwgVDQ5IEJPT1NUX0ZUX2VsbCkgQk9PU1RfRlRfY3YgOworfTsKK3RlbXBsYXRlPCA+IAorc3RydWN0IHN5bnRoZXNpemVfaW1wbF9vPCBCT09TVF9GVF9mbGFncywgQk9PU1RfRlRfY2NfaWQsIDUxID4gCit7IAordGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0IHN5bnRoZXNpemVfaW1wbF9pCit7Citwcml2YXRlOgordHlwZWRlZiB0eXBlbmFtZSBtcGw6OmJlZ2luPFM+IDo6dHlwZSBpdGVyXzA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8wID4gOjp0eXBlIGl0ZXJfMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEgPiA6OnR5cGUgaXRlcl8yOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMiA+IDo6dHlwZSBpdGVyXzM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zID4gOjp0eXBlIGl0ZXJfNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQgPiA6OnR5cGUgaXRlcl81OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNSA+IDo6dHlwZSBpdGVyXzY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl82ID4gOjp0eXBlIGl0ZXJfNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzcgPiA6OnR5cGUgaXRlcl84OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfOCA+IDo6dHlwZSBpdGVyXzk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl85ID4gOjp0eXBlIGl0ZXJfMTA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMCA+IDo6dHlwZSBpdGVyXzExOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTEgPiA6OnR5cGUgaXRlcl8xMjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzEyID4gOjp0eXBlIGl0ZXJfMTM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xMyA+IDo6dHlwZSBpdGVyXzE0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTQgPiA6OnR5cGUgaXRlcl8xNTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE1ID4gOjp0eXBlIGl0ZXJfMTY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xNiA+IDo6dHlwZSBpdGVyXzE3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMTcgPiA6OnR5cGUgaXRlcl8xODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzE4ID4gOjp0eXBlIGl0ZXJfMTk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8xOSA+IDo6dHlwZSBpdGVyXzIwOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjAgPiA6OnR5cGUgaXRlcl8yMTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzIxID4gOjp0eXBlIGl0ZXJfMjI7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yMiA+IDo6dHlwZSBpdGVyXzIzOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjMgPiA6OnR5cGUgaXRlcl8yNDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI0ID4gOjp0eXBlIGl0ZXJfMjU7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yNSA+IDo6dHlwZSBpdGVyXzI2OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjYgPiA6OnR5cGUgaXRlcl8yNzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzI3ID4gOjp0eXBlIGl0ZXJfMjg7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8yOCA+IDo6dHlwZSBpdGVyXzI5OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMjkgPiA6OnR5cGUgaXRlcl8zMDsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMwID4gOjp0eXBlIGl0ZXJfMzE7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zMSA+IDo6dHlwZSBpdGVyXzMyOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzIgPiA6OnR5cGUgaXRlcl8zMzsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzMzID4gOjp0eXBlIGl0ZXJfMzQ7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNCA+IDo6dHlwZSBpdGVyXzM1OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzUgPiA6OnR5cGUgaXRlcl8zNjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM2ID4gOjp0eXBlIGl0ZXJfMzc7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl8zNyA+IDo6dHlwZSBpdGVyXzM4OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfMzggPiA6OnR5cGUgaXRlcl8zOTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzM5ID4gOjp0eXBlIGl0ZXJfNDA7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MCA+IDo6dHlwZSBpdGVyXzQxOwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDEgPiA6OnR5cGUgaXRlcl80MjsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQyID4gOjp0eXBlIGl0ZXJfNDM7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80MyA+IDo6dHlwZSBpdGVyXzQ0OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDQgPiA6OnR5cGUgaXRlcl80NTsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ1ID4gOjp0eXBlIGl0ZXJfNDY7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80NiA+IDo6dHlwZSBpdGVyXzQ3OwordHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IGl0ZXJfNDcgPiA6OnR5cGUgaXRlcl80ODsKK3R5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PCBpdGVyXzQ4ID4gOjp0eXBlIGl0ZXJfNDk7Cit0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDwgaXRlcl80OSA+IDo6dHlwZSBpdGVyXzUwOworcHVibGljOgordHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OkJPT1NUX0ZUX21ha2VfdHlwZShCT09TVF9GVF9mbGFncyxCT09TVF9GVF9jY19pZCw1MCkgCis8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMCA+IDo6dHlwZSAKKywgdHlwZW5hbWUgZGV0YWlsOjpjdl90cmFpdHM8IAordHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xID4gOjp0eXBlID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl83ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzExID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xMyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xNiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzE3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMTggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8xOSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIwID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjEgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yMiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzIzID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjQgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yNSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI2ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMjcgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8yOCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzI5ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzAgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zMSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzMyID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzMgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM1ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzYgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl8zNyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzM4ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfMzkgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MCA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQxID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDIgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80MyA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ0ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDUgPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80NiA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzQ3ID4gOjp0eXBlCissIHR5cGVuYW1lIG1wbDo6ZGVyZWY8IGl0ZXJfNDggPiA6OnR5cGUKKywgdHlwZW5hbWUgbXBsOjpkZXJlZjwgaXRlcl80OSA+IDo6dHlwZQorLCB0eXBlbmFtZSBtcGw6OmRlcmVmPCBpdGVyXzUwID4gOjp0eXBlCis+IDo6dHlwZSB0eXBlOworfTsKK307CisjIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZQorIyB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvbWFzdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3N5bnRoZXNpemVfaW1wbC9tYXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMDY3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplX2ltcGwvbWFzdGVyLmhwcApAQCAtMCwwICsxLDg3IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIG5vIGluY2x1ZGUgZ3VhcmRzLCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIG11bHRpcGxlIGluY2x1c2lvbgorCisjaWYgICBCT09TVF9GVF9BUklUWV9MT09QX1BSRUZJWAorCisjICAgaWZuZGVmIEJPT1NUX0ZUX0RFVEFJTF9TWU5USEVTSVpFX0lNUExfTUFTVEVSX0hQUF9JTkNMVURFRAorIyAgIGRlZmluZSBCT09TVF9GVF9ERVRBSUxfU1lOVEhFU0laRV9JTVBMX01BU1RFUl9IUFBfSU5DTFVERUQKKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vbG9jYWwuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwPgorIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfdHlwZV9uYW1lIHR5cGUKKworIyAgIGlmZGVmIEJPT1NUX0ZUX2ZsYWdzCisjICAgICBkZWZpbmUgQk9PU1RfRlRfbWFrZV90eXBlKGZsYWdzLGNjLGFyaXR5KSBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbChmbGFncyxjYyxhcml0eSkKKyMgICAgIGRlZmluZSBCT09TVF9GVF9tYWtlX3R5cGVfaW1wbChmbGFncyxjYyxhcml0eSkgbWFrZV90eXBlXyAjIyBmbGFncyAjIyBfICMjIGNjICMjIF8gIyMgYXJpdHkKKyMgICBlbHNlCitCT09TVF9QUF9FWFBBTkQoIykgZGVmaW5lIEJPT1NUX0ZUX21ha2VfdHlwZShmbGFncyxjYyxhcml0eSkgQk9PU1RfRlRfbWFrZV90eXBlX2ltcGwoZmxhZ3MsY2MsYXJpdHkpCitCT09TVF9QUF9FWFBBTkQoIykgZGVmaW5lIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsKGZsYWdzLGNjLGFyaXR5KSBtYWtlX3R5cGVfICMjIGZsYWdzICMjIF8gIyMgY2MgIyMgXyAjIyBhcml0eQorIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfRlRfaXRlcihpKSBCT09TVF9QUF9DQVQoaXRlcl8saSkKKworI2VsaWYgQk9PU1RfRlRfQVJJVFlfTE9PUF9JU19JVEVSQVRJTkcKKwordGVtcGxhdGU8IEJPT1NUX0ZUX3RwbGFyZ3MoQk9PU1RfUFBfSURFTlRJVFkodHlwZW5hbWUpKSA+CitzdHJ1Y3QgQk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLEJPT1NUX0ZUX2FyaXR5KQoreworICB0eXBlZGVmIEJPT1NUX0ZUX3R5cGUgOworfTsKKwordGVtcGxhdGU8PiAKK3N0cnVjdCBzeW50aGVzaXplX2ltcGxfbzwgQk9PU1RfRlRfZmxhZ3MsIEJPT1NUX0ZUX2NjX2lkLCBCT09TVF9GVF9uID4gCit7IAorICB0ZW1wbGF0ZTx0eXBlbmFtZSBTPiBzdHJ1Y3Qgc3ludGhlc2l6ZV9pbXBsX2kKKyAgeworICBwcml2YXRlOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpiZWdpbjxTPjo6dHlwZSBCT09TVF9GVF9pdGVyKDApOworIyAgIGlmIEJPT1NUX0ZUX24gPiAxCisjICAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfTUFDUk8oaSkgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8IFwKKyAgICAgICAgICBCT09TVF9GVF9pdGVyKEJPT1NUX1BQX0RFQyhpKSkgPjo6dHlwZSBCT09TVF9GVF9pdGVyKGkpOworIyAgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUyAoMSxCT09TVF9GVF9uLTEpCisjICAgICBpbmNsdWRlIEJPT1NUX1BQX0xPQ0FMX0lURVJBVEUoKQorIyAgIGVuZGlmCisgIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Qk9PU1RfRlRfbWFrZV90eXBlKEJPT1NUX0ZUX2ZsYWdzLEJPT1NUX0ZUX2NjX2lkLEJPT1NUX0ZUX2FyaXR5KSAKKyAgICA8IHR5cGVuYW1lIG1wbDo6ZGVyZWY8IEJPT1NUX0ZUX2l0ZXIoMCkgPjo6dHlwZSAKKyMgICBpZiBCT09TVF9GVF9tZnAKKyAgICAsIHR5cGVuYW1lIGRldGFpbDo6Y3ZfdHJhaXRzPCAKKyAgICAgICAgICB0eXBlbmFtZSBtcGw6OmRlcmVmPCBCT09TVF9GVF9pdGVyKDEpID46OnR5cGUgPjo6dHlwZQorIyAgIGVuZGlmCisjICAgaWYgQk9PU1RfRlRfbiA+IChCT09TVF9GVF9tZnArMSkKKyMgICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9MSU1JVFMgKEJPT1NUX0ZUX21mcCsxLEJPT1NUX0ZUX24tMSkKKyMgICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9NQUNSTyhpKSBcCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpkZXJlZjwgQk9PU1RfRlRfaXRlcihpKSA+Ojp0eXBlCisjICAgICBpbmNsdWRlIEJPT1NUX1BQX0xPQ0FMX0lURVJBVEUoKQorIyAgIGVuZGlmCisgICAgPjo6dHlwZSB0eXBlOworICB9OworfTsKKworI2VsaWYgQk9PU1RfRlRfQVJJVFlfTE9PUF9TVUZGSVgKKworIyAgIGlmZGVmIEJPT1NUX0ZUX2ZsYWdzCisjICAgICB1bmRlZiBCT09TVF9GVF9tYWtlX3R5cGUKKyMgICAgIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsCisjICAgZWxzZQorQk9PU1RfUFBfRVhQQU5EKCMpIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZQorQk9PU1RfUFBfRVhQQU5EKCMpIHVuZGVmIEJPT1NUX0ZUX21ha2VfdHlwZV9pbXBsCisjICAgZW5kaWYKKyMgICB1bmRlZiBCT09TVF9GVF9pdGVyCisjICAgdW5kZWYgQk9PU1RfRlRfdHlwZV9uYW1lCisKKyNlbHNlCisjICAgZXJyb3IgImF0dGVtcHQgdG8gdXNlIGFyaXR5IGxvb3AgbWFzdGVyIGZpbGUgd2l0aG91dCBsb29wIgorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3RvX3NlcXVlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvZGV0YWlsL3RvX3NlcXVlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTUxYTRiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvdG9fc2VxdWVuY2UuaHBwCkBAIC0wLDAgKzEsNDcgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GVF9ERVRBSUxfVE9fU0VRVUVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0ZUX0RFVEFJTF9UT19TRVFVRU5DRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pc19zZXF1ZW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3BsYWNlaG9sZGVycy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19jYWxsYWJsZV9idWlsdGluLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGZ1bmN0aW9uX3R5cGVzIHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIHdyYXAgZmlyc3QgYXJndW1lbnRzIGluIGNvbXBvbmVudHMsIGlmIGNhbGxhYmxlIGJ1aWx0aW4gdHlwZQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCB0b19zZXF1ZW5jZQoreworICB0eXBlZGVmIHR5cGVuYW1lCisgICBtcGw6OmV2YWxfaWYKKyAgIDwgaXNfY2FsbGFibGVfYnVpbHRpbjxUPgorICAgLCB0b19zZXF1ZW5jZTwgY29tcG9uZW50czxUPiA+CisgICAsIG1wbDo6aWRlbnRpdHk8IFQgPgorICAgPjo6dHlwZQorICB0eXBlOworfTsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisvLyByZWR1Y2UgdGVtcGxhdGUgaW5zdGFudGlhdGlvbnMsIGlmIHBvc3NpYmxlCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorc3RydWN0IHRvX3NlcXVlbmNlPCBjb21wb25lbnRzPFQsVT4gPiAKK3sKKyAgdHlwZWRlZiB0eXBlbmFtZSBjb21wb25lbnRzPFQsVT46OnR5cGVzIHR5cGU7Cit9OworI2VuZGlmCisKK30gfSB9IC8vIG5hbWVzcGFjZSA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2Z1bmN0aW9uX3R5cGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9mdW5jdGlvbl90eXBlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWQ5MGJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9mdW5jdGlvbl90eXBlLmhwcApAQCAtMCwwICsxLDI5IEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfRlVOQ1RJT05fVFlQRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfRlVOQ1RJT05fVFlQRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9zeW50aGVzaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvdG9fc2VxdWVuY2UuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgCit7IAorICBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgCisgIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlcywgdHlwZW5hbWUgVGFnID0gbnVsbF90YWc+IHN0cnVjdCBmdW5jdGlvbl90eXBlCisgICAgICA6IGRldGFpbDo6c3ludGhlc2l6ZV9mdW5jPHR5cGVuYW1lIGRldGFpbDo6dG9fc2VxdWVuY2U8VHlwZXM+Ojp0eXBlLCBUYWc+CisgICAgeworICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLGZ1bmN0aW9uX3R5cGUsKFR5cGVzLFRhZykpCisgICAgfTsKKyAgfQorICBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLGZ1bmN0aW9uX3R5cGVzOjpmdW5jdGlvbl90eXBlKQorfQorCisjZW5kaWYKKyAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvaXNfY2FsbGFibGVfYnVpbHRpbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2NhbGxhYmxlX2J1aWx0aW4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMTM4ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2NhbGxhYmxlX2J1aWx0aW4uaHBwCkBAIC0wLDAgKzEsMzUgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GVF9JU19DQUxMQUJMRV9CVUlMVElOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9GVF9JU19DQUxMQUJMRV9CVUlMVElOX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90ZW1wbGF0ZV9hcml0eV9zcGVjLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbXBvbmVudHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgCit7IAorICBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgCisgIHsKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID0gbnVsbF90YWcgPiAKKyAgICBzdHJ1Y3QgaXNfY2FsbGFibGVfYnVpbHRpbgorICAgICAgOiBmdW5jdGlvbl90eXBlczo6cmVwcmVzZW50cworICAgICAgICA8IGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPFQ+CisgICAgICAgICwgZnVuY3Rpb25fdHlwZXM6OnRhZzxUYWcsIGRldGFpbDo6Y2FsbGFibGVfYnVpbHRpbl90YWc+IAorICAgICAgICA+CisgICAgeyAKKyAgICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMixpc19jYWxsYWJsZV9idWlsdGluLChULFRhZykpCisgICAgfTsKKyAgfQorICBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLGZ1bmN0aW9uX3R5cGVzOjppc19jYWxsYWJsZV9idWlsdGluKQorfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2Z1bmN0aW9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmViMDIwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbi5ocHAKQEAgLTAsMCArMSwzNCBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GVF9JU19GVU5DVElPTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfSVNfRlVOQ1RJT05fSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3RlbXBsYXRlX2FyaXR5X3NwZWMuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvY29tcG9uZW50cy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCAKK3sgCisgIG5hbWVzcGFjZSBmdW5jdGlvbl90eXBlcyAKKyAgeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcgPSBudWxsX3RhZyA+IAorICAgIHN0cnVjdCBpc19mdW5jdGlvbgorICAgICAgOiBmdW5jdGlvbl90eXBlczo6cmVwcmVzZW50cworICAgICAgICA8IGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPFQ+CisgICAgICAgICwgZnVuY3Rpb25fdHlwZXM6OnRhZzxUYWcgLGRldGFpbDo6ZnVuY3Rpb25fdGFnPiAKKyAgICAgICAgPgorICAgIHsgCisgICAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsaXNfZnVuY3Rpb24sKFQsVGFnKSkKKyAgICB9OworICB9CisgIEJPT1NUX1RUX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsZnVuY3Rpb25fdHlwZXM6OmlzX2Z1bmN0aW9uKQorfSAKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvaXNfZnVuY3Rpb25fcG9pbnRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2Z1bmN0aW9uX3BvaW50ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4NTNhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2Z1bmN0aW9uX3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GVF9JU19GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9GVF9JU19GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90ZW1wbGF0ZV9hcml0eV9zcGVjLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbXBvbmVudHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgCit7IAorICBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgCisgIHsKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID0gbnVsbF90YWcgPiAKKyAgICBzdHJ1Y3QgaXNfZnVuY3Rpb25fcG9pbnRlcgorICAgICAgOiBmdW5jdGlvbl90eXBlczo6cmVwcmVzZW50cworICAgICAgICA8IGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPFQ+CisgICAgICAgICwgZnVuY3Rpb25fdHlwZXM6OnRhZzxUYWcgLGRldGFpbDo6cG9pbnRlcl90YWc+IAorICAgICAgICA+CisgICAgeyAKKyAgICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMixpc19mdW5jdGlvbl9wb2ludGVyLChULFRhZykpCisgICAgfTsKKyAgfQorICBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLGZ1bmN0aW9uX3R5cGVzOjppc19mdW5jdGlvbl9wb2ludGVyKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvaXNfZnVuY3Rpb25fcmVmZXJlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvaXNfZnVuY3Rpb25fcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWQ3MDUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19mdW5jdGlvbl9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKworLy8gKEMpIENvcHlyaWdodCBUb2JpYXMgU2Nod2luZ2VyCisvLworLy8gVXNlIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBib29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GVF9JU19GVU5DVElPTl9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0ZUX0lTX0ZVTkNUSU9OX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb21wb25lbnRzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreyAKKyAgbmFtZXNwYWNlIGZ1bmN0aW9uX3R5cGVzIAorICB7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZyA9IG51bGxfdGFnID4gCisgICAgc3RydWN0IGlzX2Z1bmN0aW9uX3JlZmVyZW5jZQorICAgICAgOiBmdW5jdGlvbl90eXBlczo6cmVwcmVzZW50cworICAgICAgICA8IGZ1bmN0aW9uX3R5cGVzOjpjb21wb25lbnRzPFQ+CisgICAgICAgICwgZnVuY3Rpb25fdHlwZXM6OnRhZzxUYWcgLGRldGFpbDo6cmVmZXJlbmNlX3RhZz4gPgorICAgIHsgCisgICAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsaXNfZnVuY3Rpb25fcmVmZXJlbmNlLChULFRhZykpCisgICAgfTsKKyAgfQorICBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLGZ1bmN0aW9uX3R5cGVzOjppc19mdW5jdGlvbl9yZWZlcmVuY2UpCit9IAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wYXJhbWV0ZXJfdHlwZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wYXJhbWV0ZXJfdHlwZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMzViMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL3BhcmFtZXRlcl90eXBlcy5ocHAKQEAgLTAsMCArMSw1NSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0ZUX1BBUkFNRVRFUl9UWVBFU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfRlRfUEFSQU1FVEVSX1RZUEVTX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmxhbmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3RlbXBsYXRlX2FyaXR5X3NwZWMuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3BvcF9mcm9udC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9pc19jYWxsYWJsZV9idWlsdGluLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9jb21wb25lbnRzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreyAKKyAgbmFtZXNwYWNlIGZ1bmN0aW9uX3R5cGVzIAorICB7CisgICAgdXNpbmcgbXBsOjpwbGFjZWhvbGRlcnM6Ol87CisgCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIENsYXNzVHlwZVRyYW5zZm9ybSA9IGFkZF9yZWZlcmVuY2U8Xz4gPgorICAgIHN0cnVjdCBwYXJhbWV0ZXJfdHlwZXM7CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsCisgICAgeworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ2xhc3NUeXBlVHJhbnNmb3JtPiAKKyAgICAgIHN0cnVjdCBwYXJhbWV0ZXJfdHlwZXNfaW1wbAorICAgICAgICA6IG1wbDo6cG9wX2Zyb250CisgICAgICAgICAgPCB0eXBlbmFtZSBmdW5jdGlvbl90eXBlczo6Y29tcG9uZW50czxULENsYXNzVHlwZVRyYW5zZm9ybT46OnR5cGVzIAorICAgICAgICAgID46OnR5cGUKKyAgICAgIHsgfTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDbGFzc1R5cGVUcmFuc2Zvcm0+IHN0cnVjdCBwYXJhbWV0ZXJfdHlwZXMKKyAgICAgIDogbXBsOjppZl8KKyAgICAgICAgPCBmdW5jdGlvbl90eXBlczo6aXNfY2FsbGFibGVfYnVpbHRpbjxUPgorICAgICAgICAsIGRldGFpbDo6cGFyYW1ldGVyX3R5cGVzX2ltcGw8VCxDbGFzc1R5cGVUcmFuc2Zvcm0+LCBuZG5ib29zdDo6YmxhbmsKKyAgICAgICAgPjo6dHlwZQorICAgIHsKKyAgICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMixwYXJhbWV0ZXJfdHlwZXMsKFQsQ2xhc3NUeXBlVHJhbnNmb3JtKSkgCisgICAgfTsKKyAgfQorICBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLGZ1bmN0aW9uX3R5cGVzOjpwYXJhbWV0ZXJfdHlwZXMpCit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL3Byb3BlcnR5X3RhZ3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wcm9wZXJ0eV90YWdzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjE0ZDM4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbl90eXBlcy9wcm9wZXJ0eV90YWdzLmhwcApAQCAtMCwwICsxLDE0OSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFRvYmlhcyBTY2h3aW5nZXIKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0ZUX0RFVEFJTF9UQUdTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9GVF9ERVRBSUxfVEFHU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRlZ3JhbF9jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JpdHhvci5ocHA+CisKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGZ1bmN0aW9uX3R5cGVzIHsgCisKK25hbWVzcGFjZSBkZXRhaWwgCit7CisgIHR5cGVkZWYgbG9uZyBiaXRzX3Q7CisKKyAgdGVtcGxhdGU8Yml0c190IFZhbHVlPiBzdHJ1Y3QgY29uc3RhbnQgCisgICAgOiBuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8Yml0c190LFZhbHVlPiAKKyAgeyB9OworCisgIHRlbXBsYXRlPGJpdHNfdCBCaXRzLCBiaXRzX3QgTWFzaz4gc3RydWN0IHByb3BlcnR5X3RhZyAKKyAgeworICAgIHR5cGVkZWYgY29uc3RhbnQ8Qml0cz4gYml0czsKKyAgICB0eXBlZGVmIGNvbnN0YW50PE1hc2s+IG1hc2s7CisgIH07CisKKyAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGJpdHMgOiBUOjpiaXRzIHsgfTsKKyAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IG1hc2sgOiBUOjptYXNrIHsgfTsKKworICAvLyBmb3J3YXJkIGRlY2xhcmF0aW9uLCBkZWZpbmVkIGluIHBwX3RhZ3MKKyAgdGVtcGxhdGU8Yml0c190IEJpdHMsIGJpdHNfdCBDQ0lEPiBzdHJ1Y3QgZW5jb2RlX2JpdHNfaW1wbDsgCisKKyAgLy8gZm9yd2FyZCBkZWNsYXJhdGlvbiwgZGVmaW5lZCBpbiBwcF90YWdzCisgIHRlbXBsYXRlPGJpdHNfdCBMSFNfYml0cywgYml0c190IExIU19tYXNrLCAKKyAgICAgICAgICAgYml0c190IFJIU19iaXRzLCBiaXRzX3QgUkhTX21hc2s+IAorICBzdHJ1Y3QgdGFnX2ljZTsKKyAKKyAgLy8gZm9yd2FyZCBkZWNsYXJhdGlvbiwgZGVmaW5lZCBpbiByZXRhZ19kZWZhdWx0X2NjIAorICB0ZW1wbGF0ZTxjbGFzcyBUYWcsIGNsYXNzIFJlZ1RhZyA9IFRhZz4gc3RydWN0IHJldGFnX2RlZmF1bHRfY2M7IAorIAorICB0ZW1wbGF0ZTxiaXRzX3QgQml0cywgYml0c190IENDSUQ+IHN0cnVjdCBlbmNvZGVfYml0cworICAgIDogY29uc3RhbnQ8IAorICAgICAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjplbmNvZGVfYml0c19pbXBsPEJpdHMsQ0NJRD46OnZhbHVlIAorICAgICAgPgorICB7IH07CisKKyAgdGVtcGxhdGU8Y2xhc3MgTEhTLCBjbGFzcyBSSFM+IHN0cnVjdCBjb21wb3VuZF90YWcKKyAgeworICAgIHR5cGVkZWYgY29uc3RhbnQ8CisgICAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjp0YWdfaWNlCisgICAgICAgIDwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Yml0czxMSFM+Ojp2YWx1ZQorICAgICAgICAsIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6Om1hc2s8TEhTPjo6dmFsdWUKKyAgICAgICAgLCA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpiaXRzPFJIUz46OnZhbHVlCisgICAgICAgICwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6bWFzazxSSFM+Ojp2YWx1ZQorICAgICAgICA+Ojpjb21iaW5lZF9iaXRzIAorICAgID4gYml0czsKKworICAgIHR5cGVkZWYgY29uc3RhbnQ8IAorICAgICAgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6dGFnX2ljZQorICAgICAgICA8IDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHM8TEhTPjo6dmFsdWUKKyAgICAgICAgLCA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjptYXNrPExIUz46OnZhbHVlCisgICAgICAgICwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6Yml0czxSSFM+Ojp2YWx1ZQorICAgICAgICAsIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6Om1hc2s8UkhTPjo6dmFsdWUKKyAgICAgICAgPjo6Y29tYmluZWRfbWFzayAKKyAgICA+IG1hc2s7IAorICB9OworCisgIHRlbXBsYXRlIDxjbGFzcyBCYXNlLCBjbGFzcyBQcm9wT2xkLCBjbGFzcyBQcm9wTmV3PgorICBzdHJ1Y3QgY2hhbmdlZF90YWcKKyAgICA6IEJhc2UKKyAgeworICAgIHR5cGVkZWYgbXBsOjpiaXR4b3JfCisgICAgICAgIDx0eXBlbmFtZSBCYXNlOjpiaXRzLCB0eXBlbmFtZSBQcm9wT2xkOjpiaXRzLCB0eXBlbmFtZSBQcm9wTmV3OjpiaXRzPgorICAgIGJpdHM7CisgIH07CisKKyAgdGVtcGxhdGU8Y2xhc3MgVGFnLCBjbGFzcyBRdWVyeVRhZz4gc3RydWN0IHJlcHJlc2VudHNfaW1wbAorICAgIDogbmRuYm9vc3Q6OmludGVncmFsX2NvbnN0YW50PGJvb2wsCisgICAgICAgIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OnRhZ19pY2UKKyAgICAgICAgICA8IDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHM8VGFnPjo6dmFsdWUKKyAgICAgICAgICAsIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6Om1hc2s8VGFnPjo6dmFsdWUKKyAgICAgICAgICAsIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHM8UXVlcnlUYWc+Ojp2YWx1ZQorICAgICAgICAgICwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6bWFzazxRdWVyeVRhZz46OnZhbHVlCisgICAgICAgICAgPjo6bWF0Y2gKKyAgICAgID4KKyAgeyB9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKwordHlwZWRlZiBkZXRhaWw6OnByb3BlcnR5X3RhZzwwLDA+IG51bGxfdGFnOworCit0ZW1wbGF0ZTxjbGFzcyBUYWcxLCBjbGFzcyBUYWcyLCBjbGFzcyBUYWczID0gbnVsbF90YWcsIGNsYXNzIFRhZzQgPSBudWxsX3RhZz4KK3N0cnVjdCB0YWcKKyAgOiBkZXRhaWw6OmNvbXBvdW5kX3RhZzwgZGV0YWlsOjpjb21wb3VuZF90YWc8VGFnMSxUYWcyPiwgCisgICAgICAgIGRldGFpbDo6Y29tcG91bmRfdGFnPFRhZzMsVGFnND4gPgoreyB9OworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK3RlbXBsYXRlPGNsYXNzIFRhZzEsIGNsYXNzIFRhZzIsIGNsYXNzIFRhZzM+IHN0cnVjdCB0YWc8VGFnMSxUYWcyLFRhZzMsbnVsbF90YWc+CisgIDogZGV0YWlsOjpjb21wb3VuZF90YWc8ZGV0YWlsOjpjb21wb3VuZF90YWc8VGFnMSxUYWcyPixUYWczPgoreyB9OwordGVtcGxhdGU8Y2xhc3MgVGFnMSwgY2xhc3MgVGFnMj4gc3RydWN0IHRhZzxUYWcxLFRhZzIsbnVsbF90YWcsbnVsbF90YWc+CisgIDogZGV0YWlsOjpjb21wb3VuZF90YWc8VGFnMSxUYWcyPgoreyB9OwordGVtcGxhdGU8Y2xhc3MgVGFnMT4gc3RydWN0IHRhZzxUYWcxLG51bGxfdGFnLG51bGxfdGFnLG51bGxfdGFnPgorICA6IFRhZzEKK3sgfTsKKyNlbmRpZgorCisKK3RlbXBsYXRlPGNsYXNzIFRhZywgY2xhc3MgUXVlcnlUYWc+IHN0cnVjdCByZXByZXNlbnRzCisgIDogZGV0YWlsOjpyZXByZXNlbnRzX2ltcGw8VGFnLCBkZXRhaWw6OnJldGFnX2RlZmF1bHRfY2M8UXVlcnlUYWcsVGFnPiA+Cit7IH07CisKKwordGVtcGxhdGU8Y2xhc3MgVGFnLCBjbGFzcyBRdWVyeVRhZz4gc3RydWN0IGV4dHJhY3QKK3sgCisgIHR5cGVkZWYgZGV0YWlsOjpjb25zdGFudDwKKyAgICA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjp0YWdfaWNlCisgICAgICA8IDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzOjpkZXRhaWw6OmJpdHM8VGFnPjo6dmFsdWUKKyAgICAgICwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6bWFzazxUYWc+Ojp2YWx1ZQorICAgICAgLCA6Om5kbmJvb3N0OjpmdW5jdGlvbl90eXBlczo6ZGV0YWlsOjpiaXRzPFF1ZXJ5VGFnPjo6dmFsdWUKKyAgICAgICwgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6bWFzazxRdWVyeVRhZz46OnZhbHVlCisgICAgICA+OjpleHRyYWN0ZWRfYml0cyAKKyAgPiBiaXRzOworCisgIHR5cGVkZWYgZGV0YWlsOjpjb25zdGFudDwgCisgICAgOjpuZG5ib29zdDo6ZnVuY3Rpb25fdHlwZXM6OmRldGFpbDo6bWFzazxRdWVyeVRhZz46OnZhbHVlCisgID4gbWFzazsgCit9OworCit9IH0gLy8gbmFtZXNwYWNlIDo6bmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzCisKKyNpbmNsdWRlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9wcmVwcm9jZXNzZWQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgeworI2RlZmluZSBCT09TVF9GVF9jY19maWxlIDxuZG5ib29zdC9mdW5jdGlvbl90eXBlcy9kZXRhaWwvcHBfdGFncy9jY190YWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2RldGFpbC9wcF9sb29wLmhwcD4KK30gfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OmZ1bmN0aW9uX3R5cGVzCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL3Jlc3VsdF90eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25fdHlwZXMvcmVzdWx0X3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmY2RkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL3Jlc3VsdF90eXBlLmhwcApAQCAtMCwwICsxLDUwIEBACisKKy8vIChDKSBDb3B5cmlnaHQgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfRlRfUkVTVUxUX1RZUEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0ZUX1JFU1VMVF9UWVBFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYmxhbmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3RlbXBsYXRlX2FyaXR5X3NwZWMuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F0LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2lzX2NhbGxhYmxlX2J1aWx0aW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uX3R5cGVzL2NvbXBvbmVudHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgCit7IAorICBuYW1lc3BhY2UgZnVuY3Rpb25fdHlwZXMgCisgIHsKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfdHlwZTsKKworICAgIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB7CisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0X3R5cGVfaW1wbAorICAgICAgICA6IG1wbDo6YXRfYworICAgICAgICAgIDwgdHlwZW5hbWUgZnVuY3Rpb25fdHlwZXM6OmNvbXBvbmVudHM8VD46OnR5cGVzLCAwID4KKyAgICAgIHsgfTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0X3R5cGUKKyAgICAgIDogbXBsOjppZl8KKyAgICAgICAgPCBmdW5jdGlvbl90eXBlczo6aXNfY2FsbGFibGVfYnVpbHRpbjxUPgorICAgICAgICAsIGRldGFpbDo6cmVzdWx0X3R5cGVfaW1wbDxUPiwgbmRuYm9vc3Q6OmJsYW5rCisgICAgICAgID46OnR5cGUKKyAgICB7IAorICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHJlc3VsdF90eXBlLChUKSkgCisgICAgfTsKKyAgfQorICBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLGZ1bmN0aW9uX3R5cGVzOjpyZXN1bHRfdHlwZSkKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZnVuY3Rpb25hbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uYWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NTg2YmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uYWwuaHBwCkBAIC0wLDAgKzEsNTQ4IEBACisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIENvcHlyaWdodCAoYykgMjAwMCBDYWRlbnphIE5ldyBaZWFsYW5kIEx0ZAorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueS0KKy8vIGluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQm9vc3QgZnVuY3Rpb25hbC5ocHAgaGVhZGVyIGZpbGUKKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2Z1bmN0aW9uYWwgZm9yIGRvY3VtZW50YXRpb24uCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICRJZDogZnVuY3Rpb25hbC5ocHAgMzYyNDYgMjAwNi0xMi0wMiAxNDoxNzoyNlogYW5kcmVhc19odWJlcjY5ICQKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0ZVTkNUSU9OQUxfSFBQCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OQUxfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NhbGxfdHJhaXRzLmhwcD4KKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGhlIGZvbGxvd2luZyB0cmFpdHMgY2xhc3NlcyBhbGxvdyB1cyB0byBhdm9pZCB0aGUgbmVlZCBmb3IgcHRyX2Z1bgorICAgIC8vIGJlY2F1c2UgdGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBhbmQgdGhlIHJlc3VsdCBvZiBhIGZ1bmN0aW9uIGNhbiBiZSAKKyAgICAvLyBkZWR1Y2VkLgorICAgIC8vCisgICAgLy8gSW4gYWRkaXRpb24gdG8gdGhlIHN0YW5kYXJkIHR5cGVzIGRlZmluZWQgaW4gdW5hcnlfZnVuY3Rpb24gYW5kIAorICAgIC8vIGJpbmFyeV9mdW5jdGlvbiwgd2UgYWRkCisgICAgLy8KKyAgICAvLyAtIGZ1bmN0aW9uX3R5cGUsIHRoZSB0eXBlIG9mIHRoZSBmdW5jdGlvbiBvciBmdW5jdGlvbiBvYmplY3QgaXRzZWxmLgorICAgIC8vCisgICAgLy8gLSBwYXJhbV90eXBlLCB0aGUgdHlwZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBwYXNzaW5nIHRoZSBmdW5jdGlvbiBvcgorICAgIC8vICAgZnVuY3Rpb24gb2JqZWN0IGFzIGFuIGFyZ3VtZW50LgorICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbmFtZXNwYWNlIGRldGFpbAorICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIE9wZXJhdGlvbj4KKyAgICAgICAgc3RydWN0IHVuYXJ5X3RyYWl0c19pbXA7CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgT3BlcmF0aW9uPgorICAgICAgICBzdHJ1Y3QgdW5hcnlfdHJhaXRzX2ltcDxPcGVyYXRpb24qPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl90eXBlOworICAgICAgICAgICAgdHlwZWRlZiBjb25zdCBmdW5jdGlvbl90eXBlICYgICAgICAgICAgICAgcGFyYW1fdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgT3BlcmF0aW9uOjpyZXN1bHRfdHlwZSAgIHJlc3VsdF90eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBPcGVyYXRpb246OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgQT4KKyAgICAgICAgc3RydWN0IHVuYXJ5X3RyYWl0c19pbXA8UigqKShBKT4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBSICgqZnVuY3Rpb25fdHlwZSkoQSk7CisgICAgICAgICAgICB0eXBlZGVmIFIgKCpwYXJhbV90eXBlKShBKTsKKyAgICAgICAgICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgQSBhcmd1bWVudF90eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBPcGVyYXRpb24+CisgICAgICAgIHN0cnVjdCBiaW5hcnlfdHJhaXRzX2ltcDsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgT3BlcmF0aW9uPgorICAgICAgICBzdHJ1Y3QgYmluYXJ5X3RyYWl0c19pbXA8T3BlcmF0aW9uKj4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBPcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IGZ1bmN0aW9uX3R5cGUgJiAgICAgICAgICAgICAgICAgICAgcGFyYW1fdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgT3BlcmF0aW9uOjpyZXN1bHRfdHlwZSAgICAgICAgICByZXN1bHRfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgT3BlcmF0aW9uOjpmaXJzdF9hcmd1bWVudF90eXBlICBmaXJzdF9hcmd1bWVudF90eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBPcGVyYXRpb246OnNlY29uZF9hcmd1bWVudF90eXBlIHNlY29uZF9hcmd1bWVudF90eXBlOworICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgICAgICAgc3RydWN0IGJpbmFyeV90cmFpdHNfaW1wPFIoKikoQTEsQTIpPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIFIgKCpmdW5jdGlvbl90eXBlKShBMSxBMik7CisgICAgICAgICAgICB0eXBlZGVmIFIgKCpwYXJhbV90eXBlKShBMSxBMik7CisgICAgICAgICAgICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIEExIGZpcnN0X2FyZ3VtZW50X3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIEEyIHNlY29uZF9hcmd1bWVudF90eXBlOworICAgICAgICB9OworICAgIH0gLy8gbmFtZXNwYWNlIGRldGFpbAorICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBPcGVyYXRpb24+CisgICAgc3RydWN0IHVuYXJ5X3RyYWl0cworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnVuYXJ5X3RyYWl0c19pbXA8T3BlcmF0aW9uKj46OmZ1bmN0aW9uX3R5cGUgZnVuY3Rpb25fdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnVuYXJ5X3RyYWl0c19pbXA8T3BlcmF0aW9uKj46OnBhcmFtX3R5cGUgICAgcGFyYW1fdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnVuYXJ5X3RyYWl0c19pbXA8T3BlcmF0aW9uKj46OnJlc3VsdF90eXBlICAgcmVzdWx0X3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp1bmFyeV90cmFpdHNfaW1wPE9wZXJhdGlvbio+Ojphcmd1bWVudF90eXBlIGFyZ3VtZW50X3R5cGU7CisgICAgfTsgCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgQT4KKyAgICBzdHJ1Y3QgdW5hcnlfdHJhaXRzPFIoKikoQSk+CisgICAgeworICAgICAgICB0eXBlZGVmIFIgKCpmdW5jdGlvbl90eXBlKShBKTsKKyAgICAgICAgdHlwZWRlZiBSICgqcGFyYW1fdHlwZSkoQSk7CisgICAgICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBBIGFyZ3VtZW50X3R5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBPcGVyYXRpb24+CisgICAgc3RydWN0IGJpbmFyeV90cmFpdHMKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpiaW5hcnlfdHJhaXRzX2ltcDxPcGVyYXRpb24qPjo6ZnVuY3Rpb25fdHlwZSAgICAgICAgZnVuY3Rpb25fdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmJpbmFyeV90cmFpdHNfaW1wPE9wZXJhdGlvbio+OjpwYXJhbV90eXBlICAgICAgICAgICBwYXJhbV90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YmluYXJ5X3RyYWl0c19pbXA8T3BlcmF0aW9uKj46OnJlc3VsdF90eXBlICAgICAgICAgIHJlc3VsdF90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YmluYXJ5X3RyYWl0c19pbXA8T3BlcmF0aW9uKj46OmZpcnN0X2FyZ3VtZW50X3R5cGUgIGZpcnN0X2FyZ3VtZW50X3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpiaW5hcnlfdHJhaXRzX2ltcDxPcGVyYXRpb24qPjo6c2Vjb25kX2FyZ3VtZW50X3R5cGUgc2Vjb25kX2FyZ3VtZW50X3R5cGU7CisgICAgfTsKKyAgICAKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgQTEsIGNsYXNzIEEyPgorICAgIHN0cnVjdCBiaW5hcnlfdHJhaXRzPFIoKikoQTEsQTIpPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBSICgqZnVuY3Rpb25fdHlwZSkoQTEsQTIpOworICAgICAgICB0eXBlZGVmIFIgKCpwYXJhbV90eXBlKShBMSxBMik7CisgICAgICAgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBBMSBmaXJzdF9hcmd1bWVudF90eXBlOworICAgICAgICB0eXBlZGVmIEEyIHNlY29uZF9hcmd1bWVudF90eXBlOworICAgIH07CisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJZiB3ZSBoYXZlIG5vIHBhcnRpYWwgc3BlY2lhbGlzYXRpb24gYXZhaWxhYmxlLCBkZWNheSB0byBhIHNpdHVhdGlvbgorICAgIC8vIHRoYXQgaXMgbm8gd29yc2UgdGhhbiBpbiB0aGUgU3RhbmRhcmQsIGkuZS4sIHB0cl9mdW4gd2lsbCBiZSByZXF1aXJlZC4KKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZXJhdGlvbj4KKyAgICBzdHJ1Y3QgdW5hcnlfdHJhaXRzCisgICAgeworICAgICAgICB0eXBlZGVmIE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl90eXBlOworICAgICAgICB0eXBlZGVmIGNvbnN0IE9wZXJhdGlvbiYgICAgICAgICAgICAgICAgICBwYXJhbV90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIE9wZXJhdGlvbjo6cmVzdWx0X3R5cGUgICByZXN1bHRfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBPcGVyYXRpb246OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgT3BlcmF0aW9uPgorICAgIHN0cnVjdCBiaW5hcnlfdHJhaXRzCisgICAgeworICAgICAgICB0eXBlZGVmIE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fdHlwZTsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBPcGVyYXRpb24gJiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtX3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgT3BlcmF0aW9uOjpyZXN1bHRfdHlwZSAgICAgICAgICByZXN1bHRfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBPcGVyYXRpb246OmZpcnN0X2FyZ3VtZW50X3R5cGUgIGZpcnN0X2FyZ3VtZW50X3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgT3BlcmF0aW9uOjpzZWNvbmRfYXJndW1lbnRfdHlwZSBzZWNvbmRfYXJndW1lbnRfdHlwZTsKKyAgICB9OyAgICAKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisgICAgCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyB1bmFyeV9uZWdhdGUsIG5vdDEKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRlbXBsYXRlIDxjbGFzcyBQcmVkaWNhdGU+CisgICAgY2xhc3MgdW5hcnlfbmVnYXRlCisgICAgICAgIDogcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248dHlwZW5hbWUgdW5hcnlfdHJhaXRzPFByZWRpY2F0ZT46OmFyZ3VtZW50X3R5cGUsYm9vbD4KKyAgICB7CisgICAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IHVuYXJ5X25lZ2F0ZSh0eXBlbmFtZSB1bmFyeV90cmFpdHM8UHJlZGljYXRlPjo6cGFyYW1fdHlwZSB4KQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHJlZCh4KQorICAgICAgICB7fQorICAgICAgICBib29sIG9wZXJhdG9yKCkodHlwZW5hbWUgY2FsbF90cmFpdHM8dHlwZW5hbWUgdW5hcnlfdHJhaXRzPFByZWRpY2F0ZT46OmFyZ3VtZW50X3R5cGU+OjpwYXJhbV90eXBlIHgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhcHJlZCh4KTsKKyAgICAgICAgfQorICAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZW5hbWUgdW5hcnlfdHJhaXRzPFByZWRpY2F0ZT46OmZ1bmN0aW9uX3R5cGUgcHJlZDsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFByZWRpY2F0ZT4KKyAgICB1bmFyeV9uZWdhdGU8UHJlZGljYXRlPiBub3QxKGNvbnN0IFByZWRpY2F0ZSAmcHJlZCkKKyAgICB7CisgICAgICAgIC8vIFRoZSBjYXN0IGlzIHRvIHBsYWNhdGUgQm9ybGFuZCBDKytCdWlsZGVyIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4KKyAgICAgICAgLy8gSSBkb24ndCB0aGluayBpdCBzaG91bGQgYmUgbmVjZXNzYXJ5LgorICAgICAgICByZXR1cm4gdW5hcnlfbmVnYXRlPFByZWRpY2F0ZT4oKHR5cGVuYW1lIHVuYXJ5X3RyYWl0czxQcmVkaWNhdGU+OjpwYXJhbV90eXBlKXByZWQpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcmVkaWNhdGU+CisgICAgdW5hcnlfbmVnYXRlPFByZWRpY2F0ZT4gbm90MShQcmVkaWNhdGUgJnByZWQpCisgICAgeworICAgICAgICByZXR1cm4gdW5hcnlfbmVnYXRlPFByZWRpY2F0ZT4ocHJlZCk7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBiaW5hcnlfbmVnYXRlLCBub3QyCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJlZGljYXRlPgorICAgIGNsYXNzIGJpbmFyeV9uZWdhdGUKKyAgICAgICAgOiBwdWJsaWMgc3RkOjpiaW5hcnlfZnVuY3Rpb248dHlwZW5hbWUgYmluYXJ5X3RyYWl0czxQcmVkaWNhdGU+OjpmaXJzdF9hcmd1bWVudF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPFByZWRpY2F0ZT46OnNlY29uZF9hcmd1bWVudF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sPgorICAgIHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgYmluYXJ5X25lZ2F0ZSh0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPFByZWRpY2F0ZT46OnBhcmFtX3R5cGUgeCkKKyAgICAgICAgICAgIDoKKyAgICAgICAgICAgIHByZWQoeCkKKyAgICAgICAge30KKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKHR5cGVuYW1lIGNhbGxfdHJhaXRzPHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8UHJlZGljYXRlPjo6Zmlyc3RfYXJndW1lbnRfdHlwZT46OnBhcmFtX3R5cGUgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGNhbGxfdHJhaXRzPHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8UHJlZGljYXRlPjo6c2Vjb25kX2FyZ3VtZW50X3R5cGU+OjpwYXJhbV90eXBlIHkpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhcHJlZCh4LHkpOworICAgICAgICB9CisgICAgICBwcml2YXRlOgorICAgICAgICB0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPFByZWRpY2F0ZT46OmZ1bmN0aW9uX3R5cGUgcHJlZDsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFByZWRpY2F0ZT4KKyAgICBiaW5hcnlfbmVnYXRlPFByZWRpY2F0ZT4gbm90Mihjb25zdCBQcmVkaWNhdGUgJnByZWQpCisgICAgeworICAgICAgICAvLyBUaGUgY2FzdCBpcyB0byBwbGFjYXRlIEJvcmxhbmQgQysrQnVpbGRlciBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMuCisgICAgICAgIC8vIEkgZG9uJ3QgdGhpbmsgaXQgc2hvdWxkIGJlIG5lY2Vzc2FyeS4KKyAgICAgICAgcmV0dXJuIGJpbmFyeV9uZWdhdGU8UHJlZGljYXRlPigodHlwZW5hbWUgYmluYXJ5X3RyYWl0czxQcmVkaWNhdGU+OjpwYXJhbV90eXBlKXByZWQpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcmVkaWNhdGU+CisgICAgYmluYXJ5X25lZ2F0ZTxQcmVkaWNhdGU+IG5vdDIoUHJlZGljYXRlICZwcmVkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpbmFyeV9uZWdhdGU8UHJlZGljYXRlPihwcmVkKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYmluZGVyMXN0LCBiaW5kMXN0CisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgT3BlcmF0aW9uPgorICAgIGNsYXNzIGJpbmRlcjFzdAorICAgICAgICA6IHB1YmxpYyBzdGQ6OnVuYXJ5X2Z1bmN0aW9uPHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6c2Vjb25kX2FyZ3VtZW50X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpyZXN1bHRfdHlwZT4KKyAgICB7ICAgICAgIAorICAgICAgcHVibGljOgorICAgICAgICBiaW5kZXIxc3QodHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpwYXJhbV90eXBlIHgsCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjYWxsX3RyYWl0czx0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OmZpcnN0X2FyZ3VtZW50X3R5cGU+OjpwYXJhbV90eXBlIHkpCisgICAgICAgICAgICA6CisgICAgICAgICAgICBvcCh4KSwgdmFsdWUoeSkKKyAgICAgICAge30KKyAgICAgICAgCisgICAgICAgIHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6cmVzdWx0X3R5cGUKKyAgICAgICAgb3BlcmF0b3IoKSh0eXBlbmFtZSBjYWxsX3RyYWl0czx0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OnNlY29uZF9hcmd1bWVudF90eXBlPjo6cGFyYW1fdHlwZSB4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gb3AodmFsdWUsIHgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgcHJvdGVjdGVkOgorICAgICAgICB0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OmZ1bmN0aW9uX3R5cGUgb3A7CisgICAgICAgIHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6Zmlyc3RfYXJndW1lbnRfdHlwZSB2YWx1ZTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZXJhdGlvbj4KKyAgICBpbmxpbmUgYmluZGVyMXN0PE9wZXJhdGlvbj4gYmluZDFzdChjb25zdCBPcGVyYXRpb24gJm9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGNhbGxfdHJhaXRzPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6Zmlyc3RfYXJndW1lbnRfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnBhcmFtX3R5cGUgeCkKKyAgICB7CisgICAgICAgIC8vIFRoZSBjYXN0IGlzIHRvIHBsYWNhdGUgQm9ybGFuZCBDKytCdWlsZGVyIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4KKyAgICAgICAgLy8gSSBkb24ndCB0aGluayBpdCBzaG91bGQgYmUgbmVjZXNzYXJ5LgorICAgICAgICByZXR1cm4gYmluZGVyMXN0PE9wZXJhdGlvbj4oKHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6cGFyYW1fdHlwZSlvcCwgeCk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZXJhdGlvbj4KKyAgICBpbmxpbmUgYmluZGVyMXN0PE9wZXJhdGlvbj4gYmluZDFzdChPcGVyYXRpb24gJm9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGNhbGxfdHJhaXRzPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6Zmlyc3RfYXJndW1lbnRfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnBhcmFtX3R5cGUgeCkKKyAgICB7CisgICAgICAgIHJldHVybiBiaW5kZXIxc3Q8T3BlcmF0aW9uPihvcCwgeCk7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBiaW5kZXIybmQsIGJpbmQybmQKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRlbXBsYXRlIDxjbGFzcyBPcGVyYXRpb24+CisgICAgY2xhc3MgYmluZGVyMm5kCisgICAgICAgIDogcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248dHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpmaXJzdF9hcmd1bWVudF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6cmVzdWx0X3R5cGU+CisgICAgeworICAgICAgcHVibGljOgorICAgICAgICBiaW5kZXIybmQodHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpwYXJhbV90eXBlIHgsCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjYWxsX3RyYWl0czx0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OnNlY29uZF9hcmd1bWVudF90eXBlPjo6cGFyYW1fdHlwZSB5KQorICAgICAgICAgICAgOgorICAgICAgICAgICAgb3AoeCksIHZhbHVlKHkpCisgICAgICAgIHt9CisgICAgICAgIAorICAgICAgICB0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OnJlc3VsdF90eXBlCisgICAgICAgIG9wZXJhdG9yKCkodHlwZW5hbWUgY2FsbF90cmFpdHM8dHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpmaXJzdF9hcmd1bWVudF90eXBlPjo6cGFyYW1fdHlwZSB4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gb3AoeCwgdmFsdWUpOworICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgIAorICAgICAgcHJvdGVjdGVkOgorICAgICAgICB0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OmZ1bmN0aW9uX3R5cGUgb3A7CisgICAgICAgIHR5cGVuYW1lIGJpbmFyeV90cmFpdHM8T3BlcmF0aW9uPjo6c2Vjb25kX2FyZ3VtZW50X3R5cGUgdmFsdWU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBPcGVyYXRpb24+CisgICAgaW5saW5lIGJpbmRlcjJuZDxPcGVyYXRpb24+IGJpbmQybmQoY29uc3QgT3BlcmF0aW9uICZvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjYWxsX3RyYWl0czwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBiaW5hcnlfdHJhaXRzPE9wZXJhdGlvbj46OnNlY29uZF9hcmd1bWVudF90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjo6cGFyYW1fdHlwZSB4KQorICAgIHsKKyAgICAgICAgLy8gVGhlIGNhc3QgaXMgdG8gcGxhY2F0ZSBCb3JsYW5kIEMrK0J1aWxkZXIgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLgorICAgICAgICAvLyBJIGRvbid0IHRoaW5rIGl0IHNob3VsZCBiZSBuZWNlc3NhcnkuCisgICAgICAgIHJldHVybiBiaW5kZXIybmQ8T3BlcmF0aW9uPigodHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpwYXJhbV90eXBlKW9wLCB4KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgT3BlcmF0aW9uPgorICAgIGlubGluZSBiaW5kZXIybmQ8T3BlcmF0aW9uPiBiaW5kMm5kKE9wZXJhdGlvbiAmb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgY2FsbF90cmFpdHM8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgYmluYXJ5X3RyYWl0czxPcGVyYXRpb24+OjpzZWNvbmRfYXJndW1lbnRfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OnBhcmFtX3R5cGUgeCkKKyAgICB7CisgICAgICAgIHJldHVybiBiaW5kZXIybmQ8T3BlcmF0aW9uPihvcCwgeCk7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBtZW1fZnVuLCBldGMKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRlbXBsYXRlIDxjbGFzcyBTLCBjbGFzcyBUPgorICAgIGNsYXNzIG1lbV9mdW5fdCA6IHB1YmxpYyBzdGQ6OnVuYXJ5X2Z1bmN0aW9uPFQqLCBTPgorICAgIHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgbWVtX2Z1bl90KFMgKFQ6OipwKSgpKQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHRyKHApCisgICAgICAgIHt9CisgICAgICAgIFMgb3BlcmF0b3IoKShUKiBwKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKHAtPipwdHIpKCk7CisgICAgICAgIH0KKyAgICAgIHByaXZhdGU6CisgICAgICAgIFMgKFQ6OipwdHIpKCk7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBTLCBjbGFzcyBULCBjbGFzcyBBPgorICAgIGNsYXNzIG1lbV9mdW4xX3QgOiBwdWJsaWMgc3RkOjpiaW5hcnlfZnVuY3Rpb248VCosIEEsIFM+CisgICAgeworICAgICAgcHVibGljOiAgIAorICAgICAgICBleHBsaWNpdCBtZW1fZnVuMV90KFMgKFQ6OipwKShBKSkKKyAgICAgICAgICAgIDoKKyAgICAgICAgICAgIHB0cihwKQorICAgICAgICB7fQorICAgICAgICBTIG9wZXJhdG9yKCkoVCogcCwgdHlwZW5hbWUgY2FsbF90cmFpdHM8QT46OnBhcmFtX3R5cGUgeCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChwLT4qcHRyKSh4KTsKKyAgICAgICAgfQorICAgICAgcHJpdmF0ZToKKyAgICAgICAgUyAoVDo6KnB0cikoQSk7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBTLCBjbGFzcyBUPgorICAgIGNsYXNzIGNvbnN0X21lbV9mdW5fdCA6IHB1YmxpYyBzdGQ6OnVuYXJ5X2Z1bmN0aW9uPGNvbnN0IFQqLCBTPgorICAgIHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgY29uc3RfbWVtX2Z1bl90KFMgKFQ6OipwKSgpIGNvbnN0KQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHRyKHApCisgICAgICAgIHt9CisgICAgICAgIFMgb3BlcmF0b3IoKShjb25zdCBUKiBwKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKHAtPipwdHIpKCk7CisgICAgICAgIH0KKyAgICAgIHByaXZhdGU6CisgICAgICAgIFMgKFQ6OipwdHIpKCkgY29uc3Q7ICAgICAgICAKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFMsIGNsYXNzIFQsIGNsYXNzIEE+CisgICAgY2xhc3MgY29uc3RfbWVtX2Z1bjFfdCA6IHB1YmxpYyBzdGQ6OmJpbmFyeV9mdW5jdGlvbjxjb25zdCBUKiwgQSwgUz4KKyAgICB7CisgICAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IGNvbnN0X21lbV9mdW4xX3QoUyAoVDo6KnApKEEpIGNvbnN0KQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHRyKHApCisgICAgICAgIHt9CisgICAgICAgIFMgb3BlcmF0b3IoKShjb25zdCBUKiBwLCB0eXBlbmFtZSBjYWxsX3RyYWl0czxBPjo6cGFyYW1fdHlwZSB4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKHAtPipwdHIpKHgpOworICAgICAgICB9CisgICAgICBwcml2YXRlOgorICAgICAgICBTIChUOjoqcHRyKShBKSBjb25zdDsKKyAgICB9OworICAgIAorICAgIHRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+CisgICAgaW5saW5lIG1lbV9mdW5fdDxTLFQ+IG1lbV9mdW4oUyAoVDo6KmYpKCkpCisgICAgeworICAgICAgICByZXR1cm4gbWVtX2Z1bl90PFMsVD4oZik7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQsIGNsYXNzIEE+CisgICAgaW5saW5lIG1lbV9mdW4xX3Q8UyxULEE+IG1lbV9mdW4oUyAoVDo6KmYpKEEpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1lbV9mdW4xX3Q8UyxULEE+KGYpOworICAgIH0KKworI2lmbmRlZiBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9DT05TVAorICAgIHRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+CisgICAgaW5saW5lIGNvbnN0X21lbV9mdW5fdDxTLFQ+IG1lbV9mdW4oUyAoVDo6KmYpKCkgY29uc3QpCisgICAgeworICAgICAgICByZXR1cm4gY29uc3RfbWVtX2Z1bl90PFMsVD4oZik7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQsIGNsYXNzIEE+CisgICAgaW5saW5lIGNvbnN0X21lbV9mdW4xX3Q8UyxULEE+IG1lbV9mdW4oUyAoVDo6KmYpKEEpIGNvbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnN0X21lbV9mdW4xX3Q8UyxULEE+KGYpOworICAgIH0KKyNlbmRpZiAvLyBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9DT05TVAorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBtZW1fZnVuX3JlZiwgZXRjCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUywgY2xhc3MgVD4KKyAgICBjbGFzcyBtZW1fZnVuX3JlZl90IDogcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248VCYsIFM+CisgICAgeworICAgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBtZW1fZnVuX3JlZl90KFMgKFQ6OipwKSgpKQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHRyKHApCisgICAgICAgIHt9CisgICAgICAgIFMgb3BlcmF0b3IoKShUJiBwKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKHAuKnB0cikoKTsKKyAgICAgICAgfQorICAgICAgcHJpdmF0ZToKKyAgICAgICAgUyAoVDo6KnB0cikoKTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFMsIGNsYXNzIFQsIGNsYXNzIEE+CisgICAgY2xhc3MgbWVtX2Z1bjFfcmVmX3QgOiBwdWJsaWMgc3RkOjpiaW5hcnlfZnVuY3Rpb248VCYsIEEsIFM+CisgICAgeworICAgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBtZW1fZnVuMV9yZWZfdChTIChUOjoqcCkoQSkpCisgICAgICAgICAgICA6CisgICAgICAgICAgICBwdHIocCkKKyAgICAgICAge30KKyAgICAgICAgUyBvcGVyYXRvcigpKFQmIHAsIHR5cGVuYW1lIGNhbGxfdHJhaXRzPEE+OjpwYXJhbV90eXBlIHgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAocC4qcHRyKSh4KTsKKyAgICAgICAgfQorICAgICAgcHJpdmF0ZToKKyAgICAgICAgUyAoVDo6KnB0cikoQSk7CisgICAgfTsKKyAgICAKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUywgY2xhc3MgVD4KKyAgICBjbGFzcyBjb25zdF9tZW1fZnVuX3JlZl90IDogcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248Y29uc3QgVCYsIFM+CisgICAgeworICAgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBjb25zdF9tZW1fZnVuX3JlZl90KFMgKFQ6OipwKSgpIGNvbnN0KQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHRyKHApCisgICAgICAgIHt9CisgICAgICAgIAorICAgICAgICBTIG9wZXJhdG9yKCkoY29uc3QgVCAmcCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChwLipwdHIpKCk7CisgICAgICAgIH0KKyAgICAgIHByaXZhdGU6CisgICAgICAgIFMgKFQ6OipwdHIpKCkgY29uc3Q7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBTLCBjbGFzcyBULCBjbGFzcyBBPgorICAgIGNsYXNzIGNvbnN0X21lbV9mdW4xX3JlZl90IDogcHVibGljIHN0ZDo6YmluYXJ5X2Z1bmN0aW9uPGNvbnN0IFQmLCBBLCBTPgorICAgIHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgY29uc3RfbWVtX2Z1bjFfcmVmX3QoUyAoVDo6KnApKEEpIGNvbnN0KQorICAgICAgICAgICAgOgorICAgICAgICAgICAgcHRyKHApCisgICAgICAgIHt9CisKKyAgICAgICAgUyBvcGVyYXRvcigpKGNvbnN0IFQmIHAsIHR5cGVuYW1lIGNhbGxfdHJhaXRzPEE+OjpwYXJhbV90eXBlIHgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAocC4qcHRyKSh4KTsKKyAgICAgICAgfQorICAgICAgcHJpdmF0ZToKKyAgICAgICAgUyAoVDo6KnB0cikoQSkgY29uc3Q7CisgICAgfTsKKyAgICAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBTLCBjbGFzcyBUPgorICAgIGlubGluZSBtZW1fZnVuX3JlZl90PFMsVD4gbWVtX2Z1bl9yZWYoUyAoVDo6KmYpKCkpCisgICAgeworICAgICAgICByZXR1cm4gbWVtX2Z1bl9yZWZfdDxTLFQ+KGYpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQsIGNsYXNzIEE+CisgICAgaW5saW5lIG1lbV9mdW4xX3JlZl90PFMsVCxBPiBtZW1fZnVuX3JlZihTIChUOjoqZikoQSkpCisgICAgeworICAgICAgICByZXR1cm4gbWVtX2Z1bjFfcmVmX3Q8UyxULEE+KGYpOworICAgIH0KKworI2lmbmRlZiBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9DT05TVAorICAgIHRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+CisgICAgaW5saW5lIGNvbnN0X21lbV9mdW5fcmVmX3Q8UyxUPiBtZW1fZnVuX3JlZihTIChUOjoqZikoKSBjb25zdCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb25zdF9tZW1fZnVuX3JlZl90PFMsVD4oZik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgUywgY2xhc3MgVCwgY2xhc3MgQT4KKyAgICBpbmxpbmUgY29uc3RfbWVtX2Z1bjFfcmVmX3Q8UyxULEE+IG1lbV9mdW5fcmVmKFMgKFQ6OipmKShBKSBjb25zdCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb25zdF9tZW1fZnVuMV9yZWZfdDxTLFQsQT4oZik7CisgICAgfSAgIAorI2VuZGlmIC8vIEJPT1NUX05PX1BPSU5URVJfVE9fTUVNQkVSX0NPTlNUCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHB0cl9mdW4KKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRlbXBsYXRlIDxjbGFzcyBBcmcsIGNsYXNzIFJlc3VsdD4KKyAgICBjbGFzcyBwb2ludGVyX3RvX3VuYXJ5X2Z1bmN0aW9uIDogcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248QXJnLFJlc3VsdD4KKyAgICB7CisgICAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IHBvaW50ZXJfdG9fdW5hcnlfZnVuY3Rpb24oUmVzdWx0ICgqZikoQXJnKSkKKyAgICAgICAgICAgIDoKKyAgICAgICAgICAgIGZ1bmMoZikKKyAgICAgICAge30KKworICAgICAgICBSZXN1bHQgb3BlcmF0b3IoKSh0eXBlbmFtZSBjYWxsX3RyYWl0czxBcmc+OjpwYXJhbV90eXBlIHgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmdW5jKHgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgcHJpdmF0ZToKKyAgICAgICAgUmVzdWx0ICgqZnVuYykoQXJnKTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEFyZywgY2xhc3MgUmVzdWx0PgorICAgIGlubGluZSBwb2ludGVyX3RvX3VuYXJ5X2Z1bmN0aW9uPEFyZyxSZXN1bHQ+IHB0cl9mdW4oUmVzdWx0ICgqZikoQXJnKSkKKyAgICB7CisgICAgICAgIHJldHVybiBwb2ludGVyX3RvX3VuYXJ5X2Z1bmN0aW9uPEFyZyxSZXN1bHQ+KGYpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBSZXN1bHQ+CisgICAgY2xhc3MgcG9pbnRlcl90b19iaW5hcnlfZnVuY3Rpb24gOiBwdWJsaWMgc3RkOjpiaW5hcnlfZnVuY3Rpb248QXJnMSxBcmcyLFJlc3VsdD4KKyAgICB7CisgICAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IHBvaW50ZXJfdG9fYmluYXJ5X2Z1bmN0aW9uKFJlc3VsdCAoKmYpKEFyZzEsIEFyZzIpKQorICAgICAgICAgICAgOgorICAgICAgICAgICAgZnVuYyhmKQorICAgICAgICB7fQorICAgICAgICAKKyAgICAgICAgUmVzdWx0IG9wZXJhdG9yKCkodHlwZW5hbWUgY2FsbF90cmFpdHM8QXJnMT46OnBhcmFtX3R5cGUgeCwgdHlwZW5hbWUgY2FsbF90cmFpdHM8QXJnMj46OnBhcmFtX3R5cGUgeSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZ1bmMoeCx5KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgIHByaXZhdGU6CisgICAgICAgIFJlc3VsdCAoKmZ1bmMpKEFyZzEsIEFyZzIpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgUmVzdWx0PgorICAgIGlubGluZSBwb2ludGVyX3RvX2JpbmFyeV9mdW5jdGlvbjxBcmcxLEFyZzIsUmVzdWx0PiBwdHJfZnVuKFJlc3VsdCAoKmYpKEFyZzEsIEFyZzIpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJfdG9fYmluYXJ5X2Z1bmN0aW9uPEFyZzEsQXJnMixSZXN1bHQ+KGYpOworICAgIH0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbmFsL2hhc2gvaGFzaF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbmFsL2hhc2gvaGFzaF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YmFiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uYWwvaGFzaC9oYXNoX2Z3ZC5ocHAKQEAgLTAsMCArMSw0MCBAQAorCisvLyBDb3B5cmlnaHQgMjAwNS0yMDA5IERhbmllbCBKYW1lcy4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgQmFzZWQgb24gUGV0ZXIgRGltb3YncyBwcm9wb3NhbAorLy8gIGh0dHA6Ly93d3cub3Blbi1zdGQub3JnL0pUQzEvU0MyMi9XRzIxL2RvY3MvcGFwZXJzLzIwMDUvbjE3NTYucGRmCisvLyAgaXNzdWUgNi4xOC4gCisKKyNpZiAhZGVmaW5lZChCT09TVF9GVU5DVElPTkFMX0hBU0hfRldEX0hQUCkKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05BTF9IQVNIX0ZXRF9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGhhc2g7CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBoYXNoX2NvbWJpbmUoc3RkOjpzaXplX3QmIHNlZWQsIFQmIHYpOworI2Vsc2UKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBoYXNoX2NvbWJpbmUoc3RkOjpzaXplX3QmIHNlZWQsIFQgY29uc3QmIHYpOworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSXQ+IHN0ZDo6c2l6ZV90IGhhc2hfcmFuZ2UoSXQsIEl0KTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSXQ+IHZvaWQgaGFzaF9yYW5nZShzdGQ6OnNpemVfdCYsIEl0LCBJdCk7CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTUxKSkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIHN0ZDo6c2l6ZV90IGhhc2hfcmFuZ2UoVCosIFQqKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIHZvaWQgaGFzaF9yYW5nZShzdGQ6OnNpemVfdCYsIFQqLCBUKik7CisjZW5kaWYKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2Z1bmN0aW9uYWwvaGFzaF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbmFsL2hhc2hfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjkzZDBiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9mdW5jdGlvbmFsL2hhc2hfZndkLmhwcApAQCAtMCwwICsxLDcgQEAKKworLy8gQ29weXJpZ2h0IDIwMDUtMjAwOSBEYW5pZWwgSmFtZXMuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2luY2x1ZGUgPG5kbmJvb3N0L2Z1bmN0aW9uYWwvaGFzaC9oYXNoX2Z3ZC5ocHA+CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvZ2V0X3BvaW50ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9nZXRfcG9pbnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRlYTZjNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvZ2V0X3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsNDggQEAKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiBhbmQgRGF2aWQgQWJyYWhhbXMgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgR0VUX1BPSU5URVJfRFdBMjAwMjEyMTlfSFBQCisjZGVmaW5lIEdFVF9QT0lOVEVSX0RXQTIwMDIxMjE5X0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gSW4gb3JkZXIgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHdpdGggQm9vc3QuVFIxCisvLyB3ZSBtYWtlIHN1cmUgdGhhdCBvdXIgaW5jbHVkZSBvZiA8bWVtb3J5PiBkb2Vzbid0IHRyeSB0bworLy8gcHVsbCBpbiB0aGUgVFIxIGhlYWRlcnM6IHRoYXQncyB3aHkgd2UgdXNlIHRoaXMgaGVhZGVyIAorLy8gcmF0aGVyIHRoYW4gaW5jbHVkaW5nIDxtZW1vcnk+IGRpcmVjdGx5OgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvbWVtb3J5LmhwcD4gIC8vIHN0ZDo6YXV0b19wdHIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgCisKKy8vIGdldF9wb2ludGVyKHApIGV4dHJhY3RzIGEgLT4qIGNhcGFibGUgcG9pbnRlciBmcm9tIHAKKwordGVtcGxhdGU8Y2xhc3MgVD4gVCAqIGdldF9wb2ludGVyKFQgKiBwKQoreworICAgIHJldHVybiBwOworfQorCisvLyBnZXRfcG9pbnRlcihzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCkgaGFzIGJlZW4gbW92ZWQgdG8gc2hhcmVkX3B0ci5ocHAKKwordGVtcGxhdGU8Y2xhc3MgVD4gVCAqIGdldF9wb2ludGVyKHN0ZDo6YXV0b19wdHI8VD4gY29uc3QmIHApCit7CisgICAgcmV0dXJuIHAuZ2V0KCk7Cit9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSICkKKwordGVtcGxhdGU8Y2xhc3MgVD4gVCAqIGdldF9wb2ludGVyKCBzdGQ6OnVuaXF1ZV9wdHI8VD4gY29uc3QmIHAgKQoreworICAgIHJldHVybiBwLmdldCgpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBUICogZ2V0X3BvaW50ZXIoIHN0ZDo6c2hhcmVkX3B0cjxUPiBjb25zdCYgcCApCit7CisgICAgcmV0dXJuIHAuZ2V0KCk7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gR0VUX1BPSU5URVJfRFdBMjAwMjEyMTlfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2luZGlyZWN0X3JlZmVyZW5jZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2luZGlyZWN0X3JlZmVyZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRkNWU3MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaW5kaXJlY3RfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDQzIEBACisjaWZuZGVmIElORElSRUNUX1JFRkVSRU5DRV9EV0EyMDA0MTVfSFBQCisjIGRlZmluZSBJTkRJUkVDVF9SRUZFUkVOQ0VfRFdBMjAwNDE1X0hQUAorCisvLworLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMKKy8vIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gdHlwZW5hbWUgaW5kaXJlY3RfcmVmZXJlbmNlPFA+Ojp0eXBlIHByb3ZpZGVzIHRoZSB0eXBlIG9mICpwLgorLy8KKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvaXRlcmF0b3IvZG9jL3BvaW50ZWUuaHRtbAorLy8KKworIyBpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaXNfaW5jcmVtZW50YWJsZS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX3RyYWl0cy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcG9pbnRlZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorCituYW1lc3BhY2UgZGV0YWlsCit7CisgIHRlbXBsYXRlIDxjbGFzcyBQPgorICBzdHJ1Y3Qgc21hcnRfcHRyX3JlZmVyZW5jZQorICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojpwb2ludGVlPFA+Ojp0eXBlJiB0eXBlOworICB9OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUD4KK3N0cnVjdCBpbmRpcmVjdF9yZWZlcmVuY2UKKyAgOiBtcGw6OmV2YWxfaWY8CisgICAgICAgIGRldGFpbDo6aXNfaW5jcmVtZW50YWJsZTxQPgorICAgICAgLCBpdGVyYXRvcl9yZWZlcmVuY2U8UD4KKyAgICAgICwgZGV0YWlsOjpzbWFydF9wdHJfcmVmZXJlbmNlPFA+CisgICAgPgoreworfTsKKyAgCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gSU5ESVJFQ1RfUkVGRVJFTkNFX0RXQTIwMDQxNV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaW50ZWdlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2ludGVnZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2OTJiY2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2ludGVnZXIuaHBwCkBAIC0wLDAgKzEsMjYxIEBACisvLyAgYm9vc3QgaW50ZWdlci5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IEJlbWFuIERhd2VzIGFuZCBEYXJ5bGUgV2Fsa2VyIDE5OTkuICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2ludGVnZXIgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICBSZXZpc2lvbiBIaXN0b3J5CisvLyAgIDIyIFNlcCAwMSAgQWRkZWQgdmFsdWUtYmFzZWQgaW50ZWdlciB0ZW1wbGF0ZXMuIChEYXJ5bGUgV2Fsa2VyKQorLy8gICAwMSBBcHIgMDEgIE1vZGlmaWVkIHRvIHVzZSBuZXcgPG5kbmJvb3N0L2xpbWl0cy5ocHA+IGhlYWRlci4gKEpvaG4gTWFkZG9jaykKKy8vICAgMzAgSnVsIDAwICBBZGQgdHlwZW5hbWUgc3ludGF4IGZpeCAoSmVucyBNYXVyZXIpCisvLyAgIDI4IEF1ZyA5OSAgSW5pdGlhbCB2ZXJzaW9uCisKKyNpZm5kZWYgQk9PU1RfSU5URUdFUl9IUFAKKyNkZWZpbmUgQk9PU1RfSU5URUdFUl9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2ludGVnZXJfZndkLmhwcD4gIC8vIHNlbGYgaW5jbHVkZQorCisjaW5jbHVkZSA8bmRuYm9vc3QvaW50ZWdlcl90cmFpdHMuaHBwPiAgLy8gZm9yIG5kbmJvb3N0Ojo6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0cworI2luY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+ICAgICAgICAgIC8vIGZvciA6OnN0ZDo6bnVtZXJpY19saW1pdHMKKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkaW50LmhwcD4gICAgICAgICAvLyBmb3IgbmRuYm9vc3Q6OmludDY0X3QgYW5kIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKworLy8KKy8vIFdlIHNpbXBseSBjYW5ub3QgaW5jbHVkZSB0aGlzIGhlYWRlciBvbiBnY2Mgd2l0aG91dCBnZXR0aW5nIGNvcGlvdXMgd2FybmluZ3Mgb2YgdGhlIGtpbmQ6CisvLworLy8gYm9vc3QvaW50ZWdlci5ocHA6Nzc6MzA6IHdhcm5pbmc6IHVzZSBvZiBDOTkgbG9uZyBsb25nIGludGVnZXIgY29uc3RhbnQKKy8vCisvLyBBbmQgeWV0IHRoZXJlIGlzIG5vIG90aGVyIHJlYXNvbmFibGUgaW1wbGVtZW50YXRpb24sIHNvIHdlIGRlY2xhcmUgdGhpcyBhIHN5c3RlbSBoZWFkZXIKKy8vIHRvIHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzLgorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gNCkKKyNwcmFnbWEgR0NDIHN5c3RlbV9oZWFkZXIKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworICAvLyAgSGVscGVyIHRlbXBsYXRlcyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAvLyAgZmFzdCBpbnRlZ2VycyBmcm9tIGxlYXN0IGludGVnZXJzCisgIC8vICBpbnRfZmFzdF90PD4gd29ya3MgY29ycmVjdGx5IGZvciB1bnNpZ25lZCB0b28sIGluIHNwaXRlIG9mIHRoZSBuYW1lLgorICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTGVhc3RJbnQgPgorICBzdHJ1Y3QgaW50X2Zhc3RfdCAKKyAgeyAKKyAgICAgdHlwZWRlZiBMZWFzdEludCBmYXN0OyAKKyAgICAgdHlwZWRlZiBmYXN0ICAgICB0eXBlOworICB9OyAvLyBpbXBzIG1heSBzcGVjaWFsaXplCisKKyAgbmFtZXNwYWNlIGRldGFpbHsKKworICAvLyAgY29udmVydCBjYXRlZ29yeSB0byB0eXBlIAorICB0ZW1wbGF0ZTwgaW50IENhdGVnb3J5ID4gc3RydWN0IGludF9sZWFzdF9oZWxwZXIge307IC8vIGRlZmF1bHQgaXMgZW1wdHkKKyAgdGVtcGxhdGU8IGludCBDYXRlZ29yeSA+IHN0cnVjdCB1aW50X2xlYXN0X2hlbHBlciB7fTsgLy8gZGVmYXVsdCBpcyBlbXB0eQorCisgIC8vICBzcGVjaWFsaXphdG9uczogMT1sb25nLCAyPWludCwgMz1zaG9ydCwgND1zaWduZWQgY2hhciwKKyAgLy8gICAgIDY9dW5zaWduZWQgbG9uZywgNz11bnNpZ25lZCBpbnQsIDg9dW5zaWduZWQgc2hvcnQsIDk9dW5zaWduZWQgY2hhcgorICAvLyAgbm8gc3BlY2lhbGl6YXRpb25zIGZvciAwIGFuZCA1OiByZXF1ZXN0cyBmb3IgYSB0eXBlID4gbG9uZyBhcmUgaW4gZXJyb3IKKyNpZmRlZiBCT09TVF9IQVNfTE9OR19MT05HCisgIHRlbXBsYXRlPD4gc3RydWN0IGludF9sZWFzdF9oZWxwZXI8MT4geyB0eXBlZGVmIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSBsZWFzdDsgfTsKKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorICB0ZW1wbGF0ZTw+IHN0cnVjdCBpbnRfbGVhc3RfaGVscGVyPDE+IHsgdHlwZWRlZiBfX2ludDY0IGxlYXN0OyB9OworI2VuZGlmCisgIHRlbXBsYXRlPD4gc3RydWN0IGludF9sZWFzdF9oZWxwZXI8Mj4geyB0eXBlZGVmIGxvbmcgbGVhc3Q7IH07CisgIHRlbXBsYXRlPD4gc3RydWN0IGludF9sZWFzdF9oZWxwZXI8Mz4geyB0eXBlZGVmIGludCBsZWFzdDsgfTsKKyAgdGVtcGxhdGU8PiBzdHJ1Y3QgaW50X2xlYXN0X2hlbHBlcjw0PiB7IHR5cGVkZWYgc2hvcnQgbGVhc3Q7IH07CisgIHRlbXBsYXRlPD4gc3RydWN0IGludF9sZWFzdF9oZWxwZXI8NT4geyB0eXBlZGVmIHNpZ25lZCBjaGFyIGxlYXN0OyB9OworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKKyAgdGVtcGxhdGU8PiBzdHJ1Y3QgdWludF9sZWFzdF9oZWxwZXI8MT4geyB0eXBlZGVmIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUgbGVhc3Q7IH07CisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKKyAgdGVtcGxhdGU8PiBzdHJ1Y3QgdWludF9sZWFzdF9oZWxwZXI8MT4geyB0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgbGVhc3Q7IH07CisjZW5kaWYKKyAgdGVtcGxhdGU8PiBzdHJ1Y3QgdWludF9sZWFzdF9oZWxwZXI8Mj4geyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbGVhc3Q7IH07CisgIHRlbXBsYXRlPD4gc3RydWN0IHVpbnRfbGVhc3RfaGVscGVyPDM+IHsgdHlwZWRlZiB1bnNpZ25lZCBpbnQgbGVhc3Q7IH07CisgIHRlbXBsYXRlPD4gc3RydWN0IHVpbnRfbGVhc3RfaGVscGVyPDQ+IHsgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBsZWFzdDsgfTsKKyAgdGVtcGxhdGU8PiBzdHJ1Y3QgdWludF9sZWFzdF9oZWxwZXI8NT4geyB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgbGVhc3Q7IH07CisKKyAgdGVtcGxhdGUgPGludCBCaXRzPgorICBzdHJ1Y3QgZXhhY3Rfc2lnbmVkX2Jhc2VfaGVscGVye307CisgIHRlbXBsYXRlIDxpbnQgQml0cz4KKyAgc3RydWN0IGV4YWN0X3Vuc2lnbmVkX2Jhc2VfaGVscGVye307CisKKyAgdGVtcGxhdGUgPD4gc3RydWN0IGV4YWN0X3NpZ25lZF9iYXNlX2hlbHBlcjxzaXplb2Yoc2lnbmVkIGNoYXIpKiBDSEFSX0JJVD4geyB0eXBlZGVmIHNpZ25lZCBjaGFyIGV4YWN0OyB9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgZXhhY3RfdW5zaWduZWRfYmFzZV9oZWxwZXI8c2l6ZW9mKHVuc2lnbmVkIGNoYXIpKiBDSEFSX0JJVD4geyB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZXhhY3Q7IH07CisjaWYgVVNIUlRfTUFYICE9IFVDSEFSX01BWAorICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgZXhhY3Rfc2lnbmVkX2Jhc2VfaGVscGVyPHNpemVvZihzaG9ydCkqIENIQVJfQklUPiB7IHR5cGVkZWYgc2hvcnQgZXhhY3Q7IH07CisgIHRlbXBsYXRlIDw+IHN0cnVjdCBleGFjdF91bnNpZ25lZF9iYXNlX2hlbHBlcjxzaXplb2YodW5zaWduZWQgc2hvcnQpKiBDSEFSX0JJVD4geyB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGV4YWN0OyB9OworI2VuZGlmCisjaWYgVUlOVF9NQVggIT0gVVNIUlRfTUFYCisgIHRlbXBsYXRlIDw+IHN0cnVjdCBleGFjdF9zaWduZWRfYmFzZV9oZWxwZXI8c2l6ZW9mKGludCkqIENIQVJfQklUPiB7IHR5cGVkZWYgaW50IGV4YWN0OyB9OworICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgZXhhY3RfdW5zaWduZWRfYmFzZV9oZWxwZXI8c2l6ZW9mKHVuc2lnbmVkIGludCkqIENIQVJfQklUPiB7IHR5cGVkZWYgdW5zaWduZWQgaW50IGV4YWN0OyB9OworI2VuZGlmCisjaWYgVUxPTkdfTUFYICE9IFVJTlRfTUFYCisgIHRlbXBsYXRlIDw+IHN0cnVjdCBleGFjdF9zaWduZWRfYmFzZV9oZWxwZXI8c2l6ZW9mKGxvbmcpKiBDSEFSX0JJVD4geyB0eXBlZGVmIGxvbmcgZXhhY3Q7IH07CisgIHRlbXBsYXRlIDw+IHN0cnVjdCBleGFjdF91bnNpZ25lZF9iYXNlX2hlbHBlcjxzaXplb2YodW5zaWduZWQgbG9uZykqIENIQVJfQklUPiB7IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBleGFjdDsgfTsKKyNlbmRpZgorI2lmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykgJiZcCisgICAoKGRlZmluZWQoVUxMT05HX01BWCkgJiYgKFVMTE9OR19NQVggIT0gVUxPTkdfTUFYKSkgfHxcCisgICAgKGRlZmluZWQoVUxPTkdfTE9OR19NQVgpICYmIChVTE9OR19MT05HX01BWCAhPSBVTE9OR19NQVgpKSB8fFwKKyAgICAoZGVmaW5lZChVTE9OR0xPTkdfTUFYKSAmJiAoVUxPTkdMT05HX01BWCAhPSBVTE9OR19NQVgpKSB8fFwKKyAgICAoZGVmaW5lZChfVUxMT05HX01BWCkgJiYgKF9VTExPTkdfTUFYICE9IFVMT05HX01BWCkpKQorICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgZXhhY3Rfc2lnbmVkX2Jhc2VfaGVscGVyPHNpemVvZihuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUpKiBDSEFSX0JJVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSBleGFjdDsgfTsKKyAgdGVtcGxhdGUgPD4gc3RydWN0IGV4YWN0X3Vuc2lnbmVkX2Jhc2VfaGVscGVyPHNpemVvZihuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlKSogQ0hBUl9CSVQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlIGV4YWN0OyB9OworI2VuZGlmCisKKworICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworICAvLyAgaW50ZWdlciB0ZW1wbGF0ZXMgc3BlY2lmeWluZyBudW1iZXIgb2YgYml0cyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAvLyAgc2lnbmVkCisgIHRlbXBsYXRlPCBpbnQgQml0cyA+ICAgLy8gYml0cyAoaW5jbHVkaW5nIHNpZ24pIHJlcXVpcmVkCisgIHN0cnVjdCBpbnRfdCA6IHB1YmxpYyBkZXRhaWw6OmV4YWN0X3NpZ25lZF9iYXNlX2hlbHBlcjxCaXRzPgorICB7CisgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUX01TRyhCaXRzIDw9IChpbnQpKHNpemVvZihuZG5ib29zdDo6aW50bWF4X3QpICogQ0hBUl9CSVQpLAorICAgICAgICAgIk5vIHN1aXRhYmxlIHNpZ25lZCBpbnRlZ2VyIHR5cGUgd2l0aCB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBiaXRzIGlzIGF2YWlsYWJsZS4iKTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjppbnRfbGVhc3RfaGVscGVyCisgICAgICAgIDwKKyNpZmRlZiBCT09TVF9IQVNfTE9OR19MT05HCisgICAgICAgICAgKEJpdHMgPD0gKGludCkoc2l6ZW9mKG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSkgKiBDSEFSX0JJVCkpICsKKyNlbHNlCisgICAgICAgICAgIDEgKworI2VuZGlmCisgICAgICAgICAgKEJpdHMtMSA8PSA6OnN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz46OmRpZ2l0cykgKworICAgICAgICAgIChCaXRzLTEgPD0gOjpzdGQ6Om51bWVyaWNfbGltaXRzPGludD46OmRpZ2l0cykgKworICAgICAgICAgIChCaXRzLTEgPD0gOjpzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6ZGlnaXRzKSArCisgICAgICAgICAgKEJpdHMtMSA8PSA6OnN0ZDo6bnVtZXJpY19saW1pdHM8c2lnbmVkIGNoYXI+OjpkaWdpdHMpCisgICAgICAgID46OmxlYXN0ICBsZWFzdDsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaW50X2Zhc3RfdDxsZWFzdD46OnR5cGUgIGZhc3Q7CisgIH07CisKKyAgLy8gIHVuc2lnbmVkCisgIHRlbXBsYXRlPCBpbnQgQml0cyA+ICAgLy8gYml0cyByZXF1aXJlZAorICBzdHJ1Y3QgdWludF90IDogcHVibGljIGRldGFpbDo6ZXhhY3RfdW5zaWduZWRfYmFzZV9oZWxwZXI8Qml0cz4KKyAgeworICAgICBCT09TVF9TVEFUSUNfQVNTRVJUX01TRyhCaXRzIDw9IChpbnQpKHNpemVvZihuZG5ib29zdDo6dWludG1heF90KSAqIENIQVJfQklUKSwKKyAgICAgICAgICJObyBzdWl0YWJsZSB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgd2l0aCB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBiaXRzIGlzIGF2YWlsYWJsZS4iKTsKKyNpZiAoZGVmaW5lZChfX0JPUkxBTkRDX18pIHx8IGRlZmluZWQoX19DT0RFR0VBUl9fKSkgJiYgZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKQorICAgICAvLyBJdCdzIHJlYWxseSBub3QgY2xlYXIgd2h5IHRoaXMgd29ya2Fyb3VuZCBzaG91bGQgYmUgbmVlZGVkLi4uIHNocnVnIEkgZ3Vlc3MhICBKTQorICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBzID0gCisgICAgICAgICAgIDYgKworICAgICAgICAgIChCaXRzIDw9IDo6c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBsb25nPjo6ZGlnaXRzKSArCisgICAgICAgICAgKEJpdHMgPD0gOjpzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGludD46OmRpZ2l0cykgKworICAgICAgICAgIChCaXRzIDw9IDo6c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBzaG9ydD46OmRpZ2l0cykgKworICAgICAgICAgIChCaXRzIDw9IDo6c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPjo6ZGlnaXRzKSk7CisgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjppbnRfbGVhc3RfaGVscGVyPCA6Om5kbmJvb3N0Ojp1aW50X3Q8Qml0cz46OnM+OjpsZWFzdCBsZWFzdDsKKyNlbHNlCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6dWludF9sZWFzdF9oZWxwZXIKKyAgICAgICAgPCAKKyNpZmRlZiBCT09TVF9IQVNfTE9OR19MT05HCisgICAgICAgICAgKEJpdHMgPD0gKGludCkoc2l6ZW9mKG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSkgKiBDSEFSX0JJVCkpICsKKyNlbHNlCisgICAgICAgICAgIDEgKworI2VuZGlmCisgICAgICAgICAgKEJpdHMgPD0gOjpzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjpkaWdpdHMpICsKKyAgICAgICAgICAoQml0cyA8PSA6OnN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50Pjo6ZGlnaXRzKSArCisgICAgICAgICAgKEJpdHMgPD0gOjpzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0Pjo6ZGlnaXRzKSArCisgICAgICAgICAgKEJpdHMgPD0gOjpzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGNoYXI+OjpkaWdpdHMpCisgICAgICAgID46OmxlYXN0ICBsZWFzdDsKKyNlbmRpZgorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpbnRfZmFzdF90PGxlYXN0Pjo6dHlwZSAgZmFzdDsKKyAgICAgIC8vIGludF9mYXN0X3Q8PiB3b3JrcyBjb3JyZWN0bHkgZm9yIHVuc2lnbmVkIHRvbywgaW4gc3BpdGUgb2YgdGhlIG5hbWUuCisgIH07CisKKyAgLy8gIGludGVnZXIgdGVtcGxhdGVzIHNwZWNpZnlpbmcgZXh0cmVtZSB2YWx1ZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgLy8gIHNpZ25lZAorI2lmICFkZWZpbmVkKEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QpICYmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyAgdGVtcGxhdGU8IG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSBNYXhWYWx1ZSA+ICAgLy8gbWF4aW11bSB2YWx1ZSB0byByZXF1aXJlIHN1cHBvcnQKKyNlbHNlCisgIHRlbXBsYXRlPCBsb25nIE1heFZhbHVlID4gICAvLyBtYXhpbXVtIHZhbHVlIHRvIHJlcXVpcmUgc3VwcG9ydAorI2VuZGlmCisgIHN0cnVjdCBpbnRfbWF4X3ZhbHVlX3QgCisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjppbnRfbGVhc3RfaGVscGVyCisgICAgICAgIDwKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisgICAgICAgICAgKE1heFZhbHVlIDw9IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT46OmNvbnN0X21heCkgKworI2Vsc2UKKyAgICAgICAgICAgMSArCisjZW5kaWYKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8bG9uZz46OmNvbnN0X21heCkgKworICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czxpbnQ+Ojpjb25zdF9tYXgpICsKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8c2hvcnQ+Ojpjb25zdF9tYXgpICsKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8c2lnbmVkIGNoYXI+Ojpjb25zdF9tYXgpCisgICAgICAgID46OmxlYXN0ICBsZWFzdDsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaW50X2Zhc3RfdDxsZWFzdD46OnR5cGUgIGZhc3Q7CisgIH07CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisgIHRlbXBsYXRlPCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgTWluVmFsdWUgPiAgIC8vIG1pbmltdW0gdmFsdWUgdG8gcmVxdWlyZSBzdXBwb3J0CisjZWxzZQorICB0ZW1wbGF0ZTwgbG9uZyBNaW5WYWx1ZSA+ICAgLy8gbWluaW11bSB2YWx1ZSB0byByZXF1aXJlIHN1cHBvcnQKKyNlbmRpZgorICBzdHJ1Y3QgaW50X21pbl92YWx1ZV90IAorICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6aW50X2xlYXN0X2hlbHBlcgorICAgICAgICA8CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVCkgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICAgICAgICAgIChNaW5WYWx1ZSA+PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+Ojpjb25zdF9taW4pICsKKyNlbHNlCisgICAgICAgICAgIDEgKworI2VuZGlmCisgICAgICAgICAgKE1pblZhbHVlID49IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPGxvbmc+Ojpjb25zdF9taW4pICsKKyAgICAgICAgICAoTWluVmFsdWUgPj0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8aW50Pjo6Y29uc3RfbWluKSArCisgICAgICAgICAgKE1pblZhbHVlID49IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHNob3J0Pjo6Y29uc3RfbWluKSArCisgICAgICAgICAgKE1pblZhbHVlID49IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHNpZ25lZCBjaGFyPjo6Y29uc3RfbWluKQorICAgICAgICA+OjpsZWFzdCAgbGVhc3Q7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGludF9mYXN0X3Q8bGVhc3Q+Ojp0eXBlICBmYXN0OworICB9OworCisgIC8vICB1bnNpZ25lZAorI2lmICFkZWZpbmVkKEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QpICYmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyAgdGVtcGxhdGU8IG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUgTWF4VmFsdWUgPiAgIC8vIG1pbmltdW0gdmFsdWUgdG8gcmVxdWlyZSBzdXBwb3J0CisjZWxzZQorICB0ZW1wbGF0ZTwgdW5zaWduZWQgbG9uZyBNYXhWYWx1ZSA+ICAgLy8gbWluaW11bSB2YWx1ZSB0byByZXF1aXJlIHN1cHBvcnQKKyNlbmRpZgorICBzdHJ1Y3QgdWludF92YWx1ZV90IAorICB7CisjaWYgKGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkKF9fQ09ERUdFQVJfXykpCisgICAgIC8vIEl0J3MgcmVhbGx5IG5vdCBjbGVhciB3aHkgdGhpcyB3b3JrYXJvdW5kIHNob3VsZCBiZSBuZWVkZWQuLi4gc2hydWcgSSBndWVzcyEgIEpNCisjaWYgZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKQorICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCB3aGljaCA9IAorICAgICAgICAgICAxICsKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8dW5zaWduZWQgbG9uZz46OmNvbnN0X21heCkgKworICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czx1bnNpZ25lZCBpbnQ+Ojpjb25zdF9tYXgpICsKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8dW5zaWduZWQgc2hvcnQ+Ojpjb25zdF9tYXgpICsKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8dW5zaWduZWQgY2hhcj46OmNvbnN0X21heCkpOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmludF9sZWFzdF9oZWxwZXI8IDo6bmRuYm9vc3Q6OnVpbnRfdmFsdWVfdDxNYXhWYWx1ZT46OndoaWNoPjo6bGVhc3QgbGVhc3Q7CisjZWxzZSAvLyBCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIHdoaWNoID0gCisgICAgICAgICAgIDEgKworICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPjo6Y29uc3RfbWF4KSArCisgICAgICAgICAgKE1heFZhbHVlIDw9IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHVuc2lnbmVkIGxvbmc+Ojpjb25zdF9tYXgpICsKKyAgICAgICAgICAoTWF4VmFsdWUgPD0gOjpuZG5ib29zdDo6aW50ZWdlcl90cmFpdHM8dW5zaWduZWQgaW50Pjo6Y29uc3RfbWF4KSArCisgICAgICAgICAgKE1heFZhbHVlIDw9IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0Pjo6Y29uc3RfbWF4KSArCisgICAgICAgICAgKE1heFZhbHVlIDw9IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHVuc2lnbmVkIGNoYXI+Ojpjb25zdF9tYXgpKTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp1aW50X2xlYXN0X2hlbHBlcjwgOjpuZG5ib29zdDo6dWludF92YWx1ZV90PE1heFZhbHVlPjo6d2hpY2g+OjpsZWFzdCBsZWFzdDsKKyNlbmRpZiAvLyBCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UCisjZWxzZQorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnVpbnRfbGVhc3RfaGVscGVyCisgICAgICAgIDwgCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVCkgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPjo6Y29uc3RfbWF4KSArCisjZWxzZQorICAgICAgICAgICAxICsKKyNlbmRpZgorICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czx1bnNpZ25lZCBsb25nPjo6Y29uc3RfbWF4KSArCisgICAgICAgICAgKE1heFZhbHVlIDw9IDo6bmRuYm9vc3Q6OmludGVnZXJfdHJhaXRzPHVuc2lnbmVkIGludD46OmNvbnN0X21heCkgKworICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czx1bnNpZ25lZCBzaG9ydD46OmNvbnN0X21heCkgKworICAgICAgICAgIChNYXhWYWx1ZSA8PSA6Om5kbmJvb3N0OjppbnRlZ2VyX3RyYWl0czx1bnNpZ25lZCBjaGFyPjo6Y29uc3RfbWF4KQorICAgICAgICA+OjpsZWFzdCAgbGVhc3Q7CisjZW5kaWYKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaW50X2Zhc3RfdDxsZWFzdD46OnR5cGUgIGZhc3Q7CisgIH07CisKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyBCT09TVF9JTlRFR0VSX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pbnRlZ2VyL3N0YXRpY19sb2cyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaW50ZWdlci9zdGF0aWNfbG9nMi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y4OTBmOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaW50ZWdlci9zdGF0aWNfbG9nMi5ocHAKQEAgLTAsMCArMSwxMjcgQEAKKy8vIC0tLS0tLS0tLS0tLS0tIEJvb3N0IHN0YXRpY19sb2cyLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy8KKy8vCisvLyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDAxIERhcnlsZSBXYWxrZXIuCisvLyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDAzIFZlc2EgS2Fydm9uZW4uCisvLyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDAzIEdlbm5hcm8gUHJvdGEuCisvLworLy8gICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgICAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9pbnRlZ2VyIGZvciBkb2N1bWVudGF0aW9uLgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvLworCisKKyNpZm5kZWYgQk9PU1RfSU5URUdFUl9TVEFUSUNfTE9HMl9IUFAKKyNkZWZpbmUgQk9PU1RfSU5URUdFUl9TVEFUSUNfTE9HMl9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L2ludGVnZXJfZndkLmhwcCIgLy8gZm9yIG5kbmJvb3N0OjppbnRtYXhfdAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisgbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgICAgbmFtZXNwYWNlIHN0YXRpY19sb2cyX2ltcGwgeworCisgICAgIC8vIGNob29zZV9pbml0aWFsX248PgorICAgICAvLworICAgICAvLyBSZWN1cnNpdmVseSBkb3VibGVzIGl0cyBpbnRlZ2VyIGFyZ3VtZW50LCB1bnRpbCBpdAorICAgICAvLyBiZWNvbWVzID49IG9mIHRoZSAid2lkdGgiIChDOTksIDYuMi42LjJwNCkgb2YKKyAgICAgLy8gc3RhdGljX2xvZzJfYXJndW1lbnRfdHlwZS4KKyAgICAgLy8KKyAgICAgLy8gVXNlZCB0byBnZXQgdGhlIG1heGltdW0gcG93ZXIgb2YgdHdvIGxlc3MgdGhlbiB0aGUgd2lkdGguCisgICAgIC8vCisgICAgIC8vIEV4YW1wbGU6IGlmIG9uIHlvdXIgcGxhdGZvcm0gYXJndW1lbnRfdHlwZSBoYXMgNDggdmFsdWUKKyAgICAgLy8gICAgICAgICAgYml0cyBpdCB5aWVsZHMgbj0zMi4KKyAgICAgLy8KKyAgICAgLy8gSXQncyBlYXN5IHRvIHByb3ZlIHRoYXQsIHN0YXJ0aW5nIGZyb20gc3VjaCBhIHZhbHVlCisgICAgIC8vIG9mIG4sIHRoZSBjb3JlIGFsZ29yaXRobSB3b3JrcyBjb3JyZWN0bHkgZm9yIGFueSB3aWR0aAorICAgICAvLyBvZiBzdGF0aWNfbG9nMl9hcmd1bWVudF90eXBlIGFuZCB0aGF0IHJlY3Vyc2lvbiBhbHdheXMKKyAgICAgLy8gdGVybWluYXRlcyB3aXRoIHggPSAxIGFuZCBuID0gMCAoc2VlIHRoZSBhbGdvcml0aG0ncworICAgICAvLyBpbnZhcmlhbnQpLgorCisgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnN0YXRpY19sb2cyX2FyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZTsKKyAgICAgdHlwZWRlZiBuZG5ib29zdDo6c3RhdGljX2xvZzJfcmVzdWx0X3R5cGUgcmVzdWx0X3R5cGU7CisKKyAgICAgdGVtcGxhdGUgPHJlc3VsdF90eXBlIG4+CisgICAgIHN0cnVjdCBjaG9vc2VfaW5pdGlhbF9uIHsKKworICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGMgPSAoYXJndW1lbnRfdHlwZSgxKSA8PCBuIDw8IG4pICE9IDApOworICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgIHJlc3VsdF90eXBlLAorICAgICAgICAgICAgIHZhbHVlID0gIWMqbiArIGNob29zZV9pbml0aWFsX248MipjKm4+Ojp2YWx1ZQorICAgICAgICAgKTsKKworICAgICB9OworCisgICAgIHRlbXBsYXRlIDw+CisgICAgIHN0cnVjdCBjaG9vc2VfaW5pdGlhbF9uPDA+IHsKKyAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChyZXN1bHRfdHlwZSwgdmFsdWUgPSAwKTsKKyAgICAgfTsKKworCisKKyAgICAgLy8gc3RhcnQgY29tcHV0aW5nIGZyb20gbl96ZXJvIC0gbXVzdCBiZSBhIHBvd2VyIG9mIHR3bworICAgICBjb25zdCByZXN1bHRfdHlwZSBuX3plcm8gPSAxNjsKKyAgICAgY29uc3QgcmVzdWx0X3R5cGUgaW5pdGlhbF9uID0gY2hvb3NlX2luaXRpYWxfbjxuX3plcm8+Ojp2YWx1ZTsKKworICAgICAvLyBzdGF0aWNfbG9nMl9pbXBsPD4KKyAgICAgLy8KKyAgICAgLy8gKiBJbnZhcmlhbnQ6CisgICAgIC8vICAgICAgICAgICAgICAgICAybgorICAgICAvLyAgMSA8PSB4ICYmIHggPCAyICAgIGF0IHRoZSBzdGFydCBvZiBlYWNoIHJlY3Vyc2lvbgorICAgICAvLyAgICAgICAgICAgICAgICAgICAgIChzZWUgYWxzbyBjaG9vc2VfaW5pdGlhbF9uPD4pCisgICAgIC8vCisgICAgIC8vICogVHlwZSByZXF1aXJlbWVudHM6CisgICAgIC8vCisgICAgIC8vICAgYXJndW1lbnRfdHlwZSBtYXliZSBhbnkgdW5zaWduZWQgdHlwZSB3aXRoIGF0IGxlYXN0IG5femVybyArIDEKKyAgICAgLy8gICB2YWx1ZSBiaXRzLiAoTm90ZTogSWYgbGFyZ2VyIHR5cGVzIHdpbGwgYmUgc3RhbmRhcmRpemVkIC1lLmcuCisgICAgIC8vICAgdW5zaWduZWQgbG9uZyBsb25nLSB0aGVuIHRoZSBhcmd1bWVudF90eXBlIHR5cGVkZWYgY2FuIGJlCisgICAgIC8vICAgY2hhbmdlZCB3aXRob3V0IGFmZmVjdGluZyB0aGUgcmVzdCBvZiB0aGUgY29kZS4pCisgICAgIC8vCisKKyAgICAgdGVtcGxhdGUgPGFyZ3VtZW50X3R5cGUgeCwgcmVzdWx0X3R5cGUgbiA9IGluaXRpYWxfbj4KKyAgICAgc3RydWN0IHN0YXRpY19sb2cyX2ltcGwgeworCisgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgYyA9ICh4ID4+IG4pID4gMCk7IC8vIHggPj0gMioqbiA/CisgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgICAgICAgcmVzdWx0X3R5cGUsCisgICAgICAgICAgICAgdmFsdWUgPSBjKm4gKyAoc3RhdGljX2xvZzJfaW1wbDwgKHg+PmMqbiksIG4vMiA+Ojp2YWx1ZSkKKyAgICAgICAgICk7CisKKyAgICAgfTsKKworICAgICB0ZW1wbGF0ZSA8PgorICAgICBzdHJ1Y3Qgc3RhdGljX2xvZzJfaW1wbDwxLCAwPiB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChyZXN1bHRfdHlwZSwgdmFsdWUgPSAwKTsKKyAgICAgfTsKKworICAgICB9CisgfSAvLyBkZXRhaWwKKworCisKKyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC8vIHN0YXRpY19sb2cyPHg+CisgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgdGVtcGxhdGUgPHN0YXRpY19sb2cyX2FyZ3VtZW50X3R5cGUgeD4KKyBzdHJ1Y3Qgc3RhdGljX2xvZzIgeworCisgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgIHN0YXRpY19sb2cyX3Jlc3VsdF90eXBlLAorICAgICAgICAgdmFsdWUgPSBkZXRhaWw6OnN0YXRpY19sb2cyX2ltcGw6OnN0YXRpY19sb2cyX2ltcGw8eD46OnZhbHVlCisgICAgICk7CisKKyB9OworCisKKyB0ZW1wbGF0ZSA8PgorIHN0cnVjdCBzdGF0aWNfbG9nMjwwPiB7IH07CisKK30KKworCisKKyNlbmRpZiAvLyBpbmNsdWRlIGd1YXJkCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2ludGVnZXJfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaW50ZWdlcl9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjN2RkNGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2ludGVnZXJfZndkLmhwcApAQCAtMCwwICsxLDE2NCBAQAorLy8gIEJvb3N0IGludGVnZXJfZndkLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcyBhbmQgRGFyeWxlIFdhbGtlciAyMDAxLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2ludGVnZXIgZm9yIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfSU5URUdFUl9GV0RfSFBQCisjZGVmaW5lIEJPT1NUX0lOVEVHRVJfRldEX0hQUAorCisjaW5jbHVkZSA8Y2xpbWl0cz4gIC8vIGZvciBVQ0hBUl9NQVgsIGV0Yy4KKyNpbmNsdWRlIDxjc3RkZGVmPiAgLy8gZm9yIHN0ZDo6c2l6ZV90CisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPiAgLy8gZm9yIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjaW5jbHVkZSA8bmRuYm9vc3QvbGltaXRzLmhwcD4gIC8vIGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCisjaW5jbHVkZSA8bmRuYm9vc3QvY3N0ZGludC5ocHA+ICAvLyBGb3IgaW50bWF4X3QKKworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworI2lmZGVmIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyAgICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIHN0YXRpY19sb2cyX2FyZ3VtZW50X3R5cGU7CisgICAgIHR5cGVkZWYgICAgICAgICAgaW50ICBzdGF0aWNfbG9nMl9yZXN1bHRfdHlwZTsKKyAgICAgdHlwZWRlZiBsb25nICAgICAgICAgIHN0YXRpY19taW5fbWF4X3NpZ25lZF90eXBlOworICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgc3RhdGljX21pbl9tYXhfdW5zaWduZWRfdHlwZTsKKyNlbHNlCisgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVpbnRtYXhfdCBzdGF0aWNfbWluX21heF91bnNpZ25lZF90eXBlOworICAgICB0eXBlZGVmIG5kbmJvb3N0OjppbnRtYXhfdCAgc3RhdGljX21pbl9tYXhfc2lnbmVkX3R5cGU7CisgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVpbnRtYXhfdCBzdGF0aWNfbG9nMl9hcmd1bWVudF90eXBlOworICAgICB0eXBlZGVmIGludCAgICAgICAgICAgICAgc3RhdGljX2xvZzJfcmVzdWx0X3R5cGU7CisjZW5kaWYKKworLy8gIEZyb20gPG5kbmJvb3N0L2NzdGRpbnQuaHBwPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gT25seSBoYXMgdHlwZWRlZnMgb3IgdXNpbmcgc3RhdGVtZW50cywgd2l0aCAjY29uZGl0aW9uYWxzCisKKworLy8gIEZyb20gPG5kbmJvb3N0L2ludGVnZXJfdHJhaXRzLmhwcD4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKwordGVtcGxhdGUgPCBjbGFzcyBUID4KKyAgICBjbGFzcyBpbnRlZ2VyX3RyYWl0czsKKwordGVtcGxhdGUgPCAgPgorICAgIGNsYXNzIGludGVnZXJfdHJhaXRzPCBib29sID47CisKK3RlbXBsYXRlIDwgID4KKyAgICBjbGFzcyBpbnRlZ2VyX3RyYWl0czwgY2hhciA+OworCit0ZW1wbGF0ZSA8ICA+CisgICAgY2xhc3MgaW50ZWdlcl90cmFpdHM8IHNpZ25lZCBjaGFyID47CisKK3RlbXBsYXRlIDwgID4KKyAgICBjbGFzcyBpbnRlZ2VyX3RyYWl0czwgdW5zaWduZWQgY2hhciA+OworCisjaWZuZGVmIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCit0ZW1wbGF0ZSA8ICA+CisgICAgY2xhc3MgaW50ZWdlcl90cmFpdHM8IHdjaGFyX3QgPjsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8ICA+CisgICAgY2xhc3MgaW50ZWdlcl90cmFpdHM8IHNob3J0ID47CisKK3RlbXBsYXRlIDwgID4KKyAgICBjbGFzcyBpbnRlZ2VyX3RyYWl0czwgdW5zaWduZWQgc2hvcnQgPjsKKwordGVtcGxhdGUgPCAgPgorICAgIGNsYXNzIGludGVnZXJfdHJhaXRzPCBpbnQgPjsKKwordGVtcGxhdGUgPCAgPgorICAgIGNsYXNzIGludGVnZXJfdHJhaXRzPCB1bnNpZ25lZCBpbnQgPjsKKwordGVtcGxhdGUgPCAgPgorICAgIGNsYXNzIGludGVnZXJfdHJhaXRzPCBsb25nID47CisKK3RlbXBsYXRlIDwgID4KKyAgICBjbGFzcyBpbnRlZ2VyX3RyYWl0czwgdW5zaWduZWQgbG9uZyA+OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fSU5UNjRfVCkgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQordGVtcGxhdGUgPCAgPgorY2xhc3MgaW50ZWdlcl90cmFpdHM8ICA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT47CisKK3RlbXBsYXRlIDwgID4KK2NsYXNzIGludGVnZXJfdHJhaXRzPCAgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlID47CisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19JTlQ2NF9UKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKK3RlbXBsYXRlIDwgID4KK2NsYXNzIGludGVnZXJfdHJhaXRzPF9faW50NjQ+OworCit0ZW1wbGF0ZSA8ICA+CitjbGFzcyBpbnRlZ2VyX3RyYWl0czx1bnNpZ25lZCBfX2ludDY0PjsKKyNlbmRpZgorCisKKy8vICBGcm9tIDxuZG5ib29zdC9pbnRlZ2VyLmhwcD4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGVhc3RJbnQgPgorICAgIHN0cnVjdCBpbnRfZmFzdF90OworCit0ZW1wbGF0ZTwgaW50IEJpdHMgPgorICAgIHN0cnVjdCBpbnRfdDsKKwordGVtcGxhdGU8IGludCBCaXRzID4KKyAgICBzdHJ1Y3QgdWludF90OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVCkgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICAgIHRlbXBsYXRlPCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgTWF4VmFsdWUgPiAgIC8vIG1heGltdW0gdmFsdWUgdG8gcmVxdWlyZSBzdXBwb3J0CisjZWxzZQorICB0ZW1wbGF0ZTwgbG9uZyBNYXhWYWx1ZSA+ICAgLy8gbWF4aW11bSB2YWx1ZSB0byByZXF1aXJlIHN1cHBvcnQKKyNlbmRpZgorICAgIHN0cnVjdCBpbnRfbWF4X3ZhbHVlX3Q7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisgIHRlbXBsYXRlPCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgTWluVmFsdWUgPiAgIC8vIG1pbmltdW0gdmFsdWUgdG8gcmVxdWlyZSBzdXBwb3J0CisjZWxzZQorICB0ZW1wbGF0ZTwgbG9uZyBNaW5WYWx1ZSA+ICAgLy8gbWluaW11bSB2YWx1ZSB0byByZXF1aXJlIHN1cHBvcnQKKyNlbmRpZgorICAgIHN0cnVjdCBpbnRfbWluX3ZhbHVlX3Q7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisgIHRlbXBsYXRlPCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlIE1heFZhbHVlID4gICAvLyBtYXhpbXVtIHZhbHVlIHRvIHJlcXVpcmUgc3VwcG9ydAorI2Vsc2UKKyAgdGVtcGxhdGU8IHVuc2lnbmVkIGxvbmcgTWF4VmFsdWUgPiAgIC8vIG1heGltdW0gdmFsdWUgdG8gcmVxdWlyZSBzdXBwb3J0CisjZW5kaWYKKyAgICBzdHJ1Y3QgdWludF92YWx1ZV90OworCisKKy8vICBGcm9tIDxuZG5ib29zdC9pbnRlZ2VyL2ludGVnZXJfbWFzay5ocHA+ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKK3RlbXBsYXRlIDwgc3RkOjpzaXplX3QgQml0ID4KKyAgICBzdHJ1Y3QgaGlnaF9iaXRfbWFza190OworCit0ZW1wbGF0ZSA8IHN0ZDo6c2l6ZV90IEJpdHMgPgorICAgIHN0cnVjdCBsb3dfYml0c19tYXNrX3Q7CisKK3RlbXBsYXRlIDwgID4KKyAgICBzdHJ1Y3QgbG93X2JpdHNfbWFza190PCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46OmRpZ2l0cyA+OworCisvLyAgRnJvbSA8bmRuYm9vc3QvaW50ZWdlci9zdGF0aWNfbG9nMi5ocHA+ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCit0ZW1wbGF0ZSA8c3RhdGljX2xvZzJfYXJndW1lbnRfdHlwZSBWYWx1ZSA+CisgICAgc3RydWN0IHN0YXRpY19sb2cyOworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3Qgc3RhdGljX2xvZzI8MHU+OworCisKKy8vICBGcm9tIDxuZG5ib29zdC9pbnRlZ2VyL3N0YXRpY19taW5fbWF4LmhwcD4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKK3RlbXBsYXRlIDxzdGF0aWNfbWluX21heF9zaWduZWRfdHlwZSBWYWx1ZTEsIHN0YXRpY19taW5fbWF4X3NpZ25lZF90eXBlIFZhbHVlMj4KKyAgICBzdHJ1Y3Qgc3RhdGljX3NpZ25lZF9taW47CisKK3RlbXBsYXRlIDxzdGF0aWNfbWluX21heF9zaWduZWRfdHlwZSBWYWx1ZTEsIHN0YXRpY19taW5fbWF4X3NpZ25lZF90eXBlIFZhbHVlMj4KKyAgICBzdHJ1Y3Qgc3RhdGljX3NpZ25lZF9tYXg7CisKK3RlbXBsYXRlIDxzdGF0aWNfbWluX21heF91bnNpZ25lZF90eXBlIFZhbHVlMSwgc3RhdGljX21pbl9tYXhfdW5zaWduZWRfdHlwZSBWYWx1ZTI+CisgICAgc3RydWN0IHN0YXRpY191bnNpZ25lZF9taW47CisKK3RlbXBsYXRlIDxzdGF0aWNfbWluX21heF91bnNpZ25lZF90eXBlIFZhbHVlMSwgc3RhdGljX21pbl9tYXhfdW5zaWduZWRfdHlwZSBWYWx1ZTI+CisgICAgc3RydWN0IHN0YXRpY191bnNpZ25lZF9tYXg7CisKK30gIC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAgLy8gQk9PU1RfSU5URUdFUl9GV0RfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2ludGVnZXJfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaW50ZWdlcl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYmY1ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2ludGVnZXJfdHJhaXRzLmhwcApAQCAtMCwwICsxLDI2MSBAQAorLyogYm9vc3QgaW50ZWdlcl90cmFpdHMuaHBwIGhlYWRlciBmaWxlCisgKgorICogQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDAKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAqCisgKiAkSWQ6IGludGVnZXJfdHJhaXRzLmhwcCA4MzM4MSAyMDEzLTAzLTA5IDIyOjU1OjA1WiBlcmljX25pZWJsZXIgJAorICoKKyAqIElkZWEgYnkgQmVtYW4gRGF3ZXMsIEVkIEJyZXksIFN0ZXZlIENsZWFyeSwgYW5kIE5hdGhhbiBNeWVycworICovCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9pbnRlZ2VyIGZvciBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfSU5URUdFUl9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX0lOVEVHRVJfVFJBSVRTX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9saW1pdHMuaHBwPgorCisvLyBUaGVzZSBhcmUgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIGFuZCBub3QgcGFydCBvZiB0aGUgaW50ZXJmYWNlCisjaW5jbHVkZSA8bGltaXRzLmg+CisvLyB3ZSBuZWVkIHdjaGFyLmggZm9yIFdDSEFSX01BWC9NSU4gYnV0IG5vdCBhbGwgcGxhdGZvcm1zIHByb3ZpZGUgaXQsCisvLyBhbmQgc29tZSBtYXkgaGF2ZSA8d2NoYXIuaD4gYnV0IG5vdCA8Y3djaGFyPiAuLi4KKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVCkgJiYgKCFkZWZpbmVkKEJPT1NUX05PX0NXQ0hBUikgfHwgZGVmaW5lZChzdW4pIHx8IGRlZmluZWQoX19zdW4pIHx8IGRlZmluZWQoX19RTlhfXykpCisjaW5jbHVkZSA8d2NoYXIuaD4KKyNlbmRpZgorCisvLworLy8gV2Ugc2ltcGx5IGNhbm5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIG9uIGdjYyB3aXRob3V0IGdldHRpbmcgY29waW91cyB3YXJuaW5ncyBvZiB0aGUga2luZDoKKy8vCisvLyAuLi8uLi8uLi9ib29zdC9pbnRlZ2VyX3RyYWl0cy5ocHA6MTY0OjY2OiB3YXJuaW5nOiB1c2Ugb2YgQzk5IGxvbmcgbG9uZyBpbnRlZ2VyIGNvbnN0YW50CisvLworLy8gQW5kIHlldCB0aGVyZSBpcyBubyBvdGhlciByZWFzb25hYmxlIGltcGxlbWVudGF0aW9uLCBzbyB3ZSBkZWNsYXJlIHRoaXMgYSBzeXN0ZW0gaGVhZGVyCisvLyB0byBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncy4KKy8vCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDQpCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK3RlbXBsYXRlPGNsYXNzIFQ+CitjbGFzcyBpbnRlZ2VyX3RyYWl0cyA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Cit7CitwdWJsaWM6CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19pbnRlZ3JhbCA9IGZhbHNlKTsKK307CisKK25hbWVzcGFjZSBkZXRhaWwgewordGVtcGxhdGU8Y2xhc3MgVCwgVCBtaW5fdmFsLCBUIG1heF92YWw+CitjbGFzcyBpbnRlZ2VyX3RyYWl0c19iYXNlCit7CitwdWJsaWM6CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19pbnRlZ3JhbCA9IHRydWUpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgY29uc3RfbWluID0gbWluX3ZhbCk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCBjb25zdF9tYXggPSBtYXhfdmFsKTsKK307CisKKyNpZm5kZWYgQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04KKy8vICBBIGRlZmluaXRpb24gaXMgcmVxdWlyZWQgZXZlbiBmb3IgaW50ZWdyYWwgc3RhdGljIGNvbnN0YW50cwordGVtcGxhdGU8Y2xhc3MgVCwgVCBtaW5fdmFsLCBUIG1heF92YWw+Citjb25zdCBib29sIGludGVnZXJfdHJhaXRzX2Jhc2U8VCwgbWluX3ZhbCwgbWF4X3ZhbD46OmlzX2ludGVncmFsOworCit0ZW1wbGF0ZTxjbGFzcyBULCBUIG1pbl92YWwsIFQgbWF4X3ZhbD4KK2NvbnN0IFQgaW50ZWdlcl90cmFpdHNfYmFzZTxULCBtaW5fdmFsLCBtYXhfdmFsPjo6Y29uc3RfbWluOworCit0ZW1wbGF0ZTxjbGFzcyBULCBUIG1pbl92YWwsIFQgbWF4X3ZhbD4KK2NvbnN0IFQgaW50ZWdlcl90cmFpdHNfYmFzZTxULCBtaW5fdmFsLCBtYXhfdmFsPjo6Y29uc3RfbWF4OworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit0ZW1wbGF0ZTw+CitjbGFzcyBpbnRlZ2VyX3RyYWl0czxib29sPgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPGJvb2w+LAorICAgIHB1YmxpYyBkZXRhaWw6OmludGVnZXJfdHJhaXRzX2Jhc2U8Ym9vbCwgZmFsc2UsIHRydWU+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPGNoYXI+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8Y2hhcj4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTxjaGFyLCBDSEFSX01JTiwgQ0hBUl9NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPHNpZ25lZCBjaGFyPgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPHNpZ25lZCBjaGFyPiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHNpZ25lZCBjaGFyLCBTQ0hBUl9NSU4sIFNDSEFSX01BWD4KK3sgfTsKKwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8dW5zaWduZWQgY2hhcj4KKyAgOiBwdWJsaWMgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZCBjaGFyPiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHVuc2lnbmVkIGNoYXIsIDAsIFVDSEFSX01BWD4KK3sgfTsKKworI2lmbmRlZiBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8d2NoYXJfdD4KKyAgOiBwdWJsaWMgc3RkOjpudW1lcmljX2xpbWl0czx3Y2hhcl90PiwKKyAgICAvLyBEb24ndCB0cnVzdCBXQ0hBUl9NSU4gYW5kIFdDSEFSX01BWCB3aXRoIE1hYyBPUyBYJ3MgbmF0aXZlCisgICAgLy8gbGlicmFyeTogdGhleSBhcmUgd3JvbmchCisjaWYgZGVmaW5lZChXQ0hBUl9NSU4pICYmIGRlZmluZWQoV0NIQVJfTUFYKSAmJiAhZGVmaW5lZChfX0FQUExFX18pCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTx3Y2hhcl90LCBXQ0hBUl9NSU4sIFdDSEFSX01BWD4KKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pIHx8IChkZWZpbmVkKF9fQkVPU19fKSAmJiBkZWZpbmVkKF9fR05VQ19fKSkKKyAgICAvLyBObyBXQ0hBUl9NSU4gYW5kIFdDSEFSX01BWCwgd2hhcl90IGlzIHNob3J0IGFuZCB1bnNpZ25lZDoKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHdjaGFyX3QsIDAsIDB4ZmZmZj4KKyNlbGlmIChkZWZpbmVkKF9fc2dpKSAmJiAoIWRlZmluZWQoX19TR0lfU1RMX1BPUlQpIHx8IF9fU0dJX1NUTF9QT1JUIDwgMHg0MDApKVwKKyAgICB8fCAoZGVmaW5lZCBfX0FQUExFX18pXAorICAgIHx8IChkZWZpbmVkKF9fT3BlbkJTRF9fKSAmJiBkZWZpbmVkKF9fR05VQ19fKSlcCisgICAgfHwgKGRlZmluZWQoX19OZXRCU0RfXykgJiYgZGVmaW5lZChfX0dOVUNfXykpXAorICAgIHx8IChkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBkZWZpbmVkKF9fR05VQ19fKSlcCisgICAgfHwgKGRlZmluZWQoX19EcmFnb25GbHlfXykgJiYgZGVmaW5lZChfX0dOVUNfXykpXAorICAgIHx8IChkZWZpbmVkKF9faHB1eCkgJiYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID09IDMpICYmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSkKKyAgICAvLyBObyBXQ0hBUl9NSU4gYW5kIFdDSEFSX01BWCwgd2NoYXJfdCBoYXMgdGhlIHNhbWUgcmFuZ2UgYXMgaW50LgorICAgIC8vICAtIFNHSSBNSVBTcHJvIHdpdGggbmF0aXZlIGxpYnJhcnkKKyAgICAvLyAgLSBnY2MgMy54IG9uIEhQLVVYCisgICAgLy8gIC0gTWFjIE9TIFggd2l0aCBuYXRpdmUgbGlicmFyeQorICAgIC8vICAtIGdjYyBvbiBGcmVlQlNELCBPcGVuQlNEIGFuZCBOZXRCU0QKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHdjaGFyX3QsIElOVF9NSU4sIElOVF9NQVg+CisjZWxpZiBkZWZpbmVkKF9faHB1eCkgJiYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID09IDIpICYmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKQorICAgIC8vIE5vIFdDSEFSX01JTiBhbmQgV0NIQVJfTUFYLCB3Y2hhcl90IGhhcyB0aGUgc2FtZSByYW5nZSBhcyB1bnNpZ25lZCBpbnQuCisgICAgLy8gIC0gZ2NjIDIuOTUueCBvbiBIUC1VWAorICAgIC8vIChhbHNvLCBzdGQ6Om51bWVyaWNfbGltaXRzPHdjaGFyX3Q+IGFwcGVhcnMgdG8gcmV0dXJuIHRoZSB3cm9uZyB2YWx1ZXMpLgorICAgIHB1YmxpYyBkZXRhaWw6OmludGVnZXJfdHJhaXRzX2Jhc2U8d2NoYXJfdCwgMCwgVUlOVF9NQVg+CisjZWxzZQorI2Vycm9yIE5vIFdDSEFSX01JTiBhbmQgV0NIQVJfTUFYIHByZXNlbnQsIHBsZWFzZSBhZGp1c3QgaW50ZWdlcl90cmFpdHM8PiBmb3IgeW91ciBjb21waWxlci4KKyNlbmRpZgoreyB9OworI2VuZGlmIC8vIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPHNob3J0PgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0PiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHNob3J0LCBTSFJUX01JTiwgU0hSVF9NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPHVuc2lnbmVkIHNob3J0PgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0PiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHVuc2lnbmVkIHNob3J0LCAwLCBVU0hSVF9NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPGludD4KKyAgOiBwdWJsaWMgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+LAorICAgIHB1YmxpYyBkZXRhaWw6OmludGVnZXJfdHJhaXRzX2Jhc2U8aW50LCBJTlRfTUlOLCBJTlRfTUFYPgoreyB9OworCit0ZW1wbGF0ZTw+CitjbGFzcyBpbnRlZ2VyX3RyYWl0czx1bnNpZ25lZCBpbnQ+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgaW50PiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPHVuc2lnbmVkIGludCwgMCwgVUlOVF9NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPGxvbmc+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZz4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTxsb25nLCBMT05HX01JTiwgTE9OR19NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPHVuc2lnbmVkIGxvbmc+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgbG9uZz4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTx1bnNpZ25lZCBsb25nLCAwLCBVTE9OR19NQVg+Cit7IH07CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19JTlQ2NF9UKQorI2lmIGRlZmluZWQoVUxMT05HX01BWCkgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorCit0ZW1wbGF0ZTw+CitjbGFzcyBpbnRlZ2VyX3RyYWl0czwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPCA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSwgTExPTkdfTUlOLCBMTE9OR19NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPCA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlLCAwLCBVTExPTkdfTUFYPgoreyB9OworCisjZWxpZiBkZWZpbmVkKFVMT05HX0xPTkdfTUFYKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPCA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT4gIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiwgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUsIExPTkdfTE9OR19NSU4sIExPTkdfTE9OR19NQVg+eyB9OwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8IDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4KKyAgOiBwdWJsaWMgc3RkOjpudW1lcmljX2xpbWl0czwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPCA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUsIDAsIFVMT05HX0xPTkdfTUFYPgoreyB9OworCisjZWxpZiBkZWZpbmVkKFVMT05HTE9OR19NQVgpICYmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPCA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUsIExPTkdMT05HX01JTiwgTE9OR0xPTkdfTUFYPgoreyB9OworCit0ZW1wbGF0ZTw+CitjbGFzcyBpbnRlZ2VyX3RyYWl0czwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPCA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+LAorICAgIHB1YmxpYyBkZXRhaWw6OmludGVnZXJfdHJhaXRzX2Jhc2U8IDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSwgMCwgVUxPTkdMT05HX01BWD4KK3sgfTsKKworI2VsaWYgZGVmaW5lZChfTExPTkdfTUFYKSAmJiBkZWZpbmVkKF9DMikgJiYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorCit0ZW1wbGF0ZTw+CitjbGFzcyBpbnRlZ2VyX3RyYWl0czwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPCA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSwgLV9MTE9OR19NQVggLSBfQzIsIF9MTE9OR19NQVg+Cit7IH07CisKK3RlbXBsYXRlPD4KK2NsYXNzIGludGVnZXJfdHJhaXRzPCA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlLCAwLCBfVUxMT05HX01BWD4KK3sgfTsKKworI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorLy8KKy8vIHdlIGhhdmUgbG9uZyBsb25nIGJ1dCBubyBjb25zdGFudHMsIHRoaXMgaGFwcGVucyBmb3IgZXhhbXBsZSB3aXRoIGdjYyBpbiAtYW5zaSBtb2RlLAorLy8gd2UnbGwganVzdCBoYXZlIHRvIHdvcmsgb3V0IHRoZSB2YWx1ZXMgZm9yIG91cnNlbHZlcyAoYXNzdW1lcyAyJ3MgY29tcGxpbWVudCByZXByZXNlbnRhdGlvbik6CisvLwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPgorICA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPCA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT4sCisgICAgcHVibGljIGRldGFpbDo6aW50ZWdlcl90cmFpdHNfYmFzZTwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUsICgxTEwgPDwgKHNpemVvZig6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSkgKiBDSEFSX0JJVCAtIDEpKSwgfigxTEwgPDwgKHNpemVvZig6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSkgKiBDSEFSX0JJVCAtIDEpKT4KK3sgfTsKKwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8IDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4KKyAgOiBwdWJsaWMgc3RkOjpudW1lcmljX2xpbWl0czwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiwKKyAgICBwdWJsaWMgZGV0YWlsOjppbnRlZ2VyX3RyYWl0c19iYXNlPCA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUsIDAsIH4wdUxMPgoreyB9OworCisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKKwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8IF9faW50NjQ+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IF9faW50NjQ+LAorICAgIHB1YmxpYyBkZXRhaWw6OmludGVnZXJfdHJhaXRzX2Jhc2U8IF9faW50NjQsIF9JNjRfTUlOLCBfSTY0X01BWD4KK3sgfTsKKwordGVtcGxhdGU8PgorY2xhc3MgaW50ZWdlcl90cmFpdHM8IHVuc2lnbmVkIF9faW50NjQ+CisgIDogcHVibGljIHN0ZDo6bnVtZXJpY19saW1pdHM8IHVuc2lnbmVkIF9faW50NjQ+LAorICAgIHB1YmxpYyBkZXRhaWw6OmludGVnZXJfdHJhaXRzX2Jhc2U8IHVuc2lnbmVkIF9faW50NjQsIDAsIF9VSTY0X01BWD4KK3sgfTsKKworI2VuZGlmCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8qIEJPT1NUX0lOVEVHRVJfVFJBSVRTX0hQUCAqLworCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2JlZ2luLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzUwYzFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHAKQEAgLTAsMCArMSw1MiBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgIDIwMDYtMjAxMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9pbnRydXNpdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworI2lmbmRlZiBCT09TVF9JTlRSVVNJVkVfQ09ORklHX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9DT05GSUdfSU5DTFVERUQKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2VuZGlmCisKKyNpZmRlZiBCT09TVF9NU1ZDCisKKyAgICNwcmFnbWEgd2FybmluZyAocHVzaCkKKyAgIC8vCisgICAvLydmdW5jdGlvbicgOiByZXNvbHZlZCBvdmVybG9hZCB3YXMgZm91bmQgYnkgYXJndW1lbnQtZGVwZW5kZW50IGxvb2t1cAorICAgLy9BIGZ1bmN0aW9uIGZvdW5kIGJ5IGFyZ3VtZW50LWRlcGVuZGVudCBsb29rdXAgKEtvZW5pZyBsb29rdXApIHdhcyBldmVudHVhbGx5CisgICAvL2Nob3NlbiBieSBvdmVybG9hZCByZXNvbHV0aW9uLgorICAgLy8KKyAgIC8vSW4gVmlzdWFsIEMrKyAuTkVUIGFuZCBlYXJsaWVyIGNvbXBpbGVycywgYSBkaWZmZXJlbnQgZnVuY3Rpb24gd291bGQgaGF2ZQorICAgLy9iZWVuIGNhbGxlZC4gVG8gcGljayB0aGUgb3JpZ2luYWwgZnVuY3Rpb24sIHVzZSBhbiBleHBsaWNpdGx5IHF1YWxpZmllZCBuYW1lLgorICAgLy8KKworICAgLy93YXJuaW5nIEM0Mjc1OiBub24gZGxsLWludGVyZmFjZSBjbGFzcyAneCcgdXNlZCBhcyBiYXNlIGZvcgorICAgLy9kbGwtaW50ZXJmYWNlIGNsYXNzICdZJworICAgI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogNDI3NSkKKyAgIC8vd2FybmluZyBDNDI1MTogJ3gnIDogY2xhc3MgJ3knIG5lZWRzIHRvIGhhdmUgZGxsLWludGVyZmFjZSB0bworICAgLy9iZSB1c2VkIGJ5IGNsaWVudHMgb2YgY2xhc3MgJ3onCisgICAjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiA0MjUxKQorICAgI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogNDY3NSkKKyAgICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDQ5OTYpCisgICAjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiA0NTAzKQorICAgI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogNDI4NCkgLy8gb2RkIHJldHVybiB0eXBlIGZvciBvcGVyYXRvci0+CisgICAjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiA0MjQ0KSAvLyBwb3NzaWJsZSBsb3NzIG9mIGRhdGEKKyAgICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDQ1MjEpIC8vLy9EaXNhYmxlICJtdWx0aXBsZSBjb3B5IGNvbnN0cnVjdG9ycyBzcGVjaWZpZWQiCisgICAjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiA0NTIyKQorICAgI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogNDE0NikKKyAgICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDQyNjcpIC8vY29udmVyc2lvbiBmcm9tICdYJyB0byAnWScsIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YQorICAgI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlIDogNDEyNykgLy9jb25kaXRpb25hbCBleHByZXNzaW9uIGlzIGNvbnN0YW50CisgICAjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiA0NzA2KSAvL2Fzc2lnbm1lbnQgd2l0aGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24KKyAgICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDQ1NDEpIC8vJ3R5cGVpZCcgdXNlZCBvbiBwb2x5bW9ycGhpYyB0eXBlICduZG5ib29zdDo6ZXhjZXB0aW9uJyB3aXRoIC9HUi0KKyAgICNwcmFnbWEgd2FybmluZyAoZGlzYWJsZSA6IDQ1MTIpIC8vJ3R5cGVpZCcgdXNlZCBvbiBwb2x5bW9ycGhpYyB0eXBlICduZG5ib29zdDo6ZXhjZXB0aW9uJyB3aXRoIC9HUi0KKyNlbmRpZgorCisvLyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX1VTRV9JVEVSQVRPUl9GQUNBREUKKy8vI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfVVNFX0lURVJBVE9SX0VOQUJMRV9JRl9DT05WRVJUSUJMRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19lbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19lbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NTMwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHAKQEAgLTAsMCArMSwxNSBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgIDIwMDYtMjAxMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAgIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgICAgICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9pbnRydXNpdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworI2lmIGRlZmluZWQgQk9PU1RfTVNWQworICAgI3ByYWdtYSB3YXJuaW5nIChwb3ApCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTljZGZmOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGguaHBwCkBAIC0wLDAgKzEsMzU3IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAxMS0yMDEyLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvaW50cnVzaXZlIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBzYW1wbGUuaAorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisgICAjaWZuZGVmIEJPT1NUX0lOVFJVU0lWRV9ERVRBSUxfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0RFVEFJTFNfSU5DTFVERUQKKyAgICNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0RFVEFJTF9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfREVUQUlMU19JTkNMVURFRAorCisgICAgICAjaW5jbHVkZSA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwPgorICAgICAgI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisgICAgICAjaW5jbHVkZSA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9wcmVwcm9jZXNzb3IuaHBwPgorICAgICAgI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbXBsLmhwcD4KKyAgICAgICNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyAgICAgICNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL21vdmUuaHBwPgorCisgICAgICAvL01hcmsgdGhhdCB3ZSBkb24ndCBzdXBwb3J0IDAgYXJnIGNhbGxzIGR1ZSB0byBjb21waWxlciBJQ0UgaW4gR0NDIDMuNC80LjAvNC4xIGFuZAorICAgICAgLy93cm9uZyBTRklOQUUgZm9yIEdDQyA0LjIvNC4zCisgICAgICAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19jbGFuZ19fKSAmJiAoKF9fR05VQ19fKjEwMCArIF9fR05VQ19NSU5PUl9fKjEwKSA+PSAzNDApICYmICgoX19HTlVDX18qMTAwICsgX19HTlVDX01JTk9SX18qMTApIDw9IDQzMCkKKyAgICAgICNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0RFVEFJTF9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfMF9BUkdTX1VOU1VQUE9SVEVECisgICAgICAjZWxpZiBkZWZpbmVkKEJPT1NUX0lOVEVMKSAmJiAoQk9PU1RfSU5URUwgPCAxMjAwICkKKyAgICAgICNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0RFVEFJTF9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfMF9BUkdTX1VOU1VQUE9SVEVECisgICAgICAjZW5kaWYKKworICAgICAgbmFtZXNwYWNlIG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGggeworCisgICAgICBzdHJ1Y3QgZG9udF9jYXJlCisgICAgICB7CisgICAgICAgICBkb250X2NhcmUoLi4uKTsKKyAgICAgIH07CisKKyAgICAgIHN0cnVjdCBwcml2YXRlX3R5cGUKKyAgICAgIHsKKyAgICAgICAgIHN0YXRpYyBwcml2YXRlX3R5cGUgcDsKKyAgICAgICAgIHByaXZhdGVfdHlwZSBjb25zdCAmb3BlcmF0b3IsKGludCkgY29uc3Q7CisgICAgICB9OworCisgICAgICB0eXBlZGVmIGNoYXIgeWVzX3R5cGU7ICAgICAgICAgICAgLy8gc2l6ZW9mKHllc190eXBlKSA9PSAxCisgICAgICBzdHJ1Y3Qgbm9fdHlwZXsgY2hhciBkdW1teVsyXTsgfTsgLy8gc2l6ZW9mKG5vX3R5cGUpICA9PSAyCisKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICBub190eXBlIGlzX3ByaXZhdGVfdHlwZShUIGNvbnN0ICYpOworICAgICAgeWVzX3R5cGUgaXNfcHJpdmF0ZV90eXBlKHByaXZhdGVfdHlwZSBjb25zdCAmKTsKKworICAgICAgfSAgLy9ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoCisKKyAgICAgICNpbmNsdWRlIDxuZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19lbmQuaHBwPgorCisgICAjZW5kaWYgICAvL0JPT1NUX0lOVFJVU0lWRV9ERVRBSUxfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0RFVEFJTFNfSU5DTFVERUQKKworI2Vsc2UgLy8hQk9PU1RfUFBfSVNfSVRFUkFUSU5HCisKKyAgICNpZm5kZWYgIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUKKyAgICNlcnJvciAiQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSBub3QgZGVmaW5lZCEiCisgICAjZW5kaWYKKworICAgI2lmbmRlZiAgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19CRUdJTgorICAgI2Vycm9yICJCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0JFR0lOIG5vdCBkZWZpbmVkISIKKyAgICNlbmRpZgorCisgICAjaWZuZGVmICBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0VORAorICAgI2Vycm9yICJCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0VORCBub3QgZGVmaW5lZCEiCisgICAjZW5kaWYKKworICAgI2lmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVCgpICE9IDAKKyAgICNlcnJvciAiQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUKCkgbXVzdCBiZSB6ZXJvICgwKSIKKyAgICNlbmRpZgorCisgICAjaWYgQk9PU1RfUFBfSVRFUkFUSU9OKCkgPT0gMAorCisgICAgICBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0JFR0lOCisKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPgorICAgICAgY2xhc3MgQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fbmFtZWRfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKQorICAgICAgeworICAgICAgICAgc3RydWN0IEJhc2VNaXhpbgorICAgICAgICAgeworICAgICAgICAgICAgdm9pZCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKCk7CisgICAgICAgICB9OworCisgICAgICAgICBzdHJ1Y3QgQmFzZSA6IHB1YmxpYyA6Om5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6cmVtb3ZlX2N2PFR5cGU+Ojp0eXBlLCBwdWJsaWMgQmFzZU1peGluIHsgQmFzZSgpOyB9OworICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIFQgdD4gY2xhc3MgSGVscGVye307CisKKyAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPgorICAgICAgICAgc3RhdGljIG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGg6Om5vX3R5cGUgIGRlZHVjZQorICAgICAgICAgICAgKFUqLCBIZWxwZXI8dm9pZCAoQmFzZU1peGluOjoqKSgpLCAmVTo6Qk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRT4qID0gMCk7CisgICAgICAgICBzdGF0aWMgbmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6eWVzX3R5cGUgZGVkdWNlKC4uLik7CisKKyAgICAgICAgIHB1YmxpYzoKKyAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0KKyAgICAgICAgICAgIHNpemVvZihuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjp5ZXNfdHlwZSkgPT0gc2l6ZW9mKGRlZHVjZSgoQmFzZSopKDApKSk7CisgICAgICB9OworCisgICAgICAjaWYgIWRlZmluZWQoQk9PU1RfSU5UUlVTSVZFX1BFUkZFQ1RfRk9SV0FSRElORykKKworICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuLCBib29sIEhhc0Z1bmMKKyAgICAgICAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkcoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSCgpLCBCT09TVF9JTlRSVVNJVkVfUFBfVEVNUExBVEVfUEFSQU1fVk9JRF9ERUZBVUxULCBfKT4KKyAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpLCBfaW1wbCk7CisgICAgICAgICAvLyEKKworICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0goKSwgY2xhc3MgUCk+CisgICAgICAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVChoYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGhfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKSwgX2ltcGwpCisgICAgICAgICAgICA8RnVuLCBmYWxzZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIKCksIFApPgorICAgICAgICAgeworICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsKKyAgICAgICAgIH07CisgICAgICAgICAvLyEKKworICAgICAgICAgI2lmICFkZWZpbmVkKF9NU0NfVkVSKSB8fCAoX01TQ19WRVIgPCAxNjAwKQorCisgICAgICAgICAgICAjaWYgZGVmaW5lZChCT09TVF9JTlRSVVNJVkVfREVUQUlMX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF8wX0FSR1NfVU5TVVBQT1JURUQpCisKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bj4KKyAgICAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpLF9pbXBsKQorICAgICAgICAgICAgICAgPEZ1biwgdHJ1ZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HKEJPT1NUX1BQX1NVQihCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIKCksIEJPT1NUX1BQX0lURVJBVElPTigpKSwgQk9PU1RfSU5UUlVTSVZFX1BQX0lERU5USVRZLCB2b2lkKT4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIC8vTWFyayB0aGF0IHdlIGRvbid0IHN1cHBvcnQgMCBhcmcgY2FsbHMgZHVlIHRvIGNvbXBpbGVyIElDRSBpbiBHQ0MgMy40LzQuMC80LjEgYW5kCisgICAgICAgICAgICAgICAvL3dyb25nIFNGSU5BRSBmb3IgR0NDIDQuMi80LjMKKyAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICNlbHNlIC8vZGVmaW5lZChCT09TVF9JTlRSVVNJVkVfREVUQUlMX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF8wX0FSR1NfVU5TVVBQT1JURUQpCisKKyAgICAgICAgICAgIC8vU3BlY2lhbCBjYXNlIGZvciAwIGFyZ3MKKyAgICAgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBGCisgICAgICAgICAgICAgICAgICAsIHN0ZDo6c2l6ZV90IE4gPQorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKChuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmRlY2x2YWw8Rj4oKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUgKCksIDApKT4KKyAgICAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoemVyb2FyZ19jaGVja2VyXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGg6Onllc190eXBlIGR1bW15OworICAgICAgICAgICAgICAgQk9PU1RfUFBfQ0FUKHplcm9hcmdfY2hlY2tlcl8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpKGludCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICAvL0ZvciBidWdneSBjb21waWxlcnMgbGlrZSBNU1ZDIDcuMSsgKChGKikwKS0+ZnVuYygpIGRvZXMgbm90CisgICAgICAgICAgICAvL1NGSU5BRS1vdXQgdGhlIHplcm9hcmdfY2hlY2tlcl8gaW5zdGFudGlhdGlvbiBidXQgc2l6ZW9mIHlpZWxkcyB0byAwLgorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRj4KKyAgICAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoemVyb2FyZ19jaGVja2VyXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSk8RiwgMD4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGg6Om5vX3R5cGUgZHVtbXk7CisgICAgICAgICAgICAgICBCT09TVF9QUF9DQVQoemVyb2FyZ19jaGVja2VyXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkoaW50KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bj4KKyAgICAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpLF9pbXBsKQorICAgICAgICAgICAgICAgPEZ1biwgdHJ1ZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HKEJPT1NUX1BQX1NVQihCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIKCksIEJPT1NUX1BQX0lURVJBVElPTigpKSwgQk9PU1RfSU5UUlVTSVZFX1BQX0lERU5USVRZLCB2b2lkKT4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgICAgICAgICBzdGF0aWMgQk9PU1RfUFBfQ0FUKHplcm9hcmdfY2hlY2tlcl8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpPFU+CisgICAgICAgICAgICAgICAgICBUZXN0KEJPT1NUX1BQX0NBVCh6ZXJvYXJnX2NoZWNrZXJfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKTxVPiopOworCisgICAgICAgICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4KKyAgICAgICAgICAgICAgIHN0YXRpYyBuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjpub190eXBlIFRlc3QoLi4uKTsKKworICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YoVGVzdDwgRnVuID4oMCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBzaXplb2YobmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6eWVzX3R5cGUpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICNlbmRpZiAgIC8vZGVmaW5lZChCT09TVF9JTlRSVVNJVkVfREVUQUlMX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF8wX0FSR1NfVU5TVVBQT1JURUQpCisKKyAgICAgICAgICNlbHNlIC8vI2lmICFkZWZpbmVkKF9NU0NfVkVSKSB8fCAoX01TQ19WRVIgPCAxNjAwKQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuPgorICAgICAgICAgICAgc3RydWN0IEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQoaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSksX2ltcGwpCisgICAgICAgICAgICAgICA8RnVuLCB0cnVlIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkcoQk9PU1RfUFBfU1VCKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0goKSwgQk9PU1RfUFBfSVRFUkFUSU9OKCkpLCBCT09TVF9JTlRSVVNJVkVfUFBfSURFTlRJVFksIHZvaWQpPgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgICAgICAgIHN0YXRpYyBkZWNsdHlwZSggbmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjpkZWNsdmFsPEZ1bj4oKS5CT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgbmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6eWVzX3R5cGUoKSkKKyAgICAgICAgICAgICAgICAgIFRlc3QoRnVuKik7CisKKyAgICAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgICAgICAgICBzdGF0aWMgbmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6bm9fdHlwZSBUZXN0KC4uLik7CisKKyAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mKFRlc3Q8RnVuPigwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IHNpemVvZihuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjp5ZXNfdHlwZSk7CisgICAgICAgICAgICB9OworICAgICAgICAgI2VuZGlmICAgLy8jaWYgIWRlZmluZWQoX01TQ19WRVIpIHx8IChfTVNDX1ZFUiA8IDE2MDApCisKKyAgICAgICNlbHNlICAgLy8jaWYgIWRlZmluZWQoQk9PU1RfSU5UUlVTSVZFX1BFUkZFQ1RfRk9SV0FSRElORykKKworICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuLCBib29sIEhhc0Z1bmMsIGNsYXNzIC4uLkFyZ3M+CisgICAgICAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVChoYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGhfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKSxfaW1wbCk7CisKKyAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1biwgY2xhc3MgLi4uQXJncz4KKyAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpLF9pbXBsKQorICAgICAgICAgICAgPEZ1biwgZmFsc2UsIEFyZ3MuLi4+CisgICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGZhbHNlOworICAgICAgICAgfTsKKworICAgICAgICAgLy9TcGVjaWFsIGNhc2UgZm9yIDAgYXJncworICAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEYKKyAgICAgICAgICAgICAgICwgc3RkOjpzaXplX3QgTiA9CisgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKG5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZGVjbHZhbDxGPigpLgorICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSAoKSwgMCkpPgorICAgICAgICAgc3RydWN0IEJPT1NUX1BQX0NBVCh6ZXJvYXJnX2NoZWNrZXJfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKQorICAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6eWVzX3R5cGUgZHVtbXk7CisgICAgICAgICAgICBCT09TVF9QUF9DQVQoemVyb2FyZ19jaGVja2VyXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkoaW50KTsKKyAgICAgICAgIH07CisKKyAgICAgICAgIC8vRm9yIGJ1Z2d5IGNvbXBpbGVycyBsaWtlIE1TVkMgNy4xKyAoKEYqKTApLT5mdW5jKCkgZG9lcyBub3QKKyAgICAgICAgIC8vU0ZJTkFFLW91dCB0aGUgemVyb2FyZ19jaGVja2VyXyBpbnN0YW50aWF0aW9uIGJ1dCBzaXplb2YgeWllbGRzIHRvIDAuCisgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBGPgorICAgICAgICAgc3RydWN0IEJPT1NUX1BQX0NBVCh6ZXJvYXJnX2NoZWNrZXJfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKTxGLCAwPgorICAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6bm9fdHlwZSBkdW1teTsKKyAgICAgICAgICAgIEJPT1NUX1BQX0NBVCh6ZXJvYXJnX2NoZWNrZXJfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKShpbnQpOworICAgICAgICAgfTsKKworICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuPgorICAgICAgICAgc3RydWN0IEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQoaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSksX2ltcGwpCisgICAgICAgICAgICA8RnVuLCB0cnVlPgorICAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgICAgIHN0YXRpYyBCT09TVF9QUF9DQVQoemVyb2FyZ19jaGVja2VyXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkKKyAgICAgICAgICAgICAgIDxVPiBUZXN0KEJPT1NUX1BQX0NBVCh6ZXJvYXJnX2NoZWNrZXJfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKTxVPiopOworCisgICAgICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4KKyAgICAgICAgICAgIHN0YXRpYyBuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjpub190eXBlIFRlc3QoLi4uKTsKKworICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YoVGVzdDwgRnVuID4oMCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBzaXplb2YobmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6eWVzX3R5cGUpOworICAgICAgICAgfTsKKworICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuLCBjbGFzcyAuLi5Eb250Q2FyZXM+CisgICAgICAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKCBmdW53cmFwXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSApCisgICAgICAgICAgICA6IEZ1bgorICAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfUFBfQ0FUKCBmdW53cmFwXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSApKCk7CisgICAgICAgICAgICB1c2luZyBGdW46OkJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUU7CisKKyAgICAgICAgICAgIG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGg6OnByaXZhdGVfdHlwZQorICAgICAgICAgICAgICAgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRQorICAgICAgICAgICAgICAgICAgKCBEb250Q2FyZXMuLi4pICBjb25zdDsKKyAgICAgICAgIH07CisKKyAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1biwgY2xhc3MgLi4uQXJncz4KKyAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoIEJPT1NUX1BQX0NBVChoYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGhfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKSwgX2ltcGwpCisgICAgICAgICAgICA8RnVuLCB0cnVlICwgQXJncy4uLj4KKyAgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgbWFrZV9kb250Y2FyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjpkb250X2NhcmUgdHlwZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKCBmdW53cmFwXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSApCisgICAgICAgICAgICAgICA8RnVuLCB0eXBlbmFtZSBtYWtlX2RvbnRjYXJlPEFyZ3M+Ojp0eXBlLi4uPiBGdW5XcmFwOworCisgICAgICAgICAgICBzdGF0aWMgYm9vbCBjb25zdCB2YWx1ZSA9IChzaXplb2YobmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6bm9fdHlwZSkgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjppc19wcml2YXRlX3R5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjpkZWNsdmFsPCBGdW5XcmFwID4oKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmRlY2x2YWw8QXJncz4oKS4uLiApLCAwKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgfTsKKworICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuLCBjbGFzcyAuLi5BcmdzPgorICAgICAgICAgc3RydWN0IEJPT1NUX1BQX0NBVCggaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkKKyAgICAgICAgICAgIDogcHVibGljIEJPT1NUX1BQX0NBVCggQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSksX2ltcGwpCisgICAgICAgICAgICAgICA8IEZ1bgorICAgICAgICAgICAgICAgLCBCT09TVF9QUF9DQVQoIGhhc19tZW1iZXJfZnVuY3Rpb25fbmFtZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSApPEZ1bj46OnZhbHVlCisgICAgICAgICAgICAgICAsIEFyZ3MuLi4gPgorICAgICAgICAge307CisKKyAgICAgICNlbmRpZiAgIC8vI2lmICFkZWZpbmVkKEJPT1NUX0lOVFJVU0lWRV9QRVJGRUNUX0ZPUldBUkRJTkcpCisKKyAgICAgIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfTlNfRU5ECisKKyAgICNlbHNlICAgLy9CT09TVF9QUF9JVEVSQVRJT04oKSA9PSAwCisKKyAgICAgICNpZiAhZGVmaW5lZChCT09TVF9JTlRSVVNJVkVfUEVSRkVDVF9GT1JXQVJESU5HKQorCisgICAgICAgICBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0JFR0lOCisKKyAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bj4KKyAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoIEJPT1NUX1BQX0NBVChmdW53cmFwLCBCT09TVF9QUF9JVEVSQVRJT04oKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICwgQk9PU1RfUFBfQ0FUKF8sIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpKQorICAgICAgICAgICAgOiBGdW4KKyAgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX1BQX0NBVCggQk9PU1RfUFBfQ0FUKGZ1bndyYXAsIEJPT1NUX1BQX0lURVJBVElPTigpKQorICAgICAgICAgICAgICAgICAgICAgICAgLCBCT09TVF9QUF9DQVQoXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkpKCk7CisKKyAgICAgICAgICAgIHVzaW5nIEZ1bjo6Qk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRTsKKyAgICAgICAgICAgIG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGg6OnByaXZhdGVfdHlwZQorICAgICAgICAgICAgICAgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRQorICAgICAgICAgICAgICAgICAgKCBCT09TVF9QUF9FTlVNKEJPT1NUX1BQX0lURVJBVElPTigpCisgICAgICAgICAgICAgICAgICAsIEJPT1NUX0lOVFJVU0lWRV9QUF9JREVOVElUWQorICAgICAgICAgICAgICAgICAgLCBuZG5ib29zdF9pbnRydXNpdmVfaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoOjpkb250X2NhcmUpKSAgY29uc3Q7CisgICAgICAgICB9OworCisgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW4gQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksIGNsYXNzIFApPgorICAgICAgICAgc3RydWN0IEJPT1NUX1BQX0NBVCggQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUpLF9pbXBsKQorICAgICAgICAgICAgPEZ1biwgdHJ1ZQorICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksIFApCisgICAgICAgICAgICBCT09TVF9QUF9FTlVNX1RSQUlMSU5HKCBCT09TVF9QUF9TVUIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSCgpLCBCT09TVF9QUF9JVEVSQVRJT04oKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIEJPT1NUX0lOVFJVU0lWRV9QUF9JREVOVElUWQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdm9pZCk+CisgICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVCggQk9PU1RfUFBfQ0FUKGZ1bndyYXAsIEJPT1NUX1BQX0lURVJBVElPTigpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBCT09TVF9QUF9DQVQoXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkpPEZ1bj4KKyAgICAgICAgICAgICAgICAgICAgIEZ1bldyYXA7CisgICAgICAgICAgICBzdGF0aWMgYm9vbCBjb25zdCB2YWx1ZSA9CisgICAgICAgICAgICAoc2l6ZW9mKG5kbmJvb3N0X2ludHJ1c2l2ZV9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGg6Om5vX3R5cGUpID09CisgICAgICAgICAgICAgICBzaXplb2YobmRuYm9vc3RfaW50cnVzaXZlX2hhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aDo6aXNfcHJpdmF0ZV90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAoICAobmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjpkZWNsdmFsPEZ1bldyYXA+KCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIEJPT1NUX1BQX0VOVU0oIEJPT1NUX1BQX0lURVJBVElPTigpLCBCT09TVF9JTlRSVVNJVkVfUFBfREVDTFZBTCwgXykgKSwgMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgIH07CisKKyAgICAgICAgIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfTlNfRU5ECisgICAgICAjZW5kaWYgICAvLyNpZiAhZGVmaW5lZChCT09TVF9JTlRSVVNJVkVfUEVSRkVDVF9GT1JXQVJESU5HKQorCisgICAjZW5kaWYgICAvL0JPT1NUX1BQX0lURVJBVElPTigpID09IDAKKworICAgI2lmIEJPT1NUX1BQX0lURVJBVElPTigpID09IEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0goKQorCisgICAgICAjaWYgIWRlZmluZWQoQk9PU1RfSU5UUlVTSVZFX1BFUkZFQ1RfRk9SV0FSRElORykKKworICAgICAgICAgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19CRUdJTgorCisgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW4KKyAgICAgICAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkcoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSCgpLCBCT09TVF9JTlRSVVNJVkVfUFBfVEVNUExBVEVfUEFSQU1fVk9JRF9ERUZBVUxULCBfKT4KKyAgICAgICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSkKKyAgICAgICAgICAgIDogcHVibGljIEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQoaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoXywgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSksIF9pbXBsKQorICAgICAgICAgICAgICAgPEZ1biwgQk9PU1RfUFBfQ0FUKGhhc19tZW1iZXJfZnVuY3Rpb25fbmFtZWRfLCBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FKTxGdW4+Ojp2YWx1ZQorICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSCgpLCBQKSA+CisgICAgICAgICB7fTsKKworICAgICAgICAgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19FTkQKKworICAgICAgI2VuZGlmIC8vI2lmICFkZWZpbmVkKEJPT1NUX0lOVFJVU0lWRV9QRVJGRUNUX0ZPUldBUkRJTkcpCisKKyAgICAgICN1bmRlZiBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FCisgICAgICAjdW5kZWYgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19CRUdJTgorICAgICAgI3VuZGVmIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfTlNfRU5ECisKKyAgICNlbmRpZiAgIC8vI2lmIEJPT1NUX1BQX0lURVJBVElPTigpID09IEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0goKQorCisjZW5kaWYgICAvLyFCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9tZW1vcnlfdXRpbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbWVtb3J5X3V0aWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxY2MxMDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbWVtb3J5X3V0aWwuaHBwCkBAIC0wLDAgKzEsMjg4IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IFBhYmxvIEhhbHBlcm4gMjAwOS4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIChDKSBDb3B5cmlnaHQgSW9uIEdhenRhbmFnYSAyMDExLTIwMTIuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9pbnRydXNpdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyNpZm5kZWYgQk9PU1RfSU5UUlVTSVZFX0FMTE9DQVRPUl9NRU1PUllfVVRJTF9IUFAKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0FMTE9DQVRPUl9NRU1PUllfVVRJTF9IUFAKKworI2lmIChkZWZpbmVkIF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL3ByZXByb2Nlc3Nvci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgaW50cnVzaXZlIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBUKiBhZGRyZXNzb2YoVCYgb2JqKQoreworICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPgorICAgICAgKHN0YXRpY19jYXN0PHZvaWQqPgorICAgICAgICAgKGNvbnN0X2Nhc3Q8Y2hhcio+CisgICAgICAgICAgICAoJnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciY+KG9iaikpCisgICAgICAgICApCisgICAgICApOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHVudm9pZCB7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHVudm9pZDx2b2lkPiB7IHN0cnVjdCB0eXBlIHsgfTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCB1bnZvaWQ8Y29uc3Qgdm9pZD4geyBzdHJ1Y3QgdHlwZSB7IH07IH07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IExvd1ByaW9yaXR5Q29udmVyc2lvbgoreworICAgIC8vIENvbnZlcnRpYmxlIGZyb20gVCB3aXRoIHVzZXItZGVmaW5lZC1jb252ZXJzaW9uIHJhbmsuCisgICAgTG93UHJpb3JpdHlDb252ZXJzaW9uKGNvbnN0IFQmKSB7IH0KK307CisKKy8vIEluZnJhc3RydWN0dXJlIGZvciBwcm92aWRpbmcgYSBkZWZhdWx0IHR5cGUgZm9yIFQ6OlROQU1FIGlmIGFic2VudC4KKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0lOU1RBTlRJQVRFX0RFRkFVTFRfVFlQRV9UTVBMVChUTkFNRSkgICAgICAgICAgICAgIFwKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWZhdWx0VHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHN0cnVjdCBib29zdF9pbnRydXNpdmVfZGVmYXVsdF90eXBlXyAjIyBUTkFNRSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBYPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0YXRpYyBjaGFyIHRlc3QoaW50LCB0eXBlbmFtZSBYOjpUTkFNRSopOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBYPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0YXRpYyBpbnQgdGVzdChuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIExvd1ByaW9yaXR5Q29udmVyc2lvbjxpbnQ+LCB2b2lkKik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0cnVjdCBEZWZhdWx0V3JhcCB7IHR5cGVkZWYgRGVmYXVsdFR5cGUgVE5BTUU7IH07ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gKDEgPT0gc2l6ZW9mKHRlc3Q8VD4oMCwgMCkpKTsgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjppZl9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIDx2YWx1ZSwgVCwgRGVmYXVsdFdyYXA+Ojp0eXBlOjpUTkFNRSB0eXBlOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWZhdWx0VHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHN0cnVjdCBib29zdF9pbnRydXNpdmVfZXZhbF9kZWZhdWx0X3R5cGVfICMjIFROQU1FICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBYPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0YXRpYyBjaGFyIHRlc3QoaW50LCB0eXBlbmFtZSBYOjpUTkFNRSopOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBYPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0YXRpYyBpbnQgdGVzdChuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIExvd1ByaW9yaXR5Q29udmVyc2lvbjxpbnQ+LCB2b2lkKik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0cnVjdCBEZWZhdWx0V3JhcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgdHlwZWRlZiB0eXBlbmFtZSBEZWZhdWx0VHlwZTo6dHlwZSBUTkFNRTsgfTsgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gKDEgPT0gc2l6ZW9mKHRlc3Q8VD4oMCwgMCkpKTsgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjpldmFsX2lmX2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIDwgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICwgOjpuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OmlkZW50aXR5PFQ+ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICwgOjpuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OmlkZW50aXR5PERlZmF1bHRXcmFwPiAgICAgICAgICAgIFwKKyAgICAgICAgICAgID46OnR5cGU6OlROQU1FIHR5cGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8vCisKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX09CVEFJTl9UWVBFX1dJVEhfREVGQVVMVChJTlNUQU5USUFUSU9OX05TX1BSRUZJWCwgVCwgVE5BTUUsIFRJTVBMKSAgIFwKKyAgICAgIHR5cGVuYW1lIElOU1RBTlRJQVRJT05fTlNfUFJFRklYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGJvb3N0X2ludHJ1c2l2ZV9kZWZhdWx0X3R5cGVfICMjIFROQU1FPCBULCBUSU1QTCA+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8vCisKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX09CVEFJTl9UWVBFX1dJVEhfRVZBTF9ERUZBVUxUKElOU1RBTlRJQVRJT05fTlNfUFJFRklYLCBULCBUTkFNRSwgVElNUEwpIFwKKyAgICAgIHR5cGVuYW1lIElOU1RBTlRJQVRJT05fTlNfUFJFRklYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGJvb3N0X2ludHJ1c2l2ZV9ldmFsX2RlZmF1bHRfdHlwZV8gIyMgVE5BTUU8IFQsIFRJTVBMID46OnR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8vCisKK319fSAgIC8vbmFtZXNwYWNlIG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbAorCisjaW5jbHVkZSA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGguaHBwPgorCisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfRlVOQ05BTUUgcG9pbnRlcl90bworI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0JFR0lOIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBpbnRydXNpdmUgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19FTkQgICB9fX0KKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xICgzLCAoMCwgMSwgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSBzdGF0aWNfY2FzdF9mcm9tCisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9IQVNfTUVNQkVSX0ZVTkNUSU9OX0NBTExBQkxFX1dJVEhfTlNfQkVHSU4gbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGludHJ1c2l2ZSB7IG5hbWVzcGFjZSBkZXRhaWwgeworI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0VORCAgIH19fQorI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgKDMsICgwLCAxLCA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9oYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGguaHBwPikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX0ZVTkNOQU1FIGNvbnN0X2Nhc3RfZnJvbQorI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0JFR0lOIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBpbnRydXNpdmUgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19FTkQgICB9fX0KKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xICgzLCAoMCwgMSwgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9GVU5DTkFNRSBkeW5hbWljX2Nhc3RfZnJvbQorI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfSEFTX01FTUJFUl9GVU5DVElPTl9DQUxMQUJMRV9XSVRIX05TX0JFR0lOIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBpbnRydXNpdmUgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX0hBU19NRU1CRVJfRlVOQ1RJT05fQ0FMTEFCTEVfV0lUSF9OU19FTkQgICB9fX0KKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xICgzLCAoMCwgMSwgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgaW50cnVzaXZlIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCitCT09TVF9JTlRSVVNJVkVfSU5TVEFOVElBVEVfREVGQVVMVF9UWVBFX1RNUExUKGVsZW1lbnRfdHlwZSkKK0JPT1NUX0lOVFJVU0lWRV9JTlNUQU5USUFURV9ERUZBVUxUX1RZUEVfVE1QTFQoZGlmZmVyZW5jZV90eXBlKQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvL3N0cnVjdCBmaXJzdF9wYXJhbQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGZpcnN0X3BhcmFtCit7ICB0eXBlZGVmIHZvaWQgdHlwZTsgICB9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorCisgICB0ZW1wbGF0ZSA8dGVtcGxhdGUgPHR5cGVuYW1lLCB0eXBlbmFtZS4uLj4gY2xhc3MgVGVtcGxhdGVDbGFzcywgdHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KKyAgIHN0cnVjdCBmaXJzdF9wYXJhbTwgVGVtcGxhdGVDbGFzczxULCBBcmdzLi4uPiA+CisgICB7CisgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgIH07CisKKyNlbHNlIC8vQysrMDMgY29tcGlsZXJzCisKKyAgICNkZWZpbmUgQk9PU1RfUFBfTE9DQUxfTUFDUk8obikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHRlbXBsYXRlIDwgdGVtcGxhdGUgPHR5cGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkcobiwgQk9PU1RfSU5UUlVTSVZFX1BQX0lERU5USVRZLCB0eXBlbmFtZSkgPiAgIFwKKyAgICAgICAgICAgIGNsYXNzIFRlbXBsYXRlQ2xhc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVCBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhuLCBjbGFzcyBQKT4gICAgICAgICAgICAgICAgIFwKKyAgIHN0cnVjdCBmaXJzdF9wYXJhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIDwgVGVtcGxhdGVDbGFzczxUIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIFApPiA+ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHR5cGVkZWYgVCB0eXBlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIC8vCisgICAjZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUyAoMCwgQk9PU1RfSU5UUlVTSVZFX01BWF9DT05TVFJVQ1RPUl9QQVJBTUVURVJTKQorICAgI2luY2x1ZGUgQk9PU1RfUFBfTE9DQUxfSVRFUkFURSgpCisKKyNlbmRpZiAgIC8vIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vc3RydWN0IHR5cGVfcmViaW5kX21vZGUKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwordGVtcGxhdGUgPHR5cGVuYW1lIFB0ciwgdHlwZW5hbWUgVD4KK3N0cnVjdCB0eXBlX2hhc19yZWJpbmQKK3sKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBYPgorICAgI2lmICFkZWZpbmVkIChfX1NVTlBST19DQykKKyAgIHN0YXRpYyBjaGFyIHRlc3QoaW50LCB0eXBlbmFtZSBYOjp0ZW1wbGF0ZSByZWJpbmQ8VD4qKTsKKyAgICNlbHNlCisgICBzdGF0aWMgY2hhciB0ZXN0KGludCwgdHlwZW5hbWUgWDo6cmViaW5kPFQ+Kik7CisgICAjZW5kaWYKKworICAgdGVtcGxhdGUgPHR5cGVuYW1lIFg+CisgICBzdGF0aWMgaW50IHRlc3QobmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjpMb3dQcmlvcml0eUNvbnZlcnNpb248aW50Piwgdm9pZCopOworCisgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9ICgxID09IHNpemVvZih0ZXN0PFB0cj4oMCwgMCkpKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQdHIsIHR5cGVuYW1lIFQ+CitzdHJ1Y3QgdHlwZV9oYXNfcmViaW5kX290aGVyCit7CisgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgWD4KKyAgICNpZiAhZGVmaW5lZCAoX19TVU5QUk9fQ0MpCisgICBzdGF0aWMgY2hhciB0ZXN0KGludCwgdHlwZW5hbWUgWDo6dGVtcGxhdGUgcmViaW5kPFQ+OjpvdGhlciopOworICAgI2Vsc2UKKyAgIHN0YXRpYyBjaGFyIHRlc3QoaW50LCB0eXBlbmFtZSBYOjpyZWJpbmQ8VD46Om90aGVyKik7CisgICAjZW5kaWYKKworICAgdGVtcGxhdGUgPHR5cGVuYW1lIFg+CisgICBzdGF0aWMgaW50IHRlc3QobmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjpMb3dQcmlvcml0eUNvbnZlcnNpb248aW50Piwgdm9pZCopOworCisgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9ICgxID09IHNpemVvZih0ZXN0PFB0cj4oMCwgMCkpKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQdHIsIHR5cGVuYW1lIFQ+CitzdHJ1Y3QgdHlwZV9yZWJpbmRfbW9kZQoreworICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCByZWJpbmQgPSAgICAgICAodW5zaWduZWQgaW50KXR5cGVfaGFzX3JlYmluZDxQdHIsIFQ+Ojp2YWx1ZTsKKyAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcmViaW5kX290aGVyID0gKHVuc2lnbmVkIGludCl0eXBlX2hhc19yZWJpbmRfb3RoZXI8UHRyLCBUPjo6dmFsdWU7CisgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG1vZGUgPSAgICAgICAgIHJlYmluZCArIHJlYmluZCpyZWJpbmRfb3RoZXI7Cit9OworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vc3RydWN0IHR5cGVfcmViaW5kZXIKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwordGVtcGxhdGUgPHR5cGVuYW1lIFB0ciwgdHlwZW5hbWUgVSwgdW5zaWduZWQgaW50IFJlYmluZE1vZGUgPSB0eXBlX3JlYmluZF9tb2RlPFB0ciwgVT46Om1vZGU+CitzdHJ1Y3QgdHlwZV9yZWJpbmRlcjsKKworLy8gSW1wbGVtZW50YXRpb24gb2YgcG9pbnRlcl90cmFpdHM8UHRyPjo6cmViaW5kIGlmIFB0ciBoYXMKKy8vIGl0cyBvd24gcmViaW5kOjpvdGhlciB0eXBlIChDKyswMykKK3RlbXBsYXRlIDx0eXBlbmFtZSBQdHIsIHR5cGVuYW1lIFU+CitzdHJ1Y3QgdHlwZV9yZWJpbmRlcjwgUHRyLCBVLCAydSA+Cit7CisgICB0eXBlZGVmIHR5cGVuYW1lIFB0cjo6dGVtcGxhdGUgcmViaW5kPFU+OjpvdGhlciB0eXBlOworfTsKKworLy8gSW1wbGVtZW50YXRpb24gb2YgcG9pbnRlcl90cmFpdHM8UHRyPjo6cmViaW5kIGlmIFB0ciBoYXMKKy8vIGl0cyBvd24gcmViaW5kIHRlbXBsYXRlLgordGVtcGxhdGUgPHR5cGVuYW1lIFB0ciwgdHlwZW5hbWUgVT4KK3N0cnVjdCB0eXBlX3JlYmluZGVyPCBQdHIsIFUsIDF1ID4KK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgUHRyOjp0ZW1wbGF0ZSByZWJpbmQ8VT4gdHlwZTsKK307CisKKy8vIFNwZWNpYWxpemF0aW9uIG9mIHBvaW50ZXJfdHJhaXRzPFB0cj46OnJlYmluZCBpZiBQdHIgZG9lcyBub3QKKy8vIGhhdmUgaXRzIG93biByZWJpbmQgdGVtcGxhdGUgYnV0IGhhcyBhIHRoZSBmb3JtIFB0cjxjbGFzcyBULAorLy8gT3RoZXJBcmdzPiwgd2hlcmUgT3RoZXJBcmdzIGNvbXByaXNlcyB6ZXJvIG9yIG1vcmUgdHlwZSBwYXJhbWV0ZXJzLgorLy8gTWFueSBwb2ludGVycyBmaXQgdGhpcyBmb3JtLCBoZW5jZSBtYW55IHBvaW50ZXJzIHdpbGwgZ2V0IGEKKy8vIHJlYXNvbmFibGUgZGVmYXVsdCBmb3IgcmViaW5kLgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykKKwordGVtcGxhdGUgPHRlbXBsYXRlIDxjbGFzcywgY2xhc3MuLi4+IGNsYXNzIFB0ciwgdHlwZW5hbWUgVCwgY2xhc3MuLi4gVG4sIGNsYXNzIFU+CitzdHJ1Y3QgdHlwZV9yZWJpbmRlcjxQdHI8VCwgVG4uLi4+LCBVLCAwdSA+Cit7CisgICB0eXBlZGVmIFB0cjxVLCBUbi4uLj4gdHlwZTsKK307CisKKy8vTmVlZGVkIGZvciBub24tY29uZm9ybWluZyBjb21waWxlcnMgbGlrZSBHQ0MgNC4zCit0ZW1wbGF0ZSA8dGVtcGxhdGUgPGNsYXNzPiBjbGFzcyBQdHIsIHR5cGVuYW1lIFQsIGNsYXNzIFU+CitzdHJ1Y3QgdHlwZV9yZWJpbmRlcjxQdHI8VD4sIFUsIDB1ID4KK3sKKyAgIHR5cGVkZWYgUHRyPFU+IHR5cGU7Cit9OworCisjZWxzZSAvL0MrKzAzIGNvbXBpbGVycworCisjZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKG4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZSA8IHRlbXBsYXRlIDx0eXBlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9QUF9FTlVNX1RSQUlMSU5HKG4sIEJPT1NUX0lOVFJVU0lWRV9QUF9JREVOVElUWSwgdHlwZW5hbWUpID4gICBcCisgICAgICAgICAgIGNsYXNzIFB0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAsIHR5cGVuYW1lIFQgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMobiwgY2xhc3MgUCkgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAsIGNsYXNzIFU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitzdHJ1Y3QgdHlwZV9yZWJpbmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICA8IFB0cjxUIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIFApPiwgVSwgMHUgPiAgICAgICAgICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICB0eXBlZGVmIFB0cjxVIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIFApPiB0eXBlOyAgICAgICAgICAgICAgICAgICAgICBcCit9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvLworI2RlZmluZSBCT09TVF9QUF9MT0NBTF9MSU1JVFMgKDAsIEJPT1NUX0lOVFJVU0lWRV9NQVhfQ09OU1RSVUNUT1JfUEFSQU1FVEVSUykKKyNpbmNsdWRlIEJPT1NUX1BQX0xPQ0FMX0lURVJBVEUoKQorCisjZW5kaWYgICAvLyFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykKKworfSAgLy9uYW1lc3BhY2UgZGV0YWlsIHsKK30gIC8vbmFtZXNwYWNlIGludHJ1c2l2ZSB7Cit9ICAvL25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpbmNsdWRlIDxuZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19lbmQuaHBwPgorCisjZW5kaWYgLy8gISBkZWZpbmVkKEJPT1NUX0lOVFJVU0lWRV9BTExPQ0FUT1JfTUVNT1JZX1VUSUxfSFBQKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL21wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGM2MzdkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL21wbC5ocHAKQEAgLTAsMCArMSwzODMgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gKEMpIENvcHlyaWdodCBJb24gR2F6dGFuYWdhICAyMDA2LTIwMTIKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvaW50cnVzaXZlIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyNpZm5kZWYgQk9PU1RfSU5UUlVTSVZFX0RFVEFJTF9NUExfSFBQCisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9ERVRBSUxfTVBMX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgaW50cnVzaXZlIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCit0eXBlZGVmIGNoYXIgb25lOworc3RydWN0IHR3byB7b25lIF9bMl07fTsKKwordGVtcGxhdGU8IGJvb2wgQ18gPgorc3RydWN0IGJvb2xfCit7CisgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IENfOworfTsKKwordHlwZWRlZiBib29sXzx0cnVlPiAgICAgICAgdHJ1ZV87Cit0eXBlZGVmIGJvb2xfPGZhbHNlPiAgICAgICBmYWxzZV87CisKK3R5cGVkZWYgdHJ1ZV8gIHRydWVfdHlwZTsKK3R5cGVkZWYgZmFsc2VfIGZhbHNlX3R5cGU7CisKK3R5cGVkZWYgY2hhciB5ZXNfdHlwZTsKK3N0cnVjdCBub190eXBlCit7CisgICBjaGFyIHBhZGRpbmdbOF07Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBCLCBjbGFzcyBUID0gdm9pZD4KK3N0cnVjdCBlbmFibGVfaWZfYyB7CisgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgZW5hYmxlX2lmX2M8ZmFsc2UsIFQ+IHt9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IHZvaWQ+CitzdHJ1Y3QgZW5hYmxlX2lmIDogcHVibGljIGVuYWJsZV9pZl9jPENvbmQ6OnZhbHVlLCBUPnt9OworCit0ZW1wbGF0ZTxjbGFzcyBGLCBjbGFzcyBQYXJhbT4KK3N0cnVjdCBhcHBseQoreworICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTxQYXJhbT46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorY2xhc3MgaXNfY29udmVydGlibGUKK3sKKyAgIHR5cGVkZWYgY2hhciB0cnVlX3Q7CisgICBjbGFzcyBmYWxzZV90IHsgY2hhciBkdW1teVsyXTsgfTsKKyAgIHN0YXRpYyB0cnVlX3QgZGlzcGF0Y2goVSk7CisgICBzdGF0aWMgZmFsc2VfdCBkaXNwYXRjaCguLi4pOworICAgc3RhdGljIGNvbnN0IFQgJnRyaWdnZXIoKTsKKyAgIHB1YmxpYzoKKyAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mKGRpc3BhdGNoKHRyaWdnZXIoKSkpID09IHNpemVvZih0cnVlX3QpOworfTsKKwordGVtcGxhdGU8CisgICAgICBib29sIEMKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBpZl9jCit7CisgICAgdHlwZWRlZiBUMSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMQorICAgICwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgaWZfYzxmYWxzZSxUMSxUMj4KK3sKKyAgICB0eXBlZGVmIFQyIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEMKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBpZl8KK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfYzwwICE9IEM6OnZhbHVlLCBUMSwgVDI+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQworICAgICwgdHlwZW5hbWUgRjEKKyAgICAsIHR5cGVuYW1lIEYyCisgICAgPgorc3RydWN0IGV2YWxfaWZfYworICAgIDogaWZfYzxDLEYxLEYyPjo6dHlwZQore307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQworICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGV2YWxfaWYKKyAgICA6IGlmXzxDLFQxLFQyPjo6dHlwZQore307CisKKy8vIGlkZW50aXR5IGlzIGFuIGV4dGVuc2lvbjogaXQgaXMgbm90IHBhcnQgb2YgdGhlIHN0YW5kYXJkLgordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaWRlbnRpdHkKK3sKKyAgIHR5cGVkZWYgVCB0eXBlOworfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgfHwgZGVmaW5lZChfX0JPUkxBTkRDXykKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX1RUX0RFQ0wgX19jZGVjbAorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfSU5UUlVTSVZFX1RUX0RFQ0wKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX0VYVEVOU0lPTlMpICYmICFkZWZpbmVkKF9fQk9STEFORF9fKSAmJiAhZGVmaW5lZChfV0lONjQpICYmICFkZWZpbmVkKFVOREVSX0NFKQorI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfVFRfVEVTVF9NU0NfRlVOQ19TSUdTCisjZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGwKK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7IH07CisKKy8vIHNlZSBib29zdCB0aWNrZXQgIzQwOTQKKy8vIGF2b2lkIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBvZiBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbAorI2lmbmRlZiBCT09TVF9JTlRSVVNJVkVfVFRfVEVTVF9NU0NfRlVOQ19TSUdTCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSPgorc3RydWN0IGlzX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbl9pbXBsPFIgKCopKCk+Cit7ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7ICB9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUj4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSICgqKSguLi4pPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2Vsc2UgLy8gQk9PU1RfSU5UUlVTSVZFX1RUX1RFU1RfTVNDX0ZVTkNfU0lHUworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUj4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSIChfX3N0ZGNhbGwqKSgpPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2lmbmRlZiBfTUFOQUdFRAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUj4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSIChfX2Zhc3RjYWxsKikoKT4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgIH07CisKKyNlbmRpZgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUj4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSIChfX2NkZWNsKikoKT4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgIH07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSPgorc3RydWN0IGlzX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbl9pbXBsPFIgKF9fY2RlY2wqKSguLi4pPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2VuZGlmCisKKy8vIHNlZSBib29zdCB0aWNrZXQgIzQwOTQKKy8vIGF2b2lkIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBvZiBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbAorI2lmbmRlZiBCT09TVF9JTlRSVVNJVkVfVFRfVEVTVF9NU0NfRlVOQ19TSUdTCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSLCBjbGFzcyBUMD4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSICgqKShUMCk+Cit7ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7ICB9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoKikoVDAuLi4pPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2Vsc2UgLy8gQk9PU1RfSU5UUlVTSVZFX1RUX1RFU1RfTVNDX0ZVTkNfU0lHUworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoX19zdGRjYWxsKikoVDApPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2lmbmRlZiBfTUFOQUdFRAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoX19mYXN0Y2FsbCopKFQwKT4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgIH07CisKKyNlbmRpZgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoX19jZGVjbCopKFQwKT4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgIH07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSLCBjbGFzcyBUMD4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSIChfX2NkZWNsKikoVDAuLi4pPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2VuZGlmCisKKy8vIHNlZSBib29zdCB0aWNrZXQgIzQwOTQKKy8vIGF2b2lkIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBvZiBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbAorI2lmbmRlZiBCT09TVF9JTlRSVVNJVkVfVFRfVEVTVF9NU0NfRlVOQ19TSUdTCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSLCBjbGFzcyBUMCwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoKikoVDAsIFQxKT4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgIH07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSLCBjbGFzcyBUMCwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoKikoVDAsIFQxLi4uKT4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgIH07CisKKyNlbHNlIC8vIEJPT1NUX0lOVFJVU0lWRV9UVF9URVNUX01TQ19GVU5DX1NJR1MKKwordGVtcGxhdGUgPHR5cGVuYW1lIFIsIGNsYXNzIFQwLCBjbGFzcyBUMT4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxSIChfX3N0ZGNhbGwqKShUMCwgVDEpPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2lmbmRlZiBfTUFOQUdFRAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgY2xhc3MgVDAsIGNsYXNzIFQxPgorc3RydWN0IGlzX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbl9pbXBsPFIgKF9fZmFzdGNhbGwqKShUMCwgVDEpPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKworI2VuZGlmCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSLCBjbGFzcyBUMCwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uX2ltcGw8UiAoX19jZGVjbCopKFQwLCBUMSk+Cit7ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7ICB9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgY2xhc3MgVDAsIGNsYXNzIFQxPgorc3RydWN0IGlzX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbl9pbXBsPFIgKF9fY2RlY2wqKShUMCwgVDEuLi4pPgoreyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyAgfTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc191bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb25faW1wbDxUJj4KK3sgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7IH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uCit7ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGlzX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbl9pbXBsPFQ+Ojp2YWx1ZTsgICB9OworCisvL25kbmJvb3N0OjphbGlnbm1lbnRfb2YgeWllbGRzIHRvIDEwSyBsaW5lcyBvZiBwcmVwcm9jZXNzZWQgY29kZSwgc28gd2UKKy8vbmVlZCBhbiBhbHRlcm5hdGl2ZQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBhbGlnbm1lbnRfb2Y7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFsaWdubWVudF9vZl9oYWNrCit7CisgICAgY2hhciBjOworICAgIFQgdDsKKyAgICBhbGlnbm1lbnRfb2ZfaGFjaygpOworfTsKKwordGVtcGxhdGUgPHVuc2lnbmVkIEEsIHVuc2lnbmVkIFM+CitzdHJ1Y3QgYWxpZ25tZW50X2xvZ2ljCit7CisgICBzdGF0aWMgY29uc3Qgc3RkOjpzaXplX3QgdmFsdWUgPSBBIDwgUyA/IEEgOiBTOworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGFsaWdubWVudF9vZgoreworICAgc3RhdGljIGNvbnN0IHN0ZDo6c2l6ZV90IHZhbHVlID0gYWxpZ25tZW50X2xvZ2ljCisgICAgICAgICAgICA8IHNpemVvZihhbGlnbm1lbnRfb2ZfaGFjazxUPikgLSBzaXplb2YoVCkKKyAgICAgICAgICAgICwgc2l6ZW9mKFQpCisgICAgICAgICAgICA+Ojp2YWx1ZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorc3RydWN0IGlzX3NhbWUKK3sKKyAgIHR5cGVkZWYgY2hhciB5ZXNfdHlwZTsKKyAgIHN0cnVjdCBub190eXBlCisgICB7CisgICAgICBjaGFyIHBhZGRpbmdbOF07CisgICB9OworCisgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVj4KKyAgIHN0YXRpYyB5ZXNfdHlwZSBpc19zYW1lX3Rlc3RlcihWKiwgViopOworICAgc3RhdGljIG5vX3R5cGUgaXNfc2FtZV90ZXN0ZXIoLi4uKTsKKworICAgc3RhdGljIFQgKnQ7CisgICBzdGF0aWMgVSAqdTsKKworICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YoeWVzX3R5cGUpID09IHNpemVvZihpc19zYW1lX3Rlc3Rlcih0LHUpKTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWRkX2NvbnN0Cit7ICB0eXBlZGVmIGNvbnN0IFQgdHlwZTsgICB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IHJlbW92ZV9jb25zdAoreyAgdHlwZWRlZiAgVCB0eXBlOyAgIH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgcmVtb3ZlX2NvbnN0PGNvbnN0IFQ+Cit7ICB0eXBlZGVmIFQgdHlwZTsgICB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IHJlbW92ZV9jdgoreyAgdHlwZWRlZiAgVCB0eXBlOyAgIH07CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgcmVtb3ZlX2N2PGNvbnN0IFQ+Cit7ICB0eXBlZGVmIFQgdHlwZTsgICB9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IHJlbW92ZV9jdjxjb25zdCB2b2xhdGlsZSBUPgoreyAgdHlwZWRlZiBUIHR5cGU7ICAgfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCByZW1vdmVfY3Y8dm9sYXRpbGUgVD4KK3sgIHR5cGVkZWYgVCB0eXBlOyAgIH07CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgcmVtb3ZlX3JlZmVyZW5jZQoreworICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IHJlbW92ZV9yZWZlcmVuY2U8VCY+Cit7CisgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIENsYXNzPgorY2xhc3MgaXNfZW1wdHlfY2xhc3MKK3sKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgc3RydWN0IGVtcHR5X2hlbHBlcl90MSA6IHB1YmxpYyBUCisgICB7CisgICAgICBlbXB0eV9oZWxwZXJfdDEoKTsKKyAgICAgIGludCBpWzI1Nl07CisgICB9OworCisgICBzdHJ1Y3QgZW1wdHlfaGVscGVyX3QyCisgICB7IGludCBpWzI1Nl07IH07CisKKyAgIHB1YmxpYzoKKyAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mKGVtcHR5X2hlbHBlcl90MTxDbGFzcz4pID09IHNpemVvZihlbXB0eV9oZWxwZXJfdDIpOworfTsKKwordGVtcGxhdGU8c3RkOjpzaXplX3QgUz4KK3N0cnVjdCBsc196ZXJvcworeworICAgc3RhdGljIGNvbnN0IHN0ZDo6c2l6ZV90IHZhbHVlID0gKFMgJiBzdGQ6OnNpemVfdCgxKSkgPyAwIDogKDEgKyBsc196ZXJvczwoUz4+MXUpPjo6dmFsdWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxzX3plcm9zPDA+Cit7CisgICBzdGF0aWMgY29uc3Qgc3RkOjpzaXplX3QgdmFsdWUgPSAwOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxzX3plcm9zPDE+Cit7CisgICBzdGF0aWMgY29uc3Qgc3RkOjpzaXplX3QgdmFsdWUgPSAwOworfTsKKworfSAvL25hbWVzcGFjZSBkZXRhaWwKK30gLy9uYW1lc3BhY2UgaW50cnVzaXZlCit9IC8vbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL2NvbmZpZ19lbmQuaHBwPgorCisjZW5kaWYgLy9CT09TVF9JTlRSVVNJVkVfREVUQUlMX01QTF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9wcmVwcm9jZXNzb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL3ByZXByb2Nlc3Nvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3M2ZhYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9wcmVwcm9jZXNzb3IuaHBwCkBAIC0wLDAgKzEsNTIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIChDKSBDb3B5cmlnaHQgSW9uIEdhenRhbmFnYSAyMDA4LTIwMTIuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9pbnRydXNpdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyNpZm5kZWYgQk9PU1RfSU5UUlVTSVZFX0RFVEFJTF9QUkVQUk9DRVNTT1JfSFBQCisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9ERVRBSUxfUFJFUFJPQ0VTU09SX0hQUAorCisjaWYgKGRlZmluZWQgX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyAgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2xvY2FsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vcGFyZW5faWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9jb21tYV9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmdfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3RyYWlsaW5nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvbm90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2FkZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9pdGVyYXRlLmhwcD4KKworI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfTUFYX0NPTlNUUlVDVE9SX1BBUkFNRVRFUlMgMTAKKworI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfUFBfSURFTlRJVFkoeiwgbiwgZGF0YSkgZGF0YQorCisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9QUF9ERUNMVkFMKHosIG4sIGRhdGEpIFwKK25kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZGVjbHZhbDwgQk9PU1RfUFBfQ0FUKFAsIG4pID4oKSBcCisvLyEKKworI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfUFBfVEVNUExBVEVfUEFSQU1fVk9JRF9ERUZBVUxUKHosIG4sIGRhdGEpICAgXAorICBCT09TVF9QUF9DQVQoY2xhc3MgUCwgbikgPSB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvLyEKKworI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHA+CisKKyNlbmRpZiAvLyNpZm5kZWYgQk9PU1RfSU5UUlVTSVZFX0RFVEFJTF9QUkVQUk9DRVNTT1JfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvd29ya2Fyb3VuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvd29ya2Fyb3VuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRhNzcxMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC93b3JrYXJvdW5kLmhwcApAQCAtMCwwICsxLDIyIEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAwNS0yMDEyLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvaW50ZXJwcm9jZXNzIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisjaWZuZGVmIEJPT1NUX0lOVFJVU0lWRV9ERVRBSUxfV1JLUk5EX0hQUAorI2RlZmluZSBCT09TVF9JTlRSVVNJVkVfREVUQUlMX1dSS1JORF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2JlZ2luLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpCisgICAjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9QRVJGRUNUX0ZPUldBUkRJTkcKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvaW50cnVzaXZlL2RldGFpbC9jb25maWdfZW5kLmhwcD4KKworI2VuZGlmICAgLy8jaWZuZGVmIEJPT1NUX0lOVFJVU0lWRV9ERVRBSUxfV1JLUk5EX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvcG9pbnRlcl90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pbnRydXNpdmUvcG9pbnRlcl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhODkzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2ludHJ1c2l2ZS9wb2ludGVyX3RyYWl0cy5ocHAKQEAgLTAsMCArMSwyNjUgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIChDKSBDb3B5cmlnaHQgUGFibG8gSGFscGVybiAyMDA5LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gKEMpIENvcHlyaWdodCBJb24gR2F6dGFuYWdhIDIwMTEtMjAxMi4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2ludHJ1c2l2ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworI2lmbmRlZiBCT09TVF9JTlRSVVNJVkVfUE9JTlRFUl9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX0lOVFJVU0lWRV9QT0lOVEVSX1RSQUlUU19IUFAKKworI2lmIChkZWZpbmVkIF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pbnRydXNpdmUvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvbWVtb3J5X3V0aWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxjc3RkZGVmPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGludHJ1c2l2ZSB7CisKKy8vISBwb2ludGVyX3RyYWl0cyBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgQysrMTEgc3RkOjpwb2ludGVyX3RyYWl0cyBjbGFzcyB3aXRoIHNvbWUKKy8vISBleHRlbnNpb25zIGxpa2UgY2FzdGluZ3MuCisvLyEKKy8vISBwb2ludGVyX3RyYWl0cyBzdXBwbGllcyBhIHVuaWZvcm0gaW50ZXJmYWNlIHRvIGNlcnRhaW4gYXR0cmlidXRlcyBvZiBwb2ludGVyLWxpa2UgdHlwZXMuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHRyPgorc3RydWN0IHBvaW50ZXJfdHJhaXRzCit7CisgICAjaWZkZWYgQk9PU1RfSU5UUlVTSVZFX0RPWFlHRU5fSU5WT0tFRAorICAgICAgLy8hVGhlIHBvaW50ZXIgdHlwZQorICAgICAgLy8hcXVlcmllZCBieSB0aGlzIHBvaW50ZXJfdHJhaXRzIGluc3RhbnRpYXRpb24KKyAgICAgIHR5cGVkZWYgUHRyICAgICAgICAgICAgIHBvaW50ZXI7CisKKyAgICAgIC8vIVB0cjo6ZWxlbWVudF90eXBlIGlmIHN1Y2ggYSB0eXBlIGV4aXN0czsgb3RoZXJ3aXNlLCBUIGlmIFB0ciBpcyBhIGNsYXNzCisgICAgICAvLyF0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIG9mIHRoZSBmb3JtIFNvbWVQb2ludGVyPFQsIEFyZ3M+LCB3aGVyZSBBcmdzIGlzIHplcm8gb3IKKyAgICAgIC8vIW1vcmUgdHlwZSBhcmd1bWVudHMgOyBvdGhlcndpc2UgLCB0aGUgc3BlY2lhbGl6YXRpb24gaXMgaWxsLWZvcm1lZC4KKyAgICAgIHR5cGVkZWYgdW5zcGVjaWZpZWRfdHlwZSBlbGVtZW50X3R5cGU7CisKKyAgICAgIC8vIVB0cjo6ZGlmZmVyZW5jZV90eXBlIGlmIHN1Y2ggYSB0eXBlIGV4aXN0czsgb3RoZXJ3aXNlLAorICAgICAgLy8hc3RkOjpwdHJkaWZmX3QuCisgICAgICB0eXBlZGVmIHVuc3BlY2lmaWVkX3R5cGUgZGlmZmVyZW5jZV90eXBlOworCisgICAgICAvLyFQdHI6OnJlYmluZDxVPiBpZiBzdWNoIGEgdHlwZSBleGlzdHM7IG90aGVyd2lzZSwgU29tZVBvaW50ZXI8VSwgQXJncz4gaWYgUHRyIGlzCisgICAgICAvLyFhIGNsYXNzIHRlbXBsYXRlIGluc3RhbnRpYXRpb24gb2YgdGhlIGZvcm0gU29tZVBvaW50ZXI8VCwgQXJncz4sIHdoZXJlIEFyZ3MgaXMgemVybyBvcgorICAgICAgLy8hbW9yZSB0eXBlIGFyZ3VtZW50cyA7IG90aGVyd2lzZSwgdGhlIGluc3RhbnRpYXRpb24gb2YgcmViaW5kIGlzIGlsbC1mb3JtZWQuCisgICAgICAvLyEKKyAgICAgIC8vIUZvciBwb3J0YWJsZSBjb2RlIGZvciBDKyswMyBhbmQgQysrMTEsIDxwcmU+dHlwZW5hbWUgcmViaW5kX3BvaW50ZXI8VT46OnR5cGU8L3ByZT4KKyAgICAgIC8vIXNoYWxsIGJlIHVzZWQgaW5zdGVhZCBvZiByZWJpbmQ8VT4gdG8gb2J0YWluIGEgcG9pbnRlciB0byBVLgorICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHVzaW5nIHJlYmluZCA9IHVuc3BlY2lmaWVkOworCisgICAgICAvLyFQdHI6OnJlYmluZDxVPiBpZiBzdWNoIGEgdHlwZSBleGlzdHM7IG90aGVyd2lzZSwgU29tZVBvaW50ZXI8VSwgQXJncz4gaWYgUHRyIGlzCisgICAgICAvLyFhIGNsYXNzIHRlbXBsYXRlIGluc3RhbnRpYXRpb24gb2YgdGhlIGZvcm0gU29tZVBvaW50ZXI8VCwgQXJncz4sIHdoZXJlIEFyZ3MgaXMgemVybyBvcgorICAgICAgLy8hbW9yZSB0eXBlIGFyZ3VtZW50cyA7IG90aGVyd2lzZSwgdGhlIGluc3RhbnRpYXRpb24gb2YgcmViaW5kIGlzIGlsbC1mb3JtZWQuCisgICAgICAvLyEKKyAgICAgIHR5cGVkZWYgZWxlbWVudF90eXBlICZyZWZlcmVuY2U7CisgICAjZWxzZQorICAgICAgdHlwZWRlZiBQdHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlcjsKKyAgICAgIC8vCisgICAgICB0eXBlZGVmIEJPT1NUX0lOVFJVU0lWRV9PQlRBSU5fVFlQRV9XSVRIX0VWQUxfREVGQVVMVAorICAgICAgICAgKCBuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OiwgUHRyLCBlbGVtZW50X3R5cGUKKyAgICAgICAgICwgbmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjpmaXJzdF9wYXJhbTxQdHI+KSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRfdHlwZTsKKyAgICAgIC8vCisgICAgICB0eXBlZGVmIEJPT1NUX0lOVFJVU0lWRV9PQlRBSU5fVFlQRV9XSVRIX0RFRkFVTFQKKyAgICAgICAgIChuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OiwgUHRyLCBkaWZmZXJlbmNlX3R5cGUsIHN0ZDo6cHRyZGlmZl90KSAgIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgIC8vCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6dW52b2lkPGVsZW1lbnRfdHlwZT46OnR5cGUmICByZWZlcmVuY2U7CisgICAgICAvLworICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHN0cnVjdCByZWJpbmRfcG9pbnRlcgorICAgICAgeworICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OnR5cGVfcmViaW5kZXI8UHRyLCBVPjo6dHlwZSAgdHlwZTsKKyAgICAgIH07CisKKyAgICAgICNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTKQorICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHVzaW5nIHJlYmluZCA9IHR5cGVuYW1lIG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6dHlwZV9yZWJpbmRlcjxQdHIsIFU+Ojp0eXBlOworICAgICAgI2VuZGlmCisgICAjZW5kaWYgICAvLyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTKQorCisgICAvLyEgPGI+UmVtYXJrPC9iPjogSWYgZWxlbWVudF90eXBlIGlzIChwb3NzaWJseSBjdi1xdWFsaWZpZWQpIHZvaWQsIHIgdHlwZSBpcyB1bnNwZWNpZmllZDsgb3RoZXJ3aXNlLAorICAgLy8hICAgaXQgaXMgZWxlbWVudF90eXBlICYuCisgICAvLyEKKyAgIC8vISA8Yj5SZXR1cm5zPC9iPjogQSBkZXJlZmVyZW5jZWFibGUgcG9pbnRlciB0byByIG9idGFpbmVkIGJ5IGNhbGxpbmcgUHRyOjpwb2ludGVyX3RvKHIpLgorICAgLy8hICAgTm9uLXN0YW5kYXJkIGV4dGVuc2lvbjogSWYgc3VjaCBmdW5jdGlvbiBkb2VzIG5vdCBleGlzdCwgcmV0dXJucyBwb2ludGVyKGFkZHJlc3NvZihyKSk7CisgICBzdGF0aWMgcG9pbnRlciBwb2ludGVyX3RvKHJlZmVyZW5jZSByKQorICAgeworICAgICAgLy9Ob24tc3RhbmRhcmQgZXh0ZW5zaW9uLCBpdCBkb2VzIG5vdCByZXF1aXJlIFB0cjo6cG9pbnRlcl90by4gSWYgbm90IHByZXNlbnQKKyAgICAgIC8vdHJpZXMgdG8gY29udmVydHMgJnIgdG8gcG9pbnRlci4KKyAgICAgIGNvbnN0IGJvb2wgdmFsdWUgPSBuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OgorICAgICAgICAgaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoX3BvaW50ZXJfdG8KKyAgICAgICAgICAgIDxQdHIsIHR5cGVuYW1lIG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6dW52b2lkPGVsZW1lbnRfdHlwZSAmPjo6dHlwZT46OnZhbHVlOworICAgICAgOjpuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdmFsdWU+IGZsYWc7CisgICAgICByZXR1cm4gcG9pbnRlcl90cmFpdHM6OnByaXZfcG9pbnRlcl90byhmbGFnLCByKTsKKyAgIH0KKworICAgLy8hIDxiPlJlbWFyazwvYj46IE5vbi1zdGFuZGFyZCBleHRlbnNpb24uCisgICAvLyEKKyAgIC8vISA8Yj5SZXR1cm5zPC9iPjogQSBkZXJlZmVyZW5jZWFibGUgcG9pbnRlciB0byByIG9idGFpbmVkIGJ5IGNhbGxpbmcgUHRyOjpzdGF0aWNfY2FzdF9mcm9tKHIpLgorICAgLy8hICAgSWYgc3VjaCBmdW5jdGlvbiBkb2VzIG5vdCBleGlzdCwgcmV0dXJucyBwb2ludGVyX3RvKHN0YXRpY19jYXN0PGVsZW1lbnRfdHlwZSY+KCp1cHRyKSkKKyAgIHRlbXBsYXRlPGNsYXNzIFVQdHI+CisgICBzdGF0aWMgcG9pbnRlciBzdGF0aWNfY2FzdF9mcm9tKGNvbnN0IFVQdHIgJnVwdHIpCisgICB7CisgICAgICBjb25zdCBib29sIHZhbHVlID0gbmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjoKKyAgICAgICAgIGhhc19tZW1iZXJfZnVuY3Rpb25fY2FsbGFibGVfd2l0aF9zdGF0aWNfY2FzdF9mcm9tCisgICAgICAgICAgICA8UHRyLCBjb25zdCBVUHRyPjo6dmFsdWU7CisgICAgICA6Om5kbmJvb3N0OjppbnRlZ3JhbF9jb25zdGFudDxib29sLCB2YWx1ZT4gZmxhZzsKKyAgICAgIHJldHVybiBwb2ludGVyX3RyYWl0czo6cHJpdl9zdGF0aWNfY2FzdF9mcm9tKGZsYWcsIHVwdHIpOworICAgfQorCisgICAvLyEgPGI+UmVtYXJrPC9iPjogTm9uLXN0YW5kYXJkIGV4dGVuc2lvbi4KKyAgIC8vIQorICAgLy8hIDxiPlJldHVybnM8L2I+OiBBIGRlcmVmZXJlbmNlYWJsZSBwb2ludGVyIHRvIHIgb2J0YWluZWQgYnkgY2FsbGluZyBQdHI6OmNvbnN0X2Nhc3RfZnJvbShyKS4KKyAgIC8vISAgIElmIHN1Y2ggZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QsIHJldHVybnMgcG9pbnRlcl90byhjb25zdF9jYXN0PGVsZW1lbnRfdHlwZSY+KCp1cHRyKSkKKyAgIHRlbXBsYXRlPGNsYXNzIFVQdHI+CisgICBzdGF0aWMgcG9pbnRlciBjb25zdF9jYXN0X2Zyb20oY29uc3QgVVB0ciAmdXB0cikKKyAgIHsKKyAgICAgIGNvbnN0IGJvb2wgdmFsdWUgPSBuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OgorICAgICAgICAgaGFzX21lbWJlcl9mdW5jdGlvbl9jYWxsYWJsZV93aXRoX2NvbnN0X2Nhc3RfZnJvbQorICAgICAgICAgICAgPFB0ciwgY29uc3QgVVB0cj46OnZhbHVlOworICAgICAgOjpuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdmFsdWU+IGZsYWc7CisgICAgICByZXR1cm4gcG9pbnRlcl90cmFpdHM6OnByaXZfY29uc3RfY2FzdF9mcm9tKGZsYWcsIHVwdHIpOworICAgfQorCisgICAvLyEgPGI+UmVtYXJrPC9iPjogTm9uLXN0YW5kYXJkIGV4dGVuc2lvbi4KKyAgIC8vIQorICAgLy8hIDxiPlJldHVybnM8L2I+OiBBIGRlcmVmZXJlbmNlYWJsZSBwb2ludGVyIHRvIHIgb2J0YWluZWQgYnkgY2FsbGluZyBQdHI6OmR5bmFtaWNfY2FzdF9mcm9tKHIpLgorICAgLy8hICAgSWYgc3VjaCBmdW5jdGlvbiBkb2VzIG5vdCBleGlzdCwgcmV0dXJucyBwb2ludGVyX3RvKCpkeW5hbWljX2Nhc3Q8ZWxlbWVudF90eXBlKj4oJip1cHRyKSkKKyAgIHRlbXBsYXRlPGNsYXNzIFVQdHI+CisgICBzdGF0aWMgcG9pbnRlciBkeW5hbWljX2Nhc3RfZnJvbShjb25zdCBVUHRyICZ1cHRyKQorICAgeworICAgICAgY29uc3QgYm9vbCB2YWx1ZSA9IG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6CisgICAgICAgICBoYXNfbWVtYmVyX2Z1bmN0aW9uX2NhbGxhYmxlX3dpdGhfZHluYW1pY19jYXN0X2Zyb20KKyAgICAgICAgICAgIDxQdHIsIGNvbnN0IFVQdHI+Ojp2YWx1ZTsKKyAgICAgIDo6bmRuYm9vc3Q6OmludGVncmFsX2NvbnN0YW50PGJvb2wsIHZhbHVlPiBmbGFnOworICAgICAgcmV0dXJuIHBvaW50ZXJfdHJhaXRzOjpwcml2X2R5bmFtaWNfY2FzdF9mcm9tKGZsYWcsIHVwdHIpOworICAgfQorCisgICAvLy9AY29uZAorICAgcHJpdmF0ZToKKyAgIC8vcHJpdl90b19yYXdfcG9pbnRlcgorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdGF0aWMgVCogdG9fcmF3X3BvaW50ZXIoVCogcCkKKyAgIHsgIHJldHVybiBwOyB9CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBQb2ludGVyPgorICAgc3RhdGljIHR5cGVuYW1lIHBvaW50ZXJfdHJhaXRzPFBvaW50ZXI+OjplbGVtZW50X3R5cGUqCisgICAgICB0b19yYXdfcG9pbnRlcihjb25zdCBQb2ludGVyICZwKQorICAgeyAgcmV0dXJuIHBvaW50ZXJfdHJhaXRzOjp0b19yYXdfcG9pbnRlcihwLm9wZXJhdG9yLT4oKSk7ICB9CisKKyAgIC8vcHJpdl9wb2ludGVyX3RvCisgICBzdGF0aWMgcG9pbnRlciBwcml2X3BvaW50ZXJfdG8obmRuYm9vc3Q6OnRydWVfdHlwZSwgdHlwZW5hbWUgbmRuYm9vc3Q6OmludHJ1c2l2ZTo6ZGV0YWlsOjp1bnZvaWQ8ZWxlbWVudF90eXBlPjo6dHlwZSYgcikKKyAgICAgIHsgcmV0dXJuIFB0cjo6cG9pbnRlcl90byhyKTsgfQorCisgICBzdGF0aWMgcG9pbnRlciBwcml2X3BvaW50ZXJfdG8obmRuYm9vc3Q6OmZhbHNlX3R5cGUsIHR5cGVuYW1lIG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6dW52b2lkPGVsZW1lbnRfdHlwZT46OnR5cGUmIHIpCisgICAgICB7IHJldHVybiBwb2ludGVyKG5kbmJvb3N0OjppbnRydXNpdmU6OmRldGFpbDo6YWRkcmVzc29mKHIpKTsgfQorCisgICAvL3ByaXZfc3RhdGljX2Nhc3RfZnJvbQorICAgdGVtcGxhdGU8Y2xhc3MgVVB0cj4KKyAgIHN0YXRpYyBwb2ludGVyIHByaXZfc3RhdGljX2Nhc3RfZnJvbShuZG5ib29zdDo6dHJ1ZV90eXBlLCBjb25zdCBVUHRyICZ1cHRyKQorICAgeyByZXR1cm4gUHRyOjpzdGF0aWNfY2FzdF9mcm9tKHVwdHIpOyB9CisKKyAgIHRlbXBsYXRlPGNsYXNzIFVQdHI+CisgICBzdGF0aWMgcG9pbnRlciBwcml2X3N0YXRpY19jYXN0X2Zyb20obmRuYm9vc3Q6OmZhbHNlX3R5cGUsIGNvbnN0IFVQdHIgJnVwdHIpCisgICB7ICByZXR1cm4gcG9pbnRlcl90bygqc3RhdGljX2Nhc3Q8ZWxlbWVudF90eXBlKj4odG9fcmF3X3BvaW50ZXIodXB0cikpKTsgIH0KKworICAgLy9wcml2X2NvbnN0X2Nhc3RfZnJvbQorICAgdGVtcGxhdGU8Y2xhc3MgVVB0cj4KKyAgIHN0YXRpYyBwb2ludGVyIHByaXZfY29uc3RfY2FzdF9mcm9tKG5kbmJvb3N0Ojp0cnVlX3R5cGUsIGNvbnN0IFVQdHIgJnVwdHIpCisgICB7IHJldHVybiBQdHI6OmNvbnN0X2Nhc3RfZnJvbSh1cHRyKTsgfQorCisgICB0ZW1wbGF0ZTxjbGFzcyBVUHRyPgorICAgc3RhdGljIHBvaW50ZXIgcHJpdl9jb25zdF9jYXN0X2Zyb20obmRuYm9vc3Q6OmZhbHNlX3R5cGUsIGNvbnN0IFVQdHIgJnVwdHIpCisgICB7ICByZXR1cm4gcG9pbnRlcl90byhjb25zdF9jYXN0PGVsZW1lbnRfdHlwZSY+KCp1cHRyKSk7ICB9CisKKyAgIC8vcHJpdl9keW5hbWljX2Nhc3RfZnJvbQorICAgdGVtcGxhdGU8Y2xhc3MgVVB0cj4KKyAgIHN0YXRpYyBwb2ludGVyIHByaXZfZHluYW1pY19jYXN0X2Zyb20obmRuYm9vc3Q6OnRydWVfdHlwZSwgY29uc3QgVVB0ciAmdXB0cikKKyAgIHsgcmV0dXJuIFB0cjo6ZHluYW1pY19jYXN0X2Zyb20odXB0cik7IH0KKworICAgdGVtcGxhdGU8Y2xhc3MgVVB0cj4KKyAgIHN0YXRpYyBwb2ludGVyIHByaXZfZHluYW1pY19jYXN0X2Zyb20obmRuYm9vc3Q6OmZhbHNlX3R5cGUsIGNvbnN0IFVQdHIgJnVwdHIpCisgICB7ICByZXR1cm4gcG9pbnRlcl90bygqZHluYW1pY19jYXN0PGVsZW1lbnRfdHlwZSo+KCYqdXB0cikpOyAgfQorICAgLy8vQGVuZGNvbmQKK307CisKKy8vL0Bjb25kCisKKy8vIFJlbW92ZSBjdiBxdWFsaWZpY2F0aW9uIGZyb20gUHRyIHBhcmFtZXRlciB0byBwb2ludGVyX3RyYWl0czoKK3RlbXBsYXRlIDx0eXBlbmFtZSBQdHI+CitzdHJ1Y3QgcG9pbnRlcl90cmFpdHM8Y29uc3QgUHRyPiA6IHBvaW50ZXJfdHJhaXRzPFB0cj4ge307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHRyPgorc3RydWN0IHBvaW50ZXJfdHJhaXRzPHZvbGF0aWxlIFB0cj4gOiBwb2ludGVyX3RyYWl0czxQdHI+IHsgfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBQdHI+CitzdHJ1Y3QgcG9pbnRlcl90cmFpdHM8Y29uc3Qgdm9sYXRpbGUgUHRyPiA6IHBvaW50ZXJfdHJhaXRzPFB0cj4geyB9OworLy8gUmVtb3ZlIHJlZmVyZW5jZSBmcm9tIFB0ciBwYXJhbWV0ZXIgdG8gcG9pbnRlcl90cmFpdHM6Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHRyPgorc3RydWN0IHBvaW50ZXJfdHJhaXRzPFB0ciY+IDogcG9pbnRlcl90cmFpdHM8UHRyPiB7IH07CisKKy8vL0BlbmRjb25kCisKKy8vISBTcGVjaWFsaXphdGlvbiBvZiBwb2ludGVyX3RyYWl0cyBmb3IgcmF3IHBvaW50ZXJzCisvLyEKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IHBvaW50ZXJfdHJhaXRzPFQqPgoreworICAgdHlwZWRlZiBUICAgICAgICAgICAgZWxlbWVudF90eXBlOworICAgdHlwZWRlZiBUKiAgICAgICAgICAgcG9pbnRlcjsKKyAgIHR5cGVkZWYgc3RkOjpwdHJkaWZmX3QgZGlmZmVyZW5jZV90eXBlOworCisgICAjaWZkZWYgQk9PU1RfSU5UUlVTSVZFX0RPWFlHRU5fSU5WT0tFRAorICAgICAgdHlwZWRlZiBUICYgICAgICAgICAgcmVmZXJlbmNlOworICAgICAgLy8hdHlwZWRlZiBmb3IgPHByZT5VICo8L3ByZT4KKyAgICAgIC8vIQorICAgICAgLy8hRm9yIHBvcnRhYmxlIGNvZGUgZm9yIEMrKzAzIGFuZCBDKysxMSwgPHByZT50eXBlbmFtZSByZWJpbmRfcG9pbnRlcjxVPjo6dHlwZTwvcHJlPgorICAgICAgLy8hc2hhbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHJlYmluZDxVPiB0byBvYnRhaW4gYSBwb2ludGVyIHRvIFUuCisgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4gdXNpbmcgcmViaW5kID0gVSo7CisgICAjZWxzZQorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OnVudm9pZDxlbGVtZW50X3R5cGU+Ojp0eXBlJiByZWZlcmVuY2U7CisgICAgICAjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUykKKyAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBVPiB1c2luZyByZWJpbmQgPSBVKjsKKyAgICAgICNlbmRpZgorICAgI2VuZGlmCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBVPiBzdHJ1Y3QgcmViaW5kX3BvaW50ZXIKKyAgIHsgIHR5cGVkZWYgVSogdHlwZTsgIH07CisKKyAgIC8vISA8Yj5SZXR1cm5zPC9iPjogYWRkcmVzc29mKHIpCisgICAvLyEKKyAgIHN0YXRpYyBwb2ludGVyIHBvaW50ZXJfdG8ocmVmZXJlbmNlIHIpCisgICB7IHJldHVybiBuZG5ib29zdDo6aW50cnVzaXZlOjpkZXRhaWw6OmFkZHJlc3NvZihyKTsgfQorCisgICAvLyEgPGI+UmV0dXJuczwvYj46IHN0YXRpY19jYXN0PHBvaW50ZXI+KHVwdHIpCisgICAvLyEKKyAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICBzdGF0aWMgcG9pbnRlciBzdGF0aWNfY2FzdF9mcm9tKFUgKnVwdHIpCisgICB7ICByZXR1cm4gc3RhdGljX2Nhc3Q8cG9pbnRlcj4odXB0cik7ICB9CisKKyAgIC8vISA8Yj5SZXR1cm5zPC9iPjogY29uc3RfY2FzdDxwb2ludGVyPih1cHRyKQorICAgLy8hCisgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgc3RhdGljIHBvaW50ZXIgY29uc3RfY2FzdF9mcm9tKFUgKnVwdHIpCisgICB7ICByZXR1cm4gY29uc3RfY2FzdDxwb2ludGVyPih1cHRyKTsgIH0KKworICAgLy8hIDxiPlJldHVybnM8L2I+OiBkeW5hbWljX2Nhc3Q8cG9pbnRlcj4odXB0cikKKyAgIC8vIQorICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgIHN0YXRpYyBwb2ludGVyIGR5bmFtaWNfY2FzdF9mcm9tKFUgKnVwdHIpCisgICB7ICByZXR1cm4gZHluYW1pY19jYXN0PHBvaW50ZXI+KHVwdHIpOyAgfQorfTsKKworfSAgLy9uYW1lc3BhY2UgY29udGFpbmVyIHsKK30gIC8vbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2luY2x1ZGUgPG5kbmJvb3N0L2ludHJ1c2l2ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHA+CisKKyNlbmRpZiAvLyAhIGRlZmluZWQoQk9PU1RfSU5UUlVTSVZFX1BPSU5URVJfVFJBSVRTX0hQUCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaW8vaW9zX3N0YXRlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaW8vaW9zX3N0YXRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWUxNDIyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pby9pb3Nfc3RhdGUuaHBwCkBAIC0wLDAgKzEsNDM5IEBACisvLyAgQm9vc3QgaW8vaW9zX3N0YXRlLmhwcCBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IDIwMDIsIDIwMDUgRGFyeWxlIFdhbGtlci4gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uCisvLyAgYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAgKFNlZSBhY2NvbXBhbnlpbmcKKy8vICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBhIGNvcHkgYXQgPGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dD4uKQorCisvLyAgU2VlIDxodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2lvLz4gZm9yIHRoZSBsaWJyYXJ5J3MgaG9tZSBwYWdlLgorCisjaWZuZGVmIEJPT1NUX0lPX0lPU19TVEFURV9IUFAKKyNkZWZpbmUgQk9PU1RfSU9fSU9TX1NUQVRFX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvaW9fZndkLmhwcD4gIC8vIHNlbGYgaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2luY2x1ZGUgPGlvcz4gICAgICAgIC8vIGZvciBzdGQ6Omlvc19iYXNlLCBzdGQ6OmJhc2ljX2lvcywgZXRjLgorI2lmbmRlZiBCT09TVF9OT19TVERfTE9DQUxFCisjaW5jbHVkZSA8bG9jYWxlPiAgICAgLy8gZm9yIHN0ZDo6bG9jYWxlCisjZW5kaWYKKyNpbmNsdWRlIDxvc3RyZWFtPiAgICAvLyBmb3Igc3RkOjpiYXNpY19vc3RyZWFtCisjaW5jbHVkZSA8c3RyZWFtYnVmPiAgLy8gZm9yIHN0ZDo6YmFzaWNfc3RyZWFtYnVmCisjaW5jbHVkZSA8c3RyaW5nPiAgICAgLy8gZm9yIHN0ZDo6Y2hhcl90cmFpdHMKKworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKK25hbWVzcGFjZSBpbworeworCisKKy8vICBCYXNpYyBzdHJlYW0gc3RhdGUgc2F2ZXIgY2xhc3MgZGVjbGFyYXRpb25zICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKK2NsYXNzIGlvc19mbGFnc19zYXZlcgoreworcHVibGljOgorICAgIHR5cGVkZWYgOjpzdGQ6Omlvc19iYXNlICAgICAgICAgICAgc3RhdGVfdHlwZTsKKyAgICB0eXBlZGVmIDo6c3RkOjppb3NfYmFzZTo6Zm10ZmxhZ3MgIGFzcGVjdF90eXBlOworCisgICAgZXhwbGljaXQgIGlvc19mbGFnc19zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLmZsYWdzKCkgKQorICAgICAgICB7fQorICAgIGlvc19mbGFnc19zYXZlciggc3RhdGVfdHlwZSAmcywgYXNwZWN0X3R5cGUgY29uc3QgJmEgKQorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYV9zYXZlXyggcy5mbGFncyhhKSApCisgICAgICAgIHt9CisgICAgfmlvc19mbGFnc19zYXZlcigpCisgICAgICAgIHsgdGhpcy0+cmVzdG9yZSgpOyB9CisKKyAgICB2b2lkICByZXN0b3JlKCkKKyAgICAgICAgeyBzX3NhdmVfLmZsYWdzKCBhX3NhdmVfICk7IH0KKworcHJpdmF0ZToKKyAgICBzdGF0ZV90eXBlICYgICAgICAgc19zYXZlXzsKKyAgICBhc3BlY3RfdHlwZSBjb25zdCAgYV9zYXZlXzsKKworICAgIGlvc19mbGFnc19zYXZlciYgb3BlcmF0b3I9KGNvbnN0IGlvc19mbGFnc19zYXZlciYpOworfTsKKworY2xhc3MgaW9zX3ByZWNpc2lvbl9zYXZlcgoreworcHVibGljOgorICAgIHR5cGVkZWYgOjpzdGQ6Omlvc19iYXNlICAgIHN0YXRlX3R5cGU7CisgICAgdHlwZWRlZiA6OnN0ZDo6c3RyZWFtc2l6ZSAgYXNwZWN0X3R5cGU7CisKKyAgICBleHBsaWNpdCAgaW9zX3ByZWNpc2lvbl9zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnByZWNpc2lvbigpICkKKyAgICAgICAge30KKyAgICBpb3NfcHJlY2lzaW9uX3NhdmVyKCBzdGF0ZV90eXBlICZzLCBhc3BlY3RfdHlwZSBjb25zdCAmYSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnByZWNpc2lvbihhKSApCisgICAgICAgIHt9CisgICAgfmlvc19wcmVjaXNpb25fc2F2ZXIoKQorICAgICAgICB7IHRoaXMtPnJlc3RvcmUoKTsgfQorCisgICAgdm9pZCAgcmVzdG9yZSgpCisgICAgICAgIHsgc19zYXZlXy5wcmVjaXNpb24oIGFfc2F2ZV8gKTsgfQorCitwcml2YXRlOgorICAgIHN0YXRlX3R5cGUgJiAgICAgICBzX3NhdmVfOworICAgIGFzcGVjdF90eXBlIGNvbnN0ICBhX3NhdmVfOworCisgICAgaW9zX3ByZWNpc2lvbl9zYXZlciYgb3BlcmF0b3I9KGNvbnN0IGlvc19wcmVjaXNpb25fc2F2ZXImKTsKK307CisKK2NsYXNzIGlvc193aWR0aF9zYXZlcgoreworcHVibGljOgorICAgIHR5cGVkZWYgOjpzdGQ6Omlvc19iYXNlICAgIHN0YXRlX3R5cGU7CisgICAgdHlwZWRlZiA6OnN0ZDo6c3RyZWFtc2l6ZSAgYXNwZWN0X3R5cGU7CisKKyAgICBleHBsaWNpdCAgaW9zX3dpZHRoX3NhdmVyKCBzdGF0ZV90eXBlICZzICkKKyAgICAgICAgOiBzX3NhdmVfKCBzICksIGFfc2F2ZV8oIHMud2lkdGgoKSApCisgICAgICAgIHt9CisgICAgaW9zX3dpZHRoX3NhdmVyKCBzdGF0ZV90eXBlICZzLCBhc3BlY3RfdHlwZSBjb25zdCAmYSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLndpZHRoKGEpICkKKyAgICAgICAge30KKyAgICB+aW9zX3dpZHRoX3NhdmVyKCkKKyAgICAgICAgeyB0aGlzLT5yZXN0b3JlKCk7IH0KKworICAgIHZvaWQgIHJlc3RvcmUoKQorICAgICAgICB7IHNfc2F2ZV8ud2lkdGgoIGFfc2F2ZV8gKTsgfQorCitwcml2YXRlOgorICAgIHN0YXRlX3R5cGUgJiAgICAgICBzX3NhdmVfOworICAgIGFzcGVjdF90eXBlIGNvbnN0ICBhX3NhdmVfOworICAgIGlvc193aWR0aF9zYXZlciYgb3BlcmF0b3I9KGNvbnN0IGlvc193aWR0aF9zYXZlciYpOworfTsKKworCisvLyAgQWR2YW5jZWQgc3RyZWFtIHN0YXRlIHNhdmVyIGNsYXNzIHRlbXBsYXRlIGRlY2xhcmF0aW9ucyAgLS0tLS0tLS0tLS0tLS0tLS0vLworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoLCBjbGFzcyBUciA+CitjbGFzcyBiYXNpY19pb3NfaW9zdGF0ZV9zYXZlcgoreworcHVibGljOgorICAgIHR5cGVkZWYgOjpzdGQ6OmJhc2ljX2lvczxDaCwgVHI+ICBzdGF0ZV90eXBlOworICAgIHR5cGVkZWYgOjpzdGQ6Omlvc19iYXNlOjppb3N0YXRlICBhc3BlY3RfdHlwZTsKKworICAgIGV4cGxpY2l0ICBiYXNpY19pb3NfaW9zdGF0ZV9zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnJkc3RhdGUoKSApCisgICAgICAgIHt9CisgICAgYmFzaWNfaW9zX2lvc3RhdGVfc2F2ZXIoIHN0YXRlX3R5cGUgJnMsIGFzcGVjdF90eXBlIGNvbnN0ICZhICkKKyAgICAgICAgOiBzX3NhdmVfKCBzICksIGFfc2F2ZV8oIHMucmRzdGF0ZSgpICkKKyAgICAgICAgeyBzLmNsZWFyKGEpOyB9CisgICAgfmJhc2ljX2lvc19pb3N0YXRlX3NhdmVyKCkKKyAgICAgICAgeyB0aGlzLT5yZXN0b3JlKCk7IH0KKworICAgIHZvaWQgIHJlc3RvcmUoKQorICAgICAgICB7IHNfc2F2ZV8uY2xlYXIoIGFfc2F2ZV8gKTsgfQorCitwcml2YXRlOgorICAgIHN0YXRlX3R5cGUgJiAgICAgICBzX3NhdmVfOworICAgIGFzcGVjdF90eXBlIGNvbnN0ICBhX3NhdmVfOworICAgIGJhc2ljX2lvc19pb3N0YXRlX3NhdmVyJiBvcGVyYXRvcj0oY29uc3QgYmFzaWNfaW9zX2lvc3RhdGVfc2F2ZXImKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgQ2gsIGNsYXNzIFRyID4KK2NsYXNzIGJhc2ljX2lvc19leGNlcHRpb25fc2F2ZXIKK3sKK3B1YmxpYzoKKyAgICB0eXBlZGVmIDo6c3RkOjpiYXNpY19pb3M8Q2gsIFRyPiAgc3RhdGVfdHlwZTsKKyAgICB0eXBlZGVmIDo6c3RkOjppb3NfYmFzZTo6aW9zdGF0ZSAgYXNwZWN0X3R5cGU7CisKKyAgICBleHBsaWNpdCAgYmFzaWNfaW9zX2V4Y2VwdGlvbl9zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLmV4Y2VwdGlvbnMoKSApCisgICAgICAgIHt9CisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU4MikpCisgICAgYmFzaWNfaW9zX2V4Y2VwdGlvbl9zYXZlciggc3RhdGVfdHlwZSAmcywgYXNwZWN0X3R5cGUgYSApCisjZWxzZQorICAgIGJhc2ljX2lvc19leGNlcHRpb25fc2F2ZXIoIHN0YXRlX3R5cGUgJnMsIGFzcGVjdF90eXBlIGNvbnN0ICZhICkKKyNlbmRpZgorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYV9zYXZlXyggcy5leGNlcHRpb25zKCkgKQorICAgICAgICB7IHMuZXhjZXB0aW9ucyhhKTsgfQorICAgIH5iYXNpY19pb3NfZXhjZXB0aW9uX3NhdmVyKCkKKyAgICAgICAgeyB0aGlzLT5yZXN0b3JlKCk7IH0KKworICAgIHZvaWQgIHJlc3RvcmUoKQorICAgICAgICB7IHNfc2F2ZV8uZXhjZXB0aW9ucyggYV9zYXZlXyApOyB9CisKK3ByaXZhdGU6CisgICAgc3RhdGVfdHlwZSAmICAgICAgIHNfc2F2ZV87CisgICAgYXNwZWN0X3R5cGUgY29uc3QgIGFfc2F2ZV87CisgICAgYmFzaWNfaW9zX2V4Y2VwdGlvbl9zYXZlciYgb3BlcmF0b3I9KGNvbnN0IGJhc2ljX2lvc19leGNlcHRpb25fc2F2ZXImKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgQ2gsIGNsYXNzIFRyID4KK2NsYXNzIGJhc2ljX2lvc190aWVfc2F2ZXIKK3sKK3B1YmxpYzoKKyAgICB0eXBlZGVmIDo6c3RkOjpiYXNpY19pb3M8Q2gsIFRyPiAgICAgICAgc3RhdGVfdHlwZTsKKyAgICB0eXBlZGVmIDo6c3RkOjpiYXNpY19vc3RyZWFtPENoLCBUcj4gKiAgYXNwZWN0X3R5cGU7CisKKyAgICBleHBsaWNpdCAgYmFzaWNfaW9zX3RpZV9zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnRpZSgpICkKKyAgICAgICAge30KKyAgICBiYXNpY19pb3NfdGllX3NhdmVyKCBzdGF0ZV90eXBlICZzLCBhc3BlY3RfdHlwZSBjb25zdCAmYSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnRpZShhKSApCisgICAgICAgIHt9CisgICAgfmJhc2ljX2lvc190aWVfc2F2ZXIoKQorICAgICAgICB7IHRoaXMtPnJlc3RvcmUoKTsgfQorCisgICAgdm9pZCAgcmVzdG9yZSgpCisgICAgICAgIHsgc19zYXZlXy50aWUoIGFfc2F2ZV8gKTsgfQorCitwcml2YXRlOgorICAgIHN0YXRlX3R5cGUgJiAgICAgICBzX3NhdmVfOworICAgIGFzcGVjdF90eXBlIGNvbnN0ICBhX3NhdmVfOworICAgIGJhc2ljX2lvc190aWVfc2F2ZXImIG9wZXJhdG9yPShjb25zdCBiYXNpY19pb3NfdGllX3NhdmVyJik7Cit9OworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoLCBjbGFzcyBUciA+CitjbGFzcyBiYXNpY19pb3NfcmRidWZfc2F2ZXIKK3sKK3B1YmxpYzoKKyAgICB0eXBlZGVmIDo6c3RkOjpiYXNpY19pb3M8Q2gsIFRyPiAgICAgICAgICBzdGF0ZV90eXBlOworICAgIHR5cGVkZWYgOjpzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxDaCwgVHI+ICogIGFzcGVjdF90eXBlOworCisgICAgZXhwbGljaXQgIGJhc2ljX2lvc19yZGJ1Zl9zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnJkYnVmKCkgKQorICAgICAgICB7fQorICAgIGJhc2ljX2lvc19yZGJ1Zl9zYXZlciggc3RhdGVfdHlwZSAmcywgYXNwZWN0X3R5cGUgY29uc3QgJmEgKQorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYV9zYXZlXyggcy5yZGJ1ZihhKSApCisgICAgICAgIHt9CisgICAgfmJhc2ljX2lvc19yZGJ1Zl9zYXZlcigpCisgICAgICAgIHsgdGhpcy0+cmVzdG9yZSgpOyB9CisKKyAgICB2b2lkICByZXN0b3JlKCkKKyAgICAgICAgeyBzX3NhdmVfLnJkYnVmKCBhX3NhdmVfICk7IH0KKworcHJpdmF0ZToKKyAgICBzdGF0ZV90eXBlICYgICAgICAgc19zYXZlXzsKKyAgICBhc3BlY3RfdHlwZSBjb25zdCAgYV9zYXZlXzsKKyAgICBiYXNpY19pb3NfcmRidWZfc2F2ZXImIG9wZXJhdG9yPShjb25zdCBiYXNpY19pb3NfcmRidWZfc2F2ZXImKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgQ2gsIGNsYXNzIFRyID4KK2NsYXNzIGJhc2ljX2lvc19maWxsX3NhdmVyCit7CitwdWJsaWM6CisgICAgdHlwZWRlZiA6OnN0ZDo6YmFzaWNfaW9zPENoLCBUcj4gICAgICAgIHN0YXRlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzdGF0ZV90eXBlOjpjaGFyX3R5cGUgIGFzcGVjdF90eXBlOworCisgICAgZXhwbGljaXQgIGJhc2ljX2lvc19maWxsX3NhdmVyKCBzdGF0ZV90eXBlICZzICkKKyAgICAgICAgOiBzX3NhdmVfKCBzICksIGFfc2F2ZV8oIHMuZmlsbCgpICkKKyAgICAgICAge30KKyAgICBiYXNpY19pb3NfZmlsbF9zYXZlciggc3RhdGVfdHlwZSAmcywgYXNwZWN0X3R5cGUgY29uc3QgJmEgKQorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYV9zYXZlXyggcy5maWxsKGEpICkKKyAgICAgICAge30KKyAgICB+YmFzaWNfaW9zX2ZpbGxfc2F2ZXIoKQorICAgICAgICB7IHRoaXMtPnJlc3RvcmUoKTsgfQorCisgICAgdm9pZCAgcmVzdG9yZSgpCisgICAgICAgIHsgc19zYXZlXy5maWxsKCBhX3NhdmVfICk7IH0KKworcHJpdmF0ZToKKyAgICBzdGF0ZV90eXBlICYgICAgICAgc19zYXZlXzsKKyAgICBhc3BlY3RfdHlwZSBjb25zdCAgYV9zYXZlXzsKKyAgICBiYXNpY19pb3NfZmlsbF9zYXZlciYgb3BlcmF0b3I9KGNvbnN0IGJhc2ljX2lvc19maWxsX3NhdmVyJik7Cit9OworCisjaWZuZGVmIEJPT1NUX05PX1NURF9MT0NBTEUKK3RlbXBsYXRlIDwgdHlwZW5hbWUgQ2gsIGNsYXNzIFRyID4KK2NsYXNzIGJhc2ljX2lvc19sb2NhbGVfc2F2ZXIKK3sKK3B1YmxpYzoKKyAgICB0eXBlZGVmIDo6c3RkOjpiYXNpY19pb3M8Q2gsIFRyPiBzdGF0ZV90eXBlOworICAgIHR5cGVkZWYgOjpzdGQ6OmxvY2FsZSBhc3BlY3RfdHlwZTsKKworICAgIGV4cGxpY2l0IGJhc2ljX2lvc19sb2NhbGVfc2F2ZXIoIHN0YXRlX3R5cGUgJnMgKQorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYV9zYXZlXyggcy5nZXRsb2MoKSApCisgICAgICAgIHt9CisgICAgYmFzaWNfaW9zX2xvY2FsZV9zYXZlciggc3RhdGVfdHlwZSAmcywgYXNwZWN0X3R5cGUgY29uc3QgJmEgKQorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYV9zYXZlXyggcy5pbWJ1ZShhKSApCisgICAgICAgIHt9CisgICAgfmJhc2ljX2lvc19sb2NhbGVfc2F2ZXIoKQorICAgICAgICB7IHRoaXMtPnJlc3RvcmUoKTsgfQorCisgICAgdm9pZCAgcmVzdG9yZSgpCisgICAgICAgIHsgc19zYXZlXy5pbWJ1ZSggYV9zYXZlXyApOyB9CisKK3ByaXZhdGU6CisgICAgc3RhdGVfdHlwZSAmICAgICAgIHNfc2F2ZV87CisgICAgYXNwZWN0X3R5cGUgY29uc3QgIGFfc2F2ZV87CisgICAgYmFzaWNfaW9zX2xvY2FsZV9zYXZlciYgb3BlcmF0b3I9KGNvbnN0IGJhc2ljX2lvc19sb2NhbGVfc2F2ZXImKTsKK307CisjZW5kaWYKKworCisvLyAgVXNlci1kZWZpbmVkIHN0cmVhbSBzdGF0ZSBzYXZlciBjbGFzcyBkZWNsYXJhdGlvbnMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCitjbGFzcyBpb3NfaXdvcmRfc2F2ZXIKK3sKK3B1YmxpYzoKKyAgICB0eXBlZGVmIDo6c3RkOjppb3NfYmFzZSAgc3RhdGVfdHlwZTsKKyAgICB0eXBlZGVmIGludCAgICAgICAgICAgICAgaW5kZXhfdHlwZTsKKyAgICB0eXBlZGVmIGxvbmcgICAgICAgICAgICAgYXNwZWN0X3R5cGU7CisKKyAgICBleHBsaWNpdCBpb3NfaXdvcmRfc2F2ZXIoIHN0YXRlX3R5cGUgJnMsIGluZGV4X3R5cGUgaSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLml3b3JkKGkpICksIGlfc2F2ZV8oIGkgKQorICAgICAgICB7fQorICAgIGlvc19pd29yZF9zYXZlciggc3RhdGVfdHlwZSAmcywgaW5kZXhfdHlwZSBpLCBhc3BlY3RfdHlwZSBjb25zdCAmYSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLml3b3JkKGkpICksIGlfc2F2ZV8oIGkgKQorICAgICAgICB7IHMuaXdvcmQoaSkgPSBhOyB9CisgICAgfmlvc19pd29yZF9zYXZlcigpCisgICAgICAgIHsgdGhpcy0+cmVzdG9yZSgpOyB9CisKKyAgICB2b2lkICByZXN0b3JlKCkKKyAgICAgICAgeyBzX3NhdmVfLml3b3JkKCBpX3NhdmVfICkgPSBhX3NhdmVfOyB9CisKK3ByaXZhdGU6CisgICAgc3RhdGVfdHlwZSAmICAgICAgIHNfc2F2ZV87CisgICAgYXNwZWN0X3R5cGUgY29uc3QgIGFfc2F2ZV87CisgICAgaW5kZXhfdHlwZSBjb25zdCAgIGlfc2F2ZV87CisKKyAgICBpb3NfaXdvcmRfc2F2ZXImIG9wZXJhdG9yPShjb25zdCBpb3NfaXdvcmRfc2F2ZXImKTsKK307CisKK2NsYXNzIGlvc19wd29yZF9zYXZlcgoreworcHVibGljOgorICAgIHR5cGVkZWYgOjpzdGQ6Omlvc19iYXNlICBzdGF0ZV90eXBlOworICAgIHR5cGVkZWYgaW50ICAgICAgICAgICAgICBpbmRleF90eXBlOworICAgIHR5cGVkZWYgdm9pZCAqICAgICAgICAgICBhc3BlY3RfdHlwZTsKKworICAgIGV4cGxpY2l0ICBpb3NfcHdvcmRfc2F2ZXIoIHN0YXRlX3R5cGUgJnMsIGluZGV4X3R5cGUgaSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnB3b3JkKGkpICksIGlfc2F2ZV8oIGkgKQorICAgICAgICB7fQorICAgIGlvc19wd29yZF9zYXZlciggc3RhdGVfdHlwZSAmcywgaW5kZXhfdHlwZSBpLCBhc3BlY3RfdHlwZSBjb25zdCAmYSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhX3NhdmVfKCBzLnB3b3JkKGkpICksIGlfc2F2ZV8oIGkgKQorICAgICAgICB7IHMucHdvcmQoaSkgPSBhOyB9CisgICAgfmlvc19wd29yZF9zYXZlcigpCisgICAgICAgIHsgdGhpcy0+cmVzdG9yZSgpOyB9CisKKyAgICB2b2lkICByZXN0b3JlKCkKKyAgICAgICAgeyBzX3NhdmVfLnB3b3JkKCBpX3NhdmVfICkgPSBhX3NhdmVfOyB9CisKK3ByaXZhdGU6CisgICAgc3RhdGVfdHlwZSAmICAgICAgIHNfc2F2ZV87CisgICAgYXNwZWN0X3R5cGUgY29uc3QgIGFfc2F2ZV87CisgICAgaW5kZXhfdHlwZSBjb25zdCAgIGlfc2F2ZV87CisKKyAgICBpb3NfcHdvcmRfc2F2ZXIgb3BlcmF0b3I9KGNvbnN0IGlvc19wd29yZF9zYXZlciYpOworfTsKKworCisvLyAgQ29tYmluZWQgc3RyZWFtIHN0YXRlIHNhdmVyIGNsYXNzICh0ZW1wbGF0ZSkgZGVjbGFyYXRpb25zICAtLS0tLS0tLS0tLS0tLS0vLworCitjbGFzcyBpb3NfYmFzZV9hbGxfc2F2ZXIKK3sKK3B1YmxpYzoKKyAgICB0eXBlZGVmIDo6c3RkOjppb3NfYmFzZSAgc3RhdGVfdHlwZTsKKworICAgIGV4cGxpY2l0ICBpb3NfYmFzZV9hbGxfc2F2ZXIoIHN0YXRlX3R5cGUgJnMgKQorICAgICAgICA6IHNfc2F2ZV8oIHMgKSwgYTFfc2F2ZV8oIHMuZmxhZ3MoKSApLCBhMl9zYXZlXyggcy5wcmVjaXNpb24oKSApCisgICAgICAgICwgYTNfc2F2ZV8oIHMud2lkdGgoKSApCisgICAgICAgIHt9CisKKyAgICB+aW9zX2Jhc2VfYWxsX3NhdmVyKCkKKyAgICAgICAgeyB0aGlzLT5yZXN0b3JlKCk7IH0KKworICAgIHZvaWQgIHJlc3RvcmUoKQorICAgIHsKKyAgICAgICAgc19zYXZlXy53aWR0aCggYTNfc2F2ZV8gKTsKKyAgICAgICAgc19zYXZlXy5wcmVjaXNpb24oIGEyX3NhdmVfICk7CisgICAgICAgIHNfc2F2ZV8uZmxhZ3MoIGExX3NhdmVfICk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRlX3R5cGUgJiAgICAgICAgICAgICAgICBzX3NhdmVfOworICAgIHN0YXRlX3R5cGU6OmZtdGZsYWdzIGNvbnN0ICBhMV9zYXZlXzsKKyAgICA6OnN0ZDo6c3RyZWFtc2l6ZSBjb25zdCAgICAgYTJfc2F2ZV87CisgICAgOjpzdGQ6OnN0cmVhbXNpemUgY29uc3QgICAgIGEzX3NhdmVfOworCisgICAgaW9zX2Jhc2VfYWxsX3NhdmVyJiBvcGVyYXRvcj0oY29uc3QgaW9zX2Jhc2VfYWxsX3NhdmVyJik7Cit9OworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoLCBjbGFzcyBUciA+CitjbGFzcyBiYXNpY19pb3NfYWxsX3NhdmVyCit7CitwdWJsaWM6CisgICAgdHlwZWRlZiA6OnN0ZDo6YmFzaWNfaW9zPENoLCBUcj4gIHN0YXRlX3R5cGU7CisKKyAgICBleHBsaWNpdCAgYmFzaWNfaW9zX2FsbF9zYXZlciggc3RhdGVfdHlwZSAmcyApCisgICAgICAgIDogc19zYXZlXyggcyApLCBhMV9zYXZlXyggcy5mbGFncygpICksIGEyX3NhdmVfKCBzLnByZWNpc2lvbigpICkKKyAgICAgICAgLCBhM19zYXZlXyggcy53aWR0aCgpICksIGE0X3NhdmVfKCBzLnJkc3RhdGUoKSApCisgICAgICAgICwgYTVfc2F2ZV8oIHMuZXhjZXB0aW9ucygpICksIGE2X3NhdmVfKCBzLnRpZSgpICkKKyAgICAgICAgLCBhN19zYXZlXyggcy5yZGJ1ZigpICksIGE4X3NhdmVfKCBzLmZpbGwoKSApCisgICAgICAgICNpZm5kZWYgQk9PU1RfTk9fU1REX0xPQ0FMRQorICAgICAgICAsIGE5X3NhdmVfKCBzLmdldGxvYygpICkKKyAgICAgICAgI2VuZGlmCisgICAgICAgIHt9CisKKyAgICB+YmFzaWNfaW9zX2FsbF9zYXZlcigpCisgICAgICAgIHsgdGhpcy0+cmVzdG9yZSgpOyB9CisKKyAgICB2b2lkICByZXN0b3JlKCkKKyAgICB7CisgICAgICAgICNpZm5kZWYgQk9PU1RfTk9fU1REX0xPQ0FMRQorICAgICAgICBzX3NhdmVfLmltYnVlKCBhOV9zYXZlXyApOworICAgICAgICAjZW5kaWYKKyAgICAgICAgc19zYXZlXy5maWxsKCBhOF9zYXZlXyApOworICAgICAgICBzX3NhdmVfLnJkYnVmKCBhN19zYXZlXyApOworICAgICAgICBzX3NhdmVfLnRpZSggYTZfc2F2ZV8gKTsKKyAgICAgICAgc19zYXZlXy5leGNlcHRpb25zKCBhNV9zYXZlXyApOworICAgICAgICBzX3NhdmVfLmNsZWFyKCBhNF9zYXZlXyApOworICAgICAgICBzX3NhdmVfLndpZHRoKCBhM19zYXZlXyApOworICAgICAgICBzX3NhdmVfLnByZWNpc2lvbiggYTJfc2F2ZV8gKTsKKyAgICAgICAgc19zYXZlXy5mbGFncyggYTFfc2F2ZV8gKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGVfdHlwZSAmICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNfc2F2ZV87CisgICAgdHlwZW5hbWUgc3RhdGVfdHlwZTo6Zm10ZmxhZ3MgY29uc3QgICAgIGExX3NhdmVfOworICAgIDo6c3RkOjpzdHJlYW1zaXplIGNvbnN0ICAgICAgICAgICAgICAgICBhMl9zYXZlXzsKKyAgICA6OnN0ZDo6c3RyZWFtc2l6ZSBjb25zdCAgICAgICAgICAgICAgICAgYTNfc2F2ZV87CisgICAgdHlwZW5hbWUgc3RhdGVfdHlwZTo6aW9zdGF0ZSBjb25zdCAgICAgIGE0X3NhdmVfOworICAgIHR5cGVuYW1lIHN0YXRlX3R5cGU6Omlvc3RhdGUgY29uc3QgICAgICBhNV9zYXZlXzsKKyAgICA6OnN0ZDo6YmFzaWNfb3N0cmVhbTxDaCwgVHI+ICogY29uc3QgICAgYTZfc2F2ZV87CisgICAgOjpzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxDaCwgVHI+ICogY29uc3QgIGE3X3NhdmVfOworICAgIHR5cGVuYW1lIHN0YXRlX3R5cGU6OmNoYXJfdHlwZSBjb25zdCAgICBhOF9zYXZlXzsKKyAgICAjaWZuZGVmIEJPT1NUX05PX1NURF9MT0NBTEUKKyAgICA6OnN0ZDo6bG9jYWxlIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgYTlfc2F2ZV87CisgICAgI2VuZGlmCisKKyAgICBiYXNpY19pb3NfYWxsX3NhdmVyJiBvcGVyYXRvcj0oY29uc3QgYmFzaWNfaW9zX2FsbF9zYXZlciYpOworfTsKKworY2xhc3MgaW9zX2FsbF93b3JkX3NhdmVyCit7CitwdWJsaWM6CisgICAgdHlwZWRlZiA6OnN0ZDo6aW9zX2Jhc2UgIHN0YXRlX3R5cGU7CisgICAgdHlwZWRlZiBpbnQgICAgICAgICAgICAgIGluZGV4X3R5cGU7CisKKyAgICBpb3NfYWxsX3dvcmRfc2F2ZXIoIHN0YXRlX3R5cGUgJnMsIGluZGV4X3R5cGUgaSApCisgICAgICAgIDogc19zYXZlXyggcyApLCBpX3NhdmVfKCBpICksIGExX3NhdmVfKCBzLml3b3JkKGkpICkKKyAgICAgICAgLCBhMl9zYXZlXyggcy5wd29yZChpKSApCisgICAgICAgIHt9CisKKyAgICB+aW9zX2FsbF93b3JkX3NhdmVyKCkKKyAgICAgICAgeyB0aGlzLT5yZXN0b3JlKCk7IH0KKworICAgIHZvaWQgIHJlc3RvcmUoKQorICAgIHsKKyAgICAgICAgc19zYXZlXy5wd29yZCggaV9zYXZlXyApID0gYTJfc2F2ZV87CisgICAgICAgIHNfc2F2ZV8uaXdvcmQoIGlfc2F2ZV8gKSA9IGExX3NhdmVfOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0ZV90eXBlICYgICAgICBzX3NhdmVfOworICAgIGluZGV4X3R5cGUgY29uc3QgIGlfc2F2ZV87CisgICAgbG9uZyBjb25zdCAgICAgICAgYTFfc2F2ZV87CisgICAgdm9pZCAqIGNvbnN0ICAgICAgYTJfc2F2ZV87CisKKyAgICBpb3NfYWxsX3dvcmRfc2F2ZXImIG9wZXJhdG9yPShjb25zdCBpb3NfYWxsX3dvcmRfc2F2ZXImKTsKK307CisKKworfSAgLy8gbmFtZXNwYWNlIGlvCit9ICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisjZW5kaWYgIC8vIEJPT1NUX0lPX0lPU19TVEFURV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaW9fZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaW9fZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNThlOWUzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pb19md2QuaHBwCkBAIC0wLDAgKzEsNjcgQEAKKy8vICBCb29zdCBpb19md2QuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgMjAwMiBEYXJ5bGUgV2Fsa2VyLiAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QKKy8vICB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuICAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGEgY29weSBhdCA8aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Pi4pCisKKy8vICBTZWUgPGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvaW8vPiBmb3IgdGhlIGxpYnJhcnkncyBob21lIHBhZ2UuCisKKyNpZm5kZWYgQk9PU1RfSU9fRldEX0hQUAorI2RlZmluZSBCT09TVF9JT19GV0RfSFBQCisKKyNpbmNsdWRlIDxpb3Nmd2Q+ICAvLyBmb3Igc3RkOjpjaGFyX3RyYWl0cyAoZGVjbGFyYXRpb24pCisKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CituYW1lc3BhY2UgaW8KK3sKKworCisvLyAgRnJvbSA8bmRuYm9vc3QvaW8vaW9zX3N0YXRlLmhwcD4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCitjbGFzcyBpb3NfZmxhZ3Nfc2F2ZXI7CitjbGFzcyBpb3NfcHJlY2lzaW9uX3NhdmVyOworY2xhc3MgaW9zX3dpZHRoX3NhdmVyOworY2xhc3MgaW9zX2Jhc2VfYWxsX3NhdmVyOworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoLCBjbGFzcyBUciA9IDo6c3RkOjpjaGFyX3RyYWl0czxDaD4gPgorICAgIGNsYXNzIGJhc2ljX2lvc19pb3N0YXRlX3NhdmVyOwordGVtcGxhdGUgPCB0eXBlbmFtZSBDaCwgY2xhc3MgVHIgPSA6OnN0ZDo6Y2hhcl90cmFpdHM8Q2g+ID4KKyAgICBjbGFzcyBiYXNpY19pb3NfZXhjZXB0aW9uX3NhdmVyOwordGVtcGxhdGUgPCB0eXBlbmFtZSBDaCwgY2xhc3MgVHIgPSA6OnN0ZDo6Y2hhcl90cmFpdHM8Q2g+ID4KKyAgICBjbGFzcyBiYXNpY19pb3NfdGllX3NhdmVyOwordGVtcGxhdGUgPCB0eXBlbmFtZSBDaCwgY2xhc3MgVHIgPSA6OnN0ZDo6Y2hhcl90cmFpdHM8Q2g+ID4KKyAgICBjbGFzcyBiYXNpY19pb3NfcmRidWZfc2F2ZXI7Cit0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoLCBjbGFzcyBUciA9IDo6c3RkOjpjaGFyX3RyYWl0czxDaD4gPgorICAgIGNsYXNzIGJhc2ljX2lvc19maWxsX3NhdmVyOwordGVtcGxhdGUgPCB0eXBlbmFtZSBDaCwgY2xhc3MgVHIgPSA6OnN0ZDo6Y2hhcl90cmFpdHM8Q2g+ID4KKyAgICBjbGFzcyBiYXNpY19pb3NfbG9jYWxlX3NhdmVyOwordGVtcGxhdGUgPCB0eXBlbmFtZSBDaCwgY2xhc3MgVHIgPSA6OnN0ZDo6Y2hhcl90cmFpdHM8Q2g+ID4KKyAgICBjbGFzcyBiYXNpY19pb3NfYWxsX3NhdmVyOworCit0eXBlZGVmIGJhc2ljX2lvc19pb3N0YXRlX3NhdmVyPGNoYXI+ICAgICAgICBpb3NfaW9zdGF0ZV9zYXZlcjsKK3R5cGVkZWYgYmFzaWNfaW9zX2lvc3RhdGVfc2F2ZXI8d2NoYXJfdD4gICAgd2lvc19pb3N0YXRlX3NhdmVyOwordHlwZWRlZiBiYXNpY19pb3NfZXhjZXB0aW9uX3NhdmVyPGNoYXI+ICAgICAgaW9zX2V4Y2VwdGlvbl9zYXZlcjsKK3R5cGVkZWYgYmFzaWNfaW9zX2V4Y2VwdGlvbl9zYXZlcjx3Y2hhcl90PiAgd2lvc19leGNlcHRpb25fc2F2ZXI7Cit0eXBlZGVmIGJhc2ljX2lvc190aWVfc2F2ZXI8Y2hhcj4gICAgICAgICAgICBpb3NfdGllX3NhdmVyOwordHlwZWRlZiBiYXNpY19pb3NfdGllX3NhdmVyPHdjaGFyX3Q+ICAgICAgICB3aW9zX3RpZV9zYXZlcjsKK3R5cGVkZWYgYmFzaWNfaW9zX3JkYnVmX3NhdmVyPGNoYXI+ICAgICAgICAgIGlvc19yZGJ1Zl9zYXZlcjsKK3R5cGVkZWYgYmFzaWNfaW9zX3JkYnVmX3NhdmVyPHdjaGFyX3Q+ICAgICAgd2lvc19yZGJ1Zl9zYXZlcjsKK3R5cGVkZWYgYmFzaWNfaW9zX2ZpbGxfc2F2ZXI8Y2hhcj4gICAgICAgICAgIGlvc19maWxsX3NhdmVyOwordHlwZWRlZiBiYXNpY19pb3NfZmlsbF9zYXZlcjx3Y2hhcl90PiAgICAgICB3aW9zX2ZpbGxfc2F2ZXI7Cit0eXBlZGVmIGJhc2ljX2lvc19sb2NhbGVfc2F2ZXI8Y2hhcj4gICAgICAgICBpb3NfbG9jYWxlX3NhdmVyOwordHlwZWRlZiBiYXNpY19pb3NfbG9jYWxlX3NhdmVyPHdjaGFyX3Q+ICAgICB3aW9zX2xvY2FsZV9zYXZlcjsKK3R5cGVkZWYgYmFzaWNfaW9zX2FsbF9zYXZlcjxjaGFyPiAgICAgICAgICAgIGlvc19hbGxfc2F2ZXI7Cit0eXBlZGVmIGJhc2ljX2lvc19hbGxfc2F2ZXI8d2NoYXJfdD4gICAgICAgIHdpb3NfYWxsX3NhdmVyOworCitjbGFzcyBpb3NfaXdvcmRfc2F2ZXI7CitjbGFzcyBpb3NfcHdvcmRfc2F2ZXI7CitjbGFzcyBpb3NfYWxsX3dvcmRfc2F2ZXI7CisKKworfSAgLy8gbmFtZXNwYWNlIGlvCit9ICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisjZW5kaWYgIC8vIEJPT1NUX0lPX0ZXRF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaXNfcGxhY2Vob2xkZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pc19wbGFjZWhvbGRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM1OGNhNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaXNfcGxhY2Vob2xkZXIuaHBwCkBAIC0wLDAgKzEsMzEgQEAKKyNpZm5kZWYgQk9PU1RfSVNfUExBQ0VIT0xERVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX0lTX1BMQUNFSE9MREVSX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZCggX01TQ19WRVIgKSAmJiAoIF9NU0NfVkVSID49IDEwMjAgKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKworLy8gIGlzX3BsYWNlaG9sZGVyLmhwcCAtIFRSMSBpc19wbGFjZWhvbGRlciBtZXRhZnVuY3Rpb24KKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IGlzX3BsYWNlaG9sZGVyCit7CisgICAgZW51bSBfdnQgeyB2YWx1ZSA9IDAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0lTX1BMQUNFSE9MREVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWM5MjYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSw1OSBAQAorLy8gIGl0ZXJhdG9yLmhwcCB3b3JrYXJvdW5kcyBmb3Igbm9uLWNvbmZvcm1pbmcgc3RhbmRhcmQgbGlicmFyaWVzICAtLS0tLS0tLS0vLworCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAyMDAwLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICBSZXZpc2lvbiBIaXN0b3J5CisvLyAgMTIgSmFuIDAxIGFkZGVkIDxjc3RkZGVmPiBmb3Igc3RkOjpwdHJkaWZmX3QgKEplbnMgTWF1cmVyKQorLy8gIDI4IEp1biAwMCBXb3JrYXJvdW5kcyB0byBkZWFsIHdpdGgga25vd24gTVNWQyBidWdzIChEYXZpZCBBYnJhaGFtcykKKy8vICAyNiBKdW4gMDAgSW5pdGlhbCB2ZXJzaW9uIChKZXJlbXkgU2llaykKKworI2lmbmRlZiBCT09TVF9JVEVSQVRPUl9IUFAKKyNkZWZpbmUgQk9PU1RfSVRFUkFUT1JfSFBQCisKKyNpbmNsdWRlIDxpdGVyYXRvcj4KKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAgLy8gc3RkOjpwdHJkaWZmX3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyMgaWYgZGVmaW5lZChCT09TVF9OT19TVERfSVRFUkFUT1IpICYmICFkZWZpbmVkKEJPT1NUX01TVkNfU1REX0lURVJBVE9SKQorICB0ZW1wbGF0ZSA8Y2xhc3MgQ2F0ZWdvcnksIGNsYXNzIFQsCisgICAgY2xhc3MgRGlzdGFuY2UgPSBzdGQ6OnB0cmRpZmZfdCwKKyAgICBjbGFzcyBQb2ludGVyID0gVCosIGNsYXNzIFJlZmVyZW5jZSA9IFQmPgorICBzdHJ1Y3QgaXRlcmF0b3IKKyAgeworICAgIHR5cGVkZWYgVCAgICAgICAgIHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiBEaXN0YW5jZSAgZGlmZmVyZW5jZV90eXBlOworICAgIHR5cGVkZWYgUG9pbnRlciAgIHBvaW50ZXI7CisgICAgdHlwZWRlZiBSZWZlcmVuY2UgcmVmZXJlbmNlOworICAgIHR5cGVkZWYgQ2F0ZWdvcnkgIGl0ZXJhdG9yX2NhdGVnb3J5OworICB9OworIyBlbHNlCisKKyAgLy8gZGVjbGFyZSBpdGVyYXRvcl9iYXNlIGluIG5hbWVzcGFjZSBkZXRhaWwgdG8gd29yayBhcm91bmQgTVNWQyBidWdzIHdoaWNoCisgIC8vIHByZXZlbnQgZGVyaXZhdGlvbiBmcm9tIGFuIGlkZW50aWNhbGx5LW5hbWVkIGNsYXNzIGluIGEgZGlmZmVyZW50IG5hbWVzcGFjZS4KKyAgbmFtZXNwYWNlIGRldGFpbCB7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgQ2F0ZWdvcnksIGNsYXNzIFQsIGNsYXNzIERpc3RhbmNlLCBjbGFzcyBQb2ludGVyLCBjbGFzcyBSZWZlcmVuY2U+CisjICBpZiAhZGVmaW5lZChCT09TVF9NU1ZDX1NURF9JVEVSQVRPUikKKyAgIHN0cnVjdCBpdGVyYXRvcl9iYXNlIDogc3RkOjppdGVyYXRvcjxDYXRlZ29yeSwgVCwgRGlzdGFuY2UsIFBvaW50ZXIsIFJlZmVyZW5jZT4ge307CisjICBlbHNlCisgICBzdHJ1Y3QgaXRlcmF0b3JfYmFzZSA6IHN0ZDo6aXRlcmF0b3I8Q2F0ZWdvcnksIFQsIERpc3RhbmNlPgorICAgeworICAgICB0eXBlZGVmIFJlZmVyZW5jZSByZWZlcmVuY2U7CisgICAgIHR5cGVkZWYgUG9pbnRlciBwb2ludGVyOworICAgICB0eXBlZGVmIERpc3RhbmNlIGRpZmZlcmVuY2VfdHlwZTsKKyAgIH07CisjICBlbmRpZgorICB9CisKKyAgdGVtcGxhdGUgPGNsYXNzIENhdGVnb3J5LCBjbGFzcyBULCBjbGFzcyBEaXN0YW5jZSA9IHN0ZDo6cHRyZGlmZl90LAorICAgICAgICAgICAgY2xhc3MgUG9pbnRlciA9IFQqLCBjbGFzcyBSZWZlcmVuY2UgPSBUJj4KKyAgc3RydWN0IGl0ZXJhdG9yIDogbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfYmFzZTxDYXRlZ29yeSwgVCwgRGlzdGFuY2UsIFBvaW50ZXIsIFJlZmVyZW5jZT4ge307CisjIGVuZGlmCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfSVRFUkFUT1JfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ19kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2MTA3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcApAQCAtMCwwICsxLDEzNyBAQAorLy8gKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLgorLy8gKEMpIENvcHlyaWdodCBKZXJlbXkgU2llayAgICAyMDAyLgorLy8gKEMpIENvcHlyaWdodCBUaG9tYXMgV2l0dCAgICAyMDAyLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBubyBpbmNsdWRlIGd1YXJkIG11bHRpcGxlIGluY2x1c2lvbiBpbnRlbmRlZAorCisvLworLy8gVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kIHVudGlsIHRoZSBidWxrIG9mIHRoaXMgaXMKKy8vIGF2YWlsYWJsZSBpbiBib29zdCBjb25maWcuCisvLyAyMy8wMi8wMyB0aHcKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPiAvLyBmb3IgcHJpb3IKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZmRlZiBCT09TVF9JVEVSQVRPUl9DT05GSUdfREVGCisjIGVycm9yIHlvdSBoYXZlIG5lc3RlZCBjb25maWdfZGVmICNpbmNsdXNpb24uCisjZWxzZSAKKyMgZGVmaW5lIEJPT1NUX0lURVJBVE9SX0NPTkZJR19ERUYKKyNlbmRpZiAKKworLy8gV2UgZW5hYmxlIHRoaXMgYWx3YXlzIG5vdy4gIE90aGVyd2lzZSwgdGhlIHNpbXBsZSBjYXNlIGluCisvLyBsaWJzL2l0ZXJhdG9yL3Rlc3QvY29uc3RhbnRfaXRlcmF0b3JfYXJyb3cuY3BwIGZhaWxzIHRvIGNvbXBpbGUKKy8vIGJlY2F1c2UgdGhlIG9wZXJhdG9yLT4gcmV0dXJuIGlzIGltcHJvcGVybHkgZGVkdWNlZCBhcyBhIG5vbi1jb25zdAorLy8gcG9pbnRlci4KKyNpZiAxIHx8IGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTMxKSkKKworLy8gUmVjYWxsIHRoYXQgaW4gZ2VuZXJhbCwgY29tcGlsZXJzIHdpdGhvdXQgcGFydGlhbCBzcGVjaWFsaXphdGlvbgorLy8gY2FuJ3Qgc3RyaXAgY29uc3RuZXNzLiAgQ29uc2lkZXIgY291bnRpbmdfaXRlcmF0b3IsIHdoaWNoIG5vcm1hbGx5CisvLyBwYXNzZXMgYSBjb25zdCBWYWx1ZSB0byBpdGVyYXRvcl9mYWNhZGUuICBBcyBhIHJlc3VsdCwgYW55IGNvZGUKKy8vIHdoaWNoIG1ha2VzIGEgc3RkOjp2ZWN0b3Igb2YgdGhlIGl0ZXJhdG9yJ3MgdmFsdWVfdHlwZSB3aWxsIGZhaWwKKy8vIHdoZW4gaXRzIGFsbG9jYXRvciBkZWNsYXJlcyBmdW5jdGlvbnMgb3ZlcmxvYWRlZCBvbiByZWZlcmVuY2UgYW5kCisvLyBjb25zdF9yZWZlcmVuY2UgKHRoZSBzYW1lIHR5cGUpLgorLy8KKy8vIEZ1cnRoZXJtb3JlLCBCb3JsYW5kIDUuNS4xIGRyb3BzIGNvbnN0bmVzcyBpbiBlbm91Z2ggd2F5cyB0aGF0IHdlCisvLyBlbmQgdXAgdXNpbmcgYSBwcm94eSBmb3Igb3BlcmF0b3JbXSB3aGVuIHdlIG90aGVyd2lzZSBzaG91bGRuJ3QuCisvLyBVc2luZyByZWZlcmVuY2UgY29uc3RuZXNzIGdpdmVzIGl0IGFuIGV4dHJhIGhpbnQgdGhhdCBpdCBjYW4KKy8vIHJldHVybiB0aGUgdmFsdWVfdHlwZSBmcm9tIG9wZXJhdG9yW10gZGlyZWN0bHksIGJ1dCBpcyBub3QKKy8vIHN0cmljdGx5IG5lY2Vzc2FyeS4gIE5vdCBzdXJlIGhvdyBiZXN0IHRvIHJlc29sdmUgdGhpcyBvbmUuCisKKyMgZGVmaW5lIEJPT1NUX0lURVJBVE9SX1JFRl9DT05TVE5FU1NfS0lMTFNfV1JJVEFCSUxJVFkgMQorCisjZW5kaWYKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDVBMCkpICAgICAgICAgICAgICAgICAgIFwKKyAgICB8fCAoQk9PU1RfV09SS0FST1VORChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiwgPD0gNzAwKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19ERUNDWFhfVkVSLCBCT09TVF9URVNURURfQVQoNjA1OTAwNDIpKSAgICAgICAgICAgICAgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgQk9PU1RfVEVTVEVEX0FUKDB4NTkwKSkKKyAgICAKKyMgZGVmaW5lIEJPT1NUX05PX0xWQUxVRV9SRVRVUk5fREVURUNUSU9OCisKKyMgaWYgMCAvLyB0ZXN0IGNvZGUKKyAgc3RydWN0IHYgIHt9OworCisgIHR5cGVkZWYgIGNoYXIgKCZubylbM107CisKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIG5vIGZvbyhUIGNvbnN0JiwgLi4uKTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgY2hhciBmb28oVCYsIGludCk7CisKKworICBzdHJ1Y3QgdmFsdWVfaXRlcmF0b3IKKyAgeworICAgICAgdiBvcGVyYXRvciooKSBjb25zdDsKKyAgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgc3RydWN0IGx2YWx1ZV9kZXJlZl9oZWxwZXIKKyAgeworICAgICAgc3RhdGljIFQmIHg7CisgICAgICBlbnVtIHsgdmFsdWUgPSAoc2l6ZW9mKGZvbygqeCwwKSkgPT0gMSkgfTsKKyAgfTsKKworICBpbnQgejJbKGx2YWx1ZV9kZXJlZl9oZWxwZXI8dio+Ojp2YWx1ZSA9PSAxKSA/IDEgOiAtMV07CisgIGludCB6WyhsdmFsdWVfZGVyZWZfaGVscGVyPHZhbHVlX2l0ZXJhdG9yPjo6dmFsdWUpID09IDEgPyAtMSA6IDEgXTsKKyMgZW5kaWYgCisKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PTB4MjQwNykKKyMgIGRlZmluZSBCT09TVF9OT19JU19DT05WRVJUSUJMRSAvLyAiaXNfY29udmVydGlibGUgZG9lc24ndCB3b3JrIGZvciBzaW1wbGUgdHlwZXMiCisjZW5kaWYKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sID09IDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA9PSAzKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19NSU5PUl9fLCA8IDQpICYmICFkZWZpbmVkKF9fRURHX1ZFUlNJT05fXykgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU1MSkpCisjICBkZWZpbmUgQk9PU1RfTk9fSVNfQ09OVkVSVElCTEVfVEVNUExBVEUgLy8gVGhlIGZvbGxvd2luZyBwcm9ncmFtIGZhaWxzIHRvIGNvbXBpbGU6CisKKyMgIGlmIDAgLy8gdGVzdCBjb2RlCisgICAgI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcD4KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICBzdHJ1Y3QgZm9vCisgICAgeworICAgICAgICBmb28oVCk7CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+CisgICAgICAgIGZvbyhmb288VT4gY29uc3QmIG90aGVyKSA6IHAob3RoZXIucCkgeyB9CisKKyAgICAgICAgVCBwOworICAgIH07CisKKyAgICBib29sIHggPSBuZG5ib29zdDo6aXNfY29udmVydGlibGU8Zm9vPGludCBjb25zdCo+LCBmb288aW50Kj4gPjo6dmFsdWU7CisjICBlbmRpZgorCisjZW5kaWYKKworCisjaWYgIWRlZmluZWQoQk9PU1RfTVNWQykgJiYgKGRlZmluZWQoQk9PU1RfTk9fU0ZJTkFFKSB8fCBkZWZpbmVkKEJPT1NUX05PX0lTX0NPTlZFUlRJQkxFKSB8fCBkZWZpbmVkKEJPT1NUX05PX0lTX0NPTlZFUlRJQkxFX1RFTVBMQVRFKSkKKyMgZGVmaW5lIEJPT1NUX05PX1NUUklDVF9JVEVSQVRPUl9JTlRFUk9QRVJBQklMSVRZCisjZW5kaWYgCisKKyMgaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkKKyMgIGRlZmluZSBCT09TVF9BUkdfREVQRU5ERU5UX1RZUEVOQU1FIHR5cGVuYW1lCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9BUkdfREVQRU5ERU5UX1RZUEVOQU1FCisjIGVuZGlmCisKKyMgaWYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPT0gMikgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfTUlOT1JfXywgQk9PU1RfVEVTVEVEX0FUKDk1KSkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQorCisvLyBHQ0MtMi45NSBlYWdlcmx5IGluc3RhbnRpYXRlcyB0ZW1wbGF0ZWQgY29uc3RydWN0b3JzIGFuZCBjb252ZXJzaW9uCisvLyBvcGVyYXRvcnMgaW4gY29udmVydGliaWxpdHkgY2hlY2tzLCBjYXVzaW5nIHByZW1hdHVyZSBlcnJvcnMuCisvLworLy8gQm9ybGFuZCdzIHByb2JsZW1zIGFyZSBoYXJkZXIgdG8gZGlhZ25vc2UgZHVlIHRvIGxhY2sgb2YgYW4KKy8vIGluc3RhbnRpYXRpb24gc3RhY2sgYmFja3RyYWNlLiAgVGhleSBtYXkgYmUgZHVlIGluIHBhcnQgdG8gdGhlIGZhY3QKKy8vIHRoYXQgaXQgZHJvcHMgY3YtcXVhbGlmaWNhdGlvbiB3aWxseS1uaWxseSBpbiB0ZW1wbGF0ZXMuCisjICBkZWZpbmUgQk9PU1RfTk9fT05FX1dBWV9JVEVSQVRPUl9JTlRFUk9QCisjIGVuZGlmIAorCisvLyBubyBpbmNsdWRlIGd1YXJkOyBtdWx0aXBsZSBpbmNsdXNpb24gaW50ZW5kZWQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ191bmRlZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfdW5kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkY2QxZDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfdW5kZWYuaHBwCkBAIC0wLDAgKzEsMjUgQEAKKy8vIChDKSBDb3B5cmlnaHQgVGhvbWFzIFdpdHQgICAgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gbm8gaW5jbHVkZSBndWFyZCBtdWx0aXBsZSBpbmNsdXNpb24gaW50ZW5kZWQKKworLy8KKy8vIFRoaXMgaXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB1bnRpbCB0aGUgYnVsayBvZiB0aGlzIGlzCisvLyBhdmFpbGFibGUgaW4gYm9vc3QgY29uZmlnLgorLy8gMjMvMDIvMDMgdGh3CisvLworCisjdW5kZWYgQk9PU1RfTk9fSVNfQ09OVkVSVElCTEUKKyN1bmRlZiBCT09TVF9OT19JU19DT05WRVJUSUJMRV9URU1QTEFURQorI3VuZGVmIEJPT1NUX05PX1NUUklDVF9JVEVSQVRPUl9JTlRFUk9QRVJBQklMSVRZCisjdW5kZWYgQk9PU1RfQVJHX0RFUEVOREVOVF9UWVBFTkFNRQorI3VuZGVmIEJPT1NUX05PX0xWQUxVRV9SRVRVUk5fREVURUNUSU9OCisjdW5kZWYgQk9PU1RfTk9fT05FX1dBWV9JVEVSQVRPUl9JTlRFUk9QCisKKyNpZmRlZiBCT09TVF9JVEVSQVRPUl9DT05GSUdfREVGCisjIHVuZGVmIEJPT1NUX0lURVJBVE9SX0NPTkZJR19ERUYKKyNlbHNlCisjIGVycm9yIG1pc3Npbmcgb3IgbmVzdGVkICNpbmNsdWRlIGNvbmZpZ19kZWYKKyNlbmRpZiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2VuYWJsZV9pZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9lbmFibGVfaWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMjYzMzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9lbmFibGVfaWYuaHBwCkBAIC0wLDAgKzEsODYgQEAKKy8vIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4KKy8vIChDKSBDb3B5cmlnaHQgSmVyZW15IFNpZWsgICAgMjAwMi4KKy8vIChDKSBDb3B5cmlnaHQgVGhvbWFzIFdpdHQgICAgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgQk9PU1RfRU5BQkxFX0lGXzIzMDIyMDAzVEhXX0hQUAorI2RlZmluZSBCT09TVF9FTkFCTEVfSUZfMjMwMjIwMDNUSFdfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcD4KKworLy8KKy8vIEJvb3N0IGl0ZXJhdG9ycyB1c2VzIGl0cyBvd24gZW5hYmxlX2lmIGNhdXNlIHdlIG5lZWQKKy8vIHNwZWNpYWwgc2VtYW50aWNzIGZvciBkZWZpY2llbnQgY29tcGlsZXJzLgorLy8gMjMvMDIvMDMgdGh3CisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworICBuYW1lc3BhY2UgaXRlcmF0b3JzCisgIHsKKyAgICAvLworICAgIC8vIEJhc2UgbWFjaGluZXJ5IGZvciBhbGwga2luZHMgb2YgZW5hYmxlIGlmCisgICAgLy8KKyAgICB0ZW1wbGF0ZTxib29sPgorICAgIHN0cnVjdCBlbmFibGVkCisgICAgeworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgIHN0cnVjdCBiYXNlCisgICAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgfTsKKyAgICB9OworICAgIAorICAgIC8vCisgICAgLy8gRm9yIGNvbXBpbGVycyB0aGF0IGRvbid0IHN1cHBvcnQgIlN1YnN0aXR1dGlvbiBGYWlsdXJlIElzIE5vdCBBbiBFcnJvciIKKyAgICAvLyBlbmFibGVfaWYgZmFsbHMgYmFjayB0byBhbHdheXMgZW5hYmxlZC4gU2VlIGNvbW1lbnRzCisgICAgLy8gb24gb3BlcmF0b3IgaW1wbGVtZW50YXRpb24gZm9yIGNvbnNlcXVlbmNlcy4KKyAgICAvLworICAgIHRlbXBsYXRlPD4KKyAgICBzdHJ1Y3QgZW5hYmxlZDxmYWxzZT4KKyAgICB7CisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgc3RydWN0IGJhc2UKKyAgICAgIHsKKyNpZmRlZiBCT09TVF9OT19TRklOQUUKKworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKworICAgICAgICAvLyBUaGlzIHdheSB0byBkbyBpdCB3b3VsZCBnaXZlIGEgbmljZSBlcnJvciBtZXNzYWdlIGNvbnRhaW5pbmcKKyAgICAgICAgLy8gaW52YWxpZCBvdmVybG9hZCwgYnV0IGhhcyB0aGUgYmlnIGRpc2FkdmFudGFnZSB0aGF0CisgICAgICAgIC8vIHRoZXJlIGlzIG5vIHJlZmVyZW5jZSB0byB1c2VyIGNvZGUgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCisgICAgICAgIC8vCisgICAgICAgIC8vIHN0cnVjdCBpbnZhbGlkX292ZXJsb2FkOworICAgICAgICAvLyB0eXBlZGVmIGludmFsaWRfb3ZlcmxvYWQgdHlwZTsKKyAgICAgICAgLy8KKyNlbmRpZgorICAgICAgfTsKKyAgICB9OworCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwKKyAgICAgICAgICAgICAgY2xhc3MgUmV0dXJuPgorICAgIHN0cnVjdCBlbmFibGVfaWYKKyMgaWYgIWRlZmluZWQoQk9PU1RfTk9fU0ZJTkFFKSAmJiAhZGVmaW5lZChCT09TVF9OT19JU19DT05WRVJUSUJMRSkKKyAgICAgIDogZW5hYmxlZDwoQ29uZDo6dmFsdWUpPjo6dGVtcGxhdGUgYmFzZTxSZXR1cm4+CisjIGVsc2UKKyAgICAgIDogbXBsOjppZGVudGl0eTxSZXR1cm4+CisjIGVuZGlmIAorICAgIHsKKyMgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgICAgIHR5cGVkZWYgUmV0dXJuIHR5cGU7CisjIGVuZGlmIAorICAgIH07CisKKyAgfSAvLyBuYW1lc3BhY2UgaXRlcmF0b3JzCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvY29uZmlnX3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX0VOQUJMRV9JRl8yMzAyMjAwM1RIV19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2ZhY2FkZV9pdGVyYXRvcl9jYXRlZ29yeS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9mYWNhZGVfaXRlcmF0b3JfY2F0ZWdvcnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMjFmNWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9mYWNhZGVfaXRlcmF0b3JfY2F0ZWdvcnkuaHBwCkBAIC0wLDAgKzEsMjAwIEBACisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcworLy8gc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgRkFDQURFX0lURVJBVE9SX0NBVEVHT1JZX0RXQTIwMDMxMTE4X0hQUAorIyBkZWZpbmUgRkFDQURFX0lURVJBVE9SX0NBVEVHT1JZX0RXQTIwMDMxMTE4X0hQUAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2NhdGVnb3JpZXMuaHBwPgorCisjIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9vci5ocHA+ICAvLyB1c2VkIGluIGl0ZXJhdG9yX3RhZyBpbmhlcml0YW5jZSBsb2dpYworIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYW5kLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXNzZXJ0LmhwcD4KKworIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHA+CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ19kZWYuaHBwPiAvLyB0cnkgdG8ga2VlcCB0aGlzIGxhc3QKKworIyBpZmRlZiBCT09TVF9JVEVSQVRPUl9SRUZfQ09OU1RORVNTX0tJTExTX1dSSVRBQklMSVRZCisjICBpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaW5kaXJlY3RfdHJhaXRzLmhwcD4KKyMgZW5kaWYKKworLy8KKy8vIGl0ZXJhdG9yX2NhdGVnb3J5IGRlZHVjdGlvbiBmb3IgaXRlcmF0b3JfZmFjYWRlCisvLworCisvLyBmb3J3YXJkIGRlY2xhcmF0aW9uCituYW1lc3BhY2UgbmRuYm9vc3QgeyBzdHJ1Y3QgdXNlX2RlZmF1bHQ7IH0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCAgeworCitzdHJ1Y3QgaW5wdXRfb3V0cHV0X2l0ZXJhdG9yX3RhZworICA6IHN0ZDo6aW5wdXRfaXRlcmF0b3JfdGFnCit7CisgICAgLy8gVXNpbmcgaW5oZXJpdGFuY2UgZm9yIG9ubHkgaW5wdXRfaXRlcmF0b3JfdGFnIGhlbHBzIHRvIGF2b2lkCisgICAgLy8gYW1iaWd1aXRpZXMgd2hlbiBhIHN0ZGxpYiBpbXBsZW1lbnRhdGlvbiBkaXNwYXRjaGVzIG9uIGEKKyAgICAvLyBmdW5jdGlvbiB3aGljaCBpcyBvdmVybG9hZGVkIG9uIGJvdGggaW5wdXRfaXRlcmF0b3JfdGFnIGFuZAorICAgIC8vIG91dHB1dF9pdGVyYXRvcl90YWcsIGFzIFNUTFBvcnQgZG9lcywgaW4gaXRzIF9fdmFsaWRfcmFuZ2UKKyAgICAvLyBmdW5jdGlvbi4gIEkgY2xhaW0gaXQncyBiZXR0ZXIgdG8gYXZvaWQgdGhlIGFtYmlndWl0eSBpbiB0aGVzZQorICAgIC8vIGNhc2VzLgorICAgIG9wZXJhdG9yIHN0ZDo6b3V0cHV0X2l0ZXJhdG9yX3RhZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RkOjpvdXRwdXRfaXRlcmF0b3JfdGFnKCk7CisgICAgfQorfTsKKworLy8KKy8vIFRydWUgaWZmIHRoZSB1c2VyIGhhcyBleHBsaWNpdGx5IGRpc2FibGVkIHdyaXRhYmlsaXR5IG9mIHRoaXMKKy8vIGl0ZXJhdG9yLiAgUGFzcyB0aGUgaXRlcmF0b3JfZmFjYWRlJ3MgVmFsdWUgcGFyYW1ldGVyIGFuZCBpdHMKKy8vIG5lc3RlZCA6OnJlZmVyZW5jZSB0eXBlLgorLy8KK3RlbXBsYXRlIDxjbGFzcyBWYWx1ZVBhcmFtLCBjbGFzcyBSZWZlcmVuY2U+CitzdHJ1Y3QgaXRlcmF0b3Jfd3JpdGFiaWxpdHlfZGlzYWJsZWQKKyMgaWZkZWYgQk9PU1RfSVRFUkFUT1JfUkVGX0NPTlNUTkVTU19LSUxMU19XUklUQUJJTElUWSAvLyBBZGRpbmcgVGhvbWFzJyBsb2dpYz8KKyAgOiBtcGw6Om9yXzwKKyAgICAgICAgaXNfY29uc3Q8UmVmZXJlbmNlPgorICAgICAgLCBuZG5ib29zdDo6ZGV0YWlsOjppbmRpcmVjdF90cmFpdHM6OmlzX3JlZmVyZW5jZV90b19jb25zdDxSZWZlcmVuY2U+CisgICAgICAsIGlzX2NvbnN0PFZhbHVlUGFyYW0+CisgICAgPgorIyBlbHNlIAorICA6IGlzX2NvbnN0PFZhbHVlUGFyYW0+CisjIGVuZGlmIAore307CisKKworLy8KKy8vIENvbnZlcnQgYW4gaXRlcmF0b3JfZmFjYWRlJ3MgdHJhdmVyc2FsIGNhdGVnb3J5LCBWYWx1ZSBwYXJhbWV0ZXIsCisvLyBhbmQgOjpyZWZlcmVuY2UgdHlwZSB0byBhbiBhcHByb3ByaWF0ZSBvbGQtc3R5bGUgY2F0ZWdvcnkuCisvLworLy8gSWYgd3JpdGFiaWxpdHkgaGFzIGJlZW4gZGlzYWJsZWQgcGVyIHRoZSBhYm92ZSBtZXRhZnVuY3Rpb24sIHRoZQorLy8gcmVzdWx0IHdpbGwgbm90IGJlIGNvbnZlcnRpYmxlIHRvIG91dHB1dF9pdGVyYXRvcl90YWcuCisvLworLy8gT3RoZXJ3aXNlLCBpZiBUcmF2ZXJzYWwgPT0gc2luZ2xlX3Bhc3NfdHJhdmVyc2FsX3RhZywgdGhlIGZvbGxvd2luZworLy8gY29uZGl0aW9ucyB3aWxsIHJlc3VsdCBpbiBhIHRhZyB0aGF0IGlzIGNvbnZlcnRpYmxlIGJvdGggdG8KKy8vIGlucHV0X2l0ZXJhdG9yX3RhZyBhbmQgb3V0cHV0X2l0ZXJhdG9yX3RhZzoKKy8vCisvLyAgICAxLiBSZWZlcmVuY2UgaXMgYSByZWZlcmVuY2UgdG8gbm9uLWNvbnN0CisvLyAgICAyLiBSZWZlcmVuY2UgaXMgbm90IGEgcmVmZXJlbmNlIGFuZCBpcyBjb252ZXJ0aWJsZSB0byBWYWx1ZQorLy8KK3RlbXBsYXRlIDxjbGFzcyBUcmF2ZXJzYWwsIGNsYXNzIFZhbHVlUGFyYW0sIGNsYXNzIFJlZmVyZW5jZT4KK3N0cnVjdCBpdGVyYXRvcl9mYWNhZGVfZGVmYXVsdF9jYXRlZ29yeQorICA6IG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgbXBsOjphbmRfPAorICAgICAgICAgICAgaXNfcmVmZXJlbmNlPFJlZmVyZW5jZT4KKyAgICAgICAgICAsIGlzX2NvbnZlcnRpYmxlPFRyYXZlcnNhbCxmb3J3YXJkX3RyYXZlcnNhbF90YWc+CisgICAgICAgID4KKyAgICAgICwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgaXNfY29udmVydGlibGU8VHJhdmVyc2FsLHJhbmRvbV9hY2Nlc3NfdHJhdmVyc2FsX3RhZz4KKyAgICAgICAgICAsIG1wbDo6aWRlbnRpdHk8c3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZz4KKyAgICAgICAgICAsIG1wbDo6aWZfPAorICAgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPFRyYXZlcnNhbCxiaWRpcmVjdGlvbmFsX3RyYXZlcnNhbF90YWc+CisgICAgICAgICAgICAgICwgc3RkOjpiaWRpcmVjdGlvbmFsX2l0ZXJhdG9yX3RhZworICAgICAgICAgICAgICAsIHN0ZDo6Zm9yd2FyZF9pdGVyYXRvcl90YWcKKyAgICAgICAgICAgID4KKyAgICAgICAgPgorICAgICAgLCB0eXBlbmFtZSBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICBtcGw6OmFuZF88CisgICAgICAgICAgICAgICAgaXNfY29udmVydGlibGU8VHJhdmVyc2FsLCBzaW5nbGVfcGFzc190cmF2ZXJzYWxfdGFnPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNoZWNrIGZvciByZWFkYWJpbGl0eQorICAgICAgICAgICAgICAsIGlzX2NvbnZlcnRpYmxlPFJlZmVyZW5jZSwgVmFsdWVQYXJhbT4KKyAgICAgICAgICAgID4KKyAgICAgICAgICAsIG1wbDo6aWRlbnRpdHk8c3RkOjppbnB1dF9pdGVyYXRvcl90YWc+CisgICAgICAgICAgLCBtcGw6OmlkZW50aXR5PFRyYXZlcnNhbD4KKyAgICAgICAgPgorICAgID4KK3sKK307CisKKy8vIFRydWUgaWZmIFQgaXMgY29udmVydGlibGUgdG8gYW4gb2xkLXN0eWxlIGl0ZXJhdG9yIGNhdGVnb3J5LgordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfaXRlcmF0b3JfY2F0ZWdvcnkKKyAgOiBtcGw6Om9yXzwKKyAgICAgICAgaXNfY29udmVydGlibGU8VCxzdGQ6OmlucHV0X2l0ZXJhdG9yX3RhZz4KKyAgICAgICwgaXNfY29udmVydGlibGU8VCxzdGQ6Om91dHB1dF9pdGVyYXRvcl90YWc+CisgICAgPgoreworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfaXRlcmF0b3JfdHJhdmVyc2FsCisgIDogaXNfY29udmVydGlibGU8VCxpbmNyZW1lbnRhYmxlX3RyYXZlcnNhbF90YWc+Cit7fTsKKworLy8KKy8vIEEgY29tcG9zaXRlIGl0ZXJhdG9yX2NhdGVnb3J5IHRhZyBjb252ZXJ0aWJsZSB0byBDYXRlZ29yeSAoYSBwdXJlCisvLyBvbGQtc3R5bGUgY2F0ZWdvcnkpIGFuZCBUcmF2ZXJzYWwgKGEgcHVyZSB0cmF2ZXJzYWwgdGFnKS4KKy8vIFRyYXZlcnNhbCBtdXN0IGJlIGEgc3RyaWN0IGluY3JlYXNlIG9mIHRoZSB0cmF2ZXJzYWwgcG93ZXIgZ2l2ZW4gYnkKKy8vIENhdGVnb3J5LgorLy8KK3RlbXBsYXRlIDxjbGFzcyBDYXRlZ29yeSwgY2xhc3MgVHJhdmVyc2FsPgorc3RydWN0IGl0ZXJhdG9yX2NhdGVnb3J5X3dpdGhfdHJhdmVyc2FsCisgIDogQ2F0ZWdvcnksIFRyYXZlcnNhbAoreworIyBpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKQorICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzbid0IHVzZWQgdG8gYnVpbGQgYW55IGNhdGVnb3JpZXMgd2hlcmUKKyAgICAvLyBjb252ZXJ0aWJpbGl0eSB0byBUcmF2ZXJzYWwgaXMgcmVkdW5kYW50LiAgU2hvdWxkIGp1c3QgdXNlIHRoZQorICAgIC8vIENhdGVnb3J5IGVsZW1lbnQgaW4gdGhhdCBjYXNlLgorICAgIEJPT1NUX01QTF9BU1NFUlRfTk9UKCgKKyAgICAgICAgaXNfY29udmVydGlibGU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGl0ZXJhdG9yX2NhdGVnb3J5X3RvX3RyYXZlcnNhbDxDYXRlZ29yeT46OnR5cGUKKyAgICAgICAgICAgICwgVHJhdmVyc2FsCisgICAgICAgICAgPikpOworCisgICAgQk9PU1RfTVBMX0FTU0VSVCgoaXNfaXRlcmF0b3JfY2F0ZWdvcnk8Q2F0ZWdvcnk+KSk7CisgICAgQk9PU1RfTVBMX0FTU0VSVF9OT1QoKGlzX2l0ZXJhdG9yX2NhdGVnb3J5PFRyYXZlcnNhbD4pKTsKKyAgICBCT09TVF9NUExfQVNTRVJUX05PVCgoaXNfaXRlcmF0b3JfdHJhdmVyc2FsPENhdGVnb3J5PikpOworIyAgaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgQk9PU1RfVEVTVEVEX0FUKDEzMTApKQorICAgIEJPT1NUX01QTF9BU1NFUlQoKGlzX2l0ZXJhdG9yX3RyYXZlcnNhbDxUcmF2ZXJzYWw+KSk7CisjICBlbmRpZiAKKyMgZW5kaWYgCit9OworCisvLyBDb21wdXRlcyBhbiBpdGVyYXRvcl9jYXRlZ29yeSB0YWcgd2hvc2UgdHJhdmVyc2FsIGlzIFRyYXZlcnNhbCBhbmQKKy8vIHdoaWNoIGlzIGFwcHJvcHJpYXRlIGZvciBhbiBpdGVyYXRvcgordGVtcGxhdGUgPGNsYXNzIFRyYXZlcnNhbCwgY2xhc3MgVmFsdWVQYXJhbSwgY2xhc3MgUmVmZXJlbmNlPgorc3RydWN0IGZhY2FkZV9pdGVyYXRvcl9jYXRlZ29yeV9pbXBsCit7CisjIGlmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApCisgICAgQk9PU1RfTVBMX0FTU0VSVF9OT1QoKGlzX2l0ZXJhdG9yX2NhdGVnb3J5PFRyYXZlcnNhbD4pKTsKKyMgZW5kaWYgCisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyYXRvcl9mYWNhZGVfZGVmYXVsdF9jYXRlZ29yeTwKKyAgICAgICAgVHJhdmVyc2FsLFZhbHVlUGFyYW0sUmVmZXJlbmNlCisgICAgPjo6dHlwZSBjYXRlZ29yeTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICBpc19zYW1lPAorICAgICAgICAgICAgVHJhdmVyc2FsCisgICAgICAgICAgLCB0eXBlbmFtZSBpdGVyYXRvcl9jYXRlZ29yeV90b190cmF2ZXJzYWw8Y2F0ZWdvcnk+Ojp0eXBlCisgICAgICAgID4KKyAgICAgICwgY2F0ZWdvcnkKKyAgICAgICwgaXRlcmF0b3JfY2F0ZWdvcnlfd2l0aF90cmF2ZXJzYWw8Y2F0ZWdvcnksVHJhdmVyc2FsPgorICAgID46OnR5cGUgdHlwZTsKK307CisKKy8vCisvLyBDb21wdXRlIGFuIGl0ZXJhdG9yX2NhdGVnb3J5IGZvciBpdGVyYXRvcl9mYWNhZGUKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgQ2F0ZWdvcnlPclRyYXZlcnNhbCwgY2xhc3MgVmFsdWVQYXJhbSwgY2xhc3MgUmVmZXJlbmNlPgorc3RydWN0IGZhY2FkZV9pdGVyYXRvcl9jYXRlZ29yeQorICA6IG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgaXNfaXRlcmF0b3JfY2F0ZWdvcnk8Q2F0ZWdvcnlPclRyYXZlcnNhbD4KKyAgICAgICwgbXBsOjppZGVudGl0eTxDYXRlZ29yeU9yVHJhdmVyc2FsPiAvLyBvbGQtc3R5bGUgY2F0ZWdvcmllcyBhcmUgZmluZSBhcy1pcworICAgICAgLCBmYWNhZGVfaXRlcmF0b3JfY2F0ZWdvcnlfaW1wbDxDYXRlZ29yeU9yVHJhdmVyc2FsLFZhbHVlUGFyYW0sUmVmZXJlbmNlPgorICAgID4KK3sKK307CisKK319IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6ZGV0YWlsCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ191bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBGQUNBREVfSVRFUkFUT1JfQ0FURUdPUllfRFdBMjAwMzExMThfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2ludGVyb3BlcmFibGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pbnRlcm9wZXJhYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWVkZTFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pbnRlcm9wZXJhYmxlLmhwcApAQCAtMCwwICsxLDUwIEBACisvLyAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuCisvLyAoQykgQ29weXJpZ2h0IEplcmVteSBTaWVrICAgIDIwMDIuCisvLyAoQykgQ29weXJpZ2h0IFRob21hcyBXaXR0ICAgIDIwMDIuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIEJPT1NUX0lOVEVST1BFUkFCTEVfMjMwMjIwMDNUSFdfSFBQCisjIGRlZmluZSBCT09TVF9JTlRFUk9QRVJBQkxFXzIzMDIyMDAzVEhXX0hQUAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL29yLmhwcD4KKworIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHA+CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ19kZWYuaHBwPiAvLyBtdXN0IGFwcGVhciBsYXN0CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisgIC8vCisgIC8vIE1ldGEgZnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdHdvCisgIC8vIGl0ZXJhdG9yIHR5cGVzIGFyZSBjb25zaWRlcmVkIGludGVyb3BlcmFibGUuCisgIC8vCisgIC8vIFR3byBpdGVyYXRvciB0eXBlcyBBLEIgYXJlIGNvbnNpZGVyZWQgaW50ZXJvcGVyYWJsZSBpZiBlaXRoZXIKKyAgLy8gQSBpcyBjb252ZXJ0aWJsZSB0byBCIG9yIHZpY2UgdmVyc2EuCisgIC8vIFRoaXMgaW50ZXJvcGVyYWJpbGl0eSBkZWZpbml0aW9uIGlzIGluIHN5bmMgd2l0aCB0aGUKKyAgLy8gc3RhbmRhcmRzIHJlcXVpcmVtZW50cyBvbiBjb25zdGFudC9tdXRhYmxlIGNvbnRhaW5lcgorICAvLyBpdGVyYXRvcnMgKDIzLjEgW2xpYi5jb250YWluZXIucmVxdWlyZW1lbnRzXSkuCisgIC8vCisgIC8vIEZvciBjb21waWxlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGlzX2NvbnZlcnRpYmxlIAorICAvLyBpc19pbnRlcm9wZXJhYmxlIGdpdmVzIGZhbHNlIHBvc2l0aXZlcy4gU2VlIGNvbW1lbnRzCisgIC8vIG9uIG9wZXJhdG9yIGltcGxlbWVudGF0aW9uIGZvciBjb25zZXF1ZW5jZXMuCisgIC8vCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgorICBzdHJ1Y3QgaXNfaW50ZXJvcGVyYWJsZQorIyBpZmRlZiBCT09TVF9OT19TVFJJQ1RfSVRFUkFUT1JfSU5URVJPUEVSQUJJTElUWQorICAgIDogbXBsOjp0cnVlXworIyBlbHNlCisgICAgOiBtcGw6Om9yXzwKKyAgICAgICAgICBpc19jb252ZXJ0aWJsZTwgQSwgQiA+CisgICAgICAgICwgaXNfY29udmVydGlibGU8IEIsIEEgPiA+CisjIGVuZGlmCisgIHsgCisgIH07CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ191bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9JTlRFUk9QRVJBQkxFXzIzMDIyMDAzVEhXX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9hZGFwdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfYWRhcHRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlhYWZiZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfYWRhcHRvci5ocHAKQEAgLTAsMCArMSwzNjUgQEAKKy8vIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4KKy8vIChDKSBDb3B5cmlnaHQgSmVyZW15IFNpZWsgICAgMjAwMi4KKy8vIChDKSBDb3B5cmlnaHQgVGhvbWFzIFdpdHQgICAgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgQk9PU1RfSVRFUkFUT1JfQURBUFRPUl8yMzAyMjAwM1RIV19IUFAKKyNkZWZpbmUgQk9PU1RfSVRFUkFUT1JfQURBUFRPUl8yMzAyMjAwM1RIV19IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaXRlcmF0b3IuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfY2F0ZWdvcmllcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfZmFjYWRlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvZW5hYmxlX2lmLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9vci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHA+CisKKyNpZmRlZiBCT09TVF9JVEVSQVRPUl9SRUZfQ09OU1RORVNTX0tJTExTX1dSSVRBQklMSVRZCisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvY29uZmlnX2RlZi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgLy8gVXNlZCBhcyBhIGRlZmF1bHQgdGVtcGxhdGUgYXJndW1lbnQgaW50ZXJuYWxseSwgbWVyZWx5IHRvCisgIC8vIGluZGljYXRlICJ1c2UgdGhlIGRlZmF1bHQiLCB0aGlzIGNhbiBhbHNvIGJlIHBhc3NlZCBieSB1c2VycworICAvLyBleHBsaWNpdGx5IGluIG9yZGVyIHRvIHNwZWNpZnkgdGhhdCB0aGUgZGVmYXVsdCBzaG91bGQgYmUgdXNlZC4KKyAgc3RydWN0IHVzZV9kZWZhdWx0OworICAKKyMgaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyAgLy8gdGhlIGluY29tcGxldGVuZXNzIG9mIHVzZV9kZWZhdWx0IGNhdXNlcyBtYXNzaXZlIHByb2JsZW1zIGZvcgorICAvLyBpc19jb252ZXJ0aWJsZSAobmF0dXJhbGx5KS4gIFRoaXMgd29ya2Fyb3VuZCBpcyBmb3J0dW5hdGVseSBub3QKKyAgLy8gbmVlZGVkIGZvciB2YzYvdmM3LgorICB0ZW1wbGF0ZTxjbGFzcyBUbz4KKyAgc3RydWN0IGlzX2NvbnZlcnRpYmxlPHVzZV9kZWZhdWx0LFRvPgorICAgIDogbXBsOjpmYWxzZV8ge307CisjIGVuZGlmIAorICAKKyAgbmFtZXNwYWNlIGRldGFpbAorICB7CisKKyAgICAvLyAKKyAgICAvLyBSZXN1bHQgdHlwZSB1c2VkIGluIGVuYWJsZV9pZl9jb252ZXJ0aWJsZSBtZXRhIGZ1bmN0aW9uLgorICAgIC8vIFRoaXMgY2FuIGJlIGFuIGluY29tcGxldGUgdHlwZSwgYXMgb25seSBwb2ludGVycyB0byAKKyAgICAvLyBlbmFibGVfaWZfY29udmVydGlibGU8IC4uLiA+Ojp0eXBlIGFyZSB1c2VkLgorICAgIC8vIFdlIGNvdWxkIGhhdmUgdXNlZCB2b2lkIGZvciB0aGlzLCBidXQgY29udmVyc2lvbiB0bworICAgIC8vIHZvaWQqIGlzIGp1c3QgdG8gZWFzeS4KKyAgICAvLworICAgIHN0cnVjdCBlbmFibGVfdHlwZTsKKyAgfQorCisKKyAgLy8KKyAgLy8gZW5hYmxlX2lmIGZvciB1c2UgaW4gYWRhcHRlZCBpdGVyYXRvcnMgY29uc3RydWN0b3JzLgorICAvLworICAvLyBJbiBvcmRlciB0byBwcm92aWRlIGludGVyb3BlcmFiaWxpdHkgYmV0d2VlbiBhZGFwdGVkIGNvbnN0YW50IGFuZAorICAvLyBtdXRhYmxlIGl0ZXJhdG9ycywgYWRhcHRlZCBpdGVyYXRvcnMgd2lsbCB1c3VhbGx5IHByb3ZpZGUgdGVtcGxhdGVkCisgIC8vIGNvbnZlcnNpb24gY29uc3RydWN0b3JzIG9mIHRoZSBmb2xsb3dpbmcgZm9ybQorICAvLworICAvLyB0ZW1wbGF0ZSA8Y2xhc3MgQmFzZUl0ZXJhdG9yPgorICAvLyBjbGFzcyBhZGFwdGVkX2l0ZXJhdG9yIDoKKyAgLy8gICBwdWJsaWMgaXRlcmF0b3JfYWRhcHRvcjwgYWRhcHRlZF9pdGVyYXRvcjxJdGVyYXRvcj4sIEl0ZXJhdG9yID4KKyAgLy8geworICAvLyBwdWJsaWM6CisgIC8vICAgCisgIC8vICAgLi4uCisgIC8vCisgIC8vICAgdGVtcGxhdGUgPGNsYXNzIE90aGVySXRlcmF0b3I+CisgIC8vICAgYWRhcHRlZF9pdGVyYXRvcigKKyAgLy8gICAgICAgT3RoZXJJdGVyYXRvciBjb25zdCYgaXQKKyAgLy8gICAgICwgdHlwZW5hbWUgZW5hYmxlX2lmX2NvbnZlcnRpYmxlPE90aGVySXRlcmF0b3IsIEl0ZXJhdG9yPjo6dHlwZSogPSAwKTsKKyAgLy8KKyAgLy8gICAuLi4KKyAgLy8gfTsKKyAgLy8KKyAgLy8gZW5hYmxlX2lmX2NvbnZlcnRpYmxlIGlzIHVzZWQgdG8gcmVtb3ZlIHRob3NlIG92ZXJsb2FkcyBmcm9tIHRoZSBvdmVybG9hZAorICAvLyBzZXQgdGhhdCBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLiBGb3IgYWxsIHByYWN0aWNhbCBwdXJwb3NlcyBvbmx5IG92ZXJsb2FkcworICAvLyBmb3IgY29uc3RhbnQvbXV0YWJsZSBpbnRlcmFjdGlvbiB3aWxsIHJlbWFpbi4gVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0aGF0CisgIC8vIG1ldGEgZnVuY3Rpb25zIGxpa2UgbmRuYm9vc3Q6OmlzX2NvbnZlcnRpYmxlIGRvIG5vdCByZXR1cm4gZmFsc2UgcG9zaXRpdmVzLAorICAvLyBhcyB0aGV5IGNhbiBvbmx5IGxvb2sgYXQgdGhlIHNpZ25hdHVyZSBvZiB0aGUgY29udmVyc2lvbiBjb25zdHJ1Y3RvcgorICAvLyBhbmQgbm90IGF0IHRoZSBhY3R1YWwgaW5zdGFudGlhdGlvbi4KKyAgLy8KKyAgLy8gZW5hYmxlX2lmX2ludGVyb3BlcmFibGUgY2FuIGJlIHNhZmVseSB1c2VkIGluIHVzZXIgY29kZS4gSXQgZmFsbHMgYmFjayB0bworICAvLyBhbHdheXMgZW5hYmxlZCBmb3IgY29tcGlsZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBlbmFibGVfaWYgb3IgaXNfY29udmVydGlibGUuIAorICAvLyBUaGVyZSBpcyBubyBuZWVkIGZvciBjb21waWxlciBzcGVjaWZpYyB3b3JrYXJvdW5kcyBpbiB1c2VyIGNvZGUuIAorICAvLworICAvLyBUaGUgb3BlcmF0b3JzIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbiBuZG5ib29zdDo6aXNfY29udmVydGlibGUgbm90IHJldHVybmluZworICAvLyBmYWxzZSBwb3NpdGl2ZXMgZm9yIHVzZXIvbGlicmFyeSBkZWZpbmVkIGl0ZXJhdG9yIHR5cGVzLiBTZWUgY29tbWVudHMKKyAgLy8gb24gb3BlcmF0b3IgaW1wbGVtZW50YXRpb24gZm9yIGNvbnNlcXVlbmNlcy4KKyAgLy8KKyMgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkKKyAgCisgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorICBzdHJ1Y3QgZW5hYmxlX2lmX2NvbnZlcnRpYmxlCisgIHsKKyAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgICAgIG1wbDo6b3JfPAorICAgICAgICAgICAgIGlzX3NhbWU8RnJvbSxUbz4KKyAgICAgICAgICAgLCBpc19jb252ZXJ0aWJsZTxGcm9tLCBUbz4KKyAgICAgICAgID4KKyAgICAgICwgbmRuYm9vc3Q6OmRldGFpbDo6ZW5hYmxlX3R5cGUKKyAgICAgICwgaW50JgorICAgICA+Ojp0eXBlIHR5cGU7CisgIH07CisgIAorIyAgZWxpZiBkZWZpbmVkKEJPT1NUX05PX0lTX0NPTlZFUlRJQkxFKSB8fCBkZWZpbmVkKEJPT1NUX05PX1NGSU5BRSkKKyAgCisgIHRlbXBsYXRlIDxjbGFzcyBGcm9tLCBjbGFzcyBUbz4KKyAgc3RydWN0IGVuYWJsZV9pZl9jb252ZXJ0aWJsZQorICB7CisgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmVuYWJsZV90eXBlIHR5cGU7CisgIH07CisgIAorIyAgZWxpZiBCT09TVF9XT1JLQVJPVU5EKF9NU0NfRlVMTF9WRVIsIEJPT1NUX1RFU1RFRF9BVCgxMzEwMjI5MikpICYmIEJPT1NUX01TVkMgPiAxMzAwCisgIAorICAvLyBGb3Igc29tZSByZWFzb24gdmM3LjEgbmVlZHMgdXMgdG8gImN1dCBvZmYiIGluc3RhbnRpYXRpb24KKyAgLy8gb2YgaXNfY29udmVydGlibGUgaW4gYSBmZXcgY2FzZXMuCisgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorICBzdHJ1Y3QgZW5hYmxlX2lmX2NvbnZlcnRpYmxlCisgICAgOiBpdGVyYXRvcnM6OmVuYWJsZV9pZjwKKyAgICAgICAgbXBsOjpvcl88CisgICAgICAgICAgICBpc19zYW1lPEZyb20sVG8+CisgICAgICAgICAgLCBpc19jb252ZXJ0aWJsZTxGcm9tLCBUbz4KKyAgICAgICAgPgorICAgICAgLCBuZG5ib29zdDo6ZGV0YWlsOjplbmFibGVfdHlwZQorICAgID4KKyAge307CisgIAorIyAgZWxzZSAKKyAgCisgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorICBzdHJ1Y3QgZW5hYmxlX2lmX2NvbnZlcnRpYmxlCisgICAgOiBpdGVyYXRvcnM6OmVuYWJsZV9pZjwKKyAgICAgICAgICBpc19jb252ZXJ0aWJsZTxGcm9tLCBUbz4KKyAgICAgICAgLCBuZG5ib29zdDo6ZGV0YWlsOjplbmFibGVfdHlwZQorICAgICAgPgorICB7fTsKKyAgICAgIAorIyBlbmRpZgorICAKKyAgLy8KKyAgLy8gRGVmYXVsdCB0ZW1wbGF0ZSBhcmd1bWVudCBoYW5kbGluZyBmb3IgaXRlcmF0b3JfYWRhcHRvcgorICAvLworICBuYW1lc3BhY2UgZGV0YWlsCisgIHsKKyAgICAvLyBJZiBUIGlzIHVzZV9kZWZhdWx0LCByZXR1cm4gdGhlIHJlc3VsdCBvZiBpbnZva2luZworICAgIC8vIERlZmF1bHROdWxsYXJ5Rm4sIG90aGVyd2lzZSByZXR1cm4gVC4KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgRGVmYXVsdE51bGxhcnlGbj4KKyAgICBzdHJ1Y3QgaWFfZGZsdF9oZWxwCisgICAgICA6IG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgIGlzX3NhbWU8VCwgdXNlX2RlZmF1bHQ+CisgICAgICAgICAgLCBEZWZhdWx0TnVsbGFyeUZuCisgICAgICAgICAgLCBtcGw6OmlkZW50aXR5PFQ+CisgICAgICAgID4KKyAgICB7CisgICAgfTsKKworICAgIC8vIEEgbWV0YWZ1bmN0aW9uIHdoaWNoIGNvbXB1dGVzIGFuIGl0ZXJhdG9yX2FkYXB0b3IncyBiYXNlIGNsYXNzLAorICAgIC8vIGEgc3BlY2lhbGl6YXRpb24gb2YgaXRlcmF0b3JfZmFjYWRlLgorICAgIHRlbXBsYXRlIDwKKyAgICAgICAgY2xhc3MgRGVyaXZlZAorICAgICAgLCBjbGFzcyBCYXNlCisgICAgICAsIGNsYXNzIFZhbHVlCisgICAgICAsIGNsYXNzIFRyYXZlcnNhbAorICAgICAgLCBjbGFzcyBSZWZlcmVuY2UKKyAgICAgICwgY2xhc3MgRGlmZmVyZW5jZQorICAgID4KKyAgICBzdHJ1Y3QgaXRlcmF0b3JfYWRhcHRvcl9iYXNlCisgICAgeworICAgICAgICB0eXBlZGVmIGl0ZXJhdG9yX2ZhY2FkZTwKKyAgICAgICAgICAgIERlcml2ZWQKKyAgICAgICAgICAgIAorIyBpZmRlZiBCT09TVF9JVEVSQVRPUl9SRUZfQ09OU1RORVNTX0tJTExTX1dSSVRBQklMSVRZCisgICAgICAgICAgLCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppYV9kZmx0X2hlbHA8CisgICAgICAgICAgICAgICAgVmFsdWUKKyAgICAgICAgICAgICAgLCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8UmVmZXJlbmNlLHVzZV9kZWZhdWx0PgorICAgICAgICAgICAgICAgICAgLCBpdGVyYXRvcl92YWx1ZTxCYXNlPgorICAgICAgICAgICAgICAgICAgLCByZW1vdmVfcmVmZXJlbmNlPFJlZmVyZW5jZT4KKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICA+Ojp0eXBlCisjIGVsc2UKKyAgICAgICAgICAsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmlhX2RmbHRfaGVscDwKKyAgICAgICAgICAgICAgICBWYWx1ZSwgaXRlcmF0b3JfdmFsdWU8QmFzZT4KKyAgICAgICAgICAgID46OnR5cGUKKyMgZW5kaWYKKyAgICAgICAgICAgIAorICAgICAgICAgICwgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aWFfZGZsdF9oZWxwPAorICAgICAgICAgICAgICAgIFRyYXZlcnNhbAorICAgICAgICAgICAgICAsIGl0ZXJhdG9yX3RyYXZlcnNhbDxCYXNlPgorICAgICAgICAgICAgPjo6dHlwZQorCisgICAgICAgICAgLCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppYV9kZmx0X2hlbHA8CisgICAgICAgICAgICAgICAgUmVmZXJlbmNlCisgICAgICAgICAgICAgICwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFZhbHVlLHVzZV9kZWZhdWx0PgorICAgICAgICAgICAgICAgICAgLCBpdGVyYXRvcl9yZWZlcmVuY2U8QmFzZT4KKyAgICAgICAgICAgICAgICAgICwgYWRkX3JlZmVyZW5jZTxWYWx1ZT4KKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICAgICAgICAsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmlhX2RmbHRfaGVscDwKKyAgICAgICAgICAgICAgICBEaWZmZXJlbmNlLCBpdGVyYXRvcl9kaWZmZXJlbmNlPEJhc2U+CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgID4KKyAgICAgICAgdHlwZTsKKyAgICB9OworICAKKyAgICAvLyB3b3JrYXJvdW5kIGZvciBhQysrIENSIEpBR2FmMzM1MTIKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHIxLCBjbGFzcyBUcjI+CisgICAgaW5saW5lIHZvaWQgaXRlcmF0b3JfYWRhcHRvcl9hc3NlcnRfdHJhdmVyc2FsICgpCisgICAgeworICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVCgoaXNfY29udmVydGlibGU8VHIxLCBUcjI+Ojp2YWx1ZSkpOworICAgIH0KKyAgfQorICAKKyAgLy8KKyAgLy8gSXRlcmF0b3IgQWRhcHRvcgorICAvLworICAvLyBUaGUgcGFyYW1ldGVyIG9yZGVyaW5nIGNoYW5nZWQgc2xpZ2h0bHkgd2l0aCByZXNwZWN0IHRvIGZvcm1lcgorICAvLyB2ZXJzaW9ucyBvZiBpdGVyYXRvcl9hZGFwdG9yIFRoZSBpZGVhIGlzIHRoYXQgd2hlbiB0aGUgdXNlciBuZWVkcworICAvLyB0byBmaWRkbGUgd2l0aCB0aGUgcmVmZXJlbmNlIHR5cGUgaXQgaXMgaGlnaGx5IGxpa2VseSB0aGF0IHRoZQorICAvLyBpdGVyYXRvciBjYXRlZ29yeSBoYXMgdG8gYmUgYWRqdXN0ZWQgYXMgd2VsbC4gIEFueSBvZiB0aGUKKyAgLy8gZm9sbG93aW5nIGZvdXIgdGVtcGxhdGUgYXJndW1lbnRzIG1heSBiZSBvbW1pdHRlZCBvciBleHBsaWNpdGx5CisgIC8vIHJlcGxhY2VkIGJ5IHVzZV9kZWZhdWx0LgorICAvLworICAvLyAgIFZhbHVlIC0gaWYgc3VwcGxpZWQsIHRoZSB2YWx1ZV90eXBlIG9mIHRoZSByZXN1bHRpbmcgaXRlcmF0b3IsIHVubGVzcworICAvLyAgICAgIGNvbnN0LiBJZiBjb25zdCwgYSBjb25mb3JtaW5nIGNvbXBpbGVyIHN0cmlwcyBjb25zdG5lc3MgZm9yIHRoZQorICAvLyAgICAgIHZhbHVlX3R5cGUuIElmIG5vdCBzdXBwbGllZCwgaXRlcmF0b3JfdHJhaXRzPEJhc2U+Ojp2YWx1ZV90eXBlIGlzIHVzZWQKKyAgLy8KKyAgLy8gICBDYXRlZ29yeSAtIHRoZSB0cmF2ZXJzYWwgY2F0ZWdvcnkgb2YgdGhlIHJlc3VsdGluZyBpdGVyYXRvci4gSWYgbm90CisgIC8vICAgICAgc3VwcGxpZWQsIGl0ZXJhdG9yX3RyYXZlcnNhbDxCYXNlPjo6dHlwZSBpcyB1c2VkLgorICAvLworICAvLyAgIFJlZmVyZW5jZSAtIHRoZSByZWZlcmVuY2UgdHlwZSBvZiB0aGUgcmVzdWx0aW5nIGl0ZXJhdG9yLCBhbmQgaW4KKyAgLy8gICAgICBwYXJ0aWN1bGFyLCB0aGUgcmVzdWx0IHR5cGUgb2Ygb3BlcmF0b3IqKCkuIElmIG5vdCBzdXBwbGllZCBidXQKKyAgLy8gICAgICBWYWx1ZSBpcyBzdXBwbGllZCwgVmFsdWUmIGlzIHVzZWQuIE90aGVyd2lzZQorICAvLyAgICAgIGl0ZXJhdG9yX3RyYWl0czxCYXNlPjo6cmVmZXJlbmNlIGlzIHVzZWQuCisgIC8vCisgIC8vICAgRGlmZmVyZW5jZSAtIHRoZSBkaWZmZXJlbmNlX3R5cGUgb2YgdGhlIHJlc3VsdGluZyBpdGVyYXRvci4gSWYgbm90CisgIC8vICAgICAgc3VwcGxpZWQsIGl0ZXJhdG9yX3RyYWl0czxCYXNlPjo6ZGlmZmVyZW5jZV90eXBlIGlzIHVzZWQuCisgIC8vCisgIHRlbXBsYXRlIDwKKyAgICAgIGNsYXNzIERlcml2ZWQKKyAgICAsIGNsYXNzIEJhc2UKKyAgICAsIGNsYXNzIFZhbHVlICAgICAgICA9IHVzZV9kZWZhdWx0CisgICAgLCBjbGFzcyBUcmF2ZXJzYWwgICAgPSB1c2VfZGVmYXVsdAorICAgICwgY2xhc3MgUmVmZXJlbmNlICAgID0gdXNlX2RlZmF1bHQKKyAgICAsIGNsYXNzIERpZmZlcmVuY2UgICA9IHVzZV9kZWZhdWx0CisgID4KKyAgY2xhc3MgaXRlcmF0b3JfYWRhcHRvcgorICAgIDogcHVibGljIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX2FkYXB0b3JfYmFzZTwKKyAgICAgICAgRGVyaXZlZCwgQmFzZSwgVmFsdWUsIFRyYXZlcnNhbCwgUmVmZXJlbmNlLCBEaWZmZXJlbmNlCisgICAgICA+Ojp0eXBlCisgIHsKKyAgICAgIGZyaWVuZCBjbGFzcyBpdGVyYXRvcl9jb3JlX2FjY2VzczsKKworICAgcHJvdGVjdGVkOgorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl9hZGFwdG9yX2Jhc2U8CisgICAgICAgICAgRGVyaXZlZCwgQmFzZSwgVmFsdWUsIFRyYXZlcnNhbCwgUmVmZXJlbmNlLCBEaWZmZXJlbmNlCisgICAgICA+Ojp0eXBlIHN1cGVyX3Q7CisgICBwdWJsaWM6CisgICAgICBpdGVyYXRvcl9hZGFwdG9yKCkge30KKworICAgICAgZXhwbGljaXQgaXRlcmF0b3JfYWRhcHRvcihCYXNlIGNvbnN0ICZpdGVyKQorICAgICAgICAgIDogbV9pdGVyYXRvcihpdGVyKQorICAgICAgeworICAgICAgfQorCisgICAgICB0eXBlZGVmIEJhc2UgYmFzZV90eXBlOworCisgICAgICBCYXNlIGNvbnN0JiBiYXNlKCkgY29uc3QKKyAgICAgICAgeyByZXR1cm4gbV9pdGVyYXRvcjsgfQorCisgICBwcm90ZWN0ZWQ6CisgICAgICAvLyBmb3IgY29udmVuaWVuY2UgaW4gZGVyaXZlZCBjbGFzc2VzCisgICAgICB0eXBlZGVmIGl0ZXJhdG9yX2FkYXB0b3I8RGVyaXZlZCxCYXNlLFZhbHVlLFRyYXZlcnNhbCxSZWZlcmVuY2UsRGlmZmVyZW5jZT4gaXRlcmF0b3JfYWRhcHRvcl87CisgICAgICAKKyAgICAgIC8vCisgICAgICAvLyBsdmFsdWUgYWNjZXNzIHRvIHRoZSBCYXNlIG9iamVjdCBmb3IgRGVyaXZlZAorICAgICAgLy8KKyAgICAgIEJhc2UgY29uc3QmIGJhc2VfcmVmZXJlbmNlKCkgY29uc3QKKyAgICAgICAgeyByZXR1cm4gbV9pdGVyYXRvcjsgfQorCisgICAgICBCYXNlJiBiYXNlX3JlZmVyZW5jZSgpCisgICAgICAgIHsgcmV0dXJuIG1faXRlcmF0b3I7IH0KKworICAgcHJpdmF0ZToKKyAgICAgIC8vCisgICAgICAvLyBDb3JlIGl0ZXJhdG9yIGludGVyZmFjZSBmb3IgaXRlcmF0b3JfZmFjYWRlLiAgVGhpcyBpcyBwcml2YXRlCisgICAgICAvLyB0byBwcmV2ZW50IHRlbXB0YXRpb24gZm9yIERlcml2ZWQgY2xhc3NlcyB0byB1c2UgaXQsIHdoaWNoCisgICAgICAvLyB3aWxsIG9mdGVuIHJlc3VsdCBpbiBhbiBlcnJvci4gIERlcml2ZWQgY2xhc3NlcyBzaG91bGQgdXNlCisgICAgICAvLyBiYXNlX3JlZmVyZW5jZSgpLCBhYm92ZSwgdG8gZ2V0IGRpcmVjdCBhY2Nlc3MgdG8gbV9pdGVyYXRvci4KKyAgICAgIC8vIAorICAgICAgdHlwZW5hbWUgc3VwZXJfdDo6cmVmZXJlbmNlIGRlcmVmZXJlbmNlKCkgY29uc3QKKyAgICAgICAgeyByZXR1cm4gKm1faXRlcmF0b3I7IH0KKworICAgICAgdGVtcGxhdGUgPAorICAgICAgY2xhc3MgT3RoZXJEZXJpdmVkLCBjbGFzcyBPdGhlckl0ZXJhdG9yLCBjbGFzcyBWLCBjbGFzcyBDLCBjbGFzcyBSLCBjbGFzcyBECisgICAgICA+ICAgCisgICAgICBib29sIGVxdWFsKGl0ZXJhdG9yX2FkYXB0b3I8T3RoZXJEZXJpdmVkLCBPdGhlckl0ZXJhdG9yLCBWLCBDLCBSLCBEPiBjb25zdCYgeCkgY29uc3QKKyAgICAgIHsKKyAgICAgICAgLy8gTWF5YmUgcmVhZGQgd2l0aCBzYW1lX2Rpc3RhbmNlCisgICAgICAgIC8vICAgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUKAorICAgICAgICAvLyAgICAgICAgICAgICAgIChkZXRhaWw6OnNhbWVfY2F0ZWdvcnlfYW5kX2RpZmZlcmVuY2U8RGVyaXZlZCxPdGhlckRlcml2ZWQ+Ojp2YWx1ZSkKKyAgICAgICAgLy8gICAgICAgICAgICAgICApOworICAgICAgICAgIHJldHVybiBtX2l0ZXJhdG9yID09IHguYmFzZSgpOworICAgICAgfQorCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJhdG9yX2NhdGVnb3J5X3RvX3RyYXZlcnNhbDwKKyAgICAgICAgICB0eXBlbmFtZSBzdXBlcl90OjppdGVyYXRvcl9jYXRlZ29yeQorICAgICAgPjo6dHlwZSBteV90cmF2ZXJzYWw7CisKKyMgZGVmaW5lIEJPT1NUX0lURVJBVE9SX0FEQVBUT1JfQVNTRVJUX1RSQVZFUlNBTChjYXQpIFwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX2FkYXB0b3JfYXNzZXJ0X3RyYXZlcnNhbDxteV90cmF2ZXJzYWwsIGNhdD4oKTsKKworICAgICAgdm9pZCBhZHZhbmNlKHR5cGVuYW1lIHN1cGVyX3Q6OmRpZmZlcmVuY2VfdHlwZSBuKQorICAgICAgeworICAgICAgICAgIEJPT1NUX0lURVJBVE9SX0FEQVBUT1JfQVNTRVJUX1RSQVZFUlNBTChyYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcpCisgICAgICAgICAgbV9pdGVyYXRvciArPSBuOworICAgICAgfQorICAKKyAgICAgIHZvaWQgaW5jcmVtZW50KCkgeyArK21faXRlcmF0b3I7IH0KKworICAgICAgdm9pZCBkZWNyZW1lbnQoKSAKKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9JVEVSQVRPUl9BREFQVE9SX0FTU0VSVF9UUkFWRVJTQUwoYmlkaXJlY3Rpb25hbF90cmF2ZXJzYWxfdGFnKQorICAgICAgICAgICAtLW1faXRlcmF0b3I7CisgICAgICB9CisKKyAgICAgIHRlbXBsYXRlIDwKKyAgICAgICAgICBjbGFzcyBPdGhlckRlcml2ZWQsIGNsYXNzIE90aGVySXRlcmF0b3IsIGNsYXNzIFYsIGNsYXNzIEMsIGNsYXNzIFIsIGNsYXNzIEQKKyAgICAgID4gICAKKyAgICAgIHR5cGVuYW1lIHN1cGVyX3Q6OmRpZmZlcmVuY2VfdHlwZSBkaXN0YW5jZV90bygKKyAgICAgICAgICBpdGVyYXRvcl9hZGFwdG9yPE90aGVyRGVyaXZlZCwgT3RoZXJJdGVyYXRvciwgViwgQywgUiwgRD4gY29uc3QmIHkpIGNvbnN0CisgICAgICB7CisgICAgICAgICAgQk9PU1RfSVRFUkFUT1JfQURBUFRPUl9BU1NFUlRfVFJBVkVSU0FMKHJhbmRvbV9hY2Nlc3NfdHJhdmVyc2FsX3RhZykKKyAgICAgICAgICAvLyBNYXliZSByZWFkZCB3aXRoIHNhbWVfZGlzdGFuY2UKKyAgICAgICAgICAvLyAgICAgICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVCgKKyAgICAgICAgICAvLyAgICAgICAgICAgICAgIChkZXRhaWw6OnNhbWVfY2F0ZWdvcnlfYW5kX2RpZmZlcmVuY2U8RGVyaXZlZCxPdGhlckRlcml2ZWQ+Ojp2YWx1ZSkKKyAgICAgICAgICAvLyAgICAgICAgICAgICAgICk7CisgICAgICAgICAgcmV0dXJuIHkuYmFzZSgpIC0gbV9pdGVyYXRvcjsKKyAgICAgIH0KKworIyB1bmRlZiBCT09TVF9JVEVSQVRPUl9BREFQVE9SX0FTU0VSVF9UUkFWRVJTQUwKKyAgICAgIAorICAgcHJpdmF0ZTogLy8gZGF0YSBtZW1iZXJzCisgICAgICBCYXNlIG1faXRlcmF0b3I7CisgIH07CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvY29uZmlnX3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX0lURVJBVE9SX0FEQVBUT1JfMjMwMjIwMDNUSFdfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2NhdGVnb3JpZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jYXRlZ29yaWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWRjMTNkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jYXRlZ29yaWVzLmhwcApAQCAtMCwwICsxLDE4OCBAQAorLy8gKEMpIENvcHlyaWdodCBKZXJlbXkgU2llayAyMDAyLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX0lURVJBVE9SX0NBVEVHT1JJRVNfSFBQCisjIGRlZmluZSBCT09TVF9JVEVSQVRPUl9DQVRFR09SSUVTX0hQUAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcD4KKworIyBpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcD4KKworIyBpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8KKy8vIFRyYXZlcnNhbCBDYXRlZ29yaWVzCisvLworCitzdHJ1Y3Qgbm9fdHJhdmVyc2FsX3RhZyB7fTsKKworc3RydWN0IGluY3JlbWVudGFibGVfdHJhdmVyc2FsX3RhZyAKKyAgOiBub190cmF2ZXJzYWxfdGFnCit7CisvLyAgICAgaW5jcmVtZW50YWJsZV90cmF2ZXJzYWxfdGFnKCkge30KKy8vICAgICBpbmNyZW1lbnRhYmxlX3RyYXZlcnNhbF90YWcoc3RkOjpvdXRwdXRfaXRlcmF0b3JfdGFnIGNvbnN0Jikge307Cit9OworICAKK3N0cnVjdCBzaW5nbGVfcGFzc190cmF2ZXJzYWxfdGFnCisgIDogaW5jcmVtZW50YWJsZV90cmF2ZXJzYWxfdGFnCit7CisvLyAgICAgc2luZ2xlX3Bhc3NfdHJhdmVyc2FsX3RhZygpIHt9CisvLyAgICAgc2luZ2xlX3Bhc3NfdHJhdmVyc2FsX3RhZyhzdGQ6OmlucHV0X2l0ZXJhdG9yX3RhZyBjb25zdCYpIHt9OworfTsKKyAgCitzdHJ1Y3QgZm9yd2FyZF90cmF2ZXJzYWxfdGFnCisgIDogc2luZ2xlX3Bhc3NfdHJhdmVyc2FsX3RhZworeworLy8gICAgIGZvcndhcmRfdHJhdmVyc2FsX3RhZygpIHt9CisvLyAgICAgZm9yd2FyZF90cmF2ZXJzYWxfdGFnKHN0ZDo6Zm9yd2FyZF9pdGVyYXRvcl90YWcgY29uc3QmKSB7fTsKK307CisgIAorc3RydWN0IGJpZGlyZWN0aW9uYWxfdHJhdmVyc2FsX3RhZworICA6IGZvcndhcmRfdHJhdmVyc2FsX3RhZworeworLy8gICAgIGJpZGlyZWN0aW9uYWxfdHJhdmVyc2FsX3RhZygpIHt9OworLy8gICAgIGJpZGlyZWN0aW9uYWxfdHJhdmVyc2FsX3RhZyhzdGQ6OmJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIGNvbnN0Jikge307Cit9OworICAKK3N0cnVjdCByYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcKKyAgOiBiaWRpcmVjdGlvbmFsX3RyYXZlcnNhbF90YWcKK3sKKy8vICAgICByYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcoKSB7fTsKKy8vICAgICByYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcoc3RkOjpyYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZyBjb25zdCYpIHt9OworfTsKKworbmFtZXNwYWNlIGRldGFpbAoreyAgCisgIC8vCisgIC8vIENvbnZlcnQgYSAic3RyaWN0bHkgb2xkLXN0eWxlIiBpdGVyYXRvciBjYXRlZ29yeSB0byBhIHRyYXZlcnNhbAorICAvLyB0YWcuICBUaGlzIGlzIGJyb2tlbiBvdXQgaW50byBhIHNlcGFyYXRlIG1ldGFmdW5jdGlvbiB0byByZWR1Y2UKKyAgLy8gdGhlIGNvc3Qgb2YgaW5zdGFudGlhdGluZyBpdGVyYXRvcl9jYXRlZ29yeV90b190cmF2ZXJzYWwsIGJlbG93LAorICAvLyBmb3IgbmV3LXN0eWxlIHR5cGVzLgorICAvLworICB0ZW1wbGF0ZSA8Y2xhc3MgQ2F0PgorICBzdHJ1Y3Qgb2xkX2NhdGVnb3J5X3RvX3RyYXZlcnNhbAorICAgIDogbXBsOjpldmFsX2lmPAorICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPENhdCxzdGQ6OnJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnPgorICAgICAgICAsIG1wbDo6aWRlbnRpdHk8cmFuZG9tX2FjY2Vzc190cmF2ZXJzYWxfdGFnPgorICAgICAgICAsIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgaXNfY29udmVydGlibGU8Q2F0LHN0ZDo6YmlkaXJlY3Rpb25hbF9pdGVyYXRvcl90YWc+CisgICAgICAgICAgICAsIG1wbDo6aWRlbnRpdHk8YmlkaXJlY3Rpb25hbF90cmF2ZXJzYWxfdGFnPgorICAgICAgICAgICAgLCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICBpc19jb252ZXJ0aWJsZTxDYXQsc3RkOjpmb3J3YXJkX2l0ZXJhdG9yX3RhZz4KKyAgICAgICAgICAgICAgICAsIG1wbDo6aWRlbnRpdHk8Zm9yd2FyZF90cmF2ZXJzYWxfdGFnPgorICAgICAgICAgICAgICAgICwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPENhdCxzdGQ6OmlucHV0X2l0ZXJhdG9yX3RhZz4KKyAgICAgICAgICAgICAgICAgICAgLCBtcGw6OmlkZW50aXR5PHNpbmdsZV9wYXNzX3RyYXZlcnNhbF90YWc+CisgICAgICAgICAgICAgICAgICAgICwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jb252ZXJ0aWJsZTxDYXQsc3RkOjpvdXRwdXRfaXRlcmF0b3JfdGFnPgorICAgICAgICAgICAgICAgICAgICAgICAgLCBtcGw6OmlkZW50aXR5PGluY3JlbWVudGFibGVfdHJhdmVyc2FsX3RhZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICwgdm9pZAorICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgPgorICAgICAgICAgID4KKyAgICAgID4KKyAge307CisKKyMgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgIHRlbXBsYXRlIDw+CisgIHN0cnVjdCBvbGRfY2F0ZWdvcnlfdG9fdHJhdmVyc2FsPGludD4KKyAgeworICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgfTsKKyMgZW5kaWYKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVHJhdmVyc2FsPgorICBzdHJ1Y3QgcHVyZV90cmF2ZXJzYWxfdGFnCisgICAgOiBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgaXNfY29udmVydGlibGU8VHJhdmVyc2FsLHJhbmRvbV9hY2Nlc3NfdHJhdmVyc2FsX3RhZz4KKyAgICAgICAgLCBtcGw6OmlkZW50aXR5PHJhbmRvbV9hY2Nlc3NfdHJhdmVyc2FsX3RhZz4KKyAgICAgICAgLCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPFRyYXZlcnNhbCxiaWRpcmVjdGlvbmFsX3RyYXZlcnNhbF90YWc+CisgICAgICAgICAgICAsIG1wbDo6aWRlbnRpdHk8YmlkaXJlY3Rpb25hbF90cmF2ZXJzYWxfdGFnPgorICAgICAgICAgICAgLCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICBpc19jb252ZXJ0aWJsZTxUcmF2ZXJzYWwsZm9yd2FyZF90cmF2ZXJzYWxfdGFnPgorICAgICAgICAgICAgICAgICwgbXBsOjppZGVudGl0eTxmb3J3YXJkX3RyYXZlcnNhbF90YWc+CisgICAgICAgICAgICAgICAgLCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgaXNfY29udmVydGlibGU8VHJhdmVyc2FsLHNpbmdsZV9wYXNzX3RyYXZlcnNhbF90YWc+CisgICAgICAgICAgICAgICAgICAgICwgbXBsOjppZGVudGl0eTxzaW5nbGVfcGFzc190cmF2ZXJzYWxfdGFnPgorICAgICAgICAgICAgICAgICAgICAsIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29udmVydGlibGU8VHJhdmVyc2FsLGluY3JlbWVudGFibGVfdHJhdmVyc2FsX3RhZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICwgbXBsOjppZGVudGl0eTxpbmNyZW1lbnRhYmxlX3RyYXZlcnNhbF90YWc+CisgICAgICAgICAgICAgICAgICAgICAgICAsIHZvaWQKKyAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgID4KKyAgICAgICAgICA+CisgICAgICA+CisgIHsKKyAgfTsKKyAgCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICB0ZW1wbGF0ZSA8PgorICBzdHJ1Y3QgcHVyZV90cmF2ZXJzYWxfdGFnPGludD4KKyAgeworICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgfTsKKyMgZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKworLy8KKy8vIENvbnZlcnQgYW4gaXRlcmF0b3IgY2F0ZWdvcnkgaW50byBhIHRyYXZlcnNhbCB0YWcKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgQ2F0Pgorc3RydWN0IGl0ZXJhdG9yX2NhdGVnb3J5X3RvX3RyYXZlcnNhbAorICA6IG1wbDo6ZXZhbF9pZjwgLy8gaWYgYWxyZWFkeSBjb252ZXJ0aWJsZSB0byBhIHRyYXZlcnNhbCB0YWcsIHdlJ3JlIGRvbmUuCisgICAgICAgIGlzX2NvbnZlcnRpYmxlPENhdCxpbmNyZW1lbnRhYmxlX3RyYXZlcnNhbF90YWc+CisgICAgICAsIG1wbDo6aWRlbnRpdHk8Q2F0PgorICAgICAgLCBuZG5ib29zdDo6ZGV0YWlsOjpvbGRfY2F0ZWdvcnlfdG9fdHJhdmVyc2FsPENhdD4KKyAgICA+Cit7fTsKKworLy8gVHJhaXQgdG8gZ2V0IGFuIGl0ZXJhdG9yJ3MgdHJhdmVyc2FsIGNhdGVnb3J5Cit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3IgPSBtcGw6Ol8xPgorc3RydWN0IGl0ZXJhdG9yX3RyYXZlcnNhbAorICA6IGl0ZXJhdG9yX2NhdGVnb3J5X3RvX3RyYXZlcnNhbDwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6aXRlcmF0b3JfY2F0ZWdvcnkKKyAgICA+Cit7fTsKKworIyBpZmRlZiBCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQKKy8vIEhhY2sgYmVjYXVzZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUIGRvZXNuJ3Qgc2VlbSB0byB3b3JrCisvLyBvdXQgd2VsbC4gIEluc3RhbnRpYXRpbmcgdGhlIG5lc3RlZCBhcHBseSB0ZW1wbGF0ZSBhbHNvCisvLyByZXF1aXJlcyBpbnN0YW50aWF0aW5nIGl0ZXJhdG9yX3RyYWl0cyBvbiB0aGUKKy8vIHBsYWNlaG9sZGVyLiBJbnN0ZWFkIHdlIGp1c3Qgc3BlY2lhbGl6ZSBpdCBhcyBhIG1ldGFmdW5jdGlvbgorLy8gY2xhc3MuCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGl0ZXJhdG9yX3RyYXZlcnNhbDxtcGw6Ol8xPgoreworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIHN0cnVjdCBhcHBseSA6IGl0ZXJhdG9yX3RyYXZlcnNhbDxUPgorICAgIHt9OworfTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXRlcmF0b3JfdHJhdmVyc2FsPG1wbDo6Xz4KKyAgOiBpdGVyYXRvcl90cmF2ZXJzYWw8bXBsOjpfMT4KK3t9OworIyBlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvZGV0YWlsL2NvbmZpZ191bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9JVEVSQVRPUl9DQVRFR09SSUVTX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jb25jZXB0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2NvbmNlcHRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODI2MTM1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jb25jZXB0cy5ocHAKQEAgLTAsMCArMSwyODQgQEAKKy8vIChDKSBDb3B5cmlnaHQgSmVyZW15IFNpZWsgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9JVEVSQVRPUl9DT05DRVBUU19IUFAKKyNkZWZpbmUgQk9PU1RfSVRFUkFUT1JfQ09OQ0VQVFNfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0X2NoZWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jYXRlZ29yaWVzLmhwcD4KKworLy8gVXNlIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0cyB0byB3b3JrIGFyb3VuZCBzb21lIE1TVkMvRGlua3Vtd2FyZSBwcm9ibGVtcy4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaXRlcmF0b3IuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL29yLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorCisvLyBVc2UgYm9vc3QvbGltaXRzIHRvIHdvcmsgYXJvdW5kIG1pc3NpbmcgbGltaXRzIGhlYWRlcnMgb24gc29tZSBjb21waWxlcnMKKyNpbmNsdWRlIDxuZG5ib29zdC9saW1pdHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25jZXB0L2RldGFpbC9jb25jZXB0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdF9jb25jZXB0cworeworICAvLyBVc2VkIGEgZGlmZmVyZW50IG5hbWVzcGFjZSBoZXJlIChpbnN0ZWFkIG9mICJib29zdCIpIHNvIHRoYXQgdGhlCisgIC8vIGNvbmNlcHQgZGVzY3JpcHRpb25zIGRvIG5vdCB0YWtlIGZvciBncmFudGVkIHRoZSBuYW1lcyBpbgorICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QuCisKKyAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgLy8gSXRlcmF0b3IgQWNjZXNzIENvbmNlcHRzCisKKyAgQk9PU1RfY29uY2VwdChSZWFkYWJsZUl0ZXJhdG9yLChJdGVyYXRvcikpCisgICAgOiBuZG5ib29zdDo6QXNzaWduYWJsZTxJdGVyYXRvcj4KKyAgICAsIG5kbmJvb3N0OjpDb3B5Q29uc3RydWN0aWJsZTxJdGVyYXRvcj4KKworICB7CisgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj46OnJlZmVyZW5jZSByZWZlcmVuY2U7CisKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoUmVhZGFibGVJdGVyYXRvcikKKyAgICAgIHsKKworICAgICAgICAgIHZhbHVlX3R5cGUgdiA9ICppOworICAgICAgICAgIG5kbmJvb3N0OjppZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcodik7CisgICAgICB9CisgIHByaXZhdGU6CisgICAgICBJdGVyYXRvciBpOworICB9OworICAKKyAgdGVtcGxhdGUgPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFZhbHVlVHlwZSA9IEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZQorICA+CisgIHN0cnVjdCBXcml0YWJsZUl0ZXJhdG9yCisgICAgOiBuZG5ib29zdDo6Q29weUNvbnN0cnVjdGlibGU8SXRlcmF0b3I+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoV3JpdGFibGVJdGVyYXRvcikKKyAgICAgIHsKKyAgICAgICAgICAqaSA9IHY7CisgICAgICB9CisgIHByaXZhdGU6CisgICAgICBWYWx1ZVR5cGUgdjsKKyAgICAgIEl0ZXJhdG9yIGk7CisgIH07CisKKyAgdGVtcGxhdGUgPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFZhbHVlVHlwZSA9IEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZQorICA+CisgIHN0cnVjdCBXcml0YWJsZUl0ZXJhdG9yQ29uY2VwdCA6IFdyaXRhYmxlSXRlcmF0b3I8SXRlcmF0b3IsVmFsdWVUeXBlPiB7fTsKKyAgCisgIEJPT1NUX2NvbmNlcHQoU3dhcHBhYmxlSXRlcmF0b3IsKEl0ZXJhdG9yKSkKKyAgeworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShTd2FwcGFibGVJdGVyYXRvcikKKyAgICAgIHsKKyAgICAgICAgICBzdGQ6Oml0ZXJfc3dhcChpMSwgaTIpOworICAgICAgfQorICBwcml2YXRlOgorICAgICAgSXRlcmF0b3IgaTE7CisgICAgICBJdGVyYXRvciBpMjsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KEx2YWx1ZUl0ZXJhdG9yLChJdGVyYXRvcikpCisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEx2YWx1ZUl0ZXJhdG9yKQorICAgICAgeworICAgICAgICB2YWx1ZV90eXBlJiByID0gY29uc3RfY2FzdDx2YWx1ZV90eXBlJj4oKmkpOworICAgICAgICBuZG5ib29zdDo6aWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIpOworICAgICAgfQorICBwcml2YXRlOgorICAgICAgSXRlcmF0b3IgaTsKKyAgfTsKKworICAKKyAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgLy8gSXRlcmF0b3IgVHJhdmVyc2FsIENvbmNlcHRzCisKKyAgQk9PU1RfY29uY2VwdChJbmNyZW1lbnRhYmxlSXRlcmF0b3IsKEl0ZXJhdG9yKSkKKyAgICA6IG5kbmJvb3N0OjpBc3NpZ25hYmxlPEl0ZXJhdG9yPgorICAgICwgbmRuYm9vc3Q6OkNvcHlDb25zdHJ1Y3RpYmxlPEl0ZXJhdG9yPgorICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjppdGVyYXRvcl90cmF2ZXJzYWw8SXRlcmF0b3I+Ojp0eXBlIHRyYXZlcnNhbF9jYXRlZ29yeTsKKworICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKAorICAgICAgICBuZG5ib29zdDo6Q29udmVydGlibGU8CisgICAgICAgICAgICB0cmF2ZXJzYWxfY2F0ZWdvcnkKKyAgICAgICAgICAsIG5kbmJvb3N0OjppbmNyZW1lbnRhYmxlX3RyYXZlcnNhbF90YWcKKyAgICAgICAgPikpOworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEluY3JlbWVudGFibGVJdGVyYXRvcikKKyAgICAgIHsKKyAgICAgICAgICArK2k7CisgICAgICAgICAgKHZvaWQpaSsrOworICAgICAgfQorICBwcml2YXRlOgorICAgICAgSXRlcmF0b3IgaTsKKyAgfTsKKworICBCT09TVF9jb25jZXB0KFNpbmdsZVBhc3NJdGVyYXRvciwoSXRlcmF0b3IpKQorICAgIDogSW5jcmVtZW50YWJsZUl0ZXJhdG9yPEl0ZXJhdG9yPgorICAgICwgbmRuYm9vc3Q6OkVxdWFsaXR5Q29tcGFyYWJsZTxJdGVyYXRvcj4KKworICB7CisgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgbmRuYm9vc3Q6OkNvbnZlcnRpYmxlPAorICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgU2luZ2xlUGFzc0l0ZXJhdG9yOjp0cmF2ZXJzYWxfY2F0ZWdvcnkKKyAgICAgICAgICAgLCBuZG5ib29zdDo6c2luZ2xlX3Bhc3NfdHJhdmVyc2FsX3RhZworICAgICAgICAgID4gKSk7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChGb3J3YXJkVHJhdmVyc2FsLChJdGVyYXRvcikpCisgICAgOiBTaW5nbGVQYXNzSXRlcmF0b3I8SXRlcmF0b3I+CisgICAgLCBuZG5ib29zdDo6RGVmYXVsdENvbnN0cnVjdGlibGU8SXRlcmF0b3I+CisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6ZGlmZmVyZW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgIAorICAgICAgQk9PU1RfTVBMX0FTU0VSVCgobmRuYm9vc3Q6OmlzX2ludGVncmFsPGRpZmZlcmVuY2VfdHlwZT4pKTsKKyAgICAgIEJPT1NUX01QTF9BU1NFUlRfUkVMQVRJT04oc3RkOjpudW1lcmljX2xpbWl0czxkaWZmZXJlbmNlX3R5cGU+Ojppc19zaWduZWQsID09LCB0cnVlKTsKKworICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKAorICAgICAgICAgIG5kbmJvb3N0OjpDb252ZXJ0aWJsZTwKKyAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEZvcndhcmRUcmF2ZXJzYWw6OnRyYXZlcnNhbF9jYXRlZ29yeQorICAgICAgICAgICAsIG5kbmJvb3N0Ojpmb3J3YXJkX3RyYXZlcnNhbF90YWcKKyAgICAgICAgICA+ICkpOworICB9OworICAKKyAgQk9PU1RfY29uY2VwdChCaWRpcmVjdGlvbmFsVHJhdmVyc2FsLChJdGVyYXRvcikpCisgICAgOiBGb3J3YXJkVHJhdmVyc2FsPEl0ZXJhdG9yPgorICB7CisgICAgICBCT09TVF9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgbmRuYm9vc3Q6OkNvbnZlcnRpYmxlPAorICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgQmlkaXJlY3Rpb25hbFRyYXZlcnNhbDo6dHJhdmVyc2FsX2NhdGVnb3J5CisgICAgICAgICAgICwgbmRuYm9vc3Q6OmJpZGlyZWN0aW9uYWxfdHJhdmVyc2FsX3RhZworICAgICAgICAgID4gKSk7CisKKyAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoQmlkaXJlY3Rpb25hbFRyYXZlcnNhbCkKKyAgICAgIHsKKyAgICAgICAgICAtLWk7CisgICAgICAgICAgKHZvaWQpaS0tOworICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIEl0ZXJhdG9yIGk7CisgIH07CisKKyAgQk9PU1RfY29uY2VwdChSYW5kb21BY2Nlc3NUcmF2ZXJzYWwsKEl0ZXJhdG9yKSkKKyAgICA6IEJpZGlyZWN0aW9uYWxUcmF2ZXJzYWw8SXRlcmF0b3I+CisgIHsKKyAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICBuZG5ib29zdDo6Q29udmVydGlibGU8CisgICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBSYW5kb21BY2Nlc3NUcmF2ZXJzYWw6OnRyYXZlcnNhbF9jYXRlZ29yeQorICAgICAgICAgICAsIG5kbmJvb3N0OjpyYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcKKyAgICAgICAgICA+ICkpOworCisgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKFJhbmRvbUFjY2Vzc1RyYXZlcnNhbCkKKyAgICAgIHsKKyAgICAgICAgICBpICs9IG47CisgICAgICAgICAgaSA9IGkgKyBuOworICAgICAgICAgIGkgPSBuICsgaTsKKyAgICAgICAgICBpIC09IG47CisgICAgICAgICAgaSA9IGkgLSBuOworICAgICAgICAgIG4gPSBpIC0gajsKKyAgICAgIH0KKyAgICAgIAorICAgcHJpdmF0ZToKKyAgICAgIHR5cGVuYW1lIEJpZGlyZWN0aW9uYWxUcmF2ZXJzYWw8SXRlcmF0b3I+OjpkaWZmZXJlbmNlX3R5cGUgbjsKKyAgICAgIEl0ZXJhdG9yIGksIGo7CisgIH07CisKKyAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgLy8gSXRlcmF0b3IgSW50ZXJvcGVyYWJpbGl0eSAKKworICBuYW1lc3BhY2UgZGV0YWlsCisgIHsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlcmF0b3IxLCB0eXBlbmFtZSBJdGVyYXRvcjI+CisgICAgdm9pZCBpbnRlcm9wX3NpbmdsZV9wYXNzX2NvbnN0cmFpbnRzKEl0ZXJhdG9yMSBjb25zdCYgaTEsIEl0ZXJhdG9yMiBjb25zdCYgaTIpCisgICAgeworICAgICAgICBib29sIGI7CisgICAgICAgIGIgPSBpMSA9PSBpMjsKKyAgICAgICAgYiA9IGkxICE9IGkyOworCisgICAgICAgIGIgPSBpMiA9PSBpMTsKKyAgICAgICAgYiA9IGkyICE9IGkxOworICAgICAgICBuZG5ib29zdDo6aWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGIpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcjEsIHR5cGVuYW1lIEl0ZXJhdG9yMj4KKyAgICB2b2lkIGludGVyb3BfcmFuZF9hY2Nlc3NfY29uc3RyYWludHMoCisgICAgICAgIEl0ZXJhdG9yMSBjb25zdCYgaTEsIEl0ZXJhdG9yMiBjb25zdCYgaTIsCisgICAgICAgIG5kbmJvb3N0OjpyYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcsIG5kbmJvb3N0OjpyYW5kb21fYWNjZXNzX3RyYXZlcnNhbF90YWcpCisgICAgeworICAgICAgICBib29sIGI7CisgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcjI+OjpkaWZmZXJlbmNlX3R5cGUgbjsKKyAgICAgICAgYiA9IGkxIDwgIGkyOworICAgICAgICBiID0gaTEgPD0gaTI7CisgICAgICAgIGIgPSBpMSA+ICBpMjsKKyAgICAgICAgYiA9IGkxID49IGkyOworICAgICAgICBuID0gaTEgLSAgaTI7CisKKyAgICAgICAgYiA9IGkyIDwgIGkxOworICAgICAgICBiID0gaTIgPD0gaTE7CisgICAgICAgIGIgPSBpMiA+ICBpMTsKKyAgICAgICAgYiA9IGkyID49IGkxOworICAgICAgICBuID0gaTIgLSAgaTE7CisgICAgICAgIG5kbmJvb3N0OjppZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoYik7CisgICAgICAgIG5kbmJvb3N0OjppZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcobik7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEl0ZXJhdG9yMSwgdHlwZW5hbWUgSXRlcmF0b3IyPgorICAgIHZvaWQgaW50ZXJvcF9yYW5kX2FjY2Vzc19jb25zdHJhaW50cygKKyAgICAgICAgSXRlcmF0b3IxIGNvbnN0JiwgSXRlcmF0b3IyIGNvbnN0JiwKKyAgICAgICAgbmRuYm9vc3Q6OnNpbmdsZV9wYXNzX3RyYXZlcnNhbF90YWcsIG5kbmJvb3N0OjpzaW5nbGVfcGFzc190cmF2ZXJzYWxfdGFnKQorICAgIHsgfQorCisgIH0gLy8gbmFtZXNwYWNlIGRldGFpbAorCisgIEJPT1NUX2NvbmNlcHQoSW50ZXJvcGVyYWJsZUl0ZXJhdG9yLChJdGVyYXRvcikoQ29uc3RJdGVyYXRvcikpCisgIHsKKyAgIHByaXZhdGU6CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnB1cmVfdHJhdmVyc2FsX3RhZzwKKyAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6aXRlcmF0b3JfdHJhdmVyc2FsPAorICAgICAgICAgICAgICBJdGVyYXRvcgorICAgICAgICAgID46OnR5cGUKKyAgICAgID46OnR5cGUgdHJhdmVyc2FsX2NhdGVnb3J5OworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnB1cmVfdHJhdmVyc2FsX3RhZzwKKyAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6aXRlcmF0b3JfdHJhdmVyc2FsPAorICAgICAgICAgICAgICBDb25zdEl0ZXJhdG9yCisgICAgICAgICAgPjo6dHlwZQorICAgICAgPjo6dHlwZSBjb25zdF90cmF2ZXJzYWxfY2F0ZWdvcnk7CisgICAgICAKKyAgcHVibGljOgorICAgICAgQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKFNpbmdsZVBhc3NJdGVyYXRvcjxJdGVyYXRvcj4pKTsKKyAgICAgIEJPT1NUX0NPTkNFUFRfQVNTRVJUKChTaW5nbGVQYXNzSXRlcmF0b3I8Q29uc3RJdGVyYXRvcj4pKTsKKworICAgICAgQk9PU1RfQ09OQ0VQVF9VU0FHRShJbnRlcm9wZXJhYmxlSXRlcmF0b3IpCisgICAgICB7CisgICAgICAgICAgZGV0YWlsOjppbnRlcm9wX3NpbmdsZV9wYXNzX2NvbnN0cmFpbnRzKGksIGNpKTsKKyAgICAgICAgICBkZXRhaWw6OmludGVyb3BfcmFuZF9hY2Nlc3NfY29uc3RyYWludHMoaSwgY2ksIHRyYXZlcnNhbF9jYXRlZ29yeSgpLCBjb25zdF90cmF2ZXJzYWxfY2F0ZWdvcnkoKSk7CisKKyAgICAgICAgICBjaSA9IGk7CisgICAgICB9CisgICAgICAKKyAgIHByaXZhdGU6CisgICAgICBJdGVyYXRvciAgICAgIGk7CisgICAgICBDb25zdEl0ZXJhdG9yIGNpOworICB9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdF9jb25jZXB0cworCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdC9kZXRhaWwvY29uY2VwdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9JVEVSQVRPUl9DT05DRVBUU19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfZmFjYWRlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfZmFjYWRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjFmM2FkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9mYWNhZGUuaHBwCkBAIC0wLDAgKzEsODc0IEBACisvLyAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuCisvLyAoQykgQ29weXJpZ2h0IEplcmVteSBTaWVrICAgIDIwMDIuCisvLyAoQykgQ29weXJpZ2h0IFRob21hcyBXaXR0ICAgIDIwMDIuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV8yMzAyMjAwM1RIV19IUFAKKyNkZWZpbmUgQk9PU1RfSVRFUkFUT1JfRkFDQURFXzIzMDIyMDAzVEhXX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2ludGVyb3BlcmFibGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX3RyYWl0cy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvZmFjYWRlX2l0ZXJhdG9yX2NhdGVnb3J5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9kZXRhaWwvZW5hYmxlX2lmLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvYWRkcmVzc29mLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZXZhbF9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hbHdheXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfZGVmLmhwcD4gLy8gdGhpcyBnb2VzIGxhc3QKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgIC8vIFRoaXMgZm9yd2FyZCBkZWNsYXJhdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhlIGZyaWVuZCBkZWNsYXJhdGlvbgorICAvLyBpbiBpdGVyYXRvcl9jb3JlX2FjY2VzcworICB0ZW1wbGF0ZSA8Y2xhc3MgSSwgY2xhc3MgViwgY2xhc3MgVEMsIGNsYXNzIFIsIGNsYXNzIEQ+IGNsYXNzIGl0ZXJhdG9yX2ZhY2FkZTsKKworICBuYW1lc3BhY2UgZGV0YWlsCisgIHsKKyAgICAvLyBBIGJpbmFyeSBtZXRhZnVuY3Rpb24gY2xhc3MgdGhhdCBhbHdheXMgcmV0dXJucyBib29sLiAgVkM2CisgICAgLy8gSUNFcyBvbiBtcGw6OmFsd2F5czxib29sPiwgcHJvYmFibHkgYmVjYXVzZSBvZiB0aGUgZGVmYXVsdAorICAgIC8vIHBhcmFtZXRlcnMuCisgICAgc3RydWN0IGFsd2F5c19ib29sMgorICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICAgICAgIHN0cnVjdCBhcHBseQorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGJvb2wgdHlwZTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgLy8KKyAgICAvLyBlbmFibGUgaWYgZm9yIHVzZSBpbiBvcGVyYXRvciBpbXBsZW1lbnRhdGlvbi4KKyAgICAvLworICAgIHRlbXBsYXRlIDwKKyAgICAgICAgY2xhc3MgRmFjYWRlMQorICAgICAgLCBjbGFzcyBGYWNhZGUyCisgICAgICAsIGNsYXNzIFJldHVybgorICAgID4KKyAgICBzdHJ1Y3QgZW5hYmxlX2lmX2ludGVyb3BlcmFibGUKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgICAgbXBsOjpvcl88CisgICAgICAgICAgICAgICAgaXNfY29udmVydGlibGU8RmFjYWRlMSwgRmFjYWRlMj4KKyAgICAgICAgICAgICAgLCBpc19jb252ZXJ0aWJsZTxGYWNhZGUyLCBGYWNhZGUxPgorICAgICAgICAgICAgPgorICAgICAgICAgICwgUmV0dXJuCisgICAgICAgICAgLCBpbnRbM10KKyAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07ICAgICAgICAKKyNlbHNlCisgICAgICA6IDo6bmRuYm9vc3Q6Oml0ZXJhdG9yczo6ZW5hYmxlX2lmPAorICAgICAgICAgICBtcGw6Om9yXzwKKyAgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPEZhY2FkZTEsIEZhY2FkZTI+CisgICAgICAgICAgICAgLCBpc19jb252ZXJ0aWJsZTxGYWNhZGUyLCBGYWNhZGUxPgorICAgICAgICAgICA+CisgICAgICAgICAsIFJldHVybgorICAgICAgICA+CisgICAge307CisjZW5kaWYgCisKKyAgICAvLworICAgIC8vIEdlbmVyYXRlcyBhc3NvY2lhdGVkIHR5cGVzIGZvciBhbiBpdGVyYXRvcl9mYWNhZGUgd2l0aCB0aGUKKyAgICAvLyBnaXZlbiBwYXJhbWV0ZXJzLgorICAgIC8vCisgICAgdGVtcGxhdGUgPAorICAgICAgICBjbGFzcyBWYWx1ZVBhcmFtCisgICAgICAsIGNsYXNzIENhdGVnb3J5T3JUcmF2ZXJzYWwKKyAgICAgICwgY2xhc3MgUmVmZXJlbmNlIAorICAgICAgLCBjbGFzcyBEaWZmZXJlbmNlCisgICAgPgorICAgIHN0cnVjdCBpdGVyYXRvcl9mYWNhZGVfdHlwZXMKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZmFjYWRlX2l0ZXJhdG9yX2NhdGVnb3J5PAorICAgICAgICAgICAgQ2F0ZWdvcnlPclRyYXZlcnNhbCwgVmFsdWVQYXJhbSwgUmVmZXJlbmNlCisgICAgICAgID46OnR5cGUgaXRlcmF0b3JfY2F0ZWdvcnk7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jb25zdDxWYWx1ZVBhcmFtPjo6dHlwZSB2YWx1ZV90eXBlOworICAgICAgICAKKyAgICAgICAgLy8gTm90IHRoZSByZWFsIGFzc29jaWF0ZWQgcG9pbnRlciB0eXBlCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3Jfd3JpdGFiaWxpdHlfZGlzYWJsZWQ8VmFsdWVQYXJhbSxSZWZlcmVuY2U+CisgICAgICAgICAgLCBhZGRfcG9pbnRlcjxjb25zdCB2YWx1ZV90eXBlPgorICAgICAgICAgICwgYWRkX3BvaW50ZXI8dmFsdWVfdHlwZT4KKyAgICAgICAgPjo6dHlwZSBwb2ludGVyOworICAgICAgCisjIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAmJiAoQk9PU1RfV09SS0FST1VORChfU1RMUE9SVF9WRVJTSU9OLCBCT09TVF9URVNURURfQVQoMHg0NTIpKSAgICAgICAgICAgICAgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX0RJTktVTVdBUkVfU1RETElCLCBCT09TVF9URVNURURfQVQoMzEwKSkpICAgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChCT09TVF9SV1NURF9WRVIsIEJPT1NUX1RFU1RFRF9BVCgweDIwMTAxKSkgICAgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX0RJTktVTVdBUkVfU1RETElCLCA8PSAzMTApCisKKyAgICAgICAgLy8gVG8gaW50ZXJvcGVyYXRlIHdpdGggc29tZSBicm9rZW4gbGlicmFyeS9jb21waWxlcgorICAgICAgICAvLyBjb21iaW5hdGlvbnMsIHVzZXItZGVmaW5lZCBpdGVyYXRvcnMgbXVzdCBiZSBkZXJpdmVkIGZyb20KKyAgICAgICAgLy8gc3RkOjppdGVyYXRvci4gIEl0IGlzIHBvc3NpYmxlIHRvIGltcGxlbWVudCBhIHN0YW5kYXJkCisgICAgICAgIC8vIGxpYnJhcnkgZm9yIGJyb2tlbiBjb21waWxlcnMgd2l0aG91dCB0aGlzIGxpbWl0YXRpb24uCisjICBkZWZpbmUgQk9PU1RfSVRFUkFUT1JfRkFDQURFX05FRURTX0lURVJBVE9SX0JBU0UgMQorCisgICAgICAgIHR5cGVkZWYKKyAgICAgICAgICAgaXRlcmF0b3I8aXRlcmF0b3JfY2F0ZWdvcnksIHZhbHVlX3R5cGUsIERpZmZlcmVuY2UsIHBvaW50ZXIsIFJlZmVyZW5jZT4KKyAgICAgICAgYmFzZTsKKyMgZW5kaWYKKyAgICB9OworCisgICAgLy8gaXRlcmF0b3JzIHdob3NlIGRlcmVmZXJlbmNlIG9wZXJhdG9ycyByZWZlcmVuY2UgdGhlIHNhbWUgdmFsdWUKKyAgICAvLyBmb3IgYWxsIGl0ZXJhdG9ycyBpbnRvIHRoZSBzYW1lIHNlcXVlbmNlIChsaWtlIG1hbnkgaW5wdXQKKyAgICAvLyBpdGVyYXRvcnMpIG5lZWQgaGVscCB3aXRoIHRoZWlyIHBvc3RmaXggKys6IHRoZSByZWZlcmVuY2VkCisgICAgLy8gdmFsdWUgbXVzdCBiZSByZWFkIGFuZCBzdG9yZWQgYXdheSBiZWZvcmUgdGhlIGluY3JlbWVudCBvY2N1cnMKKyAgICAvLyBzbyB0aGF0ICphKysgeWllbGRzIHRoZSBvcmlnaW5hbGx5IHJlZmVyZW5jZWQgZWxlbWVudCBhbmQgbm90CisgICAgLy8gdGhlIG5leHQgb25lLgorICAgIHRlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KKyAgICBjbGFzcyBwb3N0Zml4X2luY3JlbWVudF9wcm94eQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyYXRvcl92YWx1ZTxJdGVyYXRvcj46OnR5cGUgdmFsdWVfdHlwZTsKKyAgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBwb3N0Zml4X2luY3JlbWVudF9wcm94eShJdGVyYXRvciBjb25zdCYgeCkKKyAgICAgICAgICA6IHN0b3JlZF92YWx1ZSgqeCkKKyAgICAgICAge30KKworICAgICAgICAvLyBSZXR1cm5pbmcgYSBtdXRhYmxlIHJlZmVyZW5jZSBhbGxvd3Mgbm9uc2Vuc2UgbGlrZQorICAgICAgICAvLyAoKnIrKykubXV0YXRlKCksIGJ1dCBpdCBpbXBvc2VzIGZld2VyIGFzc3VtcHRpb25zIGFib3V0IHRoZQorICAgICAgICAvLyBiZWhhdmlvciBvZiB0aGUgdmFsdWVfdHlwZS4gIEluIHBhcnRpY3VsYXIsIHJlY2FsbCB0aGF0CisgICAgICAgIC8vICgqcikubXV0YXRlKCkgaXMgbGVnYWwgaWYgb3BlcmF0b3IqIHJldHVybnMgYnkgdmFsdWUuCisgICAgICAgIHZhbHVlX3R5cGUmCisgICAgICAgIG9wZXJhdG9yKigpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLT5zdG9yZWRfdmFsdWU7CisgICAgICAgIH0KKyAgICAgcHJpdmF0ZToKKyAgICAgICAgbXV0YWJsZSB2YWx1ZV90eXBlIHN0b3JlZF92YWx1ZTsKKyAgICB9OworICAgIAorICAgIC8vCisgICAgLy8gSW4gZ2VuZXJhbCwgd2UgY2FuJ3QgZGV0ZXJtaW5lIHRoYXQgc3VjaCBhbiBpdGVyYXRvciBpc24ndAorICAgIC8vIHdyaXRhYmxlIC0tIHdlIGFsc28gbmVlZCB0byBzdG9yZSBhIGNvcHkgb2YgdGhlIG9sZCBpdGVyYXRvciBzbworICAgIC8vIHRoYXQgaXQgY2FuIGJlIHdyaXR0ZW4gaW50by4KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CisgICAgY2xhc3Mgd3JpdGFibGVfcG9zdGZpeF9pbmNyZW1lbnRfcHJveHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcmF0b3JfdmFsdWU8SXRlcmF0b3I+Ojp0eXBlIHZhbHVlX3R5cGU7CisgICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgd3JpdGFibGVfcG9zdGZpeF9pbmNyZW1lbnRfcHJveHkoSXRlcmF0b3IgY29uc3QmIHgpCisgICAgICAgICAgOiBzdG9yZWRfdmFsdWUoKngpCisgICAgICAgICAgLCBzdG9yZWRfaXRlcmF0b3IoeCkKKyAgICAgICAge30KKworICAgICAgICAvLyBEZXJlZmVyZW5jaW5nIG11c3QgcmV0dXJuIGEgcHJveHkgc28gdGhhdCBib3RoICpyKysgPSBvIGFuZAorICAgICAgICAvLyB2YWx1ZV90eXBlKCpyKyspIGNhbiB3b3JrLiAgSW4gdGhpcyBjYXNlLCAqciBpcyB0aGUgc2FtZSBhcworICAgICAgICAvLyAqcisrLCBhbmQgdGhlIGNvbnZlcnNpb24gb3BlcmF0b3IgYmVsb3cgaXMgdXNlZCB0byBlbnN1cmUKKyAgICAgICAgLy8gcmVhZGFiaWxpdHkuCisgICAgICAgIHdyaXRhYmxlX3Bvc3RmaXhfaW5jcmVtZW50X3Byb3h5IGNvbnN0JgorICAgICAgICBvcGVyYXRvciooKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm92aWRlcyByZWFkYWJpbGl0eSBvZiAqcisrCisgICAgICAgIG9wZXJhdG9yIHZhbHVlX3R5cGUmKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHN0b3JlZF92YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFByb3ZpZGVzIHdyaXRhYmlsaXR5IG9mICpyKysKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIFQgY29uc3QmIG9wZXJhdG9yPShUIGNvbnN0JiB4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICAqdGhpcy0+c3RvcmVkX2l0ZXJhdG9yID0geDsKKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBvdmVybG9hZCBqdXN0IGluIGNhc2Ugb25seSBub24tY29uc3Qgb2JqZWN0cyBhcmUgd3JpdGFibGUKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIFQmIG9wZXJhdG9yPShUJiB4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICAqdGhpcy0+c3RvcmVkX2l0ZXJhdG9yID0geDsKKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICB9CisKKyAgICAgICAgLy8gUHJvdmlkZXMgWChyKyspCisgICAgICAgIG9wZXJhdG9yIEl0ZXJhdG9yIGNvbnN0JigpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdG9yZWRfaXRlcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgIHByaXZhdGU6CisgICAgICAgIG11dGFibGUgdmFsdWVfdHlwZSBzdG9yZWRfdmFsdWU7CisgICAgICAgIEl0ZXJhdG9yIHN0b3JlZF9pdGVyYXRvcjsKKyAgICB9OworCisjIGlmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworICAgIHRlbXBsYXRlIDxjbGFzcyBSZWZlcmVuY2UsIGNsYXNzIFZhbHVlPgorICAgIHN0cnVjdCBpc19ub25fcHJveHlfcmVmZXJlbmNlX2ltcGwKKyAgICB7CisgICAgICAgIHN0YXRpYyBSZWZlcmVuY2UgcjsKKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBSPgorICAgICAgICBzdGF0aWMgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgICBpc19jb252ZXJ0aWJsZTwKKyAgICAgICAgICAgICAgICBSIGNvbnN0IHZvbGF0aWxlKgorICAgICAgICAgICAgICAsIFZhbHVlIGNvbnN0IHZvbGF0aWxlKgorICAgICAgICAgICAgPgorICAgICAgICAgICwgY2hhclsxXQorICAgICAgICAgICwgY2hhclsyXQorICAgICAgICA+Ojp0eXBlJiBoZWxwZXIoUiBjb25zdCYpOworICAgICAgICAKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gc2l6ZW9mKGhlbHBlcihyKSkgPT0gMSk7CisgICAgfTsKKyAgICAgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIFJlZmVyZW5jZSwgY2xhc3MgVmFsdWU+CisgICAgc3RydWN0IGlzX25vbl9wcm94eV9yZWZlcmVuY2UKKyAgICAgIDogbXBsOjpib29sXzwKKyAgICAgICAgICAgIGlzX25vbl9wcm94eV9yZWZlcmVuY2VfaW1wbDxSZWZlcmVuY2UsIFZhbHVlPjo6dmFsdWUKKyAgICAgICAgPgorICAgIHt9OworIyBlbHNlIAorICAgIHRlbXBsYXRlIDxjbGFzcyBSZWZlcmVuY2UsIGNsYXNzIFZhbHVlPgorICAgIHN0cnVjdCBpc19ub25fcHJveHlfcmVmZXJlbmNlCisgICAgICA6IGlzX2NvbnZlcnRpYmxlPAorICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxSZWZlcmVuY2U+Ojp0eXBlCisgICAgICAgICAgICBjb25zdCB2b2xhdGlsZSoKKyAgICAgICAgICAsIFZhbHVlIGNvbnN0IHZvbGF0aWxlKgorICAgICAgICA+CisgICAge307CisjIGVuZGlmIAorICAgICAgICAKKyAgICAvLyBBIG1ldGFmdW5jdGlvbiB0byBjaG9vc2UgdGhlIHJlc3VsdCB0eXBlIG9mIHBvc3RmaXggKysKKyAgICAvLworICAgIC8vIEJlY2F1c2UgdGhlIEMrKzk4IGlucHV0IGl0ZXJhdG9yIHJlcXVpcmVtZW50cyBzYXkgdGhhdCAqcisrIGhhcworICAgIC8vIHR5cGUgVCAodmFsdWVfdHlwZSksIGltcGxlbWVudGF0aW9ucyBvZiBzb21lIHN0YW5kYXJkCisgICAgLy8gYWxnb3JpdGhtcyBsaWtlIGxleGljb2dyYXBoaWNhbF9jb21wYXJlIG1heSB1c2UgY29uc3RydWN0aW9ucworICAgIC8vIGxpa2U6CisgICAgLy8KKyAgICAvLyAgICAgICAgICAqcisrIDwgKnMrKworICAgIC8vCisgICAgLy8gSWYgKnIrKyByZXR1cm5zIGEgcHJveHkgKGFzIHJlcXVpcmVkIGlmIHIgaXMgd3JpdGFibGUgYnV0IG5vdAorICAgIC8vIG11bHRpcGFzcyksIHRoaXMgc29ydCBvZiBleHByZXNzaW9uIHdpbGwgZmFpbCB1bmxlc3MgdGhlIHByb3h5CisgICAgLy8gc3VwcG9ydHMgdGhlIG9wZXJhdG9yPC4gIFNpbmNlIHRoZXJlIGFyZSBhbnkgbnVtYmVyIG9mIHN1Y2gKKyAgICAvLyBvcGVyYXRpb25zLCB3ZSdyZSBub3QgZ29pbmcgdG8gdHJ5IHRvIHN1cHBvcnQgdGhlbS4gIFRoZXJlZm9yZSwKKyAgICAvLyBldmVuIGlmIHIrKyByZXR1cm5zIGEgcHJveHksICpyKysgd2lsbCBvbmx5IHJldHVybiBhIHByb3h5IGlmCisgICAgLy8gKnIgYWxzbyByZXR1cm5zIGEgcHJveHkuCisgICAgdGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yLCBjbGFzcyBWYWx1ZSwgY2xhc3MgUmVmZXJlbmNlLCBjbGFzcyBDYXRlZ29yeU9yVHJhdmVyc2FsPgorICAgIHN0cnVjdCBwb3N0Zml4X2luY3JlbWVudF9yZXN1bHQKKyAgICAgIDogbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgbXBsOjphbmRfPAorICAgICAgICAgICAgICAgIC8vIEEgcHJveHkgaXMgb25seSBuZWVkZWQgZm9yIHJlYWRhYmxlIGl0ZXJhdG9ycworICAgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPFJlZmVyZW5jZSxWYWx1ZSBjb25zdCY+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTm8gbXVsdGlwYXNzIGl0ZXJhdG9yIGNhbiBoYXZlIHZhbHVlcyB0aGF0IGRpc2FwcGVhcgorICAgICAgICAgICAgICAgIC8vIGJlZm9yZSBwb3NpdGlvbnMgY2FuIGJlIHJlLXZpc2l0ZWQKKyAgICAgICAgICAgICAgLCBtcGw6Om5vdF88CisgICAgICAgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgaXRlcmF0b3JfY2F0ZWdvcnlfdG9fdHJhdmVyc2FsPENhdGVnb3J5T3JUcmF2ZXJzYWw+Ojp0eXBlCisgICAgICAgICAgICAgICAgICAgICAgLCBmb3J3YXJkX3RyYXZlcnNhbF90YWcKKyAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgID4KKyAgICAgICAgICAsIG1wbDo6aWZfPAorICAgICAgICAgICAgICAgIGlzX25vbl9wcm94eV9yZWZlcmVuY2U8UmVmZXJlbmNlLFZhbHVlPgorICAgICAgICAgICAgICAsIHBvc3RmaXhfaW5jcmVtZW50X3Byb3h5PEl0ZXJhdG9yPgorICAgICAgICAgICAgICAsIHdyaXRhYmxlX3Bvc3RmaXhfaW5jcmVtZW50X3Byb3h5PEl0ZXJhdG9yPgorICAgICAgICAgICAgPgorICAgICAgICAgICwgbXBsOjppZGVudGl0eTxJdGVyYXRvcj4KKyAgICAgICAgPgorICAgIHt9OworCisgICAgLy8gb3BlcmF0b3ItPigpIG5lZWRzIHNwZWNpYWwgc3VwcG9ydCBmb3IgaW5wdXQgaXRlcmF0b3JzIHRvIHN0cmljdGx5IG1lZXQgdGhlCisgICAgLy8gc3RhbmRhcmQncyByZXF1aXJlbWVudHMuIElmICppIGlzIG5vdCBhIHJlZmVyZW5jZSB0eXBlLCB3ZSBtdXN0IHN0aWxsCisgICAgLy8gcHJvZHVjZSBhbiBsdmFsdWUgdG8gd2hpY2ggYSBwb2ludGVyIGNhbiBiZSBmb3JtZWQuICBXZSBkbyB0aGF0IGJ5CisgICAgLy8gcmV0dXJuaW5nIGEgcHJveHkgb2JqZWN0IGNvbnRhaW5pbmcgYW4gaW5zdGFuY2Ugb2YgdGhlIHJlZmVyZW5jZSBvYmplY3QuCisgICAgdGVtcGxhdGUgPGNsYXNzIFJlZmVyZW5jZSwgY2xhc3MgUG9pbnRlcj4KKyAgICBzdHJ1Y3Qgb3BlcmF0b3JfYXJyb3dfZGlzcGF0Y2ggLy8gcHJveHkgcmVmZXJlbmNlcworICAgIHsKKyAgICAgICAgc3RydWN0IHByb3h5CisgICAgICAgIHsKKyAgICAgICAgICAgIGV4cGxpY2l0IHByb3h5KFJlZmVyZW5jZSBjb25zdCAmIHgpIDogbV9yZWYoeCkge30KKyAgICAgICAgICAgIFJlZmVyZW5jZSogb3BlcmF0b3ItPigpIHsgcmV0dXJuIG5kbmJvb3N0OjphZGRyZXNzb2YobV9yZWYpOyB9CisgICAgICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG5lZWRlZCBmb3IgTVdDVyBhbmQgQkNDLCB3aGljaCB3b24ndCBjYWxsCisgICAgICAgICAgICAvLyBvcGVyYXRvci0+IGFnYWluIGF1dG9tYXRpY2FsbHkgcGVyIDEzLjMuMS4yIHBhcmEgOAorICAgICAgICAgICAgb3BlcmF0b3IgUmVmZXJlbmNlKigpIHsgcmV0dXJuIG5kbmJvb3N0OjphZGRyZXNzb2YobV9yZWYpOyB9CisgICAgICAgICAgICBSZWZlcmVuY2UgbV9yZWY7CisgICAgICAgIH07CisgICAgICAgIHR5cGVkZWYgcHJveHkgcmVzdWx0X3R5cGU7CisgICAgICAgIHN0YXRpYyByZXN1bHRfdHlwZSBhcHBseShSZWZlcmVuY2UgY29uc3QgJiB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0X3R5cGUoeCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvaW50ZXI+CisgICAgc3RydWN0IG9wZXJhdG9yX2Fycm93X2Rpc3BhdGNoPFQmLCBQb2ludGVyPiAvLyAicmVhbCIgcmVmZXJlbmNlcworICAgIHsKKyAgICAgICAgdHlwZWRlZiBQb2ludGVyIHJlc3VsdF90eXBlOworICAgICAgICBzdGF0aWMgcmVzdWx0X3R5cGUgYXBwbHkoVCYgeCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjphZGRyZXNzb2YoeCk7CisgICAgICAgIH0KKyAgICB9OworCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgIC8vIERlYWwgd2l0aCBFVEkKKyAgICB0ZW1wbGF0ZTw+CisgICAgc3RydWN0IG9wZXJhdG9yX2Fycm93X2Rpc3BhdGNoPGludCwgaW50PgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgcmVzdWx0X3R5cGU7CisgICAgfTsKKyMgZW5kaWYKKworICAgIC8vIEEgcHJveHkgcmV0dXJuIHR5cGUgZm9yIG9wZXJhdG9yW10sIG5lZWRlZCB0byBkZWFsIHdpdGgKKyAgICAvLyBpdGVyYXRvcnMgdGhhdCBtYXkgaW52YWxpZGF0ZSByZWZlcmVudHMgdXBvbiBkZXN0cnVjdGlvbi4KKyAgICAvLyBDb25zaWRlciB0aGUgdGVtcG9yYXJ5IGl0ZXJhdG9yIGluICooYSArIG4pCisgICAgdGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yPgorICAgIGNsYXNzIG9wZXJhdG9yX2JyYWNrZXRzX3Byb3h5CisgICAgeworICAgICAgICAvLyBJdGVyYXRvciBpcyBhY3R1YWxseSBhbiBpdGVyYXRvcl9mYWNhZGUsIHNvIHdlIGRvIG5vdCBoYXZlIHRvCisgICAgICAgIC8vIGdvIHRocm91Z2ggaXRlcmF0b3JfdHJhaXRzIHRvIGFjY2VzcyB0aGUgdHJhaXRzLgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yOjpyZWZlcmVuY2UgIHJlZmVyZW5jZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgb3BlcmF0b3JfYnJhY2tldHNfcHJveHkoSXRlcmF0b3IgY29uc3QmIGl0ZXIpCisgICAgICAgICAgOiBtX2l0ZXIoaXRlcikKKyAgICAgICAge30KKworICAgICAgICBvcGVyYXRvciByZWZlcmVuY2UoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKm1faXRlcjsKKyAgICAgICAgfQorCisgICAgICAgIG9wZXJhdG9yX2JyYWNrZXRzX3Byb3h5JiBvcGVyYXRvcj0odmFsdWVfdHlwZSBjb25zdCYgdmFsKQorICAgICAgICB7CisgICAgICAgICAgICAqbV9pdGVyID0gdmFsOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgSXRlcmF0b3IgbV9pdGVyOworICAgIH07CisKKyAgICAvLyBBIG1ldGFmdW5jdGlvbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBvcGVyYXRvcltdIG11c3QgcmV0dXJuIGEKKyAgICAvLyBwcm94eSwgb3Igd2hldGhlciBpdCBjYW4gc2ltcGx5IHJldHVybiBhIGNvcHkgb2YgdGhlIHZhbHVlX3R5cGUuCisgICAgdGVtcGxhdGUgPGNsYXNzIFZhbHVlVHlwZSwgY2xhc3MgUmVmZXJlbmNlPgorICAgIHN0cnVjdCB1c2Vfb3BlcmF0b3JfYnJhY2tldHNfcHJveHkKKyAgICAgIDogbXBsOjpub3RfPAorICAgICAgICAgICAgbXBsOjphbmRfPAorICAgICAgICAgICAgICAgIC8vIFJlYWxseSB3ZSB3YW50IGFuIGlzX2NvcHlfY29uc3RydWN0aWJsZSB0cmFpdCBoZXJlLAorICAgICAgICAgICAgICAgIC8vIGJ1dCBpc19QT0Qgd2lsbCBoYXZlIHRvIHN1ZmZpY2UgaW4gdGhlIG1lYW50aW1lLgorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19QT0Q8VmFsdWVUeXBlPgorICAgICAgICAgICAgICAsIGl0ZXJhdG9yX3dyaXRhYmlsaXR5X2Rpc2FibGVkPFZhbHVlVHlwZSxSZWZlcmVuY2U+CisgICAgICAgICAgICA+CisgICAgICAgID4KKyAgICB7fTsKKyAgICAgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yLCBjbGFzcyBWYWx1ZSwgY2xhc3MgUmVmZXJlbmNlPgorICAgIHN0cnVjdCBvcGVyYXRvcl9icmFja2V0c19yZXN1bHQKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgICB1c2Vfb3BlcmF0b3JfYnJhY2tldHNfcHJveHk8VmFsdWUsUmVmZXJlbmNlPgorICAgICAgICAgICwgb3BlcmF0b3JfYnJhY2tldHNfcHJveHk8SXRlcmF0b3I+CisgICAgICAgICAgLCBWYWx1ZQorICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KKyAgICBvcGVyYXRvcl9icmFja2V0c19wcm94eTxJdGVyYXRvcj4gbWFrZV9vcGVyYXRvcl9icmFja2V0c19yZXN1bHQoSXRlcmF0b3IgY29uc3QmIGl0ZXIsIG1wbDo6dHJ1ZV8pCisgICAgeworICAgICAgICByZXR1cm4gb3BlcmF0b3JfYnJhY2tldHNfcHJveHk8SXRlcmF0b3I+KGl0ZXIpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KKyAgICB0eXBlbmFtZSBJdGVyYXRvcjo6dmFsdWVfdHlwZSBtYWtlX29wZXJhdG9yX2JyYWNrZXRzX3Jlc3VsdChJdGVyYXRvciBjb25zdCYgaXRlciwgbXBsOjpmYWxzZV8pCisgICAgeworICAgICAgcmV0dXJuICppdGVyOworICAgIH0KKworICAgIHN0cnVjdCBjaG9vc2VfZGlmZmVyZW5jZV90eXBlCisgICAgeworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgSTEsIGNsYXNzIEkyPgorICAgICAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgICA6CisjIGlmZGVmIEJPT1NUX05PX09ORV9XQVlfSVRFUkFUT1JfSU5URVJPUAorICAgICAgICAgIGl0ZXJhdG9yX2RpZmZlcmVuY2U8STE+CisjIGVsaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgICAgICAgbXBsOjppZl88CisgICAgICAgICAgICAgIGlzX2NvbnZlcnRpYmxlPEkyLEkxPgorICAgICAgICAgICAgLCB0eXBlbmFtZSBJMTo6ZGlmZmVyZW5jZV90eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIEkyOjpkaWZmZXJlbmNlX3R5cGUKKyAgICAgICAgICA+CisjIGVsc2UgCisgICAgICAgICAgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICBpc19jb252ZXJ0aWJsZTxJMixJMT4KKyAgICAgICAgICAgICwgaXRlcmF0b3JfZGlmZmVyZW5jZTxJMT4KKyAgICAgICAgICAgICwgaXRlcmF0b3JfZGlmZmVyZW5jZTxJMj4KKyAgICAgICAgICA+CisjIGVuZGlmIAorICAgICAgICB7fTsKKworICAgIH07CisgIH0gLy8gbmFtZXNwYWNlIGRldGFpbAorCisKKyAgLy8gTWFjcm9zIHdoaWNoIGRlc2NyaWJlIHRoZSBkZWNsYXJhdGlvbnMgb2YgYmluYXJ5IG9wZXJhdG9ycworIyBpZmRlZiBCT09TVF9OT19TVFJJQ1RfSVRFUkFUT1JfSU5URVJPUEVSQUJJTElUWQorIyAgZGVmaW5lIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9JTlRFUk9QX0hFQUQocHJlZml4LCBvcCwgcmVzdWx0X3R5cGUpICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNsYXNzIERlcml2ZWQxLCBjbGFzcyBWMSwgY2xhc3MgVEMxLCBjbGFzcyBSZWZlcmVuY2UxLCBjbGFzcyBEaWZmZXJlbmNlMSBcCisgICAgICAsIGNsYXNzIERlcml2ZWQyLCBjbGFzcyBWMiwgY2xhc3MgVEMyLCBjbGFzcyBSZWZlcmVuY2UyLCBjbGFzcyBEaWZmZXJlbmNlMiBcCisgICAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHByZWZpeCB0eXBlbmFtZSBtcGw6OmFwcGx5MjxyZXN1bHRfdHlwZSxEZXJpdmVkMSxEZXJpdmVkMj46OnR5cGUgXAorICAgIG9wZXJhdG9yIG9wKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQxLCBWMSwgVEMxLCBSZWZlcmVuY2UxLCBEaWZmZXJlbmNlMT4gY29uc3QmIGxocyAgIFwKKyAgICAgICwgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQyLCBWMiwgVEMyLCBSZWZlcmVuY2UyLCBEaWZmZXJlbmNlMj4gY29uc3QmIHJocykKKyMgZWxzZSAKKyMgIGRlZmluZSBCT09TVF9JVEVSQVRPUl9GQUNBREVfSU5URVJPUF9IRUFEKHByZWZpeCwgb3AsIHJlc3VsdF90eXBlKSAgIFwKKyAgICB0ZW1wbGF0ZSA8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY2xhc3MgRGVyaXZlZDEsIGNsYXNzIFYxLCBjbGFzcyBUQzEsIGNsYXNzIFJlZmVyZW5jZTEsIGNsYXNzIERpZmZlcmVuY2UxIFwKKyAgICAgICwgY2xhc3MgRGVyaXZlZDIsIGNsYXNzIFYyLCBjbGFzcyBUQzIsIGNsYXNzIFJlZmVyZW5jZTIsIGNsYXNzIERpZmZlcmVuY2UyIFwKKyAgICA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBwcmVmaXggdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6ZW5hYmxlX2lmX2ludGVyb3BlcmFibGU8ICAgICAgICAgICAgIFwKKyAgICAgICAgRGVyaXZlZDEsIERlcml2ZWQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICwgdHlwZW5hbWUgbXBsOjphcHBseTI8cmVzdWx0X3R5cGUsRGVyaXZlZDEsRGVyaXZlZDI+Ojp0eXBlICAgICAgIFwKKyAgICA+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBvcGVyYXRvciBvcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQxLCBWMSwgVEMxLCBSZWZlcmVuY2UxLCBEaWZmZXJlbmNlMT4gY29uc3QmIGxocyAgIFwKKyAgICAgICwgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQyLCBWMiwgVEMyLCBSZWZlcmVuY2UyLCBEaWZmZXJlbmNlMj4gY29uc3QmIHJocykKKyMgZW5kaWYgCisKKyMgIGRlZmluZSBCT09TVF9JVEVSQVRPUl9GQUNBREVfUExVU19IRUFEKHByZWZpeCxhcmdzKSAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlIDxjbGFzcyBEZXJpdmVkLCBjbGFzcyBWLCBjbGFzcyBUQywgY2xhc3MgUiwgY2xhc3MgRD4gICBcCisgICAgcHJlZml4IERlcml2ZWQgb3BlcmF0b3IrIGFyZ3MKKworICAvLworICAvLyBIZWxwZXIgY2xhc3MgZm9yIGdyYW50aW5nIGFjY2VzcyB0byB0aGUgaXRlcmF0b3IgY29yZSBpbnRlcmZhY2UuCisgIC8vCisgIC8vIFRoZSBzaW1wbGUgY29yZSBpbnRlcmZhY2UgaXMgdXNlZCBieSBpdGVyYXRvcl9mYWNhZGUuIFRoZSBjb3JlCisgIC8vIGludGVyZmFjZSBvZiBhIHVzZXIvbGlicmFyeSBkZWZpbmVkIGl0ZXJhdG9yIHR5cGUgc2hvdWxkIG5vdCBiZSBtYWRlIHB1YmxpYworICAvLyBzbyB0aGF0IGl0IGRvZXMgbm90IGNsdXR0ZXIgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIEluc3RlYWQgaXRlcmF0b3JfY29yZV9hY2Nlc3MKKyAgLy8gc2hvdWxkIGJlIG1hZGUgZnJpZW5kIHNvIHRoYXQgaXRlcmF0b3JfZmFjYWRlIGNhbiBhY2Nlc3MgdGhlIGNvcmUKKyAgLy8gaW50ZXJmYWNlIHRocm91Z2ggaXRlcmF0b3JfY29yZV9hY2Nlc3MuCisgIC8vCisgIGNsYXNzIGl0ZXJhdG9yX2NvcmVfYWNjZXNzCisgIHsKKyMgaWYgZGVmaW5lZChCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUykgICAgICAgICAgICAgICAgICAKKyAgICAgIC8vIFRhc3RlbGVzcyBhcyB0aGlzIG1heSBzZWVtLCBtYWtpbmcgYWxsIG1lbWJlcnMgcHVibGljIGFsbG93cyBtZW1iZXIgdGVtcGxhdGVzCisgICAgICAvLyB0byB3b3JrIGluIHRoZSBhYnNlbmNlIG9mIG1lbWJlciB0ZW1wbGF0ZSBmcmllbmRzLgorICAgcHVibGljOgorIyBlbHNlCisgICAgICAKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBJLCBjbGFzcyBWLCBjbGFzcyBUQywgY2xhc3MgUiwgY2xhc3MgRD4gZnJpZW5kIGNsYXNzIGl0ZXJhdG9yX2ZhY2FkZTsKKworIyAgZGVmaW5lIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9SRUxBVElPTihvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9JTlRFUk9QX0hFQUQoZnJpZW5kLG9wLCBuZG5ib29zdDo6ZGV0YWlsOjphbHdheXNfYm9vbDIpOworCisgICAgICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04oPT0pCisgICAgICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04oIT0pCisKKyAgICAgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9SRUxBVElPTig8KQorICAgICAgQk9PU1RfSVRFUkFUT1JfRkFDQURFX1JFTEFUSU9OKD4pCisgICAgICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04oPD0pCisgICAgICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04oPj0pCisjICB1bmRlZiBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04KKworICAgICAgQk9PU1RfSVRFUkFUT1JfRkFDQURFX0lOVEVST1BfSEVBRCgKKyAgICAgICAgICBmcmllbmQsIC0sIG5kbmJvb3N0OjpkZXRhaWw6OmNob29zZV9kaWZmZXJlbmNlX3R5cGUpCisgICAgICA7CisKKyAgICAgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9QTFVTX0hFQUQoCisgICAgICAgICAgZnJpZW5kIGlubGluZQorICAgICAgICAgICwgKGl0ZXJhdG9yX2ZhY2FkZTxEZXJpdmVkLCBWLCBUQywgUiwgRD4gY29uc3QmCisgICAgICAgICAgICwgdHlwZW5hbWUgRGVyaXZlZDo6ZGlmZmVyZW5jZV90eXBlKQorICAgICAgKQorICAgICAgOworCisgICAgICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUExVU19IRUFEKAorICAgICAgICAgIGZyaWVuZCBpbmxpbmUKKyAgICAgICAgLCAodHlwZW5hbWUgRGVyaXZlZDo6ZGlmZmVyZW5jZV90eXBlCisgICAgICAgICAgICwgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQsIFYsIFRDLCBSLCBEPiBjb25zdCYpCisgICAgICApCisgICAgICA7CisKKyMgZW5kaWYKKworICAgICAgdGVtcGxhdGUgPGNsYXNzIEZhY2FkZT4KKyAgICAgIHN0YXRpYyB0eXBlbmFtZSBGYWNhZGU6OnJlZmVyZW5jZSBkZXJlZmVyZW5jZShGYWNhZGUgY29uc3QmIGYpCisgICAgICB7CisgICAgICAgICAgcmV0dXJuIGYuZGVyZWZlcmVuY2UoKTsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIEZhY2FkZT4KKyAgICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudChGYWNhZGUmIGYpCisgICAgICB7CisgICAgICAgICAgZi5pbmNyZW1lbnQoKTsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIEZhY2FkZT4KKyAgICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVudChGYWNhZGUmIGYpCisgICAgICB7CisgICAgICAgICAgZi5kZWNyZW1lbnQoKTsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIEZhY2FkZTEsIGNsYXNzIEZhY2FkZTI+CisgICAgICBzdGF0aWMgYm9vbCBlcXVhbChGYWNhZGUxIGNvbnN0JiBmMSwgRmFjYWRlMiBjb25zdCYgZjIsIG1wbDo6dHJ1ZV8pCisgICAgICB7CisgICAgICAgICAgcmV0dXJuIGYxLmVxdWFsKGYyKTsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIEZhY2FkZTEsIGNsYXNzIEZhY2FkZTI+CisgICAgICBzdGF0aWMgYm9vbCBlcXVhbChGYWNhZGUxIGNvbnN0JiBmMSwgRmFjYWRlMiBjb25zdCYgZjIsIG1wbDo6ZmFsc2VfKQorICAgICAgeworICAgICAgICAgIHJldHVybiBmMi5lcXVhbChmMSk7CisgICAgICB9CisKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBGYWNhZGU+CisgICAgICBzdGF0aWMgdm9pZCBhZHZhbmNlKEZhY2FkZSYgZiwgdHlwZW5hbWUgRmFjYWRlOjpkaWZmZXJlbmNlX3R5cGUgbikKKyAgICAgIHsKKyAgICAgICAgICBmLmFkdmFuY2Uobik7CisgICAgICB9CisKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBGYWNhZGUxLCBjbGFzcyBGYWNhZGUyPgorICAgICAgc3RhdGljIHR5cGVuYW1lIEZhY2FkZTE6OmRpZmZlcmVuY2VfdHlwZSBkaXN0YW5jZV9mcm9tKAorICAgICAgICAgIEZhY2FkZTEgY29uc3QmIGYxLCBGYWNhZGUyIGNvbnN0JiBmMiwgbXBsOjp0cnVlXykKKyAgICAgIHsKKyAgICAgICAgICByZXR1cm4gLWYxLmRpc3RhbmNlX3RvKGYyKTsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIEZhY2FkZTEsIGNsYXNzIEZhY2FkZTI+CisgICAgICBzdGF0aWMgdHlwZW5hbWUgRmFjYWRlMjo6ZGlmZmVyZW5jZV90eXBlIGRpc3RhbmNlX2Zyb20oCisgICAgICAgICAgRmFjYWRlMSBjb25zdCYgZjEsIEZhY2FkZTIgY29uc3QmIGYyLCBtcGw6OmZhbHNlXykKKyAgICAgIHsKKyAgICAgICAgICByZXR1cm4gZjIuZGlzdGFuY2VfdG8oZjEpOworICAgICAgfQorCisgICAgICAvLworICAgICAgLy8gQ3VyaW91c2x5IFJlY3VycmluZyBUZW1wbGF0ZSBpbnRlcmZhY2UuCisgICAgICAvLworICAgICAgdGVtcGxhdGUgPGNsYXNzIEksIGNsYXNzIFYsIGNsYXNzIFRDLCBjbGFzcyBSLCBjbGFzcyBEPgorICAgICAgc3RhdGljIEkmIGRlcml2ZWQoaXRlcmF0b3JfZmFjYWRlPEksVixUQyxSLEQ+JiBmYWNhZGUpCisgICAgICB7CisgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxJKj4oJmZhY2FkZSk7CisgICAgICB9CisKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBJLCBjbGFzcyBWLCBjbGFzcyBUQywgY2xhc3MgUiwgY2xhc3MgRD4KKyAgICAgIHN0YXRpYyBJIGNvbnN0JiBkZXJpdmVkKGl0ZXJhdG9yX2ZhY2FkZTxJLFYsVEMsUixEPiBjb25zdCYgZmFjYWRlKQorICAgICAgeworICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8SSBjb25zdCo+KCZmYWNhZGUpOworICAgICAgfQorCisgICBwcml2YXRlOgorICAgICAgLy8gb2JqZWN0cyBvZiB0aGlzIGNsYXNzIGFyZSB1c2VsZXNzCisgICAgICBpdGVyYXRvcl9jb3JlX2FjY2VzcygpOyAvL3VuZGVmaW5lZAorICB9OworCisgIC8vCisgIC8vIGl0ZXJhdG9yX2ZhY2FkZSAtIHVzZSBhcyBhIHB1YmxpYyBiYXNlIGNsYXNzIGZvciBkZWZpbmluZyBuZXcKKyAgLy8gc3RhbmRhcmQtY29uZm9ybWluZyBpdGVyYXRvcnMuCisgIC8vCisgIHRlbXBsYXRlIDwKKyAgICAgIGNsYXNzIERlcml2ZWQgICAgICAgICAgICAgLy8gVGhlIGRlcml2ZWQgaXRlcmF0b3IgdHlwZSBiZWluZyBjb25zdHJ1Y3RlZAorICAgICwgY2xhc3MgVmFsdWUKKyAgICAsIGNsYXNzIENhdGVnb3J5T3JUcmF2ZXJzYWwKKyAgICAsIGNsYXNzIFJlZmVyZW5jZSAgID0gVmFsdWUmCisgICAgLCBjbGFzcyBEaWZmZXJlbmNlICA9IHN0ZDo6cHRyZGlmZl90CisgID4KKyAgY2xhc3MgaXRlcmF0b3JfZmFjYWRlCisjIGlmZGVmIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9ORUVEU19JVEVSQVRPUl9CQVNFCisgICAgOiBwdWJsaWMgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfZmFjYWRlX3R5cGVzPAorICAgICAgICAgVmFsdWUsIENhdGVnb3J5T3JUcmF2ZXJzYWwsIFJlZmVyZW5jZSwgRGlmZmVyZW5jZQorICAgICAgPjo6YmFzZQorIyAgdW5kZWYgQk9PU1RfSVRFUkFUT1JfRkFDQURFX05FRURTX0lURVJBVE9SX0JBU0UKKyMgZW5kaWYKKyAgeworICAgcHJpdmF0ZToKKyAgICAgIC8vCisgICAgICAvLyBDdXJpb3VzbHkgUmVjdXJyaW5nIFRlbXBsYXRlIGludGVyZmFjZS4KKyAgICAgIC8vCisgICAgICBEZXJpdmVkJiBkZXJpdmVkKCkKKyAgICAgIHsKKyAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PERlcml2ZWQqPih0aGlzKTsKKyAgICAgIH0KKworICAgICAgRGVyaXZlZCBjb25zdCYgZGVyaXZlZCgpIGNvbnN0CisgICAgICB7CisgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxEZXJpdmVkIGNvbnN0Kj4odGhpcyk7CisgICAgICB9CisKKyAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfZmFjYWRlX3R5cGVzPAorICAgICAgICAgVmFsdWUsIENhdGVnb3J5T3JUcmF2ZXJzYWwsIFJlZmVyZW5jZSwgRGlmZmVyZW5jZQorICAgICAgPiBhc3NvY2lhdGVkX3R5cGVzOworCisgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6Om9wZXJhdG9yX2Fycm93X2Rpc3BhdGNoPAorICAgICAgICAgIFJlZmVyZW5jZQorICAgICAgICAsIHR5cGVuYW1lIGFzc29jaWF0ZWRfdHlwZXM6OnBvaW50ZXIKKyAgICAgID4gb3BlcmF0b3JfYXJyb3dfZGlzcGF0Y2hfOworCisgICBwcm90ZWN0ZWQ6CisgICAgICAvLyBGb3IgdXNlIGJ5IGRlcml2ZWQgY2xhc3NlcworICAgICAgdHlwZWRlZiBpdGVyYXRvcl9mYWNhZGU8RGVyaXZlZCxWYWx1ZSxDYXRlZ29yeU9yVHJhdmVyc2FsLFJlZmVyZW5jZSxEaWZmZXJlbmNlPiBpdGVyYXRvcl9mYWNhZGVfOworICAgICAgCisgICBwdWJsaWM6CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXNzb2NpYXRlZF90eXBlczo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgdHlwZWRlZiBSZWZlcmVuY2UgcmVmZXJlbmNlOworICAgICAgdHlwZWRlZiBEaWZmZXJlbmNlIGRpZmZlcmVuY2VfdHlwZTsKKworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBvcGVyYXRvcl9hcnJvd19kaXNwYXRjaF86OnJlc3VsdF90eXBlIHBvaW50ZXI7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXNzb2NpYXRlZF90eXBlczo6aXRlcmF0b3JfY2F0ZWdvcnkgaXRlcmF0b3JfY2F0ZWdvcnk7CisKKyAgICAgIHJlZmVyZW5jZSBvcGVyYXRvciooKSBjb25zdAorICAgICAgeworICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9jb3JlX2FjY2Vzczo6ZGVyZWZlcmVuY2UodGhpcy0+ZGVyaXZlZCgpKTsKKyAgICAgIH0KKworICAgICAgcG9pbnRlciBvcGVyYXRvci0+KCkgY29uc3QKKyAgICAgIHsKKyAgICAgICAgICByZXR1cm4gb3BlcmF0b3JfYXJyb3dfZGlzcGF0Y2hfOjphcHBseSgqdGhpcy0+ZGVyaXZlZCgpKTsKKyAgICAgIH0KKyAgICAgICAgCisgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpvcGVyYXRvcl9icmFja2V0c19yZXN1bHQ8RGVyaXZlZCxWYWx1ZSxyZWZlcmVuY2U+Ojp0eXBlCisgICAgICBvcGVyYXRvcltdKGRpZmZlcmVuY2VfdHlwZSBuKSBjb25zdAorICAgICAgeworICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6dXNlX29wZXJhdG9yX2JyYWNrZXRzX3Byb3h5PFZhbHVlLFJlZmVyZW5jZT4gdXNlX3Byb3h5OworICAgICAgICAgIAorICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX29wZXJhdG9yX2JyYWNrZXRzX3Jlc3VsdDxEZXJpdmVkPigKKyAgICAgICAgICAgICAgdGhpcy0+ZGVyaXZlZCgpICsgbgorICAgICAgICAgICAgLCB1c2VfcHJveHkoKQorICAgICAgICAgICk7CisgICAgICB9CisKKyAgICAgIERlcml2ZWQmIG9wZXJhdG9yKysoKQorICAgICAgeworICAgICAgICAgIGl0ZXJhdG9yX2NvcmVfYWNjZXNzOjppbmNyZW1lbnQodGhpcy0+ZGVyaXZlZCgpKTsKKyAgICAgICAgICByZXR1cm4gdGhpcy0+ZGVyaXZlZCgpOworICAgICAgfQorCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cG9zdGZpeF9pbmNyZW1lbnRfcmVzdWx0PERlcml2ZWQsVmFsdWUsUmVmZXJlbmNlLENhdGVnb3J5T3JUcmF2ZXJzYWw+Ojp0eXBlCisgICAgICBvcGVyYXRvcisrKGludCkKKyAgICAgIHsKKyAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpwb3N0Zml4X2luY3JlbWVudF9yZXN1bHQ8RGVyaXZlZCxWYWx1ZSxSZWZlcmVuY2UsQ2F0ZWdvcnlPclRyYXZlcnNhbD46OnR5cGUKKyAgICAgICAgICB0bXAodGhpcy0+ZGVyaXZlZCgpKTsKKyAgICAgICAgICArKyp0aGlzOworICAgICAgICAgIHJldHVybiB0bXA7CisgICAgICB9CisjIGVuZGlmCisgICAgICAKKyAgICAgIERlcml2ZWQmIG9wZXJhdG9yLS0oKQorICAgICAgeworICAgICAgICAgIGl0ZXJhdG9yX2NvcmVfYWNjZXNzOjpkZWNyZW1lbnQodGhpcy0+ZGVyaXZlZCgpKTsKKyAgICAgICAgICByZXR1cm4gdGhpcy0+ZGVyaXZlZCgpOworICAgICAgfQorCisgICAgICBEZXJpdmVkIG9wZXJhdG9yLS0oaW50KQorICAgICAgeworICAgICAgICAgIERlcml2ZWQgdG1wKHRoaXMtPmRlcml2ZWQoKSk7CisgICAgICAgICAgLS0qdGhpczsKKyAgICAgICAgICByZXR1cm4gdG1wOworICAgICAgfQorCisgICAgICBEZXJpdmVkJiBvcGVyYXRvcis9KGRpZmZlcmVuY2VfdHlwZSBuKQorICAgICAgeworICAgICAgICAgIGl0ZXJhdG9yX2NvcmVfYWNjZXNzOjphZHZhbmNlKHRoaXMtPmRlcml2ZWQoKSwgbik7CisgICAgICAgICAgcmV0dXJuIHRoaXMtPmRlcml2ZWQoKTsKKyAgICAgIH0KKworICAgICAgRGVyaXZlZCYgb3BlcmF0b3ItPShkaWZmZXJlbmNlX3R5cGUgbikKKyAgICAgIHsKKyAgICAgICAgICBpdGVyYXRvcl9jb3JlX2FjY2Vzczo6YWR2YW5jZSh0aGlzLT5kZXJpdmVkKCksIC1uKTsKKyAgICAgICAgICByZXR1cm4gdGhpcy0+ZGVyaXZlZCgpOworICAgICAgfQorCisgICAgICBEZXJpdmVkIG9wZXJhdG9yLShkaWZmZXJlbmNlX3R5cGUgeCkgY29uc3QKKyAgICAgIHsKKyAgICAgICAgICBEZXJpdmVkIHJlc3VsdCh0aGlzLT5kZXJpdmVkKCkpOworICAgICAgICAgIHJldHVybiByZXN1bHQgLT0geDsKKyAgICAgIH0KKworIyBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICAgIC8vIFRoZXJlIGFwcGVhcnMgdG8gYmUgYSBidWcgd2hpY2ggdHJhc2hlcyB0aGUgZGF0YSBvZiBjbGFzc2VzCisgICAgICAvLyBkZXJpdmVkIGZyb20gaXRlcmF0b3JfZmFjYWRlIHdoZW4gdGhleSBhcmUgYXNzaWduZWQgdW5sZXNzIHdlCisgICAgICAvLyBkZWZpbmUgdGhpcyBhc3NpZ25tZW50IG9wZXJhdG9yLiAgVGhpcyBidWcgaXMgb25seSByZXZlYWxlZAorICAgICAgLy8gKHNvIGZhcikgaW4gU1RMUG9ydCBkZWJ1ZyBtb2RlLCBidXQgaXQncyBjbGVhcmx5IGEgY29kZWdlbgorICAgICAgLy8gcHJvYmxlbSBzbyB3ZSBhcHBseSB0aGUgd29ya2Fyb3VuZCBmb3IgYWxsIE1TVkM2LgorICAgICAgaXRlcmF0b3JfZmFjYWRlJiBvcGVyYXRvcj0oaXRlcmF0b3JfZmFjYWRlIGNvbnN0JikKKyAgICAgIHsKKyAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICB9CisjIGVuZGlmCisgIH07CisKKyMgaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICB0ZW1wbGF0ZSA8Y2xhc3MgSSwgY2xhc3MgViwgY2xhc3MgVEMsIGNsYXNzIFIsIGNsYXNzIEQ+CisgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpwb3N0Zml4X2luY3JlbWVudF9yZXN1bHQ8SSxWLFIsVEM+Ojp0eXBlCisgIG9wZXJhdG9yKysoCisgICAgICBpdGVyYXRvcl9mYWNhZGU8SSxWLFRDLFIsRD4mIGkKKyAgICAsIGludAorICApCisgIHsKKyAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnBvc3RmaXhfaW5jcmVtZW50X3Jlc3VsdDxJLFYsUixUQz46OnR5cGUKKyAgICAgICAgICB0bXAoKnN0YXRpY19jYXN0PEkqPigmaSkpOworICAgICAgCisgICAgICArK2k7CisgICAgICAKKyAgICAgIHJldHVybiB0bXA7CisgIH0KKyMgZW5kaWYgCisKKyAgCisgIC8vCisgIC8vIENvbXBhcmlzb24gb3BlcmF0b3IgaW1wbGVtZW50YXRpb24uIFRoZSBsaWJyYXJ5IHN1cHBsaWVkIG9wZXJhdG9ycworICAvLyBlbmFibGVzIHRoZSB1c2VyIHRvIHByb3ZpZGUgZnVsbHkgaW50ZXJvcGVyYWJsZSBjb25zdGFudC9tdXRhYmxlCisgIC8vIGl0ZXJhdG9yIHR5cGVzLiBJLmUuIHRoZSBsaWJyYXJ5IHByb3ZpZGVzIGFsbCBvcGVyYXRvcnMKKyAgLy8gZm9yIGFsbCBtdXRhYmxlL2NvbnN0YW50IGl0ZXJhdG9yIGNvbWJpbmF0aW9ucy4KKyAgLy8KKyAgLy8gTm90ZSB0aG91Z2ggdGhhdCB0aGlzIGtpbmQgb2YgaW50ZXJvcGVyYWJpbGl0eSBmb3IgY29uc3RhbnQvbXV0YWJsZQorICAvLyBpdGVyYXRvcnMgaXMgbm90IHJlcXVpcmVkIGJ5IHRoZSBzdGFuZGFyZCBmb3IgY29udGFpbmVyIGl0ZXJhdG9ycy4KKyAgLy8gQWxsIHRoZSBzdGFuZGFyZCBhc2tzIGZvciBpcyBhIGNvbnZlcnNpb24gbXV0YWJsZSAtPiBjb25zdGFudC4KKyAgLy8gTW9zdCBzdGFuZGFyZCBsaWJyYXJ5IGltcGxlbWVudGF0aW9ucyBub3dhZGF5cyBwcm92aWRlIGZ1bGx5IGludGVyb3BlcmFibGUKKyAgLy8gaXRlcmF0b3IgaW1wbGVtZW50YXRpb25zLCBidXQgdGhlcmUgYXJlIHN0aWxsIGhlYXZpbHkgdXNlZCBpbXBsZW1lbnRhdGlvbnMKKyAgLy8gdGhhdCBkbyBub3QgcHJvdmlkZSB0aGVtLiAoQWN0dWFsbHkgaXQncyBldmVuIHdvcnNlLCB0aGV5IGRvIG5vdCBwcm92aWRlCisgIC8vIHRoZW0gZm9yIG9ubHkgYSBmZXcgaXRlcmF0b3JzLikKKyAgLy8KKyAgLy8gPz8gTWF5YmUgYSBCT09TVF9JVEVSQVRPUl9OT19GVUxMX0lOVEVST1BFUkFCSUxJVFkgbWFjcm8gc2hvdWxkCisgIC8vICAgIGVuYWJsZSB0aGUgdXNlciB0byB0dXJuIG9mZiBtaXhlZCB0eXBlIG9wZXJhdG9ycworICAvLworICAvLyBUaGUgbGlicmFyeSB0YWtlcyBjYXJlIHRvIHByb3ZpZGUgb25seSB0aGUgcmlnaHQgb3BlcmF0b3Igb3ZlcmxvYWRzLgorICAvLyBJLmUuCisgIC8vCisgIC8vIGJvb2wgb3BlcmF0b3I9PShJdGVyYXRvciwgICAgICBJdGVyYXRvcik7CisgIC8vIGJvb2wgb3BlcmF0b3I9PShDb25zdEl0ZXJhdG9yLCBJdGVyYXRvcik7CisgIC8vIGJvb2wgb3BlcmF0b3I9PShJdGVyYXRvciwgICAgICBDb25zdEl0ZXJhdG9yKTsKKyAgLy8gYm9vbCBvcGVyYXRvcj09KENvbnN0SXRlcmF0b3IsIENvbnN0SXRlcmF0b3IpOworICAvLworICAvLyAgIC4uLgorICAvLworICAvLyBJbiBvcmRlciB0byBkbyBzbyBpdCB1c2VzIGMrKyBpZGlvbXMgdGhhdCBhcmUgbm90IHlldCB3aWRlbHkgc3VwcG9ydGVkCisgIC8vIGJ5IGN1cnJlbnQgY29tcGlsZXIgcmVsZWFzZXMuIFRoZSBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGRlZ3JhZGUgZ3JhY2VmdWxseQorICAvLyBpbiB0aGUgZmFjZSBvZiBjb21waWxlciBkZWZpY2llbmNpZXMuIEluIGdlbmVyYWwgY29tcGlsZXIKKyAgLy8gZGVmaWNpZW5jaWVzIHJlc3VsdCBpbiBsZXNzIHN0cmljdCBlcnJvciBjaGVja2luZyBhbmQgbW9yZSBvYnNjdXJlCisgIC8vIGVycm9yIG1lc3NhZ2VzLCBmdW5jdGlvbmFsaXR5IGlzIG5vdCBhZmZlY3RlZC4KKyAgLy8KKyAgLy8gRm9yIGZ1bGwgb3BlcmF0aW9uIGNvbXBpbGVyIHN1cHBvcnQgZm9yICJTdWJzdGl0dXRpb24gRmFpbHVyZSBJcyBOb3QgQW4gRXJyb3IiCisgIC8vIChha2EuIGVuYWJsZV9pZikgYW5kIG5kbmJvb3N0Ojppc19jb252ZXJ0aWJsZSBpcyByZXF1aXJlZC4KKyAgLy8KKyAgLy8gVGhlIGZvbGxvd2luZyBwcm9ibGVtcyBvY2N1ciBpZiBzdXBwb3J0IGlzIGxhY2tpbmcuCisgIC8vCisgIC8vIFBzZXVkbyBjb2RlCisgIC8vCisgIC8vIC0tLS0tLS0tLS0tLS0tLQorICAvLyBBZGFwdG9yQTxJdGVyYXRvcjE+IGExOworICAvLyBBZGFwdG9yQTxJdGVyYXRvcjI+IGEyOworICAvLworICAvLyAvLyBUaGlzIHdpbGwgcmVzdWx0IGluIGEgbm8gc3VjaCBvdmVybG9hZCBlcnJvciBpbiBmdWxsIG9wZXJhdGlvbgorICAvLyAvLyBJZiBlbmFibGVfaWYgb3IgaXNfY29udmVydGlibGUgaXMgbm90IHN1cHBvcnRlZAorICAvLyAvLyBUaGUgaW5zdGFudGlhdGlvbiB3aWxsIGZhaWwgd2l0aCBhbiBlcnJvciBob3BlZnVsbHkgaW5kaWNhdGluZyB0aGF0CisgIC8vIC8vIHRoZXJlIGlzIG5vIG9wZXJhdG9yPT0gZm9yIEl0ZXJhdG9yMSwgSXRlcmF0b3IyCisgIC8vIC8vIFRoZSBzYW1lIHdpbGwgaGFwcGVuIGlmIG5vIGVuYWJsZV9pZiBpcyB1c2VkIHRvIHJlbW92ZQorICAvLyAvLyBmYWxzZSBvdmVybG9hZHMgZnJvbSB0aGUgdGVtcGxhdGVkIGNvbnZlcnNpb24gY29uc3RydWN0b3IKKyAgLy8gLy8gb2YgQWRhcHRvckEuCisgIC8vCisgIC8vIGExID09IGEyOworICAvLyAtLS0tLS0tLS0tLS0tLS0tCisgIC8vCisgIC8vIEFkYXB0b3JBPEl0ZXJhdG9yPiBhOworICAvLyBBZGFwdG9yQjxJdGVyYXRvcj4gYjsKKyAgLy8KKyAgLy8gLy8gVGhpcyB3aWxsIHJlc3VsdCBpbiBhIG5vIHN1Y2ggb3ZlcmxvYWQgZXJyb3IgaW4gZnVsbCBvcGVyYXRpb24KKyAgLy8gLy8gSWYgZW5hYmxlX2lmIGlzIG5vdCBzdXBwb3J0ZWQgdGhlIHN0YXRpYyBhc3NlcnQgdXNlZAorICAvLyAvLyBpbiB0aGUgb3BlcmF0b3IgaW1wbGVtZW50YXRpb24gd2lsbCBmYWlsLgorICAvLyAvLyBUaGlzIHdpbGwgYWNjaWRlbnRseSB3b3JrIGlmIGlzX2NvbnZlcnRpYmxlIGlzIG5vdCBzdXBwb3J0ZWQuCisgIC8vCisgIC8vIGEgPT0gYjsKKyAgLy8gLS0tLS0tLS0tLS0tLS0tLQorICAvLworCisjIGlmZGVmIEJPT1NUX05PX09ORV9XQVlfSVRFUkFUT1JfSU5URVJPUAorIyAgZGVmaW5lIEJPT1NUX0lURVJBVE9SX0NPTlZFUlRJQkxFKGEsYikgbXBsOjp0cnVlXygpCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9JVEVSQVRPUl9DT05WRVJUSUJMRShhLGIpIGlzX2NvbnZlcnRpYmxlPGEsYj4oKQorIyBlbmRpZgorCisjIGRlZmluZSBCT09TVF9JVEVSQVRPUl9GQUNBREVfSU5URVJPUChvcCwgcmVzdWx0X3R5cGUsIHJldHVybl9wcmVmaXgsIGJhc2Vfb3ApIFwKKyAgQk9PU1RfSVRFUkFUT1JfRkFDQURFX0lOVEVST1BfSEVBRChpbmxpbmUsIG9wLCByZXN1bHRfdHlwZSkgICAgICAgICAgICAgICAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAvKiBGb3IgdGhvc2UgY29tcGlsZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW5hYmxlX2lmICovICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIGlzX2ludGVyb3BlcmFibGU8IERlcml2ZWQxLCBEZXJpdmVkMiA+Ojp2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICApKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHJldHVybl9wcmVmaXggaXRlcmF0b3JfY29yZV9hY2Nlc3M6OmJhc2Vfb3AoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICpzdGF0aWNfY2FzdDxEZXJpdmVkMSBjb25zdCo+KCZsaHMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICwgKnN0YXRpY19jYXN0PERlcml2ZWQyIGNvbnN0Kj4oJnJocykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLCBCT09TVF9JVEVSQVRPUl9DT05WRVJUSUJMRShEZXJpdmVkMixEZXJpdmVkMSkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIH0KKworIyBkZWZpbmUgQk9PU1RfSVRFUkFUT1JfRkFDQURFX1JFTEFUSU9OKG9wLCByZXR1cm5fcHJlZml4LCBiYXNlX29wKSBcCisgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9JTlRFUk9QKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICwgbmRuYm9vc3Q6OmRldGFpbDo6YWx3YXlzX2Jvb2wyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgLCByZXR1cm5fcHJlZml4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAsIGJhc2Vfb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICApCisKKyAgQk9PU1RfSVRFUkFUT1JfRkFDQURFX1JFTEFUSU9OKD09LCByZXR1cm4sIGVxdWFsKQorICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04oIT0sIHJldHVybiAhLCBlcXVhbCkKKworICBCT09TVF9JVEVSQVRPUl9GQUNBREVfUkVMQVRJT04oPCwgcmV0dXJuIDAgPiwgZGlzdGFuY2VfZnJvbSkKKyAgQk9PU1RfSVRFUkFUT1JfRkFDQURFX1JFTEFUSU9OKD4sIHJldHVybiAwIDwsIGRpc3RhbmNlX2Zyb20pCisgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9SRUxBVElPTig8PSwgcmV0dXJuIDAgPj0sIGRpc3RhbmNlX2Zyb20pCisgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9SRUxBVElPTig+PSwgcmV0dXJuIDAgPD0sIGRpc3RhbmNlX2Zyb20pCisjIHVuZGVmIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9SRUxBVElPTgorCisgIC8vIG9wZXJhdG9yLSByZXF1aXJlcyBhbiBhZGRpdGlvbmFsIHBhcnQgaW4gdGhlIHN0YXRpYyBhc3NlcnRpb24KKyAgQk9PU1RfSVRFUkFUT1JfRkFDQURFX0lOVEVST1AoCisgICAgICAtCisgICAgLCBuZG5ib29zdDo6ZGV0YWlsOjpjaG9vc2VfZGlmZmVyZW5jZV90eXBlCisgICAgLCByZXR1cm4KKyAgICAsIGRpc3RhbmNlX2Zyb20KKyAgKQorIyB1bmRlZiBCT09TVF9JVEVSQVRPUl9GQUNBREVfSU5URVJPUAorIyB1bmRlZiBCT09TVF9JVEVSQVRPUl9GQUNBREVfSU5URVJPUF9IRUFECisKKyMgZGVmaW5lIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9QTFVTKGFyZ3MpICAgICAgICAgICBcCisgIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9QTFVTX0hFQUQoaW5saW5lLCBhcmdzKSAgICAgXAorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIERlcml2ZWQgdG1wKHN0YXRpY19jYXN0PERlcml2ZWQgY29uc3QmPihpKSk7ICBcCisgICAgICByZXR1cm4gdG1wICs9IG47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9CisKK0JPT1NUX0lURVJBVE9SX0ZBQ0FERV9QTFVTKCgKKyAgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQsIFYsIFRDLCBSLCBEPiBjb25zdCYgaQorICAsIHR5cGVuYW1lIERlcml2ZWQ6OmRpZmZlcmVuY2VfdHlwZSBuCispKQorCitCT09TVF9JVEVSQVRPUl9GQUNBREVfUExVUygoCisgICAgdHlwZW5hbWUgRGVyaXZlZDo6ZGlmZmVyZW5jZV90eXBlIG4KKyAgICAsIGl0ZXJhdG9yX2ZhY2FkZTxEZXJpdmVkLCBWLCBUQywgUiwgRD4gY29uc3QmIGkKKykpCisjIHVuZGVmIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9QTFVTCisjIHVuZGVmIEJPT1NUX0lURVJBVE9SX0ZBQ0FERV9QTFVTX0hFQUQKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2RldGFpbC9jb25maWdfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfSVRFUkFUT1JfRkFDQURFXzIzMDIyMDAzVEhXX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NTY1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX3RyYWl0cy5ocHAKQEAgLTAsMCArMSw5MiBAQAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDMuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIElURVJBVE9SX1RSQUlUU19EV0EyMDAzNDdfSFBQCisjIGRlZmluZSBJVEVSQVRPUl9UUkFJVFNfRFdBMjAwMzQ3X0hQUAorCisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9pdGVyYXRvci5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgCisKKy8vIFVuZm9ydHVuYXRlbHksIGcrKyAyLjk1LnggY2hva2VzIHdoZW4gd2UgZGVmaW5lIGEgY2xhc3MgdGVtcGxhdGUKKy8vIGl0ZXJhdG9yX2NhdGVnb3J5IHdoaWNoIGhhcyB0aGUgc2FtZSBuYW1lIGFzIGl0cworLy8gc3RkOjppdGVyYXRvcl9jYXRlZ29yeSgpIGZ1bmN0aW9uLCBwcm9iYWJseSBkdWUgaW4gcGFydCB0byB0aGUKKy8vICJzdGQ6OiBpcyB2aXNpYmxlIGdsb2JhbGx5IiBoYWNrIGl0IHVzZXMuICBVc2UKKy8vIEJPT1NUX0lURVJBVE9SX0NBVEVHT1JZIHRvIHdyaXRlIGNvZGUgdGhhdCdzIHBvcnRhYmxlIHRvIG9sZGVyCisvLyBHQ0NzLgorCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDw9IDIpCisjICBkZWZpbmUgQk9PU1RfSVRFUkFUT1JfQ0FURUdPUlkgaXRlcmF0b3JfY2F0ZWdvcnlfCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9JVEVSQVRPUl9DQVRFR09SWSBpdGVyYXRvcl9jYXRlZ29yeQorIyBlbmRpZgorCisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBpdGVyYXRvcl92YWx1ZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZSB0eXBlOworfTsKKyAgCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CitzdHJ1Y3QgaXRlcmF0b3JfcmVmZXJlbmNlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+OjpyZWZlcmVuY2UgdHlwZTsKK307CisgIAorICAKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBpdGVyYXRvcl9wb2ludGVyCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+Ojpwb2ludGVyIHR5cGU7Cit9OworICAKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBpdGVyYXRvcl9kaWZmZXJlbmNlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppdGVyYXRvcl90cmFpdHM8SXRlcmF0b3I+OjpkaWZmZXJlbmNlX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KK3N0cnVjdCBCT09TVF9JVEVSQVRPUl9DQVRFR09SWQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6aXRlcmF0b3JfY2F0ZWdvcnkgdHlwZTsKK307CisKKyMgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGl0ZXJhdG9yX3ZhbHVlPGludD4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisgIAordGVtcGxhdGUgPD4KK3N0cnVjdCBpdGVyYXRvcl9yZWZlcmVuY2U8aW50PgoreworICAgIHR5cGVkZWYgdm9pZCB0eXBlOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpdGVyYXRvcl9wb2ludGVyPGludD4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisgIAordGVtcGxhdGUgPD4KK3N0cnVjdCBpdGVyYXRvcl9kaWZmZXJlbmNlPGludD4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisgIAordGVtcGxhdGUgPD4KK3N0cnVjdCBCT09TVF9JVEVSQVRPUl9DQVRFR09SWTxpbnQ+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworIyBlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6aXRlcmF0b3IKKworI2VuZGlmIC8vIElURVJBVE9SX1RSQUlUU19EV0EyMDAzNDdfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2l0ZXJhdG9yL3JldmVyc2VfaXRlcmF0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9yZXZlcnNlX2l0ZXJhdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjQxMTJmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9pdGVyYXRvci9yZXZlcnNlX2l0ZXJhdG9yLmhwcApAQCAtMCwwICsxLDY5IEBACisvLyAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuCisvLyAoQykgQ29weXJpZ2h0IEplcmVteSBTaWVrICAgIDIwMDIuCisvLyAoQykgQ29weXJpZ2h0IFRob21hcyBXaXR0ICAgIDIwMDIuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjaWZuZGVmIEJPT1NUX1JFVkVSU0VfSVRFUkFUT1JfMjMwMjIwMDNUSFdfSFBQCisjZGVmaW5lIEJPT1NUX1JFVkVSU0VfSVRFUkFUT1JfMjMwMjIwMDNUSFdfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9uZXh0X3ByaW9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfYWRhcHRvci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisgIC8vCisgIC8vCisgIC8vCisgIHRlbXBsYXRlIDxjbGFzcyBJdGVyYXRvcj4KKyAgY2xhc3MgcmV2ZXJzZV9pdGVyYXRvcgorICAgICAgOiBwdWJsaWMgaXRlcmF0b3JfYWRhcHRvcjwgcmV2ZXJzZV9pdGVyYXRvcjxJdGVyYXRvcj4sIEl0ZXJhdG9yID4KKyAgeworICAgICAgdHlwZWRlZiBpdGVyYXRvcl9hZGFwdG9yPCByZXZlcnNlX2l0ZXJhdG9yPEl0ZXJhdG9yPiwgSXRlcmF0b3IgPiBzdXBlcl90OworCisgICAgICBmcmllbmQgY2xhc3MgaXRlcmF0b3JfY29yZV9hY2Nlc3M7CisKKyAgIHB1YmxpYzoKKyAgICAgIHJldmVyc2VfaXRlcmF0b3IoKSB7fQorCisgICAgICBleHBsaWNpdCByZXZlcnNlX2l0ZXJhdG9yKEl0ZXJhdG9yIHgpIAorICAgICAgICAgIDogc3VwZXJfdCh4KSB7fQorCisgICAgICB0ZW1wbGF0ZTxjbGFzcyBPdGhlckl0ZXJhdG9yPgorICAgICAgcmV2ZXJzZV9pdGVyYXRvcigKKyAgICAgICAgICByZXZlcnNlX2l0ZXJhdG9yPE90aGVySXRlcmF0b3I+IGNvbnN0JiByCisgICAgICAgICAgLCB0eXBlbmFtZSBlbmFibGVfaWZfY29udmVydGlibGU8T3RoZXJJdGVyYXRvciwgSXRlcmF0b3I+Ojp0eXBlKiA9IDAKKyAgICAgICAgICApCisgICAgICAgICAgOiBzdXBlcl90KHIuYmFzZSgpKQorICAgICAge30KKworICAgcHJpdmF0ZToKKyAgICAgIHR5cGVuYW1lIHN1cGVyX3Q6OnJlZmVyZW5jZSBkZXJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuICpuZG5ib29zdDo6cHJpb3IodGhpcy0+YmFzZSgpKTsgfQorICAgIAorICAgICAgdm9pZCBpbmNyZW1lbnQoKSB7IC0tdGhpcy0+YmFzZV9yZWZlcmVuY2UoKTsgfQorICAgICAgdm9pZCBkZWNyZW1lbnQoKSB7ICsrdGhpcy0+YmFzZV9yZWZlcmVuY2UoKTsgfQorCisgICAgICB2b2lkIGFkdmFuY2UodHlwZW5hbWUgc3VwZXJfdDo6ZGlmZmVyZW5jZV90eXBlIG4pCisgICAgICB7CisgICAgICAgICAgdGhpcy0+YmFzZV9yZWZlcmVuY2UoKSArPSAtbjsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIE90aGVySXRlcmF0b3I+CisgICAgICB0eXBlbmFtZSBzdXBlcl90OjpkaWZmZXJlbmNlX3R5cGUKKyAgICAgIGRpc3RhbmNlX3RvKHJldmVyc2VfaXRlcmF0b3I8T3RoZXJJdGVyYXRvcj4gY29uc3QmIHkpIGNvbnN0CisgICAgICB7CisgICAgICAgICAgcmV0dXJuIHRoaXMtPmJhc2VfcmVmZXJlbmNlKCkgLSB5LmJhc2UoKTsKKyAgICAgIH0KKyAgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yPgorICByZXZlcnNlX2l0ZXJhdG9yPEJpZGlyZWN0aW9uYWxJdGVyYXRvcj4gbWFrZV9yZXZlcnNlX2l0ZXJhdG9yKEJpZGlyZWN0aW9uYWxJdGVyYXRvciB4KQorICB7CisgICAgICByZXR1cm4gcmV2ZXJzZV9pdGVyYXRvcjxCaWRpcmVjdGlvbmFsSXRlcmF0b3I+KHgpOworICB9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SRVZFUlNFX0lURVJBVE9SXzIzMDIyMDAzVEhXX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWMzYmFiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvYmluZC5ocHAKQEAgLTAsMCArMSwxOSBAQAorLy8gLS0gYmluZC5ocHAgLS0gQm9vc3QgTGFtYmRhIExpYnJhcnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgR2FyeSBQb3dlbGwgKGd3cG93ZWxsQGhvdG1haWwuY29tKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIAorCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9CSU5EX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfQklORF9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9jb3JlLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYmluZF9mdW5jdGlvbnMuaHBwIgorICAgIAorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9jb3JlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2NvcmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZjgzNDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9jb3JlLmhwcApAQCAtMCwwICsxLDc5IEBACisvLyAtLSBjb3JlLmhwcCAtLSBCb29zdCBMYW1iZGEgTGlicmFyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDAwIEdhcnkgUG93ZWxsIChwb3dlbGxnQGFtYXpvbi5jb20pCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHd3dy5ib29zdC5vcmcKKy8vIAorLy8gSW5jbHVkZXMgdGhlIGNvcmUgb2YgTEwsIHdpdGhvdXQgYW55IHJlYWwgZmVhdHVyZXMgZm9yIGNsaWVudDoKKy8vIAorLy8gdHVwbGVzLCBsYW1iZGEgZnVuY3RvcnMsIHJldHVybiB0eXBlIGRlZHVjdGlvbiB0ZW1wbGF0ZXMsCisvLyBhcmd1bWVudCBzdWJzdGl0dXRpb24gbWVjaGFuaXNtIChzZWxlY3QgZnVuY3Rpb25zKQorLy8gCisvLyBTb21lIGZ1bmN0aW9uYWxpdHkgY29tZXMgYXMgd2VsbDoKKy8vIEFzc2lnbm1lbnQgYW5kIHN1YnNjcmlwdCBvcGVyYXRvcnMsIGFzIHdlbGwgYXMgZnVuY3Rpb24KKy8vIGNhbGwgb3BlcmF0b3IgZm9yIHBsYWNlaG9sZGVyIHZhcmlhYmxlcy4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9MQU1CREFfQ09SRV9IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0NPUkVfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy90cmFuc2Zvcm1fdHJhaXRzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9jdl90cmFpdHMuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvdHVwbGUvdHVwbGUuaHBwIgorCisvLyBpbmplY3Qgc29tZSBvZiB0aGUgdHVwbGUgbmFtZXMgaW50byBsYW1iZGEgCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGxhbWJkYSB7CisKK3VzaW5nIDo6bmRuYm9vc3Q6OnR1cGxlczo6dHVwbGU7Cit1c2luZyA6Om5kbmJvb3N0Ojp0dXBsZXM6Om51bGxfdHlwZTsKKworfSAvLyBsYW1iZGEKK30gLy8gYm9vc3QKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2NvbmZpZy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZndkLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYXJpdHlfY29kZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2RldGFpbC9hY3Rpb25zLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX3RyYWl0cy5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2Z1bmN0aW9uX2FkYXB0b3JzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3JldHVybl90eXBlX3RyYWl0cy5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9sYW1iZGEvZGV0YWlsL3NlbGVjdF9mdW5jdGlvbnMuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZnVuY3Rvcl9iYXNlLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2Z1bmN0b3JzLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvcmV0LmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBsYW1iZGEgeworCituYW1lc3BhY2UgeworCisgIC8vIFRoZXNlIGFyZSBjb25zdGFudHMgdHlwZXMgYW5kIG5lZWQgdG8gYmUgaW5pdGlhbGlzZWQKKyAgbmRuYm9vc3Q6OmxhbWJkYTo6cGxhY2Vob2xkZXIxX3R5cGUgZnJlZTEgPSBuZG5ib29zdDo6bGFtYmRhOjpwbGFjZWhvbGRlcjFfdHlwZSgpOworICBuZG5ib29zdDo6bGFtYmRhOjpwbGFjZWhvbGRlcjJfdHlwZSBmcmVlMiA9IG5kbmJvb3N0OjpsYW1iZGE6OnBsYWNlaG9sZGVyMl90eXBlKCk7CisgIG5kbmJvb3N0OjpsYW1iZGE6OnBsYWNlaG9sZGVyM190eXBlIGZyZWUzID0gbmRuYm9vc3Q6OmxhbWJkYTo6cGxhY2Vob2xkZXIzX3R5cGUoKTsKKworICBuZG5ib29zdDo6bGFtYmRhOjpwbGFjZWhvbGRlcjFfdHlwZSYgXzEgPSBmcmVlMTsKKyAgbmRuYm9vc3Q6OmxhbWJkYTo6cGxhY2Vob2xkZXIyX3R5cGUmIF8yID0gZnJlZTI7CisgIG5kbmJvb3N0OjpsYW1iZGE6OnBsYWNlaG9sZGVyM190eXBlJiBfMyA9IGZyZWUzOworICAvLyBfMSwgXzIsIC4uLiBuYW1pbmcgc2NoZW1lIGJ5IFBldGVyIERpbW92Cit9IC8vIHVubmFtZWQKKyAgIAorfSAvLyBsYW1iZGEKK30gLy8gYm9vc3QKKyAgIAorICAgCisjZW5kaWYgLy9CT09TVF9MQU1CREFfQ09SRV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9hY3Rpb25zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9hY3Rpb25zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODkyYmIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2FjdGlvbnMuaHBwCkBAIC0wLDAgKzEsMTc0IEBACisvLyAtLSBCb29zdCBMYW1iZGEgTGlicmFyeSAtIGFjdGlvbnMuaHBwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgd3d3LmJvb3N0Lm9yZworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfTEFNQkRBX0FDVElPTlNfSFBQCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9BQ1RJT05TX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyAKK25hbWVzcGFjZSBsYW1iZGEgeworCisKKwordGVtcGxhdGU8aW50IEFyaXR5LCBjbGFzcyBBY3Q+IGNsYXNzIGFjdGlvbjsKKworLy8gdGhlc2UgbmVlZCB0byBiZSBkZWZpbmVkIGhlcmUsIHNpbmNlIHRoZSBjb3JyZXNwb25kaW5nIGxhbWJkYSAKKy8vIGZ1bmN0aW9ucyBhcmUgbWVtYmVycyBvZiBsYW1iZGFfZnVuY3RvciBjbGFzc2VzCisKK2NsYXNzIGFzc2lnbm1lbnRfYWN0aW9uIHt9OworY2xhc3Mgc3Vic2NyaXB0X2FjdGlvbiB7fTsKKwordGVtcGxhdGUgPGNsYXNzIEFjdGlvbj4gY2xhc3Mgb3RoZXJfYWN0aW9uOworCisvLyBhY3Rpb24gZm9yIHNwZWNpZnlpbmcgdGhlIGV4cGxpY2l0IHJldHVybiB0eXBlCit0ZW1wbGF0ZSA8Y2xhc3MgUkVUPiBjbGFzcyBleHBsaWNpdF9yZXR1cm5fdHlwZV9hY3Rpb24ge307CisKKy8vIGFjdGlvbiBmb3IgcHJldmVudGluZyB0aGUgZXhwYW5zaW9uIG9mIGEgbGFtYmRhIGV4cHJlc3Npb24KK3N0cnVjdCBwcm90ZWN0X2FjdGlvbiB7fTsKKworICAvLyBtdXN0IGJlIGRlZmluZWQgaGVyZSwgY29tbWEgaXMgYSBzcGVjaWFsIGNhc2UKK3N0cnVjdCBjb21tYV9hY3Rpb24ge307CisKKworICAvLyBhY3Rpb25zLCBmb3Igd2hpY2ggdGhlIGV4aXN0ZW5jZSBvZiBwcm90ZWN0IGlzIGNoZWNrZWQgaW4gcmV0dXJuIHR5cGUgCisgIC8vIGRlZHVjdGlvbi4KKwordGVtcGxhdGUgPGNsYXNzIEFjdGlvbj4gc3RydWN0IGlzX3Byb3RlY3RhYmxlIHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKworLy8gTk9URTogY29tbWEgYWN0aW9uIGlzIHByb3RlY3RhYmxlLiBPdGhlciBwcm90ZWN0YWJsZSBhY3Rpb25zCisvLyBhcmUgbGlzdGVkIGluIG9wZXJhdG9yX2FjdGlvbnMuaHBwCisKK3RlbXBsYXRlPD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPG90aGVyX2FjdGlvbjxjb21tYV9hY3Rpb24+ID4geworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgLy8gdGhpcyB0eXBlIGlzIHVzZWQgaW4gcmV0dXJuIHR5cGUgZGVkdWN0aW9ucyB0byBzaWduYWwgdGhhdCBkZWR1Y3Rpb24gCisgIC8vIGRpZCBub3QgZmluZCBhIHJlc3VsdC4gSXQgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiBhbiBlcnJvciwgaXQgY29tbW9ubHkKKyAgLy8gbWVhbnMgdGhhdCBzb21ldGhpbmcgZWxzZSBzaG91bGQgYmUgdHJpZWQuCisgIGNsYXNzIHVuc3BlY2lmaWVkIHt9OworfQorCisgIC8vIGZ1bmN0aW9uIGFjdGlvbiBpcyBhIHNwZWNpYWwgY2FzZTogYmluZCBmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCB3aXRoIAorICAvLyB0aGUgcmV0dXJuIHR5cGUgc3BlY2lhbGl6ZWQgZXhwbGljaXRseSBlLmcuIGJpbmQ8aW50Pihmb28pOworICAvLyBJZiB0aGlzIGNhbGwgc3ludGF4IGlzIHVzZWQsIHRoZSByZXR1cm4gdHlwZSBpcyBzdG9yZWQgaW4gdGhlIGxhdHRlcgorICAvLyBhcmd1bWVudCBvZiBmdW5jdGlvbl9hY3Rpb24gdGVtcGxhdGUuIE90aGVyd2lzZSB0aGUgYXJndW1lbnQgZ2V0cyB0aGUgdHlwZQorICAvLyAndW5zcGVjaWZpZWQnLgorICAvLyBUaGlzIGFyZ3VtZW50IGlzIG9ubHkgcmVsZXZhbnQgaW4gdGhlIHJldHVybiB0eXBlIGRlZHVjdGlvbiBjb2RlCit0ZW1wbGF0ZSA8aW50IEksIGNsYXNzIFJlc3VsdF90eXBlID0gZGV0YWlsOjp1bnNwZWNpZmllZD4gCitjbGFzcyBmdW5jdGlvbl9hY3Rpb24ge307CisgICAKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIGZ1bmN0aW9uX2FjdGlvbjwxLCBUPiB7CitwdWJsaWM6CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTE+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uX2FkYXB0b3I8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjxBMT46OnR5cGU+OjoKKyAgICAgIHRlbXBsYXRlIGFwcGx5PFJFVD4oYTEpOworICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBmdW5jdGlvbl9hY3Rpb248MiwgVD4geworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgc3RhdGljIFJFVCBhcHBseShBMSYgYTEsIEEyJiBhMikgeworICAgIHJldHVybiBmdW5jdGlvbl9hZGFwdG9yPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8QTE+Ojp0eXBlPjo6CisgICAgICB0ZW1wbGF0ZSBhcHBseTxSRVQ+KGExLCBhMik7CisgIH0KK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIGZ1bmN0aW9uX2FjdGlvbjwzLCBUPiB7CitwdWJsaWM6CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KKyAgc3RhdGljIFJFVCBhcHBseShBMSYgYTEsIEEyJiBhMiwgQTMmIGEzKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uX2FkYXB0b3I8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjxBMT46OnR5cGU+OjoKKyAgICAgIHRlbXBsYXRlIGFwcGx5PFJFVD4oYTEsIGEyLCBhMyk7CisgIH0KK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIGZ1bmN0aW9uX2FjdGlvbjw0LCBUPiB7CitwdWJsaWM6CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uX2FkYXB0b3I8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjxBMT46OnR5cGU+OjoKKyAgICAgIHRlbXBsYXRlIGFwcGx5PFJFVD4oYTEsIGEyLCBhMywgYTQpOworICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBmdW5jdGlvbl9hY3Rpb248NSwgVD4geworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4KKyAgc3RhdGljIFJFVCBhcHBseShBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSkgeworICAgIHJldHVybiBmdW5jdGlvbl9hZGFwdG9yPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8QTE+Ojp0eXBlPjo6CisgICAgICB0ZW1wbGF0ZSBhcHBseTxSRVQ+KGExLCBhMiwgYTMsIGE0LCBhNSk7CisgIH0KK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIGZ1bmN0aW9uX2FjdGlvbjw2LCBUPiB7CitwdWJsaWM6CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCAKKyAgICAgICAgICAgY2xhc3MgQTY+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNikgeworICAgIHJldHVybiBmdW5jdGlvbl9hZGFwdG9yPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8QTE+Ojp0eXBlPjo6CisgICAgICB0ZW1wbGF0ZSBhcHBseTxSRVQ+KGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpOworICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBmdW5jdGlvbl9hY3Rpb248NywgVD4geworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgIAorICAgICAgICAgICBjbGFzcyBBNiwgY2xhc3MgQTc+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uX2FkYXB0b3I8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjxBMT46OnR5cGU+OjoKKyAgICAgIHRlbXBsYXRlIGFwcGx5PFJFVD4oYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpOworICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBmdW5jdGlvbl9hY3Rpb248OCwgVD4geworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgCisgICAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3LCAKKyAgICAgICAgICAgICAgICAgICBBOCYgYTgpIHsKKyAgICByZXR1cm4gZnVuY3Rpb25fYWRhcHRvcjx0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PEExPjo6dHlwZT46OgorICAgICAgdGVtcGxhdGUgYXBwbHk8UkVUPihhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBmdW5jdGlvbl9hY3Rpb248OSwgVD4geworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgCisgICAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PgorICBzdGF0aWMgUkVUIGFwcGx5KEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIEE3JiBhNywgCisgICAgICAgICAgICAgICAgICAgQTgmIGE4LCBBOSYgYTkpIHsKKyAgICByZXR1cm4gZnVuY3Rpb25fYWRhcHRvcjx0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PEExPjo6dHlwZT46OgorICAgICAgdGVtcGxhdGUgYXBwbHk8UkVUPihhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KTsKKyAgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgZnVuY3Rpb25fYWN0aW9uPDEwLCBUPiB7CitwdWJsaWM6CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCAKKyAgICAgICAgICAgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTksIGNsYXNzIEExMD4KKyAgc3RhdGljIFJFVCBhcHBseShBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCBBNyYgYTcsIAorICAgICAgICAgICAgICAgICAgIEE4JiBhOCwgQTkmIGE5LCBBMTAmIGExMCkgeworICAgIHJldHVybiBmdW5jdGlvbl9hZGFwdG9yPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8QTE+Ojp0eXBlPjo6CisgICAgICB0ZW1wbGF0ZSBhcHBseTxSRVQ+KGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCk7CisgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYXJpdHlfY29kZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYXJpdHlfY29kZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI3NjJjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9hcml0eV9jb2RlLmhwcApAQCAtMCwwICsxLDExMCBAQAorLy8gLS0gQm9vc3QgTGFtYmRhIExpYnJhcnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHd3dy5ib29zdC5vcmcKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9MQU1CREFfQVJJVFlfQ09ERV9IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0FSSVRZX0NPREVfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9jdl90cmFpdHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL3RyYW5zZm9ybV90cmFpdHMuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyAKK25hbWVzcGFjZSBsYW1iZGEgeworCisvLyBUaGVzZSBjb25zdGFudHMgc3RhdGUsIHdoZXRoZXIgYSBsYW1iZGFfZnVuY3RvciBpbnN0YW50aWF0aW9uIHJlc3VsdHMgZnJvbSAKKy8vIGFuIGV4cHJlc3Npb24gd2hpY2ggY29udGFpbnMgbm8gcGxhY2Vob2xkZXJzIChOT05FKSwgCisvLyBvbmx5IGZyZWUxIHBsYWNlaG9sZGVycyAoRklSU1QpLCAKKy8vIGZyZWUyIHBsYWNlaG9sZGVycyBhbmQgbWF5YmUgZnJlZTEgcGxhY2Vob2xkZXJzIChTRUNPTkQpLAorLy8gZnJlZTMgYW5kIG1heWJlIGZyZWUxIGFuZCBmcmVlMiBwbGFjZWhvbGRlcnMgKFRISVJEKSwKKy8vIGZyZWVFIHBsYWNlaG9sZGVycyBhbmQgbWF5YmUgZnJlZTEgYW5kIGZyZWUyICAoRVhDRVBUSU9OKS4KKy8vIFJFVEhST1cgbWVhbnMsIHRoYXQgYSByZXRocm93IGV4cHJlc3Npb24gaXMgdXNlZCBzb21ld2hlcmUgaW4gdGhlIGxhbWJkYV9mdW5jdG9yLgorCitlbnVtIHsgTk9ORSAgICAgICAgICAgICA9IDB4MDAsIC8vIE5vdGljZSB3ZSBhcmUgdXNpbmcgYml0cyBhcyBmbGFncyBoZXJlLgorICAgICAgIEZJUlNUICAgICAgICAgICAgPSAweDAxLCAKKyAgICAgICBTRUNPTkQgICAgICAgICAgID0gMHgwMiwgCisgICAgICAgVEhJUkQgICAgICAgICAgICA9IDB4MDQsIAorICAgICAgIEVYQ0VQVElPTiAgICAgICAgPSAweDA4LCAKKyAgICAgICBSRVRIUk9XICAgICAgICAgID0gMHgxMH07CisKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBnZXRfdHVwbGVfYXJpdHk7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGdldF9hcml0eV87CisKK30gLy8gZW5kIGRldGFpbDsKKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBnZXRfYXJpdHkgeworCisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gZGV0YWlsOjpnZXRfYXJpdHlfPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGU+Ojp0eXBlPjo6dmFsdWUpOworCit9OworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBnZXRfYXJpdHlfIHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgZ2V0X2FyaXR5XzxsYW1iZGFfZnVuY3RvcjxUPiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSBnZXRfYXJpdHk8VD46OnZhbHVlKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEFjdGlvbiwgY2xhc3MgQXJncz4KK3N0cnVjdCBnZXRfYXJpdHlfPGxhbWJkYV9mdW5jdG9yX2Jhc2U8QWN0aW9uLCBBcmdzPiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSBnZXRfdHVwbGVfYXJpdHk8QXJncz46OnZhbHVlKTsKK307CisKK3RlbXBsYXRlPGludCBJPgorc3RydWN0IGdldF9hcml0eV88cGxhY2Vob2xkZXI8ST4gPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gSSk7Cit9OworCit9IC8vIGRldGFpbCAKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBnZXRfdHVwbGVfYXJpdHkgeworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9IGdldF9hcml0eTx0eXBlbmFtZSBUOjpoZWFkX3R5cGU+Ojp2YWx1ZSB8IGdldF90dXBsZV9hcml0eTx0eXBlbmFtZSBUOjp0YWlsX3R5cGU+Ojp2YWx1ZSk7Cit9OworCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBnZXRfdHVwbGVfYXJpdHk8bnVsbF90eXBlPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gMCk7Cit9OworCisKKyAgLy8gRG9lcyBUIGhhdmUgcGxhY2Vob2xkZXI8ST4gYXMgaXQncyBzdWJleHByZXNzaW9uPworCit0ZW1wbGF0ZTxjbGFzcyBULCBpbnQgST4KK3N0cnVjdCBoYXNfcGxhY2Vob2xkZXIgeworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoZ2V0X2FyaXR5PFQ+Ojp2YWx1ZSAmIEkpICE9IDApOworfTsgCisKK3RlbXBsYXRlPGludCBJLCBpbnQgSj4KK3N0cnVjdCBpbmNsdWRlc19wbGFjZWhvbGRlciB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChKICYgSSkgIT0gMCk7Cit9OworCit0ZW1wbGF0ZTxpbnQgSSwgaW50IEo+CitzdHJ1Y3QgbGFja3NfcGxhY2Vob2xkZXIgeworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoKEogJiBJKSA9PSAwKSk7Cit9OworCisKK30gLy8gbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvYmluZF9mdW5jdGlvbnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2JpbmRfZnVuY3Rpb25zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjg4MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2JpbmRfZnVuY3Rpb25zLmhwcApAQCAtMCwwICsxLDE4NzkgQEAKKy8vIC0tIGJpbmRfZnVuY3Rpb25zLmhwcCAtLSBCb29zdCBMYW1iZGEgTGlicmFyeQorLy8KKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9CSU5EX0ZVTkNUSU9OU19IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0JJTkRfRlVOQ1RJT05TX0hQUAorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKKyNpZmRlZiBCT09TVF9MQU1CREFfSU5DT1JSRUNUX0JJTkRfT1ZFUkxPQURJTkcKKworICAvLyBnY2MgMi45NiBpbnN0YW50aWF0ZXMgYmluZCBmdW5jdGlvbnMgaXQgZG9lcyBub3QgZXZlbiBjYWxsLgorICAvLyBUaGVzZSBpbnN0YW50aWF0aW9ucyBsZWFkIHRvIGluY29ycmVjdCB0eXBlcyBpbiB0aGUgcmV0dXJuIHR5cGUsIAorICAvLyBhbmQgYSBjb21waWxhdGlvbiBlcnJvciByZXN1bHRzLiAKKyAgLy8gVGhpcyB0d2Vha2luZyBpcyB0byBwcmV2ZW50IHRoZSBmb3JtYXRpb24gb2YgdGhlIGVycm9uZW91cyB0eXBlLgorbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBjb25zdGlmeV9ub25fZnVuY3MgeworICB0eXBlZGVmIHR5cGVuYW1lIAorICBkZXRhaWw6OklGX3R5cGU8bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZSwKKyAgICBuZG5ib29zdDo6YWRkX3JlZmVyZW5jZTxUPiwKKyAgICBuZG5ib29zdDo6YWRkX2NvbnN0PFQ+CisgID46OnR5cGUgdHlwZTsKK307CisKK30KKyNlbmRpZgorLy8gMS1hcmd1bWVudCBiaW5kIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmbmRlZiBCT09TVF9SRUZfVE9fRlVOQ19DT05GTElDVFNfV0lUSF9SRUZfVE9fVAordGVtcGxhdGUgPGNsYXNzIFJlc3VsdD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDEsIGZ1bmN0aW9uX2FjdGlvbjwxLCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxSZXN1bHQoJikoKT46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgmIGExKSgpKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MSwgZnVuY3Rpb25fYWN0aW9uPDEsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8UmVzdWx0KCYpKCk+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxSZXN1bHQoJikoKT46OnR5cGUKKyAgICAgIChhMSkKKyAgICApOworfQorI2VuZGlmCisKKyAjaWZuZGVmIEJPT1NUX0xBTUJEQV9JTkNPUlJFQ1RfQklORF9PVkVSTE9BRElORyAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MSwgZnVuY3Rpb25fYWN0aW9uPDE+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxjb25zdCBBcmcxPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwxLCBmdW5jdGlvbl9hY3Rpb248MT4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8Y29uc3QgQXJnMT46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPGNvbnN0IEFyZzE+Ojp0eXBlCisgICAgICAoYTEpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgQXJnMT4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDEsIGZ1bmN0aW9uX2FjdGlvbjwxLCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxjb25zdCBBcmcxPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwxLCBmdW5jdGlvbl9hY3Rpb248MSwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxjb25zdCBBcmcxPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8Y29uc3QgQXJnMT46OnR5cGUKKyAgICAgIChhMSkKKyAgICApOworfQorCisKKyAjZWxzZSAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MSwgZnVuY3Rpb25fYWN0aW9uPDE+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlCisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwxLCBmdW5jdGlvbl9hY3Rpb248MT4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlCisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MSwgZnVuY3Rpb25fYWN0aW9uPDEsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDEsIGZ1bmN0aW9uX2FjdGlvbjwxLCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZQorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlCisgICAgICA+Ojp0eXBlCisgICAgICAoYTEpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDEsIGZ1bmN0aW9uX2FjdGlvbjwxLCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxSZXN1bHQoKikoKT46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgqIGNvbnN0ICYgYTEpKCkpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwxLCBmdW5jdGlvbl9hY3Rpb248MSwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxSZXN1bHQoKikoKT46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgqKSgpPjo6dHlwZQorICAgICAgKGExKQorICAgICk7Cit9CisKKworI2VuZGlmIAorCisvLyAyLWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MiwgZnVuY3Rpb25fYWN0aW9uPDIsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgmKShQYXIxKSwgY29uc3QgQXJnMj46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgmYTEpKFBhcjEpLCBjb25zdCBBcmcyJiBhMikgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDIsIGZ1bmN0aW9uX2FjdGlvbjwyLCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgmKShQYXIxKSwgY29uc3QgQXJnMj46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgmKShQYXIxKSwgY29uc3QgQXJnMj46OnR5cGUKKyAgICAgIChhMSwgYTIpCisgICAgKTsKK30KKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9JTkNPUlJFQ1RfQklORF9PVkVSTE9BRElORyAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MiwgZnVuY3Rpb25fYWN0aW9uPDI+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxjb25zdCBBcmcxLCBjb25zdCBBcmcyPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEsIGNvbnN0IEFyZzImIGEyKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MiwgZnVuY3Rpb25fYWN0aW9uPDI+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPGNvbnN0IEFyZzEsIGNvbnN0IEFyZzI+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxjb25zdCBBcmcxLCBjb25zdCBBcmcyPjo6dHlwZQorICAgICAgKGExLCBhMikKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MiwgZnVuY3Rpb25fYWN0aW9uPDIsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPGNvbnN0IEFyZzEsIGNvbnN0IEFyZzI+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwyLCBmdW5jdGlvbl9hY3Rpb248MiwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjxjb25zdCBBcmcxLCBjb25zdCBBcmcyPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8Y29uc3QgQXJnMSwgY29uc3QgQXJnMj46OnR5cGUKKyAgICAgIChhMSwgYTIpCisgICAgKTsKK30KKworCisgI2Vsc2UgCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMj4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDIsIGZ1bmN0aW9uX2FjdGlvbjwyPiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMgorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMikgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDIsIGZ1bmN0aW9uX2FjdGlvbjwyPiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMgorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMikKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MiwgZnVuY3Rpb25fYWN0aW9uPDIsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwyLCBmdW5jdGlvbl9hY3Rpb248MiwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMgorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMikKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MiwgZnVuY3Rpb25fYWN0aW9uPDIsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgqKShQYXIxKSwgY29uc3QgQXJnMj46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgqIGNvbnN0ICYgYTEpKFBhcjEpLCBjb25zdCBBcmcyJiBhMikgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDIsIGZ1bmN0aW9uX2FjdGlvbjwyLCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgqKShQYXIxKSwgY29uc3QgQXJnMj46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPFJlc3VsdCgqKShQYXIxKSwgY29uc3QgQXJnMj46OnR5cGUKKyAgICAgIChhMSwgYTIpCisgICAgKTsKK30KKworCisgI2VuZGlmIAorCisvLyAzLWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MywgZnVuY3Rpb25fYWN0aW9uPDMsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCYpKFBhcjEsIFBhcjIpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczCisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCZhMSkoUGFyMSwgUGFyMiksIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMykgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDMsIGZ1bmN0aW9uX2FjdGlvbjwzLCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzKQorICAgICk7Cit9CisjZW5kaWYKKworICNpZm5kZWYgQk9PU1RfTEFNQkRBX0lOQ09SUkVDVF9CSU5EX09WRVJMT0FESU5HIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzM+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjwzLCBmdW5jdGlvbl9hY3Rpb248Mz4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMworICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwzLCBmdW5jdGlvbl9hY3Rpb248Mz4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczCisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMykKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MywgZnVuY3Rpb25fYWN0aW9uPDMsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMworICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwzLCBmdW5jdGlvbl9hY3Rpb248MywgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMworICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzKQorICAgICk7Cit9CisKKworICNlbHNlIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzM+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjwzLCBmdW5jdGlvbl9hY3Rpb248Mz4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MywgZnVuY3Rpb25fYWN0aW9uPDM+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMworICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczCisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMykKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MywgZnVuY3Rpb25fYWN0aW9uPDMsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MywgZnVuY3Rpb25fYWN0aW9uPDMsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczCisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzKQorICAgICk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIFBhcjEsIGNsYXNzIFBhcjIsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzM+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjwzLCBmdW5jdGlvbl9hY3Rpb248MywgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBSZXN1bHQoKikoUGFyMSwgUGFyMiksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChSZXN1bHQoKiBjb25zdCAmIGExKShQYXIxLCBQYXIyKSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MywgZnVuY3Rpb25fYWN0aW9uPDMsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgqKShQYXIxLCBQYXIyKSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMworICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgqKShQYXIxLCBQYXIyKSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMworICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMpCisgICAgKTsKK30KKworCisgI2VuZGlmIAorCisvLyA0LWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBBcmcyLAorICAgICAgICAgIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQ+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw0LCBmdW5jdGlvbl9hY3Rpb248NCwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMyksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChSZXN1bHQoJmExKShQYXIxLCBQYXIyLCBQYXIzKSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLAorICAgICBjb25zdCBBcmc0JiBhNCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDQsIGZ1bmN0aW9uX2FjdGlvbjw0LCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMyksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMyksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCkKKyAgICApOworfQorI2VuZGlmCisKKyAjaWZuZGVmIEJPT1NUX0xBTUJEQV9JTkNPUlJFQ1RfQklORF9PVkVSTE9BRElORyAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NCwgZnVuY3Rpb25fYWN0aW9uPDQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDQsIGZ1bmN0aW9uX2FjdGlvbjw0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNAorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NCwgZnVuY3Rpb25fYWN0aW9uPDQsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNAorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NCwgZnVuY3Rpb25fYWN0aW9uPDQsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQpCisgICAgKTsKK30KKworCisgI2Vsc2UgCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnND4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDQsIGZ1bmN0aW9uX2FjdGlvbjw0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDQsIGZ1bmN0aW9uX2FjdGlvbjw0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNAorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0KQorICAgICk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQ+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw0LCBmdW5jdGlvbl9hY3Rpb248NCwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDQsIGZ1bmN0aW9uX2FjdGlvbjw0LCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNAorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgUGFyMSwgY2xhc3MgUGFyMiwgY2xhc3MgUGFyMywgY2xhc3MgQXJnMiwKKyAgICAgICAgICBjbGFzcyBBcmczLCBjbGFzcyBBcmc0PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NCwgZnVuY3Rpb25fYWN0aW9uPDQsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCogY29uc3QgJiBhMSkoUGFyMSwgUGFyMiwgUGFyMyksIGNvbnN0IEFyZzImIGEyLAorICAgICBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw0LCBmdW5jdGlvbl9hY3Rpb248NCwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQpCisgICAgKTsKK30KKworCisgI2VuZGlmIAorCisvLyA1LWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBQYXI0LAorICAgICAgICAgIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzU+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw1LCBmdW5jdGlvbl9hY3Rpb248NSwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsCisgICAgICBjb25zdCBBcmc1CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCZhMSkoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCksIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywKKyAgICAgY29uc3QgQXJnNCYgYTQsIGNvbnN0IEFyZzUmIGE1KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NSwgZnVuY3Rpb25fYWN0aW9uPDUsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwKKyAgICAgICAgY29uc3QgQXJnNQorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwKKyAgICAgICAgY29uc3QgQXJnNQorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSkKKyAgICApOworfQorI2VuZGlmCisKKyAjaWZuZGVmIEJPT1NUX0xBTUJEQV9JTkNPUlJFQ1RfQklORF9PVkVSTE9BRElORyAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NSwgZnVuY3Rpb25fYWN0aW9uPDU+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw1LCBmdW5jdGlvbl9hY3Rpb248NT4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1KQorICAgICk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsCisgICAgICAgICAgY2xhc3MgQXJnNT4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDUsIGZ1bmN0aW9uX2FjdGlvbjw1LCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw1LCBmdW5jdGlvbl9hY3Rpb248NSwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNQorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUpCisgICAgKTsKK30KKworCisgI2Vsc2UgCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNT4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDUsIGZ1bmN0aW9uX2FjdGlvbjw1PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw1LCBmdW5jdGlvbl9hY3Rpb248NT4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwKKyAgICAgICAgICBjbGFzcyBBcmc1PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NSwgZnVuY3Rpb25fYWN0aW9uPDUsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsCisgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEsIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsCisgICAgIGNvbnN0IEFyZzUmIGE1KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NSwgZnVuY3Rpb25fYWN0aW9uPDUsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgUGFyMSwgY2xhc3MgUGFyMiwgY2xhc3MgUGFyMywgY2xhc3MgUGFyNCwKKyAgICAgICAgICBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NSwgZnVuY3Rpb25fYWN0aW9uPDUsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LAorICAgICAgY29uc3QgQXJnNQorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgqIGNvbnN0ICYgYTEpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQpLCBjb25zdCBBcmcyJiBhMiwKKyAgICAgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LCBjb25zdCBBcmc1JiBhNSkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDUsIGZ1bmN0aW9uX2FjdGlvbjw1LCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoKikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsCisgICAgICAgIGNvbnN0IEFyZzUKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoKikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsCisgICAgICAgIGNvbnN0IEFyZzUKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUpCisgICAgKTsKK30KKworCisgI2VuZGlmIAorCisvLyA2LWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBQYXI0LAorICAgICAgICAgIGNsYXNzIFBhcjUsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNj4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDYsIGZ1bmN0aW9uX2FjdGlvbjw2LCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChSZXN1bHQoJmExKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1KSwgY29uc3QgQXJnMiYgYTIsCisgICAgIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDYsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCisgICAgKTsKK30KKyNlbmRpZgorCisgI2lmbmRlZiBCT09TVF9MQU1CREFfSU5DT1JSRUNUX0JJTkRfT1ZFUkxPQURJTkcgCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwKKyAgICAgICAgICBjbGFzcyBBcmc2PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDY+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDY+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwKKyAgICAgICAgICBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDYsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LAorICAgICBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw2LCBmdW5jdGlvbl9hY3Rpb248NiwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQorICAgICk7Cit9CisKKworICNlbHNlIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNj4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDYsIGZ1bmN0aW9uX2FjdGlvbjw2PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDY+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzY+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw2LCBmdW5jdGlvbl9hY3Rpb248NiwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDYsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQorICAgICk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIFBhcjEsIGNsYXNzIFBhcjIsIGNsYXNzIFBhcjMsIGNsYXNzIFBhcjQsCisgICAgICAgICAgY2xhc3MgUGFyNSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwKKyAgICAgICAgICBjbGFzcyBBcmc2PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NiwgZnVuY3Rpb25fYWN0aW9uPDYsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNgorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgqIGNvbnN0ICYgYTEpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUpLCBjb25zdCBBcmcyJiBhMiwKKyAgICAgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LCBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw2LCBmdW5jdGlvbl9hY3Rpb248NiwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKKyAgICApOworfQorCisKKyAjZW5kaWYgCisKKy8vIDctYXJndW1lbnQgYmluZCBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpZm5kZWYgQk9PU1RfUkVGX1RPX0ZVTkNfQ09ORkxJQ1RTX1dJVEhfUkVGX1RPX1QKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIFBhcjEsIGNsYXNzIFBhcjIsIGNsYXNzIFBhcjMsIGNsYXNzIFBhcjQsCisgICAgICAgICAgY2xhc3MgUGFyNSwgY2xhc3MgUGFyNiwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwKKyAgICAgICAgICBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248NywgZnVuY3Rpb25fYWN0aW9uPDcsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCYpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNworICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgmYTEpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYpLCBjb25zdCBBcmcyJiBhMiwKKyAgICAgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LCBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYsCisgICAgIGNvbnN0IEFyZzcmIGE3KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NywgZnVuY3Rpb25fYWN0aW9uPDcsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNworICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2KSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNworICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQorICAgICk7Cit9CisjZW5kaWYKKworICNpZm5kZWYgQk9PU1RfTEFNQkRBX0lOQ09SUkVDVF9CSU5EX09WRVJMT0FESU5HIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNz4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDcsIGZ1bmN0aW9uX2FjdGlvbjw3PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LAorICAgICAgY29uc3QgQXJnNworICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LAorICAgICBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYsIGNvbnN0IEFyZzcmIGE3KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248NywgZnVuY3Rpb25fYWN0aW9uPDc+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LAorICAgICAgICBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNworICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQorICAgICk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsCisgICAgICAgICAgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNz4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDcsIGZ1bmN0aW9uX2FjdGlvbjw3LCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsCisgICAgICBjb25zdCBBcmc3CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEsIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsCisgICAgIGNvbnN0IEFyZzUmIGE1LCBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw3LCBmdW5jdGlvbl9hY3Rpb248NywgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNworICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsCisgICAgICAgIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKKyAgICApOworfQorCisKKyAjZWxzZSAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LAorICAgICAgICAgIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzc+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw3LCBmdW5jdGlvbl9hY3Rpb248Nz4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsCisgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEsIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsCisgICAgIGNvbnN0IEFyZzUmIGE1LCBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw3LCBmdW5jdGlvbl9hY3Rpb248Nz4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzc+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw3LCBmdW5jdGlvbl9hY3Rpb248NywgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNykgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDcsIGZ1bmN0aW9uX2FjdGlvbjw3LCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNworICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgUGFyMSwgY2xhc3MgUGFyMiwgY2xhc3MgUGFyMywgY2xhc3MgUGFyNCwKKyAgICAgICAgICBjbGFzcyBQYXI1LCBjbGFzcyBQYXI2LCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzc+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw3LCBmdW5jdGlvbl9hY3Rpb248NywgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBSZXN1bHQoKikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiksIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsCisgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCogY29uc3QgJiBhMSkoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiksCisgICAgIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsIGNvbnN0IEFyZzUmIGE1LAorICAgICBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw3LCBmdW5jdGlvbl9hY3Rpb248NywgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYpLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCisgICAgKTsKK30KKworCisgI2VuZGlmIAorCisvLyA4LWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBQYXI0LAorICAgICAgICAgIGNsYXNzIFBhcjUsIGNsYXNzIFBhcjYsIGNsYXNzIFBhcjcsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsCisgICAgICAgICAgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDgsIGZ1bmN0aW9uX2FjdGlvbjw4LCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3KSwgY29uc3QgQXJnMiwKKyAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChSZXN1bHQoJmExKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3KSwgY29uc3QgQXJnMiYgYTIsCisgICAgIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LAorICAgICBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw4LCBmdW5jdGlvbl9hY3Rpb248OCwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCYpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcpLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCYpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcpLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQorICAgICk7Cit9CisjZW5kaWYKKworICNpZm5kZWYgQk9PU1RfTEFNQkRBX0lOQ09SUkVDVF9CSU5EX09WRVJMT0FESU5HIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDgsIGZ1bmN0aW9uX2FjdGlvbjw4PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LAorICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOAorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LAorICAgICBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYsIGNvbnN0IEFyZzcmIGE3LCBjb25zdCBBcmc4JiBhOCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDgsIGZ1bmN0aW9uX2FjdGlvbjw4PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOAorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsCisgICAgICAgIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwKKyAgICAgICAgICBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248OCwgZnVuY3Rpb25fYWN0aW9uPDgsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwKKyAgICAgIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw4LCBmdW5jdGlvbl9hY3Rpb248OCwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOAorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsCisgICAgICAgIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCisgICAgKTsKK30KKworCisgI2Vsc2UgCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwKKyAgICAgICAgICBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4PgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248OCwgZnVuY3Rpb25fYWN0aW9uPDg+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOAorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LAorICAgICBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYsIGNvbnN0IEFyZzcmIGE3LCBjb25zdCBBcmc4JiBhOCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDgsIGZ1bmN0aW9uX2FjdGlvbjw4PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOAorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzg+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw4LCBmdW5jdGlvbl9hY3Rpb248OCwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw4LCBmdW5jdGlvbl9hY3Rpb248OCwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOAorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBQYXI0LAorICAgICAgICAgIGNsYXNzIFBhcjUsIGNsYXNzIFBhcjYsIGNsYXNzIFBhcjcsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsCisgICAgICAgICAgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDgsIGZ1bmN0aW9uX2FjdGlvbjw4LCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIFJlc3VsdCgqKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3KSwgY29uc3QgQXJnMiwKKyAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChSZXN1bHQoKiBjb25zdCAmIGExKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3KSwKKyAgICAgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwgY29uc3QgQXJnNSYgYTUsCisgICAgIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw4LCBmdW5jdGlvbl9hY3Rpb248OCwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcpLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcpLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQorICAgICk7Cit9CisKKworICNlbmRpZiAKKworLy8gOS1hcmd1bWVudCBiaW5kIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI2lmbmRlZiBCT09TVF9SRUZfVE9fRlVOQ19DT05GTElDVFNfV0lUSF9SRUZfVE9fVAordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgUGFyMSwgY2xhc3MgUGFyMiwgY2xhc3MgUGFyMywgY2xhc3MgUGFyNCwKKyAgICAgICAgICBjbGFzcyBQYXI1LCBjbGFzcyBQYXI2LCBjbGFzcyBQYXI3LCBjbGFzcyBQYXI4LCBjbGFzcyBBcmcyLAorICAgICAgICAgIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsCisgICAgICAgICAgY2xhc3MgQXJnOCwgY2xhc3MgQXJnOT4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDksIGZ1bmN0aW9uX2FjdGlvbjw5LCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3LCBQYXI4KSwgY29uc3QgQXJnMiwKKyAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsCisgICAgICBjb25zdCBBcmc5CisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCZhMSkoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCksCisgICAgIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsIGNvbnN0IEFyZzUmIGE1LAorICAgICBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcsIGNvbnN0IEFyZzgmIGE4LCBjb25zdCBBcmc5JiBhOSkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDksIGZ1bmN0aW9uX2FjdGlvbjw5LCBSZXN1bHQ+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCksIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsCisgICAgICAgIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCksIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsCisgICAgICAgIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQorICAgICk7Cit9CisjZW5kaWYKKworICNpZm5kZWYgQk9PU1RfTEFNQkRBX0lOQ09SUkVDVF9CSU5EX09WRVJMT0FESU5HIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOCwgY2xhc3MgQXJnOT4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDksIGZ1bmN0aW9uX2FjdGlvbjw5PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LAorICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOQorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LAorICAgICBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYsIGNvbnN0IEFyZzcmIGE3LCBjb25zdCBBcmc4JiBhOCwKKyAgICAgY29uc3QgQXJnOSYgYTkpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw5LCBmdW5jdGlvbl9hY3Rpb248OT4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsCisgICAgICAgIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LAorICAgICAgICBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4LCBjb25zdCBBcmc5CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzk+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw5LCBmdW5jdGlvbl9hY3Rpb248OSwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LAorICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOQorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKGNvbnN0IEFyZzEmIGExLCBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LAorICAgICBjb25zdCBBcmc1JiBhNSwgY29uc3QgQXJnNiYgYTYsIGNvbnN0IEFyZzcmIGE3LCBjb25zdCBBcmc4JiBhOCwKKyAgICAgY29uc3QgQXJnOSYgYTkpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw5LCBmdW5jdGlvbl9hY3Rpb248OSwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOQorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsCisgICAgICAgIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQorICAgICk7Cit9CisKKworICNlbHNlIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOCwgY2xhc3MgQXJnOT4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDksIGZ1bmN0aW9uX2FjdGlvbjw5PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgsCisgICAgIGNvbnN0IEFyZzkmIGE5KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248OSwgZnVuY3Rpb25fYWN0aW9uPDk+ID4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwKKyAgICAgICAgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywKKyAgICAgICAgY29uc3QgQXJnOCwgY29uc3QgQXJnOQorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzk+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw5LCBmdW5jdGlvbl9hY3Rpb248OSwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmNvbnN0aWZ5X25vbl9mdW5jczxBcmcxPjo6dHlwZSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywKKyAgICAgIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgsCisgICAgIGNvbnN0IEFyZzkmIGE5KSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248OSwgZnVuY3Rpb25fYWN0aW9uPDksIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsCisgICAgICAgIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsCisgICAgICAgIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzkKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQorICAgICk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQsIGNsYXNzIFBhcjEsIGNsYXNzIFBhcjIsIGNsYXNzIFBhcjMsIGNsYXNzIFBhcjQsCisgICAgICAgICAgY2xhc3MgUGFyNSwgY2xhc3MgUGFyNiwgY2xhc3MgUGFyNywgY2xhc3MgUGFyOCwgY2xhc3MgQXJnMiwKKyAgICAgICAgICBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3LAorICAgICAgICAgIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzk+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjw5LCBmdW5jdGlvbl9hY3Rpb248OSwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBSZXN1bHQoKikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCksIGNvbnN0IEFyZzIsCisgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4LAorICAgICAgY29uc3QgQXJnOQorICAgID46OnR5cGUKKyAgPgorPgorCitiaW5kKFJlc3VsdCgqIGNvbnN0ICYgYTEpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcsIFBhcjgpLAorICAgICBjb25zdCBBcmcyJiBhMiwgY29uc3QgQXJnMyYgYTMsIGNvbnN0IEFyZzQmIGE0LCBjb25zdCBBcmc1JiBhNSwKKyAgICAgY29uc3QgQXJnNiYgYTYsIGNvbnN0IEFyZzcmIGE3LCBjb25zdCBBcmc4JiBhOCwgY29uc3QgQXJnOSYgYTkpIHsKKyAgcmV0dXJuCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjw5LCBmdW5jdGlvbl9hY3Rpb248OSwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcsIFBhcjgpLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5CisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcsIFBhcjgpLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5CisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKKyAgICApOworfQorCisKKyAjZW5kaWYgCisKKy8vIDEwLWFyZ3VtZW50IGJpbmQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWZuZGVmIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBQYXI0LAorICAgICAgICAgIGNsYXNzIFBhcjUsIGNsYXNzIFBhcjYsIGNsYXNzIFBhcjcsIGNsYXNzIFBhcjgsIGNsYXNzIFBhcjksCisgICAgICAgICAgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwKKyAgICAgICAgICBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4LCBjbGFzcyBBcmc5LCBjbGFzcyBBcmcxMD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDEwLCBmdW5jdGlvbl9hY3Rpb248MTAsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCYpKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcsIFBhcjgsIFBhcjkpLAorICAgICAgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywKKyAgICAgIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzksIGNvbnN0IEFyZzEwCisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCZhMSkoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCwgUGFyOSksCisgICAgIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsIGNvbnN0IEFyZzUmIGE1LAorICAgICBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcsIGNvbnN0IEFyZzgmIGE4LCBjb25zdCBBcmc5JiBhOSwKKyAgICAgY29uc3QgQXJnMTAmIGExMCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDEwLCBmdW5jdGlvbl9hY3Rpb248MTAsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgmKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3LCBQYXI4LCBQYXI5KSwKKyAgICAgICAgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwKKyAgICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwgY29uc3QgQXJnMTAKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoJikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCwgUGFyOSksCisgICAgICAgIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsCisgICAgICAgIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzksIGNvbnN0IEFyZzEwCisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKQorICAgICk7Cit9CisjZW5kaWYKKworICNpZm5kZWYgQk9PU1RfTEFNQkRBX0lOQ09SUkVDVF9CSU5EX09WRVJMT0FESU5HIAordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsCisgICAgICAgICAgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOCwgY2xhc3MgQXJnOSwgY2xhc3MgQXJnMTA+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjwxMCwgZnVuY3Rpb25fYWN0aW9uPDEwPiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LAorICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwgY29uc3QgQXJnMTAKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgsCisgICAgIGNvbnN0IEFyZzkmIGE5LCBjb25zdCBBcmcxMCYgYTEwKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MTAsIGZ1bmN0aW9uX2FjdGlvbjwxMD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIGNvbnN0IEFyZzEsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsCisgICAgICAgIGNvbnN0IEFyZzYsIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzksIGNvbnN0IEFyZzEwCisgICAgICA+Ojp0eXBlCisgICAgPgorICAgICggdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwgY29uc3QgQXJnMTAKKyAgICAgID46OnR5cGUKKyAgICAgIChhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCisgICAgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlc3VsdCwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwKKyAgICAgICAgICBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4LCBjbGFzcyBBcmc5LAorICAgICAgICAgIGNsYXNzIEFyZzEwPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MTAsIGZ1bmN0aW9uX2FjdGlvbjwxMCwgUmVzdWx0PiA+LAorICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LAorICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwgY29uc3QgQXJnMTAKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgsCisgICAgIGNvbnN0IEFyZzkmIGE5LCBjb25zdCBBcmcxMCYgYTEwKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MTAsIGZ1bmN0aW9uX2FjdGlvbjwxMCwgUmVzdWx0PiA+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgICAgY29uc3QgQXJnMSwgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwKKyAgICAgICAgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwgY29uc3QgQXJnMTAKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBjb25zdCBBcmcxLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LAorICAgICAgICBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4LCBjb25zdCBBcmc5LCBjb25zdCBBcmcxMAorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkKKyAgICApOworfQorCisKKyAjZWxzZSAKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LAorICAgICAgICAgIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzksIGNsYXNzIEFyZzEwPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MTAsIGZ1bmN0aW9uX2FjdGlvbjwxMD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpjb25zdGlmeV9ub25fZnVuY3M8QXJnMT46OnR5cGUsIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsCisgICAgICBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LCBjb25zdCBBcmc4LCBjb25zdCBBcmc5LAorICAgICAgY29uc3QgQXJnMTAKKyAgICA+Ojp0eXBlCisgID4KKz4KKworYmluZChjb25zdCBBcmcxJiBhMSwgY29uc3QgQXJnMiYgYTIsIGNvbnN0IEFyZzMmIGEzLCBjb25zdCBBcmc0JiBhNCwKKyAgICAgY29uc3QgQXJnNSYgYTUsIGNvbnN0IEFyZzYmIGE2LCBjb25zdCBBcmc3JiBhNywgY29uc3QgQXJnOCYgYTgsCisgICAgIGNvbnN0IEFyZzkmIGE5LCBjb25zdCBBcmcxMCYgYTEwKSB7CisgIHJldHVybgorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICBhY3Rpb248MTAsIGZ1bmN0aW9uX2FjdGlvbjwxMD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5LCBjb25zdCBBcmcxMAorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5LCBjb25zdCBBcmcxMAorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LAorICAgICAgICAgIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzksCisgICAgICAgICAgY2xhc3MgQXJnMTA+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjwxMCwgZnVuY3Rpb25fYWN0aW9uPDEwLCBSZXN1bHQ+ID4sCisgICAgdHlwZW5hbWUgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLCBjb25zdCBBcmczLAorICAgICAgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwKKyAgICAgIGNvbnN0IEFyZzEwCisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoY29uc3QgQXJnMSYgYTEsIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsCisgICAgIGNvbnN0IEFyZzUmIGE1LCBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcsIGNvbnN0IEFyZzgmIGE4LAorICAgICBjb25zdCBBcmc5JiBhOSwgY29uc3QgQXJnMTAmIGExMCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDEwLCBmdW5jdGlvbl9hY3Rpb248MTAsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5LCBjb25zdCBBcmcxMAorICAgICAgPjo6dHlwZQorICAgID4KKyAgICAoIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6Y29uc3RpZnlfbm9uX2Z1bmNzPEFyZzE+Ojp0eXBlLCBjb25zdCBBcmcyLAorICAgICAgICBjb25zdCBBcmczLCBjb25zdCBBcmc0LCBjb25zdCBBcmc1LCBjb25zdCBBcmc2LCBjb25zdCBBcmc3LAorICAgICAgICBjb25zdCBBcmc4LCBjb25zdCBBcmc5LCBjb25zdCBBcmcxMAorICAgICAgPjo6dHlwZQorICAgICAgKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkKKyAgICApOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0LCBjbGFzcyBQYXIxLCBjbGFzcyBQYXIyLCBjbGFzcyBQYXIzLCBjbGFzcyBQYXI0LAorICAgICAgICAgIGNsYXNzIFBhcjUsIGNsYXNzIFBhcjYsIGNsYXNzIFBhcjcsIGNsYXNzIFBhcjgsIGNsYXNzIFBhcjksCisgICAgICAgICAgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwKKyAgICAgICAgICBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4LCBjbGFzcyBBcmc5LCBjbGFzcyBBcmcxMD4KK2lubGluZSBjb25zdAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgYWN0aW9uPDEwLCBmdW5jdGlvbl9hY3Rpb248MTAsIFJlc3VsdD4gPiwKKyAgICB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgUmVzdWx0KCopKFBhcjEsIFBhcjIsIFBhcjMsIFBhcjQsIFBhcjUsIFBhcjYsIFBhcjcsIFBhcjgsIFBhcjkpLAorICAgICAgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwgY29uc3QgQXJnNywKKyAgICAgIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzksIGNvbnN0IEFyZzEwCisgICAgPjo6dHlwZQorICA+Cis+CisKK2JpbmQoUmVzdWx0KCogY29uc3QgJiBhMSkoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCwKKyAgICAgUGFyOSksIGNvbnN0IEFyZzImIGEyLCBjb25zdCBBcmczJiBhMywgY29uc3QgQXJnNCYgYTQsIGNvbnN0IEFyZzUmIGE1LAorICAgICBjb25zdCBBcmc2JiBhNiwgY29uc3QgQXJnNyYgYTcsIGNvbnN0IEFyZzgmIGE4LCBjb25zdCBBcmc5JiBhOSwKKyAgICAgY29uc3QgQXJnMTAmIGExMCkgeworICByZXR1cm4KKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgYWN0aW9uPDEwLCBmdW5jdGlvbl9hY3Rpb248MTAsIFJlc3VsdD4gPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6YmluZF90dXBsZV9tYXBwZXI8CisgICAgICAgIFJlc3VsdCgqKShQYXIxLCBQYXIyLCBQYXIzLCBQYXI0LCBQYXI1LCBQYXI2LCBQYXI3LCBQYXI4LCBQYXI5KSwKKyAgICAgICAgY29uc3QgQXJnMiwgY29uc3QgQXJnMywgY29uc3QgQXJnNCwgY29uc3QgQXJnNSwgY29uc3QgQXJnNiwKKyAgICAgICAgY29uc3QgQXJnNywgY29uc3QgQXJnOCwgY29uc3QgQXJnOSwgY29uc3QgQXJnMTAKKyAgICAgID46OnR5cGUKKyAgICA+CisgICAgKCB0eXBlbmFtZSBkZXRhaWw6OmJpbmRfdHVwbGVfbWFwcGVyPAorICAgICAgICBSZXN1bHQoKikoUGFyMSwgUGFyMiwgUGFyMywgUGFyNCwgUGFyNSwgUGFyNiwgUGFyNywgUGFyOCwgUGFyOSksCisgICAgICAgIGNvbnN0IEFyZzIsIGNvbnN0IEFyZzMsIGNvbnN0IEFyZzQsIGNvbnN0IEFyZzUsIGNvbnN0IEFyZzYsCisgICAgICAgIGNvbnN0IEFyZzcsIGNvbnN0IEFyZzgsIGNvbnN0IEFyZzksIGNvbnN0IEFyZzEwCisgICAgICA+Ojp0eXBlCisgICAgICAoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKQorICAgICk7Cit9CisKKworICNlbmRpZiAKKworfSAvLyBuYW1lc3BhY2UgbGFtYmRhIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvZnVuY3Rpb25fYWRhcHRvcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2Z1bmN0aW9uX2FkYXB0b3JzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjUzNjdlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2Z1bmN0aW9uX2FkYXB0b3JzLmhwcApAQCAtMCwwICsxLDc4OSBAQAorLy8gQm9vc3QgTGFtYmRhIExpYnJhcnkgLSAgZnVuY3Rpb25fYWRhcHRvcnMuaHBwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgd3d3LmJvb3N0Lm9yZworCisKKyNpZm5kZWYgQk9PU1RfTEFNQkRBX0ZVTkNUSU9OX0FEQVBUT1JTX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfRlVOQ1RJT05fQURBUFRPUlNfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaGFzX3h4eC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHVwbGUvdHVwbGUuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL3NhbWVfdHJhaXRzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3ZvbGF0aWxlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC91dGlsaXR5L3Jlc3VsdF9vZi5ocHAiCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCitCT09TVF9NUExfSEFTX1hYWF9URU1QTEFURV9ERUYoc2lnKQorCit0ZW1wbGF0ZTxjbGFzcyBUdXBsZT4KK3N0cnVjdCByZW1vdmVfcmVmZXJlbmNlc19mcm9tX2VsZW1lbnRzIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHVwbGVzOjpjb25zPAorICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPHR5cGVuYW1lIFR1cGxlOjpoZWFkX3R5cGU+Ojp0eXBlLAorICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2VzX2Zyb21fZWxlbWVudHM8dHlwZW5hbWUgVHVwbGU6OnRhaWxfdHlwZT46OnR5cGUKKyAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJlbW92ZV9yZWZlcmVuY2VzX2Zyb21fZWxlbWVudHM8bmRuYm9vc3Q6OnR1cGxlczo6bnVsbF90eXBlPiB7CisgIHR5cGVkZWYgbmRuYm9vc3Q6OnR1cGxlczo6bnVsbF90eXBlIHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlIDxjbGFzcyBGdW5jPiBzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvciB7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEZ1bmM+Ojp0eXBlIHBsYWluRjsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1JFU1VMVF9PRikKKyAgLy8gU3VwcG9ydCBmdW5jdG9ycyB0aGF0IHVzZSB0aGUgbmRuYm9vc3Q6OnJlc3VsdF9vZiByZXR1cm4gdHlwZSBjb252ZW50aW9uLgorICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZSwgaW50IExlbmd0aCwgYm9vbCBIYXNTaWc+CisgIHN0cnVjdCByZXN1bHRfY29udmVydGVyOworICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZSwgaW50IExlbmd0aD4KKyAgc3RydWN0IHJlc3VsdF9jb252ZXJ0ZXI8VHVwbGUsIExlbmd0aCwgdHJ1ZT4KKyAgICA6IHBsYWluRjo6dGVtcGxhdGUgc2lnPAorICAgICAgICB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VzX2Zyb21fZWxlbWVudHM8VHVwbGU+Ojp0eXBlCisgICAgICA+CisgIHt9OworICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZT4KKyAgc3RydWN0IHJlc3VsdF9jb252ZXJ0ZXI8VHVwbGUsIDAsIGZhbHNlPgorICAgIDogcmVzdWx0X29mPHBsYWluRigpPgorICB7fTsKKyAgdGVtcGxhdGU8Y2xhc3MgVHVwbGU+CisgIHN0cnVjdCByZXN1bHRfY29udmVydGVyPFR1cGxlLCAxLCBmYWxzZT4KKyAgICA6IHJlc3VsdF9vZjxwbGFpbkYoCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwxLCBUdXBsZT46OnR5cGUpCisgICAgICA+CisgIHt9OworICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZT4KKyAgc3RydWN0IHJlc3VsdF9jb252ZXJ0ZXI8VHVwbGUsIDIsIGZhbHNlPgorICAgIDogcmVzdWx0X29mPHBsYWluRigKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDEsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDIsIFR1cGxlPjo6dHlwZSkKKyAgICAgID4KKyAge307CisgIHRlbXBsYXRlPGNsYXNzIFR1cGxlPgorICBzdHJ1Y3QgcmVzdWx0X2NvbnZlcnRlcjxUdXBsZSwgMywgZmFsc2U+CisgICAgOiByZXN1bHRfb2Y8cGxhaW5GKAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MSwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MiwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MywgVHVwbGU+Ojp0eXBlKQorICAgICAgPgorICB7fTsKKyAgdGVtcGxhdGU8Y2xhc3MgVHVwbGU+CisgIHN0cnVjdCByZXN1bHRfY29udmVydGVyPFR1cGxlLCA0LCBmYWxzZT4KKyAgICA6IHJlc3VsdF9vZjxwbGFpbkYoCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwxLCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwyLCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwzLCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDw0LCBUdXBsZT46OnR5cGUpCisgICAgICA+CisgIHt9OworICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZT4KKyAgc3RydWN0IHJlc3VsdF9jb252ZXJ0ZXI8VHVwbGUsIDUsIGZhbHNlPgorICAgIDogcmVzdWx0X29mPHBsYWluRigKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDEsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDIsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDMsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDQsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDUsIFR1cGxlPjo6dHlwZSkKKyAgICAgID4KKyAge307CisgIHRlbXBsYXRlPGNsYXNzIFR1cGxlPgorICBzdHJ1Y3QgcmVzdWx0X2NvbnZlcnRlcjxUdXBsZSwgNiwgZmFsc2U+CisgICAgOiByZXN1bHRfb2Y8cGxhaW5GKAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MSwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MiwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MywgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NCwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NSwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NiwgVHVwbGU+Ojp0eXBlKQorICAgICAgPgorICB7fTsKKyAgdGVtcGxhdGU8Y2xhc3MgVHVwbGU+CisgIHN0cnVjdCByZXN1bHRfY29udmVydGVyPFR1cGxlLCA3LCBmYWxzZT4KKyAgICA6IHJlc3VsdF9vZjxwbGFpbkYoCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwxLCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwyLCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDwzLCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDw0LCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDw1LCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDw2LCBUdXBsZT46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDw3LCBUdXBsZT46OnR5cGUpCisgICAgICA+CisgIHt9OworICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZT4KKyAgc3RydWN0IHJlc3VsdF9jb252ZXJ0ZXI8VHVwbGUsIDgsIGZhbHNlPgorICAgIDogcmVzdWx0X29mPHBsYWluRigKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDEsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDIsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDMsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDQsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDUsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDYsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDcsIFR1cGxlPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgdHVwbGVzOjplbGVtZW50PDgsIFR1cGxlPjo6dHlwZSkKKyAgICAgID4KKyAge307CisgIHRlbXBsYXRlPGNsYXNzIFR1cGxlPgorICBzdHJ1Y3QgcmVzdWx0X2NvbnZlcnRlcjxUdXBsZSwgOSwgZmFsc2U+CisgICAgOiByZXN1bHRfb2Y8cGxhaW5GKAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MSwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MiwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8MywgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NCwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NSwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NiwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8NywgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8OCwgVHVwbGU+Ojp0eXBlLAorICAgICAgICB0eXBlbmFtZSB0dXBsZXM6OmVsZW1lbnQ8OSwgVHVwbGU+Ojp0eXBlKQorICAgICAgPgorICB7fTsKKworICAvLyB3ZSBkbyBub3Qga25vdyB0aGUgcmV0dXJuIHR5cGUgb2ZmLWhhbmQsIHdlIG11c3QgYXNrIGl0IGZyb20gRnVuYworICAvLyBUbyBzaWcgd2UgcGFzcyBhIGNvbnMgbGlzdCwgd2hlcmUgdGhlIGhlYWQgaXMgdGhlIGZ1bmN0aW9uIG9iamVjdCB0eXBlCisgIC8vIGl0c2VsZiAocG90ZW50aWFsbHkgY3YtcXVhbGlmaWVkKQorICAvLyBhbmQgdGhlIHRhaWwgY29udGFpbnMgdGhlIHR5cGVzIG9mIHRoZSBhY3R1YWwgYXJndW1lbnRzIHRvIGJlIHBhc3NlZAorICAvLyB0byB0aGUgZnVuY3Rpb24gb2JqZWN0LiBUaGUgYXJndW1lbnRzIGNhbiBiZSBjdiBxdWFsaWZpZWQKKyAgLy8gYXMgd2VsbC4KKyAgdGVtcGxhdGUgPGNsYXNzIEFyZ3M+CisgIHN0cnVjdCBzaWcKKyAgICA6IHJlc3VsdF9jb252ZXJ0ZXI8CisgICAgICAgIEFyZ3MKKyAgICAgICwgdHVwbGVzOjpsZW5ndGg8dHlwZW5hbWUgQXJnczo6dGFpbF90eXBlPjo6dmFsdWUKKyAgICAgICwgZGV0YWlsOjpoYXNfc2lnPHBsYWluRj46OnZhbHVlCisgICAgICA+CisgIHt9OworI2Vsc2UgLy8gQk9PU1RfTk9fUkVTVUxUX09GCisKKyAgdGVtcGxhdGUgPGNsYXNzIEFyZ3M+IGNsYXNzIHNpZyB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEZ1bmM+Ojp0eXBlIHBsYWluRjsKKyAgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgcGxhaW5GOjp0ZW1wbGF0ZSBzaWc8CisgICAgICB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VzX2Zyb21fZWxlbWVudHM8QXJncz46OnR5cGUKKyAgICA+Ojp0eXBlIHR5cGU7CisgIH07CisjZW5kaWYKKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExPgorICBzdGF0aWMgUkVUIGFwcGx5KEExJiBhMSkgeworICAgIHJldHVybiBhMSgpOworICB9CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyPgorICBzdGF0aWMgUkVUIGFwcGx5KEExJiBhMSwgQTImIGEyKSB7CisgICAgcmV0dXJuIGExKGEyKTsKKyAgfQorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMykgeworICAgIHJldHVybiBhMShhMiwgYTMpOworICB9CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0KSB7CisgICAgcmV0dXJuIGExKGEyLCBhMywgYTQpOworICB9CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICBzdGF0aWMgUkVUIGFwcGx5KEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1KSB7CisgICAgcmV0dXJuIGExKGEyLCBhMywgYTQsIGE1KTsKKyAgfQorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+CisgIHN0YXRpYyBSRVQgYXBwbHkoQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNikgeworICAgIHJldHVybiBhMShhMiwgYTMsIGE0LCBhNSwgYTYpOworICB9CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgCisgICAgICAgICAgIGNsYXNzIEE3PgorICBzdGF0aWMgUkVUIGFwcGx5KEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQTcmIGE3KSB7CisgICAgcmV0dXJuIGExKGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpOworICB9CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgCisgICAgICAgICAgIGNsYXNzIEE3LCBjbGFzcyBBOD4KKyAgc3RhdGljIFJFVCBhcHBseShBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEE3JiBhNywgQTgmIGE4KSB7CisgICAgcmV0dXJuIGExKGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgfQorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIAorICAgICAgICAgICBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PgorICBzdGF0aWMgUkVUIGFwcGx5KEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQTcmIGE3LCBBOCYgYTgsIEE5JiBhOSkgeworICAgIHJldHVybiBhMShhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpOworICB9CisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgCisgICAgICAgICAgIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTksIGNsYXNzIEExMD4KKyAgc3RhdGljIFJFVCBhcHBseShBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEE3JiBhNywgQTgmIGE4LCBBOSYgYTksIEExMCYgYTEwKSB7CisgICAgcmV0dXJuIGExKGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEZ1bmM+IHN0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPGNvbnN0IEZ1bmM+OyAvLyBlcnJvciAKKworLy8gLS0gZnVuY3Rpb24gYWRhcHRvcnMgd2l0aCBkYXRhIG1lbWJlciBhY2Nlc3MKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIFQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxUIE9iamVjdDo6Kj4geworCisgIC8vICB0eXBlZGVmIGRldGFpbDo6dW5zcGVjaWZpZWQgdHlwZTsKKworICAvLyBUIGNhbiBoYXZlIHF1YWxpZmllcnMgYW5kIGNhbiBiZSBhIHJlZmVyZW5jZSB0eXBlCisgIC8vIFdlIGdldCB0aGUgcmV0dXJuIHR5cGUgYnkgYWRkaW5nIGNvbnN0LCBpZiB0aGUgb2JqZWN0IHRocm91Z2ggd2hpY2gKKyAgLy8gdGhlIGRhdGEgbWVtYmVyIGlzIGFjY2Vzc2VkIGlzIGNvbnN0LCBhbmQgZmluYWxseSBhZGRpbmcgYSByZWZlcmVuY2UKKyAgdGVtcGxhdGU8Y2xhc3MgQXJncz4gY2xhc3Mgc2lnIHsgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHVwbGVzOjplbGVtZW50PDEsIEFyZ3M+Ojp0eXBlIGFyZ3VtZW50X3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTwKKyAgICAgIGFyZ3VtZW50X3R5cGUKKyAgICA+Ojp0eXBlIHVucmVmX3R5cGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8bmRuYm9vc3Q6OmlzX2NvbnN0PHVucmVmX3R5cGU+Ojp2YWx1ZSwKKyAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfY29uc3Q8VD46OnR5cGUsCisgICAgICBUCisgICAgPjo6UkVUIHByb3Blcmx5X2NvbnN0ZWRfcmV0dXJuX3R5cGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8bmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPHVucmVmX3R5cGU+Ojp2YWx1ZSwKKyAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfdm9sYXRpbGU8cHJvcGVybHlfY29uc3RlZF9yZXR1cm5fdHlwZT46OnR5cGUsCisgICAgICBwcm9wZXJseV9jb25zdGVkX3JldHVybl90eXBlCisgICAgPjo6UkVUIHByb3Blcmx5X2N2ZF9yZXR1cm5fdHlwZTsKKworCisgIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxhcmd1bWVudF90eXBlPjo6dmFsdWUsCisgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX3JlZmVyZW5jZTxwcm9wZXJseV9jdmRfcmV0dXJuX3R5cGU+Ojp0eXBlLAorICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jdjxUPjo6dHlwZQorICAgID46OlJFVCB0eXBlOworICB9OworCisgIHRlbXBsYXRlIDxjbGFzcyBSRVQ+CisgIHN0YXRpYyBSRVQgYXBwbHkoIFQgT2JqZWN0OjoqZGF0YSwgT2JqZWN0JiBvKSB7CisgICAgcmV0dXJuIG8uKmRhdGE7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVD4KKyAgc3RhdGljIFJFVCBhcHBseSggVCBPYmplY3Q6OipkYXRhLCBjb25zdCBPYmplY3QmIG8pIHsKKyAgICByZXR1cm4gby4qZGF0YTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgUkVUPgorICBzdGF0aWMgUkVUIGFwcGx5KCBUIE9iamVjdDo6KmRhdGEsIHZvbGF0aWxlIE9iamVjdCYgbykgeworICAgIHJldHVybiBvLipkYXRhOworICB9CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQ+CisgIHN0YXRpYyBSRVQgYXBwbHkoIFQgT2JqZWN0OjoqZGF0YSwgY29uc3Qgdm9sYXRpbGUgT2JqZWN0JiBvKSB7CisgICAgcmV0dXJuIG8uKmRhdGE7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVD4KKyAgc3RhdGljIFJFVCBhcHBseSggVCBPYmplY3Q6OipkYXRhLCBPYmplY3QqIG8pIHsKKyAgICByZXR1cm4gby0+KmRhdGE7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVD4KKyAgc3RhdGljIFJFVCBhcHBseSggVCBPYmplY3Q6OipkYXRhLCBjb25zdCBPYmplY3QqIG8pIHsKKyAgICByZXR1cm4gby0+KmRhdGE7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVD4KKyAgc3RhdGljIFJFVCBhcHBseSggVCBPYmplY3Q6OipkYXRhLCB2b2xhdGlsZSBPYmplY3QqIG8pIHsKKyAgICByZXR1cm4gby0+KmRhdGE7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVD4KKyAgc3RhdGljIFJFVCBhcHBseSggVCBPYmplY3Q6OipkYXRhLCBjb25zdCB2b2xhdGlsZSBPYmplY3QqIG8pIHsKKyAgICByZXR1cm4gby0+KmRhdGE7CisgIH0KK307CisKKy8vIC0tIGZ1bmN0aW9uIGFkYXB0b3JzIHdpdGggMSBhcmd1bWVudCBhcHBseQorICAgCit0ZW1wbGF0ZSA8Y2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0ICh2b2lkKT4geworICAKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoKSkgeworICAgIHJldHVybiBmdW5jKCk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKCopKHZvaWQpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoKSkgeworICAgIHJldHVybiBmdW5jKCk7CisgIH0KK307CisKKworLy8gLS0gZnVuY3Rpb24gYWRhcHRvcnMgd2l0aCAyIGFyZ3VtZW50IGFwcGx5Cit0ZW1wbGF0ZSA8Y2xhc3MgT2JqZWN0LCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKE9iamVjdDo6KikoKSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVUPgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKCkgY29uc3QsIGNvbnN0IE9iamVjdCogbykgeworICAgIHJldHVybiAoby0+KmZ1bmMpKCk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVD4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKSgpIGNvbnN0LCBjb25zdCBPYmplY3QmIG8pIHsKKyAgICByZXR1cm4gKG8uKmZ1bmMpKCk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKSgpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoKSwgT2JqZWN0KiBvKSB7CisgICAgcmV0dXJuIChvLT4qZnVuYykoKTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgUkVUPgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKCksIE9iamVjdCYgbykgeworICAgIHJldHVybiAoby4qZnVuYykoKTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoQXJnMSk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTE+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSksIEExJiBhMSkgeworICAgIHJldHVybiBmdW5jKGExKTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoKikoQXJnMSk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTE+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSksIEExJiBhMSkgeworICAgIHJldHVybiBmdW5jKGExKTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDMgYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxKSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMT4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxKSBjb25zdCwgY29uc3QgT2JqZWN0KiBvLCAKKyAgICBBMSYgYTEpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTE+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSkgY29uc3QsIGNvbnN0IE9iamVjdCYgbywgCisgICAgQTEmIGExKSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxKT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMT4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxKSwgT2JqZWN0KiBvLCBBMSYgYTEpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTE+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSksIE9iamVjdCYgbywgQTEmIGExKSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKEFyZzEsIEFyZzIpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgc3RhdGljIFJlc3VsdCBhcHBseShSZXN1bHQgKCpmdW5jKShBcmcxLCBBcmcyKSwgQTEmIGExLCBBMiYgYTIpIHsKKyAgICByZXR1cm4gZnVuYyhhMSwgYTIpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0ICgqKShBcmcxLCBBcmcyKT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTI+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiksIEExJiBhMSwgQTImIGEyKSB7CisgICAgcmV0dXJuIGZ1bmMoYTEsIGEyKTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDQgYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyKSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTI+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMikgY29uc3QsIGNvbnN0IE9iamVjdCogbywgQTEmIGExLCBBMiYgYTIpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIpOworICB9CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyKSBjb25zdCwgY29uc3QgT2JqZWN0JiBvLCBBMSYgYTEsIEEyJiBhMikgeworICAgIHJldHVybiAoby4qZnVuYykoYTEsIGEyKTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIE9iamVjdCwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0IChPYmplY3Q6OiopKEFyZzEsIEFyZzIpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMj4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyKSwgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMikgeworICAgIHJldHVybiAoby0+KmZ1bmMpKGExLCBhMik7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyPgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIpLCBPYmplY3QmIG8sIEExJiBhMSwgQTImIGEyKSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0IChBcmcxLCBBcmcyLCBBcmczKT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KFJlc3VsdCAoKmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMpLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzKSB7CisgICAgcmV0dXJuIGZ1bmMoYTEsIGEyLCBhMyk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKCopKEFyZzEsIEFyZzIsIEFyZzMpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMyksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMpIHsKKyAgICByZXR1cm4gZnVuYyhhMSwgYTIsIGEzKTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDUgYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczKSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMpIGNvbnN0LCBjb25zdCBPYmplY3QqIG8sIEExJiBhMSwgQTImIGEyLCBBMyYgYTMpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzKTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzPgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMpIGNvbnN0LCBjb25zdCBPYmplY3QmIG8sIEExJiBhMSwgQTImIGEyLCBBMyYgYTMpIHsKKyAgICByZXR1cm4gKG8uKmZ1bmMpKGExLCBhMiwgYTMpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgT2JqZWN0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKE9iamVjdDo6KikoQXJnMSwgQXJnMiwgQXJnMyk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczKSwgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzKSB7CisgICAgcmV0dXJuIChvLT4qZnVuYykoYTEsIGEyLCBhMyk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczKSwgT2JqZWN0JiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzKSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzKTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCkgeworICAgIHJldHVybiBmdW5jKGExLCBhMiwgYTMsIGE0KTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoKikoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCkgeworICAgIHJldHVybiBmdW5jKGExLCBhMiwgYTMsIGE0KTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDYgYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0KSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0KSBjb25zdCwgY29uc3QgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCkgY29uc3QsIGNvbnN0IE9iamVjdCYgbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0KSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzLCBhNCk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBND4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0KSwgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCksIE9iamVjdCYgbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0KSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzLCBhNCk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4KKyAgc3RhdGljIFJlc3VsdCBhcHBseShSZXN1bHQgKCpmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1KSwgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUpIHsKKyAgICByZXR1cm4gZnVuYyhhMSwgYTIsIGEzLCBhNCwgYTUpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0ICgqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1KSB7CisgICAgcmV0dXJuIGZ1bmMoYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDcgYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1KSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSkgY29uc3QsIGNvbnN0IE9iamVjdCogbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUpOworICB9CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1KSBjb25zdCwgY29uc3QgT2JqZWN0JiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSkgeworICAgIHJldHVybiAoby4qZnVuYykoYTEsIGEyLCBhMywgYTQsIGE1KTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIE9iamVjdCwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0IChPYmplY3Q6OiopKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1KSwgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSkgeworICAgIHJldHVybiAoby0+KmZ1bmMpKGExLCBhMiwgYTMsIGE0LCBhNSk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUpLCBPYmplY3QmIG8sIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1KSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0IChBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KFJlc3VsdCAoKmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYpLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2KSB7CisgICAgcmV0dXJuIGZ1bmMoYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKCopKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTY+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYpIHsKKyAgICByZXR1cm4gZnVuYyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDggYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2KSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYpIGNvbnN0LCBjb25zdCBPYmplY3QqIG8sIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2PgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYpIGNvbnN0LCBjb25zdCBPYmplY3QmIG8sIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYpIHsKKyAgICByZXR1cm4gKG8uKmZ1bmMpKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgT2JqZWN0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKE9iamVjdDo6KikoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNik+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2KSwgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2KSB7CisgICAgcmV0dXJuIChvLT4qZnVuYykoYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2KSwgT2JqZWN0JiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2KSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNyk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNyksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIEE3JiBhNykgeworICAgIHJldHVybiBmdW5jKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoKikoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNyk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNyksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIEE3JiBhNykgeworICAgIHJldHVybiBmdW5jKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDkgYXJndW1lbnQgYXBwbHkKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3KSBjb25zdD4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3KSBjb25zdCwgY29uc3QgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCBBNyYgYTcpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNykgY29uc3QsIGNvbnN0IE9iamVjdCYgbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3KSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNz4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3KSwgT2JqZWN0KiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCBBNyYgYTcpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgIH0KKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNyksIE9iamVjdCYgbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3KSB7CisgICAgcmV0dXJuIChvLipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4LCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYsIEFyZzcsIEFyZzgpPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUmVzdWx0IHR5cGU7IH07CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4KKyAgc3RhdGljIFJlc3VsdCBhcHBseShSZXN1bHQgKCpmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4KSwgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3LCBBOCYgYTgpIHsKKyAgICByZXR1cm4gZnVuYyhhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOCwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0ICgqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoUmVzdWx0ICgqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNywgQXJnOCksIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIEE3JiBhNywgQTgmIGE4KSB7CisgICAgcmV0dXJuIGZ1bmMoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgfQorfTsKKworCisvLyAtLSBmdW5jdGlvbiBhZGFwdG9ycyB3aXRoIDEwIGFyZ3VtZW50IGFwcGx5Cit0ZW1wbGF0ZSA8Y2xhc3MgT2JqZWN0LCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3LCBjbGFzcyBBcmc4LCBjbGFzcyBSZXN1bHQ+CitzdHJ1Y3QgZnVuY3Rpb25fYWRhcHRvcjxSZXN1bHQgKE9iamVjdDo6KikoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNywgQXJnOCkgY29uc3Q+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4PgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KCBSZXN1bHQgKE9iamVjdDo6KmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYsIEFyZzcsIEFyZzgpIGNvbnN0LCBjb25zdCBPYmplY3QqIG8sIEExJiBhMSwgQTImIGEyLCBBMyYgYTMsIEE0JiBhNCwgQTUmIGE1LCBBNiYgYTYsIEE3JiBhNywgQTgmIGE4KSB7CisgICAgcmV0dXJuIChvLT4qZnVuYykoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNywgQXJnOCkgY29uc3QsIGNvbnN0IE9iamVjdCYgbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3LCBBOCYgYTgpIHsKKyAgICByZXR1cm4gKG8uKmZ1bmMpKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBPYmplY3QsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoT2JqZWN0OjoqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CisgIHN0YXRpYyBSZXN1bHQgYXBwbHkoIFJlc3VsdCAoT2JqZWN0OjoqZnVuYykoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNywgQXJnOCksIE9iamVjdCogbywgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3LCBBOCYgYTgpIHsKKyAgICByZXR1cm4gKG8tPipmdW5jKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOworICB9CisgIHRlbXBsYXRlIDxjbGFzcyBSRVQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4KKyAgc3RhdGljIFJlc3VsdCBhcHBseSggUmVzdWx0IChPYmplY3Q6OipmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4KSwgT2JqZWN0JiBvLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCBBNyYgYTcsIEE4JiBhOCkgeworICAgIHJldHVybiAoby4qZnVuYykoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KTsKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzksIGNsYXNzIFJlc3VsdD4KK3N0cnVjdCBmdW5jdGlvbl9hZGFwdG9yPFJlc3VsdCAoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNywgQXJnOCwgQXJnOSk+IHsKKworICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiBSZXN1bHQgdHlwZTsgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIFJFVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4KKyAgc3RhdGljIFJlc3VsdCBhcHBseShSZXN1bHQgKCpmdW5jKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4LCBBcmc5KSwgQTEmIGExLCBBMiYgYTIsIEEzJiBhMywgQTQmIGE0LCBBNSYgYTUsIEE2JiBhNiwgQTcmIGE3LCBBOCYgYTgsIEE5JiBhOSkgeworICAgIHJldHVybiBmdW5jKGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpOworICB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOCwgY2xhc3MgQXJnOSwgY2xhc3MgUmVzdWx0Pgorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I8UmVzdWx0ICgqKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4LCBBcmc5KT4geworCisgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzaWcgeyB0eXBlZGVmIFJlc3VsdCB0eXBlOyB9OworICB0ZW1wbGF0ZSA8Y2xhc3MgUkVULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5PgorICBzdGF0aWMgUmVzdWx0IGFwcGx5KFJlc3VsdCAoKmZ1bmMpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYsIEFyZzcsIEFyZzgsIEFyZzkpLCBBMSYgYTEsIEEyJiBhMiwgQTMmIGEzLCBBNCYgYTQsIEE1JiBhNSwgQTYmIGE2LCBBNyYgYTcsIEE4JiBhOCwgQTkmIGE5KSB7CisgICAgcmV0dXJuIGZ1bmMoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSk7CisgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKworCisKKworCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9pc19pbnN0YW5jZV9vZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvaXNfaW5zdGFuY2Vfb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlOTFjNjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvaXNfaW5zdGFuY2Vfb2YuaHBwCkBAIC0wLDAgKzEsMTA0IEBACisvLyBCb29zdCBMYW1iZGEgTGlicmFyeSAtIGlzX2luc3RhbmNlX29mLmhwcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAyMDAxIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB3d3cuYm9vc3Qub3JnCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9JU19JTlNUQU5DRV9PRgorI2RlZmluZSBCT09TVF9MQU1CREFfSVNfSU5TVEFOQ0VfT0YKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy5ocHAiIC8vIGZvciBCT09TVF9TVEFUSUNfQ09OU1RBTlQKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9jb252ZXJzaW9uX3RyYWl0cy5ocHAiIC8vIGZvciBpc19jb252ZXJ0aWJsZQorI2luY2x1ZGUgIm5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0XzJuZC5ocHAiCisKKy8vIGlzX2luc3RhbmNlX29mIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAKKy8vIGlzX2luc3RhbmNlX29mX248QSwgQj46OnZhbHVlIGlzIHRydWUsIGlmIHR5cGUgQSBpcyAKKy8vIGFuIGluc3RhbnRpYXRpb24gb2YgYSB0ZW1wbGF0ZSBCLCBvciBBIGRlcml2ZXMgZnJvbSBhbiBpbnN0YW50aWF0aW9uIAorLy8gb2YgdGVtcGxhdGUgQgorLy8KKy8vIG4gaXMgdGhlIG51bWJlciBvZiB0ZW1wbGF0ZSBhcmd1bWVudHMgZm9yIEIKKy8vIAorLy8gRXhhbXBsZToKKy8vIGlzX2luc3RhbmNlX29mXzI8c3RkOjppc3RyZWFtLCBiYXNpY19zdHJlYW0+Ojp2YWx1ZSA9PSB0cnVlCisKKy8vIFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3YXMgc29tZXdoYXQgZGlmZmVyZW50LCB3aXRoIGRpZmZlcmVudCB2ZXJzaW9ucworLy8gZm9yIGRpZmZlcmVudCBjb21waWxlcnMuIEhvd2V2ZXIsIHRoZXJlIHdhcyBzdGlsbCBhIHByb2JsZW0KKy8vIHdpdGggZ2NjLjMuMC4yIGFuZCAzLjAuMyBjb21waWxlcnMsIHdoaWNoIGRpZG4ndCB0aGluayByZWdhcmQKKy8vIGlzX2luc3RhbmNlX29mX048Li4uPjo6dmFsdWUgd2FzIGEgY29uc3RhbnQuCisvLyBKb2huIE1hZGRvY2sgc3VnZ2VzdGVkIHRoZSB3YXkgYXJvdW5kIHRoaXMgcHJvYmxlbSBieSBidWlsZGluZyAKKy8vIGlzX2luc3RhbmNlX29mIHRlbXBsYXRlcyB1c2luZyBuZG5ib29zdDo6aXNfY29udmVydGlibGUuCisvLyBOb3cgd2Ugb25seSBoYXZlIG9uZSB2ZXJzaW9uIG9mIGlzX2luc3RhbmNlX29mIHRlbXBsYXRlcywgd2hpY2ggZGVsYWdhdGUKKy8vIGFsbCB0aGUgbmFzdHkgY29tcGlsZXIgdHJpY2tzIHRvIGlzX2NvbnZlcnRpYmxlLiAKKworI2RlZmluZSBCT09TVF9MQU1CREFfQ0xBU1MoeiwgTixBKSBCT09TVF9QUF9DT01NQV9JRihOKSBjbGFzcworI2RlZmluZSBCT09TVF9MQU1CREFfQ0xBU1NfQVJHKHosIE4sQSkgQk9PU1RfUFBfQ09NTUFfSUYoTikgY2xhc3MgQSMjTiAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0FSRyh6LCBOLEEpIEJPT1NUX1BQX0NPTU1BX0lGKE4pIEEjI04gCisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0NMQVNTX0xJU1QobiwgTkFNRSkgQk9PU1RfUFBfUkVQRUFUKG4sIEJPT1NUX0xBTUJEQV9DTEFTUywgTkFNRSkKKworI2RlZmluZSBCT09TVF9MQU1CREFfQ0xBU1NfQVJHX0xJU1QobiwgTkFNRSkgQk9PU1RfUFBfUkVQRUFUKG4sIEJPT1NUX0xBTUJEQV9DTEFTU19BUkcsIE5BTUUpCisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0FSR19MSVNUKG4sIE5BTUUpIEJPT1NUX1BQX1JFUEVBVChuLCBCT09TVF9MQU1CREFfQVJHLCBOQU1FKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGxhbWJkYSB7CisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0lTX0lOU1RBTkNFX09GX1RFTVBMQVRFKElOREVYKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorbmFtZXNwYWNlIGRldGFpbCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZSA8dGVtcGxhdGU8Qk9PU1RfTEFNQkRBX0NMQVNTX0xJU1QoSU5ERVgsVCk+IGNsYXNzIEY+ICAgICAgICAgICAgICAgXAorc3RydWN0IEJPT1NUX1BQX0NBVChjb252ZXJzaW9uX3Rlc3Rlcl8sSU5ERVgpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdGVtcGxhdGU8Qk9PU1RfTEFNQkRBX0NMQVNTX0FSR19MSVNUKElOREVYLEEpPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1BQX0NBVChjb252ZXJzaW9uX3Rlc3Rlcl8sSU5ERVgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChjb25zdCBGPEJPT1NUX0xBTUJEQV9BUkdfTElTVChJTkRFWCxBKT4mKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK307ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSAvKiBlbmQgZGV0YWlsICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZSA8Y2xhc3MgRnJvbSwgdGVtcGxhdGUgPEJPT1NUX0xBTUJEQV9DTEFTU19MSVNUKElOREVYLFQpPiBjbGFzcyBUbz4gXAorc3RydWN0IEJPT1NUX1BQX0NBVChpc19pbnN0YW5jZV9vZl8sSU5ERVgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgcHJpdmF0ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgdHlwZWRlZiA6Om5kbmJvb3N0Ojppc19jb252ZXJ0aWJsZTwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgRnJvbSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIEJPT1NUX1BQX0NBVChkZXRhaWw6OmNvbnZlcnNpb25fdGVzdGVyXyxJTkRFWCk8VG8+ICAgICAgICAgICAgICAgICAgICAgXAorICAgPiBoZWxwZXJfdHlwZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitwdWJsaWM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBoZWxwZXJfdHlwZTo6dmFsdWUpOyAgICAgICAgICAgICAgICAgIFwKK307CisKKworI2RlZmluZSBCT09TVF9MQU1CREFfSEVMUEVSKHosIE4sIEEpIEJPT1NUX0xBTUJEQV9JU19JTlNUQU5DRV9PRl9URU1QTEFURSggQk9PU1RfUFBfSU5DKE4pICkKKworLy8gR2VuZXJhdGUgdGhlIHRyYWl0cyBmb3IgMS00IGFyZ3VtZW50IHRlbXBsYXRlcworCitCT09TVF9QUF9SRVBFQVRfMk5EKDQsQk9PU1RfTEFNQkRBX0hFTFBFUixGT08pCisKKyN1bmRlZiBCT09TVF9MQU1CREFfSEVMUEVSCisjdW5kZWYgQk9PU1RfTEFNQkRBX0lTX0lOU1RBTkNFX09GX1RFTVBMQVRFCisjdW5kZWYgQk9PU1RfTEFNQkRBX0NMQVNTCisjdW5kZWYgQk9PU1RfTEFNQkRBX0FSRworI3VuZGVmIEJPT1NUX0xBTUJEQV9DTEFTU19BUkcKKyN1bmRlZiBCT09TVF9MQU1CREFfQ0xBU1NfTElTVAorI3VuZGVmIEJPT1NUX0xBTUJEQV9BUkdfTElTVAorI3VuZGVmIEJPT1NUX0xBTUJEQV9DTEFTU19BUkdfTElTVAorCit9IC8vIGxhbWJkYQorfSAvLyBib29zdAorCisjZW5kaWYKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2NvbmZpZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZkMWE3YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfY29uZmlnLmhwcApAQCAtMCwwICsxLDQ4IEBACisvLyBCb29zdCBMYW1iZGEgTGlicmFyeSAtIGxhbWJkYV9jb25maWcuaHBwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHd3dy5ib29zdC5vcmcKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfTEFNQkRBX0xBTUJEQV9DT05GSUdfSFBQCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9MQU1CREFfQ09ORklHX0hQUAorCisvLyBhZGQgdG8gYm9vc3QvY29uZmlnLmhwcAorLy8gZm9yIG5vdworCisKKyMgaWYgZGVmaW5lZCBfX0dOVUNfXworIyAgIGlmIChfX0dOVUNfXyA9PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDQpIAorIyAgICAgZGVmaW5lIEJPT1NUX1JFRl9UT19GVU5DX0NPTkZMSUNUU19XSVRIX1JFRl9UT19UCisjICAgICBkZWZpbmUgQk9PU1RfTEFNQkRBX0lOQ09SUkVDVF9CSU5EX09WRVJMT0FESU5HCisjICAgZW5kaWYKKyMgICBpZiAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA8PSA5NykgCisjICAgICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVEX1NUUkVBTVMKKyMgICAgIGRlZmluZSBCT09TVF9MQU1CREFfSU5DT1JSRUNUX0JJTkRfT1ZFUkxPQURJTkcKKyMgICBlbmRpZgorIyAgIGlmIChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fIDw9IDk1KSAKKyMgICAgIGRlZmluZSBCT09TVF9MQU1CREFfRkFJTFNfSU5fVEVNUExBVEVfS0VZV09SRF9BRlRFUl9TQ09QRV9PUEVSCisjICAgZW5kaWYKKyMgZW5kaWYgIC8vIF9fR05VQ19fCisgCisKKyNpZiBkZWZpbmVkIF9fS0NDCisKKyNkZWZpbmUgQk9PU1RfTk9fRkRFQ0xfVEVNUExBVEVTX0FTX1RFTVBMQVRFX1RFTVBMQVRFX1BBUkFNUworCisjZW5kaWYgIC8vIF9fS0NDCisKKyNlbmRpZgorCisKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2Z1bmN0b3JfYmFzZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX2Z1bmN0b3JfYmFzZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM5MGY1NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZnVuY3Rvcl9iYXNlLmhwcApAQCAtMCwwICsxLDYxNSBAQAorLy8gQm9vc3QgTGFtYmRhIExpYnJhcnkgIGxhbWJkYV9mdW5jdG9yX2Jhc2UuaHBwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB3d3cuYm9vc3Qub3JnCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9MQU1CREFfRlVOQ1RPUl9CQVNFX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2NvbnN0LmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV9md2QuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX3RyYWl0cy5ocHAiCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID49IDE0MDApCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQ1MTIpIC8vYXNzaWdubWVudCBvcGVyYXRvciBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkCisjZW5kaWYKKworICAvLyBmb3IgcmV0dXJuIHR5cGUgZGVkdWN0aW9ucyB3ZSB3cmFwIGJvdW5kIGFyZ3VtZW50IHRvIHRoaXMgY2xhc3MsCisgIC8vIHdoaWNoIGZ1bGZpbHMgdGhlIGJhc2UgY2xhc3MgY29udHJhY3QgZm9yIGxhbWJkYV9mdW5jdG9ycwordGVtcGxhdGUgPGNsYXNzIFQ+CitjbGFzcyBpZGVudGl0eSB7CisKKyAgVCBlbGVtOworcHVibGljOgorICAKKyAgdHlwZWRlZiBUIGVsZW1lbnRfdDsKKworICAvLyB0YWtlIGFsbCBwYXJhbWV0ZXJzIGFzIGNvbnN0IHJlZmVyZW5jZXMuIE5vdGUgdGhhdCBub24tY29uc3QgcmVmZXJlbmNlcworICAvLyBzdGF5IGFzIHRoZXkgYXJlLgorICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPAorICAgIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfY29uc3Q8VD46OnR5cGUKKyAgPjo6dHlwZSBwYXJfdDsKKworICBleHBsaWNpdCBpZGVudGl0eShwYXJfdCB0KSA6IGVsZW0odCkge30KKworICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2lnQXJncz4gCisgIHN0cnVjdCBzaWcgeyB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY29uc3Q8ZWxlbWVudF90Pjo6dHlwZSB0eXBlOyB9OworCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPgorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCB7IENBTExfVVNFX0FSR1M7IHJldHVybiBlbGVtOyB9Cit9OworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gCitpbmxpbmUgbGFtYmRhX2Z1bmN0b3I8aWRlbnRpdHk8VCY+ID4gdmFyKFQmIHQpIHsgcmV0dXJuIGlkZW50aXR5PFQmPih0KTsgfQorCisgIC8vIGZvciBsYW1iZGEgZnVuY3RvcnMsIHZhciBpcyBhbiBpZGVudGl0eSBvcGVyYXRvci4gSXQgd2FzIGZvcmJpZGRlbgorICAvLyBhdCBzb21lIHBvaW50LCBidXQgd2UgbWlnaHQgd2FudCB0byB2YXIgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGEgCisgIC8vIG5vbi1sYW1iZGEgZnVuY3RvciBvciBhIGxhbWJkYSBmdW5jdG9yLgordGVtcGxhdGUgPGNsYXNzIFQ+CitsYW1iZGFfZnVuY3RvcjxUPiB2YXIoY29uc3QgbGFtYmRhX2Z1bmN0b3I8VD4mIHQpIHsgcmV0dXJuIHQ7IH0KKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCB2YXJfdHlwZSB7CisgIHR5cGVkZWYgbGFtYmRhX2Z1bmN0b3I8aWRlbnRpdHk8VCY+ID4gdHlwZTsKK307CisKKwordGVtcGxhdGUgPGNsYXNzIFQ+IAoraW5saW5lIAorbGFtYmRhX2Z1bmN0b3I8aWRlbnRpdHk8dHlwZW5hbWUgYm91bmRfYXJndW1lbnRfY29udmVyc2lvbjxjb25zdCBUPjo6dHlwZT4gPgorY29uc3RhbnQoY29uc3QgVCYgdCkgeyAKKyAgcmV0dXJuIGlkZW50aXR5PHR5cGVuYW1lIGJvdW5kX2FyZ3VtZW50X2NvbnZlcnNpb248Y29uc3QgVD46OnR5cGU+KHQpOyAKK30KK3RlbXBsYXRlIDxjbGFzcyBUPgorbGFtYmRhX2Z1bmN0b3I8VD4gY29uc3RhbnQoY29uc3QgbGFtYmRhX2Z1bmN0b3I8VD4mIHQpIHsgcmV0dXJuIHQ7IH0KKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBjb25zdGFudF90eXBlIHsKKyAgdHlwZWRlZiAKKyAgIGxhbWJkYV9mdW5jdG9yPAorICAgICBpZGVudGl0eTx0eXBlbmFtZSBib3VuZF9hcmd1bWVudF9jb252ZXJzaW9uPGNvbnN0IFQ+Ojp0eXBlPiAKKyAgID4gdHlwZTsKK307CisKKworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gCitpbmxpbmUgbGFtYmRhX2Z1bmN0b3I8aWRlbnRpdHk8Y29uc3QgVCY+ID4gY29uc3RhbnRfcmVmKGNvbnN0IFQmIHQpIHsgCisgIHJldHVybiBpZGVudGl0eTxjb25zdCBUJj4odCk7IAorfQordGVtcGxhdGUgPGNsYXNzIFQ+CitsYW1iZGFfZnVuY3RvcjxUPiBjb25zdGFudF9yZWYoY29uc3QgbGFtYmRhX2Z1bmN0b3I8VD4mIHQpIHsgcmV0dXJuIHQ7IH0KKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBjb25zdGFudF9yZWZfdHlwZSB7CisgIHR5cGVkZWYgCisgICBsYW1iZGFfZnVuY3RvcjxpZGVudGl0eTxjb25zdCBUJj4gPiB0eXBlOworfTsKKworCisKKyAgLy8gYXNfbGFtYmRhX2Z1bmN0b3IgdHVybnMgYW55IHR5cGVzIHRvIGxhbWJkYSBmdW5jdG9ycyAKKyAgLy8gbm9uLWxhbWJkYV9mdW5jdG9ycyB3aWxsIGJlIGJvdW5kIGFyZ3VtZW50IHR5cGVzCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBhc19sYW1iZGFfZnVuY3RvciB7IAorICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8VD46OnR5cGUgcGxhaW5fVDsKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZXRhaWw6OklGPGlzX2xhbWJkYV9mdW5jdG9yPHBsYWluX1Q+Ojp2YWx1ZSwgCisgICAgICBwbGFpbl9ULAorICAgICAgbGFtYmRhX2Z1bmN0b3I8CisgICAgICAgIGlkZW50aXR5PHR5cGVuYW1lIGJvdW5kX2FyZ3VtZW50X2NvbnZlcnNpb248VD46OnR5cGU+IAorICAgICAgPgorICAgID46OlJFVCB0eXBlOyAKK307CisKKy8vIHR1cm5zIGFyYml0cmFyeSBvYmplY3RzIGludG8gbGFtYmRhIGZ1bmN0b3JzCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gCitpbmxpbmUgCitsYW1iZGFfZnVuY3RvcjxpZGVudGl0eTx0eXBlbmFtZSBib3VuZF9hcmd1bWVudF9jb252ZXJzaW9uPGNvbnN0IFQ+Ojp0eXBlPiA+IAordG9fbGFtYmRhX2Z1bmN0b3IoY29uc3QgVCYgdCkgeyAKKyAgcmV0dXJuIGlkZW50aXR5PHR5cGVuYW1lIGJvdW5kX2FyZ3VtZW50X2NvbnZlcnNpb248Y29uc3QgVD46OnR5cGU+KHQpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gCitpbmxpbmUgbGFtYmRhX2Z1bmN0b3I8VD4gCit0b19sYW1iZGFfZnVuY3Rvcihjb25zdCBsYW1iZGFfZnVuY3RvcjxUPiYgdCkgeyAKKyAgcmV0dXJuIHQ7Cit9CisKK25hbWVzcGFjZSBkZXRhaWwgeyAgIAorCisKKworLy8gSW4gYSBjYWxsIGNvbnN0aWZ5X3J2YWxzPFQ+Ojpnbyh4KQorLy8geCBzaG91bGQgYmUgb2YgdHlwZSBULiBJZiBUIGlzIGEgbm9uLXJlZmVyZW5jZSB0eXBlLCBkbworLy8gcmV0dXJucyB4IGFzIGNvbnN0IHJlZmVyZW5jZS4gCisvLyBPdGhlcndpc2UgdGhlIHR5cGUgZG9lc24ndCBjaGFuZ2UuCisvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGF2b2lkIAorLy8gJ2Nhbm5vdCBiaW5kIHRlbXBvcmFyaWVzIHRvIG5vbi1jb25zdCByZWZlcmVuY2VzJyBlcnJvcnMuCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGNvbnN0aWZ5X3J2YWxzIHsKKyAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgc3RhdGljIGlubGluZSBjb25zdCBVJiBnbyhjb25zdCBVJiB1KSB7IHJldHVybiB1OyB9Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGNvbnN0aWZ5X3J2YWxzPFQmPiB7CisgIHRlbXBsYXRlPGNsYXNzIFU+CisgIHN0YXRpYyBpbmxpbmUgVSYgZ28oVSYgdSkgeyByZXR1cm4gdTsgfQorfTsKKworICAvLyBjaGVjayB3aGV0aGVyIG9uZSBvZiB0aGUgZWxlbWVudHMgb2YgYSB0dXBsZSAoY29ucyBsaXN0KSBpcyBvZiB0eXBlCisgIC8vIG51bGxfdHlwZS4gTmVlZGVkLCBiZWNhdXNlIHRoZSBjb21waWxlciBnb2VzIGFoZWFkIGFuZCBpbnN0YW50aWF0ZXMKKyAgLy8gc2lnIHRlbXBsYXRlIGZvciBudWxsYXJ5IGNhc2UgZXZlbiBpZiB0aGUgbnVsbGFyeSBvcGVyYXRvcigpIGlzIG5vdAorICAvLyBjYWxsZWQKK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgaXNfbnVsbF90eXBlIAoreyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7IH07CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19udWxsX3R5cGU8bnVsbF90eXBlPiAKK3sgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlPGNsYXNzIFR1cGxlPiBzdHJ1Y3QgaGFzX251bGxfdHlwZSB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChpc19udWxsX3R5cGU8dHlwZW5hbWUgVHVwbGU6OmhlYWRfdHlwZT46OnZhbHVlIHx8IGhhc19udWxsX3R5cGU8dHlwZW5hbWUgVHVwbGU6OnRhaWxfdHlwZT46OnZhbHVlKSk7Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaGFzX251bGxfdHlwZTxudWxsX3R5cGU+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKworCisvLyBoZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0KKworCit0ZW1wbGF0ZTxjbGFzcyBBcmdzLCBjbGFzcyBTaWdBcmdzPgorY2xhc3MgZGVkdWNlX2FyZ3VtZW50X3R5cGVzXyB7CisgIHR5cGVkZWYgdHlwZW5hbWUgYXNfbGFtYmRhX2Z1bmN0b3I8dHlwZW5hbWUgQXJnczo6aGVhZF90eXBlPjo6dHlwZSBsZl90OworICB0eXBlZGVmIHR5cGVuYW1lIGxmX3Q6OmluaGVyaXRlZDo6dGVtcGxhdGUgc2lnPFNpZ0FyZ3M+Ojp0eXBlIGVsX3Q7ICAKK3B1YmxpYzoKKyAgdHlwZWRlZgorICAgIG5kbmJvb3N0Ojp0dXBsZXM6OmNvbnM8CisgICAgICBlbF90LCAKKyAgICAgIHR5cGVuYW1lIGRlZHVjZV9hcmd1bWVudF90eXBlc188dHlwZW5hbWUgQXJnczo6dGFpbF90eXBlLCBTaWdBcmdzPjo6dHlwZQorICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+CitjbGFzcyBkZWR1Y2VfYXJndW1lbnRfdHlwZXNfPG51bGxfdHlwZSwgU2lnQXJncz4geworcHVibGljOgorICB0eXBlZGVmIG51bGxfdHlwZSB0eXBlOyAKK307CisKKworLy8gIC8vIG5vdGUgdGhhdCB0dXBsZXMgY2Fubm90IGhhdmUgcGxhaW4gZnVuY3Rpb24gdHlwZXMgYXMgZWxlbWVudHMuCisvLyAgLy8gSGVuY2UsIGFsbCBvdGhlciB0eXBlcyB3aWxsIGJlIG5vbi1jb25zdCwgZXhjZXB0IHJlZmVyZW5jZXMgdG8gCisvLyAgLy8gZnVuY3Rpb25zLgorLy8gIHRlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgcmVtb3ZlX3JlZmVyZW5jZV9leGNlcHRfZnJvbV9mdW5jdGlvbnMgeworLy8gICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZSB0OworLy8gICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OklGPG5kbmJvb3N0Ojppc19mdW5jdGlvbjx0Pjo6dmFsdWUsIFQsIHQ+OjpSRVQgdHlwZTsKKy8vICB9OworCit0ZW1wbGF0ZTxjbGFzcyBBcmdzLCBjbGFzcyBTaWdBcmdzPgorY2xhc3MgZGVkdWNlX25vbl9yZWZfYXJndW1lbnRfdHlwZXNfIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBhc19sYW1iZGFfZnVuY3Rvcjx0eXBlbmFtZSBBcmdzOjpoZWFkX3R5cGU+Ojp0eXBlIGxmX3Q7CisgIHR5cGVkZWYgdHlwZW5hbWUgbGZfdDo6aW5oZXJpdGVkOjp0ZW1wbGF0ZSBzaWc8U2lnQXJncz46OnR5cGUgZWxfdDsgIAorcHVibGljOgorICB0eXBlZGVmCisgICAgbmRuYm9vc3Q6OnR1cGxlczo6Y29uczwKKyAgLy8gICAgICB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfZXhjZXB0X2Zyb21fZnVuY3Rpb25zPGVsX3Q+Ojp0eXBlLCAKKyAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPGVsX3Q+Ojp0eXBlLCAKKyAgICAgIHR5cGVuYW1lIGRlZHVjZV9ub25fcmVmX2FyZ3VtZW50X3R5cGVzXzx0eXBlbmFtZSBBcmdzOjp0YWlsX3R5cGUsIFNpZ0FyZ3M+Ojp0eXBlCisgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgU2lnQXJncz4KK2NsYXNzIGRlZHVjZV9ub25fcmVmX2FyZ3VtZW50X3R5cGVzXzxudWxsX3R5cGUsIFNpZ0FyZ3M+IHsKK3B1YmxpYzoKKyAgdHlwZWRlZiBudWxsX3R5cGUgdHlwZTsgCit9OworCisgIC8vIC0tLS0tLS0tLS0tLS0KKworLy8gdGFrZSBzdG9yZWQgQXJncyBhbmQgT3BlbiBBcmdzLCBhbmQgcmV0dXJuIGEgY29uc3QgbGlzdCB3aXRoIAorLy8gZGVkdWNlZCBlbGVtZW50cyAocmVhbCByZXR1cm4gdHlwZXMpCit0ZW1wbGF0ZTxjbGFzcyBBcmdzLCBjbGFzcyBTaWdBcmdzPgorY2xhc3MgZGVkdWNlX2FyZ3VtZW50X3R5cGVzIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZWR1Y2VfYXJndW1lbnRfdHlwZXNfPEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHQxOworcHVibGljOgorICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8CisgICAgaGFzX251bGxfdHlwZTx0MT46OnZhbHVlLCBudWxsX3R5cGUsIHQxCisgID46OlJFVCB0eXBlOyAKK307CisKKy8vIHRha2Ugc3RvcmVkIEFyZ3MgYW5kIE9wZW4gQXJncywgYW5kIHJldHVybiBhIGNvbnN0IGxpc3Qgd2l0aCAKKy8vIGRlZHVjZWQgZWxlbWVudHMgKHJlZmVyZW5jZXMgYXJlIHN0cmlwcGVkIGZyb20gdGhlIGVsZW1lbnQgdHlwZXMpCisKK3RlbXBsYXRlPGNsYXNzIEFyZ3MsIGNsYXNzIFNpZ0FyZ3M+CitjbGFzcyBkZWR1Y2Vfbm9uX3JlZl9hcmd1bWVudF90eXBlcyB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGVkdWNlX25vbl9yZWZfYXJndW1lbnRfdHlwZXNfPEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHQxOworcHVibGljOgorICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8CisgICAgaGFzX251bGxfdHlwZTx0MT46OnZhbHVlLCBudWxsX3R5cGUsIHQxCisgID46OlJFVCB0eXBlOyAKK307CisKK3RlbXBsYXRlIDxpbnQgTiwgY2xhc3MgQXJncywgY2xhc3MgU2lnQXJncz4KK3N0cnVjdCBudGhfcmV0dXJuX3R5cGVfc2lnIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICAgICAgICBhc19sYW1iZGFfZnVuY3RvcjwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp0dXBsZXM6OmVsZW1lbnQ8TiwgQXJncz46OnR5cGUgCisgIC8vICAgICAgICAgICAgdHlwZW5hbWUgdHVwbGVfZWxlbWVudF9hc19yZWZlcmVuY2U8TiwgQXJncz46OnR5cGUgCisgICAgICAgID46OnR5cGUgbGZfdHlwZTsKKworICB0eXBlZGVmIHR5cGVuYW1lIGxmX3R5cGU6OmluaGVyaXRlZDo6dGVtcGxhdGUgc2lnPFNpZ0FyZ3M+Ojp0eXBlIHR5cGU7ICAKK307CisKK3RlbXBsYXRlPGludCBOLCBjbGFzcyBUdXBsZT4gc3RydWN0IGVsZW1lbnRfb3JfbnVsbCB7CisgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnR1cGxlczo6ZWxlbWVudDxOLCBUdXBsZT46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGludCBOPiBzdHJ1Y3QgZWxlbWVudF9vcl9udWxsPE4sIG51bGxfdHlwZT4geworICB0eXBlZGVmIG51bGxfdHlwZSB0eXBlOworfTsKKworCisgICAKKyAgIAorfSAvLyBlbmQgZGV0YWlsCisgICAKKyAvLyAtLSBsYW1iZGFfZnVuY3RvciBiYXNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyB0aGUgZXhwbGljaXRfcmV0dXJuX3R5cGVfYWN0aW9uIGNhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3RlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQXJncz4KK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U8ZXhwbGljaXRfcmV0dXJuX3R5cGVfYWN0aW9uPFJFVD4sIEFyZ3M+IAoreworcHVibGljOgorICBBcmdzIGFyZ3M7CisKKyAgdHlwZWRlZiBSRVQgcmVzdWx0X3R5cGU7CisKKyAgZXhwbGljaXQgbGFtYmRhX2Z1bmN0b3JfYmFzZShjb25zdCBBcmdzJiBhKSA6IGFyZ3MoYSkge30KKworICB0ZW1wbGF0ZSA8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7IHR5cGVkZWYgUkVUIHR5cGU7IH07CisKKyAgdGVtcGxhdGU8Y2xhc3MgUkVUXywgQ0FMTF9URU1QTEFURV9BUkdTPgorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCAKKyAgeworICAgIHJldHVybiBkZXRhaWw6OmNvbnN0aWZ5X3J2YWxzPFJFVD46OmdvKAorICAgICBkZXRhaWw6OnJfc2VsZWN0PFJFVD46OmdvKG5kbmJvb3N0Ojp0dXBsZXM6OmdldDwwPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpOworICB9Cit9OworCisvLyB0aGUgcHJvdGVjdF9hY3Rpb24gY2FzZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordGVtcGxhdGU8Y2xhc3MgQXJncz4KK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U8cHJvdGVjdF9hY3Rpb24sIEFyZ3M+Cit7CitwdWJsaWM6CisgIEFyZ3MgYXJnczsKK3B1YmxpYzoKKworICBleHBsaWNpdCBsYW1iZGFfZnVuY3Rvcl9iYXNlKGNvbnN0IEFyZ3MmIGEpIDogYXJncyhhKSB7fQorCisKKyAgdGVtcGxhdGU8Y2xhc3MgUkVULCBDQUxMX1RFTVBMQVRFX0FSR1M+CisgIFJFVCBjYWxsKENBTExfRk9STUFMX0FSR1MpIGNvbnN0IAorICB7CisgICAgIENBTExfVVNFX0FSR1M7CisgICAgIHJldHVybiBuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MD4oYXJncyk7CisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBTaWdBcmdzPiBzdHJ1Y3Qgc2lnIHsgCisgICAgLy8gICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnR1cGxlX2VsZW1lbnRfYXNfcmVmZXJlbmNlPDAsIFNpZ0FyZ3M+Ojp0eXBlIHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHVwbGVzOjplbGVtZW50PDAsIEFyZ3M+Ojp0eXBlIHR5cGU7CisgIH07Cit9OworCisvLyBEbyBub3RoaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjbGFzcyBkb19ub3RoaW5nX2FjdGlvbiB7fTsKKwordGVtcGxhdGU8Y2xhc3MgQXJncz4KK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U8ZG9fbm90aGluZ19hY3Rpb24sIEFyZ3M+IHsKKyAgLy8gIEFyZ3MgYXJnczsKK3B1YmxpYzoKKyAgLy8gIGV4cGxpY2l0IGxhbWJkYV9mdW5jdG9yX2Jhc2UoY29uc3QgQXJncyYgYSkge30KKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZSgpIHt9CisKKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIENBTExfVEVNUExBVEVfQVJHUz4gUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeworICAgIHJldHVybiBDQUxMX1VTRV9BUkdTOworICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7IHR5cGVkZWYgdm9pZCB0eXBlOyB9OworfTsgIAorCisKKy8vICBUaGVzZSBzcGVjaWFsaXphdGlvbnMgcHJvdmlkZSBhIHNob3J0ZXIgbm90YXRpb24gdG8gZGVmaW5lIGFjdGlvbnMuCisvLyAgVGhlc2UgbGFtYmRhX2Z1bmN0b3JfYmFzZSBpbnN0YW5jZXMgdGFrZSBjYXJlIG9mIHRoZSByZWN1cnNpdmUgZXZhbHVhdGlvbgorLy8gIG9mIHRoZSBhcmd1bWVudHMgYW5kIHBhc3MgdGhlIGV2YWx1YXRlZCBhcmd1bWVudHMgdG8gdGhlIGFwcGx5IGZ1bmN0aW9uCisvLyAgb2YgYW4gYWN0aW9uIGNsYXNzLiBUbyBtYWtlIGFjdGlvbiBYIHdvcmsgd2l0aCB0aGVzZSBjbGFzc2VzLCBvbmUgbXVzdAorLy8gIGluc3RhbnRpYXRlIHRoZSBsYW1iZGFfZnVuY3Rvcl9iYXNlIGFzOgorLy8gIGxhbWJkYV9mdW5jdG9yX2Jhc2U8YWN0aW9uPEFSSVRZLCBYPiwgQXJncz4KKy8vICBXaGVyZSBBUklUWSBpcyB0aGUgYXJpdHkgb2YgdGhlIGFwcGx5IGZ1bmN0aW9uIGluIFgKKworLy8gIFRoZSByZXR1cm4gdHlwZSBpcyBxdWVyaWVkIGFzOgorLy8gIHJldHVybl90eXBlX048WCwgRXZhbHVhdGVkQXJndW1lbnRUeXBlcz46OnR5cGUKKy8vICBmb3Igd2hpY2ggdGhlcmUgbXVzdCBiZSBhIHNwZWNpYWxpemF0aW9uLgorCisvLyAgRnVuY3Rpb24gYWN0aW9ucywgY2FzdHMsIHRocm93cywuLi4gYWxsIGdvIHZpYSB0aGVzZSBjbGFzc2VzLgorCisKK3RlbXBsYXRlPGNsYXNzIEFjdCwgY2xhc3MgQXJncz4gIAorY2xhc3MgbGFtYmRhX2Z1bmN0b3JfYmFzZTxhY3Rpb248MCwgQWN0PiwgQXJncz4gICAgICAgICAgIAoreyAgCitwdWJsaWM6ICAKKy8vICBBcmdzIGFyZ3M7IG5vdCBuZWVkZWQKKyAgZXhwbGljaXQgbGFtYmRhX2Z1bmN0b3JfYmFzZShjb25zdCBBcmdzJiAvKmEqLykge30gIAorICAKKyAgdGVtcGxhdGU8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7ICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJldHVybl90eXBlX048QWN0LCBudWxsX3R5cGU+Ojp0eXBlIHR5cGU7CisgIH07CisgIAorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIENBTExfVEVNUExBVEVfQVJHUz4gIAorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCB7ICAKKyAgICBDQUxMX1VTRV9BUkdTOworICAgIHJldHVybiBBY3Q6OnRlbXBsYXRlIGFwcGx5PFJFVD4oKTsKKyAgfQorfTsKKworCisjaWYgZGVmaW5lZCBCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9GSVJTVF9QQVJUICAKKyNlcnJvciAiTXVsdGlwbGUgZGVmaW5lcyBvZiBCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9GSVJTVF9QQVJUIiAgCisjZW5kaWYgIAorICAKKyAgCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9MQU1CREFfRlVOQ1RPUl9CQVNFX0ZJUlNUX1BBUlQoQVJJVFkpICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIEFjdCwgY2xhc3MgQXJncz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorY2xhc3MgbGFtYmRhX2Z1bmN0b3JfYmFzZTxhY3Rpb248QVJJVFksIEFjdD4sIEFyZ3M+ICAgICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3B1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBBcmdzIGFyZ3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZXhwbGljaXQgbGFtYmRhX2Z1bmN0b3JfYmFzZShjb25zdCBBcmdzJiBhKSA6IGFyZ3MoYSkge30gICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRldGFpbDo6ZGVkdWNlX2FyZ3VtZW50X3R5cGVzPEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHJldHNfdDsgICAgICAgICBcCisgIHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgcmV0dXJuX3R5cGVfTl9wcm90PEFjdCwgcmV0c190Pjo6dHlwZSB0eXBlOyAgICAgICAgICAgICAgICAgICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVzaW5nIG5kbmJvb3N0Ojp0dXBsZXM6OmdldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdXNpbmcgZGV0YWlsOjpjb25zdGlmeV9ydmFsczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1c2luZyBkZXRhaWw6OnJfc2VsZWN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVzaW5nIGRldGFpbDo6ZWxlbWVudF9vcl9udWxsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdXNpbmcgZGV0YWlsOjpkZWR1Y2VfYXJndW1lbnRfdHlwZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKworQk9PU1RfTEFNQkRBX0xBTUJEQV9GVU5DVE9SX0JBU0VfRklSU1RfUEFSVCgxKQorCisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICBkZWR1Y2VfYXJndW1lbnRfdHlwZXM8QXJncywgdHVwbGU8Q0FMTF9SRUZFUkVOQ0VfVFlQRVM+ID46OnR5cGUgcmV0c190OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlIHJ0MDsKKworICByZXR1cm4gQWN0Ojp0ZW1wbGF0ZSBhcHBseTxSRVQ+KAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0MD46OmdvKHJfc2VsZWN0PHJ0MD46OmdvKGdldDwwPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpCisgICAgKTsKKyAgfQorfTsKKworCitCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9GSVJTVF9QQVJUKDIpCisgIAorICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGRlZHVjZV9hcmd1bWVudF90eXBlczxBcmdzLCB0dXBsZTxDQUxMX1JFRkVSRU5DRV9UWVBFUz4gPjo6dHlwZSByZXRzX3Q7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDAsIHJldHNfdD46OnR5cGUgcnQwOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwxLCByZXRzX3Q+Ojp0eXBlIHJ0MTsKKworICByZXR1cm4gQWN0Ojp0ZW1wbGF0ZSBhcHBseTxSRVQ+KAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0MD46OmdvKHJfc2VsZWN0PHJ0MD46OmdvKGdldDwwPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0MT46OmdvKHJfc2VsZWN0PHJ0MT46OmdvKGdldDwxPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpCisgICAgKTsKKyAgfQorfTsKKworQk9PU1RfTEFNQkRBX0xBTUJEQV9GVU5DVE9SX0JBU0VfRklSU1RfUEFSVCgzKQorCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGVkdWNlX2FyZ3VtZW50X3R5cGVzPEFyZ3MsIHR1cGxlPENBTExfUkVGRVJFTkNFX1RZUEVTPiA+Ojp0eXBlIHJldHNfdDsKKworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlIHJ0MDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MSwgcmV0c190Pjo6dHlwZSBydDE7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDIsIHJldHNfdD46OnR5cGUgcnQyOworCisgIHJldHVybiBBY3Q6OnRlbXBsYXRlIGFwcGx5PFJFVD4oCisgICAgY29uc3RpZnlfcnZhbHM8cnQwPjo6Z28ocl9zZWxlY3Q8cnQwPjo6Z28oZ2V0PDA+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQxPjo6Z28ocl9zZWxlY3Q8cnQxPjo6Z28oZ2V0PDE+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQyPjo6Z28ocl9zZWxlY3Q8cnQyPjo6Z28oZ2V0PDI+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSkKKyAgICApOworICB9Cit9OworCitCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9GSVJTVF9QQVJUKDQpCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGVkdWNlX2FyZ3VtZW50X3R5cGVzPEFyZ3MsIHR1cGxlPENBTExfUkVGRVJFTkNFX1RZUEVTPiA+Ojp0eXBlIHJldHNfdDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MCwgcmV0c190Pjo6dHlwZSBydDA7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDEsIHJldHNfdD46OnR5cGUgcnQxOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwyLCByZXRzX3Q+Ojp0eXBlIHJ0MjsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MywgcmV0c190Pjo6dHlwZSBydDM7CisKKyAgcmV0dXJuIEFjdDo6dGVtcGxhdGUgYXBwbHk8UkVUPigKKyAgICBjb25zdGlmeV9ydmFsczxydDA+OjpnbyhyX3NlbGVjdDxydDA+OjpnbyhnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDE+OjpnbyhyX3NlbGVjdDxydDE+OjpnbyhnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDI+OjpnbyhyX3NlbGVjdDxydDI+OjpnbyhnZXQ8Mj4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDM+OjpnbyhyX3NlbGVjdDxydDM+OjpnbyhnZXQ8Mz4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKQorICAgICk7CisgIH0KK307CisKK0JPT1NUX0xBTUJEQV9MQU1CREFfRlVOQ1RPUl9CQVNFX0ZJUlNUX1BBUlQoNSkKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZWR1Y2VfYXJndW1lbnRfdHlwZXM8QXJncywgdHVwbGU8Q0FMTF9SRUZFUkVOQ0VfVFlQRVM+ID46OnR5cGUgcmV0c190OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlIHJ0MDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MSwgcmV0c190Pjo6dHlwZSBydDE7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDIsIHJldHNfdD46OnR5cGUgcnQyOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwzLCByZXRzX3Q+Ojp0eXBlIHJ0MzsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NCwgcmV0c190Pjo6dHlwZSBydDQ7CisKKyAgcmV0dXJuIEFjdDo6dGVtcGxhdGUgYXBwbHk8UkVUPigKKyAgICBjb25zdGlmeV9ydmFsczxydDA+OjpnbyhyX3NlbGVjdDxydDA+OjpnbyhnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDE+OjpnbyhyX3NlbGVjdDxydDE+OjpnbyhnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDI+OjpnbyhyX3NlbGVjdDxydDI+OjpnbyhnZXQ8Mj4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDM+OjpnbyhyX3NlbGVjdDxydDM+OjpnbyhnZXQ8Mz4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDQ+OjpnbyhyX3NlbGVjdDxydDQ+OjpnbyhnZXQ8ND4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKQorICAgICk7CisgIH0KK307CisKK0JPT1NUX0xBTUJEQV9MQU1CREFfRlVOQ1RPUl9CQVNFX0ZJUlNUX1BBUlQoNikKKworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGRlZHVjZV9hcmd1bWVudF90eXBlczxBcmdzLCB0dXBsZTxDQUxMX1JFRkVSRU5DRV9UWVBFUz4gPjo6dHlwZSByZXRzX3Q7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDAsIHJldHNfdD46OnR5cGUgcnQwOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwxLCByZXRzX3Q+Ojp0eXBlIHJ0MTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MiwgcmV0c190Pjo6dHlwZSBydDI7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDMsIHJldHNfdD46OnR5cGUgcnQzOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDw0LCByZXRzX3Q+Ojp0eXBlIHJ0NDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NSwgcmV0c190Pjo6dHlwZSBydDU7CisKKworICAgIHJldHVybiBBY3Q6OnRlbXBsYXRlIGFwcGx5PFJFVD4oCisgICAgY29uc3RpZnlfcnZhbHM8cnQwPjo6Z28ocl9zZWxlY3Q8cnQwPjo6Z28oZ2V0PDA+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQxPjo6Z28ocl9zZWxlY3Q8cnQxPjo6Z28oZ2V0PDE+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQyPjo6Z28ocl9zZWxlY3Q8cnQyPjo6Z28oZ2V0PDI+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQzPjo6Z28ocl9zZWxlY3Q8cnQzPjo6Z28oZ2V0PDM+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ0Pjo6Z28ocl9zZWxlY3Q8cnQ0Pjo6Z28oZ2V0PDQ+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ1Pjo6Z28ocl9zZWxlY3Q8cnQ1Pjo6Z28oZ2V0PDU+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSkgCisgICAgKTsKKyAgfQorfTsKKworQk9PU1RfTEFNQkRBX0xBTUJEQV9GVU5DVE9SX0JBU0VfRklSU1RfUEFSVCg3KQorICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGRlZHVjZV9hcmd1bWVudF90eXBlczxBcmdzLCB0dXBsZTxDQUxMX1JFRkVSRU5DRV9UWVBFUz4gPjo6dHlwZSByZXRzX3Q7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDAsIHJldHNfdD46OnR5cGUgcnQwOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwxLCByZXRzX3Q+Ojp0eXBlIHJ0MTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MiwgcmV0c190Pjo6dHlwZSBydDI7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDMsIHJldHNfdD46OnR5cGUgcnQzOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDw0LCByZXRzX3Q+Ojp0eXBlIHJ0NDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NSwgcmV0c190Pjo6dHlwZSBydDU7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDYsIHJldHNfdD46OnR5cGUgcnQ2OworCisKKyAgcmV0dXJuIEFjdDo6dGVtcGxhdGUgYXBwbHk8UkVUPigKKyAgICBjb25zdGlmeV9ydmFsczxydDA+OjpnbyhyX3NlbGVjdDxydDA+OjpnbyhnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDE+OjpnbyhyX3NlbGVjdDxydDE+OjpnbyhnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDI+OjpnbyhyX3NlbGVjdDxydDI+OjpnbyhnZXQ8Mj4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDM+OjpnbyhyX3NlbGVjdDxydDM+OjpnbyhnZXQ8Mz4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDQ+OjpnbyhyX3NlbGVjdDxydDQ+OjpnbyhnZXQ8ND4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDU+OjpnbyhyX3NlbGVjdDxydDU+OjpnbyhnZXQ8NT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDY+OjpnbyhyX3NlbGVjdDxydDY+OjpnbyhnZXQ8Nj4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKQorICAgICk7CisgIH0KK307CisKK0JPT1NUX0xBTUJEQV9MQU1CREFfRlVOQ1RPUl9CQVNFX0ZJUlNUX1BBUlQoOCkKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZWR1Y2VfYXJndW1lbnRfdHlwZXM8QXJncywgdHVwbGU8Q0FMTF9SRUZFUkVOQ0VfVFlQRVM+ID46OnR5cGUgcmV0c190OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlIHJ0MDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MSwgcmV0c190Pjo6dHlwZSBydDE7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDIsIHJldHNfdD46OnR5cGUgcnQyOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwzLCByZXRzX3Q+Ojp0eXBlIHJ0MzsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NCwgcmV0c190Pjo6dHlwZSBydDQ7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDUsIHJldHNfdD46OnR5cGUgcnQ1OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDw2LCByZXRzX3Q+Ojp0eXBlIHJ0NjsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NywgcmV0c190Pjo6dHlwZSBydDc7CisKKyAgcmV0dXJuIEFjdDo6dGVtcGxhdGUgYXBwbHk8UkVUPigKKyAgICBjb25zdGlmeV9ydmFsczxydDA+OjpnbyhyX3NlbGVjdDxydDA+OjpnbyhnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDE+OjpnbyhyX3NlbGVjdDxydDE+OjpnbyhnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDI+OjpnbyhyX3NlbGVjdDxydDI+OjpnbyhnZXQ8Mj4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDM+OjpnbyhyX3NlbGVjdDxydDM+OjpnbyhnZXQ8Mz4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDQ+OjpnbyhyX3NlbGVjdDxydDQ+OjpnbyhnZXQ8ND4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDU+OjpnbyhyX3NlbGVjdDxydDU+OjpnbyhnZXQ8NT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDY+OjpnbyhyX3NlbGVjdDxydDY+OjpnbyhnZXQ8Nj4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKSwKKyAgICBjb25zdGlmeV9ydmFsczxydDc+OjpnbyhyX3NlbGVjdDxydDc+OjpnbyhnZXQ8Nz4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpKQorICAgICk7CisgIH0KK307CisKK0JPT1NUX0xBTUJEQV9MQU1CREFfRlVOQ1RPUl9CQVNFX0ZJUlNUX1BBUlQoOSkKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZWR1Y2VfYXJndW1lbnRfdHlwZXM8QXJncywgdHVwbGU8Q0FMTF9SRUZFUkVOQ0VfVFlQRVM+ID46OnR5cGUgcmV0c190OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlIHJ0MDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MSwgcmV0c190Pjo6dHlwZSBydDE7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDIsIHJldHNfdD46OnR5cGUgcnQyOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwzLCByZXRzX3Q+Ojp0eXBlIHJ0MzsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NCwgcmV0c190Pjo6dHlwZSBydDQ7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDUsIHJldHNfdD46OnR5cGUgcnQ1OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDw2LCByZXRzX3Q+Ojp0eXBlIHJ0NjsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NywgcmV0c190Pjo6dHlwZSBydDc7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDgsIHJldHNfdD46OnR5cGUgcnQ4OworCisgIHJldHVybiBBY3Q6OnRlbXBsYXRlIGFwcGx5PFJFVD4oCisgICAgY29uc3RpZnlfcnZhbHM8cnQwPjo6Z28ocl9zZWxlY3Q8cnQwPjo6Z28oZ2V0PDA+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQxPjo6Z28ocl9zZWxlY3Q8cnQxPjo6Z28oZ2V0PDE+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQyPjo6Z28ocl9zZWxlY3Q8cnQyPjo6Z28oZ2V0PDI+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQzPjo6Z28ocl9zZWxlY3Q8cnQzPjo6Z28oZ2V0PDM+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ0Pjo6Z28ocl9zZWxlY3Q8cnQ0Pjo6Z28oZ2V0PDQ+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ1Pjo6Z28ocl9zZWxlY3Q8cnQ1Pjo6Z28oZ2V0PDU+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ2Pjo6Z28ocl9zZWxlY3Q8cnQ2Pjo6Z28oZ2V0PDY+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ3Pjo6Z28ocl9zZWxlY3Q8cnQ3Pjo6Z28oZ2V0PDc+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSksCisgICAgY29uc3RpZnlfcnZhbHM8cnQ4Pjo6Z28ocl9zZWxlY3Q8cnQ4Pjo6Z28oZ2V0PDg+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKSkKKyAgICApOworICB9Cit9OworCitCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9GSVJTVF9QQVJUKDEwKSAKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZWR1Y2VfYXJndW1lbnRfdHlwZXM8QXJncywgdHVwbGU8Q0FMTF9SRUZFUkVOQ0VfVFlQRVM+ID46OnR5cGUgcmV0c190OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlIHJ0MDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8MSwgcmV0c190Pjo6dHlwZSBydDE7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDIsIHJldHNfdD46OnR5cGUgcnQyOworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDwzLCByZXRzX3Q+Ojp0eXBlIHJ0MzsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NCwgcmV0c190Pjo6dHlwZSBydDQ7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDUsIHJldHNfdD46OnR5cGUgcnQ1OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDw2LCByZXRzX3Q+Ojp0eXBlIHJ0NjsKKyAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50X29yX251bGw8NywgcmV0c190Pjo6dHlwZSBydDc7CisgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudF9vcl9udWxsPDgsIHJldHNfdD46OnR5cGUgcnQ4OworICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnRfb3JfbnVsbDw5LCByZXRzX3Q+Ojp0eXBlIHJ0OTsKKworICByZXR1cm4gQWN0Ojp0ZW1wbGF0ZSBhcHBseTxSRVQ+KAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0MD46OmdvKHJfc2VsZWN0PHJ0MD46OmdvKGdldDwwPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0MT46OmdvKHJfc2VsZWN0PHJ0MT46OmdvKGdldDwxPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0Mj46OmdvKHJfc2VsZWN0PHJ0Mj46OmdvKGdldDwyPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0Mz46OmdvKHJfc2VsZWN0PHJ0Mz46OmdvKGdldDwzPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0ND46OmdvKHJfc2VsZWN0PHJ0ND46OmdvKGdldDw0PihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0NT46OmdvKHJfc2VsZWN0PHJ0NT46OmdvKGdldDw1PihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0Nj46OmdvKHJfc2VsZWN0PHJ0Nj46OmdvKGdldDw2PihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0Nz46OmdvKHJfc2VsZWN0PHJ0Nz46OmdvKGdldDw3PihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0OD46OmdvKHJfc2VsZWN0PHJ0OD46OmdvKGdldDw4PihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpLAorICAgIGNvbnN0aWZ5X3J2YWxzPHJ0OT46OmdvKHJfc2VsZWN0PHJ0OT46OmdvKGdldDw5PihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykpIAorICAgICk7CisgIH0KK307CisKKyN1bmRlZiBCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JfQkFTRV9GSVJTVF9QQVJUCisKKworfSAvLyBuYW1lc3BhY2UgbGFtYmRhCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZnVuY3RvcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV9mdW5jdG9ycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhOWE3YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZnVuY3RvcnMuaHBwCkBAIC0wLDAgKzEsMzU3IEBACisvLyBCb29zdCBMYW1iZGEgTGlicmFyeSAtICBsYW1iZGFfZnVuY3RvcnMuaHBwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JTX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfTEFNQkRBX0ZVTkNUT1JTX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9yZXN1bHRfb2YuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzEwKQorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9ESVNBQkxFX0lGX0FSUkFZMShBMSwgUjEpXAorICB0eXBlbmFtZSBsYXp5X2Rpc2FibGVfaWY8aXNfYXJyYXk8QTE+LCB0eXBlbmFtZSBSMSA+Ojp0eXBlCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9ESVNBQkxFX0lGX0FSUkFZMihBMSwgQTIsIFIxLCBSMikgXAorICB0eXBlbmFtZSBsYXp5X2Rpc2FibGVfaWY8bXBsOjpvcl88aXNfYXJyYXk8QTE+LCBpc19hcnJheTxBMj4gPiwgdHlwZW5hbWUgUjEsIFIyID46OnR5cGUKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0RJU0FCTEVfSUZfQVJSQVkzKEExLCBBMiwgQTMsIFIxLCBSMiwgUjMpIFwKKyAgdHlwZW5hbWUgbGF6eV9kaXNhYmxlX2lmPG1wbDo6b3JfPGlzX2FycmF5PEExPiwgaXNfYXJyYXk8QTI+LCBpc19hcnJheTxBMz4gPiwgdHlwZW5hbWUgUjEsIFIyLCBSMyA+Ojp0eXBlCisKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0RJU0FCTEVfSUZfQVJSQVkxKEExLCBSMSkgdHlwZW5hbWUgUjE6OnR5cGUKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0RJU0FCTEVfSUZfQVJSQVkyKEExLCBBMiwgUjEsIFIyKSB0eXBlbmFtZSBSMSwgUjI6OnR5cGUKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0RJU0FCTEVfSUZfQVJSQVkzKEExLCBBMiwgQTMsIFIxLCBSMiwgUjMpIHR5cGVuYW1lIFIxLCBSMiwgUjM6OnR5cGUKKworI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKKy8vIC0tIGxhbWJkYV9mdW5jdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvL2lubGluZSBjb25zdCBudWxsX3R5cGUgY29uc3RfbnVsbF90eXBlKCkgeyByZXR1cm4gbnVsbF90eXBlKCk7IH0KKworbmFtZXNwYWNlIGRldGFpbCB7CituYW1lc3BhY2UgeworCisgIHN0YXRpYyBjb25zdCBudWxsX3R5cGUgY29uc3RhbnRfbnVsbF90eXBlID0gbnVsbF90eXBlKCk7CisKK30gLy8gdW5uYW1lZAorfSAvLyBkZXRhaWwKKworY2xhc3MgdW51c2VkIHt9OworCisjZGVmaW5lIGNudWxsX3R5cGUoKSBkZXRhaWw6OmNvbnN0YW50X251bGxfdHlwZQorCisvLyAtLSBmcmVlIHZhcmlhYmxlcyB0eXBlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKyAKKyAgLy8gaGVscGVyIHRvIHdvcmsgYXJvdW5kIHRoZSBjYXNlIHdoZXJlIHRoZSBudWxsYXJ5IHJldHVybiB0eXBlIGRlZHVjdGlvbiAKKyAgLy8gaXMgYWx3YXlzIHBlcmZvcm1lZCwgZXZlbiB0aG91Z2ggdGhlIGZ1bmN0b3IgaXMgbm90IG51bGxhcnkgIAorbmFtZXNwYWNlIGRldGFpbCB7CisgIHRlbXBsYXRlPGludCBOLCBjbGFzcyBUdXBsZT4gc3RydWN0IGdldF9lbGVtZW50X29yX251bGxfdHlwZSB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICAgIGRldGFpbDo6dHVwbGVfZWxlbWVudF9hc19yZWZlcmVuY2U8TiwgVHVwbGU+Ojp0eXBlIHR5cGU7CisgIH07CisgIHRlbXBsYXRlPGludCBOPiBzdHJ1Y3QgZ2V0X2VsZW1lbnRfb3JfbnVsbF90eXBlPE4sIG51bGxfdHlwZT4geworICAgIHR5cGVkZWYgbnVsbF90eXBlIHR5cGU7CisgIH07Cit9CisKK3RlbXBsYXRlIDxpbnQgST4gc3RydWN0IHBsYWNlaG9sZGVyOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBwbGFjZWhvbGRlcjxGSVJTVD4geworCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpnZXRfZWxlbWVudF9vcl9udWxsX3R5cGU8MCwgU2lnQXJncz46OnR5cGUgdHlwZTsKKyAgfTsKKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIENBTExfVEVNUExBVEVfQVJHUz4gCisgIFJFVCBjYWxsKENBTExfRk9STUFMX0FSR1MpIGNvbnN0IHsgCisgICAgQk9PU1RfU1RBVElDX0FTU0VSVChuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFJFVD46OnZhbHVlKTsgCisgICAgQ0FMTF9VU0VfQVJHUzsgLy8gZG9lcyBub3RoaW5nLCBwcmV2ZW50cyB3YXJuaW5ncyBmb3IgdW51c2VkIGFyZ3MKKyAgICByZXR1cm4gYTsgCisgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHBsYWNlaG9sZGVyPFNFQ09ORD4geworCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpnZXRfZWxlbWVudF9vcl9udWxsX3R5cGU8MSwgU2lnQXJncz46OnR5cGUgdHlwZTsKKyAgfTsKKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIENBTExfVEVNUExBVEVfQVJHUz4gCisgIFJFVCBjYWxsKENBTExfRk9STUFMX0FSR1MpIGNvbnN0IHsgQ0FMTF9VU0VfQVJHUzsgcmV0dXJuIGI7IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHBsYWNlaG9sZGVyPFRISVJEPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmdldF9lbGVtZW50X29yX251bGxfdHlwZTwyLCBTaWdBcmdzPjo6dHlwZSB0eXBlOworICB9OworCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPiAKKyAgUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeyBDQUxMX1VTRV9BUkdTOyByZXR1cm4gYzsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcGxhY2Vob2xkZXI8RVhDRVBUSU9OPiB7CisKKyAgdGVtcGxhdGU8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmdldF9lbGVtZW50X29yX251bGxfdHlwZTwzLCBTaWdBcmdzPjo6dHlwZSB0eXBlOworICB9OworCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPiAKKyAgUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeyBDQUxMX1VTRV9BUkdTOyByZXR1cm4gZW52OyB9Cit9OworICAgCit0eXBlZGVmIGNvbnN0IGxhbWJkYV9mdW5jdG9yPHBsYWNlaG9sZGVyPEZJUlNUPiA+ICBwbGFjZWhvbGRlcjFfdHlwZTsKK3R5cGVkZWYgY29uc3QgbGFtYmRhX2Z1bmN0b3I8cGxhY2Vob2xkZXI8U0VDT05EPiA+IHBsYWNlaG9sZGVyMl90eXBlOwordHlwZWRlZiBjb25zdCBsYW1iZGFfZnVuY3RvcjxwbGFjZWhvbGRlcjxUSElSRD4gPiAgcGxhY2Vob2xkZXIzX3R5cGU7CisgICAKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKy8vIGZyZWUgdmFyaWFibGVzIGFyZSBsYW1iZGFfZnVuY3RvcnMuIFRoaXMgaXMgdG8gYWxsb3cgdW5pZm9ybSBoYW5kbGluZyB3aXRoIAorLy8gb3RoZXIgbGFtYmRhX2Z1bmN0b3JzLgorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0NTEyKSAvL2Fzc2lnbm1lbnQgb3BlcmF0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZAorI2VuZGlmCisKKy8vIC0tIGxhbWJkYV9mdW5jdG9yIE5PTkUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2NsYXNzIGxhbWJkYV9mdW5jdG9yIDogcHVibGljIFQgCit7CisKK0JPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIGFyaXR5X2JpdHMgPSBnZXRfYXJpdHk8VD46OnZhbHVlKTsKKyAKK3B1YmxpYzoKKyAgdHlwZWRlZiBUIGluaGVyaXRlZDsKKworICBsYW1iZGFfZnVuY3RvcigpIHt9CisgIGxhbWJkYV9mdW5jdG9yKGNvbnN0IGxhbWJkYV9mdW5jdG9yJiBsKSA6IGluaGVyaXRlZChsKSB7fQorCisgIGxhbWJkYV9mdW5jdG9yKGNvbnN0IFQmIHQpIDogaW5oZXJpdGVkKHQpIHt9CisKKyAgdGVtcGxhdGUgPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW5oZXJpdGVkOjp0ZW1wbGF0ZSAKKyAgICAgIHNpZzx0eXBlbmFtZSBTaWdBcmdzOjp0YWlsX3R5cGU+Ojp0eXBlIHR5cGU7CisgIH07CisKKyAgLy8gTm90ZSB0aGF0IHRoaXMgcmV0dXJuIHR5cGUgZGVkdWN0aW9uIHRlbXBsYXRlIGlzIGluc3RhbnRpYXRlZCwgZXZlbiAKKyAgLy8gaWYgdGhlIG51bGxhcnkgCisgIC8vIG9wZXJhdG9yKCkgaXMgbm90IGNhbGxlZCBhdCBhbGwuIE9uZSBtdXN0IG1ha2Ugc3VyZSB0aGF0IGl0IGRvZXMgbm90IGZhaWwuCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgaW5oZXJpdGVkOjp0ZW1wbGF0ZSBzaWc8bnVsbF90eXBlPjo6dHlwZQorICAgICAgbnVsbGFyeV9yZXR1cm5fdHlwZTsKKworICAvLyBTdXBwb3J0IGZvciBuZG5ib29zdDo6cmVzdWx0X29mLgorICB0ZW1wbGF0ZSA8Y2xhc3MgU2lnPiBzdHJ1Y3QgcmVzdWx0OworICB0ZW1wbGF0ZSA8Y2xhc3MgRj4KKyAgc3RydWN0IHJlc3VsdDxGKCk+IHsKKyAgICB0eXBlZGVmIG51bGxhcnlfcmV0dXJuX3R5cGUgdHlwZTsKKyAgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIEYsIGNsYXNzIEE+CisgIHN0cnVjdCByZXN1bHQ8RihBKT4geworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2lnPHR1cGxlPEYsIEE+ID46OnR5cGUgdHlwZTsKKyAgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIEYsIGNsYXNzIEEsIGNsYXNzIEI+CisgIHN0cnVjdCByZXN1bHQ8RihBLCBCKT4geworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2lnPHR1cGxlPEYsIEEsIEI+ID46OnR5cGUgdHlwZTsKKyAgfTsKKyAgdGVtcGxhdGUgPGNsYXNzIEYsIGNsYXNzIEEsIGNsYXNzIEIsIGNsYXNzIEM+CisgIHN0cnVjdCByZXN1bHQ8RihBLCBCLCBDKT4geworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2lnPHR1cGxlPEYsIEEsIEIsIEM+ID46OnR5cGUgdHlwZTsKKyAgfTsKKworICBudWxsYXJ5X3JldHVybl90eXBlIG9wZXJhdG9yKCkoKSBjb25zdCB7IAorICAgIHJldHVybiBpbmhlcml0ZWQ6OnRlbXBsYXRlIAorICAgICAgY2FsbDxudWxsYXJ5X3JldHVybl90eXBlPgorICAgICAgICAoY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpKTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBPgorICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBJj4gPjo6dHlwZQorICBvcGVyYXRvcigpKEEmIGEpIGNvbnN0IHsgCisgICAgcmV0dXJuIGluaGVyaXRlZDo6dGVtcGxhdGUgY2FsbDwKKyAgICAgIHR5cGVuYW1lIGluaGVyaXRlZDo6dGVtcGxhdGUgc2lnPHR1cGxlPEEmPiA+Ojp0eXBlCisgICAgPihhLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpKTsKKyAgfQorCisgIHRlbXBsYXRlPGNsYXNzIEE+CisgIEJPT1NUX0xBTUJEQV9ESVNBQkxFX0lGX0FSUkFZMShBLCBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBIGNvbnN0Jj4gPikKKyAgb3BlcmF0b3IoKShBIGNvbnN0JiBhKSBjb25zdCB7IAorICAgIHJldHVybiBpbmhlcml0ZWQ6OnRlbXBsYXRlIGNhbGw8CisgICAgICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBIGNvbnN0Jj4gPjo6dHlwZQorICAgID4oYSwgY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7CisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBJiwgQiY+ID46OnR5cGUKKyAgb3BlcmF0b3IoKShBJiBhLCBCJiBiKSBjb25zdCB7IAorICAgIHJldHVybiBpbmhlcml0ZWQ6OnRlbXBsYXRlIGNhbGw8CisgICAgICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBJiwgQiY+ID46OnR5cGUKKyAgICA+KGEsIGIsIGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpKTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorICBCT09TVF9MQU1CREFfRElTQUJMRV9JRl9BUlJBWTIoQSwgQiwgaW5oZXJpdGVkOjp0ZW1wbGF0ZSBzaWc8dHVwbGU8QSBjb25zdCYsIEImPiA+KQorICBvcGVyYXRvcigpKEEgY29uc3QmIGEsIEImIGIpIGNvbnN0IHsgCisgICAgcmV0dXJuIGluaGVyaXRlZDo6dGVtcGxhdGUgY2FsbDwKKyAgICAgIHR5cGVuYW1lIGluaGVyaXRlZDo6dGVtcGxhdGUgc2lnPHR1cGxlPEEgY29uc3QmLCBCJj4gPjo6dHlwZQorICAgID4oYSwgYiwgY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCkpOyAKKyAgfQorCisgIHRlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+CisgIEJPT1NUX0xBTUJEQV9ESVNBQkxFX0lGX0FSUkFZMihBLCBCLCBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBJiwgQiBjb25zdCY+ID4pCisgIG9wZXJhdG9yKCkoQSYgYSwgQiBjb25zdCYgYikgY29uc3QgeyAKKyAgICByZXR1cm4gaW5oZXJpdGVkOjp0ZW1wbGF0ZSBjYWxsPAorICAgICAgdHlwZW5hbWUgaW5oZXJpdGVkOjp0ZW1wbGF0ZSBzaWc8dHVwbGU8QSYsIEIgY29uc3QmPiA+Ojp0eXBlCisgICAgPihhLCBiLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7IAorICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4KKyAgQk9PU1RfTEFNQkRBX0RJU0FCTEVfSUZfQVJSQVkyKEEsIEIsIGluaGVyaXRlZDo6dGVtcGxhdGUgc2lnPHR1cGxlPEEgY29uc3QmLCBCIGNvbnN0Jj4gPikKKyAgb3BlcmF0b3IoKShBIGNvbnN0JiBhLCBCIGNvbnN0JiBiKSBjb25zdCB7IAorICAgIHJldHVybiBpbmhlcml0ZWQ6OnRlbXBsYXRlIGNhbGw8CisgICAgICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBIGNvbnN0JiwgQiBjb25zdCY+ID46OnR5cGUKKyAgICA+KGEsIGIsIGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpKTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCLCBjbGFzcyBDPgorICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBJiwgQiYsIEMmPiA+Ojp0eXBlCisgIG9wZXJhdG9yKCkoQSYgYSwgQiYgYiwgQyYgYykgY29uc3QKKyAgeyAKKyAgICByZXR1cm4gaW5oZXJpdGVkOjp0ZW1wbGF0ZSBjYWxsPAorICAgICAgdHlwZW5hbWUgaW5oZXJpdGVkOjp0ZW1wbGF0ZSBzaWc8dHVwbGU8QSYsIEImLCBDJj4gPjo6dHlwZQorICAgID4oYSwgYiwgYywgY251bGxfdHlwZSgpKTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCLCBjbGFzcyBDPgorICBCT09TVF9MQU1CREFfRElTQUJMRV9JRl9BUlJBWTMoQSwgQiwgQywgaW5oZXJpdGVkOjp0ZW1wbGF0ZSBzaWc8dHVwbGU8QSBjb25zdCYsIEIgY29uc3QmLCBDIGNvbnN0Jj4gPikKKyAgb3BlcmF0b3IoKShBIGNvbnN0JiBhLCBCIGNvbnN0JiBiLCBDIGNvbnN0JiBjKSBjb25zdAorICB7IAorICAgIHJldHVybiBpbmhlcml0ZWQ6OnRlbXBsYXRlIGNhbGw8CisgICAgICB0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIHNpZzx0dXBsZTxBIGNvbnN0JiwgQiBjb25zdCYsIEMgY29uc3QmPiA+Ojp0eXBlCisgICAgPihhLCBiLCBjLCBjbnVsbF90eXBlKCkpOyAKKyAgfQorCisgIC8vIGZvciBpbnRlcm5hbCBjYWxscyB3aXRoIGVudgorICB0ZW1wbGF0ZTxDQUxMX1RFTVBMQVRFX0FSR1M+CisgIHR5cGVuYW1lIGluaGVyaXRlZDo6dGVtcGxhdGUgc2lnPHR1cGxlPENBTExfUkVGRVJFTkNFX1RZUEVTPiA+Ojp0eXBlCisgIGludGVybmFsX2NhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeyAKKyAgICAgcmV0dXJuIGluaGVyaXRlZDo6dGVtcGxhdGUgCisgICAgICAgY2FsbDx0eXBlbmFtZSBpbmhlcml0ZWQ6OnRlbXBsYXRlIAorICAgICAgICAgc2lnPHR1cGxlPENBTExfUkVGRVJFTkNFX1RZUEVTPiA+Ojp0eXBlPihDQUxMX0FDVFVBTF9BUkdTKTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBPgorICBjb25zdCBsYW1iZGFfZnVuY3RvcjxsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgICAgICAgICAgICAgb3RoZXJfYWN0aW9uPGFzc2lnbm1lbnRfYWN0aW9uPiwKKyAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0dXBsZTxsYW1iZGFfZnVuY3RvciwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQgPGNvbnN0IEE+Ojp0eXBlPiA+ID4KKyAgb3BlcmF0b3I9KGNvbnN0IEEmIGEpIGNvbnN0IHsKKyAgICByZXR1cm4gbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgICAgICAgICAgICAgIG90aGVyX2FjdGlvbjxhc3NpZ25tZW50X2FjdGlvbj4sCisgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHVwbGU8bGFtYmRhX2Z1bmN0b3IsCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50IDxjb25zdCBBPjo6dHlwZT4gPgorICAgICAoICBuZG5ib29zdDo6dHVwbGU8bGFtYmRhX2Z1bmN0b3IsCisgICAgICAgICAgICAgdHlwZW5hbWUgY29uc3RfY29weV9hcmd1bWVudCA8Y29uc3QgQT46OnR5cGU+KCp0aGlzLCBhKSApOworICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgQT4gCisgIGNvbnN0IGxhbWJkYV9mdW5jdG9yPGxhbWJkYV9mdW5jdG9yX2Jhc2U8IAorICAgICAgICAgICAgICAgICAgb3RoZXJfYWN0aW9uPHN1YnNjcmlwdF9hY3Rpb24+LCAKKyAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0dXBsZTxsYW1iZGFfZnVuY3RvciwgCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50IDxjb25zdCBBPjo6dHlwZT4gPiA+IAorICBvcGVyYXRvcltdKGNvbnN0IEEmIGEpIGNvbnN0IHsgCisgICAgcmV0dXJuIGxhbWJkYV9mdW5jdG9yX2Jhc2U8IAorICAgICAgICAgICAgICAgICAgb3RoZXJfYWN0aW9uPHN1YnNjcmlwdF9hY3Rpb24+LCAKKyAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0dXBsZTxsYW1iZGFfZnVuY3RvciwgCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50IDxjb25zdCBBPjo6dHlwZT4gPgorICAgICAoIG5kbmJvb3N0Ojp0dXBsZTxsYW1iZGFfZnVuY3RvciwgCisgICAgICAgICAgICAgdHlwZW5hbWUgY29uc3RfY29weV9hcmd1bWVudCA8Y29uc3QgQT46OnR5cGU+KCp0aGlzLCBhICkgKTsgCisgIH0gCit9OworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNDAwKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBsYW1iZGEKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiAhZGVmaW5lZChCT09TVF9SRVNVTFRfT0ZfVVNFX0RFQ0xUWVBFKSB8fCBkZWZpbmVkKEJPT1NUX05PX0RFQ0xUWVBFKQorCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IHJlc3VsdF9vZjxuZG5ib29zdDo6bGFtYmRhOjpsYW1iZGFfZnVuY3RvcjxUPigpPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmxhbWJkYTo6bGFtYmRhX2Z1bmN0b3I8VD46Om51bGxhcnlfcmV0dXJuX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgcmVzdWx0X29mPGNvbnN0IG5kbmJvb3N0OjpsYW1iZGE6OmxhbWJkYV9mdW5jdG9yPFQ+KCk+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6bGFtYmRhOjpsYW1iZGFfZnVuY3RvcjxUPjo6bnVsbGFyeV9yZXR1cm5fdHlwZSB0eXBlOworfTsKKworI2VuZGlmCisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgdHIxX3Jlc3VsdF9vZjxuZG5ib29zdDo6bGFtYmRhOjpsYW1iZGFfZnVuY3RvcjxUPigpPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmxhbWJkYTo6bGFtYmRhX2Z1bmN0b3I8VD46Om51bGxhcnlfcmV0dXJuX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgdHIxX3Jlc3VsdF9vZjxjb25zdCBuZG5ib29zdDo6bGFtYmRhOjpsYW1iZGFfZnVuY3RvcjxUPigpPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmxhbWJkYTo6bGFtYmRhX2Z1bmN0b3I8VD46Om51bGxhcnlfcmV0dXJuX3R5cGUgdHlwZTsKK307CisKK30KKworLy8gaXNfcGxhY2Vob2xkZXIKKworI2luY2x1ZGUgPG5kbmJvb3N0L2lzX3BsYWNlaG9sZGVyLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK3RlbXBsYXRlPD4gc3RydWN0IGlzX3BsYWNlaG9sZGVyPCBsYW1iZGE6OmxhbWJkYV9mdW5jdG9yPCBsYW1iZGE6OnBsYWNlaG9sZGVyPGxhbWJkYTo6RklSU1Q+ID4gPgoreworICAgIGVudW0gX3Z0IHsgdmFsdWUgPSAxIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBpc19wbGFjZWhvbGRlcjwgbGFtYmRhOjpsYW1iZGFfZnVuY3RvcjwgbGFtYmRhOjpwbGFjZWhvbGRlcjxsYW1iZGE6OlNFQ09ORD4gPiA+Cit7CisgICAgZW51bSBfdnQgeyB2YWx1ZSA9IDIgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGlzX3BsYWNlaG9sZGVyPCBsYW1iZGE6OmxhbWJkYV9mdW5jdG9yPCBsYW1iZGE6OnBsYWNlaG9sZGVyPGxhbWJkYTo6VEhJUkQ+ID4gPgoreworICAgIGVudW0gX3Z0IHsgdmFsdWUgPSAzIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9sYW1iZGFfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDI1M2I3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV9md2QuaHBwCkBAIC0wLDAgKzEsNzQgQEAKKy8vICBsYW1iZGFfZndkLmhwcCAtIEJvb3N0IExhbWJkYSBMaWJyYXJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB3d3cuYm9vc3Qub3JnCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9MQU1CREFfRldEX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfRldEX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyAKK25hbWVzcGFjZSBsYW1iZGEgeyAKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBnZW5lcmF0ZV9lcnJvcjsKKworfSAgIAorLy8gLS0gcGxhY2Vob2xkZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3RlbXBsYXRlIDxpbnQgST4gc3RydWN0IHBsYWNlaG9sZGVyOworCisvLyBmdW5jdGlvbl9hZGFwdG9ycwordGVtcGxhdGUgPGNsYXNzIEZ1bmM+IAorc3RydWN0IGZ1bmN0aW9uX2FkYXB0b3I7CisKK3RlbXBsYXRlIDxpbnQgSSwgY2xhc3MgQWN0PiBjbGFzcyBhY3Rpb247CisKK3RlbXBsYXRlIDxjbGFzcyBCYXNlPiAKK2NsYXNzIGxhbWJkYV9mdW5jdG9yOworCit0ZW1wbGF0ZSA8Y2xhc3MgQWN0LCBjbGFzcyBBcmdzPiAKK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U7CisKK30gLy8gbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisvLyAgI2RlZmluZSBDQUxMX1RFTVBMQVRFX0FSR1MgY2xhc3MgQSwgY2xhc3MgRW52CisvLyAgI2RlZmluZSBDQUxMX0ZPUk1BTF9BUkdTIEEmIGEsIEVudiYgZW52CisvLyAgI2RlZmluZSBDQUxMX0FDVFVBTF9BUkdTIGEsIGVudgorLy8gICNkZWZpbmUgQ0FMTF9BQ1RVQUxfQVJHU19OT19FTlYgYQorLy8gICNkZWZpbmUgQ0FMTF9SRUZFUkVOQ0VfVFlQRVMgQSYsIEVudiYKKy8vICAjZGVmaW5lIENBTExfUExBSU5fVFlQRVMgQSwgRW52CisjZGVmaW5lIENBTExfVEVNUExBVEVfQVJHUyBjbGFzcyBBLCBjbGFzcyBCLCBjbGFzcyBDLCBjbGFzcyBFbnYKKyNkZWZpbmUgQ0FMTF9GT1JNQUxfQVJHUyBBJiBhLCBCJiBiLCBDJiBjLCBFbnYmIGVudgorI2RlZmluZSBDQUxMX0FDVFVBTF9BUkdTIGEsIGIsIGMsIGVudgorI2RlZmluZSBDQUxMX0FDVFVBTF9BUkdTX05PX0VOViBhLCBiLCBjCisjZGVmaW5lIENBTExfUkVGRVJFTkNFX1RZUEVTIEEmLCBCJiwgQyYsIEVudiYKKyNkZWZpbmUgQ0FMTF9QTEFJTl9UWVBFUyBBLCBCLCBDLCBFbnYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBsYW1iZGEgeworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0Pgordm9pZCBkb19ub3RoaW5nKEExJiwgQTImLCBBMyYsIEE0Jikge30KKworfSAvLyBkZXRhaWwKK30gLy8gbGFtYmRhCit9IC8vIGJvb3N0CisKKy8vIHByZXZlbnQgdGhlIHdhcm5pbmdzIGZyb20gdW51c2VkIGFyZ3VtZW50cworI2RlZmluZSBDQUxMX1VTRV9BUkdTIFwKKzo6bmRuYm9vc3Q6OmxhbWJkYTo6ZGV0YWlsOjpkb19ub3RoaW5nKGEsIGIsIGMsIGVudikKKworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL2xhbWJkYV90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMjQxYjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvbGFtYmRhX3RyYWl0cy5ocHAKQEAgLTAsMCArMSw1NzggQEAKKy8vIC0gbGFtYmRhX3RyYWl0cy5ocHAgLS0tIEJvb3N0IExhbWJkYSBMaWJyYXJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHd3dy5ib29zdC5vcmcKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9MQU1CREFfTEFNQkRBX1RSQUlUU19IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0xBTUJEQV9UUkFJVFNfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy90cmFuc2Zvcm1fdHJhaXRzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9jdl90cmFpdHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2Z1bmN0aW9uX3RyYWl0cy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvb2JqZWN0X3RyYWl0cy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHVwbGUvdHVwbGUuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGxhbWJkYSB7CisKKy8vIC0tIGlmIGNvbnN0cnVjdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFByb3Bvc2VkIGJ5IEtyenlzenRvZiBDemFybmVja2kgYW5kIFVscmljaCBFaXNlbmVja2VyCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8Ym9vbCBJZiwgY2xhc3MgVGhlbiwgY2xhc3MgRWxzZT4gc3RydWN0IElGIHsgdHlwZWRlZiBUaGVuIFJFVDsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFRoZW4sIGNsYXNzIEVsc2U+IHN0cnVjdCBJRjxmYWxzZSwgVGhlbiwgRWxzZT4geworICB0eXBlZGVmIEVsc2UgUkVUOworfTsKKworCisvLyBBbiBpZiBjb25zdHJ1Y3QgdGhhdCBkb2Vzbid0IGluc3RhbnRpYXRlIHRoZSBub24tbWF0Y2hpbmcgdGVtcGxhdGU6CisKKy8vIENhbGxlZCBhczogCisvLyAgSUZfdHlwZTxjb25kaXRpb24sIEEsIEI+Ojp0eXBlIAorLy8gVGhlIG1hdGNoaW5nIHRlbXBsYXRlIG11c3QgZGVmaW5lIHRoZSB0eXBlZGVkICd0eXBlJworLy8gSS5lLiBBOjp0eXBlIGlmIGNvbmRpdGlvbiBpcyB0cnVlLCBCOjp0eXBlIGlmIGNvbmRpdGlvbiBpcyBmYWxzZQorLy8gSWRlYSBmcm9tIFZlc2EgS2Fydm9uZW4gKGZyb20gQyZFIGFzIHdlbGwgSSBndWVzcykKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgSUZfdHlwZV8KK3sKKyAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0eXBlIHR5cGU7Cit9OworCisKK3RlbXBsYXRlPGJvb2wgQywgY2xhc3MgVCwgY2xhc3MgRT4KK3N0cnVjdCBJRl90eXBlCit7CisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICBJRl90eXBlXzx0eXBlbmFtZSBJRjxDLCBULCBFPjo6UkVUID46OnR5cGUgdHlwZTsKK307CisKKy8vIGhlbHBlciB0aGF0IGNhbiBiZSB1c2VkIHRvIGdpdmUgdHlwZWRlZiBUIHRvIHNvbWUgdHlwZQordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpZGVudGl0eV9tYXBwaW5nIHsgdHlwZWRlZiBUIHR5cGU7IH07CisKKy8vIEFuIGlmIGNvbnN0cnVjdCBmb3IgZmluZGluZyBhbiBpbnRlZ3JhbCBjb25zdGFudCAndmFsdWUnCisvLyBEb2VzIG5vdCBpbnN0YW50aWF0ZSB0aGUgbm9uLW1hdGNoaW5nIGJyYW5jaAorLy8gQ2FsbGVkIGFzIElGX3ZhbHVlPGNvbmRpdGlvbiwgQSwgQj46OnZhbHVlCisvLyBJZiBjb25kaXRpb24gaXMgdHJ1ZSBBOjp2YWx1ZSBtdXN0IGJlIGRlZmluZWQsIG90aGVyd2lzZSBCOjp2YWx1ZQorCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IElGX3ZhbHVlXworeworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9IFQ6OnZhbHVlKTsKK307CisKKwordGVtcGxhdGU8Ym9vbCBDLCBjbGFzcyBULCBjbGFzcyBFPgorc3RydWN0IElGX3ZhbHVlCit7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gKElGX3ZhbHVlXzx0eXBlbmFtZSBJRjxDLCBULCBFPjo6UkVUPjo6dmFsdWUpKTsKK307CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gcmVtb3ZlcyByZWZlcmVuY2UgZnJvbSBvdGhlciB0aGFuIGZ1bmN0aW9uIHR5cGVzOgordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgcmVtb3ZlX3JlZmVyZW5jZV9pZl92YWxpZAoreworCisgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgcGxhaW5UOworcHVibGljOgorICB0eXBlZGVmIHR5cGVuYW1lIElGPAorICAgIG5kbmJvb3N0Ojppc19mdW5jdGlvbjxwbGFpblQ+Ojp2YWx1ZSwKKyAgICBULAorICAgIHBsYWluVAorICA+OjpSRVQgdHlwZTsKKworfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgcmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3YgeworICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PAorICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZQorICAgPjo6dHlwZSB0eXBlOworfTsKKworCisgICAKKy8vIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb2YgdHVwbGUgVAordGVtcGxhdGU8aW50IE4sIGNsYXNzIFQ+IHN0cnVjdCB0dXBsZV9lbGVtZW50X2FzX3JlZmVyZW5jZSB7ICAgCisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgbmRuYm9vc3Q6OnR1cGxlczo6YWNjZXNzX3RyYWl0czwKKyAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6dHVwbGVzOjplbGVtZW50PE4sIFQ+Ojp0eXBlCisgICAgID46Om5vbl9jb25zdF90eXBlIHR5cGU7Cit9OworCisvLyByZXR1cm5zIHRoZSBjdiBhbmQgcmV2ZXJlbmNlIHN0cmlwcGVkIHR5cGUgb2YgYSB0dXBsZSBlbGVtZW50Cit0ZW1wbGF0ZTxpbnQgTiwgY2xhc3MgVD4gc3RydWN0IHR1cGxlX2VsZW1lbnRfc3RyaXBwZWQgeyAgIAorICB0eXBlZGVmIHR5cGVuYW1lCisgICAgIHJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PAorICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp0dXBsZXM6OmVsZW1lbnQ8TiwgVD46OnR5cGUKKyAgICAgPjo6dHlwZSB0eXBlOworfTsKKworLy8gaXNfbGFtYmRhX2Z1bmN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgIAorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGlzX2xhbWJkYV9mdW5jdG9yXyB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisgICAKK3RlbXBsYXRlIDxjbGFzcyBBcmc+IHN0cnVjdCBpc19sYW1iZGFfZnVuY3Rvcl88bGFtYmRhX2Z1bmN0b3I8QXJnPiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworICAgCit9IC8vIGVuZCBkZXRhaWwKKworICAgCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGlzX2xhbWJkYV9mdW5jdG9yIHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIAorICAgICB2YWx1ZSA9IAorICAgICAgIGRldGFpbDo6aXNfbGFtYmRhX2Z1bmN0b3JfPAorICAgICAgICAgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxUPjo6dHlwZQorICAgICAgID46OnZhbHVlKTsKK307CisgICAKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIC0tIHBhcmFtZXRlcl90cmFpdHNfIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBBbiBpbnRlcm5hbCBwYXJhbWV0ZXIgdHlwZSB0cmFpdHMgY2xhc3MgdGhhdCByZXNwZWN0cworLy8gdGhlIHJlZmVyZW5jZV93cmFwcGVyIGNsYXNzLgorCisvLyBUaGUgY29udmVyc2lvbnMgcGVyZm9ybWVkIGFyZToKKy8vIHJlZmVyZW5jZXMgLT4gY29tcGlsZV90aW1lX2Vycm9yCisvLyBUMSAtPiBUMiwgCisvLyByZWZlcmVuY2Vfd3JhcHBlcjxUPiAtPiBUJgorLy8gY29uc3QgYXJyYXkgLT4gcmVmIHRvIGNvbnN0IGFycmF5CisvLyBhcnJheSAtPiByZWYgdG8gYXJyYXkKKy8vIGZ1bmN0aW9uIC0+IHJlZiB0byBmdW5jdGlvbgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordGVtcGxhdGU8Y2xhc3MgVDEsIGNsYXNzIFQyPiAKK3N0cnVjdCBwYXJhbWV0ZXJfdHJhaXRzXyB7CisgIHR5cGVkZWYgVDIgdHlwZTsKK307CisKKy8vIERvIG5vdCBpbnN0YW50aWF0ZSB3aXRoIHJlZmVyZW5jZSB0eXBlcwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgQW55PiBzdHJ1Y3QgcGFyYW1ldGVyX3RyYWl0c188VCYsIEFueT4geworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGdlbmVyYXRlX2Vycm9yPFQmPjo6CisgICAgICBwYXJhbWV0ZXJfdHJhaXRzX2NsYXNzX2luc3RhbnRpYXRlZF93aXRoX3JlZmVyZW5jZV90eXBlIHR5cGU7Cit9OworCisvLyBBcnJheXMgY2FuJ3QgYmUgc3RvcmVkIGFzIHBsYWluIHR5cGVzOyBjb252ZXJ0IHRoZW0gdG8gcmVmZXJlbmNlcwordGVtcGxhdGU8Y2xhc3MgVCwgaW50IG4sIGNsYXNzIEFueT4gc3RydWN0IHBhcmFtZXRlcl90cmFpdHNfPFRbbl0sIEFueT4geworICB0eXBlZGVmIFQgKCZ0eXBlKVtuXTsKK307CisgICAKK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuLCBjbGFzcyBBbnk+IAorc3RydWN0IHBhcmFtZXRlcl90cmFpdHNfPGNvbnN0IFRbbl0sIEFueT4geworICB0eXBlZGVmIGNvbnN0IFQgKCZ0eXBlKVtuXTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuLCBjbGFzcyBBbnk+IAorc3RydWN0IHBhcmFtZXRlcl90cmFpdHNfPHZvbGF0aWxlIFRbbl0sIEFueT4geworICB0eXBlZGVmIHZvbGF0aWxlICBUICgmdHlwZSlbbl07Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgaW50IG4sIGNsYXNzIEFueT4gCitzdHJ1Y3QgcGFyYW1ldGVyX3RyYWl0c188Y29uc3Qgdm9sYXRpbGUgVFtuXSwgQW55PiB7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVCAoJnR5cGUpW25dOworfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBBbnk+IAorc3RydWN0IHBhcmFtZXRlcl90cmFpdHNfPG5kbmJvb3N0OjpyZWZlcmVuY2Vfd3JhcHBlcjxUPiwgQW55ID57CisgIHR5cGVkZWYgVCYgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEFueT4gCitzdHJ1Y3QgcGFyYW1ldGVyX3RyYWl0c188Y29uc3QgbmRuYm9vc3Q6OnJlZmVyZW5jZV93cmFwcGVyPFQ+LCBBbnkgPnsKKyAgdHlwZWRlZiBUJiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgQW55PiAKK3N0cnVjdCBwYXJhbWV0ZXJfdHJhaXRzXzx2b2xhdGlsZSBuZG5ib29zdDo6cmVmZXJlbmNlX3dyYXBwZXI8VD4sIEFueSA+eworICB0eXBlZGVmIFQmIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBBbnk+IAorc3RydWN0IHBhcmFtZXRlcl90cmFpdHNfPGNvbnN0IHZvbGF0aWxlIG5kbmJvb3N0OjpyZWZlcmVuY2Vfd3JhcHBlcjxUPiwgQW55ID57CisgIHR5cGVkZWYgVCYgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEFueT4KK3N0cnVjdCBwYXJhbWV0ZXJfdHJhaXRzXzx2b2lkLCBBbnk+IHsKKyAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBcmcsIGNsYXNzIEFueT4KK3N0cnVjdCBwYXJhbWV0ZXJfdHJhaXRzXzxsYW1iZGFfZnVuY3RvcjxBcmc+LCBBbnkgPiB7CisgIHR5cGVkZWYgbGFtYmRhX2Z1bmN0b3I8QXJnPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQXJnLCBjbGFzcyBBbnk+CitzdHJ1Y3QgcGFyYW1ldGVyX3RyYWl0c188Y29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiwgQW55ID4geworICB0eXBlZGVmIGxhbWJkYV9mdW5jdG9yPEFyZz4gdHlwZTsKK307CisKKy8vIEFyZSB0aGUgdm9sYXRpbGUgdmVyc2lvbnMgbmVlZGVkPwordGVtcGxhdGU8Y2xhc3MgQXJnLCBjbGFzcyBBbnk+CitzdHJ1Y3QgcGFyYW1ldGVyX3RyYWl0c188dm9sYXRpbGUgbGFtYmRhX2Z1bmN0b3I8QXJnPiwgQW55ID4geworICB0eXBlZGVmIGxhbWJkYV9mdW5jdG9yPEFyZz4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEFyZywgY2xhc3MgQW55Pgorc3RydWN0IHBhcmFtZXRlcl90cmFpdHNfPGNvbnN0IHZvbGF0aWxlIGxhbWJkYV9mdW5jdG9yPEFyZz4sIEFueSA+IHsKKyAgdHlwZWRlZiBsYW1iZGFfZnVuY3RvcjxBcmc+IHR5cGU7Cit9OworCit9IC8vIGVuZCBuYW1lc3BhY2UgZGV0YWlsCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyB0cmFpdHMgY2xhc3NlcyBmb3IgbGFtYmRhIGV4cHJlc3Npb25zIChiaW5kIGZ1bmN0aW9ucywgb3BlcmF0b3JzIC4uLikgICAKKworLy8gbXVzdCBiZSBpbnN0YW50aWF0ZWQgd2l0aCBub24tcmVmZXJlbmNlIHR5cGVzCisKKy8vIFRoZSBkZWZhdWx0IGlzIGNvbnN0IHBsYWluIHR5cGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gY29uc3QgVCAtPiBjb25zdCBULCAKKy8vIFQgLT4gY29uc3QgVCwgCisvLyByZWZlcmVuY2VzIC0+IGNvbXBpbGVfdGltZV9lcnJvcgorLy8gcmVmZXJlbmNlX3dyYXBwZXI8VD4gLT4gVCYKKy8vIGFycmF5IC0+IGNvbnN0IHJlZiBhcnJheQordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBjb25zdF9jb3B5X2FyZ3VtZW50IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZXRhaWw6OnBhcmFtZXRlcl90cmFpdHNfPAorICAgICAgVCwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6SUY8bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZSwgVCYsIGNvbnN0IFQ+OjpSRVQKKyAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisvLyBUIG1heSBiZSBhIGZ1bmN0aW9uIHR5cGUuIFdpdGhvdXQgdGhlIElGIHRlc3QsIGNvbnN0IHdvdWxkIGJlIGFkZGVkIAorLy8gdG8gYSBmdW5jdGlvbiB0eXBlLCB3aGljaCBpcyBpbGxlZ2FsLgorCisvLyBhbGwgYXJyYXlzIGFyZSBjb252ZXJ0ZWQgdG8gY29uc3QuCisvLyBUaGlzIHRyYWl0cyB0ZW1wbGF0ZSBpcyB1c2VkIGZvciAnY29uc3QgVCYnIHBhcmFtZXRlciBwYXNzaW5nIAorLy8gYW5kIHRodXMgdGhlIGtub3dsZWRnZSBvZiB0aGUgcG90ZW50aWFsIAorLy8gbm9uLWNvbnN0bmVzcyBvZiBhbiBhY3R1YWwgYXJndW1lbnQgaXMgbG9zdC4gICAKK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuPiAgc3RydWN0IGNvbnN0X2NvcHlfYXJndW1lbnQgPFRbbl0+IHsKKyAgdHlwZWRlZiBjb25zdCBUICgmdHlwZSlbbl07Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgaW50IG4+ICBzdHJ1Y3QgY29uc3RfY29weV9hcmd1bWVudCA8dm9sYXRpbGUgVFtuXT4geworICAgICB0eXBlZGVmIGNvbnN0IHZvbGF0aWxlIFQgKCZ0eXBlKVtuXTsKK307CisgICAKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgY29uc3RfY29weV9hcmd1bWVudDxUJj4ge307CisvLyBkbyBub3QgaW5zdGFudGlhdGUgd2l0aCByZWZlcmVuY2VzCisgIC8vICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6Z2VuZXJhdGVfZXJyb3I8VCY+OjpyZWZlcmVuY2VzX25vdF9hbGxvd2VkIHR5cGU7CisKKwordGVtcGxhdGU8Pgorc3RydWN0IGNvbnN0X2NvcHlfYXJndW1lbnQ8dm9pZD4geworICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKKworLy8gRG9lcyB0aGUgc2FtZSBhcyBjb25zdF9jb3B5X2FyZ3VtZW50LCBidXQgcGFzc2VzIHJlZmVyZW5jZXMgdGhyb3VnaCBhcyBzdWNoCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGJvdW5kX2FyZ3VtZW50X2NvbnZlcnNpb24geworICB0eXBlZGVmIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQ8VD46OnR5cGUgdHlwZTsgCit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGJvdW5kX2FyZ3VtZW50X2NvbnZlcnNpb248VCY+IHsKKyAgdHlwZWRlZiBUJiB0eXBlOyAKK307CisgICAKKy8vIFRoZSBkZWZhdWx0IGlzIG5vbi1jb25zdCByZWZlcmVuY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gY29uc3QgVCAtPiBjb25zdCBUJiwgCisvLyBUIC0+IFQmLCAKKy8vIHJlZmVyZW5jZXMgLT4gY29tcGlsZV90aW1lX2Vycm9yCisvLyByZWZlcmVuY2Vfd3JhcHBlcjxUPiAtPiBUJgordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCByZWZlcmVuY2VfYXJndW1lbnQgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cGFyYW1ldGVyX3RyYWl0c188VCwgVCY+Ojp0eXBlIHR5cGU7IAorfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCByZWZlcmVuY2VfYXJndW1lbnQ8VCY+IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmdlbmVyYXRlX2Vycm9yPFQmPjo6cmVmZXJlbmNlc19ub3RfYWxsb3dlZCB0eXBlOyAKK307CisKK3RlbXBsYXRlPGNsYXNzIEFyZz4KK3N0cnVjdCByZWZlcmVuY2VfYXJndW1lbnQ8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+IHsKKyAgdHlwZWRlZiBsYW1iZGFfZnVuY3RvcjxBcmc+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBcmc+CitzdHJ1Y3QgcmVmZXJlbmNlX2FyZ3VtZW50PGNvbnN0IGxhbWJkYV9mdW5jdG9yPEFyZz4gPiB7CisgIHR5cGVkZWYgbGFtYmRhX2Z1bmN0b3I8QXJnPiB0eXBlOworfTsKKworLy8gQXJlIHRoZSB2b2xhdGlsZSB2ZXJzaW9ucyBuZWVkZWQ/Cit0ZW1wbGF0ZTxjbGFzcyBBcmc+CitzdHJ1Y3QgcmVmZXJlbmNlX2FyZ3VtZW50PHZvbGF0aWxlIGxhbWJkYV9mdW5jdG9yPEFyZz4gPiB7CisgIHR5cGVkZWYgbGFtYmRhX2Z1bmN0b3I8QXJnPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQXJnPgorc3RydWN0IHJlZmVyZW5jZV9hcmd1bWVudDxjb25zdCB2b2xhdGlsZSBsYW1iZGFfZnVuY3RvcjxBcmc+ID4geworICB0eXBlZGVmIGxhbWJkYV9mdW5jdG9yPEFyZz4gdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCByZWZlcmVuY2VfYXJndW1lbnQ8dm9pZD4geworICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKK25hbWVzcGFjZSBkZXRhaWwgeworICAgCisvLyBBcnJheSB0byBwb2ludGVyIGNvbnZlcnNpb24KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGFycmF5X3RvX3BvaW50ZXIgeyAKKyAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgaW50IE4+CitzdHJ1Y3QgYXJyYXlfdG9fcG9pbnRlciA8Y29uc3QgVFtOXT4geyAKKyAgdHlwZWRlZiBjb25zdCBUKiB0eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBULCBpbnQgTj4KK3N0cnVjdCBhcnJheV90b19wb2ludGVyIDxUW05dPiB7IAorICB0eXBlZGVmIFQqIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgaW50IE4+CitzdHJ1Y3QgYXJyYXlfdG9fcG9pbnRlciA8Y29uc3QgVCAoJikgW05dPiB7IAorICB0eXBlZGVmIGNvbnN0IFQqIHR5cGU7Cit9OwordGVtcGxhdGUgPGNsYXNzIFQsIGludCBOPgorc3RydWN0IGFycmF5X3RvX3BvaW50ZXIgPFQgKCYpIFtOXT4geyAKKyAgdHlwZWRlZiBUKiB0eXBlOworfTsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRoZSBjYWxsX3RyYWl0cyBmb3IgYmluZAorLy8gUmVzcGVjdHMgdGhlIHJlZmVyZW5jZV93cmFwcGVyIGNsYXNzLgorCisvLyBUaGVzZSB0ZW1wbGF0ZXMgYXJlIHVzZWQgb3V0c2lkZSBvZiBiaW5kIGZ1bmN0aW9ucyBhcyB3ZWxsLgorLy8gdGhlIGJpbmRfdHVwbGVfbWFwcGVyIHByb3ZpZGVzIGEgc2hvcnRlciBub3RhdGlvbiBmb3IgZGVmYXVsdAorLy8gYm91bmQgYXJndW1lbnQgc3RvcmluZyBzZW1hbnRpY3MsIGlmIGFsbCBhcmd1bWVudHMgYXJlIHRyZWF0ZWQKKy8vIHVuaWZvcm1seS4KKworLy8gZnJvbSB0ZW1wbGF0ZTxjbGFzcyBUPiBmb28oY29uc3QgVCYgdCkgOiBiaW5kX3RyYWl0czxjb25zdCBUPjo6dHlwZQorLy8gZnJvbSB0ZW1wbGF0ZTxjbGFzcyBUPiBmb28oVCYgdCkgOiBiaW5kX3RyYWl0czxUPjo6dHlwZQorCisvLyBDb252ZXJzaW9uczoKKy8vIFQgLT4gY29uc3QgVCwKKy8vIGN2IFQgLT4gY3YgVCwgCisvLyBUJiAtPiBUJiAKKy8vIHJlZmVyZW5jZV93cmFwcGVyPFQ+IC0+IFQmCisvLyBjb25zdCByZWZlcmVuY2Vfd3JhcHBlcjxUPiAtPiBUJgorLy8gYXJyYXkgLT4gY29uc3QgcmVmIGFycmF5CisKKy8vIG1ha2UgYm91bmQgYXJndW1lbnRzIGNvbnN0LCB0aGlzIGlzIGEgZGVsaWJlcmF0ZSBkZXNpZ24gY2hvaWNlLCB0aGUKKy8vIHB1cnBvc2UgaXMgdG8gcHJldmVudCBzaWRlIGVmZmVjdHMgdG8gYm91bmQgYXJndW1lbnRzIHRoYXQgYXJlIHN0b3JlZAorLy8gYXMgY29waWVzCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGJpbmRfdHJhaXRzIHsKKyAgdHlwZWRlZiBjb25zdCBUIHR5cGU7IAorfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBiaW5kX3RyYWl0czxUJj4geworICB0eXBlZGVmIFQmIHR5cGU7IAorfTsKKworLy8gbnVsbF90eXBlcyBhcmUgYW4gZXhjZXB0aW9uLCB3ZSBhbHdheXMgd2FudCB0byBzdG9yZSB0aGVtIGFzIG5vbiBjb25zdAorLy8gc28gdGhhdCBvdGhlciB0ZW1wbGF0ZXMgY2FuIGFzc3VtZSB0aGF0IG51bGxfdHlwZSBpcyBhbHdheXMgd2l0aG91dCBjb25zdAordGVtcGxhdGU8Pgorc3RydWN0IGJpbmRfdHJhaXRzPG51bGxfdHlwZT4geworICB0eXBlZGVmIG51bGxfdHlwZSB0eXBlOworfTsKKworLy8gdGhlIGJpbmRfdHVwbGVfbWFwcGVyLCBiaW5kX3R5cGVfZ2VuZXJhdG9ycyBtYXkgCisvLyBpbnRyb2R1Y2UgY29uc3QgdG8gbnVsbF90eXBlCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmluZF90cmFpdHM8Y29uc3QgbnVsbF90eXBlPiB7CisgIHR5cGVkZWYgbnVsbF90eXBlIHR5cGU7Cit9OworCisvLyBBcnJheXMgY2FuJ3QgYmUgc3RvcmVkIGFzIHBsYWluIHR5cGVzOyBjb252ZXJ0IHRoZW0gdG8gcmVmZXJlbmNlcy4KKy8vIEFsbCBhcnJheXMgYXJlIGNvbnZlcnRlZCB0byBjb25zdC4gVGhpcyBpcyBiZWNhdXNlIGJpbmQgdGFrZXMgaXRzCisvLyBwYXJhbWV0ZXJzIGFzIGNvbnN0IFQmIGFuZCB0aHVzIHRoZSBrbm93bGVkZ2Ugb2YgdGhlIHBvdGVudGlhbCAKKy8vIG5vbi1jb25zdG5lc3Mgb2YgYWN0dWFsIGFyZ3VtZW50IGlzIGxvc3QuCit0ZW1wbGF0ZTxjbGFzcyBULCBpbnQgbj4gIHN0cnVjdCBiaW5kX3RyYWl0cyA8VFtuXT4geworICB0eXBlZGVmIGNvbnN0IFQgKCZ0eXBlKVtuXTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuPiAKK3N0cnVjdCBiaW5kX3RyYWl0czxjb25zdCBUW25dPiB7CisgIHR5cGVkZWYgY29uc3QgVCAoJnR5cGUpW25dOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgaW50IG4+ICBzdHJ1Y3QgYmluZF90cmFpdHM8dm9sYXRpbGUgVFtuXT4geworICB0eXBlZGVmIGNvbnN0IHZvbGF0aWxlIFQgKCZ0eXBlKVtuXTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuPiAKK3N0cnVjdCBiaW5kX3RyYWl0czxjb25zdCB2b2xhdGlsZSBUW25dPiB7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVCAoJnR5cGUpW25dOworfTsKKwordGVtcGxhdGU8Y2xhc3MgUj4KK3N0cnVjdCBiaW5kX3RyYWl0czxSKCk+IHsKKyAgICB0eXBlZGVmIFIoJnR5cGUpKCk7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBBcmcxPgorc3RydWN0IGJpbmRfdHJhaXRzPFIoQXJnMSk+IHsKKyAgICB0eXBlZGVmIFIoJnR5cGUpKEFyZzEpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMj4KK3N0cnVjdCBiaW5kX3RyYWl0czxSKEFyZzEsIEFyZzIpPiB7CisgICAgdHlwZWRlZiBSKCZ0eXBlKShBcmcxLCBBcmcyKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzM+CitzdHJ1Y3QgYmluZF90cmFpdHM8UihBcmcxLCBBcmcyLCBBcmczKT4geworICAgIHR5cGVkZWYgUigmdHlwZSkoQXJnMSwgQXJnMiwgQXJnMyk7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0Pgorc3RydWN0IGJpbmRfdHJhaXRzPFIoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCk+IHsKKyAgICB0eXBlZGVmIFIoJnR5cGUpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNT4KK3N0cnVjdCBiaW5kX3RyYWl0czxSKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUpPiB7CisgICAgdHlwZWRlZiBSKCZ0eXBlKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1KTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzY+CitzdHJ1Y3QgYmluZF90cmFpdHM8UihBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2KT4geworICAgIHR5cGVkZWYgUigmdHlwZSkoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBSLCBjbGFzcyBBcmcxLCBjbGFzcyBBcmcyLCBjbGFzcyBBcmczLCBjbGFzcyBBcmc0LCBjbGFzcyBBcmc1LCBjbGFzcyBBcmc2LCBjbGFzcyBBcmc3Pgorc3RydWN0IGJpbmRfdHJhaXRzPFIoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNyk+IHsKKyAgICB0eXBlZGVmIFIoJnR5cGUpKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYsIEFyZzcpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgUiwgY2xhc3MgQXJnMSwgY2xhc3MgQXJnMiwgY2xhc3MgQXJnMywgY2xhc3MgQXJnNCwgY2xhc3MgQXJnNSwgY2xhc3MgQXJnNiwgY2xhc3MgQXJnNywgY2xhc3MgQXJnOD4KK3N0cnVjdCBiaW5kX3RyYWl0czxSKEFyZzEsIEFyZzIsIEFyZzMsIEFyZzQsIEFyZzUsIEFyZzYsIEFyZzcsIEFyZzgpPiB7CisgICAgdHlwZWRlZiBSKCZ0eXBlKShBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4KTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFIsIGNsYXNzIEFyZzEsIGNsYXNzIEFyZzIsIGNsYXNzIEFyZzMsIGNsYXNzIEFyZzQsIGNsYXNzIEFyZzUsIGNsYXNzIEFyZzYsIGNsYXNzIEFyZzcsIGNsYXNzIEFyZzgsIGNsYXNzIEFyZzk+CitzdHJ1Y3QgYmluZF90cmFpdHM8UihBcmcxLCBBcmcyLCBBcmczLCBBcmc0LCBBcmc1LCBBcmc2LCBBcmc3LCBBcmc4LCBBcmc5KT4geworICAgIHR5cGVkZWYgUigmdHlwZSkoQXJnMSwgQXJnMiwgQXJnMywgQXJnNCwgQXJnNSwgQXJnNiwgQXJnNywgQXJnOCwgQXJnOSk7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiAKK3N0cnVjdCBiaW5kX3RyYWl0czxyZWZlcmVuY2Vfd3JhcHBlcjxUPiA+eworICB0eXBlZGVmIFQmIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiAKK3N0cnVjdCBiaW5kX3RyYWl0czxjb25zdCByZWZlcmVuY2Vfd3JhcHBlcjxUPiA+eworICB0eXBlZGVmIFQmIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmluZF90cmFpdHM8dm9pZD4geworICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKKworCit0ZW1wbGF0ZSA8CisgIGNsYXNzIFQwID0gbnVsbF90eXBlLCBjbGFzcyBUMSA9IG51bGxfdHlwZSwgY2xhc3MgVDIgPSBudWxsX3R5cGUsIAorICBjbGFzcyBUMyA9IG51bGxfdHlwZSwgY2xhc3MgVDQgPSBudWxsX3R5cGUsIGNsYXNzIFQ1ID0gbnVsbF90eXBlLCAKKyAgY2xhc3MgVDYgPSBudWxsX3R5cGUsIGNsYXNzIFQ3ID0gbnVsbF90eXBlLCBjbGFzcyBUOCA9IG51bGxfdHlwZSwgCisgIGNsYXNzIFQ5ID0gbnVsbF90eXBlCis+CitzdHJ1Y3QgYmluZF90dXBsZV9tYXBwZXIgeworICB0eXBlZGVmCisgICAgdHVwbGU8dHlwZW5hbWUgYmluZF90cmFpdHM8VDA+Ojp0eXBlLCAKKyAgICAgICAgICB0eXBlbmFtZSBiaW5kX3RyYWl0czxUMT46OnR5cGUsIAorICAgICAgICAgIHR5cGVuYW1lIGJpbmRfdHJhaXRzPFQyPjo6dHlwZSwgCisgICAgICAgICAgdHlwZW5hbWUgYmluZF90cmFpdHM8VDM+Ojp0eXBlLCAKKyAgICAgICAgICB0eXBlbmFtZSBiaW5kX3RyYWl0czxUND46OnR5cGUsIAorICAgICAgICAgIHR5cGVuYW1lIGJpbmRfdHJhaXRzPFQ1Pjo6dHlwZSwgCisgICAgICAgICAgdHlwZW5hbWUgYmluZF90cmFpdHM8VDY+Ojp0eXBlLCAKKyAgICAgICAgICB0eXBlbmFtZSBiaW5kX3RyYWl0czxUNz46OnR5cGUsCisgICAgICAgICAgdHlwZW5hbWUgYmluZF90cmFpdHM8VDg+Ojp0eXBlLAorICAgICAgICAgIHR5cGVuYW1lIGJpbmRfdHJhaXRzPFQ5Pjo6dHlwZT4gdHlwZTsKK307CisKKy8vIGJpbmRfdHJhaXRzLCBleGNlcHQgbWFwIGNvbnN0IFQmIC0+IGNvbnN0IFQKKyAgLy8gdGhpcyBpcyBuZWVkZWQgZS5nLiBpbiBjdXJyeWluZy4gQ29uc3QgcmVmZXJlbmNlIGFyZ3VtZW50cyBjYW4KKyAgLy8gcmVmZXIgdG8gdGVtcG9yYXJpZXMsIHNvIGl0IGlzIG5vdCBzYWZlIHRvIHN0b3JlIHRoZW0gYXMgcmVmZXJlbmNlcy4KKyAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCByZW1vdmVfY29uc3RfcmVmZXJlbmNlIHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJpbmRfdHJhaXRzPFQ+Ojp0eXBlIHR5cGU7CisgIH07CisKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCByZW1vdmVfY29uc3RfcmVmZXJlbmNlPGNvbnN0IFQmPiB7CisgICAgdHlwZWRlZiBjb25zdCBUIHR5cGU7CisgIH07CisKKworLy8gbWFwcyB0aGUgYmluZCBhcmd1bWVudCB0eXBlcyB0byB0aGUgcmVzdWx0aW5nIGxhbWJkYSBmdW5jdG9yIHR5cGUKK3RlbXBsYXRlIDwKKyAgY2xhc3MgVDAgPSBudWxsX3R5cGUsIGNsYXNzIFQxID0gbnVsbF90eXBlLCBjbGFzcyBUMiA9IG51bGxfdHlwZSwgCisgIGNsYXNzIFQzID0gbnVsbF90eXBlLCBjbGFzcyBUNCA9IG51bGxfdHlwZSwgY2xhc3MgVDUgPSBudWxsX3R5cGUsIAorICBjbGFzcyBUNiA9IG51bGxfdHlwZSwgY2xhc3MgVDcgPSBudWxsX3R5cGUsIGNsYXNzIFQ4ID0gbnVsbF90eXBlLCAKKyAgY2xhc3MgVDkgPSBudWxsX3R5cGUKKz4KK2NsYXNzIGJpbmRfdHlwZV9nZW5lcmF0b3IgeworCisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgZGV0YWlsOjpiaW5kX3R1cGxlX21hcHBlcjwKKyAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICA+Ojp0eXBlIGFyZ3NfdDsKKworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBub2ZfZWxlbXMgPSBuZG5ib29zdDo6dHVwbGVzOjpsZW5ndGg8YXJnc190Pjo6dmFsdWUpOworCisgIHR5cGVkZWYgCisgICAgYWN0aW9uPAorICAgICAgbm9mX2VsZW1zLCAKKyAgICAgIGZ1bmN0aW9uX2FjdGlvbjxub2ZfZWxlbXM+CisgICAgPiBhY3Rpb25fdHlwZTsKKworcHVibGljOgorICB0eXBlZGVmCisgICAgbGFtYmRhX2Z1bmN0b3I8CisgICAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgICBhY3Rpb25fdHlwZSwgCisgICAgICAgIGFyZ3NfdAorICAgICAgPgorICAgID4gdHlwZTsgCisgICAgCit9OworCisKKyAgIAorfSAvLyBkZXRhaWwKKyAgIAordGVtcGxhdGUgPGNsYXNzIFQ+IGlubGluZSBjb25zdCBUJiAgbWFrZV9jb25zdChjb25zdCBUJiB0KSB7IHJldHVybiB0OyB9CisKKworfSAvLyBlbmQgb2YgbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBlbmQgb2YgbmFtZXNwYWNlIG5kbmJvb3N0CisKKworICAgCisjZW5kaWYgLy8gQk9PU1RfTEFNQkRBX1RSQUlUU19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9tZW1iZXJfcHRyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9tZW1iZXJfcHRyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2MxMGFiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL21lbWJlcl9wdHIuaHBwCkBAIC0wLDAgKzEsNzM3IEBACisvLyBCb29zdCBMYW1iZGEgTGlicmFyeSAtLSBtZW1iZXJfcHRyLmhwcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vIENvcHlyaWdodCAoQykgMjAwMCBHYXJ5IFBvd2VsbCAoZ2FyeS5wb3dlbGxAc2llcnJhLmNvbSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB3d3cuYm9vc3Qub3JnCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZiAhZGVmaW5lZChCT09TVF9MQU1CREFfTUVNQkVSX1BUUl9IUFApCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9NRU1CRVJfUFRSX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyAKK25hbWVzcGFjZSBsYW1iZGEgeworCisKK2NsYXNzIG1lbWJlcl9wb2ludGVyX2FjdGlvbiB7fTsKKworCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gdGhlIGJvb3N0IHR5cGVfdHJhaXRzIG1lbWJlcl9wb2ludGVyIHRyYWl0cyBhcmUgbm90IGVub3VnaCwgCisvLyBuZWVkIHRvIGtub3cgbW9yZSBkZXRhaWxzLgordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlciB7CisgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUgdHlwZTsKKyAgdHlwZWRlZiBkZXRhaWw6OnVuc3BlY2lmaWVkIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgZGV0YWlsOjp1bnNwZWNpZmllZCBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIFU6Oio+IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX3JlZmVyZW5jZTxUPjo6dHlwZSB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSB0cnVlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8Y29uc3QgVCBVOjoqPiB7CisgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8Y29uc3QgVD46OnR5cGUgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gdHJ1ZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPgorc3RydWN0IG1lbWJlcl9wb2ludGVyPHZvbGF0aWxlIFQgVTo6Kj4geworICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPHZvbGF0aWxlIFQ+Ojp0eXBlIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIHZvbGF0aWxlIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IHRydWUpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxjb25zdCB2b2xhdGlsZSBUIFU6Oio+IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX3JlZmVyZW5jZTxjb25zdCB2b2xhdGlsZSBUPjo6dHlwZSB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSB0cnVlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IGZhbHNlKTsKK307CisKKy8vIC0tIG5vbmNvbnN0IG1lbWJlciBmdW5jdGlvbnMgLS0KK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoKT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTE+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEpPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTI+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyKT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzKT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQpPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1KT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTY+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNik+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwKKyAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNyk+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwKKyAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4KT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOSk+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKKy8vIC0tIGNvbnN0IG1lbWJlciBmdW5jdGlvbnMgLS0KK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoKSBjb25zdD4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTE+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEpIGNvbnN0PiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTI+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyKSBjb25zdD4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzKSBjb25zdD4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQpIGNvbnN0PiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1KSBjb25zdD4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTY+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNikgY29uc3Q+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIGNvbnN0IFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwKKyAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNykgY29uc3Q+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIGNvbnN0IFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwKKyAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4KSBjb25zdD4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3QgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOSkgY29uc3Q+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIGNvbnN0IFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKKyAgLy8gLS0gdm9sYXRpbGUgLS0KK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoKSB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTE+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEpIHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTI+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyKSB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzKSB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQpIHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1KSB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTY+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNikgdm9sYXRpbGU+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIHZvbGF0aWxlIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwKKyAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNykgdm9sYXRpbGU+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIHZvbGF0aWxlIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwKKyAgICAgICAgIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4KSB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTk+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOSkgdm9sYXRpbGU+IHsKKyAgdHlwZWRlZiBUIHR5cGU7CisgIHR5cGVkZWYgVSBjbGFzc190eXBlOworICB0eXBlZGVmIHZvbGF0aWxlIFUgcXVhbGlmaWVkX2NsYXNzX3R5cGU7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19kYXRhX21lbWJlciA9IGZhbHNlKTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2Z1bmN0aW9uX21lbWJlciA9IHRydWUpOworfTsKKyAgLy8gLS0gY29uc3Qgdm9sYXRpbGUKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoKSBjb25zdCB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTE+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEpIGNvbnN0IHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTI+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyKSBjb25zdCB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzKSBjb25zdCB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXI8VCAoVTo6KikoQTEsIEEyLCBBMywgQTQpIGNvbnN0IHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNT4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUpIGNvbnN0IHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsCisgICAgICAgICBjbGFzcyBBNj4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUsIEE2KSBjb25zdCB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTYsIGNsYXNzIEE3Pgorc3RydWN0IG1lbWJlcl9wb2ludGVyPFQgKFU6OiopKEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3KSBjb25zdCB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LAorICAgICAgICAgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOD4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgpIGNvbnN0IHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgVCB0eXBlOworICB0eXBlZGVmIFUgY2xhc3NfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBVIHF1YWxpZmllZF9jbGFzc190eXBlOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZGF0YV9tZW1iZXIgPSBmYWxzZSk7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19mdW5jdGlvbl9tZW1iZXIgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsCisgICAgICAgICBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcjxUIChVOjoqKShBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5KSBjb25zdCB2b2xhdGlsZT4geworICB0eXBlZGVmIFQgdHlwZTsKKyAgdHlwZWRlZiBVIGNsYXNzX3R5cGU7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVSBxdWFsaWZpZWRfY2xhc3NfdHlwZTsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2RhdGFfbWVtYmVyID0gZmFsc2UpOworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfZnVuY3Rpb25fbWVtYmVyID0gdHJ1ZSk7Cit9OworCit9IC8vIGRldGFpbAorCituYW1lc3BhY2UgZGV0YWlsIHsKKworICAvLyB0aGlzIGNsYXNzIGhvbGRzIGEgcG9pbnRlciB0byBhIG1lbWJlciBmdW5jdGlvbiBhbmQgdGhlIG9iamVjdC4KKyAgLy8gd2hlbiBjYWxsZWQsIGl0IGp1c3QgY2FsbHMgdGhlIG1lbWJlciBmdW5jdGlvbiB3aXRoIHRoZSBwYXJhbWV0ZXJzIAorICAvLyBwcm92aWRlZAorCisgIC8vIEl0IHdvdWxkIGhhdmUgYmVlbiBwb3NzaWJsZSB0byB1c2UgZXhpc3RpbmcgbGFtYmRhX2Z1bmN0b3JzIHRvIHJlcHJlc2VudAorICAvLyBhIGJvdW5kIG1lbWJlciBmdW5jdGlvbiBsaWtlIHRoaXMsIGJ1dCB0byBoYXZlIGEgc2VwYXJhdGUgdGVtcGxhdGUgaXMgCisgIC8vIHNhZmVyLCBzaW5jZSBub3cgdGhpcyBmdW5jdG9yIGRvZXNuJ3QgbWl4IGFuZCBtYXRjaCB3aXRoIGxhbWJkYV9mdW5jdG9ycworICAvLyBvbmx5IHRoaW5nIHlvdSBjYW4gZG8gd2l0aCB0aGlzIGlzIHRvIGNhbGwgaXQKKworICAvLyBub3RlIHRoYXQgcHJldmlvdXNseSBpbnN0YW50aWF0ZWQgY2xhc3NlcyAKKyAgLy8gKG90aGVyX2FjdGlvbjxtZW1iZXJfcG9pbnRlcl9hY3Rpb24+IGFuZCBtZW1iZXJfcG9pbnRlcl9hY3Rpb25faGVscGVyCisgIC8vIGd1YXJhbnRlZSwgdGhhdCBBIGFuZCBCIGFyZSAKKyAgLy8gc3VjaCB0eXBlcywgdGhhdCBmb3Igb2JqZWN0cyBhIGFuZCBiIG9mIGNvcnJlc3BvbmRpbmcgdHlwZXMsIGEtPipiIGxlYWRzIAorICAvLyB0byB0aGUgYnVpbHRpbiAtPiogdG8gYmUgY2FsbGVkLiBTbyB0eXBlcyB0aGF0IHdvdWxkIGVuZCBpbiBhICBjYWxsIHRvIAorICAvLyBhIHVzZXIgZGVmaW5lZCAtPiogZG8gbm90IGNyZWF0ZSBhIG1lbWJlcl9wb2ludGVyX2NhbGxlciBvYmplY3QuCisKK3RlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQSwgY2xhc3MgQj4KK2NsYXNzIG1lbWJlcl9wb2ludGVyX2NhbGxlciB7CisgIEEgYTsgQiBiOworCitwdWJsaWM6CisgIG1lbWJlcl9wb2ludGVyX2NhbGxlcihjb25zdCBBJiBhYSwgY29uc3QgQiYgYmIpIDogYShhYSksIGIoYmIpIHt9CisKKyAgUkVUIG9wZXJhdG9yKCkoKSBjb25zdCB7IHJldHVybiAoYS0+KmIpKCk7IH0gCisKKyAgdGVtcGxhdGU8Y2xhc3MgQTE+CisgIFJFVCBvcGVyYXRvcigpKGNvbnN0IEExJiBhMSkgY29uc3QgeyByZXR1cm4gKGEtPipiKShhMSk7IH0gCisKKyAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyPgorICBSRVQgb3BlcmF0b3IoKShjb25zdCBBMSYgYTEsIGNvbnN0IEEyJiBhMikgY29uc3QgeyByZXR1cm4gKGEtPipiKShhMSwgYTIpOyB9IAorCisgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTM+CisgIFJFVCBvcGVyYXRvcigpKGNvbnN0IEExJiBhMSwgY29uc3QgQTImIGEyLCBjb25zdCBBMyYgYTMpIGNvbnN0IHsgCisgICAgcmV0dXJuIChhLT4qYikoYTEsIGEyLCBhMyk7IAorICB9IAorCisgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0PgorICBSRVQgb3BlcmF0b3IoKShjb25zdCBBMSYgYTEsIGNvbnN0IEEyJiBhMiwgY29uc3QgQTMmIGEzLCAKKyAgICAgICAgICAgICAgICAgY29uc3QgQTQmIGE0KSBjb25zdCB7IAorICAgIHJldHVybiAoYS0+KmIpKGExLCBhMiwgYTMsIGE0KTsgCisgIH0gCisKKyAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1PgorICBSRVQgb3BlcmF0b3IoKShjb25zdCBBMSYgYTEsIGNvbnN0IEEyJiBhMiwgY29uc3QgQTMmIGEzLCBjb25zdCBBNCYgYTQsIAorICAgICAgICAgICAgICAgICBjb25zdCBBNSYgYTUpIGNvbnN0IHsgCisgICAgcmV0dXJuIChhLT4qYikoYTEsIGEyLCBhMywgYTQsIGE1KTsgCisgIH0gCisKKyAgdGVtcGxhdGU8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4KKyAgUkVUIG9wZXJhdG9yKCkoY29uc3QgQTEmIGExLCBjb25zdCBBMiYgYTIsIGNvbnN0IEEzJiBhMywgY29uc3QgQTQmIGE0LCAKKyAgICAgICAgICAgICAgICAgY29uc3QgQTUmIGE1LCBjb25zdCBBNiYgYTYpIGNvbnN0IHsgCisgICAgcmV0dXJuIChhLT4qYikoYTEsIGEyLCBhMywgYTQsIGE1LCBhNik7IAorICB9IAorCisgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIAorICAgICAgICAgICBjbGFzcyBBNz4KKyAgUkVUIG9wZXJhdG9yKCkoY29uc3QgQTEmIGExLCBjb25zdCBBMiYgYTIsIGNvbnN0IEEzJiBhMywgY29uc3QgQTQmIGE0LCAKKyAgICAgICAgICAgICAgICAgY29uc3QgQTUmIGE1LCBjb25zdCBBNiYgYTYsIGNvbnN0IEE3JiBhNykgY29uc3QgeyAKKyAgICByZXR1cm4gKGEtPipiKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyk7IAorICB9IAorCisgIHRlbXBsYXRlPGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIAorICAgICAgICAgICBjbGFzcyBBNywgY2xhc3MgQTg+CisgIFJFVCBvcGVyYXRvcigpKGNvbnN0IEExJiBhMSwgY29uc3QgQTImIGEyLCBjb25zdCBBMyYgYTMsIGNvbnN0IEE0JiBhNCwgCisgICAgICAgICAgICAgICAgIGNvbnN0IEE1JiBhNSwgY29uc3QgQTYmIGE2LCBjb25zdCBBNyYgYTcsCisgICAgICAgICAgICAgICAgIGNvbnN0IEE4JiBhOCkgY29uc3QgeyAKKyAgICByZXR1cm4gKGEtPipiKShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpOyAKKyAgfSAKKworICB0ZW1wbGF0ZTxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCAKKyAgICAgICAgICAgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4KKyAgUkVUIG9wZXJhdG9yKCkoY29uc3QgQTEmIGExLCBjb25zdCBBMiYgYTIsIGNvbnN0IEEzJiBhMywgY29uc3QgQTQmIGE0LCAKKyAgICAgICAgICAgICAgICAgY29uc3QgQTUmIGE1LCBjb25zdCBBNiYgYTYsIGNvbnN0IEE3JiBhNywKKyAgICAgICAgICAgICAgICAgY29uc3QgQTgmIGE4LCBjb25zdCBBOSYgYTkpIGNvbnN0IHsgCisgICAgcmV0dXJuIChhLT4qYikoYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSk7IAorICB9IAorCit9OworCisvLyBoZWxwZXIgdGVtcGxhdGVzIGZvciByZXR1cm4gdHlwZSBkZWR1Y3Rpb24gYW5kIGFjdGlvbiBjbGFzc2VzCisvLyBkaWZmZXJlbnQgY2FzZXMgZm9yIGRhdGEgbWVtYmVyLCBmdW5jdGlvbiBtZW1iZXIsIG5laXRoZXIKKworLy8gdHJ1ZS10cnVlIGNhc2UKK3RlbXBsYXRlIDxib29sIElzX2RhdGFfbWVtYmVyLCBib29sIElzX2Z1bmN0aW9uX21lbWJlcj4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcl9hY3Rpb25faGVscGVyOworICAvLyBjYW5ub3QgYmUgYm90aCwgbm8gYm9keSBwcm92aWRlZAorCisgIC8vIGRhdGEgbWVtYmVyIGNhc2UKKyAgLy8gdGhpcyBtZWFucywgdGhhdCBCIGlzIGEgZGF0YSBtZW1iZXIgYW5kIEEgaXMgYSBwb2ludGVyIHR5cGUsCisgIC8vIHNvIGVpdGhlciBidWlsdC1pbiAtPiogc2hvdWxkIGJlIGNhbGxlZCwgb3IgdGhlcmUgaXMgYW4gZXJyb3IKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgbWVtYmVyX3BvaW50ZXJfYWN0aW9uX2hlbHBlcjx0cnVlLCBmYWxzZT4geworcHVibGljOgorCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgY2xhc3MgQSwgY2xhc3MgQj4KKyAgc3RhdGljIFJFVCBhcHBseShBJiBhLCBCJiBiKSB7IAorICAgIHJldHVybiBhLT4qYjsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorICBzdHJ1Y3QgcmV0dXJuX3R5cGUgeworICBwcml2YXRlOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxCPjo6dHlwZSBwbGFpbkI7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWVtYmVyX3BvaW50ZXI8cGxhaW5CPjo6dHlwZSB0eXBlMDsKKyAgICAvLyB3ZSByZW1vdmUgdGhlIHJlZmVyZW5jZSBub3csIGFzIHdlIG1heSBoYXZlIHRvIGFkZCBjdjpzIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8dHlwZTA+Ojp0eXBlIHR5cGUxOworCisgICAgLy8gQSBpcyBhIHJlZmVyZW5jZSB0byBwb2ludGVyCisgICAgLy8gcmVtb3ZlIHRoZSB0b3AgbGV2ZWwgY3YgcXVhbGlmaWVycyBhbmQgcmVmZXJlbmNlCisgICAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICAgIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUgbm9uX3JlZl9BOworCisgICAgLy8gQSBpcyBhIHBvaW50ZXIgdHlwZSwgc28gdGFrZSB0aGUgdHlwZSBwb2ludGVkIHRvCisgICAgdHlwZWRlZiB0eXBlbmFtZSA6Om5kbmJvb3N0OjpyZW1vdmVfcG9pbnRlcjxub25fcmVmX0E+Ojp0eXBlIG5vbl9wb2ludGVyX0E7IAorCisgIHB1YmxpYzoKKyAgICAvLyBGb3Igbm9uLXJlZmVyZW5jZSB0eXBlcywgd2UgbXVzdCBhZGQgY29uc3QgYW5kL29yIHZvbGF0aWxlIGlmCisgICAgLy8gdGhlIHBvaW50ZXIgdHlwZSBoYXMgdGhlc2UgcXVhbGlmaWVycworICAgIC8vIElmIHRoZSBtZW1iZXIgaXMgYSByZWZlcmVuY2UsIHRoZXNlIGRvIG5vdCBoYXZlIGFueSBlZmZlY3QKKyAgICAvLyAgIChjdiBUID09IFQgaWYgVCBpcyBhIHJlZmVyZW5jZSB0eXBlKQorICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpJRjwKKyAgICAgIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PG5vbl9wb2ludGVyX0E+Ojp2YWx1ZSwgCisgICAgICB0eXBlbmFtZSA6Om5kbmJvb3N0OjphZGRfY29uc3Q8dHlwZTE+Ojp0eXBlLAorICAgICAgdHlwZTEKKyAgICA+OjpSRVQgdHlwZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OklGPAorICAgICAgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8bm9uX3BvaW50ZXJfQT46OnZhbHVlLCAKKyAgICAgIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OmFkZF92b2xhdGlsZTx0eXBlMj46OnR5cGUsCisgICAgICB0eXBlMgorICAgID46OlJFVCB0eXBlMzsKKyAgICAvLyBhZGQgcmVmZXJlbmNlIGJhY2sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8dHlwZTM+Ojp0eXBlIHR5cGU7CisgIH07Cit9OworCisgIC8vIG5laXRoZXIgY2FzZQordGVtcGxhdGUgPD4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcl9hY3Rpb25faGVscGVyPGZhbHNlLCBmYWxzZT4geworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEEsIGNsYXNzIEI+CisgIHN0YXRpYyBSRVQgYXBwbHkoQSYgYSwgQiYgYikgeyAKKy8vIG5vdCBhIGJ1aWx0IGluIG1lbWJlciBwb2ludGVyIG9wZXJhdG9yLCBqdXN0IGNhbGwgLT4qCisgICAgcmV0dXJuIGEtPipiOyAKKyAgfQorICAvLyBhbiBvdmVybG9hZGVkIG1lbWJlciBwb2ludGVyIG9wZXJhdG9ycywgdXNlciBzaG91bGQgaGF2ZSBzcGVjaWZpZWQKKyAgLy8gdGhlIHJldHVybiB0eXBlCisgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IHRoZXJlIGlzIG5vIG1hdGNoaW5nIHNwZWNpYWxpemF0aW9uIGZvcgorICAvLyByZXR1cm5fdHlwZV8yLCBzbyB0cnkgcmV0dXJuX3R5cGVfMl9wbGFpbgorICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorICBzdHJ1Y3QgcmV0dXJuX3R5cGUgeworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBwbGFpbl9yZXR1cm5fdHlwZV8yPAorICAgICAgb3RoZXJfYWN0aW9uPG1lbWJlcl9wb2ludGVyX2FjdGlvbj4sIEEsIEIKKyAgICA+Ojp0eXBlIHR5cGU7CisgIH07CisgIAorfTsKKworCisvLyBtZW1iZXIgcG9pbnRlciBmdW5jdGlvbiBjYXNlCisvLyBUaGlzIGlzIGEgYnVpbHQgaW4gLT4qIGNhbGwgZm9yIGEgbWVtYmVyIGZ1bmN0aW9uLCAKKy8vIHRoZSBvbmx5IHRoaW5nIHRoYXQgeW91IGNhbiBkbyB3aXRoIHRoYXQsIGlzIHRvIGdpdmUgaXQgc29tZSBhcmd1bWVudHMKKy8vIG5vdGUsIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCBBIGlzIGEgcG9pbnRlciB0eXBlLCBhbmQgdGh1cyBpdCBjYW5ub3QKKy8vIGJlIGEgY2FsbCB0byBvdmVybG9hZGVkIC0+KgordGVtcGxhdGUgPD4KK3N0cnVjdCBtZW1iZXJfcG9pbnRlcl9hY3Rpb25faGVscGVyPGZhbHNlLCB0cnVlPiB7CisgIHB1YmxpYzoKKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEEsIGNsYXNzIEI+CisgIHN0YXRpYyBSRVQgYXBwbHkoQSYgYSwgQiYgYikgeyAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9jdjxCPjo6dHlwZSBwbGFpbkI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6Om1lbWJlcl9wb2ludGVyPHBsYWluQj46OnR5cGUgcmV0X3Q7IAorICAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6cmVtb3ZlX2N2PEE+Ojp0eXBlIHBsYWluQTsKKworICAgIC8vIHdlIGFsd2F5cyBzdHJpcCBjdjpzIHRvIAorICAgIC8vIG1ha2UgdGhlIHR3byByb3V0ZXMgKGNhbGxpbmcgYW5kIHR5cGUgZGVkdWN0aW9uKQorICAgIC8vIHRvIGdpdmUgdGhlIHNhbWUgcmVzdWx0cyAoYW5kIHRoZSBjb25zdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsCisgICAgLy8gZGlmZmVyZW5jZSkKKyAgICByZXR1cm4gZGV0YWlsOjptZW1iZXJfcG9pbnRlcl9jYWxsZXI8cmV0X3QsIHBsYWluQSwgcGxhaW5CPihhLCBiKTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorICBzdHJ1Y3QgcmV0dXJuX3R5cGUgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxCPjo6dHlwZSBwbGFpbkI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6Om1lbWJlcl9wb2ludGVyPHBsYWluQj46OnR5cGUgcmV0X3Q7IAorICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZSBwbGFpbkE7IAorCisgICAgdHlwZWRlZiBkZXRhaWw6Om1lbWJlcl9wb2ludGVyX2NhbGxlcjxyZXRfdCwgcGxhaW5BLCBwbGFpbkI+IHR5cGU7IAorICB9OworfTsKKworfSAvLyBkZXRhaWwKKwordGVtcGxhdGU8PiBjbGFzcyBvdGhlcl9hY3Rpb248bWVtYmVyX3BvaW50ZXJfYWN0aW9uPiAgeworcHVibGljOgorICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEEsIGNsYXNzIEI+CisgIHN0YXRpYyBSRVQgYXBwbHkoQSYgYSwgQiYgYikgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgICA6Om5kbmJvb3N0OjpyZW1vdmVfY3Y8Qj46OnR5cGUgcGxhaW5COworCisgICAgcmV0dXJuIGRldGFpbDo6bWVtYmVyX3BvaW50ZXJfYWN0aW9uX2hlbHBlcjwKKyAgICAgICAgbmRuYm9vc3Q6OmlzX3BvaW50ZXI8QT46OnZhbHVlICYmIAorICAgICAgICAgIGRldGFpbDo6bWVtYmVyX3BvaW50ZXI8cGxhaW5CPjo6aXNfZGF0YV9tZW1iZXIsCisgICAgICAgIG5kbmJvb3N0Ojppc19wb2ludGVyPEE+Ojp2YWx1ZSAmJiAKKyAgICAgICAgICBkZXRhaWw6Om1lbWJlcl9wb2ludGVyPHBsYWluQj46OmlzX2Z1bmN0aW9uX21lbWJlcgorICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8UkVUPihhLCBiKTsgCisgICAgfQorfTsKKworICAvLyByZXR1cm4gdHlwZSBkZWR1Y3Rpb24gLS0KKworICAvLyBJZiB0aGUgcmlnaHQgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGRhdGEgbWVtYmVyLCAKKyAgLy8gYW5kIHRoZSBsZWZ0IGFyZ3VtZW50IGlzIG9mIGNvbXBhdGlibGUgcG9pbnRlciB0byBjbGFzcyB0eXBlCisgIC8vIHJldHVybiB0eXBlIGlzIGEgcmVmZXJlbmNlIHRvIHRoZSBkYXRhIG1lbWJlciB0eXBlCisKKyAgLy8gaWYgcmlnaHQgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgbWVtYmVyIGZ1bmN0aW9uLCBhbmQgdGhlIGxlZnQgCisgIC8vIGFyZ3VtZW50IGlzIG9mIGEgY29tcGF0aWJsZSB0eXBlLCB0aGUgcmV0dXJuIHR5cGUgaXMgYSAKKyAgLy8gbWVtYmVyX3BvaW50ZXJfY2FsbGVyIChzZWUgYWJvdmUpCisKKyAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdHlwZSBkZWR1Y3Rpb24gZmFpbHMuIFRoZXJlIGlzIGVpdGhlciBhbiBlcnJvciwgCisgIC8vIG9yIHRoZSB1c2VyIGlzIHRyeWluZyB0byBjYWxsIGFuIG92ZXJsb2FkZWQgLT4qCisgIC8vIEluIHN1Y2ggYSBjYXNlIGVpdGhlciByZXQ8PiBtdXN0IGJlIHVzZWQsIG9yIGEgcmV0dXJuX3R5cGVfMiB1c2VyIAorICAvLyBkZWZpbmVkIHNwZWNpYWxpemF0aW9uIG11c3QgYmUgcHJvdmlkZWQKKworCit0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorc3RydWN0IHJldHVybl90eXBlXzI8b3RoZXJfYWN0aW9uPG1lbWJlcl9wb2ludGVyX2FjdGlvbj4sIEEsIEI+IHsKK3ByaXZhdGU6CisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxCPjo6dHlwZSBwbGFpbkI7CitwdWJsaWM6CisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjptZW1iZXJfcG9pbnRlcl9hY3Rpb25faGVscGVyPAorICAgICAgZGV0YWlsOjptZW1iZXJfcG9pbnRlcjxwbGFpbkI+Ojppc19kYXRhX21lbWJlciwKKyAgICAgIGRldGFpbDo6bWVtYmVyX3BvaW50ZXI8cGxhaW5CPjo6aXNfZnVuY3Rpb25fbWVtYmVyCisgICAgPjo6dGVtcGxhdGUgcmV0dXJuX3R5cGU8QSwgQj46OnR5cGUgdHlwZTsgCit9OworCisgIC8vIHRoaXMgaXMgdGhlIHdheSB0aGUgZ2VuZXJpYyBsYW1iZGFfZnVuY3Rvcl9iYXNlIGZ1bmN0aW9ucyBpbnN0YW50aWF0ZQorICAvLyByZXR1cm4gdHlwZSBkZWR1Y3Rpb24uIFdlIHR1cm4gaXQgaW50byByZXR1cm5fdHlwZV8yLCBzbyB0aGF0IHRoZSAKKyAgLy8gdXNlciBjYW4gcHJvdmlkZSBzcGVjaWFsaXphdGlvbnMgb24gdGhhdCBsZXZlbC4KK3RlbXBsYXRlPGNsYXNzIEFyZ3M+CitzdHJ1Y3QgcmV0dXJuX3R5cGVfTjxvdGhlcl9hY3Rpb248bWVtYmVyX3BvaW50ZXJfYWN0aW9uPiwgQXJncz4geworICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0dXBsZXM6OmVsZW1lbnQ8MCwgQXJncz46OnR5cGUgQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHVwbGVzOjplbGVtZW50PDEsIEFyZ3M+Ojp0eXBlIEI7CisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248bWVtYmVyX3BvaW50ZXJfYWN0aW9uPiwgCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxBPjo6dHlwZSwgCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxCPjo6dHlwZQorICAgICAgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisKK3RlbXBsYXRlPGNsYXNzIEFyZzEsIGNsYXNzIEFyZzI+CitpbmxpbmUgY29uc3QKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGFjdGlvbjwyLCBvdGhlcl9hY3Rpb248bWVtYmVyX3BvaW50ZXJfYWN0aW9uPiA+LAorICAgIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZzE+LCB0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50PEFyZzI+Ojp0eXBlPgorICA+Cis+CitvcGVyYXRvci0+Kihjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmcxPiYgYTEsIGNvbnN0IEFyZzImIGEyKQoreworICByZXR1cm4gCisgICAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgICBhY3Rpb248Miwgb3RoZXJfYWN0aW9uPG1lbWJlcl9wb2ludGVyX2FjdGlvbj4gPiwKKyAgICAgICAgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnMT4sIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQ8QXJnMj46OnR5cGU+CisgICAgICA+CisgICAgICAodHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnMT4sIAorICAgICAgICAgICAgIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQ8QXJnMj46OnR5cGU+KGExLCBhMikpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248Miwgb3RoZXJfYWN0aW9uPG1lbWJlcl9wb2ludGVyX2FjdGlvbj4gPiwKKyAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmcxPiwgbGFtYmRhX2Z1bmN0b3I8QXJnMj4gPgorICA+Cis+CitvcGVyYXRvci0+Kihjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmcxPiYgYTEsIGNvbnN0IGxhbWJkYV9mdW5jdG9yPEFyZzI+JiBhMikKK3sKKyAgcmV0dXJuIAorICAgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgICAgYWN0aW9uPDIsIG90aGVyX2FjdGlvbjxtZW1iZXJfcG9pbnRlcl9hY3Rpb24+ID4sCisgICAgICAgIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZzE+LCBsYW1iZGFfZnVuY3RvcjxBcmcyPiA+CisgICAgICA+CisgICAgKHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZzE+LCBsYW1iZGFfZnVuY3RvcjxBcmcyPiA+KGExLCBhMikpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBBcmcxLCBjbGFzcyBBcmcyPgoraW5saW5lIGNvbnN0CitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248Miwgb3RoZXJfYWN0aW9uPG1lbWJlcl9wb2ludGVyX2FjdGlvbj4gPiwKKyAgICB0dXBsZTx0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50PEFyZzE+Ojp0eXBlLCBsYW1iZGFfZnVuY3RvcjxBcmcyPiA+CisgID4KKz4KK29wZXJhdG9yLT4qKGNvbnN0IEFyZzEmIGExLCBjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmcyPiYgYTIpCit7CisgIHJldHVybiAKKyAgICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICAgIGFjdGlvbjwyLCBvdGhlcl9hY3Rpb248bWVtYmVyX3BvaW50ZXJfYWN0aW9uPiA+LAorICAgICAgICB0dXBsZTx0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50PEFyZzE+Ojp0eXBlLCBsYW1iZGFfZnVuY3RvcjxBcmcyPiA+CisgICAgICA+CisgICAgICAodHVwbGU8dHlwZW5hbWUgY29uc3RfY29weV9hcmd1bWVudDxBcmcxPjo6dHlwZSwgCisgICAgICAgICAgICAgbGFtYmRhX2Z1bmN0b3I8QXJnMj4gPihhMSwgYTIpKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBsYW1iZGEgCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZgorCisKKworCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9yX2FjdGlvbnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9yX2FjdGlvbnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NDc3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JfYWN0aW9ucy5ocHAKQEAgLTAsMCArMSwxMzkgQEAKKy8vIC0tIG9wZXJhdG9yX2FjdGlvbnMuaHBwIC0gQm9vc3QgTGFtYmRhIExpYnJhcnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vbGFtYmRhLmNzLnV0dS5maSAKKworI2lmbmRlZiBCT09TVF9MQU1CREFfT1BFUkFUT1JfQUNUSU9OU19IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX09QRVJBVE9SX0FDVElPTlNfSFBQCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKKworLy8gLS0gYXJ0aWhtZXRpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIHBsdXNfYWN0aW9uIHt9OworY2xhc3MgbWludXNfYWN0aW9uIHt9OworY2xhc3MgbXVsdGlwbHlfYWN0aW9uIHt9OworY2xhc3MgZGl2aWRlX2FjdGlvbiB7fTsKK2NsYXNzIHJlbWFpbmRlcl9hY3Rpb24ge307CisKKy8vIC0tIGJpdHdpc2UgIC0tLS0tLS0tLS0tLS0tLS0tLS0KKworY2xhc3MgbGVmdHNoaWZ0X2FjdGlvbiB7fTsKK2NsYXNzIHJpZ2h0c2hpZnRfYWN0aW9uIHt9OworY2xhc3MgeG9yX2FjdGlvbiB7fTsKKworCisvLyAtLSBiaXR3aXNlL2xvZ2ljYWwgLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBhbmRfYWN0aW9uIHt9OworY2xhc3Mgb3JfYWN0aW9uIHt9OworY2xhc3Mgbm90X2FjdGlvbiB7fTsKKworLy8gLS0gcmVsYXRpb25hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIGxlc3NfYWN0aW9uIHt9OworY2xhc3MgZ3JlYXRlcl9hY3Rpb24ge307CitjbGFzcyBsZXNzb3JlcXVhbF9hY3Rpb24ge307CitjbGFzcyBncmVhdGVyb3JlcXVhbF9hY3Rpb24ge307CitjbGFzcyBlcXVhbF9hY3Rpb24ge307CitjbGFzcyBub3RlcXVhbF9hY3Rpb24ge307CisKKy8vIC0tIGluY3JlbWVudC9kZWNyZW1lbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIGluY3JlbWVudF9hY3Rpb24ge307CitjbGFzcyBkZWNyZW1lbnRfYWN0aW9uIHt9OworCisvLyAtLSB2b2lkIHJldHVybiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gLS0gb3RoZXIgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBhZGRyZXNzb2ZfYWN0aW9uIHt9OworICAvLyBjbGFzcyBjb21tYV9hY3Rpb24ge307IC8vIGRlZmluZWQgaW4gYWN0aW9ucy5ocHAKK2NsYXNzIGNvbnRlbnRzb2ZfYWN0aW9uIHt9OworLy8gY2xhc3MgbWVtYmVyX3BvaW50ZXJfYWN0aW9uIHt9OyAoZGVmaW5lZCBpbiBtZW1iZXJfcHRyLmhwcCkKKworCisvLyAtLSBhY3Rpb3VuIGdyb3VwIHRlbXBsYXRlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorCit0ZW1wbGF0ZSA8Y2xhc3MgQWN0aW9uPiBjbGFzcyBhcml0aG1ldGljX2FjdGlvbjsKK3RlbXBsYXRlIDxjbGFzcyBBY3Rpb24+IGNsYXNzIGJpdHdpc2VfYWN0aW9uOwordGVtcGxhdGUgPGNsYXNzIEFjdGlvbj4gY2xhc3MgbG9naWNhbF9hY3Rpb247Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0aW9uPiBjbGFzcyByZWxhdGlvbmFsX2FjdGlvbjsKK3RlbXBsYXRlIDxjbGFzcyBBY3Rpb24+IGNsYXNzIGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb247Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0aW9uPiBjbGFzcyBiaXR3aXNlX2Fzc2lnbm1lbnRfYWN0aW9uOwordGVtcGxhdGUgPGNsYXNzIEFjdGlvbj4gY2xhc3MgdW5hcnlfYXJpdGhtZXRpY19hY3Rpb247Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0aW9uPiBjbGFzcyBwcmVfaW5jcmVtZW50X2RlY3JlbWVudF9hY3Rpb247Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0aW9uPiBjbGFzcyBwb3N0X2luY3JlbWVudF9kZWNyZW1lbnRfYWN0aW9uOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAvLyBhY3Rpb25zLCBmb3Igd2hpY2ggdGhlIGV4aXN0ZW5jZSBvZiBwcm90ZWN0IGlzIGNoZWNrZWQgaW4gcmV0dXJuIHR5cGUgCisgIC8vIGRlZHVjdGlvbi4KKwordGVtcGxhdGUgPGNsYXNzIEFjdD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPGFyaXRobWV0aWNfYWN0aW9uPEFjdD4gPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBY3Q+IHN0cnVjdCBpc19wcm90ZWN0YWJsZTxiaXR3aXNlX2FjdGlvbjxBY3Q+ID4geworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0PiBzdHJ1Y3QgaXNfcHJvdGVjdGFibGU8bG9naWNhbF9hY3Rpb248QWN0PiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OwordGVtcGxhdGUgPGNsYXNzIEFjdD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPHJlbGF0aW9uYWxfYWN0aW9uPEFjdD4gPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBY3Q+IAorc3RydWN0IGlzX3Byb3RlY3RhYmxlPGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb248QWN0PiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OwordGVtcGxhdGUgPGNsYXNzIEFjdD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPGJpdHdpc2VfYXNzaWdubWVudF9hY3Rpb248QWN0PiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OwordGVtcGxhdGUgPGNsYXNzIEFjdD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPHVuYXJ5X2FyaXRobWV0aWNfYWN0aW9uPEFjdD4gPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBY3Q+IAorc3RydWN0IGlzX3Byb3RlY3RhYmxlPHByZV9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxBY3Q+ID4geworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0PiBzdHJ1Y3QgCitpc19wcm90ZWN0YWJsZTxwb3N0X2luY3JlbWVudF9kZWNyZW1lbnRfYWN0aW9uPEFjdD4gPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPG90aGVyX2FjdGlvbjxhZGRyZXNzb2ZfYWN0aW9uPiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Byb3RlY3RhYmxlPG90aGVyX2FjdGlvbjxjb250ZW50c29mX2FjdGlvbj4gPiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXNfcHJvdGVjdGFibGU8b3RoZXJfYWN0aW9uPHN1YnNjcmlwdF9hY3Rpb24+ID4geworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBpc19wcm90ZWN0YWJsZTxvdGhlcl9hY3Rpb248YXNzaWdubWVudF9hY3Rpb24+ID4geworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKKy8vIE5PVEU6IGNvbW1hIGFjdGlvbiBpcyBhbHNvIHByb3RlY3RhYmxlLCBidXQgdGhlIHNwZWNpYWxpemF0aW9uIGlzCisgIC8vIGluIGFjdGlvbnMuaHBwCisKKworfSAvLyBuYW1lc3BhY2UgbGFtYmRhIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcl9sYW1iZGFfZnVuY19iYXNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcl9sYW1iZGFfZnVuY19iYXNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Nzc3MjZhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9yX2xhbWJkYV9mdW5jX2Jhc2UuaHBwCkBAIC0wLDAgKzEsMjcxIEBACisvLyBCb29zdCBMYW1iZGEgTGlicmFyeSAgLSBvcGVyYXRvcl9sYW1iZGFfZnVuY19iYXNlLmhwcCAtLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgd3d3LmJvb3N0Lm9yZworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9MQU1CREFfT1BFUkFUT1JfTEFNQkRBX0ZVTkNfQkFTRV9IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX09QRVJBVE9SX0xBTUJEQV9GVU5DX0JBU0VfSFBQCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKKworLy8gVGhlc2Ugb3BlcmF0b3JzIGNhbm5vdCBiZSBpbXBsZW1lbnRlZCBhcyBhcHBseSBmdW5jdGlvbnMgb2YgYWN0aW9uIAorLy8gdGVtcGxhdGVzCisKKworLy8gU3BlY2lhbGl6YXRpb24gZm9yIGNvbW1hLgordGVtcGxhdGU8Y2xhc3MgQXJncz4KK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U8b3RoZXJfYWN0aW9uPGNvbW1hX2FjdGlvbj4sIEFyZ3M+IHsKK3B1YmxpYzoKKyAgQXJncyBhcmdzOworcHVibGljOgorICBleHBsaWNpdCBsYW1iZGFfZnVuY3Rvcl9iYXNlKGNvbnN0IEFyZ3MmIGEpIDogYXJncyhhKSB7fQorCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPgorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCB7CisgICAgcmV0dXJuIGRldGFpbDo6c2VsZWN0KG5kbmJvb3N0Ojp0dXBsZXM6OmdldDwwPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUyksIAorICAgICAgICAgICBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpOyAKKyAgfQorCisKKyAgdGVtcGxhdGU8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7IAorICBwcml2YXRlOgorICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgIGRldGFpbDo6ZGVkdWNlX2FyZ3VtZW50X3R5cGVzPEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHJldHNfdDsgICAgICAKKyAgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgcmV0dXJuX3R5cGVfMl9jb21tYTwgLy8gY29tbWEgbmVlZHMgc3BlY2lhbCBoYW5kbGluZworICAgICAgdHlwZW5hbWUgZGV0YWlsOjplbGVtZW50X29yX251bGw8MCwgcmV0c190Pjo6dHlwZSwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6ZWxlbWVudF9vcl9udWxsPDEsIHJldHNfdD46OnR5cGUKKyAgICA+Ojp0eXBlIHR5cGU7CisgIH07CisKK307ICAKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIGhlbHBlciB0cmFpdHMgdG8gbWFrZSB0aGUgZXhwcmVzc2lvbiBzaG9ydGVyLCB0YWtlcyBiaW5hcnkgYWN0aW9uCisvLyBib3VuZCBhcmd1bWVudCB0dXBsZSwgb3BlbiBhcmd1bWVudCB0dXBsZSBhbmQgZ2l2ZXMgdGhlIHJldHVybiB0eXBlCisKK3RlbXBsYXRlPGNsYXNzIEFjdGlvbiwgY2xhc3MgQm91bmQsIGNsYXNzIE9wZW4+IGNsYXNzIGJpbmFyeV9ydCB7CisgIHByaXZhdGU6CisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZGV0YWlsOjpkZWR1Y2VfYXJndW1lbnRfdHlwZXM8Qm91bmQsIE9wZW4+Ojp0eXBlIHJldHNfdDsgICAgICAKKyAgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgcmV0dXJuX3R5cGVfMl9wcm90PAorICAgICAgQWN0aW9uLCAgCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlLAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjplbGVtZW50X29yX251bGw8MSwgcmV0c190Pjo6dHlwZQorICAgID46OnR5cGUgdHlwZTsKK307CisKKworICAvLyBzYW1lIGZvciB1bmFyeSBhY3Rpb25zCit0ZW1wbGF0ZTxjbGFzcyBBY3Rpb24sIGNsYXNzIEJvdW5kLCBjbGFzcyBPcGVuPiBjbGFzcyB1bmFyeV9ydCB7CisgIHByaXZhdGU6CisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZGV0YWlsOjpkZWR1Y2VfYXJndW1lbnRfdHlwZXM8Qm91bmQsIE9wZW4+Ojp0eXBlIHJldHNfdDsgICAgICAKKyAgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgcmV0dXJuX3R5cGVfMV9wcm90PAorICAgICAgQWN0aW9uLCAgCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmVsZW1lbnRfb3JfbnVsbDwwLCByZXRzX3Q+Ojp0eXBlCisgICAgPjo6dHlwZSB0eXBlOworfTsKKworCit9IC8vIGVuZCBkZXRhaWwKKworLy8gU3BlY2lhbGl6YXRpb24gZm9yIGxvZ2ljYWwgYW5kICh0byBwcmVzZXJ2ZSBzaG9ydGNpcmN1aXRpbmcpCisvLyB0aGlzIGNvdWxkIGJlIGRvbmUgd2l0aCBhIG1hY3JvIGFzIHRoZSBvdGhlcnMsIGNvZGUgdXNlZCB0byBiZSBkaWZmZXJlbnQKK3RlbXBsYXRlPGNsYXNzIEFyZ3M+CitjbGFzcyBsYW1iZGFfZnVuY3Rvcl9iYXNlPGxvZ2ljYWxfYWN0aW9uPGFuZF9hY3Rpb24+LCBBcmdzPiB7CitwdWJsaWM6CisgIEFyZ3MgYXJnczsKK3B1YmxpYzoKKyAgZXhwbGljaXQgbGFtYmRhX2Z1bmN0b3JfYmFzZShjb25zdCBBcmdzJiBhKSA6IGFyZ3MoYSkge30KKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIENBTExfVEVNUExBVEVfQVJHUz4KKyAgUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeworICAgIHJldHVybiBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpICYmIAorICAgICAgICAgICBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpOyAKKyAgfQorICB0ZW1wbGF0ZTxjbGFzcyBTaWdBcmdzPiBzdHJ1Y3Qgc2lnIHsgCisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZGV0YWlsOjpiaW5hcnlfcnQ8bG9naWNhbF9hY3Rpb248YW5kX2FjdGlvbj4sIEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHR5cGU7CisgIH07ICAgICAgCit9OyAgCisKKy8vIFNwZWNpYWxpemF0aW9uIGZvciBsb2dpY2FsIG9yICh0byBwcmVzZXJ2ZSBzaG9ydGNpcmN1aXRpbmcpCisvLyB0aGlzIGNvdWxkIGJlIGRvbmUgd2l0aCBhIG1hY3JvIGFzIHRoZSBvdGhlcnMsIGNvZGUgdXNlZCB0byBiZSBkaWZmZXJlbnQKK3RlbXBsYXRlPGNsYXNzIEFyZ3M+CitjbGFzcyBsYW1iZGFfZnVuY3Rvcl9iYXNlPGxvZ2ljYWxfYWN0aW9uPCBvcl9hY3Rpb24+LCBBcmdzPiB7CitwdWJsaWM6CisgIEFyZ3MgYXJnczsKK3B1YmxpYzoKKyAgZXhwbGljaXQgbGFtYmRhX2Z1bmN0b3JfYmFzZShjb25zdCBBcmdzJiBhKSA6IGFyZ3MoYSkge30KKworICB0ZW1wbGF0ZTxjbGFzcyBSRVQsIENBTExfVEVNUExBVEVfQVJHUz4KKyAgUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeworICAgIHJldHVybiBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpIHx8IAorICAgICAgICAgICBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpOyAKKyAgfQorCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeyAKKyAgICB0eXBlZGVmIHR5cGVuYW1lCisgICAgICBkZXRhaWw6OmJpbmFyeV9ydDxsb2dpY2FsX2FjdGlvbjxvcl9hY3Rpb24+LCBBcmdzLCBTaWdBcmdzPjo6dHlwZSB0eXBlOworICB9OyAgICAgIAorfTsgIAorCisvLyBTcGVjaWFsaXphdGlvbiBmb3Igc3Vic2NyaXB0Cit0ZW1wbGF0ZTxjbGFzcyBBcmdzPgorY2xhc3MgbGFtYmRhX2Z1bmN0b3JfYmFzZTxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIEFyZ3M+IHsKK3B1YmxpYzoKKyAgQXJncyBhcmdzOworcHVibGljOgorICBleHBsaWNpdCBsYW1iZGFfZnVuY3Rvcl9iYXNlKGNvbnN0IEFyZ3MmIGEpIDogYXJncyhhKSB7fQorCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPgorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCB7CisgICAgcmV0dXJuIGRldGFpbDo6c2VsZWN0KG5kbmJvb3N0Ojp0dXBsZXM6OmdldDwwPihhcmdzKSwgQ0FMTF9BQ1RVQUxfQVJHUykgCisgICAgICAgICAgIFtkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MT4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpXTsgCisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBTaWdBcmdzPiBzdHJ1Y3Qgc2lnIHsgCisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZGV0YWlsOjpiaW5hcnlfcnQ8b3RoZXJfYWN0aW9uPHN1YnNjcmlwdF9hY3Rpb24+LCBBcmdzLCBTaWdBcmdzPjo6dHlwZSAKKyAgICAgICAgdHlwZTsKKyAgfTsgICAgICAKK307ICAKKworCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKFNZTUJPTCwgQUNUSU9OX0NMQVNTKSAgXAordGVtcGxhdGU8Y2xhc3MgQXJncz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjbGFzcyBsYW1iZGFfZnVuY3Rvcl9iYXNlPEFDVElPTl9DTEFTUywgQXJncz4geyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3B1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBBcmdzIGFyZ3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitwdWJsaWM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZXhwbGljaXQgbGFtYmRhX2Z1bmN0b3JfYmFzZShjb25zdCBBcmdzJiBhKSA6IGFyZ3MoYSkge30gICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlPGNsYXNzIFJFVCwgQ0FMTF9URU1QTEFURV9BUkdTPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgUkVUIGNhbGwoQ0FMTF9GT1JNQUxfQVJHUykgY29uc3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpICBcCisgICAgICAgICAgIFNZTUJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgZGV0YWlsOjpzZWxlY3QobmRuYm9vc3Q6OnR1cGxlczo6Z2V0PDE+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKTsgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgZGV0YWlsOjpiaW5hcnlfcnQ8QUNUSU9OX0NMQVNTLCBBcmdzLCBTaWdBcmdzPjo6dHlwZSB0eXBlOyAgICAgICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK307ICAKKworI2RlZmluZSBCT09TVF9MQU1CREFfUFJFRklYX1VOQVJZX0FDVElPTihTWU1CT0wsIEFDVElPTl9DTEFTUykgICAgICAgICAgICBcCit0ZW1wbGF0ZTxjbGFzcyBBcmdzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U8QUNUSU9OX0NMQVNTLCBBcmdzPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorcHVibGljOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEFyZ3MgYXJnczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3B1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBleHBsaWNpdCBsYW1iZGFfZnVuY3Rvcl9iYXNlKGNvbnN0IEFyZ3MmIGEpIDogYXJncyhhKSB7fSAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdGVtcGxhdGU8Y2xhc3MgUkVULCBDQUxMX1RFTVBMQVRFX0FSR1M+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIFNZTUJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgZGV0YWlsOjpzZWxlY3QobmRuYm9vc3Q6OnR1cGxlczo6Z2V0PDA+KGFyZ3MpLCBDQUxMX0FDVFVBTF9BUkdTKTsgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgZGV0YWlsOjp1bmFyeV9ydDxBQ1RJT05fQ0xBU1MsIEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHR5cGU7ICAgICAgICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK307ICAKKworI2RlZmluZSBCT09TVF9MQU1CREFfUE9TVEZJWF9VTkFSWV9BQ1RJT04oU1lNQk9MLCBBQ1RJT05fQ0xBU1MpICAgICAgICAgICBcCit0ZW1wbGF0ZTxjbGFzcyBBcmdzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2NsYXNzIGxhbWJkYV9mdW5jdG9yX2Jhc2U8QUNUSU9OX0NMQVNTLCBBcmdzPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorcHVibGljOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEFyZ3MgYXJnczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3B1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBleHBsaWNpdCBsYW1iZGFfZnVuY3Rvcl9iYXNlKGNvbnN0IEFyZ3MmIGEpIDogYXJncyhhKSB7fSAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgdGVtcGxhdGU8Y2xhc3MgUkVULCBDQUxMX1RFTVBMQVRFX0FSR1M+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBSRVQgY2FsbChDQUxMX0ZPUk1BTF9BUkdTKSBjb25zdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkZXRhaWw6OnNlbGVjdChuZG5ib29zdDo6dHVwbGVzOjpnZXQ8MD4oYXJncyksIENBTExfQUNUVUFMX0FSR1MpIFNZTUJPTDsgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHRlbXBsYXRlPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgZGV0YWlsOjp1bmFyeV9ydDxBQ1RJT05fQ0xBU1MsIEFyZ3MsIFNpZ0FyZ3M+Ojp0eXBlIHR5cGU7ICAgICAgICAgICBcCisgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK307ICAKKworQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oKyxhcml0aG1ldGljX2FjdGlvbjxwbHVzX2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTigtLGFyaXRobWV0aWNfYWN0aW9uPG1pbnVzX2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTigqLGFyaXRobWV0aWNfYWN0aW9uPG11bHRpcGx5X2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTigvLGFyaXRobWV0aWNfYWN0aW9uPGRpdmlkZV9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oJSxhcml0aG1ldGljX2FjdGlvbjxyZW1haW5kZXJfYWN0aW9uPikKKworQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oPDwsYml0d2lzZV9hY3Rpb248bGVmdHNoaWZ0X2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTig+PixiaXR3aXNlX2FjdGlvbjxyaWdodHNoaWZ0X2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTigmLGJpdHdpc2VfYWN0aW9uPGFuZF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04ofCxiaXR3aXNlX2FjdGlvbjxvcl9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oXixiaXR3aXNlX2FjdGlvbjx4b3JfYWN0aW9uPikKKworQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oPCxyZWxhdGlvbmFsX2FjdGlvbjxsZXNzX2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTig+LHJlbGF0aW9uYWxfYWN0aW9uPGdyZWF0ZXJfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKDw9LHJlbGF0aW9uYWxfYWN0aW9uPGxlc3NvcmVxdWFsX2FjdGlvbj4pCitCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTig+PSxyZWxhdGlvbmFsX2FjdGlvbjxncmVhdGVyb3JlcXVhbF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oPT0scmVsYXRpb25hbF9hY3Rpb248ZXF1YWxfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKCE9LHJlbGF0aW9uYWxfYWN0aW9uPG5vdGVxdWFsX2FjdGlvbj4pCisKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKCs9LGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb248cGx1c19hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oLT0sYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxtaW51c19hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oKj0sYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxtdWx0aXBseV9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oLz0sYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxkaXZpZGVfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKCU9LGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb248cmVtYWluZGVyX2FjdGlvbj4pCisKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKDw8PSxiaXR3aXNlX2Fzc2lnbm1lbnRfYWN0aW9uPGxlZnRzaGlmdF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oPj49LGJpdHdpc2VfYXNzaWdubWVudF9hY3Rpb248cmlnaHRzaGlmdF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX0JJTkFSWV9BQ1RJT04oJj0sYml0d2lzZV9hc3NpZ25tZW50X2FjdGlvbjxhbmRfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKHw9LGJpdHdpc2VfYXNzaWdubWVudF9hY3Rpb248b3JfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKF49LGJpdHdpc2VfYXNzaWdubWVudF9hY3Rpb248eG9yX2FjdGlvbj4pCisKK0JPT1NUX0xBTUJEQV9CSU5BUllfQUNUSU9OKD0sb3RoZXJfYWN0aW9uPCBhc3NpZ25tZW50X2FjdGlvbj4pCisKKworQk9PU1RfTEFNQkRBX1BSRUZJWF9VTkFSWV9BQ1RJT04oKywgdW5hcnlfYXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+KQorQk9PU1RfTEFNQkRBX1BSRUZJWF9VTkFSWV9BQ1RJT04oLSwgdW5hcnlfYXJpdGhtZXRpY19hY3Rpb248bWludXNfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9QUkVGSVhfVU5BUllfQUNUSU9OKH4sIGJpdHdpc2VfYWN0aW9uPG5vdF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX1BSRUZJWF9VTkFSWV9BQ1RJT04oISwgbG9naWNhbF9hY3Rpb248bm90X2FjdGlvbj4pCitCT09TVF9MQU1CREFfUFJFRklYX1VOQVJZX0FDVElPTigrKywgcHJlX2luY3JlbWVudF9kZWNyZW1lbnRfYWN0aW9uPGluY3JlbWVudF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX1BSRUZJWF9VTkFSWV9BQ1RJT04oLS0sIHByZV9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxkZWNyZW1lbnRfYWN0aW9uPikKKworQk9PU1RfTEFNQkRBX1BSRUZJWF9VTkFSWV9BQ1RJT04oJixvdGhlcl9hY3Rpb248YWRkcmVzc29mX2FjdGlvbj4pCitCT09TVF9MQU1CREFfUFJFRklYX1VOQVJZX0FDVElPTigqLG90aGVyX2FjdGlvbjxjb250ZW50c29mX2FjdGlvbj4pCisKK0JPT1NUX0xBTUJEQV9QT1NURklYX1VOQVJZX0FDVElPTigrKywgcG9zdF9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxpbmNyZW1lbnRfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9QT1NURklYX1VOQVJZX0FDVElPTigtLSwgcG9zdF9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxkZWNyZW1lbnRfYWN0aW9uPikKKworCisjdW5kZWYgQk9PU1RfTEFNQkRBX1BPU1RGSVhfVU5BUllfQUNUSU9OCisjdW5kZWYgQk9PU1RfTEFNQkRBX1BSRUZJWF9VTkFSWV9BQ1RJT04KKyN1bmRlZiBCT09TVF9MQU1CREFfQklOQVJZX0FDVElPTgorCit9IC8vIG5hbWVzcGFjZSBsYW1iZGEKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZgorCisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JfcmV0dXJuX3R5cGVfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcl9yZXR1cm5fdHlwZV90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZTkyN2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JfcmV0dXJuX3R5cGVfdHJhaXRzLmhwcApAQCAtMCwwICsxLDkxNyBAQAorLy8gIG9wZXJhdG9yX3JldHVybl90eXBlX3RyYWl0cy5ocHAgLS0gQm9vc3QgTGFtYmRhIExpYnJhcnkgLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgd3d3LmJvb3N0Lm9yZworCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9PUEVSQVRPUl9SRVRVUk5fVFlQRV9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9PUEVSQVRPUl9SRVRVUk5fVFlQRV9UUkFJVFNfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9sYW1iZGEvZGV0YWlsL2lzX2luc3RhbmNlX29mLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9zYW1lX3RyYWl0cy5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9pbmRpcmVjdF9yZWZlcmVuY2UuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L2RldGFpbC9jb250YWluZXJfZndkLmhwcCIKKworI2luY2x1ZGUgPGNzdGRkZWY+IC8vIG5lZWRlZCBmb3IgdGhlIHB0cmRpZmZfdAorI2luY2x1ZGUgPGlvc2Z3ZD4gIC8vIGZvciBpc3RyZWFtIGFuZCBvc3RyZWFtCisKKyNpbmNsdWRlIDxpdGVyYXRvcj4gLy8gbmVlZGVkIGZvciBvcGVyYXRvciYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgCituYW1lc3BhY2UgbGFtYmRhIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyAtLSBnZW5lcmFsIGhlbHBlciB0ZW1wbGF0ZXMgZm9yIHR5cGUgZGVkdWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBNdWNoIG9mIHRoZSB0eXBlIGRlZHVjdGlvbiBjb2RlIGZvciBzdGFuZGFyZCBhcml0aG1ldGljIHR5cGVzIGZyb20gR2FyeSBQb3dlbGwKKwordGVtcGxhdGUgPGNsYXNzIEE+IHN0cnVjdCBwcm9tb3RlX2NvZGUgeyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gLTE7IH07CisvLyB0aGlzIG1lYW5zIHRoYXQgYSBjb2RlIGlzIG5vdCBkZWZpbmVkIGZvciBBCisKKy8vIC0tIHRoZSBuZXh0IDUgdHlwZXMgYXJlIG5lZWRlZCBpbiBpZl90aGVuX2Vsc2VfcmV0dXJuIAorLy8gdGhlIHByb21vdGlvbiBvcmRlciBpcyBub3QgaW1wb3J0YW50LCBidXQgdGhleSBtdXN0IGhhdmUgZGlzdGluY3QgdmFsdWVzLgordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfY29kZTxib29sPiB7IHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAxMDsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2NvZGU8Y2hhcj4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMjA7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9jb2RlPHVuc2lnbmVkIGNoYXI+IHsgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDMwOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfY29kZTxzaWduZWQgY2hhcj4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gNDA7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9jb2RlPHNob3J0IGludD4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gNTA7IH07CisvLyAtLS0tLS0tLS0tCisKK3RlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2NvZGU8aW50PiB7IHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAxMDA7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9jb2RlPHVuc2lnbmVkIGludD4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMjAwOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfY29kZTxsb25nPiB7IHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAzMDA7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9jb2RlPHVuc2lnbmVkIGxvbmc+IHsgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDQwMDsgfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfY29kZTxmbG9hdD4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gNTAwOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfY29kZTxkb3VibGU+IHsgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDYwMDsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2NvZGU8bG9uZyBkb3VibGU+IHsgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IDcwMDsgfTsKKworLy8gVE9ETzogd2NoYXJfdAorCisvLyBmb3J3YXJkIGRlbGNhcmF0aW9uIG9mIGNvbXBsZXguCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgbGFtYmRhIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgCituYW1lc3BhY2UgbGFtYmRhIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9jb2RlPCBzdGQ6OmNvbXBsZXg8ZmxvYXQ+ID4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gODAwOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfY29kZTwgc3RkOjpjb21wbGV4PGRvdWJsZT4gPiB7IHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSA5MDA7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9jb2RlPCBzdGQ6OmNvbXBsZXg8bG9uZyBkb3VibGU+ID4geyBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMTAwMDsgfTsKKworLy8gLS0gaW50IHByb21vdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IHByb21vdGVfdG9faW50IHsgdHlwZWRlZiBUIHR5cGU7IH07CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX3RvX2ludDxib29sPiB7IHR5cGVkZWYgaW50IHR5cGU7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV90b19pbnQ8Y2hhcj4geyB0eXBlZGVmIGludCB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfdG9faW50PHVuc2lnbmVkIGNoYXI+IHsgdHlwZWRlZiBpbnQgdHlwZTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX3RvX2ludDxzaWduZWQgY2hhcj4geyB0eXBlZGVmIGludCB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfdG9faW50PHNob3J0IGludD4geyB0eXBlZGVmIGludCB0eXBlOyB9OworCisvLyBUaGUgdW5zaWduZWQgc2hvcnQgaW50IHByb21vdGlvbiBydWxlIGlzIHRoaXM6CisvLyB1bnNpZ25lZCBzaG9ydCBpbnQgdG8gc2lnbmVkIGludCBpZiBhIHNpZ25lZCBpbnQgY2FuIGhvbGQgYWxsIHZhbHVlcyAKKy8vIG9mIHVuc2lnbmVkIHNob3J0IGludCwgb3RoZXJ3aXNlIGdvIHRvIHVuc2lnbmVkIGludC4KK3RlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX3RvX2ludDx1bnNpZ25lZCBzaG9ydCBpbnQ+Cit7IAorICAgICAgICB0eXBlZGVmCisgICAgICAgICAgICAgICAgZGV0YWlsOjpJRjxzaXplb2YoaW50KSA8PSBzaXplb2YodW5zaWduZWQgc2hvcnQgaW50KSwgICAgICAgIAorLy8gSSBoYWQgdGhlIGxvZ2ljIHJldmVyc2VkIGJ1dCAiPiIgbWVzc2VzIHVwIHRoZSBwYXJzaW5nLgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwKKyAgICAgICAgICAgICAgICBpbnQ+OjpSRVQgdHlwZTsgCit9OworCisKKy8vIFRPRE86IHRoaW5rLCBzaG91bGQgdGhlcmUgYmUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIG5vbi1zdGFuZGFyZCB0eXBlcz8KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKy8vIFVuYXJ5IGFjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAorCit0ZW1wbGF0ZTxjbGFzcyBBY3QsIGNsYXNzIEE+CitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMSB7CisgIHR5cGVkZWYgZGV0YWlsOjp1bnNwZWNpZmllZCB0eXBlOworfTsKKworCisKK3RlbXBsYXRlPGNsYXNzIEFjdCwgY2xhc3MgQT4KK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8xPHVuYXJ5X2FyaXRobWV0aWNfYWN0aW9uPEFjdD4sIEE+IHsKKyAgdHlwZWRlZiBBIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBBY3QsIGNsYXNzIEE+IAorc3RydWN0IHJldHVybl90eXBlXzE8dW5hcnlfYXJpdGhtZXRpY19hY3Rpb248QWN0PiwgQT4geyAKKyAgdHlwZWRlZiAKKyAgICB0eXBlbmFtZSBwbGFpbl9yZXR1cm5fdHlwZV8xPAorICAgICAgdW5hcnlfYXJpdGhtZXRpY19hY3Rpb248QWN0PiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUKKyAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisKK3RlbXBsYXRlPGNsYXNzIEE+CitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMTxiaXR3aXNlX2FjdGlvbjxub3RfYWN0aW9uPiwgQT4geworICB0eXBlZGVmIEEgdHlwZTsKK307CisKKy8vIGJpdHdpc2Ugbm90LCBvcGVyYXRvcn4oKQordGVtcGxhdGU8Y2xhc3MgQT4gc3RydWN0IHJldHVybl90eXBlXzE8Yml0d2lzZV9hY3Rpb248bm90X2FjdGlvbj4sIEE+IHsKKyAgdHlwZWRlZiAKKyAgICB0eXBlbmFtZSBwbGFpbl9yZXR1cm5fdHlwZV8xPAorICAgICAgYml0d2lzZV9hY3Rpb248bm90X2FjdGlvbj4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEE+Ojp0eXBlCisgICAgPjo6dHlwZSB0eXBlOworfTsKKworCisvLyBwcmVmaXggaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgb3BlcmF0b3JzIHJldHVybiAKKy8vIHRoZWlyIGFyZ3VtZW50IGJ5IGRlZmF1bHQgYXMgYSBub24tY29uc3QgcmVmZXJlbmNlCit0ZW1wbGF0ZTxjbGFzcyBBY3QsIGNsYXNzIEE+IAorc3RydWN0IHBsYWluX3JldHVybl90eXBlXzE8cHJlX2luY3JlbWVudF9kZWNyZW1lbnRfYWN0aW9uPEFjdD4sIEE+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQWN0LCBjbGFzcyBBPiAKK3N0cnVjdCByZXR1cm5fdHlwZV8xPHByZV9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxBY3Q+LCBBPiB7CisgIHR5cGVkZWYgCisgICAgdHlwZW5hbWUgcGxhaW5fcmV0dXJuX3R5cGVfMTwKKyAgICAgIHByZV9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxBY3Q+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZQorICAgID46OnR5cGUgdHlwZTsKK307CisKKy8vIHBvc3QgZGVjcmVtZW50IGp1c3QgcmV0dXJucyB0aGUgc2FtZSBwbGFpbiB0eXBlLgordGVtcGxhdGU8Y2xhc3MgQWN0LCBjbGFzcyBBPgorc3RydWN0IHBsYWluX3JldHVybl90eXBlXzE8cG9zdF9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxBY3Q+LCBBPiB7CisgIHR5cGVkZWYgQSB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQWN0LCBjbGFzcyBBPiAKK3N0cnVjdCByZXR1cm5fdHlwZV8xPHBvc3RfaW5jcmVtZW50X2RlY3JlbWVudF9hY3Rpb248QWN0PiwgQT4gCit7IAorICB0eXBlZGVmIAorICAgIHR5cGVuYW1lIHBsYWluX3JldHVybl90eXBlXzE8CisgICAgICBwb3N0X2luY3JlbWVudF9kZWNyZW1lbnRfYWN0aW9uPEFjdD4sCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEE+Ojp0eXBlCisgICAgPjo6dHlwZSB0eXBlOworfTsKKworLy8gbG9naWNhbCBub3QsIG9wZXJhdG9yISgpCit0ZW1wbGF0ZTxjbGFzcyBBPiAKK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8xPGxvZ2ljYWxfYWN0aW9uPG5vdF9hY3Rpb24+LCBBPiB7CisgIHR5cGVkZWYgYm9vbCB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQT4KK3N0cnVjdCByZXR1cm5fdHlwZV8xPGxvZ2ljYWxfYWN0aW9uPG5vdF9hY3Rpb24+LCBBPiB7CisgIHR5cGVkZWYgCisgICAgdHlwZW5hbWUgcGxhaW5fcmV0dXJuX3R5cGVfMTwKKyAgICAgIGxvZ2ljYWxfYWN0aW9uPG5vdF9hY3Rpb24+LAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZQorICAgID46OnR5cGUgdHlwZTsKK307CisKKy8vIGFkZHJlc3Mgb2YgYWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK3RlbXBsYXRlPGNsYXNzIEE+IAorc3RydWN0IHJldHVybl90eXBlXzE8b3RoZXJfYWN0aW9uPGFkZHJlc3NvZl9hY3Rpb24+LCBBPiB7IAorICB0eXBlZGVmIAorICAgIHR5cGVuYW1lIHBsYWluX3JldHVybl90eXBlXzE8CisgICAgICBvdGhlcl9hY3Rpb248YWRkcmVzc29mX2FjdGlvbj4sIAorICAgICAgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZQorICAgID46OnR5cGUgdHlwZTE7CisKKyAgLy8gSWYgbm8gdXNlciBkZWZpbmVkIHNwZWNpYWxpemF0aW9uIGZvciBBLCB0aGVuIHJldHVybiB0aGUKKyAgLy8gY3YgcXVhbGlmaWVkIHBvaW50ZXIgdG8gQQorICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8CisgICAgbmRuYm9vc3Q6OmlzX3NhbWU8dHlwZTEsIGRldGFpbDo6dW5zcGVjaWZpZWQ+Ojp2YWx1ZSwgCisgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8QT46OnR5cGUqLAorICAgIHR5cGUxCisgID46OlJFVCB0eXBlOworfTsKKworLy8gY29udGVudHNvZiBhY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIFRPRE86IHRoaXMgZGVkdWN0aW9uIG1heSBsZWFkIHRvIGZhaWwgZGlyZWN0bHksIAorLy8gKGlmIEEgaGFzIG5vIHNwZWNpYWxpemF0aW9uIGZvciBpdGVyYXRvcl90cmFpdHMgYW5kIGhhcyBubworLy8gdHlwZWRlZiBBOjpyZWZlcmVuY2UuCisvLyBUaGVyZSBpcyBubyBlYXN5IHdheSBhcm91bmQgdGhpcywgY2F1c2UgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgd2F5CisvLyB0byB0ZXN0IHdoZXRoZXIgYSBjbGFzcyBpcyBhbiBpdGVyYXRvciBvciBub3QuCisgCisvLyBUaGUgZGVmYXVsdCB3b3JrcyB3aXRoIHN0ZDo6aXRlcmF0b3JzLgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworICAvLyBBIGlzIGEgbm9ucmVmZXJlbmNlIHR5cGUKK3RlbXBsYXRlIDxjbGFzcyBBPiBzdHJ1Y3QgY29udGVudHNvZl90eXBlIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aW5kaXJlY3RfcmVmZXJlbmNlPEE+Ojp0eXBlIHR5cGU7IAorfTsKKworICAvLyB0aGlzIGlzIHNpbmNlIHRoZSBudWxsYXJ5ICgpIGluIGxhbWJkYV9mdW5jdG9yIGlzIGFsd2F5cyBpbnN0YW50aWF0ZWQKK3RlbXBsYXRlIDw+IHN0cnVjdCBjb250ZW50c29mX3R5cGU8bnVsbF90eXBlPiB7CisgIHR5cGVkZWYgZGV0YWlsOjp1bnNwZWNpZmllZCB0eXBlOworfTsKKworCit0ZW1wbGF0ZSA8Y2xhc3MgQT4gc3RydWN0IGNvbnRlbnRzb2ZfdHlwZTxjb25zdCBBPiB7CisgIHR5cGVkZWYgdHlwZW5hbWUgY29udGVudHNvZl90eXBlPEE+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQT4gc3RydWN0IGNvbnRlbnRzb2ZfdHlwZTx2b2xhdGlsZSBBPiB7CisgIHR5cGVkZWYgdHlwZW5hbWUgY29udGVudHNvZl90eXBlPEE+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQT4gc3RydWN0IGNvbnRlbnRzb2ZfdHlwZTxjb25zdCB2b2xhdGlsZSBBPiB7CisgIHR5cGVkZWYgdHlwZW5hbWUgY29udGVudHNvZl90eXBlPEE+Ojp0eXBlIHR5cGU7Cit9OworCisgIC8vIHN0YW5kYXJkIGl0ZXJhdG9yIHRyYWl0cyBzaG91bGQgdGFrZSBjYXJlIG9mIHRoZSBwb2ludGVyIHR5cGVzIAorICAvLyBidXQganVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLCB3ZSBoYXZlIHRoZSBzcGVjaWFsaXphdGlvbnMgaGVyZToKKyAgLy8gdGhlc2Ugd29yayBldmVuIGlmIEEgaXMgY3YtcXVhbGlmaWVkLgordGVtcGxhdGUgPGNsYXNzIEE+IHN0cnVjdCBjb250ZW50c29mX3R5cGU8QSo+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBPiBzdHJ1Y3QgY29udGVudHNvZl90eXBlPEEqIGNvbnN0PiB7CisgIHR5cGVkZWYgQSYgdHlwZTsKK307Cit0ZW1wbGF0ZSA8Y2xhc3MgQT4gc3RydWN0IGNvbnRlbnRzb2ZfdHlwZTxBKiB2b2xhdGlsZT4geworICB0eXBlZGVmIEEmIHR5cGU7Cit9OwordGVtcGxhdGUgPGNsYXNzIEE+IHN0cnVjdCBjb250ZW50c29mX3R5cGU8QSogY29uc3Qgdm9sYXRpbGU+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQSwgaW50IE4+IHN0cnVjdCBjb250ZW50c29mX3R5cGU8QVtOXT4geyAKKyAgdHlwZWRlZiBBJiB0eXBlOyAKK307Cit0ZW1wbGF0ZTxjbGFzcyBBLCBpbnQgTj4gc3RydWN0IGNvbnRlbnRzb2ZfdHlwZTxjb25zdCBBW05dPiB7IAorICB0eXBlZGVmIGNvbnN0IEEmIHR5cGU7IAorfTsKK3RlbXBsYXRlPGNsYXNzIEEsIGludCBOPiBzdHJ1Y3QgY29udGVudHNvZl90eXBlPHZvbGF0aWxlIEFbTl0+IHsgCisgIHR5cGVkZWYgdm9sYXRpbGUgQSYgdHlwZTsgCit9OwordGVtcGxhdGU8Y2xhc3MgQSwgaW50IE4+IHN0cnVjdCBjb250ZW50c29mX3R5cGU8Y29uc3Qgdm9sYXRpbGUgQVtOXT4geyAKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBBJiB0eXBlOyAKK307CisKKworCisKKworfSAvLyBlbmQgZGV0YWlsCisKK3RlbXBsYXRlPGNsYXNzIEE+IAorc3RydWN0IHJldHVybl90eXBlXzE8b3RoZXJfYWN0aW9uPGNvbnRlbnRzb2ZfYWN0aW9uPiwgQT4geyAKKworICB0eXBlZGVmIAorICAgIHR5cGVuYW1lIHBsYWluX3JldHVybl90eXBlXzE8CisgICAgICBvdGhlcl9hY3Rpb248Y29udGVudHNvZl9hY3Rpb24+LCAKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUKKyAgICA+Ojp0eXBlIHR5cGUxOworCisgIC8vIElmIG5vIHVzZXIgZGVmaW5lZCBzcGVjaWFsaXphdGlvbiBmb3IgQSwgdGhlbiByZXR1cm4gdGhlCisgIC8vIGN2IHF1YWxpZmllZCBwb2ludGVyIHRvIEEKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgZGV0YWlsOjpJRl90eXBlPAorICAgIG5kbmJvb3N0Ojppc19zYW1lPHR5cGUxLCBkZXRhaWw6OnVuc3BlY2lmaWVkPjo6dmFsdWUsIAorICAgIGRldGFpbDo6Y29udGVudHNvZl90eXBlPAorICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8QT46OnR5cGUKKyAgICA+LAorICAgIGRldGFpbDo6aWRlbnRpdHlfbWFwcGluZzx0eXBlMT4KKyAgPjo6dHlwZSB0eXBlOworfTsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIGJpbmFyeSBhY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIGhlcmUgdGhlIGRlZmF1bHQgY2FzZSBpczogbm8gdXNlciBkZWZpbmVkIHZlcnNpb25zOgordGVtcGxhdGUgPGNsYXNzIEFjdCwgY2xhc3MgQSwgY2xhc3MgQj4KK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8yIHsKKyAgdHlwZWRlZiBkZXRhaWw6OnVuc3BlY2lmaWVkIHR5cGU7IAorfTsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIGVycm9yIGNsYXNzZXMKK2NsYXNzIGlsbGVnYWxfcG9pbnRlcl9hcml0aG1ldGlje307CisKKy8vIHBvaW50ZXIgYXJpdGhtZXRpYyB0eXBlIGRlZHVjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gdmFsdWUgPSBmYWxzZSBtZWFucyB0aGF0IHRoaXMgaXMgbm90IGEgcG9pbnRlciBhcml0aG1ldGljIGNhc2UKKy8vIHZhbHVlID0gdHJ1ZSBtZWFucywgdGhhdCB0aGlzIGNhbiBiZSBhIHBvaW50ZXIgYXJpdGhtZXRpYyBjYXNlLCBidXQgbm90IG5lY2Vzc2FyaWx5IGlzCisvLyBUaGlzIG1lYW5zLCB0aGF0IGZvciB1c2VyIGRlZmluZWQgb3BlcmF0b3JzIGZvciBwb2ludGVyIHR5cGVzLCBzYXkgZm9yIHNvbWUgb3BlcmF0b3IrKFgsICpZKSwKKy8vIHRoZSBkZWR1Y3Rpb25zIG11c3QgYmUgY29kZWQgYXQgYW4gZWFybGllbCBsZXZlbCAocmV0dXJuX3R5cGVfMikuCisKK3RlbXBsYXRlPGNsYXNzIEFjdCwgY2xhc3MgQSwgY2xhc3MgQj4gCitzdHJ1Y3QgcG9pbnRlcl9hcml0aG1ldGljX3RyYWl0cyB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7IH07CisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+IAorc3RydWN0IHBvaW50ZXJfYXJpdGhtZXRpY190cmFpdHM8cGx1c19hY3Rpb24sIEEsIEI+IHsgCisKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBhcnJheV90b19wb2ludGVyPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPEE+Ojp0eXBlPjo6dHlwZSBBUDsKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBhcnJheV90b19wb2ludGVyPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPEI+Ojp0eXBlPjo6dHlwZSBCUDsKKworICBzdGF0aWMgY29uc3QgYm9vbCBpc19wb2ludGVyX0EgPSBuZG5ib29zdDo6aXNfcG9pbnRlcjxBUD46OnZhbHVlOworICBzdGF0aWMgY29uc3QgYm9vbCBpc19wb2ludGVyX0IgPSBuZG5ib29zdDo6aXNfcG9pbnRlcjxCUD46OnZhbHVlOyAgCisKKyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBpc19wb2ludGVyX0EgfHwgaXNfcG9pbnRlcl9COworCisgIC8vIGNhbid0IGFkZCB0d28gcG9pbnRlcnMuCisgIC8vIG5vdGUsIHRoYXQgd2UgZG8gbm90IGNoZWNrIHdldGhlciB0aGUgb3RoZXIgdHlwZSBpcyB2YWxpZCBmb3IgCisgIC8vIGFkZGl0aW9uIHdpdGggYSBwb2ludGVyLgorICAvLyB0aGUgY29tcGlsZXIgd2lsbCBjYXRjaCBpdCBpbiB0aGUgYXBwbHkgZnVuY3Rpb24KKworICB0eXBlZGVmIHR5cGVuYW1lIAorICBkZXRhaWw6OklGPAorICAgIGlzX3BvaW50ZXJfQSAmJiBpc19wb2ludGVyX0IsIAorICAgICAgZGV0YWlsOjpyZXR1cm5fdHlwZV9kZWR1Y3Rpb25fZmFpbHVyZTwKKyAgICAgICAgZGV0YWlsOjppbGxlZ2FsX3BvaW50ZXJfYXJpdGhtZXRpYworICAgICAgPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6SUY8aXNfcG9pbnRlcl9BLCBBUCwgQlA+OjpSRVQKKyAgPjo6UkVUIHR5cGU7IAorCit9OworCit0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPiAKK3N0cnVjdCBwb2ludGVyX2FyaXRobWV0aWNfdHJhaXRzPG1pbnVzX2FjdGlvbiwgQSwgQj4geyAKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBhcnJheV90b19wb2ludGVyPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPEE+Ojp0eXBlPjo6dHlwZSBBUDsKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBhcnJheV90b19wb2ludGVyPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPEI+Ojp0eXBlPjo6dHlwZSBCUDsKKworICBzdGF0aWMgY29uc3QgYm9vbCBpc19wb2ludGVyX0EgPSBuZG5ib29zdDo6aXNfcG9pbnRlcjxBUD46OnZhbHVlOworICBzdGF0aWMgY29uc3QgYm9vbCBpc19wb2ludGVyX0IgPSBuZG5ib29zdDo6aXNfcG9pbnRlcjxCUD46OnZhbHVlOyAgCisKKyAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBpc19wb2ludGVyX0EgfHwgaXNfcG9pbnRlcl9COworCisgIHN0YXRpYyBjb25zdCBib29sIHNhbWVfcG9pbnRlcl90eXBlID0KKyAgICBpc19wb2ludGVyX0EgJiYgaXNfcG9pbnRlcl9CICYmIAorICAgIG5kbmJvb3N0Ojppc19zYW1lPAorICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9wb2ludGVyPAorICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY29uc3Q8QVA+Ojp0eXBlCisgICAgICAgID46OnR5cGUKKyAgICAgID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2NvbnN0PAorICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3BvaW50ZXI8CisgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9jb25zdDxCUD46OnR5cGUKKyAgICAgICAgPjo6dHlwZQorICAgICAgPjo6dHlwZQorICAgID46OnZhbHVlOworCisgIC8vIHB0ciAtIHB0ciBoYXMgdHlwZSBwdHJkaWZmX3QKKyAgLy8gbm90ZSwgdGhhdCB3ZSBkbyBub3QgY2hlY2sgaWYsIGluIHB0ciAtIEIsIEIgaXMgCisgIC8vIHZhbGlkIGZvciBzdWJ0cmFjdGlvbiB3aXRoIGEgcG9pbnRlci4KKyAgLy8gdGhlIGNvbXBpbGVyIHdpbGwgY2F0Y2ggaXQgaW4gdGhlIGFwcGx5IGZ1bmN0aW9uCisKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgZGV0YWlsOjpJRjwKKyAgICBzYW1lX3BvaW50ZXJfdHlwZSwgY29uc3Qgc3RkOjpwdHJkaWZmX3QsCisgICAgdHlwZW5hbWUgZGV0YWlsOjpJRjwKKyAgICAgIGlzX3BvaW50ZXJfQSwgCisgICAgICBBUCwgCisgICAgICBkZXRhaWw6OnJldHVybl90eXBlX2RlZHVjdGlvbl9mYWlsdXJlPGRldGFpbDo6aWxsZWdhbF9wb2ludGVyX2FyaXRobWV0aWM+CisgICAgPjo6UkVUCisgID46OlJFVCB0eXBlOyAKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorICAgCisvLyAtLSBhcml0aG1ldGljIGFjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK25hbWVzcGFjZSBkZXRhaWwgeworICAgCit0ZW1wbGF0ZTxib29sIGlzX3BvaW50ZXJfYXJpdGhtZXRpYywgY2xhc3MgQWN0LCBjbGFzcyBBLCBjbGFzcyBCPiAKK3N0cnVjdCByZXR1cm5fdHlwZV8yX2FyaXRobWV0aWNfcGhhc2VfMTsKKwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4gc3RydWN0IHJldHVybl90eXBlXzJfYXJpdGhtZXRpY19waGFzZV8yOwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4gc3RydWN0IHJldHVybl90eXBlXzJfYXJpdGhtZXRpY19waGFzZV8zOworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKyAgCisKKy8vIGRyb3AgYW55IHF1YWxpZmllcnMgZnJvbSB0aGUgYXJndW1lbnQgdHlwZXMgd2l0aGluIGFyaXRobWV0aWNfYWN0aW9uCit0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCLCBjbGFzcyBBY3Q+IAorc3RydWN0IHJldHVybl90eXBlXzI8YXJpdGhtZXRpY19hY3Rpb248QWN0PiwgQSwgQj4KK3sKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEE+Ojp0eXBlIHBsYWluX0E7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxCPjo6dHlwZSBwbGFpbl9COworCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgcGxhaW5fcmV0dXJuX3R5cGVfMjxhcml0aG1ldGljX2FjdGlvbjxBY3Q+LCBwbGFpbl9BLCBwbGFpbl9CPjo6dHlwZSB0eXBlMTsKKyAgCisgIC8vIGlmIHVzZXIgZGVmaW5lZCByZXR1cm4gdHlwZSwgZG8gbm90IGVudGVyIHRoZSB3aG9sZSBhcml0aG1ldGljIGRlZHVjdGlvbnMKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZXRhaWw6OklGX3R5cGU8CisgICAgICBuZG5ib29zdDo6aXNfc2FtZTx0eXBlMSwgZGV0YWlsOjp1bnNwZWNpZmllZD46OnZhbHVlLCAKKyAgICAgIGRldGFpbDo6cmV0dXJuX3R5cGVfMl9hcml0aG1ldGljX3BoYXNlXzE8CisgICAgICAgICBkZXRhaWw6OnBvaW50ZXJfYXJpdGhtZXRpY190cmFpdHM8QWN0LCBBLCBCPjo6dmFsdWUsIEFjdCwgQSwgQgorICAgICAgPiwKKyAgICAgIHBsYWluX3JldHVybl90eXBlXzI8YXJpdGhtZXRpY19hY3Rpb248QWN0PiwgcGxhaW5fQSwgcGxhaW5fQj4KKyAgICA+Ojp0eXBlIHR5cGU7Cit9OworCituYW1lc3BhY2UgZGV0YWlsIHsKKyAgIAorLy8gcGVyZm9ybSBpbnRlZ3JhbCBwcm9tb3Rpb24sIG5vIHBvaW50ZXIgYXJpdGhtZXRpYwordGVtcGxhdGU8Ym9vbCBpc19wb2ludGVyX2FyaXRobWV0aWMsIGNsYXNzIEFjdCwgY2xhc3MgQSwgY2xhc3MgQj4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMl9hcml0aG1ldGljX3BoYXNlXzEKK3sKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICByZXR1cm5fdHlwZV8yX2FyaXRobWV0aWNfcGhhc2VfMjwKKyAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEE+Ojp0eXBlLAorICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8Qj46OnR5cGUKKyAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisvLyBwb2ludGVyX2FyaXRobWV0aWMKK3RlbXBsYXRlPGNsYXNzIEFjdCwgY2xhc3MgQSwgY2xhc3MgQj4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMl9hcml0aG1ldGljX3BoYXNlXzE8dHJ1ZSwgQWN0LCBBLCBCPgoreworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIHBvaW50ZXJfYXJpdGhtZXRpY190cmFpdHM8QWN0LCBBLCBCPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4KK3N0cnVjdCByZXR1cm5fdHlwZV8yX2FyaXRobWV0aWNfcGhhc2VfMiB7CisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICByZXR1cm5fdHlwZV8yX2FyaXRobWV0aWNfcGhhc2VfMzwKKyAgICAgIHR5cGVuYW1lIHByb21vdGVfdG9faW50PEE+Ojp0eXBlLCAKKyAgICAgIHR5cGVuYW1lIHByb21vdGVfdG9faW50PEI+Ojp0eXBlCisgICAgPjo6dHlwZSB0eXBlOworfTsKKworLy8gc3BlY2lhbGl6YXRpb24gZm9yIHVuc2lnbmVkIGludC4KKy8vIFdlIG9ubHkgaGF2ZSB0byBkbyB0aGVzZSB0d28gc3BlY2lhbGl6YXRpb24gYmVjYXVzZSB0aGUgdmFsdWUgcHJvbW90aW9uIHdpbGwKKy8vIHRha2UgY2FyZSBvZiB0aGUgb3RoZXIgY2FzZXMuCisvLyBUaGUgdW5zaWduZWQgaW50IHByb21vdGlvbiBydWxlIGlzIHRoaXM6CisvLyB1bnNpZ25lZCBpbnQgdG8gbG9uZyBpZiBhIGxvbmcgY2FuIGhvbGQgYWxsIHZhbHVlcyBvZiB1bnNpZ25lZCBpbnQsCisvLyBvdGhlcndpc2UgZ28gdG8gdW5zaWduZWQgbG9uZy4KKworLy8gc3RydWN0IHNvIEkgZG9uJ3QgaGF2ZSB0byB0eXBlIHRoaXMgdHdpY2UuCitzdHJ1Y3QgcHJvbW90aW9uX29mX3Vuc2lnbmVkX2ludAoreworICAgICAgICB0eXBlZGVmCisgICAgICAgIGRldGFpbDo6SUY8c2l6ZW9mKGxvbmcpIDw9IHNpemVvZih1bnNpZ25lZCBpbnQpLCAgICAgICAgCisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywKKyAgICAgICAgICAgICAgICBsb25nPjo6UkVUIHR5cGU7IAorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJldHVybl90eXBlXzJfYXJpdGhtZXRpY19waGFzZV8yPHVuc2lnbmVkIGludCwgbG9uZz4KK3sKKyAgICAgICAgdHlwZWRlZiBwcm9tb3Rpb25fb2ZfdW5zaWduZWRfaW50Ojp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8Pgorc3RydWN0IHJldHVybl90eXBlXzJfYXJpdGhtZXRpY19waGFzZV8yPGxvbmcsIHVuc2lnbmVkIGludD4KK3sKKyAgICAgICAgdHlwZWRlZiBwcm9tb3Rpb25fb2ZfdW5zaWduZWRfaW50Ojp0eXBlIHR5cGU7Cit9OworCisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+IHN0cnVjdCByZXR1cm5fdHlwZV8yX2FyaXRobWV0aWNfcGhhc2VfMyB7IAorICAgZW51bSB7IHByb21vdGVfY29kZV9BX3ZhbHVlID0gcHJvbW90ZV9jb2RlPEE+Ojp2YWx1ZSwKKyAgICAgICAgIHByb21vdGVfY29kZV9CX3ZhbHVlID0gcHJvbW90ZV9jb2RlPEI+Ojp2YWx1ZSB9OyAvLyBlbnVtcyBmb3IgS0NDCisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICBkZXRhaWw6OklGPAorICAgICAgcHJvbW90ZV9jb2RlX0FfdmFsdWUgPT0gLTEgfHwgcHJvbW90ZV9jb2RlX0JfdmFsdWUgPT0gLTEsCisgICAgICBkZXRhaWw6OnJldHVybl90eXBlX2RlZHVjdGlvbl9mYWlsdXJlPHJldHVybl90eXBlXzJfYXJpdGhtZXRpY19waGFzZV8zPiwKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6SUY8CisgICAgICAgICgoaW50KXByb21vdGVfY29kZV9BX3ZhbHVlID4gKGludClwcm9tb3RlX2NvZGVfQl92YWx1ZSksIAorICAgICAgICBBLCAKKyAgICAgICAgQgorICAgICAgPjo6UkVUCisgICAgPjo6UkVUIHR5cGU7ICAgICAgICAgICAgICAgICAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyAtLSAgYml0d2lzZSBhY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIG5vdGU6IGZvciBpbnRlZ3JhbCB0eXBlcyBkZXVkdWN0aW9uIGlzIHNpbWlsYXIgdG8gYXJpdGhtZXRpYyBhY3Rpb25zLiAKKworLy8gZHJvcCBhbnkgcXVhbGlmaWVycyBmcm9tIHRoZSBhcmd1bWVudCB0eXBlcyB3aXRoaW4gYXJpdGhtZXRpYyBhY3Rpb24KK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEIsIGNsYXNzIEFjdD4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMjxiaXR3aXNlX2FjdGlvbjxBY3Q+LCBBLCBCPgoreworCisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZSBwbGFpbl9BOworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8Qj46OnR5cGUgcGxhaW5fQjsKKworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIHBsYWluX3JldHVybl90eXBlXzI8Yml0d2lzZV9hY3Rpb248QWN0PiwgcGxhaW5fQSwgcGxhaW5fQj46OnR5cGUgdHlwZTE7CisgIAorICAvLyBpZiB1c2VyIGRlZmluZWQgcmV0dXJuIHR5cGUsIGRvIG5vdCBlbnRlciB0eXBlIGRlZHVjdGlvbnMKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZXRhaWw6OklGX3R5cGU8CisgICAgICBuZG5ib29zdDo6aXNfc2FtZTx0eXBlMSwgZGV0YWlsOjp1bnNwZWNpZmllZD46OnZhbHVlLCAKKyAgICAgIHJldHVybl90eXBlXzI8YXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LCBBLCBCPiwKKyAgICAgIHBsYWluX3JldHVybl90eXBlXzI8Yml0d2lzZV9hY3Rpb248QWN0PiwgcGxhaW5fQSwgcGxhaW5fQj4KKyAgICA+Ojp0eXBlIHR5cGU7CisKKyAgLy8gcGx1c19hY3Rpb24gaXMganVzdCBhIHJhbmRvbSBwaWNrLCBoYXMgdG8gYmUgYSBjb25jcmV0ZSBpbnN0YW5jZQorCisgIC8vIFRPRE86IFRoaXMgY2hlY2sgaXMgb25seSB2YWxpZCBmb3IgYnVpbHQtaW4gdHlwZXMsIG92ZXJsb2FkZWQgdHlwZXMgbWlnaHQKKyAgLy8gYWNjZXB0IGZsb2F0aW5nIHBvaW50IG9wZXJhdG9ycworCisgIC8vIGJpdHdpc2Ugb3BlcmF0b3JzIG5vdCBkZWZpbmVkIGZvciBmbG9hdGluZyBwb2ludCB0eXBlcworICAvLyB0aGVzZSB0ZXN0IGFyZSBub3Qgc3RyaWN0bHkgbmVlZGVkIGhlcmUsIHNpbmNlIHRoZSBlcnJvciB3aWxsIGJlIGNhdWdodCBpbgorICAvLyB0aGUgYXBwbHkgZnVuY3Rpb24KKyAgQk9PU1RfU1RBVElDX0FTU0VSVCghKG5kbmJvb3N0Ojppc19mbG9hdDxwbGFpbl9BPjo6dmFsdWUgJiYgbmRuYm9vc3Q6OmlzX2Zsb2F0PHBsYWluX0I+Ojp2YWx1ZSkpOworCit9OworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmZGVmIEJPT1NUX05PX1RFTVBMQVRFRF9TVFJFQU1TCisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+CitzdHJ1Y3QgbGVmdHNoaWZ0X3R5cGUgeworCisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpJRjwKKyAgICBuZG5ib29zdDo6aXNfY29udmVydGlibGU8CisgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxBPjo6dHlwZSosCisgICAgICBzdGQ6Om9zdHJlYW0qCisgICAgPjo6dmFsdWUsCisgICAgc3RkOjpvc3RyZWFtJiwgCisgICAgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZQorICA+OjpSRVQgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+CitzdHJ1Y3QgcmlnaHRzaGlmdF90eXBlIHsKKworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8CisKKyAgICBuZG5ib29zdDo6aXNfY29udmVydGlibGU8CisgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxBPjo6dHlwZSosCisgICAgICBzdGQ6OmlzdHJlYW0qCisgICAgPjo6dmFsdWUsIAorICAgIHN0ZDo6aXN0cmVhbSYsCisgICAgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZQorICA+OjpSRVQgdHlwZTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgZ2V0X29zdHJlYW1fdHlwZSB7CisgIHR5cGVkZWYgc3RkOjpiYXNpY19vc3RyZWFtPHR5cGVuYW1lIFQ6OmNoYXJfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFQ6OnRyYWl0c190eXBlPiYgdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgZ2V0X2lzdHJlYW1fdHlwZSB7CisgIHR5cGVkZWYgc3RkOjpiYXNpY19pc3RyZWFtPHR5cGVuYW1lIFQ6OmNoYXJfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFQ6OnRyYWl0c190eXBlPiYgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+CitzdHJ1Y3QgbGVmdHNoaWZ0X3R5cGUgeworcHJpdmF0ZToKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxBPjo6dHlwZSBwbGFpbkE7CitwdWJsaWM6CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpJRl90eXBlPAorICAgIGlzX2luc3RhbmNlX29mXzI8cGxhaW5BLCBzdGQ6OmJhc2ljX29zdHJlYW0+Ojp2YWx1ZSwgCisgICAgZ2V0X29zdHJlYW1fdHlwZTxwbGFpbkE+LCAvL3JlZmVyZW5jZSB0byB0aGUgc3RyZWFtIAorICAgIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT4KKyAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4KK3N0cnVjdCByaWdodHNoaWZ0X3R5cGUgeworcHJpdmF0ZToKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxBPjo6dHlwZSBwbGFpbkE7CitwdWJsaWM6CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpJRl90eXBlPAorICAgIGlzX2luc3RhbmNlX29mXzI8cGxhaW5BLCBzdGQ6OmJhc2ljX2lzdHJlYW0+Ojp2YWx1ZSwgCisgICAgZ2V0X2lzdHJlYW1fdHlwZTxwbGFpbkE+LCAvL3JlZmVyZW5jZSB0byB0aGUgc3RyZWFtIAorICAgIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT4KKyAgPjo6dHlwZSB0eXBlOworfTsKKworCisjZW5kaWYKKworfSAvLyBlbmQgZGV0YWlsCisKKy8vIG9zdHJlYW0KK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+IAorc3RydWN0IHJldHVybl90eXBlXzI8Yml0d2lzZV9hY3Rpb248bGVmdHNoaWZ0X2FjdGlvbj4sIEEsIEI+Cit7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZSBwbGFpbl9BOworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8Qj46OnR5cGUgcGxhaW5fQjsKKworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIHBsYWluX3JldHVybl90eXBlXzI8Yml0d2lzZV9hY3Rpb248bGVmdHNoaWZ0X2FjdGlvbj4sIHBsYWluX0EsIHBsYWluX0I+Ojp0eXBlIHR5cGUxOworICAKKyAgLy8gaWYgdXNlciBkZWZpbmVkIHJldHVybiB0eXBlLCBkbyBub3QgZW50ZXIgdHlwZSBkZWR1Y3Rpb25zCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjpJRl90eXBlPAorICAgICAgbmRuYm9vc3Q6OmlzX3NhbWU8dHlwZTEsIGRldGFpbDo6dW5zcGVjaWZpZWQ+Ojp2YWx1ZSwgCisgICAgICBkZXRhaWw6OmxlZnRzaGlmdF90eXBlPEEsIEI+LAorICAgICAgcGxhaW5fcmV0dXJuX3R5cGVfMjxiaXR3aXNlX2FjdGlvbjxsZWZ0c2hpZnRfYWN0aW9uPiwgcGxhaW5fQSwgcGxhaW5fQj4KKyAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisvLyBpc3RyZWFtCit0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPiAKK3N0cnVjdCByZXR1cm5fdHlwZV8yPGJpdHdpc2VfYWN0aW9uPHJpZ2h0c2hpZnRfYWN0aW9uPiwgQSwgQj4KK3sKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEE+Ojp0eXBlIHBsYWluX0E7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxCPjo6dHlwZSBwbGFpbl9COworCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgcGxhaW5fcmV0dXJuX3R5cGVfMjxiaXR3aXNlX2FjdGlvbjxyaWdodHNoaWZ0X2FjdGlvbj4sIHBsYWluX0EsIHBsYWluX0I+Ojp0eXBlIHR5cGUxOworICAKKyAgLy8gaWYgdXNlciBkZWZpbmVkIHJldHVybiB0eXBlLCBkbyBub3QgZW50ZXIgdHlwZSBkZWR1Y3Rpb25zCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjpJRl90eXBlPAorICAgICAgbmRuYm9vc3Q6OmlzX3NhbWU8dHlwZTEsIGRldGFpbDo6dW5zcGVjaWZpZWQ+Ojp2YWx1ZSwgCisgICAgICBkZXRhaWw6OnJpZ2h0c2hpZnRfdHlwZTxBLCBCPiwKKyAgICAgIHBsYWluX3JldHVybl90eXBlXzI8Yml0d2lzZV9hY3Rpb248cmlnaHRzaGlmdF9hY3Rpb24+LCBwbGFpbl9BLCBwbGFpbl9CPgorICAgID46OnR5cGUgdHlwZTsKK307CisKKy8vIC0tIGxvZ2ljYWwgYWN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBhbHdheXMgYm9vbAorLy8gTk9URTogdGhpcyBtYXkgbm90IGJlIHRydWUgZm9yIHNvbWUgd2VpcmQgdXNlci1kZWZpbmVkIHR5cGVzLAordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQiwgY2xhc3MgQWN0PiAKK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8yPGxvZ2ljYWxfYWN0aW9uPEFjdD4sIEEsIEI+IHsgCisgIHR5cGVkZWYgYm9vbCB0eXBlOyAKK307CisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEIsIGNsYXNzIEFjdD4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMjxsb2dpY2FsX2FjdGlvbjxBY3Q+LCBBLCBCPiB7IAorCisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZSBwbGFpbl9BOworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8Qj46OnR5cGUgcGxhaW5fQjsKKworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIHBsYWluX3JldHVybl90eXBlXzI8bG9naWNhbF9hY3Rpb248QWN0PiwgcGxhaW5fQSwgcGxhaW5fQj46OnR5cGUgdHlwZTsKKyAgCit9OworCisKKy8vIC0tIHJlbGF0aW9uYWwgYWN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBhbHdheXMgYm9vbAorLy8gTk9URTogdGhpcyBtYXkgbm90IGJlIHRydWUgZm9yIHNvbWUgd2VpcmQgdXNlci1kZWZpbmVkIHR5cGVzLAordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQiwgY2xhc3MgQWN0PiAKK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8yPHJlbGF0aW9uYWxfYWN0aW9uPEFjdD4sIEEsIEI+IHsgCisgIHR5cGVkZWYgYm9vbCB0eXBlOyAKK307CisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEIsIGNsYXNzIEFjdD4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMjxyZWxhdGlvbmFsX2FjdGlvbjxBY3Q+LCBBLCBCPiB7IAorCisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxBPjo6dHlwZSBwbGFpbl9BOworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8Qj46OnR5cGUgcGxhaW5fQjsKKworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIHBsYWluX3JldHVybl90eXBlXzI8cmVsYXRpb25hbF9hY3Rpb248QWN0PiwgcGxhaW5fQSwgcGxhaW5fQj46OnR5cGUgdHlwZTsgCit9OworCisvLyBBc3NpbmdtZW50IGFjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIHJldHVybiB0eXBlIGlzIHRoZSB0eXBlIG9mIHRoZSBmaXJzdCBhcmd1bWVudCBhcyByZWZlcmVuY2UKKworLy8gbm90ZSB0aGF0IGN2LXF1YWxpZmllcnMgYXJlIHByZXNlcnZlZC4KKy8vIFllcywgYXNzaWdubWVudCBvcGVyYXRvciBjYW4gYmUgY29uc3QhCisKKy8vIE5PVEU6IHRoaXMgbWF5IG5vdCBiZSB0cnVlIGZvciBzb21lIHdlaXJkIHVzZXItZGVmaW5lZCB0eXBlcywKKwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQiwgY2xhc3MgQWN0PiAKK3N0cnVjdCByZXR1cm5fdHlwZV8yPGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb248QWN0PiwgQSwgQj4geyAKKworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUgcGxhaW5fQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEI+Ojp0eXBlIHBsYWluX0I7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBwbGFpbl9yZXR1cm5fdHlwZV8yPAorICAgICAgYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxBY3Q+LCBwbGFpbl9BLCBwbGFpbl9CCisgICAgPjo6dHlwZSB0eXBlMTsKKyAgCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjpJRjwKKyAgICAgIG5kbmJvb3N0Ojppc19zYW1lPHR5cGUxLCBkZXRhaWw6OnVuc3BlY2lmaWVkPjo6dmFsdWUsIAorICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8QT46OnR5cGUsCisgICAgICB0eXBlMQorICAgID46OlJFVCB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQiwgY2xhc3MgQWN0PiAKK3N0cnVjdCByZXR1cm5fdHlwZV8yPGJpdHdpc2VfYXNzaWdubWVudF9hY3Rpb248QWN0PiwgQSwgQj4geyAKKworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUgcGxhaW5fQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEI+Ojp0eXBlIHBsYWluX0I7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBwbGFpbl9yZXR1cm5fdHlwZV8yPAorICAgICAgYml0d2lzZV9hc3NpZ25tZW50X2FjdGlvbjxBY3Q+LCBwbGFpbl9BLCBwbGFpbl9CCisgICAgPjo6dHlwZSB0eXBlMTsKKyAgCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjpJRjwKKyAgICAgIG5kbmJvb3N0Ojppc19zYW1lPHR5cGUxLCBkZXRhaWw6OnVuc3BlY2lmaWVkPjo6dmFsdWUsIAorICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8QT46OnR5cGUsCisgICAgICB0eXBlMQorICAgID46OlJFVCB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248YXNzaWdubWVudF9hY3Rpb24+LCBBLCBCPiB7IAorICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUgcGxhaW5fQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEI+Ojp0eXBlIHBsYWluX0I7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBwbGFpbl9yZXR1cm5fdHlwZV8yPAorICAgICAgb3RoZXJfYWN0aW9uPGFzc2lnbm1lbnRfYWN0aW9uPiwgcGxhaW5fQSwgcGxhaW5fQgorICAgID46OnR5cGUgdHlwZTE7CisgIAorICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGRldGFpbDo6SUY8CisgICAgICBuZG5ib29zdDo6aXNfc2FtZTx0eXBlMSwgZGV0YWlsOjp1bnNwZWNpZmllZD46OnZhbHVlLCAKKyAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPEE+Ojp0eXBlLAorICAgICAgdHlwZTEKKyAgICA+OjpSRVQgdHlwZTsKK307CisKKy8vIC0tIG90aGVyIGFjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBjb21tYSBhY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gTm90ZTogdGhpcyBtYXkgbm90IGJlIHRydWUgZm9yIHNvbWUgd2VpcmQgdXNlci1kZWZpbmVkIHR5cGVzLAorCisvLyBOT1RFISBUaGlzIG9ubHkgdHJpZXMgdGhlIHBsYWluX3JldHVybl90eXBlXzIgbGF5ZXIgYW5kIGdpdmVzCisvLyBkZXRhaWw6OnVuc3BlY2lmaWVkIGFzIGRlZmF1bHQuIElmIG5vIHN1Y2ggc3BlY2lhbGl6YXRpb24gaXMgZm91bmQsIHRoZSAKKy8vIHR5cGUgcnVsZSBpbiB0aGUgc3BjZWNpYWxpemF0aW9uIG9mIHRoZSByZXR1cm5fdHlwZV8yX3Byb3QgaXMgdXNlZAorLy8gdG8gZ2l2ZSB0aGUgdHlwZSBvZiB0aGUgcmlnaHQgYXJndW1lbnQgKHdoaWNoIGNhbiBiZSBhIHJlZmVyZW5jZSB0b28pCisvLyAoVGhlIGJ1aWx0IGluIG9wZXJhdG9yLCBjYW4gcmV0dXJuIGEgbC0gb3IgcnZhbHVlKS4KK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+IAorc3RydWN0IHJldHVybl90eXBlXzI8b3RoZXJfYWN0aW9uPGNvbW1hX2FjdGlvbj4sIEEsIEI+IHsgCisKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEE+Ojp0eXBlIHBsYWluX0E7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpyZW1vdmVfcmVmZXJlbmNlX2FuZF9jdjxCPjo6dHlwZSBwbGFpbl9COworCisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgcGxhaW5fcmV0dXJuX3R5cGVfMjwKKyAgICAgIG90aGVyX2FjdGlvbjxjb21tYV9hY3Rpb24+LCBwbGFpbl9BLCBwbGFpbl9CCisgICAgPjo6dHlwZSB0eXBlOworICB9OworCisvLyBzdWJzY3JpcHQgYWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworbmFtZXNwYWNlIGRldGFpbCB7CisgIC8vIEEgYW5kIEIgYXJlIG5vbnJlZmVyZW5jZSB0eXBlcwordGVtcGxhdGUgPGNsYXNzIEEsIGNsYXNzIEI+IHN0cnVjdCBzdWJzY3JpcHRfdHlwZSB7CisgIHR5cGVkZWYgZGV0YWlsOjp1bnNwZWNpZmllZCB0eXBlOyAKK307CisKK3RlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCPiBzdHJ1Y3Qgc3Vic2NyaXB0X3R5cGU8QSosIEI+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCPiBzdHJ1Y3Qgc3Vic2NyaXB0X3R5cGU8QSogY29uc3QsIEI+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCPiBzdHJ1Y3Qgc3Vic2NyaXB0X3R5cGU8QSogdm9sYXRpbGUsIEI+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCPiBzdHJ1Y3Qgc3Vic2NyaXB0X3R5cGU8QSogY29uc3Qgdm9sYXRpbGUsIEI+IHsKKyAgdHlwZWRlZiBBJiB0eXBlOworfTsKKworCit0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCLCBpbnQgTj4gc3RydWN0IHN1YnNjcmlwdF90eXBlPEFbTl0sIEI+IHsgCisgIHR5cGVkZWYgQSYgdHlwZTsgCit9OworCisgIC8vIHRoZXNlIDMgc3BlY2lhbGl6YXRpb25zIGFyZSBuZWVkZWQgdG8gbWFrZSBnY2MgPDMgaGFwcHkKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEIsIGludCBOPiBzdHJ1Y3Qgc3Vic2NyaXB0X3R5cGU8Y29uc3QgQVtOXSwgQj4geyAKKyAgdHlwZWRlZiBjb25zdCBBJiB0eXBlOyAKK307Cit0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCLCBpbnQgTj4gc3RydWN0IHN1YnNjcmlwdF90eXBlPHZvbGF0aWxlIEFbTl0sIEI+IHsgCisgIHR5cGVkZWYgdm9sYXRpbGUgQSYgdHlwZTsgCit9OwordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQiwgaW50IE4+IHN0cnVjdCBzdWJzY3JpcHRfdHlwZTxjb25zdCB2b2xhdGlsZSBBW05dLCBCPiB7IAorICB0eXBlZGVmIGNvbnN0IHZvbGF0aWxlIEEmIHR5cGU7IAorfTsKKworfSAvLyBlbmQgZGV0YWlsCisKK3RlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEI+CitzdHJ1Y3QgcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIEEsIEI+IHsKKworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGUgcGxhaW5fQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfYW5kX2N2PEI+Ojp0eXBlIHBsYWluX0I7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxBPjo6dHlwZSBub25yZWZfQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxCPjo6dHlwZSBub25yZWZfQjsKKworICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIHBsYWluX3JldHVybl90eXBlXzI8CisgICAgICBvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIHBsYWluX0EsIHBsYWluX0IKKyAgICA+Ojp0eXBlIHR5cGUxOworICAKKyAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICBkZXRhaWw6OklGX3R5cGU8CisgICAgICBuZG5ib29zdDo6aXNfc2FtZTx0eXBlMSwgZGV0YWlsOjp1bnNwZWNpZmllZD46OnZhbHVlLCAKKyAgICAgIGRldGFpbDo6c3Vic2NyaXB0X3R5cGU8bm9ucmVmX0EsIG5vbnJlZl9CPiwKKyAgICAgIHBsYWluX3JldHVybl90eXBlXzI8b3RoZXJfYWN0aW9uPHN1YnNjcmlwdF9hY3Rpb24+LCBwbGFpbl9BLCBwbGFpbl9CPgorICAgID46OnR5cGUgdHlwZTsKKworfTsKKwordGVtcGxhdGU8Y2xhc3MgS2V5LCBjbGFzcyBULCBjbGFzcyBDbXAsIGNsYXNzIEFsbG9jYXRvciwgY2xhc3MgQj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIHN0ZDo6bWFwPEtleSwgVCwgQ21wLCBBbGxvY2F0b3I+LCBCPiB7IAorICB0eXBlZGVmIFQmIHR5cGU7CisgIC8vIFQgPT0gc3RkOjptYXA8S2V5LCBULCBDbXAsIEFsbG9jYXRvcj46Om1hcHBlZF90eXBlOyAKK307CisKK3RlbXBsYXRlPGNsYXNzIEtleSwgY2xhc3MgVCwgY2xhc3MgQ21wLCBjbGFzcyBBbGxvY2F0b3IsIGNsYXNzIEI+IAorc3RydWN0IHBsYWluX3JldHVybl90eXBlXzI8b3RoZXJfYWN0aW9uPHN1YnNjcmlwdF9hY3Rpb24+LCBzdGQ6Om11bHRpbWFwPEtleSwgVCwgQ21wLCBBbGxvY2F0b3I+LCBCPiB7IAorICB0eXBlZGVmIFQmIHR5cGU7CisgIC8vIFQgPT0gc3RkOjptYXA8S2V5LCBULCBDbXAsIEFsbG9jYXRvcj46Om1hcHBlZF90eXBlOyAKK307CisKKyAgLy8gZGVxdWUKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEFsbG9jYXRvciwgY2xhc3MgQj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIHN0ZDo6ZGVxdWU8VCwgQWxsb2NhdG9yPiwgQj4geyAKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmRlcXVlPFQsIEFsbG9jYXRvcj46OnJlZmVyZW5jZSB0eXBlOworfTsKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEFsbG9jYXRvciwgY2xhc3MgQj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIGNvbnN0IHN0ZDo6ZGVxdWU8VCwgQWxsb2NhdG9yPiwgQj4geyAKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmRlcXVlPFQsIEFsbG9jYXRvcj46OmNvbnN0X3JlZmVyZW5jZSB0eXBlOworfTsKKworICAvLyB2ZWN0b3IKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEFsbG9jYXRvciwgY2xhc3MgQj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIHN0ZDo6dmVjdG9yPFQsIEFsbG9jYXRvcj4sIEI+IHsgCisgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjp2ZWN0b3I8VCwgQWxsb2NhdG9yPjo6cmVmZXJlbmNlIHR5cGU7Cit9OwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgQWxsb2NhdG9yLCBjbGFzcyBCPiAKK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8yPG90aGVyX2FjdGlvbjxzdWJzY3JpcHRfYWN0aW9uPiwgY29uc3Qgc3RkOjp2ZWN0b3I8VCwgQWxsb2NhdG9yPiwgQj4geyAKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OnZlY3RvcjxULCBBbGxvY2F0b3I+Ojpjb25zdF9yZWZlcmVuY2UgdHlwZTsKK307CisKKyAgLy8gYmFzaWNfc3RyaW5nCit0ZW1wbGF0ZTxjbGFzcyBDaGFyLCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jYXRvciwgY2xhc3MgQj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxvdGhlcl9hY3Rpb248c3Vic2NyaXB0X2FjdGlvbj4sIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXIsIFRyYWl0cywgQWxsb2NhdG9yPiwgQj4geyAKKyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyLCBUcmFpdHMsIEFsbG9jYXRvcj46OnJlZmVyZW5jZSB0eXBlOworfTsKK3RlbXBsYXRlPGNsYXNzIENoYXIsIGNsYXNzIFRyYWl0cywgY2xhc3MgQWxsb2NhdG9yLCBjbGFzcyBCPiAKK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8yPG90aGVyX2FjdGlvbjxzdWJzY3JpcHRfYWN0aW9uPiwgY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Q2hhciwgVHJhaXRzLCBBbGxvY2F0b3I+LCBCPiB7IAorICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXIsIFRyYWl0cywgQWxsb2NhdG9yPjo6Y29uc3RfcmVmZXJlbmNlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBDaGFyLCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jYXRvcj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxhcml0aG1ldGljX2FjdGlvbjxwbHVzX2FjdGlvbj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyLCBUcmFpdHMsIEFsbG9jYXRvcj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyLCBUcmFpdHMsIEFsbG9jYXRvcj4gPiB7IAorICB0eXBlZGVmIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXIsIFRyYWl0cywgQWxsb2NhdG9yPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQ2hhciwgY2xhc3MgVHJhaXRzLCBjbGFzcyBBbGxvY2F0b3I+IAorc3RydWN0IHBsYWluX3JldHVybl90eXBlXzI8YXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ2hhciosCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyLCBUcmFpdHMsIEFsbG9jYXRvcj4gPiB7IAorICB0eXBlZGVmIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXIsIFRyYWl0cywgQWxsb2NhdG9yPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgQ2hhciwgY2xhc3MgVHJhaXRzLCBjbGFzcyBBbGxvY2F0b3I+IAorc3RydWN0IHBsYWluX3JldHVybl90eXBlXzI8YXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpiYXNpY19zdHJpbmc8Q2hhciwgVHJhaXRzLCBBbGxvY2F0b3I+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ2hhcio+IHsgCisgIHR5cGVkZWYgc3RkOjpiYXNpY19zdHJpbmc8Q2hhciwgVHJhaXRzLCBBbGxvY2F0b3I+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBDaGFyLCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jYXRvciwgc3RkOjpzaXplX3QgTj4gCitzdHJ1Y3QgcGxhaW5fcmV0dXJuX3R5cGVfMjxhcml0aG1ldGljX2FjdGlvbjxwbHVzX2FjdGlvbj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyW05dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpiYXNpY19zdHJpbmc8Q2hhciwgVHJhaXRzLCBBbGxvY2F0b3I+ID4geyAKKyAgdHlwZWRlZiBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyLCBUcmFpdHMsIEFsbG9jYXRvcj4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIENoYXIsIGNsYXNzIFRyYWl0cywgY2xhc3MgQWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBOPiAKK3N0cnVjdCBwbGFpbl9yZXR1cm5fdHlwZV8yPGFyaXRobWV0aWNfYWN0aW9uPHBsdXNfYWN0aW9uPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXIsIFRyYWl0cywgQWxsb2NhdG9yPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJbTl0+IHsgCisgIHR5cGVkZWYgc3RkOjpiYXNpY19zdHJpbmc8Q2hhciwgVHJhaXRzLCBBbGxvY2F0b3I+IHR5cGU7Cit9OworCisKK30gLy8gbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9ycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzNiYzhiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9ycy5ocHAKQEAgLTAsMCArMSwzNzAgQEAKKy8vIEJvb3N0IExhbWJkYSBMaWJyYXJ5IC0gb3BlcmF0b3JzLmhwcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHd3dy5ib29zdC5vcmcKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfTEFNQkRBX09QRVJBVE9SU19IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX09QRVJBVE9SU19IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvaXNfaW5zdGFuY2Vfb2YuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyAKK25hbWVzcGFjZSBsYW1iZGEgeworCisjaWYgZGVmaW5lZCBCT09TVF9MQU1CREFfQkUxCisjZXJyb3IgIk11bHRpcGxlIGRlZmluZXMgb2YgQk9PU1RfTEFNQkRBX0JFMSIKKyNlbmRpZgorCisgIC8vIEZvciBhbGwgQk9PU1RBX0xBTUJEQV9CRSogbWFjcm9zOgorCisgIC8vIENPTlNUQSBtdXN0IGJlIGVpdGhlciAnQScgb3IgJ2NvbnN0IEEnCisgIC8vIENPTlNUQiBtdXN0IGJlIGVpdGhlciAnQicgb3IgJ2NvbnN0IEInCisKKyAgLy8gSXQgaXMgc3R1cGlkIHRvIGhhdmUgdGhlIG5hbWVzIEEgYW5kIEIgYXMgbWFjcm8gYXJndW1lbnRzLCBidXQgaXQgYXZvaWRzCisgIC8vIHRoZSBuZWVkIHRvIHBhc3MgaW4gZW10cHkgbWFjcm8gYXJndW1lbnRzLCB3aGljaCBnaXZlcyB3YXJuaW5ncyBvbiBzb21lCisgIC8vIGNvbXBpbGVycworCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9CRTEoT1BFUl9OQU1FLCBBQ1RJT04sIENPTlNUQSwgQ09OU1RCLCBDT05WRVJTSU9OKSAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIEFyZywgY2xhc3MgQj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoraW5saW5lIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitsYW1iZGFfZnVuY3RvcjwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEFDVElPTiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnPiwgdHlwZW5hbWUgY29uc3RfY29weV9hcmd1bWVudCA8Q09OU1RCPjo6dHlwZT4gIFwKKyAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitPUEVSX05BTUUgKGNvbnN0IGxhbWJkYV9mdW5jdG9yPEFyZz4mIGEsIENPTlNUQiYgYikgeyAgICAgICAgICAgICAgICAgICAgICBcCisgIHJldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgQUNUSU9OLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+LCB0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50IDxDT05TVEI+Ojp0eXBlPlwKKyAgICA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgKHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4sIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQgPENPTlNUQj46OnR5cGU+KGEsIGIpKTsgXAorfQorCisKKyNpZiBkZWZpbmVkIEJPT1NUX0xBTUJEQV9CRTIKKyNlcnJvciAiTXVsdGlwbGUgZGVmaW5lcyBvZiBCT09TVF9MQU1CREFfQkUyIgorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0JFMihPUEVSX05BTUUsIEFDVElPTiwgQ09OU1RBLCBDT05TVEIsIENPTlZFUlNJT04pICAgICAgXAordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQXJnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitpbmxpbmUgY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2xhbWJkYV9mdW5jdG9yPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQUNUSU9OLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0dXBsZTx0eXBlbmFtZSBDT05WRVJTSU9OIDxDT05TVEE+Ojp0eXBlLCBsYW1iZGFfZnVuY3RvcjxBcmc+ID4gICAgICAgIFwKKyAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitPUEVSX05BTUUgKENPTlNUQSYgYSwgY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgYikgeyAgICAgICAgICAgICAgICAgICAgICBcCisgIHJldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgQUNUSU9OLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB0dXBsZTx0eXBlbmFtZSBDT05WRVJTSU9OIDxDT05TVEE+Ojp0eXBlLCBsYW1iZGFfZnVuY3RvcjxBcmc+ID4gICAgICBcCisgICAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgKHR1cGxlPHR5cGVuYW1lIENPTlZFUlNJT04gPENPTlNUQT46OnR5cGUsIGxhbWJkYV9mdW5jdG9yPEFyZz4gPihhLCBiKSk7IFwKK30KKworCisjaWYgZGVmaW5lZCBCT09TVF9MQU1CREFfQkUzCisjZXJyb3IgIk11bHRpcGxlIGRlZmluZXMgb2YgQk9PU1RfTEFNQkRBX0JFMyIKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9CRTMoT1BFUl9OQU1FLCBBQ1RJT04sIENPTlNUQSwgQ09OU1RCLCBDT05WRVJTSU9OKSAgICBcCit0ZW1wbGF0ZTxjbGFzcyBBcmdBLCBjbGFzcyBBcmdCPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitpbmxpbmUgY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitsYW1iZGFfZnVuY3RvcjwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQUNUSU9OLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnQT4sIGxhbWJkYV9mdW5jdG9yPEFyZ0I+ID4gICAgICAgICAgICAgICAgICAgICBcCisgID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCis+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitPUEVSX05BTUUgKGNvbnN0IGxhbWJkYV9mdW5jdG9yPEFyZ0E+JiBhLCBjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmdCPiYgYikgeyBcCisgIHJldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBBQ1RJT04sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmdBPiwgbGFtYmRhX2Z1bmN0b3I8QXJnQj4gPiAgICAgICAgICAgICAgICAgICBcCisgICAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICh0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmdBPiwgbGFtYmRhX2Z1bmN0b3I8QXJnQj4gPihhLCBiKSk7ICAgICAgICAgICAgICBcCit9CisKKyNpZiBkZWZpbmVkIEJPT1NUX0xBTUJEQV9CRQorI2Vycm9yICJNdWx0aXBsZSBkZWZpbmVzIG9mIEJPT1NUX0xBTUJEQV9CRSIKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX0xBTUJEQV9CRShPUEVSX05BTUUsIEFDVElPTiwgQ09OU1RBLCBDT05TVEIsIENPTlNUX0NPTlZFUlNJT04pIFwKK0JPT1NUX0xBTUJEQV9CRTEoT1BFUl9OQU1FLCBBQ1RJT04sIENPTlNUQSwgQ09OU1RCLCBDT05TVF9DT05WRVJTSU9OKSAgICAgICAgXAorQk9PU1RfTEFNQkRBX0JFMihPUEVSX05BTUUsIEFDVElPTiwgQ09OU1RBLCBDT05TVEIsIENPTlNUX0NPTlZFUlNJT04pICAgICAgICBcCitCT09TVF9MQU1CREFfQkUzKE9QRVJfTkFNRSwgQUNUSU9OLCBDT05TVEEsIENPTlNUQiwgQ09OU1RfQ09OVkVSU0lPTikKKworI2RlZmluZSBCT09TVF9MQU1CREFfRU1QVFkoKSAKKworQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yKywgYXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yLSwgYXJpdGhtZXRpY19hY3Rpb248bWludXNfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvciosIGFyaXRobWV0aWNfYWN0aW9uPG11bHRpcGx5X2FjdGlvbj4sIGNvbnN0IEEsIGNvbnN0IEIsIGNvbnN0X2NvcHlfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3IvLCBhcml0aG1ldGljX2FjdGlvbjxkaXZpZGVfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvciUsIGFyaXRobWV0aWNfYWN0aW9uPHJlbWFpbmRlcl9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yPDwsIGJpdHdpc2VfYWN0aW9uPGxlZnRzaGlmdF9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yPj4sIGJpdHdpc2VfYWN0aW9uPHJpZ2h0c2hpZnRfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvciYsIGJpdHdpc2VfYWN0aW9uPGFuZF9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yfCwgYml0d2lzZV9hY3Rpb248b3JfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvcl4sIGJpdHdpc2VfYWN0aW9uPHhvcl9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yJiYsIGxvZ2ljYWxfYWN0aW9uPGFuZF9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yfHwsIGxvZ2ljYWxfYWN0aW9uPG9yX2FjdGlvbj4sIGNvbnN0IEEsIGNvbnN0IEIsIGNvbnN0X2NvcHlfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3I8LCByZWxhdGlvbmFsX2FjdGlvbjxsZXNzX2FjdGlvbj4sIGNvbnN0IEEsIGNvbnN0IEIsIGNvbnN0X2NvcHlfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3I+LCByZWxhdGlvbmFsX2FjdGlvbjxncmVhdGVyX2FjdGlvbj4sIGNvbnN0IEEsIGNvbnN0IEIsIGNvbnN0X2NvcHlfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3I8PSwgcmVsYXRpb25hbF9hY3Rpb248bGVzc29yZXF1YWxfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvcj49LCByZWxhdGlvbmFsX2FjdGlvbjxncmVhdGVyb3JlcXVhbF9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yPT0sIHJlbGF0aW9uYWxfYWN0aW9uPGVxdWFsX2FjdGlvbj4sIGNvbnN0IEEsIGNvbnN0IEIsIGNvbnN0X2NvcHlfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3IhPSwgcmVsYXRpb25hbF9hY3Rpb248bm90ZXF1YWxfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKKworQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yKz0sIGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb248cGx1c19hY3Rpb24+LCBBLCBjb25zdCBCLCByZWZlcmVuY2VfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3ItPSwgYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxtaW51c19hY3Rpb24+LCBBLCBjb25zdCBCLCByZWZlcmVuY2VfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3IqPSwgYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxtdWx0aXBseV9hY3Rpb24+LCBBLCBjb25zdCBCLCByZWZlcmVuY2VfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUob3BlcmF0b3IvPSwgYXJpdGhtZXRpY19hc3NpZ25tZW50X2FjdGlvbjxkaXZpZGVfYWN0aW9uPiwgQSwgY29uc3QgQiwgcmVmZXJlbmNlX2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yJT0sIGFyaXRobWV0aWNfYXNzaWdubWVudF9hY3Rpb248cmVtYWluZGVyX2FjdGlvbj4sIEEsIGNvbnN0IEIsIHJlZmVyZW5jZV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvcjw8PSwgYml0d2lzZV9hc3NpZ25tZW50X2FjdGlvbjxsZWZ0c2hpZnRfYWN0aW9uPiwgQSwgY29uc3QgQiwgcmVmZXJlbmNlX2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yPj49LCBiaXR3aXNlX2Fzc2lnbm1lbnRfYWN0aW9uPHJpZ2h0c2hpZnRfYWN0aW9uPiwgQSwgY29uc3QgQiwgcmVmZXJlbmNlX2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFKG9wZXJhdG9yJj0sIGJpdHdpc2VfYXNzaWdubWVudF9hY3Rpb248YW5kX2FjdGlvbj4sIEEsIGNvbnN0IEIsIHJlZmVyZW5jZV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvcnw9LCBiaXR3aXNlX2Fzc2lnbm1lbnRfYWN0aW9uPG9yX2FjdGlvbj4sIEEsIGNvbnN0IEIsIHJlZmVyZW5jZV9hcmd1bWVudCkKK0JPT1NUX0xBTUJEQV9CRShvcGVyYXRvcl49LCBiaXR3aXNlX2Fzc2lnbm1lbnRfYWN0aW9uPHhvcl9hY3Rpb24+LCBBLCBjb25zdCBCLCByZWZlcmVuY2VfYXJndW1lbnQpCisKKworLy8gQSBzcGVjaWFsIHRyaWNrIGZvciBjb21tYSBvcGVyYXRvciBmb3IgY29ycmVjdCBwcmVwcm9jZXNzaW5nCisjaWYgZGVmaW5lZCBCT09TVF9MQU1CREFfQ09NTUFfT1BFUkFUT1JfTkFNRQorI2Vycm9yICJNdWx0aXBsZSBkZWZpbmVzIG9mIEJPT1NUX0xBTUJEQV9DT01NQV9PUEVSQVRPUl9OQU1FIgorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0NPTU1BX09QRVJBVE9SX05BTUUgb3BlcmF0b3IsCisKK0JPT1NUX0xBTUJEQV9CRTEoQk9PU1RfTEFNQkRBX0NPTU1BX09QRVJBVE9SX05BTUUsIG90aGVyX2FjdGlvbjxjb21tYV9hY3Rpb24+LCBjb25zdCBBLCBjb25zdCBCLCBjb25zdF9jb3B5X2FyZ3VtZW50KQorQk9PU1RfTEFNQkRBX0JFMihCT09TVF9MQU1CREFfQ09NTUFfT1BFUkFUT1JfTkFNRSwgb3RoZXJfYWN0aW9uPGNvbW1hX2FjdGlvbj4sIGNvbnN0IEEsIGNvbnN0IEIsIGNvbnN0X2NvcHlfYXJndW1lbnQpCitCT09TVF9MQU1CREFfQkUzKEJPT1NUX0xBTUJEQV9DT01NQV9PUEVSQVRPUl9OQU1FLCBvdGhlcl9hY3Rpb248Y29tbWFfYWN0aW9uPiwgY29uc3QgQSwgY29uc3QgQiwgY29uc3RfY29weV9hcmd1bWVudCkKKworCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBzcGVjaWFsIGNhc2VzIGZvciBvc3RyZWFtJiA8PCBBbnkgYW5kIGlzdHJlYW0mID4+IEFueSAtLS0tLS0tLS0tLS0tLS0KKy8vIHRoZSBhY3R1YWwgc3RyZWFtIGNsYXNzZXMgbWF5IHZhcnkgYW5kIHRodXMgYSBzcGVjaWFsaXNhdGlvbiBmb3IsIAorLy8gc2F5IG9zdHJlYW0mIGRvZXMgbm90IG1hdGNoICh0aGUgZ2VuZXJhbCBjYXNlIGFib3ZlIGlzIGNob3NlbikuIAorLy8gVGhlcmVmb3JlIHdlIHNwZWNpYWxpc2UgZm9yIG5vbi1jb25zdCByZWZlcmVuY2U6CisvLyBpZiB0aGUgbGVmdCBhcmd1bWVudCBpcyBhIHN0cmVhbSwgd2Ugc3RvcmUgdGhlIHN0cmVhbSBhcyByZWZlcmVuY2UKKy8vIGlmIGl0IGlzIHNvbWV0aGluZyBlbHNlLCB3ZSBzdG9yZSBhIGNvbnN0IHBsYWluIGJ5IGRlZmF1bHQKKworLy8gTm90ZSB0aGF0IHRoZSBvdmVybG9hZGluZyBpcyBjb25zdCB2cy4gbm9uLWNvbnN0IGZpcnN0IGFyZ3VtZW50CisKKyNpZmRlZiBCT09TVF9OT19URU1QTEFURURfU1RSRUFNUwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGNvbnZlcnRfb3N0cmVhbV90b19yZWZfb3RoZXJzX3RvX2NfcGxhaW5fYnlfZGVmYXVsdCB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpJRjwKKyAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2NvbnZlcnRpYmxlPFQqLCBzdGQ6Om9zdHJlYW0qPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIFQmLAorICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBjb25zdF9jb3B5X2FyZ3VtZW50IDxUPjo6dHlwZQorICAgICAgICAgICAgICAgICAgICAgPjo6UkVUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgY29udmVydF9pc3RyZWFtX3RvX3JlZl9vdGhlcnNfdG9fY19wbGFpbl9ieV9kZWZhdWx0IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OklGPAorICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfY29udmVydGlibGU8VCosIHN0ZDo6aXN0cmVhbSo+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgVCYsCisgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQgPFQ+Ojp0eXBlCisgICAgICAgICAgICAgICAgICAgICA+OjpSRVQgdHlwZTsKK307CisjZWxzZQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgY29udmVydF9vc3RyZWFtX3RvX3JlZl9vdGhlcnNfdG9fY19wbGFpbl9ieV9kZWZhdWx0IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OklGPAorICAgICAgICAgICAgICAgICAgICAgICBpc19pbnN0YW5jZV9vZl8yPAorICAgICAgICAgICAgICAgICAgICAgICAgIFQsIHN0ZDo6YmFzaWNfb3N0cmVhbQorICAgICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgVCYsCisgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGNvbnN0X2NvcHlfYXJndW1lbnQgPFQ+Ojp0eXBlCisgICAgICAgICAgICAgICAgICAgICA+OjpSRVQgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBjb252ZXJ0X2lzdHJlYW1fdG9fcmVmX290aGVyc190b19jX3BsYWluX2J5X2RlZmF1bHQgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8CisgICAgICAgICAgICAgICAgICAgICAgIGlzX2luc3RhbmNlX29mXzI8CisgICAgICAgICAgICAgICAgICAgICAgICAgVCwgc3RkOjpiYXNpY19pc3RyZWFtCisgICAgICAgICAgICAgICAgICAgICAgID46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICBUJiwKKyAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgY29uc3RfY29weV9hcmd1bWVudCA8VD46OnR5cGUKKyAgICAgICAgICAgICAgICAgICAgID46OlJFVCB0eXBlOworfTsKKyNlbmRpZgorCit9IC8vIGRldGFpbAorCitCT09TVF9MQU1CREFfQkUyKG9wZXJhdG9yPDwsIGJpdHdpc2VfYWN0aW9uPCBsZWZ0c2hpZnRfYWN0aW9uPiwgQSwgY29uc3QgQiwgZGV0YWlsOjpjb252ZXJ0X29zdHJlYW1fdG9fcmVmX290aGVyc190b19jX3BsYWluX2J5X2RlZmF1bHQpCitCT09TVF9MQU1CREFfQkUyKG9wZXJhdG9yPj4sIGJpdHdpc2VfYWN0aW9uPCByaWdodHNoaWZ0X2FjdGlvbj4sIEEsIGNvbnN0IEIsIGRldGFpbDo6Y29udmVydF9pc3RyZWFtX3RvX3JlZl9vdGhlcnNfdG9fY19wbGFpbl9ieV9kZWZhdWx0KSAgICAgIAorCisKKy8vIHNwZWNpYWwgY2FzZSBmb3IgaW9fbWFuaXB1bGF0b3JzLgorLy8gZnVuY3Rpb24gcmVmZXJlbmNlcyBjYW5ub3QgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzIHRvIGxhbWJkYSBvcGVyYXRvcgorLy8gZXhwcmVzc2lvbnMgaW4gZ2VuZXJhbC4gV2l0aCA8PCBhbmQgPj4gdGhlIHVzZSBvZiBtYW5pcHVsYXRvcnMgaXMKKy8vIHNvIGNvbW1vbiwgdGhhdCBzcGVjaWFsaXphdGlvbnMgYXJlIHByb3ZpZGVkIHRvIG1ha2UgdGhlbSB3b3JrLgorCit0ZW1wbGF0ZTxjbGFzcyBBcmcsIGNsYXNzIFJldCwgY2xhc3MgTWFuaXBBcmc+CitpbmxpbmUgY29uc3QgCitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBiaXR3aXNlX2FjdGlvbjxsZWZ0c2hpZnRfYWN0aW9uPiwKKyAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+LCBSZXQoJikoTWFuaXBBcmcpPiAKKyAgPiAKKz4KK29wZXJhdG9yPDwoY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgYSwgUmV0KCZiKShNYW5pcEFyZykpCit7CisgIHJldHVybiAKKyAgICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICAgIGJpdHdpc2VfYWN0aW9uPGxlZnRzaGlmdF9hY3Rpb24+LAorICAgICAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+LCBSZXQoJikoTWFuaXBBcmcpPgorICAgICAgPiAKKyAgICAoIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4sIFJldCgmKShNYW5pcEFyZyk+KGEsIGIpICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEFyZywgY2xhc3MgUmV0LCBjbGFzcyBNYW5pcEFyZz4KK2lubGluZSBjb25zdCAKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGJpdHdpc2VfYWN0aW9uPHJpZ2h0c2hpZnRfYWN0aW9uPiwKKyAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+LCBSZXQoJikoTWFuaXBBcmcpPgorICA+IAorPgorb3BlcmF0b3I+Pihjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmc+JiBhLCBSZXQoJmIpKE1hbmlwQXJnKSkKK3sKKyAgcmV0dXJuIAorICAgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgICAgYml0d2lzZV9hY3Rpb248cmlnaHRzaGlmdF9hY3Rpb24+LAorICAgICAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+LCBSZXQoJikoTWFuaXBBcmcpPgorICAgICAgPiAKKyAgICAoIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4sIFJldCgmKShNYW5pcEFyZyk+KGEsIGIpICk7Cit9CisKKworLy8gKCsgYW5kIC0pIHRha2UgdGhlaXIgYXJndW1lbnRzIGFzIGNvbnN0IHJlZmVyZW5jZXMuIAorLy8gVGhpcyBoYXMgY29uc3F1ZW5jZXMgd2l0aCBwb2ludGVyIGFydGlobWV0aWMKKy8vIEUuZyBpbnQgYVtdOyAuLi4gKmEgPSAxIHdvcmtzIGJ1dCBub3QgKihhKzEpID0gMS4gCisvLyB0aGUgcmVzdWx0IG9mIGErMSB3b3VsZCBiZSBjb25zdAorLy8gVG8gbWFrZSB0aGUgbGF0dGVyIHdvcmsgdG9vLCAKKy8vIG5vbi1jb25zdCBhcnJheXMgYXJlIHRha2VuIGFzIG5vbi1jb25zdCBhbmQgc3RvcmVkIGFzIG5vbi1jb25zdCBhcyB3ZWxsLgorI2lmIGRlZmluZWQgIEJPT1NUX0xBTUJEQV9QVFJfQVJJVEhNRVRJQ19FMQorI2Vycm9yICJNdWx0aXBsZSBkZWZpbmVzIG9mICBCT09TVF9MQU1CREFfUFRSX0FSSVRITUVUSUNfRTEiCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9MQU1CREFfUFRSX0FSSVRITUVUSUNfRTEoT1BFUl9OQU1FLCBBQ1RJT04sIENPTlNUQikgICAgICAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIEFyZywgaW50IE4sIGNsYXNzIEI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitpbmxpbmUgY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorbGFtYmRhX2Z1bmN0b3I8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTxBQ1RJT04sIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4sIENPTlNUQigmKVtOXT4gPiAgICBcCis+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorT1BFUl9OQU1FIChjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmc+JiBhLCBDT05TVEIoJmIpW05dKSAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHJldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8QUNUSU9OLCB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+LCBDT05TVEIoJilbTl0+ID4gIFwKKyAgKHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4sIENPTlNUQigmKVtOXT4oYSwgYikpOyAgICAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKworI2lmIGRlZmluZWQgIEJPT1NUX0xBTUJEQV9QVFJfQVJJVEhNRVRJQ19FMgorI2Vycm9yICJNdWx0aXBsZSBkZWZpbmVzIG9mICBCT09TVF9MQU1CREFfUFRSX0FSSVRITUVUSUNfRTIiCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9MQU1CREFfUFRSX0FSSVRITUVUSUNfRTIoT1BFUl9OQU1FLCBBQ1RJT04sIENPTlNUQSkgICAgICAgICAgIFwKK3RlbXBsYXRlPGludCBOLCBjbGFzcyBBLCBjbGFzcyBBcmc+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitpbmxpbmUgY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorbGFtYmRhX2Z1bmN0b3I8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTxBQ1RJT04sIHR1cGxlPENPTlNUQSgmKVtOXSwgbGFtYmRhX2Z1bmN0b3I8QXJnPiA+ID4gICBcCis+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorT1BFUl9OQU1FIChDT05TVEEoJmEpW05dLCBjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmc+JiBiKSAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHJldHVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8QUNUSU9OLCB0dXBsZTxDT05TVEEoJilbTl0sIGxhbWJkYV9mdW5jdG9yPEFyZz4gPiA+IFwKKyAgICAodHVwbGU8Q09OU1RBKCYpW05dLCBsYW1iZGFfZnVuY3RvcjxBcmc+ID4oYSwgYikpOyAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKworQk9PU1RfTEFNQkRBX1BUUl9BUklUSE1FVElDX0UxKG9wZXJhdG9yKywgYXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LCBCKQorQk9PU1RfTEFNQkRBX1BUUl9BUklUSE1FVElDX0UyKG9wZXJhdG9yKywgYXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LCBBKQorQk9PU1RfTEFNQkRBX1BUUl9BUklUSE1FVElDX0UxKG9wZXJhdG9yKywgYXJpdGhtZXRpY19hY3Rpb248cGx1c19hY3Rpb24+LGNvbnN0IEIpCitCT09TVF9MQU1CREFfUFRSX0FSSVRITUVUSUNfRTIob3BlcmF0b3IrLCBhcml0aG1ldGljX2FjdGlvbjxwbHVzX2FjdGlvbj4sY29uc3QgQSkKKworCisvL0JPT1NUX0xBTUJEQV9QVFJfQVJJVEhNRVRJQ19FMShvcGVyYXRvci0sIGFyaXRobWV0aWNfYWN0aW9uPG1pbnVzX2FjdGlvbj4pCisvLyBUaGlzIGlzIG5vdCBuZWVkZWQsIHNpbmNlIHRoZSByZXN1bHQgb2YgcHRyLXB0ciBpcyBhbiBydmFsdWUgYW55d2F5CisKK0JPT1NUX0xBTUJEQV9QVFJfQVJJVEhNRVRJQ19FMihvcGVyYXRvci0sIGFyaXRobWV0aWNfYWN0aW9uPG1pbnVzX2FjdGlvbj4sIEEpCitCT09TVF9MQU1CREFfUFRSX0FSSVRITUVUSUNfRTIob3BlcmF0b3ItLCBhcml0aG1ldGljX2FjdGlvbjxtaW51c19hY3Rpb24+LCBjb25zdCBBKQorCisKKyN1bmRlZiBCT09TVF9MQU1CREFfQkUxCisjdW5kZWYgQk9PU1RfTEFNQkRBX0JFMgorI3VuZGVmIEJPT1NUX0xBTUJEQV9CRTMKKyN1bmRlZiBCT09TVF9MQU1CREFfQkUKKyN1bmRlZiBCT09TVF9MQU1CREFfQ09NTUFfT1BFUkFUT1JfTkFNRQorCisjdW5kZWYgQk9PU1RfTEFNQkRBX1BUUl9BUklUSE1FVElDX0UxCisjdW5kZWYgQk9PU1RfTEFNQkRBX1BUUl9BUklUSE1FVElDX0UyCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyB1bmFyeSBvcGVyYXRvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWYgZGVmaW5lZCBCT09TVF9MQU1CREFfVUUKKyNlcnJvciAiTXVsdGlwbGUgZGVmaW5lcyBvZiBCT09TVF9MQU1CREFfVUUiCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9MQU1CREFfVUUoT1BFUl9OQU1FLCBBQ1RJT04pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAordGVtcGxhdGU8Y2xhc3MgQXJnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoraW5saW5lIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorbGFtYmRhX2Z1bmN0b3I8bGFtYmRhX2Z1bmN0b3JfYmFzZTxBQ1RJT04sIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4gPiA+ID4gXAorT1BFUl9OQU1FIChjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmc+JiBhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8QUNUSU9OLCB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+ID4gPiAgICAgICAgICAgICAgXAorICAgICggdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+KGEpICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisKK0JPT1NUX0xBTUJEQV9VRShvcGVyYXRvcissIHVuYXJ5X2FyaXRobWV0aWNfYWN0aW9uPHBsdXNfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9VRShvcGVyYXRvci0sIHVuYXJ5X2FyaXRobWV0aWNfYWN0aW9uPG1pbnVzX2FjdGlvbj4pCitCT09TVF9MQU1CREFfVUUob3BlcmF0b3J+LCBiaXR3aXNlX2FjdGlvbjxub3RfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9VRShvcGVyYXRvciEsIGxvZ2ljYWxfYWN0aW9uPG5vdF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX1VFKG9wZXJhdG9yKyssIHByZV9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxpbmNyZW1lbnRfYWN0aW9uPikKK0JPT1NUX0xBTUJEQV9VRShvcGVyYXRvci0tLCBwcmVfaW5jcmVtZW50X2RlY3JlbWVudF9hY3Rpb248ZGVjcmVtZW50X2FjdGlvbj4pCitCT09TVF9MQU1CREFfVUUob3BlcmF0b3IqLCBvdGhlcl9hY3Rpb248Y29udGVudHNvZl9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX1VFKG9wZXJhdG9yJiwgb3RoZXJfYWN0aW9uPGFkZHJlc3NvZl9hY3Rpb24+KQorCisjaWYgZGVmaW5lZCBCT09TVF9MQU1CREFfUE9TVEZJWF9VRQorI2Vycm9yICJNdWx0aXBsZSBkZWZpbmVzIG9mIEJPT1NUX0xBTUJEQV9QT1NURklYX1VFIgorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX1BPU1RGSVhfVUUoT1BFUl9OQU1FLCBBQ1RJT04pICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIEFyZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBjb25zdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2xhbWJkYV9mdW5jdG9yPGxhbWJkYV9mdW5jdG9yX2Jhc2U8QUNUSU9OLCB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+ID4gPiA+IFwKK09QRVJfTkFNRSAoY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgYSwgaW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPEFDVElPTiwgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+ID4gICAgICAgICAgICAgIFwKKyAgICAoIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZz4gPihhKSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworCitCT09TVF9MQU1CREFfUE9TVEZJWF9VRShvcGVyYXRvcisrLCBwb3N0X2luY3JlbWVudF9kZWNyZW1lbnRfYWN0aW9uPGluY3JlbWVudF9hY3Rpb24+KQorQk9PU1RfTEFNQkRBX1BPU1RGSVhfVUUob3BlcmF0b3ItLSwgcG9zdF9pbmNyZW1lbnRfZGVjcmVtZW50X2FjdGlvbjxkZWNyZW1lbnRfYWN0aW9uPikKKworI3VuZGVmIEJPT1NUX0xBTUJEQV9VRQorI3VuZGVmIEJPT1NUX0xBTUJEQV9QT1NURklYX1VFCisKK30gLy8gbmFtZXNwYWNlIGxhbWJkYQorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvcmV0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9yZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyNjFiYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9kZXRhaWwvcmV0LmhwcApAQCAtMCwwICsxLDMyNSBAQAorLy8gQm9vc3QgTGFtYmRhIExpYnJhcnkgIHJldC5ocHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB3d3cuYm9vc3Qub3JnCisKKworI2lmbmRlZiBCT09TVF9MQU1CREFfUkVUX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfUkVUX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyAKK25hbWVzcGFjZSBsYW1iZGEgeworCisgIC8vIFRPRE86CisKKy8vICBBZGQgc3BlY2lhbGl6YXRpb25zIGZvciBmdW5jdGlvbiByZWZlcmVuY2VzIGZvciByZXQsIHByb3RlY3QgYW5kIHVubGFtYmRhCisvLyAgZS5nIHZvaWQgZm9vKCk7IHVubGFtYmRhKGZvbyk7IGZhaWxzLCBhcyBpdCB3b3VsZCBhZGQgYSBjb25zdCBxdWFsaWZpZXIKKyAgLy8gZm9yIGEgZnVuY3Rpb24gdHlwZS4gCisgIC8vIG9uIHRoZSBvdGhlciBoYW5kIHVubGFtYmRhKCpmb28pIGRvZXMgd29yaworCisKKy8vIC0tIHJldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyB0aGUgZXhwbGljaXQgcmV0dXJuIHR5cGUgdGVtcGxhdGUgCisKKyAgLy8gVE9ETzogSXQnZCBiZSBuaWNlIHRvIG1ha2UgcmV0IGEgbm9wIGZvciBvdGhlciB0aGFuIGxhbWJkYSBmdW5jdG9ycworICAvLyBidXQgY2F1c2VzIGFuIGFtYmlndWl5dHkgd2l0aCBnY2MgKG5vdCB3aXRoIEtDQyksIGNoZWNrIHdoYXQgaXMgdGhlCisgIC8vIHJpZ2h0IGludGVycHJldGF0aW9uLgorCisgIC8vICAvLyByZXQgZm9yIG90aGVycyB0aGFuIGxhbWJkYSBmdW5jdG9ycyBoYXMgbm8gZWZmZWN0CisgIC8vIHRlbXBsYXRlIDxjbGFzcyBVLCBjbGFzcyBUPgorICAvLyBpbmxpbmUgY29uc3QgVCYgcmV0KGNvbnN0IFQmIHQpIHsgcmV0dXJuIHQ7IH0KKworCit0ZW1wbGF0ZTxjbGFzcyBSRVQsIGNsYXNzIEFyZz4KK2lubGluZSBjb25zdCAKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIGV4cGxpY2l0X3JldHVybl90eXBlX2FjdGlvbjxSRVQ+LCAKKyAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+ID4KKyAgPiAKKz4KK3JldChjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmc+JiBhMSkKK3sKKyAgcmV0dXJuICAKKyAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgICAgZXhwbGljaXRfcmV0dXJuX3R5cGVfYWN0aW9uPFJFVD4sIAorICAgICAgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+CisgICAgPiAKKyAgICAodHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+KGExKSk7Cit9CisKKy8vIHByb3RlY3QgLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgLy8gcHJvdGVjdGluZyBvdGhlcnMgdGhhbiBsYW1iZGEgZnVuY3RvcnMgaGFzIG5vIGVmZmVjdAordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgY29uc3QgVCYgcHJvdGVjdChjb25zdCBUJiB0KSB7IHJldHVybiB0OyB9CisKK3RlbXBsYXRlPGNsYXNzIEFyZz4KK2lubGluZSBjb25zdCAKK2xhbWJkYV9mdW5jdG9yPAorICBsYW1iZGFfZnVuY3Rvcl9iYXNlPAorICAgIHByb3RlY3RfYWN0aW9uLCAKKyAgICB0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+ID4KKyAgPiAKKz4KK3Byb3RlY3QoY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgYTEpCit7CisgIHJldHVybiAKKyAgICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8CisgICAgICAgIHByb3RlY3RfYWN0aW9uLCAKKyAgICAgICAgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+CisgICAgICA+IAorICAgICh0dXBsZTxsYW1iZGFfZnVuY3RvcjxBcmc+ID4oYTEpKTsKK30KKyAgIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBIaWRlcyB0aGUgbGFtYmRhIGZ1bmN0b3JuZXNzIG9mIGEgbGFtYmRhIGZ1bmN0b3IuIAorLy8gQWZ0ZXIgdGhpcywgdGhlIGZ1bmN0b3IgaXMgaW1tdW5lIHRvIGFyZ3VtZW50IHN1YnN0aXR1dGlvbiwgZXRjLgorLy8gVGhpcyBjYW4gYmUgdXNlZCwgZS5nLiB0byBtYWtlIGl0IHNhZmUgdG8gcGFzcyBsYW1iZGEgZnVuY3RvcnMgYXMgCisvLyBhcmd1bWVudHMgdG8gZnVuY3Rpb25zLCB3aGljaCBtaWdodCB1c2UgdGhlbSBhcyB0YXJnZXQgZnVuY3Rpb25zCisKKy8vIG5vdGUsIHVubGFtYmRhIGFuZCBwcm90ZWN0IGFyZSBkaWZmZXJlbnQgdGhpbmdzLiBQcm90ZWN0IGhpZGVzIHRoZSBsYW1iZGEKKy8vIGZ1bmN0b3IgZm9yIG9uZSBhcHBsaWNhdGlvbiwgdW5sYW1iZGEgZm9yIGdvb2QuCisKK3RlbXBsYXRlIDxjbGFzcyBMYW1iZGFGdW5jdG9yPgorY2xhc3Mgbm9uX2xhbWJkYV9mdW5jdG9yCit7CisgIExhbWJkYUZ1bmN0b3IgbGY7CitwdWJsaWM6CisgIAorICAvLyBUaGlzIGZ1bmN0b3IgZGVmaW5lcyB0aGUgcmVzdWx0X3R5cGUgdHlwZWRlZi4KKyAgLy8gVGhlIHJlc3VsdCB0eXBlIG11c3QgYmUgZGVkdWNpYmxlIHdpdGhvdXQga25vd2luZyB0aGUgYXJndW1lbnRzCisKKyAgdGVtcGxhdGUgPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgICBMYW1iZGFGdW5jdG9yOjppbmhlcml0ZWQ6OiAKKyAgICAgICAgdGVtcGxhdGUgc2lnPHR5cGVuYW1lIFNpZ0FyZ3M6OnRhaWxfdHlwZT46OnR5cGUgdHlwZTsKKyAgfTsKKworICBleHBsaWNpdCBub25fbGFtYmRhX2Z1bmN0b3IoY29uc3QgTGFtYmRhRnVuY3RvciYgYSkgOiBsZihhKSB7fQorCisgIHR5cGVuYW1lIExhbWJkYUZ1bmN0b3I6Om51bGxhcnlfcmV0dXJuX3R5cGUgIAorICBvcGVyYXRvcigpKCkgY29uc3QgeworICAgIHJldHVybiBsZi50ZW1wbGF0ZSAKKyAgICAgIGNhbGw8dHlwZW5hbWUgTGFtYmRhRnVuY3Rvcjo6bnVsbGFyeV9yZXR1cm5fdHlwZT4KKyAgICAgICAgKGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7IAorICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgQT4KKyAgdHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IG5vbl9sYW1iZGFfZnVuY3RvciwgQSY+ID46OnR5cGUgCisgIG9wZXJhdG9yKCkoQSYgYSkgY29uc3QgeworICAgIHJldHVybiBsZi50ZW1wbGF0ZSBjYWxsPHR5cGVuYW1lIHNpZzx0dXBsZTxjb25zdCBub25fbGFtYmRhX2Z1bmN0b3IsIEEmPiA+Ojp0eXBlID4oYSwgY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7IAorICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4KKyAgdHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IG5vbl9sYW1iZGFfZnVuY3RvciwgQSYsIEImPiA+Ojp0eXBlIAorICBvcGVyYXRvcigpKEEmIGEsIEImIGIpIGNvbnN0IHsKKyAgICByZXR1cm4gbGYudGVtcGxhdGUgY2FsbDx0eXBlbmFtZSBzaWc8dHVwbGU8Y29uc3Qgbm9uX2xhbWJkYV9mdW5jdG9yLCBBJiwgQiY+ID46OnR5cGUgPihhLCBiLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7IAorICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQiwgY2xhc3MgQz4KKyAgdHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IG5vbl9sYW1iZGFfZnVuY3RvciwgQSYsIEImLCBDJj4gPjo6dHlwZSAKKyAgb3BlcmF0b3IoKShBJiBhLCBCJiBiLCBDJiBjKSBjb25zdCB7CisgICAgcmV0dXJuIGxmLnRlbXBsYXRlIGNhbGw8dHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IG5vbl9sYW1iZGFfZnVuY3RvciwgQSYsIEImLCBDJj4gPjo6dHlwZT4oYSwgYiwgYywgY251bGxfdHlwZSgpKTsgCisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmc+CitpbmxpbmUgY29uc3QgQXJnJiB1bmxhbWJkYShjb25zdCBBcmcmIGEpIHsgcmV0dXJuIGE7IH0KKwordGVtcGxhdGUgPGNsYXNzIEFyZz4KK2lubGluZSBjb25zdCBub25fbGFtYmRhX2Z1bmN0b3I8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+IAordW5sYW1iZGEoY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgYSkKK3sKKyAgcmV0dXJuIG5vbl9sYW1iZGFfZnVuY3RvcjxsYW1iZGFfZnVuY3RvcjxBcmc+ID4oYSk7Cit9CisKKyAgLy8gRHVlIHRvIGEgbGFuZ3VhZ2UgcmVzdHJpY3Rpb24sIGxhbWJkYSBmdW5jdG9ycyBjYW5ub3QgYmUgbWFkZSB0bworICAvLyBhY2NlcHQgbm9uLWNvbnN0IHJ2YWx1ZSBhcmd1bWVudHMuIFVzdWFsbHkgaXRlcmF0b3JzIGRvIG5vdCByZXR1cm4gCisgIC8vIHRlbXBvcmFyaWVzLCBidXQgc29tZXRpbWVzIHRoZXkgZG8uIFRoYXQncyB3aHkgYSB3b3JrYXJvdW5kIGlzIHByb3ZpZGVkLgorICAvLyBOb3RlLCB0aGF0IHRoaXMgcG90ZW50aWFsbHkgYnJlYWtzIGNvbnN0IGNvcnJlY3RuZXNzLCBzbyBiZSBjYXJlZnVsIQorCisvLyBhbnkgbGFtYmRhIGZ1bmN0b3IgY2FuIGJlIHR1cm5lZCBpbnRvIGEgY29uc3RfaW5jb3JyZWN0X2xhbWJkYV9mdW5jdG9yCisvLyBUaGUgb3BlcmF0b3IoKSB0YWtlcyBhcmd1bWVudHMgYXMgY29uc3RzIGFuZCB0aGVuIGNhc3RzIGNvbnN0bmVzcworLy8gYXdheS4gU28gdGhpcyBicmVha3MgY29uc3QgY29ycmVjdG5lc3MhISEgYnV0IGlzIGEgbmVjZXNzYXJ5IHdvcmthcm91bmQKKy8vIGluIHNvbWUgY2FzZXMgZHVlIHRvIGxhbmd1YWdlIGxpbWl0YXRpb25zLgorLy8gTm90ZSwgdGhhdCB0aGlzIGlzIG5vdCBhIGxhbWJkYV9mdW5jdG9yIGFueW1vcmUsIHNvIGl0IGNhbiBub3QgYmUgdXNlZAorLy8gYXMgYSBzdWIgbGFtYmRhIGV4cHJlc3Npb24uCisKK3RlbXBsYXRlIDxjbGFzcyBMYW1iZGFGdW5jdG9yPgorc3RydWN0IGNvbnN0X2luY29ycmVjdF9sYW1iZGFfZnVuY3RvciB7CisgIExhbWJkYUZ1bmN0b3IgbGY7CitwdWJsaWM6CisKKyAgZXhwbGljaXQgY29uc3RfaW5jb3JyZWN0X2xhbWJkYV9mdW5jdG9yKGNvbnN0IExhbWJkYUZ1bmN0b3ImIGEpIDogbGYoYSkge30KKworICB0ZW1wbGF0ZSA8Y2xhc3MgU2lnQXJncz4gc3RydWN0IHNpZyB7CisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgTGFtYmRhRnVuY3Rvcjo6aW5oZXJpdGVkOjp0ZW1wbGF0ZSAKKyAgICAgICAgc2lnPHR5cGVuYW1lIFNpZ0FyZ3M6OnRhaWxfdHlwZT46OnR5cGUgdHlwZTsKKyAgfTsKKworICAvLyBUaGUgbnVsbGFyeSBjYXNlIGlzIG5vdCBuZWVkZWQgKG5vIGFyZ3VtZW50cywgbm8gcGFyYW1ldGVyIHR5cGUgcHJvYmxlbXMpCisKKyAgdGVtcGxhdGU8Y2xhc3MgQT4KKyAgdHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IGNvbnN0X2luY29ycmVjdF9sYW1iZGFfZnVuY3RvciwgQSY+ID46OnR5cGUKKyAgb3BlcmF0b3IoKShjb25zdCBBJiBhKSBjb25zdCB7CisgICAgcmV0dXJuIGxmLnRlbXBsYXRlIGNhbGw8dHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IGNvbnN0X2luY29ycmVjdF9sYW1iZGFfZnVuY3RvciwgQSY+ID46OnR5cGUgPihjb25zdF9jYXN0PEEmPihhKSwgY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7CisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPgorICB0eXBlbmFtZSBzaWc8dHVwbGU8Y29uc3QgY29uc3RfaW5jb3JyZWN0X2xhbWJkYV9mdW5jdG9yLCBBJiwgQiY+ID46OnR5cGUKKyAgb3BlcmF0b3IoKShjb25zdCBBJiBhLCBjb25zdCBCJiBiKSBjb25zdCB7CisgICAgcmV0dXJuIGxmLnRlbXBsYXRlIGNhbGw8dHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IGNvbnN0X2luY29ycmVjdF9sYW1iZGFfZnVuY3RvciwgQSYsIEImPiA+Ojp0eXBlID4oY29uc3RfY2FzdDxBJj4oYSksIGNvbnN0X2Nhc3Q8QiY+KGIpLCBjbnVsbF90eXBlKCksIGNudWxsX3R5cGUoKSk7CisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCLCBjbGFzcyBDPgorICB0eXBlbmFtZSBzaWc8dHVwbGU8Y29uc3QgY29uc3RfaW5jb3JyZWN0X2xhbWJkYV9mdW5jdG9yLCBBJiwgQiYsIEMmPiA+Ojp0eXBlCisgIG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYiwgY29uc3QgQyYgYykgY29uc3QgeworICAgIHJldHVybiBsZi50ZW1wbGF0ZSBjYWxsPHR5cGVuYW1lIHNpZzx0dXBsZTxjb25zdCBjb25zdF9pbmNvcnJlY3RfbGFtYmRhX2Z1bmN0b3IsIEEmLCBCJiwgQyY+ID46OnR5cGU+KGNvbnN0X2Nhc3Q8QSY+KGEpLCBjb25zdF9jYXN0PEImPihiKSwgY29uc3RfY2FzdDxDJj4oYyksIGNudWxsX3R5cGUoKSk7CisgIH0KK307CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gYW55IGxhbWJkYSBmdW5jdG9yIGNhbiBiZSB0dXJuZWQgaW50byBhIGNvbnN0X3BhcmFtZXRlcl9sYW1iZGFfZnVuY3RvcgorLy8gVGhlIG9wZXJhdG9yKCkgdGFrZXMgYXJndW1lbnRzIGFzIGNvbnN0LgorLy8gVGhpcyBpcyB1c2VmdWwgaWYgbGFtYmRhIGZ1bmN0b3JzIGFyZSBjYWxsZWQgd2l0aCBub24tY29uc3QgcnZhbHVlcy4KKy8vIE5vdGUsIHRoYXQgdGhpcyBpcyBub3QgYSBsYW1iZGFfZnVuY3RvciBhbnltb3JlLCBzbyBpdCBjYW4gbm90IGJlIHVzZWQKKy8vIGFzIGEgc3ViIGxhbWJkYSBleHByZXNzaW9uLgorCit0ZW1wbGF0ZSA8Y2xhc3MgTGFtYmRhRnVuY3Rvcj4KK3N0cnVjdCBjb25zdF9wYXJhbWV0ZXJfbGFtYmRhX2Z1bmN0b3IgeworICBMYW1iZGFGdW5jdG9yIGxmOworcHVibGljOgorCisgIGV4cGxpY2l0IGNvbnN0X3BhcmFtZXRlcl9sYW1iZGFfZnVuY3Rvcihjb25zdCBMYW1iZGFGdW5jdG9yJiBhKSA6IGxmKGEpIHt9CisKKyAgdGVtcGxhdGUgPGNsYXNzIFNpZ0FyZ3M+IHN0cnVjdCBzaWcgeworICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgIExhbWJkYUZ1bmN0b3I6OmluaGVyaXRlZDo6dGVtcGxhdGUgCisgICAgICAgIHNpZzx0eXBlbmFtZSBTaWdBcmdzOjp0YWlsX3R5cGU+Ojp0eXBlIHR5cGU7CisgIH07CisKKyAgLy8gVGhlIG51bGxhcnkgY2FzZSBpcyBub3QgbmVlZGVkOiBubyBhcmd1bWVudHMsIG5vIGNvbnN0bmVzcyBwcm9ibGVtcy4KKworICB0ZW1wbGF0ZTxjbGFzcyBBPgorICB0eXBlbmFtZSBzaWc8dHVwbGU8Y29uc3QgY29uc3RfcGFyYW1ldGVyX2xhbWJkYV9mdW5jdG9yLCBjb25zdCBBJj4gPjo6dHlwZQorICBvcGVyYXRvcigpKGNvbnN0IEEmIGEpIGNvbnN0IHsKKyAgICByZXR1cm4gbGYudGVtcGxhdGUgY2FsbDx0eXBlbmFtZSBzaWc8dHVwbGU8Y29uc3QgY29uc3RfcGFyYW1ldGVyX2xhbWJkYV9mdW5jdG9yLCBjb25zdCBBJj4gPjo6dHlwZSA+KGEsIGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpLCBjbnVsbF90eXBlKCkpOworICB9CisKKyAgdGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4KKyAgdHlwZW5hbWUgc2lnPHR1cGxlPGNvbnN0IGNvbnN0X3BhcmFtZXRlcl9sYW1iZGFfZnVuY3RvciwgY29uc3QgQSYsIGNvbnN0IEImPiA+Ojp0eXBlCisgIG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgY29uc3QgeworICAgIHJldHVybiBsZi50ZW1wbGF0ZSBjYWxsPHR5cGVuYW1lIHNpZzx0dXBsZTxjb25zdCBjb25zdF9wYXJhbWV0ZXJfbGFtYmRhX2Z1bmN0b3IsIGNvbnN0IEEmLCBjb25zdCBCJj4gPjo6dHlwZSA+KGEsIGIsIGNudWxsX3R5cGUoKSwgY251bGxfdHlwZSgpKTsKKyAgfQorCisgIHRlbXBsYXRlPGNsYXNzIEEsIGNsYXNzIEIsIGNsYXNzIEM+CisgIHR5cGVuYW1lIHNpZzx0dXBsZTxjb25zdCBjb25zdF9wYXJhbWV0ZXJfbGFtYmRhX2Z1bmN0b3IsIGNvbnN0IEEmLCBjb25zdCBCJiwgY29uc3QgQyY+Cis+Ojp0eXBlCisgIG9wZXJhdG9yKCkoY29uc3QgQSYgYSwgY29uc3QgQiYgYiwgY29uc3QgQyYgYykgY29uc3QgeworICAgIHJldHVybiBsZi50ZW1wbGF0ZSBjYWxsPHR5cGVuYW1lIHNpZzx0dXBsZTxjb25zdCBjb25zdF9wYXJhbWV0ZXJfbGFtYmRhX2Z1bmN0b3IsIGNvbnN0IEEmLCBjb25zdCBCJiwgY29uc3QgQyY+ID46OnR5cGU+KGEsIGIsIGMsIGNudWxsX3R5cGUoKSk7CisgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBBcmc+CitpbmxpbmUgY29uc3QgY29uc3RfaW5jb3JyZWN0X2xhbWJkYV9mdW5jdG9yPGxhbWJkYV9mdW5jdG9yPEFyZz4gPgorYnJlYWtfY29uc3QoY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgbGYpCit7CisgIHJldHVybiBjb25zdF9pbmNvcnJlY3RfbGFtYmRhX2Z1bmN0b3I8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+KGxmKTsKK30KKworCit0ZW1wbGF0ZSA8Y2xhc3MgQXJnPgoraW5saW5lIGNvbnN0IGNvbnN0X3BhcmFtZXRlcl9sYW1iZGFfZnVuY3RvcjxsYW1iZGFfZnVuY3RvcjxBcmc+ID4KK2NvbnN0X3BhcmFtZXRlcnMoY29uc3QgbGFtYmRhX2Z1bmN0b3I8QXJnPiYgbGYpCit7CisgIHJldHVybiBjb25zdF9wYXJhbWV0ZXJfbGFtYmRhX2Z1bmN0b3I8bGFtYmRhX2Z1bmN0b3I8QXJnPiA+KGxmKTsKK30KKworLy8gbWFrZSB2b2lkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gbWFrZV92b2lkKCB4ICkgdHVybnMgYSBsYW1iZGEgZnVuY3RvciB4IHdpdGggc29tZSByZXR1cm4gdHlwZSB5IGludG8KKy8vIGFub3RoZXIgbGFtYmRhIGZ1bmN0b3IsIHdoaWNoIGhhcyBhIHZvaWQgcmV0dXJuIHR5cGUKKy8vIHdoZW4gY2FsbGVkLCB0aGUgb3JpZ2luYWwgcmV0dXJuIHR5cGUgaXMgZGlzY2FyZGVkCisKKy8vIHdlIHVzZSB0aGlzIGFjdGlvbi4gVGhlIGFjdGlvbiBjbGFzcyB3aWxsIGJlIGNhbGxlZCwgd2hpY2ggbWVhbnMgdGhhdAorLy8gdGhlIHdyYXBwZWQgbGFtYmRhIGZ1bmN0b3IgaXMgZXZhbHVhdGVkLCBidXQgd2UganVzdCBkb24ndCBkbyBhbnl0aGluZworLy8gd2l0aCB0aGUgcmVzdWx0Lgorc3RydWN0IHZvaWRpZmllcl9hY3Rpb24geworICB0ZW1wbGF0ZTxjbGFzcyBSZXQsIGNsYXNzIEE+IHN0YXRpYyB2b2lkIGFwcGx5KEEmKSB7fQorfTsKKwordGVtcGxhdGU8Y2xhc3MgQXJncz4gc3RydWN0IHJldHVybl90eXBlX048dm9pZGlmaWVyX2FjdGlvbiwgQXJncz4geworICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEFyZzE+CitpbmxpbmUgY29uc3QgCitsYW1iZGFfZnVuY3RvcjwKKyAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICBhY3Rpb248MSwgdm9pZGlmaWVyX2FjdGlvbj4sCisgICAgdHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnMT4gPgorICA+IAorPiAKK21ha2Vfdm9pZChjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmcxPiYgYTEpIHsgCityZXR1cm4gCisgICAgbGFtYmRhX2Z1bmN0b3JfYmFzZTwKKyAgICAgIGFjdGlvbjwxLCB2b2lkaWZpZXJfYWN0aW9uPiwKKyAgICAgIHR1cGxlPGxhbWJkYV9mdW5jdG9yPEFyZzE+ID4KKyAgICA+IAorICAodHVwbGU8bGFtYmRhX2Z1bmN0b3I8QXJnMT4gPiAoYTEpKTsKK30KKworLy8gZm9yIG5vbi1sYW1iZGEgZnVuY3RvcnMsIG1ha2Vfdm9pZCBkb2VzIG5vdGhpbmcgCisvLyAodGhlIGFyZ3VtZW50IGdldHMgZXZhbHVhdGVkIGltbWVkaWF0ZWx5KQorCit0ZW1wbGF0ZTxjbGFzcyBBcmcxPgoraW5saW5lIGNvbnN0IAorbGFtYmRhX2Z1bmN0b3I8CisgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8ZG9fbm90aGluZ19hY3Rpb24sIG51bGxfdHlwZT4gCis+IAorbWFrZV92b2lkKGNvbnN0IEFyZzEmKSB7IAorcmV0dXJuIAorICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8ZG9fbm90aGluZ19hY3Rpb24sIG51bGxfdHlwZT4oKTsKK30KKworLy8gc3RkX2Z1bmN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gIFRoZSBTVEwgdXNlcyB0aGUgcmVzdWx0X3R5cGUgdHlwZWRlZiBhcyB0aGUgY29udmVudGlvbiB0byBsZXQgYmluZGVycyBrbm93CisvLyAgdGhlIHJldHVybiB0eXBlIG9mIGEgZnVuY3Rpb24gb2JqZWN0LiAKKy8vICBMTCB1c2VzIHRoZSBzaWcgdGVtcGxhdGUuCisvLyAgVG8gbGV0IExMIGtub3cgdGhhdCB0aGUgZnVuY3Rpb24gb2JqZWN0IGhhcyB0aGUgcmVzdWx0X3R5cGUgdHlwZWRlZiAKKy8vICBkZWZpbmVkLCBpdCBjYW4gYmUgd3JhcHBlZCB3aXRoIHRoZSBzdGRfZnVuY3RvciBmdW5jdGlvbi4KKworCisvLyBKdXN0IGluaGVyaXQgZm9ybSB0aGUgdGVtcGxhdGUgcGFyYW1ldGVyICh0aGUgc3RhbmRhcmQgZnVuY3RvciksIAorLy8gYW5kIHByb3ZpZGUgYSBzaWcgdGVtcGxhdGUuIFNvIHdlIGhhdmUgYSBjbGFzcyB3aGljaCBpcyBzdGlsbCB0aGUKKy8vIHNhbWUgZnVuY3RvciArIHRoZSBzaWcgdGVtcGxhdGUuCisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgcmVzdWx0X3R5cGVfdG9fc2lnIDogcHVibGljIFQgeworICB0ZW1wbGF0ZTxjbGFzcyBBcmdzPiBzdHJ1Y3Qgc2lnIHsgdHlwZWRlZiB0eXBlbmFtZSBUOjpyZXN1bHRfdHlwZSB0eXBlOyB9OworICByZXN1bHRfdHlwZV90b19zaWcoY29uc3QgVCYgdCkgOiBUKHQpIHt9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBGPgoraW5saW5lIHJlc3VsdF90eXBlX3RvX3NpZzxGPiBzdGRfZnVuY3Rvcihjb25zdCBGJiBmKSB7IHJldHVybiBmOyB9CisKKworfSAvLyBuYW1lc3BhY2UgbGFtYmRhIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9yZXR1cm5fdHlwZV90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL3JldHVybl90eXBlX3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg3NzFiNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9yZXR1cm5fdHlwZV90cmFpdHMuaHBwCkBAIC0wLDAgKzEsMjgyIEBACisvLyAgcmV0dXJuX3R5cGVfdHJhaXRzLmhwcCAtLSBCb29zdCBMYW1iZGEgTGlicmFyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB3d3cuYm9vc3Qub3JnCisKKworI2lmbmRlZiBCT09TVF9MQU1CREFfUkVUVVJOX1RZUEVfVFJBSVRTX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfUkVUVVJOX1RZUEVfVFJBSVRTX0hQUAorCisjaW5jbHVkZSAibmRuYm9vc3QvbXBsL2hhc194eHguaHBwIgorCisjaW5jbHVkZSA8Y3N0ZGRlZj4gLy8gbmVlZGVkIGZvciB0aGUgcHRyZGlmZl90CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorbmFtZXNwYWNlIGxhbWJkYSB7CisKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kOwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjsKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90OworCisvLyBNdWNoIG9mIHRoZSB0eXBlIGRlZHVjdGlvbiBjb2RlIGZvciBzdGFuZGFyZCBhcml0aG1ldGljIHR5cGVzIAorLy8gZnJvbSBHYXJ5IFBvd2VsbAorCisgIC8vIGRpZmZlcmVudCBhcml0aWVzOgordGVtcGxhdGUgPGNsYXNzIEFjdCwgY2xhc3MgQTE+IHN0cnVjdCByZXR1cm5fdHlwZV8xOyAvLyAxLWFyeSBhY3Rpb25zCit0ZW1wbGF0ZSA8Y2xhc3MgQWN0LCBjbGFzcyBBMSwgY2xhc3MgQTI+IHN0cnVjdCByZXR1cm5fdHlwZV8yOyAvLyAyLWFyeQordGVtcGxhdGUgPGNsYXNzIEFjdCwgY2xhc3MgQXJncz4gc3RydWN0IHJldHVybl90eXBlX047IC8vID4zLSBhcnkKKwordGVtcGxhdGUgPGNsYXNzIEFjdCwgY2xhc3MgQTE+IHN0cnVjdCByZXR1cm5fdHlwZV8xX3Byb3Q7Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0LCBjbGFzcyBBMSwgY2xhc3MgQTI+IHN0cnVjdCByZXR1cm5fdHlwZV8yX3Byb3Q7IC8vIDItYXJ5Cit0ZW1wbGF0ZSA8Y2xhc3MgQWN0LCBjbGFzcyBBMT4gc3RydWN0IHJldHVybl90eXBlX05fcHJvdDsgLy8gPjMtYXJ5CisKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlPGNsYXNzPiBjbGFzcyByZXR1cm5fdHlwZV9kZWR1Y3Rpb25fZmFpbHVyZSB7fTsKKworICAvLyBJbiBzb21lIGNhc2VzIHJldHVybiB0eXBlIGRlZHVjdGlvbiBzaG91bGQgZmFpbCAoYW4gaW52YWxpZCBsYW1iZGEgCisgIC8vIGV4cHJlc3Npb24pLiBTb21ldGltZXMgdGhlIGxhbWJkYSBleHByZXNzaW9uIGNhbiBiZSBvaywgdGhlIHJldHVybiB0eXBlCisgIC8vIGp1c3QgaXMgbm90IGRlZHVjaWJsZSAodXNlciBkZWZpbmVkIG9wZXJhdG9ycykuIFRoZW4gcmV0dXJuIHR5cGUgZGVkdWN0aW9uCisgIC8vIHNob3VsZCBuZXZlciBiZSBlbnRlcmVkIGF0IGFsbCwgYW5kIHRoZSB1c2Ugb2YgcmV0PD4gZG9lcyB0aGlzLgorICAvLyBIb3dldmVyLCBmb3IgbnVsbGFyeSBsYW1iZGEgZnVuY3RvcnMsIHJldHVybiB0eXBlIGRlZHVjdGlvbiBpcyBhbHdheXMKKyAgLy8gZW50ZXJlZCwgYW5kIHRoZXJlIHNlZW1zIHRvIGJlIG5vIHdheSBhcm91bmQgdGhpcy4KKworICAvLyAodGhlIHJldHVybiB0eXBlIGlzIHBhcnQgb2YgdGhlIHByb3RvdHlwZSBvZiB0aGUgbm9uLXRlbXBsYXRlCisgIC8vIG9wZXJhdG9yKCkoKS4gVGhlIHByb3RvdHlwZSBpcyBpbnN0YW50aWF0ZWQsIGV2ZW4gdGhvdWdoIHRoZSBib2R5IAorICAvLyBpcyBub3QuKSAKKyAKKyAgLy8gU28sIGluIHRoZSBjYXNlIHRoZSByZXR1cm4gdHlwZSBkZWR1Y3Rpb24gc2hvdWxkIGZhaWwsIGl0IHNob3VsZCBub3QKKyAgLy8gZmFpbCBkaXJlY3RseSwgYnV0IHJhdGhlciByZXN1bHQgaW4gYSB2YWxpZCBidXQgd3JvbmcgcmV0dXJuIHR5cGUsCisgIC8vIGNhdXNpbmcgYSBjb21waWxlIHRpbWUgZXJyb3Igb25seSBpZiB0aGUgZnVuY3Rpb24gaXMgcmVhbGx5IGNhbGxlZC4KKworCisKK30gLy8gZW5kIGRldGFpbAorCisKKworLy8gcmV0dXJuX3R5cGVfWF9wcm90IGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRoZXNlIGNsYXNzZXMgYXJlIHRoZSBmaXJzdCBsYXllciB0aGF0IGdldHMgaW5zdGFudGlhdGVkIGZyb20gdGhlIAorLy8gbGFtYmRhX2Z1bmN0b3JfYmFzZSBzaWcgdGVtcGxhdGVzLiBJdCB3aWxsIGNoZWNrIHdoZXRoZXIgCisvLyB0aGUgYWN0aW9uIGlzIHByb3RlY3RhYmxlIGFuZCBvbmUgb2YgYXJndW1lbnRzIGlzICJwcm90ZWN0ZWQiIG9yIGl0cworLy8gZXZhbHVhdGlvbiB3aWxsIG90aGVyd2lzZSByZXN1bHQgaW4gYW5vdGhlciBsYW1iZGEgZnVuY3Rvci4KKy8vIElmIHRoaXMgaXMgYSBjYXNlLCB0aGUgcmVzdWx0IHR5cGUgd2lsbCBiZSBhbm90aGVyIGxhbWJkYSBmdW5jdG9yLgorCisvLyBUaGUgYXJndW1lbnRzIGFyZSBhbHdheXMgbm9uLXJlZmVyZW5jZSB0eXBlcywgZXhjZXB0IGZvciBjb21tYSBhY3Rpb24KKy8vIHdoZXJlIHRoZSByaWdodCBhcmd1bWVudCBjYW4gYmUgYSByZWZlcmVuY2UgdG9vLiBUaGlzIGlzIGJlY2F1c2UgaXQgCisvLyBtYXR0ZXJzIChpbiB0aGUgYnVpbHRpbiBjYXNlKSB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiBsdmFsdWUgb3IgCisvLyBydmFsdWU6IGludCBpOyBpLCAxIC0+IHJ2YWx1ZTsgMSwgaSAtPiBsdmFsdWUKKwordGVtcGxhdGUgPGNsYXNzIEFjdCwgY2xhc3MgQT4gc3RydWN0IHJldHVybl90eXBlXzFfcHJvdCB7CitwdWJsaWM6CisgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgZGV0YWlsOjpJRjwKKyAgLy8gICAgICBpc19wcm90ZWN0YWJsZTxBY3Q+Ojp2YWx1ZSAmJiBpc19sYW1iZGFfZnVuY3RvcjxBPjo6dmFsdWUsCisgICAgICBpY2VfYW5kPGlzX3Byb3RlY3RhYmxlPEFjdD46OnZhbHVlLCBpc19sYW1iZGFfZnVuY3RvcjxBPjo6dmFsdWU+Ojp2YWx1ZSwKKyAgICAgIGxhbWJkYV9mdW5jdG9yPAorICAgICAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPCAKKyAgICAgICAgICBBY3QsIAorICAgICAgICAgIHR1cGxlPHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8QT46OnR5cGU+CisgICAgICAgID4KKyAgICAgID4sCisgICAgICB0eXBlbmFtZSByZXR1cm5fdHlwZV8xPEFjdCwgQT46OnR5cGUKKyAgICA+OjpSRVQgdHlwZTsgIAorfTsKKworICAvLyB0YWtlIGNhcmUgb2YgdGhlIHVuYXZvaWRhYmxlIGluc3RhbnRpYXRpb24gZm9yIG51bGxhcnkgY2FzZQordGVtcGxhdGU8Y2xhc3MgQWN0PiBzdHJ1Y3QgcmV0dXJuX3R5cGVfMV9wcm90PEFjdCwgbnVsbF90eXBlPiB7CisgIHR5cGVkZWYgbnVsbF90eXBlIHR5cGU7Cit9OworIAorLy8gVW5hcnkgYWN0aW9ucyAocmVzdWx0IGZyb20gdW5hcnkgb3BlcmF0b3JzKQorLy8gZG8gbm90IGhhdmUgYSBkZWZhdWx0IHJldHVybiB0eXBlLgordGVtcGxhdGU8Y2xhc3MgQWN0LCBjbGFzcyBBPiBzdHJ1Y3QgcmV0dXJuX3R5cGVfMSB7IAorICAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICAgZGV0YWlsOjpyZXR1cm5fdHlwZV9kZWR1Y3Rpb25fZmFpbHVyZTxyZXR1cm5fdHlwZV8xPiB0eXBlOworfTsKKworCituYW1lc3BhY2UgZGV0YWlsIHsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgY2xhc3MgcHJvdGVjdF9jb252ZXJzaW9uIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgbm9uX3JlZl9UOworICAgIHB1YmxpYzoKKworICAvLyBhZGQgY29uc3QgdG8gcnZhbHVlcywgc28gdGhhdCBhbGwgcnZhbHVlcyBhcmUgc3RvcmVkIGFzIGNvbnN0IGluIAorICAvLyB0aGUgYXJncyB0dXBsZQorICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpJRl90eXBlPAorLy8gICAgICBuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSAmJiAhbmRuYm9vc3Q6OmlzX2NvbnN0PG5vbl9yZWZfVD46OnZhbHVlLAorICAgICAgaWNlX2FuZDxuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgaWNlX25vdDxuZG5ib29zdDo6aXNfY29uc3Q8bm9uX3JlZl9UPjo6dmFsdWU+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgZGV0YWlsOjppZGVudGl0eV9tYXBwaW5nPFQ+LAorICAgICAgY29uc3RfY29weV9hcmd1bWVudDxub25fcmVmX1Q+IC8vIGhhbmRsZXMgZnVudGlvbiBhbmQgYXJyYXkgCisgICAgPjo6dHlwZSB0eXBlOyAgICAgICAgICAgICAgICAgICAgICAvLyB0eXBlcyBjb3JyZWN0bHkKKyAgfTsKKworfSAvLyBlbmQgZGV0YWlsCisKK3RlbXBsYXRlIDxjbGFzcyBBY3QsIGNsYXNzIEEsIGNsYXNzIEI+IHN0cnVjdCByZXR1cm5fdHlwZV8yX3Byb3QgeworCisvLyBleHBlcmltZW50YWwgZmVhdHVyZQorICAvLyBXZSBtYXkgaGF2ZSBhIGxhbWJkYSBmdW5jdG9yIGFzIGEgcmVzdWx0IHR5cGUgb2YgYSBzdWJleHByZXNzaW9uIAorICAvLyAoaWYgcHJvdGVjdCkgaGFzICBiZWVuIHVzZWQuCisgIC8vIFRodXMsIGlmIG9uZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGVzIGlzIGEgbGFtYmRhIGZ1bmN0b3IsIHRoZSByZXN1bHQKKyAgLy8gaXMgYSBsYW1iZGEgZnVuY3RvciBhcyB3ZWxsLiAKKyAgLy8gV2UgbmVlZCB0byBtYWtlIGEgY29uc2VydmF0aXZlIGNob2lzZSBoZXJlLgorICAvLyBUaGUgcmVzdWx0aW5nIGxhbWJkYSBmdW5jdG9yIHN0b3JlcyBhbGwgY29uc3QgcmVmZXJlbmNlIGFyZ3VtZW50cyBhcworICAvLyBjb25zdCBjb3BpZXMuIFJlZmVyZW5jZXMgdG8gbm9uLWNvbnN0IGFyZSBzdG9yZWQgYXMgc3VjaC4KKyAgLy8gU28gaWYgdGhlIHNvdXJjZSBvZiB0aGUgYXJndW1lbnQgaXMgYSBjb25zdCBvcGVuIGFyZ3VtZW50LCBhIGJvdW5kCisgIC8vIGFyZ3VtZW50IHN0b3JlZCBhcyBhIGNvbnN0IHJlZmVyZW5jZSwgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgYSAKKyAgLy8gY29uc3QgcmVmZXJlbmNlLCB0aGF0IGluZm9ybWF0aW9uIGlzIGxvc3QuIFRoZXJlIGlzIG5vIHdheSBvZiAKKyAgLy8gdGVsbGluZyBhcGFydCAncmVhbCBjb25zdCByZWZlcmVuY2VzJyBmcm9tIGp1c3QgJ0xMIGludGVybmFsCisgIC8vIGNvbnN0IHJlZmVyZW5jZXMnIChvciBpdCB3b3VsZCBiZSByZWFsbHkgaGFyZCkKKworICAvLyBUaGUgcmV0dXJuIHR5cGUgaXMgYSBzdWJjbGFzcyBvZiBsYW1iZGFfZnVuY3Rvciwgd2hpY2ggaGFzIGEgY29udmVydGluZyAKKyAgLy8gY29weSBjb25zdHJ1Y3Rvci4gSXQgY2FuIGNvcHkgYW55IGxhbWJkYSBmdW5jdG9yLCB0aGF0IGhhcyB0aGUgc2FtZSAKKyAgLy8gYWN0aW9uIHR5cGUgYW5kIGNvZGUsIGFuZCBhIGNvcHkgY29tcGF0aWJsZSBhcmd1bWVudCB0dXBsZS4KKworCisgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8QT46OnR5cGUgbm9uX3JlZl9BOworICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPEI+Ojp0eXBlIG5vbl9yZWZfQjsKKwordHlwZWRlZiB0eXBlbmFtZSAKKyAgZGV0YWlsOjpJRjwKKy8vICAgIGlzX3Byb3RlY3RhYmxlPEFjdD46OnZhbHVlICYmCisvLyAgICAgIChpc19sYW1iZGFfZnVuY3RvcjxBPjo6dmFsdWUgfHwgaXNfbGFtYmRhX2Z1bmN0b3I8Qj46OnZhbHVlKSwKKyAgICBpY2VfYW5kPGlzX3Byb3RlY3RhYmxlPEFjdD46OnZhbHVlLAorICAgICAgICAgICAgaWNlX29yPGlzX2xhbWJkYV9mdW5jdG9yPEE+Ojp2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgaXNfbGFtYmRhX2Z1bmN0b3I8Qj46OnZhbHVlPjo6dmFsdWU+Ojp2YWx1ZSwKKyAgICBsYW1iZGFfZnVuY3RvcjwKKyAgICAgIGxhbWJkYV9mdW5jdG9yX2Jhc2U8IAorICAgICAgICBBY3QsIAorICAgICAgICB0dXBsZTx0eXBlbmFtZSBkZXRhaWw6OnByb3RlY3RfY29udmVyc2lvbjxBPjo6dHlwZSwgCisgICAgICAgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6cHJvdGVjdF9jb252ZXJzaW9uPEI+Ojp0eXBlPgorICAgICAgPgorICAgID4sCisgICAgdHlwZW5hbWUgcmV0dXJuX3R5cGVfMjxBY3QsIG5vbl9yZWZfQSwgbm9uX3JlZl9CPjo6dHlwZQorICA+OjpSRVQgdHlwZTsKK307CisKKyAgLy8gdGFrZSBjYXJlIG9mIHRoZSB1bmF2b2lkYWJsZSBpbnN0YW50aWF0aW9uIGZvciBudWxsYXJ5IGNhc2UKK3RlbXBsYXRlPGNsYXNzIEFjdD4gc3RydWN0IHJldHVybl90eXBlXzJfcHJvdDxBY3QsIG51bGxfdHlwZSwgbnVsbF90eXBlPiB7CisgIHR5cGVkZWYgbnVsbF90eXBlIHR5cGU7Cit9OworICAvLyB0YWtlIGNhcmUgb2YgdGhlIHVuYXZvaWRhYmxlIGluc3RhbnRpYXRpb24gZm9yIG51bGxhcnkgY2FzZQordGVtcGxhdGU8Y2xhc3MgQWN0LCBjbGFzcyBPdGhlcj4gc3RydWN0IHJldHVybl90eXBlXzJfcHJvdDxBY3QsIE90aGVyLCBudWxsX3R5cGU+IHsKKyAgdHlwZWRlZiBudWxsX3R5cGUgdHlwZTsKK307CisgIC8vIHRha2UgY2FyZSBvZiB0aGUgdW5hdm9pZGFibGUgaW5zdGFudGlhdGlvbiBmb3IgbnVsbGFyeSBjYXNlCit0ZW1wbGF0ZTxjbGFzcyBBY3QsIGNsYXNzIE90aGVyPiBzdHJ1Y3QgcmV0dXJuX3R5cGVfMl9wcm90PEFjdCwgbnVsbF90eXBlLCBPdGhlcj4geworICB0eXBlZGVmIG51bGxfdHlwZSB0eXBlOworfTsKKworICAvLyBjb21tYSBpcyBhIHNwZWNpYWwgY2FzZSwgYXMgdGhlIHVzZXIgZGVmaW5lZCBvcGVyYXRvciBjYW4gcmV0dXJuCisgIC8vIGFuIGx2YWx1ZSAocmVmZXJlbmNlKSB0b28sIGhlbmNlIGl0IG11c3QgYmUgaGFuZGxlZCBhdCB0aGlzIGxldmVsLgordGVtcGxhdGU8Y2xhc3MgQSwgY2xhc3MgQj4gCitzdHJ1Y3QgcmV0dXJuX3R5cGVfMl9jb21tYQoreworICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPEE+Ojp0eXBlIG5vbl9yZWZfQTsKKyAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxCPjo6dHlwZSBub25fcmVmX0I7CisKK3R5cGVkZWYgdHlwZW5hbWUgCisgIGRldGFpbDo6SUY8CisvLyAgaXNfcHJvdGVjdGFibGU8b3RoZXJfYWN0aW9uPGNvbW1hX2FjdGlvbj4gPjo6dmFsdWUgJiYgLy8gaXQgaXMgcHJvdGVjdGFibGUKKy8vICAoaXNfbGFtYmRhX2Z1bmN0b3I8QT46OnZhbHVlIHx8IGlzX2xhbWJkYV9mdW5jdG9yPEI+Ojp2YWx1ZSksCisgICAgaWNlX2FuZDxpc19wcm90ZWN0YWJsZTxvdGhlcl9hY3Rpb248Y29tbWFfYWN0aW9uPiA+Ojp2YWx1ZSwgLy8gaXQgaXMgcHJvdGVjdGFibGUKKyAgICAgICAgICAgIGljZV9vcjxpc19sYW1iZGFfZnVuY3RvcjxBPjo6dmFsdWUsIAorICAgICAgICAgICAgICAgICAgIGlzX2xhbWJkYV9mdW5jdG9yPEI+Ojp2YWx1ZT46OnZhbHVlPjo6dmFsdWUsCisgICAgbGFtYmRhX2Z1bmN0b3I8CisgICAgICBsYW1iZGFfZnVuY3Rvcl9iYXNlPCAKKyAgICAgICAgb3RoZXJfYWN0aW9uPGNvbW1hX2FjdGlvbj4sIAorICAgICAgICB0dXBsZTx0eXBlbmFtZSBkZXRhaWw6OnByb3RlY3RfY29udmVyc2lvbjxBPjo6dHlwZSwgCisgICAgICAgICAgICAgIHR5cGVuYW1lIGRldGFpbDo6cHJvdGVjdF9jb252ZXJzaW9uPEI+Ojp0eXBlPgorICAgICAgPgorICAgID4sCisgICAgdHlwZW5hbWUgCisgICAgICByZXR1cm5fdHlwZV8yPG90aGVyX2FjdGlvbjxjb21tYV9hY3Rpb24+LCBub25fcmVmX0EsIG5vbl9yZWZfQj46OnR5cGUKKyAgPjo6UkVUIHR5cGUxOworCisgICAvLyBpZiBubyB1c2VyIGRlZmluZWQgcmV0dXJuX3R5cGVfMiAob3IgcGxhaW5fcmV0dXJuX3R5cGVfMikgc3BlY2lhbGl6YXRpb24KKyAgLy8gbWF0Y2hlcywgdGhlbiByZXR1cm4gdGhlIHJpZ2h0aGFuZCBhcmd1bWVudAorICB0eXBlZGVmIHR5cGVuYW1lIAorICAgIGRldGFpbDo6SUY8CisgICAgICBuZG5ib29zdDo6aXNfc2FtZTx0eXBlMSwgZGV0YWlsOjp1bnNwZWNpZmllZD46OnZhbHVlLCAKKyAgICAgIEIsCisgICAgICB0eXBlMQorICAgID46OlJFVCB0eXBlOworCit9OworCisKKyAgLy8gY3VycmVudGx5IHRoZXJlIGFyZSBubyBwcm90ZWN0YWJsZSBhY3Rpb25zIHdpdGggPiAyIGFyZ3MKKwordGVtcGxhdGU8Y2xhc3MgQWN0LCBjbGFzcyBBcmdzPiBzdHJ1Y3QgcmV0dXJuX3R5cGVfTl9wcm90IHsKKyAgdHlwZWRlZiB0eXBlbmFtZSByZXR1cm5fdHlwZV9OPEFjdCwgQXJncz46OnR5cGUgdHlwZTsKK307CisKKyAgLy8gdGFrZSBjYXJlIG9mIHRoZSB1bmF2b2lkYWJsZSBpbnN0YW50aWF0aW9uIGZvciBudWxsYXJ5IGNhc2UKK3RlbXBsYXRlPGNsYXNzIEFjdD4gc3RydWN0IHJldHVybl90eXBlX05fcHJvdDxBY3QsIG51bGxfdHlwZT4geworICB0eXBlZGVmIG51bGxfdHlwZSB0eXBlOworfTsKKworLy8gaGFuZGxlIGRpZmZlcmVudCBraW5kIG9mIGFjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgLy8gdXNlIHRoZSByZXR1cm4gdHlwZSBnaXZlbiBpbiB0aGUgYmluZCBpbnZvY2F0aW9uIGFzIGJpbmQ8UmV0PiguLi4pCit0ZW1wbGF0ZTxpbnQgSSwgY2xhc3MgQXJncywgY2xhc3MgUmV0PiAKK3N0cnVjdCByZXR1cm5fdHlwZV9OPGZ1bmN0aW9uX2FjdGlvbjxJLCBSZXQ+LCBBcmdzPiB7IAorICB0eXBlZGVmIFJldCB0eXBlOworfTsKKworLy8gOjpyZXN1bHRfdHlwZSBzdXBwb3J0CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfREVGKHJlc3VsdF90eXBlKQorCit0ZW1wbGF0ZTxjbGFzcyBGPiBzdHJ1Y3QgZ2V0X3Jlc3VsdF90eXBlCit7CisgIHR5cGVkZWYgdHlwZW5hbWUgRjo6cmVzdWx0X3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEYsIGNsYXNzIEE+IHN0cnVjdCBnZXRfc2lnCit7CisgIHR5cGVkZWYgdHlwZW5hbWUgZnVuY3Rpb25fYWRhcHRvcjxGPjo6dGVtcGxhdGUgc2lnPEE+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworICAvLyBSZXQgaXMgZGV0YWlsOjp1bnNwZWNpZmllZCwgc28gdHJ5IHRvIGRlZHVjZSByZXR1cm4gdHlwZQordGVtcGxhdGU8aW50IEksIGNsYXNzIEFyZ3M+IAorc3RydWN0IHJldHVybl90eXBlX048ZnVuY3Rpb25fYWN0aW9uPEksIGRldGFpbDo6dW5zcGVjaWZpZWQ+LCBBcmdzID4geyAKKworICAvLyBpbiB0aGUgY2FzZSBvZiBmdW5jdGlvbiBhY3Rpb24sIHRoZSBmaXJzdCBlbGVtZW50IGluIEFyZ3MgaXMgCisgIC8vIHNvbWUgdHlwZSBvZiBmdW5jdGlvbgorICB0eXBlZGVmIHR5cGVuYW1lIEFyZ3M6OmhlYWRfdHlwZSBGdW5jOworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9hbmRfY3Y8RnVuYz46OnR5cGUgcGxhaW5fRnVuYzsKKworcHVibGljOiAKKyAgLy8gcGFzcyB0aGUgZnVuY3Rpb24gdG8gZnVuY3Rpb25fYWRhcHRvciwgYW5kIGdldCB0aGUgcmV0dXJuIHR5cGUgZnJvbSAKKyAgLy8gdGhhdAorICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6SUY8CisgICAgZGV0YWlsOjpoYXNfcmVzdWx0X3R5cGU8cGxhaW5fRnVuYz46OnZhbHVlLAorICAgIGRldGFpbDo6Z2V0X3Jlc3VsdF90eXBlPHBsYWluX0Z1bmM+LAorICAgIGRldGFpbDo6Z2V0X3NpZzxwbGFpbl9GdW5jLCBBcmdzPgorICA+OjpSRVQ6OnR5cGUgdHlwZTsKK307CisKKworfSAvLyBuYW1lc3BhY2UgbGFtYmRhCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKKworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9zZWxlY3RfZnVuY3Rpb25zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2RldGFpbC9zZWxlY3RfZnVuY3Rpb25zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjNlZjhhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9sYW1iZGEvZGV0YWlsL3NlbGVjdF9mdW5jdGlvbnMuaHBwCkBAIC0wLDAgKzEsNzQgQEAKKy8vIC0tIHNlbGVjdF9mdW5jdGlvbnMuaHBwIC0tIEJvb3N0IExhbWJkYSBMaWJyYXJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9TRUxFQ1RfRlVOQ1RJT05TX0hQUAorI2RlZmluZSBCT09TVF9MQU1CREFfU0VMRUNUX0ZVTkNUSU9OU19IUFAKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgCituYW1lc3BhY2UgbGFtYmRhIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCisKKy8vIHNlbGVjdCBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordGVtcGxhdGU8Y2xhc3MgQW55LCBDQUxMX1RFTVBMQVRFX0FSR1M+CitpbmxpbmUgQW55JiBzZWxlY3QoQW55JiBhbnksIENBTExfRk9STUFMX0FSR1MpIHsgQ0FMTF9VU0VfQVJHUzsgcmV0dXJuIGFueTsgfQorCisKK3RlbXBsYXRlPGNsYXNzIEFyZywgQ0FMTF9URU1QTEFURV9BUkdTPgoraW5saW5lIHR5cGVuYW1lIEFyZzo6dGVtcGxhdGUgc2lnPHR1cGxlPENBTExfUkVGRVJFTkNFX1RZUEVTPiA+Ojp0eXBlCitzZWxlY3QgKCBjb25zdCBsYW1iZGFfZnVuY3RvcjxBcmc+JiBvcCwgQ0FMTF9GT1JNQUxfQVJHUyApIHsgCisgIHJldHVybiBvcC50ZW1wbGF0ZSBjYWxsPAorICAgIHR5cGVuYW1lIEFyZzo6dGVtcGxhdGUgc2lnPHR1cGxlPENBTExfUkVGRVJFTkNFX1RZUEVTPiA+Ojp0eXBlCisgID4oQ0FMTF9BQ1RVQUxfQVJHUyk7IAorfQordGVtcGxhdGU8Y2xhc3MgQXJnLCBDQUxMX1RFTVBMQVRFX0FSR1M+CitpbmxpbmUgdHlwZW5hbWUgQXJnOjp0ZW1wbGF0ZSBzaWc8dHVwbGU8Q0FMTF9SRUZFUkVOQ0VfVFlQRVM+ID46OnR5cGUKK3NlbGVjdCAoIGxhbWJkYV9mdW5jdG9yPEFyZz4mIG9wLCBDQUxMX0ZPUk1BTF9BUkdTKSB7IAorICByZXR1cm4gb3AudGVtcGxhdGUgY2FsbDwKKyAgICB0eXBlbmFtZSBBcmc6OnRlbXBsYXRlIHNpZzx0dXBsZTxDQUxMX1JFRkVSRU5DRV9UWVBFUz4gPjo6dHlwZQorICA+KENBTExfQUNUVUFMX0FSR1MpOyAKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBzZWxlY3QgZnVuY3Rpb25zIHdoZXJlIHRoZSByZXR1cm4gdHlwZSBpcyBleHBsaWNpdGx5IGdpdmVuCisvLyBOb3RlOiBvbiBtYW55IGZ1bmN0aW9ucywgdGhpcyByZXR1cm4gdHlwZSBpcyBqdXN0IGRpc2NhcmRlZC4KKy8vIFRoZSBzZWxlY3QgZnVuY3Rpb25zIGFyZSBpbnNpZGUgYSBjbGFzcyB0ZW1wbGF0ZSwgYW5kIHRoZSByZXR1cm4gdHlwZQorLy8gaXMgYSBjbGFzcyB0ZW1wbGF0ZSBhcmd1bWVudC4KKy8vIFRoZSBmaXJzdCBpbXBsZW1lbnRhdGlvbiB1c2VkIGZ1bmN0aW9uIHRlbXBsYXRlcyB3aXRoIGFuIGV4cGxpY2l0bHkgCisvLyBzcGVjaWZpZWQgdGVtcGxhdGUgcGFyYW1ldGVyLgorLy8gSG93ZXZlciwgdGhpcyByZXN1bHRlZCBpbiBhbWJpZ3VvdXMgY2FsbHMgKGF0IGxlYXN0IHdpdGggZ2NjIDIuOTUuMiAKKy8vIGFuZCBlZGcgMi40NCkuIE5vdCBzdXJlIHdoZXRoZXIgdGhlIGNvbXBpbGVycyB3ZXJlIHJpZ2h0IG9yIHdyb25nLiAKKyAgCit0ZW1wbGF0ZTxjbGFzcyBSRVQ+IHN0cnVjdCByX3NlbGVjdCB7CisKKy8vIEFueSA9PSBSRVQKKyAgdGVtcGxhdGU8Y2xhc3MgQW55LCBDQUxMX1RFTVBMQVRFX0FSR1M+CisgIHN0YXRpYyAKKyAgaW5saW5lIFJFVCBnbyAoQW55JiBhbnksIENBTExfRk9STUFMX0FSR1MpIHsgQ0FMTF9VU0VfQVJHUzsgcmV0dXJuIGFueTsgfQorCisKKyAgdGVtcGxhdGU8Y2xhc3MgQXJnLCBDQUxMX1RFTVBMQVRFX0FSR1M+IAorICBzdGF0aWMgCisgIGlubGluZSBSRVQgZ28gKGNvbnN0IGxhbWJkYV9mdW5jdG9yPEFyZz4mIG9wLCBDQUxMX0ZPUk1BTF9BUkdTICkgeworICAgIHJldHVybiBvcC50ZW1wbGF0ZSBjYWxsPFJFVD4oQ0FMTF9BQ1RVQUxfQVJHUyk7IAorICB9CisgIHRlbXBsYXRlPGNsYXNzIEFyZywgQ0FMTF9URU1QTEFURV9BUkdTPiAKKyAgc3RhdGljIAorICBpbmxpbmUgUkVUIGdvIChsYW1iZGFfZnVuY3RvcjxBcmc+JiBvcCwgQ0FMTF9GT1JNQUxfQVJHUyApIHsgCisgICAgcmV0dXJuIG9wLnRlbXBsYXRlIGNhbGw8UkVUPihDQUxMX0FDVFVBTF9BUkdTKTsgCisgIH0KK307CisgICAKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgbGFtYmRhCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGFtYmRhL2xhbWJkYS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9sYW1iZGEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5M2VmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xhbWJkYS9sYW1iZGEuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKy8vIC0tIGxhbWJkYS5ocHAgLS0gQm9vc3QgTGFtYmRhIExpYnJhcnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL2xhbWJkYS5jcy51dHUuZmkgCisKKyNpZm5kZWYgQk9PU1RfTEFNQkRBX0xBTUJEQV9IUFAKKyNkZWZpbmUgQk9PU1RfTEFNQkRBX0xBTUJEQV9IUFAKKworCisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2NvcmUuaHBwIgorCisjaWZkZWYgQk9PU1RfTk9fRkRFQ0xfVEVNUExBVEVTX0FTX1RFTVBMQVRFX1RFTVBMQVRFX1BBUkFNUworI2luY2x1ZGUgPGlzdHJlYW0+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNlbmRpZgorCisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcl9hY3Rpb25zLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9sYW1iZGEvZGV0YWlsL29wZXJhdG9yX2xhbWJkYV9mdW5jX2Jhc2UuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L2xhbWJkYS9kZXRhaWwvb3BlcmF0b3JfcmV0dXJuX3R5cGVfdHJhaXRzLmhwcCIKKworCisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2RldGFpbC9vcGVyYXRvcnMuaHBwIgorCisjaWZuZGVmIEJPT1NUX0xBTUJEQV9GQUlMU19JTl9URU1QTEFURV9LRVlXT1JEX0FGVEVSX1NDT1BFX09QRVIKKy8vIHNvcnJ5LCBtZW1iZXIgcHRyIGRvZXMgbm90IHdvcmsgd2l0aCBnY2MyLjk1CisjaW5jbHVkZSAibmRuYm9vc3QvbGFtYmRhL2RldGFpbC9tZW1iZXJfcHRyLmhwcCIKKyNlbmRpZgorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9sZXhpY2FsX2Nhc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9sZXhpY2FsX2Nhc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZDE5MDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L2xleGljYWxfY2FzdC5ocHAKQEAgLTAsMCArMSwyNzI1IEBACisjaWZuZGVmIEJPT1NUX0xFWElDQUxfQ0FTVF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9MRVhJQ0FMX0NBU1RfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vIEJvb3N0IGxleGljYWxfY2FzdC5ocHAgaGVhZGVyICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb252ZXJzaW9uIGZvciBkb2N1bWVudGF0aW9uLgorLy8gU2VlIGVuZCBvZiB0aGlzIGhlYWRlciBmb3IgcmlnaHRzIGFuZCBwZXJtaXNzaW9ucy4KKy8vCisvLyB3aGF0OiAgbGV4aWNhbF9jYXN0IGN1c3RvbSBrZXl3b3JkIGNhc3QKKy8vIHdobzogICBjb250cmlidXRlZCBieSBLZXZsaW4gSGVubmV5LAorLy8gICAgICAgIGVuaGFuY2VkIHdpdGggY29udHJpYnV0aW9ucyBmcm9tIFRlcmplIFNsZXR0ZWJvLAorLy8gICAgICAgIHdpdGggYWRkaXRpb25hbCBmaXhlcyBhbmQgc3VnZ2VzdGlvbnMgZnJvbSBHZW5uYXJvIFByb3RhLAorLy8gICAgICAgIEJlbWFuIERhd2VzLCBEYXZlIEFicmFoYW1zLCBEYXJ5bGUgV2Fsa2VyLCBQZXRlciBEaW1vdiwKKy8vICAgICAgICBBbGV4YW5kZXIgTmFzb25vdiwgQW50b255IFBvbHVraGluLCBKdXN0aW4gVmlpcmV0LCBNaWNoYWVsIEhvZm1hbm4sCisvLyAgICAgICAgQ2hlbmcgWWFuZywgTWF0dGhldyBCcmFkYnVyeSwgRGF2aWQgVy4gQmlyZHNhbGwsIFBhdmVsIEtvcnpoIGFuZCBvdGhlciBCb29zdGVycworLy8gd2hlbjogIE5vdmVtYmVyIDIwMDAsIE1hcmNoIDIwMDMsIEp1bmUgMjAwNSwgSnVuZSAyMDA2LCBNYXJjaCAyMDExIC0gMjAxMworCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpZiBkZWZpbmVkKEJPT1NUX05PX1NUUklOR1NUUkVBTSkgfHwgZGVmaW5lZChCT09TVF9OT19TVERfV1NUUklORykKKyNkZWZpbmUgQk9PU1RfTENBU1RfTk9fV0NIQVJfVAorI2VuZGlmCisKKyNpbmNsdWRlIDxjbGltaXRzPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPHR5cGVpbmZvPgorI2luY2x1ZGUgPGV4Y2VwdGlvbj4KKyNpbmNsdWRlIDxuZG5ib29zdC9saW1pdHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9sY2FzdF9wcmVjaXNpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworCisjaWZuZGVmIEJPT1NUX05PX1NURF9MT0NBTEUKKyMgICBpbmNsdWRlIDxsb2NhbGU+CisjZWxzZQorIyAgIGlmbmRlZiBCT09TVF9MRVhJQ0FMX0NBU1RfQVNTVU1FX0NfTE9DQUxFCisgICAgICAgIC8vIEdldHRpbmcgZXJyb3IgYXQgdGhpcyBwb2ludCBtZWFucywgdGhhdCB5b3VyIFNUTCBsaWJyYXJ5IGlzIG9sZC9sYW1lL21pc2NvbmZpZ3VyZWQuCisgICAgICAgIC8vIElmIG5vdGhpbmcgY2FuIGJlIGRvbmUgd2l0aCBTVEwgbGlicmFyeSwgZGVmaW5lIEJPT1NUX0xFWElDQUxfQ0FTVF9BU1NVTUVfQ19MT0NBTEUsCisgICAgICAgIC8vIGJ1dCBiZXdhcmU6IGxleGljYWxfY2FzdCB3aWxsIHVuZGVyc3RhbmQgb25seSAnQycgbG9jYWxlIGRlbGltZXRlcnMgYW5kIHRob3VzYW5kcworICAgICAgICAvLyBzZXBhcmF0b3JzLgorIyAgICAgICBlcnJvciAiVW5hYmxlIHRvIHVzZSA8bG9jYWxlPiBoZWFkZXIuIERlZmluZSBCT09TVF9MRVhJQ0FMX0NBU1RfQVNTVU1FX0NfTE9DQUxFIHRvIGZvcmNlICIKKyMgICAgICAgZXJyb3IgIm5kbmJvb3N0OjpsZXhpY2FsX2Nhc3QgdG8gdXNlIG9ubHkgJ0MnIGxvY2FsZSBkdXJpbmcgY29udmVyc2lvbnMuIgorIyAgIGVuZGlmCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX05PX1NUUklOR1NUUkVBTQorI2luY2x1ZGUgPHN0cnN0cmVhbT4KKyNlbHNlCisjaW5jbHVkZSA8c3N0cmVhbT4KKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfTk9fVFlQRUlECisjZGVmaW5lIEJPT1NUX0xDQVNUX1RIUk9XX0JBRF9DQVNUKFMsIFQpIHRocm93X2V4Y2VwdGlvbihiYWRfbGV4aWNhbF9jYXN0KCkpCisjZWxzZQorI2RlZmluZSBCT09TVF9MQ0FTVF9USFJPV19CQURfQ0FTVChTb3VyY2UsIFRhcmdldCkgXAorICAgIHRocm93X2V4Y2VwdGlvbihiYWRfbGV4aWNhbF9jYXN0KHR5cGVpZChTb3VyY2UpLCB0eXBlaWQoVGFyZ2V0KSkpCisjZW5kaWYKKworI2lmIChkZWZpbmVkKEJPT1NUX0xDQVNUX0hBU19JTlQxMjgpICYmICFkZWZpbmVkKF9fR05VQ19fKSkgfHwgR0NDX1ZFUlNJT04gPiA0MDcwMAorI2RlZmluZSBCT09TVF9MQ0FTVF9IQVNfSU5UMTI4CisjZW5kaWYKKworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICAvLyBleGNlcHRpb24gdXNlZCB0byBpbmRpY2F0ZSBydW50aW1lIGxleGljYWxfY2FzdCBmYWlsdXJlCisgICAgY2xhc3MgQk9PU1RfU1lNQk9MX1ZJU0lCTEUgYmFkX2xleGljYWxfY2FzdCA6CisgICAgLy8gd29ya2Fyb3VuZCBNU1ZDIGJ1ZyB3aXRoIHN0ZDo6YmFkX2Nhc3Qgd2hlbiBfSEFTX0VYQ0VQVElPTlMgPT0gMCAKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIGRlZmluZWQoX0hBU19FWENFUFRJT05TKSAmJiAhX0hBU19FWENFUFRJT05TIAorICAgICAgICBwdWJsaWMgc3RkOjpleGNlcHRpb24gCisjZWxzZSAKKyAgICAgICAgcHVibGljIHN0ZDo6YmFkX2Nhc3QgCisjZW5kaWYgCisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCA8IDB4NTYwICkKKyAgICAgICAgLy8gdW5kZXIgYmNjMzIgNS41LjEgYmFkX2Nhc3QgZG9lc24ndCBkZXJpdmUgZnJvbSBleGNlcHRpb24KKyAgICAgICAgLCBwdWJsaWMgc3RkOjpleGNlcHRpb24KKyNlbmRpZgorCisgICAgeworICAgIHB1YmxpYzoKKyAgICAgICAgYmFkX2xleGljYWxfY2FzdCgpIEJPT1NUX05PRVhDRVBUIDoKKyNpZm5kZWYgQk9PU1RfTk9fVFlQRUlECisgICAgICAgICAgc291cmNlKCZ0eXBlaWQodm9pZCkpLCB0YXJnZXQoJnR5cGVpZCh2b2lkKSkKKyNlbHNlCisgICAgICAgICAgc291cmNlKDApLCB0YXJnZXQoMCkgLy8gdGhpcyBicmVha3MgZ2V0dGVycworI2VuZGlmCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJhZF9sZXhpY2FsX2Nhc3QoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnR5cGVfaW5mbyAmc291cmNlX3R5cGVfYXJnLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp0eXBlX2luZm8gJnRhcmdldF90eXBlX2FyZykgQk9PU1RfTk9FWENFUFQgOgorICAgICAgICAgICAgc291cmNlKCZzb3VyY2VfdHlwZV9hcmcpLCB0YXJnZXQoJnRhcmdldF90eXBlX2FyZykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgc3RkOjp0eXBlX2luZm8gJnNvdXJjZV90eXBlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICpzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgY29uc3Qgc3RkOjp0eXBlX2luZm8gJnRhcmdldF90eXBlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICp0YXJnZXQ7CisgICAgICAgIH0KKworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKndoYXQoKSBjb25zdCBub2V4Y2VwdAorI2Vsc2UKKyAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICp3aGF0KCkgY29uc3QgdGhyb3coKQorI2VuZGlmCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiYmFkIGxleGljYWwgY2FzdDogIgorICAgICAgICAgICAgICAgICAgICJzb3VyY2UgdHlwZSB2YWx1ZSBjb3VsZCBub3QgYmUgaW50ZXJwcmV0ZWQgYXMgdGFyZ2V0IjsKKyAgICAgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisgICAgICAgIHZpcnR1YWwgfmJhZF9sZXhpY2FsX2Nhc3QoKSBCT09TVF9OT0VYQ0VQVAorI2Vsc2UKKyAgICAgICAgdmlydHVhbCB+YmFkX2xleGljYWxfY2FzdCgpIHRocm93KCkKKyNlbmRpZgorICAgICAgICB7fQorICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IHN0ZDo6dHlwZV9pbmZvICpzb3VyY2U7CisgICAgICAgIGNvbnN0IHN0ZDo6dHlwZV9pbmZvICp0YXJnZXQ7CisgICAgfTsKKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gd2lkZXN0X2NoYXIKKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYXJnZXRDaGFyLCB0eXBlbmFtZSBTb3VyY2VDaGFyPgorICAgICAgICBzdHJ1Y3Qgd2lkZXN0X2NoYXIKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5kbmJvb3N0OjptcGw6OmlmX2M8CisgICAgICAgICAgICAgICAgKHNpemVvZihUYXJnZXRDaGFyKSA+IHNpemVvZihTb3VyY2VDaGFyKSkKKyAgICAgICAgICAgICAgICAsIFRhcmdldENoYXIKKyAgICAgICAgICAgICAgICAsIFNvdXJjZUNoYXIgPjo6dHlwZSB0eXBlOworICAgICAgICB9OworICAgIH0KK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhZGVmaW5lZChfX1NVTlBST19DQykgJiYgIWRlZmluZWQoX19QR0lDX18pCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxpc3RyZWFtPgorCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorI2luY2x1ZGUgPGFycmF5PgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hcnJheS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2Nhc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2VfdW5zaWduZWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NpZ25lZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVmdF9zaGlmdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3JpZ2h0X3NoaWZ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZnBjbGFzc2lmeS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2VfY29yZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29udGFpbmVyL2NvbnRhaW5lcl9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2ludGVnZXIuaHBwPgorI2lmbmRlZiBCT09TVF9OT19DV0NIQVIKKyMgICBpbmNsdWRlIDxjd2NoYXI+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gaXNfY2hhcl9vcl93Y2hhcjwuLi4+CisgICAgeworICAgICAgICAvLyByZXR1cm5zIHRydWUsIGlmIFQgaXMgb25lIG9mIHRoZSBjaGFyYWN0ZXIgdHlwZXMKKyAgICAgICAgdGVtcGxhdGUgPCB0eXBlbmFtZSBUID4KKyAgICAgICAgc3RydWN0IGlzX2NoYXJfb3Jfd2NoYXIKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3NhbWU8IFQsIGNoYXIgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICNpZm5kZWYgQk9PU1RfTENBU1RfTk9fV0NIQVJfVAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3NhbWU8IFQsIHdjaGFyX3QgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAjaWZuZGVmIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTwgVCwgY2hhcjE2X3QgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAjaWZuZGVmIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTwgVCwgY2hhcjMyX3QgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTwgVCwgdW5zaWduZWQgY2hhciA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3NhbWU8IFQsIHNpZ25lZCBjaGFyID46OnZhbHVlCisgICAgICAgICAgICA+IHJlc3VsdF90eXBlOworCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAocmVzdWx0X3R5cGU6OnZhbHVlKSApOworICAgICAgICB9OworICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gbm9ybWFsaXplX3NpbmdsZV9ieXRlX2NoYXI8Q2hhcj4KKyAgICB7CisgICAgICAgIC8vIENvbnZlcnRzIHNpZ25lZC91bnNpZ25lZCBjaGFyIHRvIGNoYXIKKyAgICAgICAgdGVtcGxhdGUgPCBjbGFzcyBDaGFyID4KKyAgICAgICAgc3RydWN0IG5vcm1hbGl6ZV9zaW5nbGVfYnl0ZV9jaGFyIAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIENoYXIgdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8PgorICAgICAgICBzdHJ1Y3Qgbm9ybWFsaXplX3NpbmdsZV9ieXRlX2NoYXI8IHNpZ25lZCBjaGFyID4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBjaGFyIHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPD4KKyAgICAgICAgc3RydWN0IG5vcm1hbGl6ZV9zaW5nbGVfYnl0ZV9jaGFyPCB1bnNpZ25lZCBjaGFyID4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBjaGFyIHR5cGU7CisgICAgICAgIH07CisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbCAvLyBkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8VD4KKyAgICB7CisgICAgICAgIC8vIEhlbHBlciB0eXBlLCBtZWFuaW5nIHRoYXQgc3RyYW0gY2hhcmFjdGVyIGZvciBUIG11c3QgYmUgZGVkdWNlZCAKKyAgICAgICAgLy8gYXQgU3RhZ2UgMiAoU2VlIGRlZHVjZV9zb3VyY2VfY2hhcjxUPiBhbmQgZGVkdWNlX3RhcmdldF9jaGFyPFQ+KQorICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIFQgPiBzdHJ1Y3QgZGVkdWNlX2NoYXJhY3Rlcl90eXBlX2xhdGVyIHt9OworICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gc3RyZWFtX2NoYXJfY29tbW9uPFQ+CisgICAgeworICAgICAgICAvLyBTZWxlY3RvcnMgdG8gY2hvb3NlIHN0cmVhbSBjaGFyYWN0ZXIgdHlwZSAoY29tbW9uIGZvciBTb3VyY2UgYW5kIFRhcmdldCkKKyAgICAgICAgLy8gUmV0dXJucyBvbmUgb2YgY2hhciwgd2NoYXJfdCwgY2hhcjE2X3QsIGNoYXIzMl90IG9yIGRlZHVjZV9jaGFyYWN0ZXJfdHlwZV9sYXRlcjxUPiB0eXBlcworICAgICAgICAvLyBFeGVjdXRlZCBvbiBTdGFnZSAxIChTZWUgZGVkdWNlX3NvdXJjZV9jaGFyPFQ+IGFuZCBkZWR1Y2VfdGFyZ2V0X2NoYXI8VD4pCisgICAgICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgVHlwZSA+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcl9jb21tb246IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXNfY2hhcl9vcl93Y2hhcjwgVHlwZSA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIFR5cGUsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IFR5cGUgPgorICAgICAgICA+IHt9OworCisgICAgICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgQ2hhciA+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcl9jb21tb248IENoYXIqID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXNfY2hhcl9vcl93Y2hhcjwgQ2hhciA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIENoYXIsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IENoYXIqID4KKyAgICAgICAgPiB7fTsKKworICAgICAgICB0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoYXIgPgorICAgICAgICBzdHJ1Y3Qgc3RyZWFtX2NoYXJfY29tbW9uPCBjb25zdCBDaGFyKiA+OiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmlzX2NoYXJfb3Jfd2NoYXI8IENoYXIgPjo6dmFsdWUsCisgICAgICAgICAgICBDaGFyLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6ZGVkdWNlX2NoYXJhY3Rlcl90eXBlX2xhdGVyPCBjb25zdCBDaGFyKiA+CisgICAgICAgID4ge307CisKKyAgICAgICAgdGVtcGxhdGUgPCB0eXBlbmFtZSBDaGFyID4KKyAgICAgICAgc3RydWN0IHN0cmVhbV9jaGFyX2NvbW1vbjwgbmRuYm9vc3Q6Oml0ZXJhdG9yX3JhbmdlPCBDaGFyKiA+ID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXNfY2hhcl9vcl93Y2hhcjwgQ2hhciA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIENoYXIsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IG5kbmJvb3N0OjppdGVyYXRvcl9yYW5nZTwgQ2hhciogPiA+CisgICAgICAgID4ge307CisgICAgCisgICAgICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgQ2hhciA+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcl9jb21tb248IG5kbmJvb3N0OjppdGVyYXRvcl9yYW5nZTwgY29uc3QgQ2hhciogPiA+OiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmlzX2NoYXJfb3Jfd2NoYXI8IENoYXIgPjo6dmFsdWUsCisgICAgICAgICAgICBDaGFyLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6ZGVkdWNlX2NoYXJhY3Rlcl90eXBlX2xhdGVyPCBuZG5ib29zdDo6aXRlcmF0b3JfcmFuZ2U8IGNvbnN0IENoYXIqID4gPgorICAgICAgICA+IHt9OworCisgICAgICAgIHRlbXBsYXRlIDwgY2xhc3MgQ2hhciwgY2xhc3MgVHJhaXRzLCBjbGFzcyBBbGxvYyA+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcl9jb21tb248IHN0ZDo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jID4gPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIENoYXIgdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIENoYXIsIGNsYXNzIFRyYWl0cywgY2xhc3MgQWxsb2MgPgorICAgICAgICBzdHJ1Y3Qgc3RyZWFtX2NoYXJfY29tbW9uPCBuZG5ib29zdDo6Y29udGFpbmVyOjpiYXNpY19zdHJpbmc8IENoYXIsIFRyYWl0cywgQWxsb2MgPiA+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgQ2hhciB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgQ2hhciwgc3RkOjpzaXplX3QgTiA+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcl9jb21tb248IG5kbmJvb3N0OjphcnJheTwgQ2hhciwgTiA+ID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXNfY2hhcl9vcl93Y2hhcjwgQ2hhciA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIENoYXIsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IG5kbmJvb3N0OjphcnJheTwgQ2hhciwgTiA+ID4KKyAgICAgICAgPiB7fTsKKworICAgICAgICB0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoYXIsIHN0ZDo6c2l6ZV90IE4gPgorICAgICAgICBzdHJ1Y3Qgc3RyZWFtX2NoYXJfY29tbW9uPCBuZG5ib29zdDo6YXJyYXk8IGNvbnN0IENoYXIsIE4gPiA+OiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmlzX2NoYXJfb3Jfd2NoYXI8IENoYXIgPjo6dmFsdWUsCisgICAgICAgICAgICBDaGFyLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6ZGVkdWNlX2NoYXJhY3Rlcl90eXBlX2xhdGVyPCBuZG5ib29zdDo6YXJyYXk8IGNvbnN0IENoYXIsIE4gPiA+CisgICAgICAgID4ge307CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfSERSX0FSUkFZCisgICAgICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgQ2hhciwgc3RkOjpzaXplX3QgTiA+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcl9jb21tb248IHN0ZDo6YXJyYXk8Q2hhciwgTiA+ID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXNfY2hhcl9vcl93Y2hhcjwgQ2hhciA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIENoYXIsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IHN0ZDo6YXJyYXk8IENoYXIsIE4gPiA+CisgICAgICAgID4ge307CisKKyAgICAgICAgdGVtcGxhdGUgPCB0eXBlbmFtZSBDaGFyLCBzdGQ6OnNpemVfdCBOID4KKyAgICAgICAgc3RydWN0IHN0cmVhbV9jaGFyX2NvbW1vbjwgc3RkOjphcnJheTwgY29uc3QgQ2hhciwgTiA+ID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6aXNfY2hhcl9vcl93Y2hhcjwgQ2hhciA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIENoYXIsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IHN0ZDo6YXJyYXk8IGNvbnN0IENoYXIsIE4gPiA+CisgICAgICAgID4ge307CisjZW5kaWYKKworI2lmZGVmIEJPT1NUX0xDQVNUX0hBU19JTlQxMjgKKyAgICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHN0cmVhbV9jaGFyX2NvbW1vbjwgbmRuYm9vc3Q6OmludDEyOF90eXBlID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZGVudGl0eTwgY2hhciA+IHt9OworICAgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3Qgc3RyZWFtX2NoYXJfY29tbW9uPCBuZG5ib29zdDo6dWludDEyOF90eXBlID46IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppZGVudGl0eTwgY2hhciA+IHt9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9MQ0FTVF9OT19XQ0hBUl9UKSAmJiBkZWZpbmVkKEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UKQorICAgICAgICB0ZW1wbGF0ZSA8PgorICAgICAgICBzdHJ1Y3Qgc3RyZWFtX2NoYXJfY29tbW9uPCB3Y2hhcl90ID4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBjaGFyIHR5cGU7CisgICAgICAgIH07CisjZW5kaWYKKyAgICB9CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsIC8vIGRlZHVjZV9zb3VyY2VfY2hhcl9pbXBsPFQ+CisgICAgeworICAgICAgICAvLyBJZiB0eXBlIFQgaXMgYGRlZHVjZV9jaGFyYWN0ZXJfdHlwZV9sYXRlcmAgdHlwZSwgdGhlbiB0cmllcyB0byBkZWR1Y2UKKyAgICAgICAgLy8gY2hhcmFjdGVyIHR5cGUgdXNpbmcgbmRuYm9vc3Q6Omhhc19sZWZ0X3NoaWZ0PFQ+IG1ldGFmdW5jdGlvbi4KKyAgICAgICAgLy8gT3RoZXJ3aXNlIHN1cHBsaWVkIHR5cGUgVCBpcyBhIGNoYXJhY3RlciB0eXBlLCB0aGF0IG11c3QgYmUgbm9ybWFsaXplZAorICAgICAgICAvLyB1c2luZyBub3JtYWxpemVfc2luZ2xlX2J5dGVfY2hhcjxDaGFyPi4KKyAgICAgICAgLy8gRXhlY3V0ZWQgYXQgU3RhZ2UgMiAgKFNlZSBkZWR1Y2Vfc291cmNlX2NoYXI8VD4gYW5kIGRlZHVjZV90YXJnZXRfY2hhcjxUPikKKyAgICAgICAgdGVtcGxhdGUgPCBjbGFzcyBDaGFyID4gCisgICAgICAgIHN0cnVjdCBkZWR1Y2Vfc291cmNlX2NoYXJfaW1wbAorICAgICAgICB7IAorICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5kbmJvb3N0OjpkZXRhaWw6Om5vcm1hbGl6ZV9zaW5nbGVfYnl0ZV9jaGFyPCBDaGFyID46OnR5cGUgdHlwZTsgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIFQgPiAKKyAgICAgICAgc3RydWN0IGRlZHVjZV9zb3VyY2VfY2hhcl9pbXBsPCBkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8IFQgPiA+IAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpoYXNfbGVmdF9zaGlmdDwgc3RkOjpiYXNpY19vc3RyZWFtPCBjaGFyID4sIFQgPiByZXN1bHRfdDsKKworI2lmIGRlZmluZWQoQk9PU1RfTENBU1RfTk9fV0NIQVJfVCkKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKChyZXN1bHRfdDo6dmFsdWUpLCAKKyAgICAgICAgICAgICAgICAiU291cmNlIHR5cGUgaXMgbm90IHN0ZDo6b3N0cmVhbWBhYmxlIGFuZCBzdGQ6Ondvc3RyZWFtYHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBTVEwgaW1wbGVtZW50YXRpb24iKTsKKyAgICAgICAgICAgIHR5cGVkZWYgY2hhciB0eXBlOworI2Vsc2UKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgICAgIHJlc3VsdF90Ojp2YWx1ZSwgY2hhciwgd2NoYXJfdAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUX01TRygocmVzdWx0X3Q6OnZhbHVlIHx8IG5kbmJvb3N0OjpoYXNfbGVmdF9zaGlmdDwgc3RkOjpiYXNpY19vc3RyZWFtPCB0eXBlID4sIFQgPjo6dmFsdWUpLCAKKyAgICAgICAgICAgICAgICAiU291cmNlIHR5cGUgaXMgbmVpdGhlciBzdGQ6Om9zdHJlYW1gYWJsZSBub3Igc3RkOjp3b3N0cmVhbWBhYmxlIik7CisjZW5kaWYKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsICAvLyBkZWR1Y2VfdGFyZ2V0X2NoYXJfaW1wbDxUPgorICAgIHsKKyAgICAgICAgLy8gSWYgdHlwZSBUIGlzIGBkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXJgIHR5cGUsIHRoZW4gdHJpZXMgdG8gZGVkdWNlCisgICAgICAgIC8vIGNoYXJhY3RlciB0eXBlIHVzaW5nIG5kbmJvb3N0OjpoYXNfcmlnaHRfc2hpZnQ8VD4gbWV0YWZ1bmN0aW9uLgorICAgICAgICAvLyBPdGhlcndpc2Ugc3VwcGxpZWQgdHlwZSBUIGlzIGEgY2hhcmFjdGVyIHR5cGUsIHRoYXQgbXVzdCBiZSBub3JtYWxpemVkCisgICAgICAgIC8vIHVzaW5nIG5vcm1hbGl6ZV9zaW5nbGVfYnl0ZV9jaGFyPENoYXI+LgorICAgICAgICAvLyBFeGVjdXRlZCBhdCBTdGFnZSAyICAoU2VlIGRlZHVjZV9zb3VyY2VfY2hhcjxUPiBhbmQgZGVkdWNlX3RhcmdldF9jaGFyPFQ+KQorICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIENoYXIgPiAKKyAgICAgICAgc3RydWN0IGRlZHVjZV90YXJnZXRfY2hhcl9pbXBsIAorICAgICAgICB7IAorICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5vcm1hbGl6ZV9zaW5nbGVfYnl0ZV9jaGFyPCBDaGFyID46OnR5cGUgdHlwZTsgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIFQgPiAKKyAgICAgICAgc3RydWN0IGRlZHVjZV90YXJnZXRfY2hhcl9pbXBsPCBkZWR1Y2VfY2hhcmFjdGVyX3R5cGVfbGF0ZXI8VD4gPiAKKyAgICAgICAgeyAKKyAgICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6Omhhc19yaWdodF9zaGlmdDxzdGQ6OmJhc2ljX2lzdHJlYW08Y2hhcj4sIFQgPiByZXN1bHRfdDsKKworI2lmIGRlZmluZWQoQk9PU1RfTENBU1RfTk9fV0NIQVJfVCkKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKChyZXN1bHRfdDo6dmFsdWUpLCAKKyAgICAgICAgICAgICAgICAiVGFyZ2V0IHR5cGUgaXMgbm90IHN0ZDo6aXN0cmVhbWBhYmxlIGFuZCBzdGQ6Ondpc3RyZWFtYHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBTVEwgaW1wbGVtZW50YXRpb24iKTsKKyAgICAgICAgICAgIHR5cGVkZWYgY2hhciB0eXBlOworI2Vsc2UKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgICAgIHJlc3VsdF90Ojp2YWx1ZSwgY2hhciwgd2NoYXJfdAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgICAgICAgICAgCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUX01TRygocmVzdWx0X3Q6OnZhbHVlIHx8IG5kbmJvb3N0OjpoYXNfcmlnaHRfc2hpZnQ8c3RkOjpiYXNpY19pc3RyZWFtPHdjaGFyX3Q+LCBUID46OnZhbHVlKSwgCisgICAgICAgICAgICAgICAgIlRhcmdldCB0eXBlIGlzIG5laXRoZXIgc3RkOjppc3RyZWFtYGFibGUgbm9yIHN0ZDo6d2lzdHJlYW1gYWJsZSIpOworI2VuZGlmCisgICAgICAgIH07CisgICAgfSAKKworICAgIG5hbWVzcGFjZSBkZXRhaWwgIC8vIGRlZHVjZV90YXJnZXRfY2hhcjxUPiBhbmQgZGVkdWNlX3NvdXJjZV9jaGFyPFQ+CisgICAgeworICAgICAgICAvLyBXZSBkZWR1Y2Ugc3RyZWFtIGNoYXJhY3RlciB0eXBlcyBpbiB0d28gc3RhZ2VzLgorICAgICAgICAvLworICAgICAgICAvLyBTdGFnZSAxIGlzIGNvbW1vbiBmb3IgVGFyZ2V0IGFuZCBTb3VyY2UuIEF0IFN0YWdlIDEgd2UgZ2V0IAorICAgICAgICAvLyBub24gbm9ybWFsaXplZCBjaGFyYWN0ZXIgdHlwZSAobWF5IGNvbnRhaW4gdW5zaWduZWQvc2lnbmVkIGNoYXIpCisgICAgICAgIC8vIG9yIGRlZHVjZV9jaGFyYWN0ZXJfdHlwZV9sYXRlcjxUPiB3aGVyZSBUIGlzIHRoZSBvcmlnaW5hbCB0eXBlLgorICAgICAgICAvLyBTdGFnZSAxIGlzIGV4ZWN1dGVkIGJ5IHN0cmVhbV9jaGFyX2NvbW1vbjxUPgorICAgICAgICAvLworICAgICAgICAvLyBBdCBTdGFnZSAyIHdlIG5vcm1hbGl6ZSBjaGFyYWN0ZXIgdHlwZXMgb3IgdHJ5IHRvIGRlZHVjZSBjaGFyYWN0ZXIgCisgICAgICAgIC8vIHR5cGUgdXNpbmcgbWV0YWZ1bmN0aW9ucy4gCisgICAgICAgIC8vIFN0YWdlIDIgaXMgZXhlY3V0ZWQgYnkgZGVkdWNlX3RhcmdldF9jaGFyX2ltcGw8VD4gYW5kIAorICAgICAgICAvLyBkZWR1Y2Vfc291cmNlX2NoYXJfaW1wbDxUPgorICAgICAgICAvLworICAgICAgICAvLyBkZWR1Y2VfdGFyZ2V0X2NoYXI8VD4gYW5kIGRlZHVjZV9zb3VyY2VfY2hhcjxUPiBmdW5jdGlvbnMgY29tYmluZSAKKyAgICAgICAgLy8gYm90aCBzdGFnZXMKKworICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIFQgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX3RhcmdldF9jaGFyCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBzdHJlYW1fY2hhcl9jb21tb248IFQgPjo6dHlwZSBzdGFnZTFfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBkZWR1Y2VfdGFyZ2V0X2NoYXJfaW1wbDwgc3RhZ2UxX3R5cGUgPjo6dHlwZSBzdGFnZTJfdHlwZTsKKworICAgICAgICAgICAgdHlwZWRlZiBzdGFnZTJfdHlwZSB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDwgY2xhc3MgVCA+CisgICAgICAgIHN0cnVjdCBkZWR1Y2Vfc291cmNlX2NoYXIKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHN0cmVhbV9jaGFyX2NvbW1vbjwgVCA+Ojp0eXBlIHN0YWdlMV90eXBlOworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRlZHVjZV9zb3VyY2VfY2hhcl9pbXBsPCBzdGFnZTFfdHlwZSA+Ojp0eXBlIHN0YWdlMl90eXBlOworCisgICAgICAgICAgICB0eXBlZGVmIHN0YWdlMl90eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbCAvLyBkZWR1Y2VfY2hhcl90cmFpdHMgdGVtcGxhdGUKKyAgICB7CisgICAgICAgIC8vIFdlIGFyZSBhdHRlbXB0aW5nIHRvIGdldCBjaGFyX3RyYWl0czw+IGZyb20gU291cmNlIG9yIFRhZ3JldAorICAgICAgICAvLyB0ZW1wbGF0ZSBwYXJhbWV0ZXIuIE90aGVyd2lzZSB3ZSdsbCBiZSB1c2luZyBzdGQ6OmNoYXJfdHJhaXRzPENoYXI+CisgICAgICAgIHRlbXBsYXRlIDwgY2xhc3MgQ2hhciwgY2xhc3MgVGFyZ2V0LCBjbGFzcyBTb3VyY2UgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX2NoYXJfdHJhaXRzCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpjaGFyX3RyYWl0czwgQ2hhciA+IHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPCBjbGFzcyBDaGFyLCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jLCBjbGFzcyBTb3VyY2UgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX2NoYXJfdHJhaXRzPCBDaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHN0ZDo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgU291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgVHJhaXRzIHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPCBjbGFzcyBDaGFyLCBjbGFzcyBUYXJnZXQsIGNsYXNzIFRyYWl0cywgY2xhc3MgQWxsb2MgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX2NoYXJfdHJhaXRzPCBDaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIFRhcmdldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBzdGQ6OmJhc2ljX3N0cmluZzwgQ2hhciwgVHJhaXRzLCBBbGxvYyA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgVHJhaXRzIHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPCBjbGFzcyBDaGFyLCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jLCBjbGFzcyBTb3VyY2UgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX2NoYXJfdHJhaXRzPCBDaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG5kbmJvb3N0Ojpjb250YWluZXI6OmJhc2ljX3N0cmluZzwgQ2hhciwgVHJhaXRzLCBBbGxvYyA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIFNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIFRyYWl0cyB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDwgY2xhc3MgQ2hhciwgY2xhc3MgVGFyZ2V0LCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jID4KKyAgICAgICAgc3RydWN0IGRlZHVjZV9jaGFyX3RyYWl0czwgQ2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBUYXJnZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgbmRuYm9vc3Q6OmNvbnRhaW5lcjo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBUcmFpdHMgdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIENoYXIsIGNsYXNzIFRyYWl0cywgY2xhc3MgQWxsb2MxLCBjbGFzcyBBbGxvYzIgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX2NoYXJfdHJhaXRzPCBDaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHN0ZDo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jMSA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHN0ZDo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jMiA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgVHJhaXRzIHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgQ2hhciwgY2xhc3MgVHJhaXRzLCBjbGFzcyBBbGxvYzEsIGNsYXNzIEFsbG9jMj4KKyAgICAgICAgc3RydWN0IGRlZHVjZV9jaGFyX3RyYWl0czwgQ2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBuZG5ib29zdDo6Y29udGFpbmVyOjpiYXNpY19zdHJpbmc8IENoYXIsIFRyYWl0cywgQWxsb2MxID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgbmRuYm9vc3Q6OmNvbnRhaW5lcjo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jMiA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgVHJhaXRzIHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPCBjbGFzcyBDaGFyLCBjbGFzcyBUcmFpdHMsIGNsYXNzIEFsbG9jMSwgY2xhc3MgQWxsb2MyID4KKyAgICAgICAgc3RydWN0IGRlZHVjZV9jaGFyX3RyYWl0czwgQ2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBuZG5ib29zdDo6Y29udGFpbmVyOjpiYXNpY19zdHJpbmc8IENoYXIsIFRyYWl0cywgQWxsb2MxID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgc3RkOjpiYXNpY19zdHJpbmc8IENoYXIsIFRyYWl0cywgQWxsb2MyID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBUcmFpdHMgdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8IGNsYXNzIENoYXIsIGNsYXNzIFRyYWl0cywgY2xhc3MgQWxsb2MxLCBjbGFzcyBBbGxvYzIgPgorICAgICAgICBzdHJ1Y3QgZGVkdWNlX2NoYXJfdHJhaXRzPCBDaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHN0ZDo6YmFzaWNfc3RyaW5nPCBDaGFyLCBUcmFpdHMsIEFsbG9jMSA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG5kbmJvb3N0Ojpjb250YWluZXI6OmJhc2ljX3N0cmluZzwgQ2hhciwgVHJhaXRzLCBBbGxvYzIgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIFRyYWl0cyB0eXBlOworICAgICAgICB9OworICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gYXJyYXlfdG9fcG9pbnRlcl9kZWNheTxUPgorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICAgICAgc3RydWN0IGFycmF5X3RvX3BvaW50ZXJfZGVjYXkKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KKyAgICAgICAgc3RydWN0IGFycmF5X3RvX3BvaW50ZXJfZGVjYXk8VFtOXT4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBjb25zdCBUICogdHlwZTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsIC8vIGlzX3RoaXNfZmxvYXRfY29udmVyc2lvbl9vcHRpbWl6ZWQ8RmxvYXQsIENoYXI+CisgICAgeworICAgICAgICAvLyB0aGlzIG1ldGFmdW5jdGlvbiBldmFsdWF0ZXMgdG8gdHJ1ZSwgaWYgd2UgaGF2ZSBvcHRpbWl6ZWQgY29tbnZlcnNpb24gCisgICAgICAgIC8vIGZyb20gRmxvYXQgdHlwZSB0byBDaGFyIGFycmF5LiAKKyAgICAgICAgLy8gTXVzdCBiZSBpbiBzeW5jIHdpdGggbGV4aWNhbF9zdHJlYW1fbGltaXRlZF9zcmM8Q2hhciwgLi4uPjo6c2hsX3JlYWxfdHlwZSguLi4pCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGbG9hdCwgdHlwZW5hbWUgQ2hhcj4KKyAgICAgICAgc3RydWN0IGlzX3RoaXNfZmxvYXRfY29udmVyc2lvbl9vcHRpbWl6ZWQgCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19mbG9hdDxGbG9hdD46OnZhbHVlLAorI2lmICFkZWZpbmVkKEJPT1NUX0xDQVNUX05PX1dDSEFSX1QpICYmICFkZWZpbmVkKEJPT1NUX05PX1NXUFJJTlRGKSAmJiAhZGVmaW5lZChfX01JTkdXMzJfXykKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfZXE8c2l6ZW9mKENoYXIpLCBzaXplb2YoY2hhcikgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19zYW1lPENoYXIsIHdjaGFyX3Q+Ojp2YWx1ZQorICAgICAgICAgICAgICAgID46OnZhbHVlCisjZWxzZQorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2VxPHNpemVvZihDaGFyKSwgc2l6ZW9mKGNoYXIpID46OnZhbHVlCisjZW5kaWYKKyAgICAgICAgICAgID4gcmVzdWx0X3R5cGU7CisKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChyZXN1bHRfdHlwZTo6dmFsdWUpICk7CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gbGNhc3Rfc3JjX2xlbmd0aAorICAgIHsKKyAgICAgICAgLy8gUmV0dXJuIG1heC4gbGVuZ3RoIG9mIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBTb3VyY2U7CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBTb3VyY2UgLy8gU291cmNlIHR5cGUgb2YgbGV4aWNhbF9jYXN0LgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgc3RydWN0IGxjYXN0X3NyY19sZW5ndGgKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDEpOworICAgICAgICAgICAgLy8gVG8gY2hlY2sgY292ZXJhZ2UsIGJ1aWxkIHRoZSB0ZXN0IHdpdGgKKyAgICAgICAgICAgIC8vIGJqYW0gLS12MiBwcm9maWxlIG9wdGltaXphdGlvbj1vZmYKKyAgICAgICAgICAgIHN0YXRpYyB2b2lkIGNoZWNrX2NvdmVyYWdlKCkge30KKyAgICAgICAgfTsKKworICAgICAgICAvLyBIZWxwZXIgZm9yIGludGVncmFsIHR5cGVzLgorICAgICAgICAvLyBOb3RlcyBvbiBsZW5ndGggY2FsY3VsYXRpb246CisgICAgICAgIC8vIE1heCBsZW5ndGggZm9yIDMyYml0IGludCB3aXRoIGdyb3VwaW5nICJcMSIgYW5kIHRob3VzYW5kc19zZXAgJywnOgorICAgICAgICAvLyAiLTIsMSw0LDcsNCw4LDMsNiw0LDciCisgICAgICAgIC8vICBeICAgICAgICAgICAgICAgICAgICAtIGlzX3NpZ25lZAorICAgICAgICAvLyAgIF4gICAgICAgICAgICAgICAgICAgLSAxIGRpZ2l0IG5vdCBjb3VudGVkIGJ5IGRpZ2l0czEwCisgICAgICAgIC8vICAgIF5eXl5eXl5eXl5eXl5eXl5eXiAtIGRpZ2l0czEwICogMgorICAgICAgICAvLworICAgICAgICAvLyBDb25zdGFudCBpc19zcGVjaWFsaXplZCBpcyB1c2VkIGluc3RlYWQgb2YgY29uc3RhbnQgMQorICAgICAgICAvLyB0byBwcmV2ZW50IGJ1ZmZlciBvdmVyZmxvdyBpbiBhIHJhcmUgY2FzZSB3aGVuCisgICAgICAgIC8vIDxuZG5ib29zdC9saW1pdHMuaHBwPiBkb2Vzbid0IGFkZCBtaXNzaW5nIHNwZWNpYWxpemF0aW9uIGZvcgorICAgICAgICAvLyBudW1lcmljX2xpbWl0czxUPiBmb3Igc29tZSBpbnRlZ3JhbCB0eXBlIFQuCisgICAgICAgIC8vIFdoZW4gaXNfc3BlY2lhbGl6ZWQgaXMgZmFsc2UsIHRoZSB3aG9sZSBleHByZXNzaW9uIGlzIDAuCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFNvdXJjZT4KKyAgICAgICAgc3RydWN0IGxjYXN0X3NyY19sZW5ndGhfaW50ZWdyYWwKKyAgICAgICAgeworI2lmbmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9CisgICAgICAgICAgICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZT46OmlzX3NpZ25lZCArCisgICAgICAgICAgICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZT46OmlzX3NwZWNpYWxpemVkICsgLyogPT0gMSAqLworICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2U+OjpkaWdpdHMxMCAqIDIKKyAgICAgICAgICAgICAgKTsKKyNlbHNlCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gMTU2KTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKFNvdXJjZSkgKiBDSEFSX0JJVCA8PSAyNTYpOworI2VuZGlmCisgICAgICAgIH07CisKKyNkZWZpbmUgQk9PU1RfTENBU1RfREVGKFQpICAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGxjYXN0X3NyY19sZW5ndGg8VD4gXAorICAgICAgICA6IGxjYXN0X3NyY19sZW5ndGhfaW50ZWdyYWw8VD4gICAgICAgICAgIFwKKyAgICB7IHN0YXRpYyB2b2lkIGNoZWNrX2NvdmVyYWdlKCkge30gfTsKKworICAgICAgICBCT09TVF9MQ0FTVF9ERUYoc2hvcnQpCisgICAgICAgIEJPT1NUX0xDQVNUX0RFRih1bnNpZ25lZCBzaG9ydCkKKyAgICAgICAgQk9PU1RfTENBU1RfREVGKGludCkKKyAgICAgICAgQk9PU1RfTENBU1RfREVGKHVuc2lnbmVkIGludCkKKyAgICAgICAgQk9PU1RfTENBU1RfREVGKGxvbmcpCisgICAgICAgIEJPT1NUX0xDQVNUX0RFRih1bnNpZ25lZCBsb25nKQorI2lmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyAgICAgICAgQk9PU1RfTENBU1RfREVGKG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUpCisgICAgICAgIEJPT1NUX0xDQVNUX0RFRihuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgKQorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCisgICAgICAgIEJPT1NUX0xDQVNUX0RFRih1bnNpZ25lZCBfX2ludDY0KQorICAgICAgICBCT09TVF9MQ0FTVF9ERUYoICAgICAgICAgX19pbnQ2NCkKKyNlbmRpZgorI2lmZGVmIEJPT1NUX0xDQVNUX0hBU19JTlQxMjgKKyAgICAgICAgQk9PU1RfTENBU1RfREVGKG5kbmJvb3N0OjppbnQxMjhfdHlwZSkKKyAgICAgICAgQk9PU1RfTENBU1RfREVGKG5kbmJvb3N0Ojp1aW50MTI4X3R5cGUpCisjZW5kaWYKKworI3VuZGVmIEJPT1NUX0xDQVNUX0RFRgorCisjaWZuZGVmIEJPT1NUX0xDQVNUX05PX0NPTVBJTEVfVElNRV9QUkVDSVNJT04KKyAgICAgICAgLy8gSGVscGVyIGZvciBmbG9hdGluZyBwb2ludCB0eXBlcy4KKyAgICAgICAgLy8gLTEuMjM0NTY3ODllLTEyMzQ1NgorICAgICAgICAvLyBeICAgICAgICAgICAgICAgICAgIHNpZ24KKyAgICAgICAgLy8gIF4gICAgICAgICAgICAgICAgICBsZWFkaW5nIGRpZ2l0CisgICAgICAgIC8vICAgXiAgICAgICAgICAgICAgICAgZGVjaW1hbCBwb2ludCAKKyAgICAgICAgLy8gICAgXl5eXl5eXl4gICAgICAgICBsY2FzdF9wcmVjaXNpb248U291cmNlPjo6dmFsdWUKKyAgICAgICAgLy8gICAgICAgICAgICBeICAgICAgICAiZSIKKyAgICAgICAgLy8gICAgICAgICAgICAgXiAgICAgICBleHBvbmVudCBzaWduCisgICAgICAgIC8vICAgICAgICAgICAgICBeXl5eXl4gZXhwb25lbnQgKGFzc3VtZWQgNiBvciBsZXNzIGRpZ2l0cykKKyAgICAgICAgLy8gc2lnbiArIGxlYWRpbmcgZGlnaXQgKyBkZWNpbWFsIHBvaW50ICsgImUiICsgZXhwb25lbnQgc2lnbiA9PSA1CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFNvdXJjZT4KKyAgICAgICAgc3RydWN0IGxjYXN0X3NyY19sZW5ndGhfZmxvYXRpbmcKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVCgKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2U+OjptYXhfZXhwb25lbnQxMCA8PSAgOTk5OTk5TCAmJgorICAgICAgICAgICAgICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZT46Om1pbl9leHBvbmVudDEwID49IC05OTk5OTlMCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPQorICAgICAgICAgICAgICAgICAgICA1ICsgbGNhc3RfcHJlY2lzaW9uPFNvdXJjZT46OnZhbHVlICsgNgorICAgICAgICAgICAgICAgICk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgbGNhc3Rfc3JjX2xlbmd0aDxmbG9hdD4KKyAgICAgICAgICA6IGxjYXN0X3NyY19sZW5ndGhfZmxvYXRpbmc8ZmxvYXQ+CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyB2b2lkIGNoZWNrX2NvdmVyYWdlKCkge30KKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCBsY2FzdF9zcmNfbGVuZ3RoPGRvdWJsZT4KKyAgICAgICAgICA6IGxjYXN0X3NyY19sZW5ndGhfZmxvYXRpbmc8ZG91YmxlPgorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMgdm9pZCBjaGVja19jb3ZlcmFnZSgpIHt9CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgbGNhc3Rfc3JjX2xlbmd0aDxsb25nIGRvdWJsZT4KKyAgICAgICAgICA6IGxjYXN0X3NyY19sZW5ndGhfZmxvYXRpbmc8bG9uZyBkb3VibGU+CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyB2b2lkIGNoZWNrX2NvdmVyYWdlKCkge30KKyAgICAgICAgfTsKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfTENBU1RfTk9fQ09NUElMRV9USU1FX1BSRUNJU0lPTgorICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gbGV4aWNhbF9jYXN0X3N0cmVhbV90cmFpdHM8U291cmNlLCBUYXJnZXQ+CisgICAgeworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgU291cmNlLCBjbGFzcyBUYXJnZXQ+CisgICAgICAgIHN0cnVjdCBsZXhpY2FsX2Nhc3Rfc3RyZWFtX3RyYWl0cyB7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG9fcG9pbnRlcl9kZWNheTxTb3VyY2U+Ojp0eXBlIHNyYzsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6cmVtb3ZlX2N2PHNyYz46OnR5cGUgICAgICAgICAgICBub19jdl9zcmM7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmRlZHVjZV9zb3VyY2VfY2hhcjxub19jdl9zcmM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkdWNlX3NyY19jaGFyX21ldGFmdW5jOworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRlZHVjZV9zcmNfY2hhcl9tZXRhZnVuYzo6dHlwZSAgICAgICAgICAgc3JjX2NoYXJfdDsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfdGFyZ2V0X2NoYXI8VGFyZ2V0Pjo6dHlwZSB0YXJnZXRfY2hhcl90OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5kbmJvb3N0OjpkZXRhaWw6OndpZGVzdF9jaGFyPAorICAgICAgICAgICAgICAgIHRhcmdldF9jaGFyX3QsIHNyY19jaGFyX3QKKyAgICAgICAgICAgID46OnR5cGUgY2hhcl90eXBlOworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QpICYmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUykKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKCggIW5kbmJvb3N0Ojppc19zYW1lPGNoYXIxNl90LCBzcmNfY2hhcl90Pjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhbmRuYm9vc3Q6OmlzX3NhbWU8Y2hhcjE2X3QsIHRhcmdldF9jaGFyX3Q+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgIllvdXIgY29tcGlsZXIgZG9lcyBub3QgaGF2ZSBmdWxsIHN1cHBvcnQgZm9yIGNoYXIxNl90IiApOworI2VuZGlmCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QpICYmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUykKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKCggIW5kbmJvb3N0Ojppc19zYW1lPGNoYXIzMl90LCBzcmNfY2hhcl90Pjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhbmRuYm9vc3Q6OmlzX3NhbWU8Y2hhcjMyX3QsIHRhcmdldF9jaGFyX3Q+Ojp2YWx1ZSksCisgICAgICAgICAgICAgICAgIllvdXIgY29tcGlsZXIgZG9lcyBub3QgaGF2ZSBmdWxsIHN1cHBvcnQgZm9yIGNoYXIzMl90IiApOworI2VuZGlmCisKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6ZGV0YWlsOjpkZWR1Y2VfY2hhcl90cmFpdHM8CisgICAgICAgICAgICAgICAgY2hhcl90eXBlLCBUYXJnZXQsIG5vX2N2X3NyYworICAgICAgICAgICAgPjo6dHlwZSB0cmFpdHM7CisKKyAgICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19zYW1lPGNoYXIsIHNyY19jaGFyX3Q+Ojp2YWx1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIGlzIG5vdCBhIHdpZGUgY2hhcmFjdGVyIGJhc2VkIHR5cGUKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9uZTxzaXplb2YoY2hhciksIHNpemVvZih0YXJnZXRfY2hhcl90KSA+Ojp2YWx1ZSwgIC8vIHRhcmdldCB0eXBlIGlzIGJhc2VkIG9uIHdpZGUgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjppc19jaGFyX29yX3djaGFyPG5vX2N2X3NyYz46OnZhbHVlICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGNoYXJhY3RlciB3aWRlbmluZyBpcyBvcHRpbWl6ZWQKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBkb2VzIG5vdCByZXF1aXJlcyBzdHJpbmdidWZmZXIKKyAgICAgICAgICAgID4gICBpc19zdHJpbmdfd2lkZW5pbmdfcmVxdWlyZWRfdDsKKworICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19pbnRlZ3JhbDxub19jdl9zcmM+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjppc190aGlzX2Zsb2F0X2NvbnZlcnNpb25fb3B0aW1pemVkPG5vX2N2X3NyYywgY2hhcl90eXBlID46OnZhbHVlLAorICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmlzX2NoYXJfb3Jfd2NoYXI8CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZGVkdWNlX3NyY19jaGFyX21ldGFmdW5jOjpzdGFnZTFfdHlwZSAgICAgICAgICAvLyBpZiB3ZSBkaWQgbm90IGdldCBjaGFyYWN0ZXIgdHlwZSBhdCBzdGFnZTEKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgaGF2ZSBubyBvcHRpbWl6YXRpb24gZm9yIHRoYXQgdHlwZQorICAgICAgICAgICAgPjo6dmFsdWUgPiAgIGlzX3NvdXJjZV9pbnB1dF9ub3Rfb3B0aW1pemVkX3Q7CisKKyAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gb3B0aW1pemVkIGNvbnZlcnNpb24gZm9yCisgICAgICAgICAgICAvLyBTb3VyY2UsIHdlIGRvIG5vdCBuZWVkIHRvIGNvbnN0cnVjdCBzdHJpbmdidWYuCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgcmVxdWlyZXNfc3RyaW5nYnVmID0gCisgICAgICAgICAgICAgICAgKG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICAgICAgICBpc19zdHJpbmdfd2lkZW5pbmdfcmVxdWlyZWRfdDo6dmFsdWUsIGlzX3NvdXJjZV9pbnB1dF9ub3Rfb3B0aW1pemVkX3Q6OnZhbHVlCisgICAgICAgICAgICAgICAgPjo6dmFsdWUpCisgICAgICAgICAgICApOworICAgICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmxjYXN0X3NyY19sZW5ndGg8bm9fY3Zfc3JjPiBsZW5fdDsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsIC8vICcwJywgJysnIGFuZCAnLScgY29uc3RhbnRzCisgICAgeworICAgICAgICB0ZW1wbGF0ZSA8IHR5cGVuYW1lIENoYXIgPiBzdHJ1Y3QgbGNhc3RfY2hhcl9jb25zdGFudHM7CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgbGNhc3RfY2hhcl9jb25zdGFudHM8Y2hhcj4KKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGNoYXIsIHplcm8gID0gJzAnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChjaGFyLCBtaW51cyA9ICctJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhciwgcGx1cyA9ICcrJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhciwgbG93ZXJjYXNlX2UgPSAnZScpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGNoYXIsIGNhcGl0YWxfZSA9ICdFJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhciwgY19kZWNpbWFsX3NlcGFyYXRvciA9ICcuJyk7CisgICAgICAgIH07CisKKyNpZm5kZWYgQk9PU1RfTENBU1RfTk9fV0NIQVJfVAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCBsY2FzdF9jaGFyX2NvbnN0YW50czx3Y2hhcl90PgorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQod2NoYXJfdCwgemVybyAgPSBMJzAnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh3Y2hhcl90LCBtaW51cyA9IEwnLScpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHdjaGFyX3QsIHBsdXMgPSBMJysnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh3Y2hhcl90LCBsb3dlcmNhc2VfZSA9IEwnZScpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHdjaGFyX3QsIGNhcGl0YWxfZSA9IEwnRScpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHdjaGFyX3QsIGNfZGVjaW1hbF9zZXBhcmF0b3IgPSBMJy4nKTsKKyAgICAgICAgfTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QpICYmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMpCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IGxjYXN0X2NoYXJfY29uc3RhbnRzPGNoYXIxNl90PgorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjE2X3QsIHplcm8gID0gdScwJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjE2X3QsIG1pbnVzID0gdSctJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjE2X3QsIHBsdXMgPSB1JysnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChjaGFyMTZfdCwgbG93ZXJjYXNlX2UgPSB1J2UnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChjaGFyMTZfdCwgY2FwaXRhbF9lID0gdSdFJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjE2X3QsIGNfZGVjaW1hbF9zZXBhcmF0b3IgPSB1Jy4nKTsKKyAgICAgICAgfTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QpICYmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMpCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IGxjYXN0X2NoYXJfY29uc3RhbnRzPGNoYXIzMl90PgorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjMyX3QsIHplcm8gID0gVScwJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjMyX3QsIG1pbnVzID0gVSctJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjMyX3QsIHBsdXMgPSBVJysnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChjaGFyMzJfdCwgbG93ZXJjYXNlX2UgPSBVJ2UnKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChjaGFyMzJfdCwgY2FwaXRhbF9lID0gVSdFJyk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoY2hhcjMyX3QsIGNfZGVjaW1hbF9zZXBhcmF0b3IgPSBVJy4nKTsKKyAgICAgICAgfTsKKyNlbmRpZgorICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gbGNhc3RfdG9fdW5zaWduZWQKKyAgICB7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgICAgIGlubGluZQorICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG1ha2VfdW5zaWduZWQ8VD46OnR5cGUgbGNhc3RfdG9fdW5zaWduZWQoVCB2YWx1ZSkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5kbmJvb3N0OjptYWtlX3Vuc2lnbmVkPFQ+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHJlc3VsdF90eXBlPigKKyAgICAgICAgICAgICAgICB2YWx1ZSA8IDAgPyAwdSAtIHN0YXRpY19jYXN0PHJlc3VsdF90eXBlPih2YWx1ZSkgOiB2YWx1ZQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gbGNhc3RfcHV0X3Vuc2lnbmVkCisgICAgeworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBUcmFpdHMsIGNsYXNzIFQsIGNsYXNzIENoYXJUPgorICAgICAgICBDaGFyVCogbGNhc3RfcHV0X3Vuc2lnbmVkKGNvbnN0IFQgbl9wYXJhbSwgQ2hhclQqIGZpbmlzaCkKKyAgICAgICAgeworI2lmbmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVCghc3RkOjpudW1lcmljX2xpbWl0czxUPjo6aXNfc2lnbmVkKTsKKyNlbmRpZgorCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6aW50X3R5cGUgaW50X3R5cGU7CisgICAgICAgICAgICBDaGFyVCBjb25zdCBjemVybyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6emVybzsKKyAgICAgICAgICAgIGludF90eXBlIGNvbnN0IHplcm8gPSBUcmFpdHM6OnRvX2ludF90eXBlKGN6ZXJvKTsKKyAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgICAgKHNpemVvZihpbnRfdHlwZSkgPiBzaXplb2YoVCkpCisgICAgICAgICAgICAgICAgICAgICwgaW50X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgLCBUCisgICAgICAgICAgICA+Ojp0eXBlIG4gPSBuX3BhcmFtOworCisjaWZuZGVmIEJPT1NUX0xFWElDQUxfQ0FTVF9BU1NVTUVfQ19MT0NBTEUKKyAgICAgICAgICAgIHN0ZDo6bG9jYWxlIGxvYzsKKyAgICAgICAgICAgIGlmIChsb2MgIT0gc3RkOjpsb2NhbGU6OmNsYXNzaWMoKSkgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpudW1wdW5jdDxDaGFyVD4gbnVtcHVuY3Q7CisgICAgICAgICAgICAgICAgbnVtcHVuY3QgY29uc3QmIG5wID0gQk9PU1RfVVNFX0ZBQ0VUKG51bXB1bmN0LCBsb2MpOworICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0IGdyb3VwaW5nID0gbnAuZ3JvdXBpbmcoKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGNvbnN0IGdyb3VwaW5nX3NpemUgPSBncm91cGluZy5zaXplKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoIGdyb3VwaW5nX3NpemUgJiYgZ3JvdXBpbmdbMF0gPiAwICkKKyAgICAgICAgICAgICAgICB7CisKKyNpZm5kZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHVsaW1pdGVkIGdyb3VwIGlzIHVucmVhY2hhYmxlOgorICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6ZGlnaXRzMTAgPCBDSEFSX01BWCk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgQ2hhclQgdGhvdXNhbmRzX3NlcCA9IG5wLnRob3VzYW5kc19zZXAoKTsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBncm91cCA9IDA7IC8vIGN1cnJlbnQgZ3JvdXAgbnVtYmVyCisgICAgICAgICAgICAgICAgICAgIGNoYXIgbGFzdF9ncnBfc2l6ZSA9IGdyb3VwaW5nWzBdOworICAgICAgICAgICAgICAgICAgICBjaGFyIGxlZnQgPSBsYXN0X2dycF9zaXplOworCisgICAgICAgICAgICAgICAgICAgIGRvCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxlZnQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2dyb3VwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGdyb3VwIDwgZ3JvdXBpbmdfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY29uc3QgZ3JwX3NpemUgPSBncm91cGluZ1tncm91cF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZ3JwX3NpemUgPSBncnBfc2l6ZSA8PSAwID8gc3RhdGljX2Nhc3Q8Y2hhcj4oQ0hBUl9NQVgpIDogZ3JwX3NpemU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGxhc3RfZ3JwX3NpemU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1maW5pc2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhaXRzOjphc3NpZ24oKmZpbmlzaCwgdGhvdXNhbmRzX3NlcCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tbGVmdDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLS1maW5pc2g7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRfdHlwZSBjb25zdCBkaWdpdCA9IHN0YXRpY19jYXN0PGludF90eXBlPihuICUgMTBVKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0czo6YXNzaWduKCpmaW5pc2gsIFRyYWl0czo6dG9fY2hhcl90eXBlKHplcm8gKyBkaWdpdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbiAvPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShuKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmlzaDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkbworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLS1maW5pc2g7CisgICAgICAgICAgICAgICAgICAgIGludF90eXBlIGNvbnN0IGRpZ2l0ID0gc3RhdGljX2Nhc3Q8aW50X3R5cGU+KG4gJSAxMFUpOworICAgICAgICAgICAgICAgICAgICBUcmFpdHM6OmFzc2lnbigqZmluaXNoLCBUcmFpdHM6OnRvX2NoYXJfdHlwZSh6ZXJvICsgZGlnaXQpKTsKKyAgICAgICAgICAgICAgICAgICAgbiAvPSAxMDsKKyAgICAgICAgICAgICAgICB9IHdoaWxlKG4pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZmluaXNoOworICAgICAgICB9CisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbCAvLyBsY2FzdF9yZXRfdW5zaWduZWQKKyAgICB7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cywgY2xhc3MgVCwgY2xhc3MgQ2hhclQ+CisgICAgICAgIGlubGluZSBib29sIGxjYXN0X3JldF91bnNpZ25lZChUJiB2YWx1ZSwgY29uc3QgQ2hhclQqIGNvbnN0IGJlZ2luLCBjb25zdCBDaGFyVCogZW5kKQorICAgICAgICB7CisjaWZuZGVmIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCFzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zaWduZWQpOworI2VuZGlmCisgICAgICAgICAgICBDaGFyVCBjb25zdCBjemVybyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6emVybzsKKyAgICAgICAgICAgIC0tZW5kOworICAgICAgICAgICAgdmFsdWUgPSAwOworCisgICAgICAgICAgICBpZiAoYmVnaW4gPiBlbmQgfHwgKmVuZCA8IGN6ZXJvIHx8ICplbmQgPj0gY3plcm8gKyAxMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PFQ+KCplbmQgLSBjemVybyk7CisgICAgICAgICAgICAtLWVuZDsKKyAgICAgICAgICAgIFQgbXVsdGlwbGllciA9IDE7CisgICAgICAgICAgICBib29sIG11bHRpcGxpZXJfb3ZlcmZsb3dlZCA9IGZhbHNlOworCisjaWZuZGVmIEJPT1NUX0xFWElDQUxfQ0FTVF9BU1NVTUVfQ19MT0NBTEUKKyAgICAgICAgICAgIHN0ZDo6bG9jYWxlIGxvYzsKKyAgICAgICAgICAgIGlmIChsb2MgIT0gc3RkOjpsb2NhbGU6OmNsYXNzaWMoKSkgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpudW1wdW5jdDxDaGFyVD4gbnVtcHVuY3Q7CisgICAgICAgICAgICAgICAgbnVtcHVuY3QgY29uc3QmIG5wID0gQk9PU1RfVVNFX0ZBQ0VUKG51bXB1bmN0LCBsb2MpOworICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBncm91cGluZyA9IG5wLmdyb3VwaW5nKCk7CisgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBjb25zdCBncm91cGluZ19zaXplID0gZ3JvdXBpbmcuc2l6ZSgpOworCisgICAgICAgICAgICAgICAgLyogQWNjb3JkaW5nIHRvIFByb2dyYW1taW5nIGxhbmd1YWdlcyAtIEMrKworICAgICAgICAgICAgICAgICAqIHdlIE1VU1QgY2hlY2sgZm9yIGNvcnJlY3QgZ3JvdXBpbmcKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdfc2l6ZSAmJiBncm91cGluZ1swXSA+IDApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGN1cnJlbnRfZ3JvdXBpbmcgPSAwOworICAgICAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCB0aG91c2FuZHNfc2VwID0gbnAudGhvdXNhbmRzX3NlcCgpOworICAgICAgICAgICAgICAgICAgICBjaGFyIHJlbWFpbmVkID0gc3RhdGljX2Nhc3Q8Y2hhcj4oZ3JvdXBpbmdbY3VycmVudF9ncm91cGluZ10gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBzaGFsbF93ZV9yZXR1cm4gPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIGZvcig7ZW5kPj1iZWdpbjsgLS1lbmQpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZW1haW5lZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQgY29uc3QgbXVsdGlwbGllcl8xMCA9IHN0YXRpY19jYXN0PFQ+KG11bHRpcGxpZXIgKiAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG11bHRpcGxpZXJfMTAgLyAxMCAhPSBtdWx0aXBsaWVyKSBtdWx0aXBsaWVyX292ZXJmbG93ZWQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCBjb25zdCBkaWdfdmFsdWUgPSBzdGF0aWNfY2FzdDxUPigqZW5kIC0gY3plcm8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQgY29uc3QgbmV3X3N1Yl92YWx1ZSA9IHN0YXRpY19jYXN0PFQ+KG11bHRpcGxpZXJfMTAgKiBkaWdfdmFsdWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCplbmQgPCBjemVybyB8fCAqZW5kID49IGN6ZXJvICsgMTAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRldGVjdGluZyBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGRpZ192YWx1ZSAmJiBuZXdfc3ViX3ZhbHVlIC8gZGlnX3ZhbHVlICE9IG11bHRpcGxpZXJfMTApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBzdGF0aWNfY2FzdDxUPigoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KSgpLW5ld19zdWJfdmFsdWUpIDwgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtdWx0aXBsaWVyX292ZXJmbG93ZWQgJiYgZGlnX3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PFQ+KHZhbHVlICsgbmV3X3N1Yl92YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllciA9IHN0YXRpY19jYXN0PFQ+KG11bHRpcGxpZXIgKiAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1yZW1haW5lZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhVHJhaXRzOjplcSgqZW5kLCB0aG91c2FuZHNfc2VwKSApIC8vfHwgYmVnaW4gPT0gZW5kICkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQWNjb3JkaW5nIHRvIFByb2dyYW1taW5nIGxhbmd1YWdlcyAtIEMrKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBEaWdpdCBncm91cGluZyBpcyBjaGVja2VkLiBUaGF0IGlzLCB0aGUgcG9zaXRpb25zIG9mIGRpc2NhcmRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzZXBhcmF0b3JzIGlzIGV4YW1pbmVkIGZvciBjb25zaXN0ZW5jeSB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHVzZV9mYWNldDxudW1wdW5jdDxjaGFyVD4gPihsb2MgKS5ncm91cGluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEJVVCB3aGF0IGlmIHRoZXJlIGlzIG5vIHNlcGFyYXRvcnMgYXQgYWxsIGFuZCBncm91cGluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlzIG5vdCBlbXB0eT8gV2VsbCwgd2UgaGF2ZSBubyBleHRyYWNlZCBzZXBhcmF0b3JzLCBzbyB3ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB3b25gdCBjaGVjayB0aGVtIGZvciBjb25zaXN0ZW5jeS4gVGhpcyB3aWxsIGFsbG93IHVzIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdvcmsgd2l0aCAiQyIgbG9jYWxlIGZyb20gb3RoZXIgbG9jYWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGxfd2VfcmV0dXJuID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggYmVnaW4gPT0gZW5kICkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudF9ncm91cGluZyA8IGdyb3VwaW5nX3NpemUtMSApICsrY3VycmVudF9ncm91cGluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZWQgPSBncm91cGluZ1tjdXJyZW50X2dyb3VwaW5nXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoc2hhbGxfd2VfcmV0dXJuKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoIGJlZ2luIDw9IGVuZCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBUIGNvbnN0IG11bHRpcGxpZXJfMTAgPSBzdGF0aWNfY2FzdDxUPihtdWx0aXBsaWVyICogMTApOworICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGllcl8xMCAvIDEwICE9IG11bHRpcGxpZXIpIG11bHRpcGxpZXJfb3ZlcmZsb3dlZCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgVCBjb25zdCBkaWdfdmFsdWUgPSBzdGF0aWNfY2FzdDxUPigqZW5kIC0gY3plcm8pOworICAgICAgICAgICAgICAgICAgICBUIGNvbnN0IG5ld19zdWJfdmFsdWUgPSBzdGF0aWNfY2FzdDxUPihtdWx0aXBsaWVyXzEwICogZGlnX3ZhbHVlKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoKmVuZCA8IGN6ZXJvIHx8ICplbmQgPj0gY3plcm8gKyAxMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRldGVjdGluZyBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChkaWdfdmFsdWUgJiYgbmV3X3N1Yl92YWx1ZSAvIGRpZ192YWx1ZSAhPSBtdWx0aXBsaWVyXzEwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHN0YXRpY19jYXN0PFQ+KChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgpKCktbmV3X3N1Yl92YWx1ZSkgPCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtdWx0aXBsaWVyX292ZXJmbG93ZWQgJiYgZGlnX3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PFQ+KHZhbHVlICsgbmV3X3N1Yl92YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgPSBzdGF0aWNfY2FzdDxUPihtdWx0aXBsaWVyICogMTApOworICAgICAgICAgICAgICAgICAgICAtLWVuZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBDaGFyVD4KKyAgICAgICAgYm9vbCBsY19pZXF1YWwoY29uc3QgQ2hhclQqIHZhbCwgY29uc3QgQ2hhclQqIGxjYXNlLCBjb25zdCBDaGFyVCogdWNhc2UsIHVuc2lnbmVkIGludCBsZW4pIEJPT1NUX05PRVhDRVBUIHsKKyAgICAgICAgICAgIGZvciggdW5zaWduZWQgaW50IGk9MDsgaSA8IGxlbjsgKytpICkgeworICAgICAgICAgICAgICAgIGlmICggdmFsW2ldICE9IGxjYXNlW2ldICYmIHZhbFtpXSAhPSB1Y2FzZVtpXSApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKiBSZXR1cm5zIHRydWUgYW5kIHNldHMgdGhlIGNvcnJlY3QgdmFsdWUgaWYgZm91bmQgTmFOIG9yIEluZi4gKi8KKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIENoYXJULCBjbGFzcyBUPgorICAgICAgICBpbmxpbmUgYm9vbCBwYXJzZV9pbmZfbmFuX2ltcGwoY29uc3QgQ2hhclQqIGJlZ2luLCBjb25zdCBDaGFyVCogZW5kLCBUJiB2YWx1ZQorICAgICAgICAgICAgLCBjb25zdCBDaGFyVCogbGNfTkFOLCBjb25zdCBDaGFyVCogbGNfbmFuCisgICAgICAgICAgICAsIGNvbnN0IENoYXJUKiBsY19JTkZJTklUWSwgY29uc3QgQ2hhclQqIGxjX2luZmluaXR5CisgICAgICAgICAgICAsIGNvbnN0IENoYXJUIG9wZW5pbmdfYnJhY2UsIGNvbnN0IENoYXJUIGNsb3NpbmdfYnJhY2UpIEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgICAgICAgICBpZiAoYmVnaW4gPT0gZW5kKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjb25zdCBDaGFyVCBtaW51cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6bWludXM7CisgICAgICAgICAgICBjb25zdCBDaGFyVCBwbHVzID0gbGNhc3RfY2hhcl9jb25zdGFudHM8Q2hhclQ+OjpwbHVzOworICAgICAgICAgICAgY29uc3QgaW50IGluaWZpbml0eV9zaXplID0gODsKKworICAgICAgICAgICAgYm9vbCBoYXNfbWludXMgPSBmYWxzZTsKKyAgICAgICAgICAgIC8qIFBhcnNpbmcgKy8tICovCisgICAgICAgICAgICBpZiggKmJlZ2luID09IG1pbnVzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICsrIGJlZ2luOworICAgICAgICAgICAgICAgIGhhc19taW51cyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmKCAqYmVnaW4gPT0gcGx1cyApICsrYmVnaW47CisKKyAgICAgICAgICAgIGlmKCBlbmQtYmVnaW4gPCAzICkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYoIGxjX2llcXVhbChiZWdpbiwgbGNfbmFuLCBsY19OQU4sIDMpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBiZWdpbiArPSAzOworICAgICAgICAgICAgICAgIGlmIChlbmQgIT0gYmVnaW4pIC8qIEl0IGlzICduYW4oLi4uKScgb3Igc29tZSBiYWQgaW5wdXQqLworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoZW5kLWJlZ2luPDIpIHJldHVybiBmYWxzZTsgLy8gYmFkIGlucHV0CisgICAgICAgICAgICAgICAgICAgIC0tIGVuZDsKKyAgICAgICAgICAgICAgICAgICAgaWYoICpiZWdpbiAhPSBvcGVuaW5nX2JyYWNlIHx8ICplbmQgIT0gY2xvc2luZ19icmFjZSkgcmV0dXJuIGZhbHNlOyAvLyBiYWQgaW5wdXQKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiggIWhhc19taW51cyApIHZhbHVlID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6cXVpZXRfTmFOKCk7CisgICAgICAgICAgICAgICAgZWxzZSB2YWx1ZSA9IChuZG5ib29zdDo6bWF0aDo6Y2hhbmdlc2lnbikgKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OnF1aWV0X05hTigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaWYgKCggLyogJ0lORicgb3IgJ2luZicgKi8KKyAgICAgICAgICAgICAgICAgIGVuZC1iZWdpbj09MworICAgICAgICAgICAgICAgICAgJiYKKyAgICAgICAgICAgICAgICAgIGxjX2llcXVhbChiZWdpbiwgbGNfaW5maW5pdHksIGxjX0lORklOSVRZLCAzKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICggLyogJ0lORklOSVRZJyBvciAnaW5maW5pdHknICovCisgICAgICAgICAgICAgICAgICBlbmQtYmVnaW49PWluaWZpbml0eV9zaXplCisgICAgICAgICAgICAgICAgICAmJgorICAgICAgICAgICAgICAgICAgbGNfaWVxdWFsKGJlZ2luLCBsY19pbmZpbml0eSwgbGNfSU5GSU5JVFksIGluaWZpbml0eV9zaXplKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYoICFoYXNfbWludXMgKSB2YWx1ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmluZmluaXR5KCk7CisgICAgICAgICAgICAgICAgZWxzZSB2YWx1ZSA9IChuZG5ib29zdDo6bWF0aDo6Y2hhbmdlc2lnbikgKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmluZmluaXR5KCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ2hhclQsIGNsYXNzIFQ+CisgICAgICAgIGJvb2wgcHV0X2luZl9uYW5faW1wbChDaGFyVCogYmVnaW4sIENoYXJUKiYgZW5kLCBjb25zdCBUJiB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICwgY29uc3QgQ2hhclQqIGxjX25hbgorICAgICAgICAgICAgICAgICAgICAgICAgICwgY29uc3QgQ2hhclQqIGxjX2luZmluaXR5KSBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOworICAgICAgICAgICAgY29uc3QgQ2hhclQgbWludXMgPSBsY2FzdF9jaGFyX2NvbnN0YW50czxDaGFyVD46Om1pbnVzOworICAgICAgICAgICAgaWYgKCAobmRuYm9vc3Q6Om1hdGg6OmlzbmFuKSh2YWx1ZSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICggKG5kbmJvb3N0OjptYXRoOjpzaWduYml0KSh2YWx1ZSkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgKmJlZ2luID0gbWludXM7CisgICAgICAgICAgICAgICAgICAgICsrIGJlZ2luOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1lbWNweShiZWdpbiwgbGNfbmFuLCAzICogc2l6ZW9mKENoYXJUKSk7CisgICAgICAgICAgICAgICAgZW5kID0gYmVnaW4gKyAzOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmICggKG5kbmJvb3N0OjptYXRoOjppc2luZikodmFsdWUpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIChuZG5ib29zdDo6bWF0aDo6c2lnbmJpdCkodmFsdWUpICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICpiZWdpbiA9IG1pbnVzOworICAgICAgICAgICAgICAgICAgICArKyBiZWdpbjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtZW1jcHkoYmVnaW4sIGxjX2luZmluaXR5LCAzICogc2l6ZW9mKENoYXJUKSk7CisgICAgICAgICAgICAgICAgZW5kID0gYmVnaW4gKyAzOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworCisjaWZuZGVmIEJPT1NUX0xDQVNUX05PX1dDSEFSX1QKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIGJvb2wgcGFyc2VfaW5mX25hbihjb25zdCB3Y2hhcl90KiBiZWdpbiwgY29uc3Qgd2NoYXJfdCogZW5kLCBUJiB2YWx1ZSkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBhcnNlX2luZl9uYW5faW1wbChiZWdpbiwgZW5kLCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgTCJOQU4iLCBMIm5hbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIEwiSU5GSU5JVFkiLCBMImluZmluaXR5IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgTCcoJywgTCcpJyk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgYm9vbCBwdXRfaW5mX25hbih3Y2hhcl90KiBiZWdpbiwgd2NoYXJfdComIGVuZCwgY29uc3QgVCYgdmFsdWUpIEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBwdXRfaW5mX25hbl9pbXBsKGJlZ2luLCBlbmQsIHZhbHVlLCBMIm5hbiIsIEwiaW5maW5pdHkiKTsKKyAgICAgICAgfQorCisjZW5kaWYKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9DSEFSMTZfVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUykKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIGJvb2wgcGFyc2VfaW5mX25hbihjb25zdCBjaGFyMTZfdCogYmVnaW4sIGNvbnN0IGNoYXIxNl90KiBlbmQsIFQmIHZhbHVlKSBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcGFyc2VfaW5mX25hbl9pbXBsKGJlZ2luLCBlbmQsIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB1Ik5BTiIsIHUibmFuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdSJJTkZJTklUWSIsIHUiaW5maW5pdHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB1JygnLCB1JyknKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICBib29sIHB1dF9pbmZfbmFuKGNoYXIxNl90KiBiZWdpbiwgY2hhcjE2X3QqJiBlbmQsIGNvbnN0IFQmIHZhbHVlKSBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcHV0X2luZl9uYW5faW1wbChiZWdpbiwgZW5kLCB2YWx1ZSwgdSJuYW4iLCB1ImluZmluaXR5Iik7CisgICAgICAgIH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0NIQVIzMl9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTKQorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgYm9vbCBwYXJzZV9pbmZfbmFuKGNvbnN0IGNoYXIzMl90KiBiZWdpbiwgY29uc3QgY2hhcjMyX3QqIGVuZCwgVCYgdmFsdWUpIEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBwYXJzZV9pbmZfbmFuX2ltcGwoYmVnaW4sIGVuZCwgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIFUiTkFOIiwgVSJuYW4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBVIklORklOSVRZIiwgVSJpbmZpbml0eSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIFUnKCcsIFUnKScpOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIGJvb2wgcHV0X2luZl9uYW4oY2hhcjMyX3QqIGJlZ2luLCBjaGFyMzJfdComIGVuZCwgY29uc3QgVCYgdmFsdWUpIEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBwdXRfaW5mX25hbl9pbXBsKGJlZ2luLCBlbmQsIHZhbHVlLCBVIm5hbiIsIFUiaW5maW5pdHkiKTsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIENoYXJULCBjbGFzcyBUPgorICAgICAgICBib29sIHBhcnNlX2luZl9uYW4oY29uc3QgQ2hhclQqIGJlZ2luLCBjb25zdCBDaGFyVCogZW5kLCBUJiB2YWx1ZSkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBhcnNlX2luZl9uYW5faW1wbChiZWdpbiwgZW5kLCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIk5BTiIsICJuYW4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAiSU5GSU5JVFkiLCAiaW5maW5pdHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnKCcsICcpJyk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ2hhclQsIGNsYXNzIFQ+CisgICAgICAgIGJvb2wgcHV0X2luZl9uYW4oQ2hhclQqIGJlZ2luLCBDaGFyVComIGVuZCwgY29uc3QgVCYgdmFsdWUpIEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBwdXRfaW5mX25hbl9pbXBsKGJlZ2luLCBlbmQsIHZhbHVlLCAibmFuIiwgImluZmluaXR5Iik7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIG5hbWVzcGFjZSBkZXRhaWwgLy8gbGNhc3RfcmV0X2Zsb2F0CisgICAgeworCisvLyBTaWxlbmNlIGJ1Z2d5IE1TIHdhcm5pbmdzIGxpa2UgQzQyNDQ6ICcrPScgOiBjb252ZXJzaW9uIGZyb20gJ2ludCcgdG8gJ3Vuc2lnbmVkIHNob3J0JywgcG9zc2libGUgbG9zcyBvZiBkYXRhIAorI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA9PSAxNDAwKSAKKyMgIHByYWdtYSB3YXJuaW5nKHB1c2gpIAorIyAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MjQ0KSAKKyNlbmRpZiAKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdCBtYW50aXNzYV9ob2xkZXJfdHlwZQorICAgICAgICB7CisgICAgICAgICAgICAvKiBDYW4gbm90IGJlIHVzZWQgd2l0aCB0aGlzIHR5cGUgKi8KKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8PgorICAgICAgICBzdHJ1Y3QgbWFudGlzc2FfaG9sZGVyX3R5cGU8ZmxvYXQ+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgdW5zaWduZWQgaW50IHR5cGU7CisgICAgICAgICAgICB0eXBlZGVmIGRvdWJsZSAgICAgICB3aWRlX3Jlc3VsdF90OworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDw+CisgICAgICAgIHN0cnVjdCBtYW50aXNzYV9ob2xkZXJfdHlwZTxkb3VibGU+CisgICAgICAgIHsKKyNpZm5kZWYgQk9PU1RfTUFUSF9OT19MT05HX0RPVUJMRV9NQVRIX0ZVTkNUSU9OUworICAgICAgICAgICAgdHlwZWRlZiBsb25nIGRvdWJsZSAgd2lkZV9yZXN1bHRfdDsKKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUgdHlwZTsKKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorICAgICAgICAgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IHR5cGU7CisjZW5kaWYKKyNlbmRpZgorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cywgY2xhc3MgVCwgY2xhc3MgQ2hhclQ+CisgICAgICAgIGlubGluZSBib29sIGxjYXN0X3JldF9mbG9hdChUJiB2YWx1ZSwgY29uc3QgQ2hhclQqIGJlZ2luLCBjb25zdCBDaGFyVCogZW5kKQorICAgICAgICB7CisKKyNpZm5kZWYgQk9PU1RfTEVYSUNBTF9DQVNUX0FTU1VNRV9DX0xPQ0FMRQorICAgICAgICAgICAgc3RkOjpsb2NhbGUgbG9jOworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6Om51bXB1bmN0PENoYXJUPiBudW1wdW5jdDsKKyAgICAgICAgICAgIG51bXB1bmN0IGNvbnN0JiBucCA9IEJPT1NUX1VTRV9GQUNFVChudW1wdW5jdCwgbG9jKTsKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0IGdyb3VwaW5nKAorICAgICAgICAgICAgICAgICAgICAobG9jID09IHN0ZDo6bG9jYWxlOjpjbGFzc2ljKCkpCisgICAgICAgICAgICAgICAgICAgID8gc3RkOjpzdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICA6IG5wLmdyb3VwaW5nKCkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGNvbnN0IGdyb3VwaW5nX3NpemUgPSBncm91cGluZy5zaXplKCk7CisgICAgICAgICAgICBDaGFyVCBjb25zdCB0aG91c2FuZHNfc2VwID0gc3RhdGljX2Nhc3Q8Q2hhclQ+KGdyb3VwaW5nX3NpemUgPyBucC50aG91c2FuZHNfc2VwKCkgOiAwKTsKKyAgICAgICAgICAgIENoYXJUIGNvbnN0IGRlY2ltYWxfcG9pbnQgPSBucC5kZWNpbWFsX3BvaW50KCk7CisgICAgICAgICAgICBib29sIGZvdW5kX2dyb3VwaW5nID0gZmFsc2U7CisgICAgICAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGxhc3RfZ3JvdXBpbmdfcG9zID0gZ3JvdXBpbmdfc2l6ZSAtIDE7CisjZWxzZQorICAgICAgICAgICAgQ2hhclQgY29uc3QgZGVjaW1hbF9wb2ludCA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6Y19kZWNpbWFsX3NlcGFyYXRvcjsKKyNlbmRpZgorCisgICAgICAgICAgICBDaGFyVCBjb25zdCBjemVybyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6emVybzsKKyAgICAgICAgICAgIENoYXJUIGNvbnN0IG1pbnVzID0gbGNhc3RfY2hhcl9jb25zdGFudHM8Q2hhclQ+OjptaW51czsKKyAgICAgICAgICAgIENoYXJUIGNvbnN0IHBsdXMgPSBsY2FzdF9jaGFyX2NvbnN0YW50czxDaGFyVD46OnBsdXM7CisgICAgICAgICAgICBDaGFyVCBjb25zdCBjYXBpdGFsX2UgPSBsY2FzdF9jaGFyX2NvbnN0YW50czxDaGFyVD46OmNhcGl0YWxfZTsKKyAgICAgICAgICAgIENoYXJUIGNvbnN0IGxvd2VyY2FzZV9lID0gbGNhc3RfY2hhcl9jb25zdGFudHM8Q2hhclQ+Ojpsb3dlcmNhc2VfZTsKKworICAgICAgICAgICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxUPigwKTsKKworICAgICAgICAgICAgaWYgKHBhcnNlX2luZl9uYW4oYmVnaW4sIGVuZCwgdmFsdWUpKSByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmludF90eXBlIGludF90eXBlOworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG1hbnRpc3NhX2hvbGRlcl90eXBlPFQ+Ojp0eXBlIG1hbnRpc3NhX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbWFudGlzc2FfaG9sZGVyX3R5cGU8VD46OndpZGVfcmVzdWx0X3Qgd2lkZV9yZXN1bHRfdDsKKyAgICAgICAgICAgIGludF90eXBlIGNvbnN0IHplcm8gPSBUcmFpdHM6OnRvX2ludF90eXBlKGN6ZXJvKTsKKyAgICAgICAgICAgIGlmIChiZWdpbiA9PSBlbmQpIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgLyogR2V0dGluZyB0aGUgcGx1cy9taW51cyBzaWduICovCisgICAgICAgICAgICBib29sIGhhc19taW51cyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKFRyYWl0czo6ZXEoKmJlZ2luLCBtaW51cykgKSB7CisgICAgICAgICAgICAgICAgKysgYmVnaW47CisgICAgICAgICAgICAgICAgaGFzX21pbnVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoYmVnaW4gPT0gZW5kKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKFRyYWl0czo6ZXEoKmJlZ2luLCBwbHVzKSApIHsKKyAgICAgICAgICAgICAgICArK2JlZ2luOworICAgICAgICAgICAgICAgIGlmIChiZWdpbiA9PSBlbmQpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBmb3VuZF9kZWNpbWFsID0gZmFsc2U7CisgICAgICAgICAgICBib29sIGZvdW5kX251bWJlcl9iZWZvcmVfZXhwID0gZmFsc2U7CisgICAgICAgICAgICBpbnQgcG93X29mXzEwID0gMDsKKyAgICAgICAgICAgIG1hbnRpc3NhX3R5cGUgbWFudGlzc2E9MDsKKyAgICAgICAgICAgIGJvb2wgaXNfbWFudGlzc2FfZnVsbCA9IGZhbHNlOworCisgICAgICAgICAgICBjaGFyIGxlbmd0aF9zaW5jZV9sYXN0X2RlbGltID0gMDsKKworICAgICAgICAgICAgd2hpbGUgKCBiZWdpbiAhPSBlbmQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChmb3VuZF9kZWNpbWFsKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIFdlIGFsbG93IG5vIHRob3VzYW5kX3NlcGFyYXRvcnMgYWZ0ZXIgZGVjaW1hbCBwb2ludCAqLworCisgICAgICAgICAgICAgICAgICAgIG1hbnRpc3NhX3R5cGUgdG1wX21hbnRpc3NhID0gbWFudGlzc2EgKiAxMHU7CisgICAgICAgICAgICAgICAgICAgIGlmIChUcmFpdHM6OmVxKCpiZWdpbiwgbG93ZXJjYXNlX2UpIHx8IFRyYWl0czo6ZXEoKmJlZ2luLCBjYXBpdGFsX2UpKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCAqYmVnaW4gPCBjemVybyB8fCAqYmVnaW4gPj0gY3plcm8gKyAxMCApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCAgICBpc19tYW50aXNzYV9mdWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdG1wX21hbnRpc3NhIC8gMTB1ICE9IG1hbnRpc3NhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHN0ZDo6bnVtZXJpY19saW1pdHM8bWFudGlzc2FfdHlwZT46Om1heCkoKS0oKmJlZ2luIC0gemVybykgPCB0bXBfbWFudGlzc2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX21hbnRpc3NhX2Z1bGwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgKysgYmVnaW47CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC0tIHBvd19vZl8xMDsKKyAgICAgICAgICAgICAgICAgICAgbWFudGlzc2EgPSB0bXBfbWFudGlzc2E7CisgICAgICAgICAgICAgICAgICAgIG1hbnRpc3NhICs9ICpiZWdpbiAtIHplcm87CisKKyAgICAgICAgICAgICAgICAgICAgZm91bmRfbnVtYmVyX2JlZm9yZV9leHAgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCpiZWdpbiA+PSBjemVybyAmJiAqYmVnaW4gPCBjemVybyArIDEwKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIENoZWNraW5nIGZvciBtYW50aXNzYSBvdmVyZmxvdy4gSWYgb3ZlcmZsb3cgd2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgICogb2NjdXIsIHRoZW0gd2Ugb25seSBpbmNyZWFzZSBtdWx0aXBseWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG1hbnRpc3NhX3R5cGUgdG1wX21hbnRpc3NhID0gbWFudGlzc2EgKiAxMHU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiggICAgICFpc19tYW50aXNzYV9mdWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHRtcF9tYW50aXNzYSAvIDEwdSA9PSBtYW50aXNzYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoc3RkOjpudW1lcmljX2xpbWl0czxtYW50aXNzYV90eXBlPjo6bWF4KSgpLSgqYmVnaW4gLSB6ZXJvKSA+PSB0bXBfbWFudGlzc2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFudGlzc2EgPSB0bXBfbWFudGlzc2E7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFudGlzc2EgKz0gKmJlZ2luIC0gemVybzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX21hbnRpc3NhX2Z1bGwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrIHBvd19vZl8xMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbnVtYmVyX2JlZm9yZV9leHAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgKysgbGVuZ3RoX3NpbmNlX2xhc3RfZGVsaW07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoVHJhaXRzOjplcSgqYmVnaW4sIGRlY2ltYWxfcG9pbnQpIHx8IFRyYWl0czo6ZXEoKmJlZ2luLCBsb3dlcmNhc2VfZSkgfHwgVHJhaXRzOjplcSgqYmVnaW4sIGNhcGl0YWxfZSkpIHsKKyNpZm5kZWYgQk9PU1RfTEVYSUNBTF9DQVNUX0FTU1VNRV9DX0xPQ0FMRQorICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgKCB3ZSBuZWVkIHRvIGNoZWNrIGdyb3VwaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgIGFuZCAoICAgZ3JvdXBpbmcgbWlzc21hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICBvciBncm91cGluZyBwb3NpdGlvbiBpcyBpbmNvcnJlY3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICBvciB3ZSBhcmUgdXNpbmcgdGhlIGdyb3VwaW5nIHBvc2l0aW9uIDAgdHdpY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICApIHRoZW4gcmV0dXJuIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBncm91cGluZ19zaXplICYmIGZvdW5kX2dyb3VwaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhfc2luY2VfbGFzdF9kZWxpbSAhPSBncm91cGluZ1swXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBsYXN0X2dyb3VwaW5nX3Bvcz4xCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChsYXN0X2dyb3VwaW5nX3Bvcz09MCAmJiBncm91cGluZ19zaXplPjEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFRyYWl0czo6ZXEoKmJlZ2luLCBkZWNpbWFsX3BvaW50KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrIGJlZ2luOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2RlY2ltYWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZm91bmRfbnVtYmVyX2JlZm9yZV9leHAgJiYgYmVnaW49PWVuZCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZm91bmRfbnVtYmVyX2JlZm9yZV9leHApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorI2lmbmRlZiBCT09TVF9MRVhJQ0FMX0NBU1RfQVNTVU1FX0NfTE9DQUxFCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGdyb3VwaW5nX3NpemUgJiYgVHJhaXRzOjplcSgqYmVnaW4sIHRob3VzYW5kc19zZXApKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZvdW5kX2dyb3VwaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEl0IGlzIG5vdCBoZSBmaXJzdCB0aW1lLCB3aGVuIHdlIGZpbmQgdGhvdXNhbmRzIHNlcGFyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzbyB3ZSBuZWVkIHRvIGNoZWssIGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHR3byBncm91cGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBlcXVhbCB0byBncm91cGluZ1tsYXN0X2dyb3VwaW5nX3Bvc10gKi8KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGhfc2luY2VfbGFzdF9kZWxpbSAhPSBncm91cGluZ1tsYXN0X2dyb3VwaW5nX3Bvc10gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXN0X2dyb3VwaW5nX3BvcykgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGxhc3RfZ3JvdXBpbmdfcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aF9zaW5jZV9sYXN0X2RlbGltICE9IGdyb3VwaW5nW2xhc3RfZ3JvdXBpbmdfcG9zXSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBncm91cGluZ1swXSB0d2ljZSwgd2hlbiBncm91cGluZyBzaXplIGlzIG1vcmUgdGhhbiAxICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cGluZ19zaXplPjF1ICYmIGxhc3RfZ3JvdXBpbmdfcG9zKzE8Z3JvdXBpbmdfc2l6ZSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERlbGltaXRlciBhdCB0aGUgYmVnaW5pbmcgJywwMDAnICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsZW5ndGhfc2luY2VfbGFzdF9kZWxpbSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfZ3JvdXBpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGhfc2luY2VfbGFzdF9kZWxpbSA+IGdyb3VwaW5nW2xhc3RfZ3JvdXBpbmdfcG9zXSApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoX3NpbmNlX2xhc3RfZGVsaW0gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgKysgYmVnaW47CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERlbGltaXRlciBhdCB0aGUgZW5kICcxMDAsJyAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luID09IGVuZCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICArK2JlZ2luOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBFeHBvbmVudCBmb3VuZAorICAgICAgICAgICAgaWYgKCBiZWdpbiAhPSBlbmQgJiYgKFRyYWl0czo6ZXEoKmJlZ2luLCBsb3dlcmNhc2VfZSkgfHwgVHJhaXRzOjplcSgqYmVnaW4sIGNhcGl0YWxfZSkpICkgeworICAgICAgICAgICAgICAgICsrIGJlZ2luOworICAgICAgICAgICAgICAgIGlmICggYmVnaW4gPT0gZW5kICkgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgYm9vbCBleHBfaGFzX21pbnVzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYoVHJhaXRzOjplcSgqYmVnaW4sIG1pbnVzKSkgeworICAgICAgICAgICAgICAgICAgICBleHBfaGFzX21pbnVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgKysgYmVnaW47CisgICAgICAgICAgICAgICAgICAgIGlmICggYmVnaW4gPT0gZW5kICkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoVHJhaXRzOjplcSgqYmVnaW4sIHBsdXMpKSB7CisgICAgICAgICAgICAgICAgICAgICsrIGJlZ2luOworICAgICAgICAgICAgICAgICAgICBpZiAoIGJlZ2luID09IGVuZCApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgZXhwX3Bvd19vZl8xMCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKCBiZWdpbiAhPSBlbmQgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCAqYmVnaW4gPCBjemVybworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICpiZWdpbiA+PSBjemVybyArIDEwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZXhwX3Bvd19vZl8xMCAqIDEwIDwgZXhwX3Bvd19vZl8xMCkgLyogT3ZlcmZsb3dzIGFyZSBjaGVja2VkIGxvd2VyIG1vcmUgcHJlY2lzZWx5Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgICAgICBleHBfcG93X29mXzEwICo9IDEwOworICAgICAgICAgICAgICAgICAgICBleHBfcG93X29mXzEwICs9ICpiZWdpbiAtIHplcm87CisgICAgICAgICAgICAgICAgICAgICsrIGJlZ2luOworICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICBpZiAoIGV4cF9wb3dfb2ZfMTAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIE92ZXJmbG93cyBhcmUgY2hlY2tlZCBsb3dlciAqLworICAgICAgICAgICAgICAgICAgICBpZiAoIGV4cF9oYXNfbWludXMgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3dfb2ZfMTAgLT0gZXhwX3Bvd19vZl8xMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvd19vZl8xMCArPSBleHBfcG93X29mXzEwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBXZSBuZWVkIGEgbW9yZSBhY2N1cmF0ZSBhbGdvcml0aG0uLi4gV2UgY2FuIG5vdCB1c2UgY3VycmVudCBhbGdvcml0aG0KKyAgICAgICAgICAgICAqIHdpdGggbG9uZyBkb3VibGVzIChhbmQgd2l0aCBkb3VibGVzIGlmIHNpemVvZihkb3VibGUpPT1zaXplb2YobG9uZyBkb3VibGUpKS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgY29uc3Qgd2lkZV9yZXN1bHRfdCByZXN1bHQgPSBzdGQ6OnBvdyhzdGF0aWNfY2FzdDx3aWRlX3Jlc3VsdF90PigxMC4wKSwgcG93X29mXzEwKSAqIG1hbnRpc3NhOworICAgICAgICAgICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxUPiggaGFzX21pbnVzID8gKG5kbmJvb3N0OjptYXRoOjpjaGFuZ2VzaWduKShyZXN1bHQpIDogcmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKCAobmRuYm9vc3Q6Om1hdGg6OmlzaW5mKSh2YWx1ZSkgfHwgKG5kbmJvb3N0OjptYXRoOjppc25hbikodmFsdWUpICkgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorLy8gVW5zaWxlbmNlIGJ1Z2d5IE1TIHdhcm5pbmdzIGxpa2UgQzQyNDQ6ICcrPScgOiBjb252ZXJzaW9uIGZyb20gJ2ludCcgdG8gJ3Vuc2lnbmVkIHNob3J0JywgcG9zc2libGUgbG9zcyBvZiBkYXRhIAorI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA9PSAxNDAwKSAKKyMgIHByYWdtYSB3YXJuaW5nKHBvcCkgCisjZW5kaWYgCisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbCAvLyBwYXJzZXJfYnVmCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBjbGFzcyBwYXJzZXJfYnVmOgorICAgICAgICAvLyBhY3RzIGFzIGEgc3RyZWFtIGJ1ZmZlciB3aGljaCB3cmFwcyBhcm91bmQgYSBwYWlyIG9mIHBvaW50ZXJzCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoaXMgY2xhc3MgaXMgY29waWVkIChhbmQgc2xpZ2h0bHkgY2hhbmdlZCkgZnJvbQorICAgICAgICAvLyBib29zdC9yZWdleC92NC9jcHBfcmVnZXhfdHJhaXRzLmhwcAorICAgICAgICAvLyBUaGFua3MgSm9obiBNYWRkb2NrIGZvciBpdCEgKHByZXZpb3VzIHZlcnNpb24gaGFkIHNvbWUKKyAgICAgICAgLy8gcHJvYmxlbXMgd2l0aCBsaWJjKysgYW5kIHNvbWUgb3RoZXIgU1RMIGltcGxlbWVudGF0aW9ucykKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEJ1ZmZlclR5cGUsIGNsYXNzIGNoYXJUPgorICAgICAgICBjbGFzcyBwYXJzZXJfYnVmIDogcHVibGljIEJ1ZmZlclR5cGUgeworICAgICAgICAgICB0eXBlZGVmIEJ1ZmZlclR5cGUgYmFzZV90eXBlOworICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGJhc2VfdHlwZTo6aW50X3R5cGUgaW50X3R5cGU7CisgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzZV90eXBlOjpjaGFyX3R5cGUgY2hhcl90eXBlOworICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGJhc2VfdHlwZTo6cG9zX3R5cGUgcG9zX3R5cGU7CisgICAgICAgICAgIHR5cGVkZWYgOjpzdGQ6OnN0cmVhbXNpemUgc3RyZWFtc2l6ZTsKKyAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNlX3R5cGU6Om9mZl90eXBlIG9mZl90eXBlOworCisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgcGFyc2VyX2J1ZigpIDogYmFzZV90eXBlKCkgeyBzZXRidWYoMCwgMCk7IH0KKyAgICAgICAgICAgY29uc3QgY2hhclQqIGdldG5leHQoKSB7IHJldHVybiB0aGlzLT5ncHRyKCk7IH0KKyNpZm5kZWYgQk9PU1RfTk9fVVNJTkdfVEVNUExBVEUKKyAgICAgICAgICAgIHVzaW5nIGJhc2VfdHlwZTo6cHB0cjsKKyAgICAgICAgICAgIHVzaW5nIGJhc2VfdHlwZTo6cGJhc2U7CisjZWxzZQorICAgICAgICAgICAgY2hhclQqIHBwdHIoKSBjb25zdCB7IHJldHVybiBiYXNlX3R5cGU6OnBwdHIoKTsgfQorICAgICAgICAgICAgY2hhclQqIHBiYXNlKCkgY29uc3QgeyByZXR1cm4gYmFzZV90eXBlOjpwYmFzZSgpOyB9CisjZW5kaWYKKyAgICAgICAgICAgYmFzZV90eXBlKiBzZXRidWYoY2hhcl90eXBlKiBzLCBzdHJlYW1zaXplIG4pIHsKKyAgICAgICAgICAgICAgIHRoaXMtPnNldGcocywgcywgcyArIG4pOworICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgIH0KKworICAgICAgICAgICBwb3NfdHlwZSBzZWVrcG9zKHBvc190eXBlIHNwLCA6OnN0ZDo6aW9zX2Jhc2U6Om9wZW5tb2RlIHdoaWNoKSB7CisgICAgICAgICAgICAgICBpZih3aGljaCAmIDo6c3RkOjppb3NfYmFzZTo6b3V0KQorICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc190eXBlKG9mZl90eXBlKC0xKSk7CisgICAgICAgICAgICAgICBvZmZfdHlwZSBzaXplID0gc3RhdGljX2Nhc3Q8b2ZmX3R5cGU+KHRoaXMtPmVncHRyKCkgLSB0aGlzLT5lYmFjaygpKTsKKyAgICAgICAgICAgICAgIGNoYXJUKiBnID0gdGhpcy0+ZWJhY2soKTsKKyAgICAgICAgICAgICAgIGlmKG9mZl90eXBlKHNwKSA8PSBzaXplKQorICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdGhpcy0+c2V0ZyhnLCBnICsgb2ZmX3R5cGUoc3ApLCBnICsgc2l6ZSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICByZXR1cm4gcG9zX3R5cGUob2ZmX3R5cGUoLTEpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICBwb3NfdHlwZSBzZWVrb2ZmKG9mZl90eXBlIG9mZiwgOjpzdGQ6Omlvc19iYXNlOjpzZWVrZGlyIHdheSwgOjpzdGQ6Omlvc19iYXNlOjpvcGVubW9kZSB3aGljaCkgeworICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aW50X3Q8c2l6ZW9mKHdheSkgKiBDSEFSX0JJVD46OmxlYXN0IGNhc3RfdHlwZTsKKworICAgICAgICAgICAgICAgaWYod2hpY2ggJiA6OnN0ZDo6aW9zX2Jhc2U6Om91dCkKKyAgICAgICAgICAgICAgICAgIHJldHVybiBwb3NfdHlwZShvZmZfdHlwZSgtMSkpOworICAgICAgICAgICAgICAgc3RkOjpwdHJkaWZmX3Qgc2l6ZSA9IHRoaXMtPmVncHRyKCkgLSB0aGlzLT5lYmFjaygpOworICAgICAgICAgICAgICAgc3RkOjpwdHJkaWZmX3QgcG9zID0gdGhpcy0+Z3B0cigpIC0gdGhpcy0+ZWJhY2soKTsKKyAgICAgICAgICAgICAgIGNoYXJUKiBnID0gdGhpcy0+ZWJhY2soKTsKKyAgICAgICAgICAgICAgIHN3aXRjaChzdGF0aWNfY2FzdDxjYXN0X3R5cGU+KHdheSkpCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICBjYXNlIDo6c3RkOjppb3NfYmFzZTo6YmVnOgorICAgICAgICAgICAgICAgICAgaWYoKG9mZiA8IDApIHx8IChvZmYgPiBzaXplKSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3NfdHlwZShvZmZfdHlwZSgtMSkpOworICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgdGhpcy0+c2V0ZyhnLCBnICsgb2ZmLCBnICsgc2l6ZSk7CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgOjpzdGQ6Omlvc19iYXNlOjplbmQ6CisgICAgICAgICAgICAgICAgICBpZigob2ZmIDwgMCkgfHwgKG9mZiA+IHNpemUpKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc190eXBlKG9mZl90eXBlKC0xKSk7CisgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICB0aGlzLT5zZXRnKGcsIGcgKyBzaXplIC0gb2ZmLCBnICsgc2l6ZSk7CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgOjpzdGQ6Omlvc19iYXNlOjpjdXI6CisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBzdGQ6OnB0cmRpZmZfdCBuZXdwb3MgPSBzdGF0aWNfY2FzdDxzdGQ6OnB0cmRpZmZfdD4ocG9zICsgb2ZmKTsKKyAgICAgICAgICAgICAgICAgIGlmKChuZXdwb3MgPCAwKSB8fCAobmV3cG9zID4gc2l6ZSkpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zX3R5cGUob2ZmX3R5cGUoLTEpKTsKKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMtPnNldGcoZywgZyArIG5ld3BvcywgZyArIHNpemUpOworICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBkZWZhdWx0OiA7CisgICAgICAgICAgICAgICB9CisjaWZkZWYgQk9PU1RfTVNWQworI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MjQ0KQorI2VuZGlmCisgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8cG9zX3R5cGU+KHRoaXMtPmdwdHIoKSAtIHRoaXMtPmViYWNrKCkpOworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgcGFyc2VyX2J1ZiYgb3BlcmF0b3I9KGNvbnN0IHBhcnNlcl9idWYmKTsKKyAgICAgICAgICAgcGFyc2VyX2J1Zihjb25zdCBwYXJzZXJfYnVmJik7CisgICAgICAgIH07CisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbAorICAgIHsKKyAgICAgICAgc3RydWN0IGRvX25vdF9jb25zdHJ1Y3Rfb3V0X3N0cmVhbV90e307CisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbCAvLyBvcHRpbWl6ZWQgc3RyZWFtIHdyYXBwZXIKKyAgICB7CisgICAgICAgIC8vIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBTb3VyY2UgaGFzIGFuIHVwcGVyIGxpbWl0LgorICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgQ2hhclQgLy8gYSByZXN1bHQgb2Ygd2lkZXN0X2NoYXIgdHJhbnNmb3JtYXRpb24KKyAgICAgICAgICAgICAgICAsIGNsYXNzIFRyYWl0cyAvLyB1c3VhbGx5IGNoYXJfdHJhaXRzPENoYXJUPgorICAgICAgICAgICAgICAgICwgYm9vbCBSZXF1aXJlc1N0cmluZ2J1ZmZlcgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgY2xhc3MgbGV4aWNhbF9zdHJlYW1fbGltaXRlZF9zcmMKKyAgICAgICAgeworCisjaWYgZGVmaW5lZChCT09TVF9OT19TVFJJTkdTVFJFQU0pCisgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6b3N0cnN0cmVhbSAgICAgICAgICAgICAgICAgICAgICAgICBvdXRfc3RyZWFtX3Q7CisjZWxpZiBkZWZpbmVkKEJPT1NUX05PX1NURF9MT0NBTEUpCisgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6b3N0cmluZ3N0cmVhbSAgICAgICAgICAgICAgICAgICAgICBvdXRfc3RyZWFtX3Q7CisgICAgICAgICAgICB0eXBlZGVmIHBhcnNlcl9idWY8c3RkOjpzdHJlYW1idWYsIGNoYXI+ICAgICAgICBidWZmZXJfdDsKKyNlbHNlCisgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxDaGFyVCwgVHJhaXRzPiAgICAgICAgICAgICAgICAgb3V0X3N0cmVhbV90OworICAgICAgICAgICAgdHlwZWRlZiBwYXJzZXJfYnVmPHN0ZDo6YmFzaWNfc3RyZWFtYnVmPENoYXJULCBUcmFpdHM+LCBDaGFyVD4gIGJ1ZmZlcl90OworI2VuZGlmCisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICBSZXF1aXJlc1N0cmluZ2J1ZmZlciwKKyAgICAgICAgICAgICAgICBvdXRfc3RyZWFtX3QsCisgICAgICAgICAgICAgICAgZG9fbm90X2NvbnN0cnVjdF9vdXRfc3RyZWFtX3QKKyAgICAgICAgICAgID46OnR5cGUgZGVkdWNlZF9vdXRfc3RyZWFtX3Q7CisKKyAgICAgICAgICAgIC8vIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIFNvdXJjZSBpcyB3cml0dGVuIHRvIFtzdGFydCwgZmluaXNoKS4KKyAgICAgICAgICAgIENoYXJUKiBzdGFydDsKKyAgICAgICAgICAgIENoYXJUKiBmaW5pc2g7CisgICAgICAgICAgICBkZWR1Y2VkX291dF9zdHJlYW1fdCBvdXRfc3RyZWFtOworCisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIGxleGljYWxfc3RyZWFtX2xpbWl0ZWRfc3JjKENoYXJUKiBzdGEsIENoYXJUKiBmaW4pIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICAgIDogc3RhcnQoc3RhKQorICAgICAgICAgICAgICAsIGZpbmlzaChmaW4pCisgICAgICAgICAgICB7fQorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAvLyBVbmRlZmluZWQ6CisgICAgICAgICAgICBsZXhpY2FsX3N0cmVhbV9saW1pdGVkX3NyYyhsZXhpY2FsX3N0cmVhbV9saW1pdGVkX3NyYyBjb25zdCYpOworICAgICAgICAgICAgdm9pZCBvcGVyYXRvcj0obGV4aWNhbF9zdHJlYW1fbGltaXRlZF9zcmMgY29uc3QmKTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBIRUxQRVIgRlVOQ1RJT05TIEZPUiBPUEVSQVRPUlMgPDwgKCAuLi4gKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAgICAgICAgIGJvb2wgc2hsX2NoYXIoQ2hhclQgY2gpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgVHJhaXRzOjphc3NpZ24oKnN0YXJ0LCBjaCk7CisgICAgICAgICAgICAgICAgZmluaXNoID0gc3RhcnQgKyAxOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisjaWZuZGVmIEJPT1NUX0xDQVNUX05PX1dDSEFSX1QKKyAgICAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICAgICAgYm9vbCBzaGxfY2hhcihUIGNoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKCggc2l6ZW9mKFQpIDw9IHNpemVvZihDaGFyVCkpICwKKyAgICAgICAgICAgICAgICAgICAgIm5kbmJvb3N0OjpsZXhpY2FsX2Nhc3QgZG9lcyBub3Qgc3VwcG9ydCBuYXJyb3dpbmcgb2YgY2hhciB0eXBlcy4iCisgICAgICAgICAgICAgICAgICAgICJVc2UgbmRuYm9vc3Q6OmxvY2FsZSBpbnN0ZWFkIiApOworI2lmbmRlZiBCT09TVF9MRVhJQ0FMX0NBU1RfQVNTVU1FX0NfTE9DQUxFCisgICAgICAgICAgICAgICAgc3RkOjpsb2NhbGUgbG9jOworICAgICAgICAgICAgICAgIENoYXJUIGNvbnN0IHcgPSBCT09TVF9VU0VfRkFDRVQoc3RkOjpjdHlwZTxDaGFyVD4sIGxvYykud2lkZW4oY2gpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCB3ID0gc3RhdGljX2Nhc3Q8Q2hhclQ+KGNoKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIFRyYWl0czo6YXNzaWduKCpzdGFydCwgdyk7CisgICAgICAgICAgICAgICAgZmluaXNoID0gc3RhcnQgKyAxOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgICAgIGJvb2wgc2hsX2NoYXJfYXJyYXkoQ2hhclQgY29uc3QqIHN0cikgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IGNvbnN0X2Nhc3Q8Q2hhclQqPihzdHIpOworICAgICAgICAgICAgICAgIGZpbmlzaCA9IHN0YXJ0ICsgVHJhaXRzOjpsZW5ndGgoc3RyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgICAgICBib29sIHNobF9jaGFyX2FycmF5KFQgY29uc3QqIHN0cikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUX01TRygoIHNpemVvZihUKSA8PSBzaXplb2YoQ2hhclQpKSwKKyAgICAgICAgICAgICAgICAgICAgIm5kbmJvb3N0OjpsZXhpY2FsX2Nhc3QgZG9lcyBub3Qgc3VwcG9ydCBuYXJyb3dpbmcgb2YgY2hhciB0eXBlcy4iCisgICAgICAgICAgICAgICAgICAgICJVc2UgbmRuYm9vc3Q6OmxvY2FsZSBpbnN0ZWFkIiApOworICAgICAgICAgICAgICAgIHJldHVybiBzaGxfaW5wdXRfc3RyZWFtYWJsZShzdHIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBib29sIHNobF9jaGFyX2FycmF5X2xpbWl0ZWQoQ2hhclQgY29uc3QqIHN0ciwgc3RkOjpzaXplX3QgbWF4X3NpemUpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBjb25zdF9jYXN0PENoYXJUKj4oc3RyKTsKKyAgICAgICAgICAgICAgICBmaW5pc2ggPSBzdGQ6OmZpbmQoc3RhcnQsIHN0YXJ0ICsgbWF4X3NpemUsIFRyYWl0czo6dG9fY2hhcl90eXBlKDApKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRTdHJlYW1hYmxlPgorICAgICAgICAgICAgYm9vbCBzaGxfaW5wdXRfc3RyZWFtYWJsZShJbnB1dFN0cmVhbWFibGUmIGlucHV0KQorICAgICAgICAgICAgeworI2lmIGRlZmluZWQoQk9PU1RfTk9fU1RSSU5HU1RSRUFNKSB8fCBkZWZpbmVkKEJPT1NUX05PX1NURF9MT0NBTEUpCisgICAgICAgICAgICAgICAgLy8gSWYgeW91IGhhdmUgY29tcGlsYXRpb24gZXJyb3IgYXQgdGhpcyBwb2ludCwgdGhhbiB5b3VyIFNUTCBsaWJyYXJ5CisgICAgICAgICAgICAgICAgLy8gZG9lcyBub3Qgc3VwcG9ydCBzdWNoIGNvbnZlcnNpb25zLiBUcnkgdXBkYXRpbmcgaXQuCisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVCgobmRuYm9vc3Q6OmlzX3NhbWU8Y2hhciwgQ2hhclQ+Ojp2YWx1ZSkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgYm9vbCBjb25zdCByZXN1bHQgPSAhKG91dF9zdHJlYW0gPDwgaW5wdXQpLmZhaWwoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBidWZmZXJfdCogY29uc3QgcCA9IHN0YXRpY19jYXN0PGJ1ZmZlcl90Kj4oCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHN0ZDo6YmFzaWNfc3RyZWFtYnVmPENoYXJULCBUcmFpdHM+Kj4ob3V0X3N0cmVhbS5yZGJ1ZigpKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBwLT5wYmFzZSgpOworICAgICAgICAgICAgICAgIGZpbmlzaCA9IHAtPnBwdHIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgICAgIGlubGluZSBib29sIHNobF9zaWduZWQoVCBuKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbGNhc3RfcHV0X3Vuc2lnbmVkPFRyYWl0cz4obGNhc3RfdG9fdW5zaWduZWQobiksIGZpbmlzaCk7CisgICAgICAgICAgICAgICAgaWYobiA8IDApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAtLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBtaW51cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6bWludXM7CisgICAgICAgICAgICAgICAgICAgIFRyYWl0czo6YXNzaWduKCpzdGFydCwgbWludXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFNvbWVDaGFyVD4KKyAgICAgICAgICAgIGJvb2wgc2hsX3JlYWxfdHlwZShjb25zdCBUJiB2YWwsIFNvbWVDaGFyVCogYmVnaW4sIFNvbWVDaGFyVComIGVuZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAocHV0X2luZl9uYW4oYmVnaW4sIGVuZCwgdmFsKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgbGNhc3Rfc2V0X3ByZWNpc2lvbihvdXRfc3RyZWFtLCAmdmFsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2hsX2lucHV0X3N0cmVhbWFibGUodmFsKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhdGljIGJvb2wgc2hsX3JlYWxfdHlwZShmbG9hdCB2YWwsIGNoYXIqIGJlZ2luLCBjaGFyKiYgZW5kKQorICAgICAgICAgICAgeyAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgICAgICAgICAgICAgaWYgKHB1dF9pbmZfbmFuKGJlZ2luLCBlbmQsIHZhbCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGNvbnN0IGRvdWJsZSB2YWxfYXNfZG91YmxlID0gdmFsOworICAgICAgICAgICAgICAgIGVuZCA9IGJlZ2luICsgCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApICYmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSAmJiAhZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKQorICAgICAgICAgICAgICAgICAgICBzcHJpbnRmX3MoYmVnaW4sIGVuZC1iZWdpbiwKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgIHNwcmludGYoYmVnaW4sIAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICIlLipnIiwgc3RhdGljX2Nhc3Q8aW50PihuZG5ib29zdDo6ZGV0YWlsOjpsY2FzdF9nZXRfcHJlY2lzaW9uPGZsb2F0PigpKSwgdmFsX2FzX2RvdWJsZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVuZCA+IGJlZ2luOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGF0aWMgYm9vbCBzaGxfcmVhbF90eXBlKGRvdWJsZSB2YWwsIGNoYXIqIGJlZ2luLCBjaGFyKiYgZW5kKQorICAgICAgICAgICAgeyAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgICAgICAgICAgICAgaWYgKHB1dF9pbmZfbmFuKGJlZ2luLCBlbmQsIHZhbCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGVuZCA9IGJlZ2luICsgCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApICYmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSAmJiAhZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKQorICAgICAgICAgICAgICAgICAgICBzcHJpbnRmX3MoYmVnaW4sIGVuZC1iZWdpbiwKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgIHNwcmludGYoYmVnaW4sIAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICIlLipnIiwgc3RhdGljX2Nhc3Q8aW50PihuZG5ib29zdDo6ZGV0YWlsOjpsY2FzdF9nZXRfcHJlY2lzaW9uPGRvdWJsZT4oKSksIHZhbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVuZCA+IGJlZ2luOworICAgICAgICAgICAgfQorCisjaWZuZGVmIF9fTUlOR1czMl9fCisgICAgICAgICAgICBzdGF0aWMgYm9vbCBzaGxfcmVhbF90eXBlKGxvbmcgZG91YmxlIHZhbCwgY2hhciogYmVnaW4sIGNoYXIqJiBlbmQpCisgICAgICAgICAgICB7ICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyAgICAgICAgICAgICAgICBpZiAocHV0X2luZl9uYW4oYmVnaW4sIGVuZCwgdmFsKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgZW5kID0gYmVnaW4gKyAKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTQwMCkgJiYgIWRlZmluZWQoX19TR0lfU1RMX1BPUlQpICYmICFkZWZpbmVkKF9TVExQT1JUX1ZFUlNJT04pCisgICAgICAgICAgICAgICAgICAgIHNwcmludGZfcyhiZWdpbiwgZW5kLWJlZ2luLAorI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihiZWdpbiwgCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgIiUuKkxnIiwgc3RhdGljX2Nhc3Q8aW50PihuZG5ib29zdDo6ZGV0YWlsOjpsY2FzdF9nZXRfcHJlY2lzaW9uPGxvbmcgZG91YmxlPigpKSwgdmFsICk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVuZCA+IGJlZ2luOworICAgICAgICAgICAgfQorI2VuZGlmCisKKworI2lmICFkZWZpbmVkKEJPT1NUX0xDQVNUX05PX1dDSEFSX1QpICYmICFkZWZpbmVkKEJPT1NUX05PX1NXUFJJTlRGKSAmJiAhZGVmaW5lZChfX01JTkdXMzJfXykKKyAgICAgICAgICAgIHN0YXRpYyBib29sIHNobF9yZWFsX3R5cGUoZmxvYXQgdmFsLCB3Y2hhcl90KiBiZWdpbiwgd2NoYXJfdComIGVuZCkKKyAgICAgICAgICAgIHsgICB1c2luZyBuYW1lc3BhY2Ugc3RkOworICAgICAgICAgICAgICAgIGlmIChwdXRfaW5mX25hbihiZWdpbiwgZW5kLCB2YWwpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb25zdCBkb3VibGUgdmFsX2FzX2RvdWJsZSA9IHZhbDsKKyAgICAgICAgICAgICAgICBlbmQgPSBiZWdpbiArIHN3cHJpbnRmKGJlZ2luLCBlbmQtYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIiUuKmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihuZG5ib29zdDo6ZGV0YWlsOjpsY2FzdF9nZXRfcHJlY2lzaW9uPGZsb2F0ID4oKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxfYXNfZG91YmxlICk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVuZCA+IGJlZ2luOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGF0aWMgYm9vbCBzaGxfcmVhbF90eXBlKGRvdWJsZSB2YWwsIHdjaGFyX3QqIGJlZ2luLCB3Y2hhcl90KiYgZW5kKQorICAgICAgICAgICAgeyAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgICAgICAgICAgICAgaWYgKHB1dF9pbmZfbmFuKGJlZ2luLCBlbmQsIHZhbCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGVuZCA9IGJlZ2luICsgc3dwcmludGYoYmVnaW4sIGVuZC1iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwiJS4qZyIsIHN0YXRpY19jYXN0PGludD4obmRuYm9vc3Q6OmRldGFpbDo6bGNhc3RfZ2V0X3ByZWNpc2lvbjxkb3VibGUgPigpKSwgdmFsICk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVuZCA+IGJlZ2luOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGF0aWMgYm9vbCBzaGxfcmVhbF90eXBlKGxvbmcgZG91YmxlIHZhbCwgd2NoYXJfdCogYmVnaW4sIHdjaGFyX3QqJiBlbmQpCisgICAgICAgICAgICB7ICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyAgICAgICAgICAgICAgICBpZiAocHV0X2luZl9uYW4oYmVnaW4sIGVuZCwgdmFsKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgZW5kID0gYmVnaW4gKyBzd3ByaW50ZihiZWdpbiwgZW5kLWJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCIlLipMZyIsIHN0YXRpY19jYXN0PGludD4obmRuYm9vc3Q6OmRldGFpbDo6bGNhc3RfZ2V0X3ByZWNpc2lvbjxsb25nIGRvdWJsZSA+KCkpLCB2YWwgKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZW5kID4gYmVnaW47CisgICAgICAgICAgICB9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBPUEVSQVRPUlMgPDwgKCAuLi4gKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgQWxsb2M+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoc3RkOjpiYXNpY19zdHJpbmc8Q2hhclQsVHJhaXRzLEFsbG9jPiBjb25zdCYgc3RyKSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gY29uc3RfY2FzdDxDaGFyVCo+KHN0ci5kYXRhKCkpOworICAgICAgICAgICAgICAgIGZpbmlzaCA9IHN0YXJ0ICsgc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBBbGxvYz4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChuZG5ib29zdDo6Y29udGFpbmVyOjpiYXNpY19zdHJpbmc8Q2hhclQsVHJhaXRzLEFsbG9jPiBjb25zdCYgc3RyKSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gY29uc3RfY2FzdDxDaGFyVCo+KHN0ci5kYXRhKCkpOworICAgICAgICAgICAgICAgIGZpbmlzaCA9IHN0YXJ0ICsgc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoYm9vbCB2YWx1ZSkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBjemVybyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6emVybzsKKyAgICAgICAgICAgICAgICBUcmFpdHM6OmFzc2lnbigqc3RhcnQsIFRyYWl0czo6dG9fY2hhcl90eXBlKGN6ZXJvICsgdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBmaW5pc2ggPSBzdGFydCArIDE7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjb25zdCBpdGVyYXRvcl9yYW5nZTxDaGFyVCo+JiBybmcpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBybmcuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICBmaW5pc2ggPSBybmcuZW5kKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoY29uc3QgaXRlcmF0b3JfcmFuZ2U8Y29uc3QgQ2hhclQqPiYgcm5nKSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gY29uc3RfY2FzdDxDaGFyVCo+KHJuZy5iZWdpbigpKTsKKyAgICAgICAgICAgICAgICBmaW5pc2ggPSBjb25zdF9jYXN0PENoYXJUKj4ocm5nLmVuZCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjb25zdCBpdGVyYXRvcl9yYW5nZTxjb25zdCBzaWduZWQgY2hhcio+JiBybmcpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgqdGhpcykgPDwgaXRlcmF0b3JfcmFuZ2U8Y2hhcio+KAorICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGNoYXIqPihyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihybmcuYmVnaW4oKSkpLAorICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGNoYXIqPihyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihybmcuZW5kKCkpKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjb25zdCBpdGVyYXRvcl9yYW5nZTxjb25zdCB1bnNpZ25lZCBjaGFyKj4mIHJuZykgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKCp0aGlzKSA8PCBpdGVyYXRvcl9yYW5nZTxjaGFyKj4oCisgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJuZy5iZWdpbigpKSksCisgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJuZy5lbmQoKSkpCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGNvbnN0IGl0ZXJhdG9yX3JhbmdlPHNpZ25lZCBjaGFyKj4mIHJuZykgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKCp0aGlzKSA8PCBpdGVyYXRvcl9yYW5nZTxjaGFyKj4oCisgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJuZy5iZWdpbigpKSwKKyAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocm5nLmVuZCgpKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjb25zdCBpdGVyYXRvcl9yYW5nZTx1bnNpZ25lZCBjaGFyKj4mIHJuZykgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKCp0aGlzKSA8PCBpdGVyYXRvcl9yYW5nZTxjaGFyKj4oCisgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJuZy5iZWdpbigpKSwKKyAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocm5nLmVuZCgpKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjaGFyIGNoKSAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gc2hsX2NoYXIoY2gpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwodW5zaWduZWQgY2hhciBjaCkgICAgICAgICAgIHsgcmV0dXJuICgoKnRoaXMpIDw8IHN0YXRpY19jYXN0PGNoYXI+KGNoKSk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChzaWduZWQgY2hhciBjaCkgICAgICAgICAgICAgeyByZXR1cm4gKCgqdGhpcykgPDwgc3RhdGljX2Nhc3Q8Y2hhcj4oY2gpKTsgfQorI2lmICFkZWZpbmVkKEJPT1NUX0xDQVNUX05PX1dDSEFSX1QpCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwod2NoYXJfdCBjb25zdCogc3RyKSAgICAgICAgIHsgcmV0dXJuIHNobF9jaGFyX2FycmF5KHN0cik7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PCh3Y2hhcl90ICogc3RyKSAgICAgICAgICAgICAgeyByZXR1cm4gc2hsX2NoYXJfYXJyYXkoc3RyKTsgfQorI2lmbmRlZiBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KHdjaGFyX3QgY2gpICAgICAgICAgICAgICAgICB7IHJldHVybiBzaGxfY2hhcihjaCk7IH0KKyNlbmRpZgorI2VuZGlmCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QpICYmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMpCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoY2hhcjE2X3QgY2gpICAgICAgICAgICAgICAgIHsgcmV0dXJuIHNobF9jaGFyKGNoKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGNoYXIxNl90ICogc3RyKSAgICAgICAgICAgICB7IHJldHVybiBzaGxfY2hhcl9hcnJheShzdHIpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoY2hhcjE2X3QgY29uc3QgKiBzdHIpICAgICAgIHsgcmV0dXJuIHNobF9jaGFyX2FycmF5KHN0cik7IH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0NIQVIzMl9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTKQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGNoYXIzMl90IGNoKSAgICAgICAgICAgICAgICB7IHJldHVybiBzaGxfY2hhcihjaCk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjaGFyMzJfdCAqIHN0cikgICAgICAgICAgICAgeyByZXR1cm4gc2hsX2NoYXJfYXJyYXkoc3RyKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGNoYXIzMl90IGNvbnN0ICogc3RyKSAgICAgICB7IHJldHVybiBzaGxfY2hhcl9hcnJheShzdHIpOyB9CisjZW5kaWYKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PCh1bnNpZ25lZCBjaGFyIGNvbnN0KiBjaCkgICAgeyByZXR1cm4gKCgqdGhpcykgPDwgcmVpbnRlcnByZXRfY2FzdDxjaGFyIGNvbnN0Kj4oY2gpKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KHVuc2lnbmVkIGNoYXIgKiBjaCkgICAgICAgICB7IHJldHVybiAoKCp0aGlzKSA8PCByZWludGVycHJldF9jYXN0PGNoYXIgKj4oY2gpKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KHNpZ25lZCBjaGFyIGNvbnN0KiBjaCkgICAgICB7IHJldHVybiAoKCp0aGlzKSA8PCByZWludGVycHJldF9jYXN0PGNoYXIgY29uc3QqPihjaCkpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoc2lnbmVkIGNoYXIgKiBjaCkgICAgICAgICAgIHsgcmV0dXJuICgoKnRoaXMpIDw8IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciAqPihjaCkpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoY2hhciBjb25zdCogc3RyKSAgICAgICAgICAgIHsgcmV0dXJuIHNobF9jaGFyX2FycmF5KHN0cik7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjaGFyKiBzdHIpICAgICAgICAgICAgICAgICAgeyByZXR1cm4gc2hsX2NoYXJfYXJyYXkoc3RyKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KHNob3J0IG4pICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBzaGxfc2lnbmVkKG4pOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoaW50IG4pICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIHNobF9zaWduZWQobik7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChsb25nIG4pICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gc2hsX3NpZ25lZChuKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0IG4pICAgICAgICAgICB7IHN0YXJ0ID0gbGNhc3RfcHV0X3Vuc2lnbmVkPFRyYWl0cz4obiwgZmluaXNoKTsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PCh1bnNpZ25lZCBpbnQgbikgICAgICAgICAgICAgeyBzdGFydCA9IGxjYXN0X3B1dF91bnNpZ25lZDxUcmFpdHM+KG4sIGZpbmlzaCk7IHJldHVybiB0cnVlOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwodW5zaWduZWQgbG9uZyBuKSAgICAgICAgICAgIHsgc3RhcnQgPSBsY2FzdF9wdXRfdW5zaWduZWQ8VHJhaXRzPihuLCBmaW5pc2gpOyByZXR1cm4gdHJ1ZTsgfQorCisjaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUgbikgICB7IHN0YXJ0ID0gbGNhc3RfcHV0X3Vuc2lnbmVkPFRyYWl0cz4obiwgZmluaXNoKTsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgbikgICAgeyByZXR1cm4gc2hsX3NpZ25lZChuKTsgfQorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwodW5zaWduZWQgX19pbnQ2NCBuKSAgICAgICAgIHsgc3RhcnQgPSBsY2FzdF9wdXRfdW5zaWduZWQ8VHJhaXRzPihuLCBmaW5pc2gpOyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KCAgICAgICAgIF9faW50NjQgbikgICAgICAgICB7IHJldHVybiBzaGxfc2lnbmVkKG4pOyB9CisjZW5kaWYKKworI2lmZGVmIEJPT1NUX0xDQVNUX0hBU19JTlQxMjgKKyAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGNvbnN0IG5kbmJvb3N0Ojp1aW50MTI4X3R5cGUmIG4pICAgeyBzdGFydCA9IGxjYXN0X3B1dF91bnNpZ25lZDxUcmFpdHM+KG4sIGZpbmlzaCk7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjb25zdCBuZG5ib29zdDo6aW50MTI4X3R5cGUmIG4pICAgIHsgcmV0dXJuIHNobF9zaWduZWQobik7IH0KKyNlbmRpZgorCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoZmxvYXQgdmFsKSAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIHNobF9yZWFsX3R5cGUodmFsLCBzdGFydCwgZmluaXNoKTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGRvdWJsZSB2YWwpICAgICAgICAgICAgICAgICB7IHJldHVybiBzaGxfcmVhbF90eXBlKHZhbCwgc3RhcnQsIGZpbmlzaCk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChsb25nIGRvdWJsZSB2YWwpICAgICAgICAgICAgeworI2lmbmRlZiBfX01JTkdXMzJfXworICAgICAgICAgICAgICAgIHJldHVybiBzaGxfcmVhbF90eXBlKHZhbCwgc3RhcnQsIGZpbmlzaCk7CisjZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBzaGxfcmVhbF90eXBlKHN0YXRpY19jYXN0PGRvdWJsZT4odmFsKSwgc3RhcnQsIGZpbmlzaCk7CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwobmRuYm9vc3Q6OmFycmF5PENoYXJULCBOPiBjb25zdCYgaW5wdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IHJldHVybiBzaGxfY2hhcl9hcnJheV9saW1pdGVkKGlucHV0LmJlZ2luKCksIE4pOyB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KG5kbmJvb3N0OjphcnJheTx1bnNpZ25lZCBjaGFyLCBOPiBjb25zdCYgaW5wdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IHJldHVybiAoKCp0aGlzKSA8PCByZWludGVycHJldF9jYXN0PG5kbmJvb3N0OjphcnJheTxjaGFyLCBOPiBjb25zdCYgPihpbnB1dCkpOyB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KG5kbmJvb3N0OjphcnJheTxzaWduZWQgY2hhciwgTj4gY29uc3QmIGlucHV0KSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeyByZXR1cm4gKCgqdGhpcykgPDwgcmVpbnRlcnByZXRfY2FzdDxuZG5ib29zdDo6YXJyYXk8Y2hhciwgTj4gY29uc3QmID4oaW5wdXQpKTsgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChuZG5ib29zdDo6YXJyYXk8Y29uc3QgQ2hhclQsIE4+IGNvbnN0JiBpbnB1dCkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsgcmV0dXJuIHNobF9jaGFyX2FycmF5X2xpbWl0ZWQoaW5wdXQuYmVnaW4oKSwgTik7IH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwobmRuYm9vc3Q6OmFycmF5PGNvbnN0IHVuc2lnbmVkIGNoYXIsIE4+IGNvbnN0JiBpbnB1dCkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsgcmV0dXJuICgoKnRoaXMpIDw8IHJlaW50ZXJwcmV0X2Nhc3Q8bmRuYm9vc3Q6OmFycmF5PGNvbnN0IGNoYXIsIE4+IGNvbnN0JiA+KGlucHV0KSk7IH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwobmRuYm9vc3Q6OmFycmF5PGNvbnN0IHNpZ25lZCBjaGFyLCBOPiBjb25zdCYgaW5wdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IHJldHVybiAoKCp0aGlzKSA8PCByZWludGVycHJldF9jYXN0PG5kbmJvb3N0OjphcnJheTxjb25zdCBjaGFyLCBOPiBjb25zdCYgPihpbnB1dCkpOyB9CisgCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorICAgICAgICAgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoc3RkOjphcnJheTxDaGFyVCwgTj4gY29uc3QmIGlucHV0KSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc2l6ZSgpKSByZXR1cm4gc2hsX2NoYXJfYXJyYXlfbGltaXRlZCgmaW5wdXRbMF0sIE4pOworICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIHRydWU7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChzdGQ6OmFycmF5PHVuc2lnbmVkIGNoYXIsIE4+IGNvbnN0JiBpbnB1dCkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgICAgIHsgcmV0dXJuICgoKnRoaXMpIDw8IHJlaW50ZXJwcmV0X2Nhc3Q8bmRuYm9vc3Q6OmFycmF5PGNoYXIsIE4+IGNvbnN0JiA+KGlucHV0KSk7IH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPDwoc3RkOjphcnJheTxzaWduZWQgY2hhciwgTj4gY29uc3QmIGlucHV0KSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeyByZXR1cm4gKCgqdGhpcykgPDwgcmVpbnRlcnByZXRfY2FzdDxuZG5ib29zdDo6YXJyYXk8Y2hhciwgTj4gY29uc3QmID4oaW5wdXQpKTsgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChzdGQ6OmFycmF5PGNvbnN0IENoYXJULCBOPiBjb25zdCYgaW5wdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IAorICAgICAgICAgICAgICAgIGlmIChpbnB1dC5zaXplKCkpIHJldHVybiBzaGxfY2hhcl9hcnJheV9saW1pdGVkKCZpbnB1dFswXSwgTik7CisgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gdHJ1ZTsgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KHN0ZDo6YXJyYXk8Y29uc3QgdW5zaWduZWQgY2hhciwgTj4gY29uc3QmIGlucHV0KSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeyByZXR1cm4gKCgqdGhpcykgPDwgcmVpbnRlcnByZXRfY2FzdDxuZG5ib29zdDo6YXJyYXk8Y29uc3QgY2hhciwgTj4gY29uc3QmID4oaW5wdXQpKTsgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChzdGQ6OmFycmF5PGNvbnN0IHNpZ25lZCBjaGFyLCBOPiBjb25zdCYgaW5wdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IHJldHVybiAoKCp0aGlzKSA8PCByZWludGVycHJldF9jYXN0PG5kbmJvb3N0OjphcnJheTxjb25zdCBjaGFyLCBOPiBjb25zdCYgPihpbnB1dCkpOyB9CisjZW5kaWYKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEluU3RyZWFtYWJsZT4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PChjb25zdCBJblN0cmVhbWFibGUmIGlucHV0KSAgeyByZXR1cm4gc2hsX2lucHV0X3N0cmVhbWFibGUoaW5wdXQpOyB9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogSEVMUEVSIEZVTkNUSU9OUyBGT1IgT1BFUkFUT1JTID4+ICggLi4uICkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgICAgIHByaXZhdGU6CisKKyAgICAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPgorICAgICAgICAgICAgYm9vbCBzaHJfdW5zaWduZWQoVHlwZSYgb3V0cHV0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSBmaW5pc2gpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBtaW51cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6bWludXM7CisgICAgICAgICAgICAgICAgQ2hhclQgY29uc3QgcGx1cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6cGx1czsKKyAgICAgICAgICAgICAgICBib29sIGhhc19taW51cyA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgLyogV2Ugd29uYHQgdXNlIGBzdGFydCcgYW55IG1vcmUsIHNvIG5vIG5lZWQgaW4gZGVjcmVtZW50aW5nIGl0IGFmdGVyICovCisgICAgICAgICAgICAgICAgaWYgKCBUcmFpdHM6OmVxKG1pbnVzLCpzdGFydCkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgaGFzX21pbnVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBUcmFpdHM6OmVxKCBwbHVzLCAqc3RhcnQgKSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJvb2wgY29uc3Qgc3VjY2VlZCA9IGxjYXN0X3JldF91bnNpZ25lZDxUcmFpdHM+KG91dHB1dCwgc3RhcnQsIGZpbmlzaCk7CisKKyAgICAgICAgICAgICAgICBpZiAoaGFzX21pbnVzKSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IHN0YXRpY19jYXN0PFR5cGU+KDB1IC0gb3V0cHV0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGU+CisgICAgICAgICAgICBib29sIHNocl9zaWduZWQoVHlwZSYgb3V0cHV0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSBmaW5pc2gpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBtaW51cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6bWludXM7CisgICAgICAgICAgICAgICAgQ2hhclQgY29uc3QgcGx1cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6cGx1czsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbWFrZV91bnNpZ25lZDxUeXBlPjo6dHlwZSB1dHlwZTsKKyAgICAgICAgICAgICAgICB1dHlwZSBvdXRfdG1wID0wOworICAgICAgICAgICAgICAgIGJvb2wgaGFzX21pbnVzID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICAvKiBXZSB3b25gdCB1c2UgYHN0YXJ0JyBhbnkgbW9yZSwgc28gbm8gbmVlZCBpbiBkZWNyZW1lbnRpbmcgaXQgYWZ0ZXIgKi8KKyAgICAgICAgICAgICAgICBpZiAoIFRyYWl0czo6ZXEobWludXMsKnN0YXJ0KSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgICAgICBoYXNfbWludXMgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIFRyYWl0czo6ZXEocGx1cywgKnN0YXJ0KSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJvb2wgc3VjY2VlZCA9IGxjYXN0X3JldF91bnNpZ25lZDxUcmFpdHM+KG91dF90bXAsIHN0YXJ0LCBmaW5pc2gpOworICAgICAgICAgICAgICAgIGlmIChoYXNfbWludXMpIHsKKyAgICAgICAgICAgICAgICAgICAgdXR5cGUgY29uc3QgY29tcF92YWwgPSAoc3RhdGljX2Nhc3Q8dXR5cGU+KDEpIDw8IHN0ZDo6bnVtZXJpY19saW1pdHM8VHlwZT46OmRpZ2l0cyk7CisgICAgICAgICAgICAgICAgICAgIHN1Y2NlZWQgPSBzdWNjZWVkICYmIG91dF90bXA8PWNvbXBfdmFsOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBzdGF0aWNfY2FzdDxUeXBlPigwdSAtIG91dF90bXApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHV0eXBlIGNvbnN0IGNvbXBfdmFsID0gc3RhdGljX2Nhc3Q8dXR5cGU+KChzdGQ6Om51bWVyaWNfbGltaXRzPFR5cGU+OjptYXgpKCkpOworICAgICAgICAgICAgICAgICAgICBzdWNjZWVkID0gc3VjY2VlZCAmJiBvdXRfdG1wPD1jb21wX3ZhbDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0X3RtcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIElucHV0U3RyZWFtYWJsZT4KKyAgICAgICAgICAgIGJvb2wgc2hyX3VzaW5nX2Jhc2VfY2xhc3MoSW5wdXRTdHJlYW1hYmxlJiBvdXRwdXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVF9NU0coCisgICAgICAgICAgICAgICAgICAgICghbmRuYm9vc3Q6OmlzX3BvaW50ZXI8SW5wdXRTdHJlYW1hYmxlPjo6dmFsdWUpLAorICAgICAgICAgICAgICAgICAgICAibmRuYm9vc3Q6OmxleGljYWxfY2FzdCBjYW4gbm90IGNvbnZlcnQgdG8gcG9pbnRlcnMiCisgICAgICAgICAgICAgICAgKTsKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fU1RSSU5HU1RSRUFNKSB8fCBkZWZpbmVkKEJPT1NUX05PX1NURF9MT0NBTEUpCisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVF9NU0coKG5kbmJvb3N0Ojppc19zYW1lPGNoYXIsIENoYXJUPjo6dmFsdWUpLAorICAgICAgICAgICAgICAgICAgICAibmRuYm9vc3Q6OmxleGljYWxfY2FzdCBjYW4gbm90IGNvbnZlcnQsIGJlY2F1c2UgeW91ciBTVEwgbGlicmFyeSBkb2VzIG5vdCAiCisgICAgICAgICAgICAgICAgICAgICJzdXBwb3J0IHN1Y2ggY29udmVyc2lvbnMuIFRyeSB1cGRhdGluZyBpdC4iCisgICAgICAgICAgICAgICAgKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9OT19TVFJJTkdTVFJFQU0pCisgICAgICAgICAgICAgICAgc3RkOjppc3Ryc3RyZWFtIHN0cmVhbShzdGFydCwgZmluaXNoIC0gc3RhcnQpOworI2Vsc2UKKworICAgICAgICAgICAgICAgIGJ1ZmZlcl90IGJ1ZjsKKyAgICAgICAgICAgICAgICBidWYuc2V0YnVmKHN0YXJ0LCBmaW5pc2ggLSBzdGFydCk7CisjaWYgZGVmaW5lZChCT09TVF9OT19TVERfTE9DQUxFKQorICAgICAgICAgICAgICAgIHN0ZDo6aXN0cmVhbSBzdHJlYW0oJmJ1Zik7CisjZWxzZQorICAgICAgICAgICAgICAgIHN0ZDo6YmFzaWNfaXN0cmVhbTxDaGFyVCwgVHJhaXRzPiBzdHJlYW0oJmJ1Zik7CisjZW5kaWYgLy8gQk9PU1RfTk9fU1REX0xPQ0FMRQorI2VuZGlmIC8vIEJPT1NUX05PX1NUUklOR1NUUkVBTQorCisgICAgICAgICAgICAgICAgc3RyZWFtLnVuc2V0ZihzdGQ6Omlvczo6c2tpcHdzKTsKKyAgICAgICAgICAgICAgICBsY2FzdF9zZXRfcHJlY2lzaW9uKHN0cmVhbSwgc3RhdGljX2Nhc3Q8SW5wdXRTdHJlYW1hYmxlKj4oMCkpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbSA+PiBvdXRwdXQgJiYKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmdldCgpID09CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fPDMpICYmIGRlZmluZWQoQk9PU1RfTk9fU1REX1dTVFJJTkcpCisgICAgICAgIC8vIEdDQyAyLjl4IGxhY2tzIHN0ZDo6Y2hhcl90cmFpdHM8Pjo6ZW9mKCkuCisgICAgICAgIC8vIFdlIHVzZSBCT09TVF9OT19TVERfV1NUUklORyB0byBmaWx0ZXIgb3V0IFNUTHBvcnQgYW5kIGxpYnN0ZGMrKy12MworICAgICAgICAvLyBjb25maWd1cmF0aW9ucywgd2hpY2ggZG8gcHJvdmlkZSBzdGQ6OmNoYXJfdHJhaXRzPD46OmVvZigpLgorCisgICAgICAgICAgICAgICAgICAgIEVPRjsKKyNlbHNlCisgICAgICAgICAgICAgICAgVHJhaXRzOjplb2YoKTsKKyNlbmRpZgorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgICAgICAgICAgaW5saW5lIGJvb2wgc2hyX3hjaGFyKFQmIG91dHB1dCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUX01TRygoIHNpemVvZihDaGFyVCkgPT0gc2l6ZW9mKFQpICksCisgICAgICAgICAgICAgICAgICAgICJuZG5ib29zdDo6bGV4aWNhbF9jYXN0IGRvZXMgbm90IHN1cHBvcnQgbmFycm93aW5nIG9mIGNoYXJhY3RlciB0eXBlcy4iCisgICAgICAgICAgICAgICAgICAgICJVc2UgbmRuYm9vc3Q6OmxvY2FsZSBpbnN0ZWFkIiApOworICAgICAgICAgICAgICAgIGJvb2wgY29uc3Qgb2sgPSAoZmluaXNoIC0gc3RhcnQgPT0gMSk7CisgICAgICAgICAgICAgICAgaWYgKG9rKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJUIG91dDsKKyAgICAgICAgICAgICAgICAgICAgVHJhaXRzOjphc3NpZ24ob3V0LCAqc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBzdGF0aWNfY2FzdDxUPihvdXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gb2s7CisgICAgICAgICAgICB9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogT1BFUkFUT1JTID4+ICggLi4uICkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+Pih1bnNpZ25lZCBzaG9ydCYgb3V0cHV0KSAgICAgICAgICAgICB7IHJldHVybiBzaHJfdW5zaWduZWQob3V0cHV0KTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KHVuc2lnbmVkIGludCYgb3V0cHV0KSAgICAgICAgICAgICAgIHsgcmV0dXJuIHNocl91bnNpZ25lZChvdXRwdXQpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4odW5zaWduZWQgbG9uZyBpbnQmIG91dHB1dCkgICAgICAgICAgeyByZXR1cm4gc2hyX3Vuc2lnbmVkKG91dHB1dCk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihzaG9ydCYgb3V0cHV0KSAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBzaHJfc2lnbmVkKG91dHB1dCk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihpbnQmIG91dHB1dCkgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBzaHJfc2lnbmVkKG91dHB1dCk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+Pihsb25nIGludCYgb3V0cHV0KSAgICAgICAgICAgICAgICAgICB7IHJldHVybiBzaHJfc2lnbmVkKG91dHB1dCk7IH0KKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4obmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSYgb3V0cHV0KSAgICAgeyByZXR1cm4gc2hyX3Vuc2lnbmVkKG91dHB1dCk7IH0KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUmIG91dHB1dCkgICAgICB7IHJldHVybiBzaHJfc2lnbmVkKG91dHB1dCk7IH0KKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KHVuc2lnbmVkIF9faW50NjQmIG91dHB1dCkgICAgICAgICAgIHsgcmV0dXJuIHNocl91bnNpZ25lZChvdXRwdXQpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oX19pbnQ2NCYgb3V0cHV0KSAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gc2hyX3NpZ25lZChvdXRwdXQpOyB9CisjZW5kaWYKKworI2lmZGVmIEJPT1NUX0xDQVNUX0hBU19JTlQxMjgKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihuZG5ib29zdDo6dWludDEyOF90eXBlJiBvdXRwdXQpICAgICAgICB7IHJldHVybiBzaHJfdW5zaWduZWQob3V0cHV0KTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KG5kbmJvb3N0OjppbnQxMjhfdHlwZSYgb3V0cHV0KSAgICAgICAgIHsgcmV0dXJuIHNocl9zaWduZWQob3V0cHV0KTsgfQorI2VuZGlmCisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihjaGFyJiBvdXRwdXQpICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBzaHJfeGNoYXIob3V0cHV0KTsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KHVuc2lnbmVkIGNoYXImIG91dHB1dCkgICAgICAgICAgICAgIHsgcmV0dXJuIHNocl94Y2hhcihvdXRwdXQpOyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oc2lnbmVkIGNoYXImIG91dHB1dCkgICAgICAgICAgICAgICAgeyByZXR1cm4gc2hyX3hjaGFyKG91dHB1dCk7IH0KKyNpZiAhZGVmaW5lZChCT09TVF9MQ0FTVF9OT19XQ0hBUl9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVCkKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+Pih3Y2hhcl90JiBvdXRwdXQpICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBzaHJfeGNoYXIob3V0cHV0KTsgfQorI2VuZGlmCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QpICYmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMpCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oY2hhcjE2X3QmIG91dHB1dCkgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gc2hyX3hjaGFyKG91dHB1dCk7IH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0NIQVIzMl9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTKQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KGNoYXIzMl90JiBvdXRwdXQpICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIHNocl94Y2hhcihvdXRwdXQpOyB9CisjZW5kaWYKKyAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEFsbG9jPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KHN0ZDo6YmFzaWNfc3RyaW5nPENoYXJULFRyYWl0cyxBbGxvYz4mIHN0cikgeyBzdHIuYXNzaWduKHN0YXJ0LCBmaW5pc2gpOyByZXR1cm4gdHJ1ZTsgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBBbGxvYz4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihuZG5ib29zdDo6Y29udGFpbmVyOjpiYXNpY19zdHJpbmc8Q2hhclQsVHJhaXRzLEFsbG9jPiYgc3RyKSB7IHN0ci5hc3NpZ24oc3RhcnQsIGZpbmlzaCk7IHJldHVybiB0cnVlOyB9CisKKyAgICAgICAgICAgIAorICAgIHByaXZhdGU6CisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTiwgY2xhc3MgQXJyYXlUPgorICAgICAgICAgICAgYm9vbCBzaHJfc3RkX2FycmF5KEFycmF5VCYgb3V0cHV0KSBCT09TVF9OT0VYQ0VQVAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzaXplX3Qgc2l6ZSA9IGZpbmlzaCAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChzaXplID4gTiAtIDEpIHsgLy8gYC0xYCBiZWNhdXNlIHdlIG5lZWQgdG8gc3RvcmUgXDAgYXQgdGhlIGVuZCAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1lbWNweSgmb3V0cHV0WzBdLCBzdGFydCwgc2l6ZSAqIHNpemVvZihDaGFyVCkpOworICAgICAgICAgICAgICAgIG91dHB1dFtzaXplXSA9IFRyYWl0czo6dG9fY2hhcl90eXBlKDApOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgcHVibGljOgorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihuZG5ib29zdDo6YXJyYXk8Q2hhclQsIE4+JiBvdXRwdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IAorICAgICAgICAgICAgICAgIHJldHVybiBzaHJfc3RkX2FycmF5PE4+KG91dHB1dCk7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihuZG5ib29zdDo6YXJyYXk8dW5zaWduZWQgY2hhciwgTj4mIG91dHB1dCkgICAKKyAgICAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgcmV0dXJuICgoKnRoaXMpID4+IHJlaW50ZXJwcmV0X2Nhc3Q8bmRuYm9vc3Q6OmFycmF5PGNoYXIsIE4+JiA+KG91dHB1dCkpOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4obmRuYm9vc3Q6OmFycmF5PHNpZ25lZCBjaGFyLCBOPiYgb3V0cHV0KSAgIAorICAgICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICByZXR1cm4gKCgqdGhpcykgPj4gcmVpbnRlcnByZXRfY2FzdDxuZG5ib29zdDo6YXJyYXk8Y2hhciwgTj4mID4ob3V0cHV0KSk7IAorICAgICAgICAgICAgfQorIAorI2lmbmRlZiBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyAgICAgICAgICAgIHRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KHN0ZDo6YXJyYXk8Q2hhclQsIE4+JiBvdXRwdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7IAorICAgICAgICAgICAgICAgIHJldHVybiBzaHJfc3RkX2FycmF5PE4+KG91dHB1dCk7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihzdGQ6OmFycmF5PHVuc2lnbmVkIGNoYXIsIE4+JiBvdXRwdXQpICAgCisgICAgICAgICAgICB7IAorICAgICAgICAgICAgICAgIHJldHVybiAoKCp0aGlzKSA+PiByZWludGVycHJldF9jYXN0PHN0ZDo6YXJyYXk8Y2hhciwgTj4mID4ob3V0cHV0KSk7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihzdGQ6OmFycmF5PHNpZ25lZCBjaGFyLCBOPiYgb3V0cHV0KQorICAgICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICByZXR1cm4gKCgqdGhpcykgPj4gcmVpbnRlcnByZXRfY2FzdDxzdGQ6OmFycmF5PGNoYXIsIE4+JiA+KG91dHB1dCkpOyAKKyAgICAgICAgICAgIH0KKyNlbmRpZgorCisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBjYXNlICItMCIgfHwgIjAiIHx8ICIrMCIgOiAgIG91dHB1dCA9IGZhbHNlOyByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAqIGNhc2UgIjEiIHx8ICIrMSI6ICAgICAgICAgICAgb3V0cHV0ID0gdHJ1ZTsgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICogZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+Pihib29sJiBvdXRwdXQpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ2hhclQgY29uc3QgemVybyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6emVybzsKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBwbHVzID0gbGNhc3RfY2hhcl9jb25zdGFudHM8Q2hhclQ+OjpwbHVzOworICAgICAgICAgICAgICAgIENoYXJUIGNvbnN0IG1pbnVzID0gbGNhc3RfY2hhcl9jb25zdGFudHM8Q2hhclQ+OjptaW51czsKKworICAgICAgICAgICAgICAgIHN3aXRjaChmaW5pc2gtc3RhcnQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBUcmFpdHM6OmVxKHN0YXJ0WzBdLCAgemVybysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQgfHwgVHJhaXRzOjplcShzdGFydFswXSwgemVybyApOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIFRyYWl0czo6ZXEoIHBsdXMsICpzdGFydCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gVHJhaXRzOjplcShzdGFydFswXSwgemVybyArMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dCB8fCBUcmFpdHM6OmVxKHN0YXJ0WzBdLCB6ZXJvICk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhaXRzOjplcSggbWludXMsICpzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgVHJhaXRzOjplcSggemVybywgc3RhcnRbMV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZmFsc2U7IC8vIFN1cHByZXNzIHdhcm5pbmcgYWJvdXQgdW5pbml0YWxpemVkIHZhcmlhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oZmxvYXQmIG91dHB1dCkgeyByZXR1cm4gbGNhc3RfcmV0X2Zsb2F0PFRyYWl0cz4ob3V0cHV0LHN0YXJ0LGZpbmlzaCk7IH0KKworICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgLy8gTm90IG9wdGltaXNlZCBjb252ZXJ0ZXIKKyAgICAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICAgICAgYm9vbCBmbG9hdF90eXBlc19jb252ZXJ0ZXJfaW50ZXJuYWwoVCYgb3V0cHV0LCBpbnQgLyp0YWcqLykgeworICAgICAgICAgICAgICAgIGlmIChwYXJzZV9pbmZfbmFuKHN0YXJ0LCBmaW5pc2gsIG91dHB1dCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIGJvb2wgcmV0dXJuX3ZhbHVlID0gc2hyX3VzaW5nX2Jhc2VfY2xhc3Mob3V0cHV0KTsKKworICAgICAgICAgICAgICAgIC8qIFNvbWUgY29tcGlsZXJzIGFuZCBsaWJyYXJpZXMgc3VjY2Vzc2Z1bGx5CisgICAgICAgICAgICAgICAgICogcGFyc2UgJ2luZicsICdJTkZJTklUWScsICcxLjBFJywgJzEuMEUtJy4uLgorICAgICAgICAgICAgICAgICAqIFdlIGFyZSB0cnlpbmcgdG8gcHJvdmlkZSBhIHVuaWZpZWQgYmVoYXZpb3VyLAorICAgICAgICAgICAgICAgICAqIHNvIHdlIGp1c3QgZm9yYmlkIHN1Y2ggY29udmVyc2lvbnMgKGFzIHNvbWUKKyAgICAgICAgICAgICAgICAgKiBvZiB0aGUgbW9zdCBwb3B1bGFyIGNvbXBpbGVycy9saWJyYXJpZXMgZG8pCisgICAgICAgICAgICAgICAgICogKi8KKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBtaW51cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6bWludXM7CisgICAgICAgICAgICAgICAgQ2hhclQgY29uc3QgcGx1cyA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6cGx1czsKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBjYXBpdGFsX2UgPSBsY2FzdF9jaGFyX2NvbnN0YW50czxDaGFyVD46OmNhcGl0YWxfZTsKKyAgICAgICAgICAgICAgICBDaGFyVCBjb25zdCBsb3dlcmNhc2VfZSA9IGxjYXN0X2NoYXJfY29uc3RhbnRzPENoYXJUPjo6bG93ZXJjYXNlX2U7CisgICAgICAgICAgICAgICAgaWYgKCByZXR1cm5fdmFsdWUgJiYKKyAgICAgICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0czo6ZXEoKihmaW5pc2gtMSksIGxvd2VyY2FzZV9lKSAgICAgICAgICAgICAgICAgICAvLyAxLjBlCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBUcmFpdHM6OmVxKCooZmluaXNoLTEpLCBjYXBpdGFsX2UpICAgICAgICAgICAgICAgICAgLy8gMS4wRQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgVHJhaXRzOjplcSgqKGZpbmlzaC0xKSwgbWludXMpICAgICAgICAgICAgICAgICAgICAgIC8vIDEuMGUtIG9yIDEuMEUtCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBUcmFpdHM6OmVxKCooZmluaXNoLTEpLCBwbHVzKSAgICAgICAgICAgICAgICAgICAgICAgLy8gMS4wZSsgb3IgMS4wRSsKKyAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIHJldHVybiByZXR1cm5fdmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE9wdGltaXNlZCBjb252ZXJ0ZXIKKyAgICAgICAgICAgIGJvb2wgZmxvYXRfdHlwZXNfY29udmVydGVyX2ludGVybmFsKGRvdWJsZSYgb3V0cHV0LGNoYXIgLyp0YWcqLykgeworICAgICAgICAgICAgICAgIHJldHVybiBsY2FzdF9yZXRfZmxvYXQ8VHJhaXRzPihvdXRwdXQsc3RhcnQsZmluaXNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcHVibGljOgorCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oZG91YmxlJiBvdXRwdXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBTb21lIGNvbXBpbGVycyBpbXBsZW1lbnQgbG9uZyBkb3VibGUgYXMgZG91YmxlLiBJbiB0aGF0IGNhc2UgdGhlc2UgdHlwZXMgaGF2ZQorICAgICAgICAgICAgICAgICAqIHNhbWUgc2l6ZSwgc2FtZSBwcmVjaXNpb24sIHNhbWUgbWF4IGFuZCBtaW4gdmFsdWVzLi4uIEFuZCBpdCBtZWFucywKKyAgICAgICAgICAgICAgICAgKiB0aGF0IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgbGNhc3RfcmV0X2Zsb2F0IGNhbm5vdCBiZSB1c2VkIGZvciB0eXBlCisgICAgICAgICAgICAgICAgICogZG91YmxlLCBiZWNhdXNlIGl0IHdpbGwgZ2l2ZSBhIGJpZyBwcmVjaXNpb24gbG9zcy4KKyAgICAgICAgICAgICAgICAgKiAqLworICAgICAgICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmlmX2M8CisjaWYgKGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykgfHwgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpKSAmJiAhZGVmaW5lZChCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TKQorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9lcTwgc2l6ZW9mKGRvdWJsZSksIHNpemVvZihsb25nIGRvdWJsZSkgPjo6dmFsdWUsCisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgMSwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBpbnQsCisgICAgICAgICAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAgICAgICA+Ojp0eXBlIHRhZyA9IDA7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmxvYXRfdHlwZXNfY29udmVydGVyX2ludGVybmFsKG91dHB1dCwgdGFnKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KGxvbmcgZG91YmxlJiBvdXRwdXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHRhZyA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb2F0X3R5cGVzX2NvbnZlcnRlcl9pbnRlcm5hbChvdXRwdXQsIHRhZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEdlbmVyaWMgaXN0cmVhbS1iYXNlZCBhbGdvcml0aG0uCisgICAgICAgICAgICAvLyBsY2FzdF9zdHJlYW1idWZfZm9yX3RhcmdldDxJbnB1dFN0cmVhbWFibGU+Ojp2YWx1ZSBpcyB0cnVlLgorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRTdHJlYW1hYmxlPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4+KElucHV0U3RyZWFtYWJsZSYgb3V0cHV0KSB7IHJldHVybiBzaHJfdXNpbmdfYmFzZV9jbGFzcyhvdXRwdXQpOyB9CisgICAgICAgIH07CisgICAgfQorCisgICAgbmFtZXNwYWNlIGRldGFpbAorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IGlzX3N0ZHN0cmluZworICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSApOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJULCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEFsbG9jPgorICAgICAgICBzdHJ1Y3QgaXNfc3Rkc3RyaW5nPCBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyVCwgVHJhaXRzLCBBbGxvYz4gPgorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlICk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgQWxsb2M+CisgICAgICAgIHN0cnVjdCBpc19zdGRzdHJpbmc8IG5kbmJvb3N0Ojpjb250YWluZXI6OmJhc2ljX3N0cmluZzxDaGFyVCwgVHJhaXRzLCBBbGxvYz4gPgorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlICk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+CisgICAgICAgIHN0cnVjdCBpc19hcml0aG1ldGljX2FuZF9ub3RfeGNoYXJzCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2FyaXRobWV0aWM8U291cmNlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfYXJpdGhtZXRpYzxUYXJnZXQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjppc19jaGFyX29yX3djaGFyPFRhcmdldD46OnZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjppc19jaGFyX29yX3djaGFyPFNvdXJjZT46OnZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgICAgICAgICApCisgICAgICAgICAgICApOworICAgICAgICB9OworCisgICAgICAgIC8qCisgICAgICAgICAqIGlzX3hjaGFyX3RvX3hjaGFyPFRhcmdldCwgU291cmNlPjo6dmFsdWUgaXMgdHJ1ZSwgd2hlbgorICAgICAgICAgKiBUYXJnZXQgYW5kIFNvdWNlIGFyZSB0aGUgc2FtZSBjaGFyIHR5cGVzLCBvciB3aGVuCisgICAgICAgICAqIFRhcmdldCBhbmQgU291Y2UgYXJlIGNoYXIgdHlwZXMgb2YgdGhlIHNhbWUgc2l6ZS4KKyAgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPgorICAgICAgICBzdHJ1Y3QgaXNfeGNoYXJfdG9feGNoYXIKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFNvdXJjZSxUYXJnZXQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY2hhcl9vcl93Y2hhcjxUYXJnZXQ+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2VxPCBzaXplb2YoY2hhciksc2l6ZW9mKFRhcmdldCk+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfZXE8IHNpemVvZihjaGFyKSxzaXplb2YoU291cmNlKT46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jaGFyX29yX3djaGFyPFRhcmdldD46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jaGFyX29yX3djaGFyPFNvdXJjZT46OnZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+CisgICAgICAgIHN0cnVjdCBpc19jaGFyX2FycmF5X3RvX3N0ZHN0cmluZworICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSApOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJULCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEFsbG9jPgorICAgICAgICBzdHJ1Y3QgaXNfY2hhcl9hcnJheV90b19zdGRzdHJpbmc8IHN0ZDo6YmFzaWNfc3RyaW5nPENoYXJULCBUcmFpdHMsIEFsbG9jPiwgQ2hhclQqID4KKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSApOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJULCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEFsbG9jPgorICAgICAgICBzdHJ1Y3QgaXNfY2hhcl9hcnJheV90b19zdGRzdHJpbmc8IHN0ZDo6YmFzaWNfc3RyaW5nPENoYXJULCBUcmFpdHMsIEFsbG9jPiwgY29uc3QgQ2hhclQqID4KKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSApOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJULCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEFsbG9jPgorICAgICAgICBzdHJ1Y3QgaXNfY2hhcl9hcnJheV90b19zdGRzdHJpbmc8IG5kbmJvb3N0Ojpjb250YWluZXI6OmJhc2ljX3N0cmluZzxDaGFyVCwgVHJhaXRzLCBBbGxvYz4sIENoYXJUKiA+CisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUgKTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVCwgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBBbGxvYz4KKyAgICAgICAgc3RydWN0IGlzX2NoYXJfYXJyYXlfdG9fc3Rkc3RyaW5nPCBuZG5ib29zdDo6Y29udGFpbmVyOjpiYXNpY19zdHJpbmc8Q2hhclQsIFRyYWl0cywgQWxsb2M+LCBjb25zdCBDaGFyVCogPgorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlICk7CisgICAgICAgIH07CisKKyNpZiAoZGVmaW5lZCBfTVNDX1ZFUikKKyMgcHJhZ21hIHdhcm5pbmcoIHB1c2ggKQorIyBwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ3MDEgKSAvLyBwb3NzaWJsZSB1c2Ugb2YgLi4uIGJlZm9yZSBpbml0aWFsaXphdGlvbgorIyBwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ3MDIgKSAvLyB1bnJlYWNoYWJsZSBjb2RlCisjIHByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDogNDI2NyApIC8vIGNvbnZlcnNpb24gZnJvbSAnc2l6ZV90JyB0byAndW5zaWduZWQgaW50JworI2VuZGlmCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPgorICAgICAgICBzdHJ1Y3QgbGV4aWNhbF9jYXN0X2RvX2Nhc3QKKyAgICAgICAgeworICAgICAgICAgICAgc3RhdGljIGlubGluZSBUYXJnZXQgbGV4aWNhbF9jYXN0X2ltcGwoY29uc3QgU291cmNlJiBhcmcpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBsZXhpY2FsX2Nhc3Rfc3RyZWFtX3RyYWl0czxTb3VyY2UsIFRhcmdldD4gIHN0cmVhbV90cmFpdDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGRldGFpbDo6bGV4aWNhbF9zdHJlYW1fbGltaXRlZF9zcmM8CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgc3RyZWFtX3RyYWl0OjpjaGFyX3R5cGUsIAorICAgICAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHN0cmVhbV90cmFpdDo6dHJhaXRzLCAKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtX3RyYWl0OjpyZXF1aXJlc19zdHJpbmdidWYgCisgICAgICAgICAgICAgICAgPiBpbnRlcnByZXRlcl90eXBlOworCisgICAgICAgICAgICAgICAgLy8gVGFyZ2V0IHR5cGUgbXVzdCBiZSBkZWZhdWx0IGNvbnN0cnVjdGlibGUKKyAgICAgICAgICAgICAgICBUYXJnZXQgcmVzdWx0OyAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBzdHJlYW1fdHJhaXQ6OmNoYXJfdHlwZSBidWZbc3RyZWFtX3RyYWl0OjpsZW5fdDo6dmFsdWUgKyAxXTsKKyAgICAgICAgICAgICAgICBzdHJlYW1fdHJhaXQ6Omxlbl90OjpjaGVja19jb3ZlcmFnZSgpOworCisgICAgICAgICAgICAgICAgaW50ZXJwcmV0ZXJfdHlwZSBpbnRlcnByZXRlcihidWYsIGJ1ZiArIHN0cmVhbV90cmFpdDo6bGVuX3Q6OnZhbHVlICsgMSk7CisKKyAgICAgICAgICAgICAgICAvLyBEaXNhYmxpbmcgQURMLCBieSBkaXJlY3RseSBzcGVjaWZ5aW5nIG9wZXJhdG9ycy4KKyAgICAgICAgICAgICAgICBpZighKGludGVycHJldGVyLm9wZXJhdG9yIDw8KGFyZykgJiYgaW50ZXJwcmV0ZXIub3BlcmF0b3IgPj4ocmVzdWx0KSkpCisgICAgICAgICAgICAgICAgICBCT09TVF9MQ0FTVF9USFJPV19CQURfQ0FTVChTb3VyY2UsIFRhcmdldCk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9OworI2lmIChkZWZpbmVkIF9NU0NfVkVSKQorIyBwcmFnbWEgd2FybmluZyggcG9wICkKKyNlbmRpZgorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTb3VyY2U+CisgICAgICAgIHN0cnVjdCBsZXhpY2FsX2Nhc3RfY29weQorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMgaW5saW5lIGNvbnN0IFNvdXJjZSYgbGV4aWNhbF9jYXN0X2ltcGwoY29uc3QgU291cmNlICZhcmcpIEJPT1NUX05PRVhDRVBUCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFyZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgU291cmNlLCBjbGFzcyBUYXJnZXQgPgorICAgICAgICBzdHJ1Y3QgZGV0ZWN0X3ByZWNpc2lvbl9sb3NzCisgICAgICAgIHsKKyAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6Om51bWVyaWM6OlRydW5jPFNvdXJjZT4gUm91bmRlcjsKKyAgICAgICAgIHR5cGVkZWYgU291cmNlIHNvdXJjZV90eXBlIDsKKworICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG1wbDo6aWZfPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2FyaXRobWV0aWM8U291cmNlPiwgU291cmNlLCBTb3VyY2UgY29uc3QmCisgICAgICAgICAgPjo6dHlwZSBhcmd1bWVudF90eXBlIDsKKworICAgICAgICAgc3RhdGljIHNvdXJjZV90eXBlIG5lYXJieWludCAoIGFyZ3VtZW50X3R5cGUgcyApCisgICAgICAgICB7CisgICAgICAgICAgICBjb25zdCBzb3VyY2VfdHlwZSBuZWFyX2ludCA9IFJvdW5kZXI6Om5lYXJieWludChzKTsKKyAgICAgICAgICAgIGlmIChuZWFyX2ludCkgeworICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZV90eXBlIG9yaWdfZGl2X3JvdW5kID0gcyAvIG5lYXJfaW50OworICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZV90eXBlIGVwcyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8c291cmNlX3R5cGU+OjplcHNpbG9uKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKG9yaWdfZGl2X3JvdW5kID4gMSA/IG9yaWdfZGl2X3JvdW5kIC0gMSA6IDEgLSBvcmlnX2Rpdl9yb3VuZCkgPiBlcHMpCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0xDQVNUX1RIUk9XX0JBRF9DQVNUKFNvdXJjZSwgVGFyZ2V0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHMgOworICAgICAgICAgfQorCisgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFJvdW5kZXI6OnJvdW5kX3N0eWxlIHJvdW5kX3N0eWxlOworICAgICAgICB9IDsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgU291cmNlLCBjbGFzcyBUYXJnZXQgPgorICAgICAgICBzdHJ1Y3Qgbm90aHJvd19vdmVyZmxvd19oYW5kbGVyCisgICAgICAgIHsKKyAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkgKCBuZG5ib29zdDo6bnVtZXJpYzo6cmFuZ2VfY2hlY2tfcmVzdWx0IHIgKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChyICE9IG5kbmJvb3N0OjpudW1lcmljOjpjSW5SYW5nZSkKKyAgICAgICAgICAgICAgICBCT09TVF9MQ0FTVF9USFJPV19CQURfQ0FTVChTb3VyY2UsIFRhcmdldCk7CisgICAgICAgICAgfQorICAgICAgICB9IDsKKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+CisgICAgICAgIHN0cnVjdCBsZXhpY2FsX2Nhc3RfZHluYW1pY19udW1fbm90X2lnbm9yaW5nX21pbnVzCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyBpbmxpbmUgVGFyZ2V0IGxleGljYWxfY2FzdF9pbXBsKGNvbnN0IFNvdXJjZSAmYXJnKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6bnVtZXJpYzo6Y29udmVydGVyPAorICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om51bWVyaWM6OmNvbnZlcnNpb25fdHJhaXRzPFRhcmdldCxTb3VyY2U+LAorICAgICAgICAgICAgICAgICAgICAgICAgbm90aHJvd19vdmVyZmxvd19oYW5kbGVyPFNvdXJjZSwgVGFyZ2V0PiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGVjdF9wcmVjaXNpb25fbG9zczxTb3VyY2UsIFRhcmdldD4KKyAgICAgICAgICAgICAgICA+Ojpjb252ZXJ0KGFyZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPgorICAgICAgICBzdHJ1Y3QgbGV4aWNhbF9jYXN0X2R5bmFtaWNfbnVtX2lnbm9yaW5nX21pbnVzCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyBpbmxpbmUgVGFyZ2V0IGxleGljYWxfY2FzdF9pbXBsKGNvbnN0IFNvdXJjZSAmYXJnKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6bXBsOjpldmFsX2lmX2M8CisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfZmxvYXQ8U291cmNlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjppZGVudGl0eTxTb3VyY2U+LAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om1ha2VfdW5zaWduZWQ8U291cmNlPgorICAgICAgICAgICAgICAgID46OnR5cGUgdXNvdXJjZV90OworCisgICAgICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6bnVtZXJpYzo6Y29udmVydGVyPAorICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgdXNvdXJjZV90LAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om51bWVyaWM6OmNvbnZlcnNpb25fdHJhaXRzPFRhcmdldCx1c291cmNlX3Q+LAorICAgICAgICAgICAgICAgICAgICAgICAgbm90aHJvd19vdmVyZmxvd19oYW5kbGVyPHVzb3VyY2VfdCwgVGFyZ2V0PiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGVjdF9wcmVjaXNpb25fbG9zczx1c291cmNlX3QsIFRhcmdldD4KKyAgICAgICAgICAgICAgICA+IGNvbnZlcnRlcl90OworCisgICAgICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICAgICAgICAgYXJnIDwgMCA/IHN0YXRpY19jYXN0PFRhcmdldD4oMHUgLSBjb252ZXJ0ZXJfdDo6Y29udmVydCgwdSAtIGFyZykpIDogY29udmVydGVyX3Q6OmNvbnZlcnQoYXJnKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgLyoKKyAgICAgICAgICogbGV4aWNhbF9jYXN0X2R5bmFtaWNfbnVtIGZvbGxvd3MgdGhlIHJ1bGVzOgorICAgICAgICAgKiAxKSBJZiBTb3VyY2UgY2FuIGJlIGNvbnZlcnRlZCB0byBUYXJnZXQgd2l0aG91dCBwcmVjaXNpb24gbG9zcyBhbmQKKyAgICAgICAgICogd2l0aG91dCBvdmVyZmxvd3MsIHRoZW4gYXNzaWduIFNvdXJjZSB0byBUYXJnZXQgYW5kIHJldHVybgorICAgICAgICAgKgorICAgICAgICAgKiAyKSBJZiBTb3VyY2UgaXMgbGVzcyB0aGFuIDAgYW5kIFRhcmdldCBpcyBhbiB1bnNpZ25lZCBpbnRlZ2VyLAorICAgICAgICAgKiB0aGVuIG5lZ2F0ZSBTb3VyY2UsIGNoZWNrIHRoZSByZXF1aXJlbWVudHMgb2YgcnVsZSAxKSBhbmQgaWYKKyAgICAgICAgICogc3VjY2Vzc2Z1bCwgYXNzaWduIHN0YXRpY19jYXN0ZWQgU291cmNlIHRvIFRhcmdldCBhbmQgcmV0dXJuCisgICAgICAgICAqCisgICAgICAgICAqIDMpIE90aGVyd2lzZSB0aHJvdyBhIGJhZF9sZXhpY2FsX2Nhc3QgZXhjZXB0aW9uCisgICAgICAgICAqCisgICAgICAgICAqCisgICAgICAgICAqIFJ1bGUgMikgcmVxdWlyZWQgYmVjYXVzZSBuZG5ib29zdDo6bGV4aWNhbF9jYXN0IGhhcyB0aGUgYmVoYXZpb3Igb2YKKyAgICAgICAgICogc3RyaW5nc3RyZWFtLCB3aGljaCB1c2VzIHRoZSBydWxlcyBvZiBzY2FuZiBmb3IgY29udmVyc2lvbnMuIEFuZAorICAgICAgICAgKiBpbiB0aGUgQzk5IHN0YW5kYXJkIGZvciB1bnNpZ25lZCBpbnB1dCB2YWx1ZSBtaW51cyBzaWduIGlzCisgICAgICAgICAqIG9wdGlvbmFsLCBzbyBpZiBhIG5lZ2F0aXZlIG51bWJlciBpcyByZWFkLCBubyBlcnJvcnMgd2lsbCBhcmlzZQorICAgICAgICAgKiBhbmQgdGhlIHJlc3VsdCB3aWxsIGJlIHRoZSB0d28ncyBjb21wbGVtZW50LgorICAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPgorICAgICAgICBzdHJ1Y3QgbGV4aWNhbF9jYXN0X2R5bmFtaWNfbnVtCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyBpbmxpbmUgVGFyZ2V0IGxleGljYWxfY2FzdF9pbXBsKGNvbnN0IFNvdXJjZSAmYXJnKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6bXBsOjppZl9jPAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2lnbmVkPFNvdXJjZT46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19mbG9hdDxTb3VyY2U+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3NhbWU8U291cmNlLCBib29sPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgID46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19zYW1lPFRhcmdldCwgYm9vbD46OnZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc191bnNpZ25lZDxUYXJnZXQ+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgbGV4aWNhbF9jYXN0X2R5bmFtaWNfbnVtX2lnbm9yaW5nX21pbnVzPFRhcmdldCwgU291cmNlPiwKKyAgICAgICAgICAgICAgICAgICAgbGV4aWNhbF9jYXN0X2R5bmFtaWNfbnVtX25vdF9pZ25vcmluZ19taW51czxUYXJnZXQsIFNvdXJjZT4KKyAgICAgICAgICAgICAgICA+Ojp0eXBlIGNhc3Rlcl90eXBlOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhc3Rlcl90eXBlOjpsZXhpY2FsX2Nhc3RfaW1wbChhcmcpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4KKyAgICBpbmxpbmUgVGFyZ2V0IGxleGljYWxfY2FzdChjb25zdCBTb3VyY2UgJmFyZykKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b19wb2ludGVyX2RlY2F5PFNvdXJjZT46OnR5cGUgc3JjOworCisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjppc194Y2hhcl90b194Y2hhcjxUYXJnZXQsIHNyYyA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjppc19jaGFyX2FycmF5X3RvX3N0ZHN0cmluZzxUYXJnZXQsIHNyYyA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTxUYXJnZXQsIHNyYyA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmlzX3N0ZHN0cmluZzxUYXJnZXQgPjo6dmFsdWUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICA+IHNoYWxsX3dlX2NvcHlfdDsKKworICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjppc19hcml0aG1ldGljX2FuZF9ub3RfeGNoYXJzPFRhcmdldCwgc3JjID4gc2hhbGxfd2VfY29weV93aXRoX2R5bmFtaWNfY2hlY2tfdDsKKworICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgIHNoYWxsX3dlX2NvcHlfdDo6dmFsdWUsCisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpsZXhpY2FsX2Nhc3RfY29weTxzcmMgPiwKKyAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6Om1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgc2hhbGxfd2VfY29weV93aXRoX2R5bmFtaWNfY2hlY2tfdDo6dmFsdWUsCisgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmxleGljYWxfY2FzdF9keW5hbWljX251bTxUYXJnZXQsIHNyYyA+LAorICAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpsZXhpY2FsX2Nhc3RfZG9fY2FzdDxUYXJnZXQsIHNyYyA+CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgID46OnR5cGUgY2FzdGVyX3R5cGU7CisKKyAgICAgICAgcmV0dXJuIGNhc3Rlcl90eXBlOjpsZXhpY2FsX2Nhc3RfaW1wbChhcmcpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYXJnZXQ+CisgICAgaW5saW5lIFRhcmdldCBsZXhpY2FsX2Nhc3QoY29uc3QgY2hhciogY2hhcnMsIHN0ZDo6c2l6ZV90IGNvdW50KQorICAgICB7CisgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjpsZXhpY2FsX2Nhc3Q8VGFyZ2V0PigKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6Oml0ZXJhdG9yX3JhbmdlPGNvbnN0IGNoYXIqPihjaGFycywgY2hhcnMgKyBjb3VudCkKKyAgICAgICAgKTsKKyAgICB9CisKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYXJnZXQ+CisgICAgaW5saW5lIFRhcmdldCBsZXhpY2FsX2Nhc3QoY29uc3QgdW5zaWduZWQgY2hhciogY2hhcnMsIHN0ZDo6c2l6ZV90IGNvdW50KQorICAgIHsKKyAgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjpsZXhpY2FsX2Nhc3Q8VGFyZ2V0PigKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6Oml0ZXJhdG9yX3JhbmdlPGNvbnN0IHVuc2lnbmVkIGNoYXIqPihjaGFycywgY2hhcnMgKyBjb3VudCkKKyAgICAgICAgICk7CisgICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYXJnZXQ+CisgICAgaW5saW5lIFRhcmdldCBsZXhpY2FsX2Nhc3QoY29uc3Qgc2lnbmVkIGNoYXIqIGNoYXJzLCBzdGQ6OnNpemVfdCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjpsZXhpY2FsX2Nhc3Q8VGFyZ2V0PigKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6Oml0ZXJhdG9yX3JhbmdlPGNvbnN0IHNpZ25lZCBjaGFyKj4oY2hhcnMsIGNoYXJzICsgY291bnQpCisgICAgICAgICk7CisgICAgfQorCisjaWZuZGVmIEJPT1NUX0xDQVNUX05PX1dDSEFSX1QKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGFyZ2V0PgorICAgIGlubGluZSBUYXJnZXQgbGV4aWNhbF9jYXN0KGNvbnN0IHdjaGFyX3QqIGNoYXJzLCBzdGQ6OnNpemVfdCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjpsZXhpY2FsX2Nhc3Q8VGFyZ2V0PigKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6Oml0ZXJhdG9yX3JhbmdlPGNvbnN0IHdjaGFyX3QqPihjaGFycywgY2hhcnMgKyBjb3VudCkKKyAgICAgICAgKTsKKyAgICB9CisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTk9fQ0hBUjE2X1QKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGFyZ2V0PgorICAgIGlubGluZSBUYXJnZXQgbGV4aWNhbF9jYXN0KGNvbnN0IGNoYXIxNl90KiBjaGFycywgc3RkOjpzaXplX3QgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6bGV4aWNhbF9jYXN0PFRhcmdldD4oCisgICAgICAgICAgICA6Om5kbmJvb3N0OjppdGVyYXRvcl9yYW5nZTxjb25zdCBjaGFyMTZfdCo+KGNoYXJzLCBjaGFycyArIGNvdW50KQorICAgICAgICApOworICAgIH0KKyNlbmRpZgorI2lmbmRlZiBCT09TVF9OT19DSEFSMzJfVAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYXJnZXQ+CisgICAgaW5saW5lIFRhcmdldCBsZXhpY2FsX2Nhc3QoY29uc3QgY2hhcjMyX3QqIGNoYXJzLCBzdGQ6OnNpemVfdCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjpsZXhpY2FsX2Nhc3Q8VGFyZ2V0PigKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6Oml0ZXJhdG9yX3JhbmdlPGNvbnN0IGNoYXIzMl90Kj4oY2hhcnMsIGNoYXJzICsgY291bnQpCisgICAgICAgICk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbHNlIC8vICNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwKKyAgICB7CisKKyAgICAgICAgLy8gc2VsZWN0b3JzIGZvciBjaG9vc2luZyBzdHJlYW0gY2hhcmFjdGVyIHR5cGUKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KKyAgICAgICAgc3RydWN0IHN0cmVhbV9jaGFyCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgY2hhciB0eXBlOworICAgICAgICB9OworCisjaWZuZGVmIEJPT1NUX0xDQVNUX05PX1dDSEFSX1QKKyNpZm5kZWYgQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1QKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3Qgc3RyZWFtX2NoYXI8d2NoYXJfdD4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiB3Y2hhcl90IHR5cGU7CisgICAgICAgIH07CisjZW5kaWYKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCBzdHJlYW1fY2hhcjx3Y2hhcl90ICo+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgd2NoYXJfdCB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHN0cmVhbV9jaGFyPGNvbnN0IHdjaGFyX3QgKj4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiB3Y2hhcl90IHR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3Qgc3RyZWFtX2NoYXI8c3RkOjp3c3RyaW5nPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIHdjaGFyX3QgdHlwZTsKKyAgICAgICAgfTsKKyNlbmRpZgorCisgICAgICAgIC8vIHN0cmVhbSB3cmFwcGVyIGZvciBoYW5kbGluZyBsZXhpY2FsIGNvbnZlcnNpb25zCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlLCB0eXBlbmFtZSBUcmFpdHM+CisgICAgICAgIGNsYXNzIGxleGljYWxfc3RyZWFtCisgICAgICAgIHsKKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgd2lkZXN0X2NoYXI8CisgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RyZWFtX2NoYXI8VGFyZ2V0Pjo6dHlwZSwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdHJlYW1fY2hhcjxTb3VyY2U+Ojp0eXBlPjo6dHlwZSBjaGFyX3R5cGU7CisKKyAgICAgICAgICAgIHR5cGVkZWYgVHJhaXRzIHRyYWl0c190eXBlOworCisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIGxleGljYWxfc3RyZWFtKGNoYXJfdHlwZSogPSAwLCBjaGFyX3R5cGUqID0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0udW5zZXRmKHN0ZDo6aW9zOjpza2lwd3MpOworICAgICAgICAgICAgICAgIGxjYXN0X3NldF9wcmVjaXNpb24oc3RyZWFtLCBzdGF0aWNfY2FzdDxTb3VyY2UqPigwKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0Kj4oMCkgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH5sZXhpY2FsX3N0cmVhbSgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgI2lmIGRlZmluZWQoQk9PU1RfTk9fU1RSSU5HU1RSRUFNKQorICAgICAgICAgICAgICAgIHN0cmVhbS5mcmVlemUoZmFsc2UpOworICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcjw8KGNvbnN0IFNvdXJjZSAmaW5wdXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuICEoc3RyZWFtIDw8IGlucHV0KS5mYWlsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnB1dFN0cmVhbWFibGU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oSW5wdXRTdHJlYW1hYmxlICZvdXRwdXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuICFpc19wb2ludGVyPElucHV0U3RyZWFtYWJsZT46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSA+PiBvdXRwdXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmdldCgpID09CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fPDMpICYmIGRlZmluZWQoQk9PU1RfTk9fU1REX1dTVFJJTkcpCisvLyBHQ0MgMi45eCBsYWNrcyBzdGQ6OmNoYXJfdHJhaXRzPD46OmVvZigpLgorLy8gV2UgdXNlIEJPT1NUX05PX1NURF9XU1RSSU5HIHRvIGZpbHRlciBvdXQgU1RMcG9ydCBhbmQgbGlic3RkYysrLXYzCisvLyBjb25maWd1cmF0aW9ucywgd2hpY2ggZG8gcHJvdmlkZSBzdGQ6OmNoYXJfdHJhaXRzPD46OmVvZigpLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICBFT0Y7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaXRzX3R5cGU6OmVvZigpOworI2VuZGlmCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PihzdGQ6OnN0cmluZyAmb3V0cHV0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICNpZiBkZWZpbmVkKEJPT1NUX05PX1NUUklOR1NUUkVBTSkKKyAgICAgICAgICAgICAgICBzdHJlYW0gPDwgJ1wwJzsKKyAgICAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAgICBzdHJlYW0uc3RyKCkuc3dhcChvdXRwdXQpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2lmbmRlZiBCT09TVF9MQ0FTVF9OT19XQ0hBUl9UCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj4oc3RkOjp3c3RyaW5nICZvdXRwdXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RyZWFtLnN0cigpLnN3YXAob3V0cHV0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNlbmRpZgorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAjaWYgZGVmaW5lZChCT09TVF9OT19TVFJJTkdTVFJFQU0pCisgICAgICAgICAgICBzdGQ6OnN0cnN0cmVhbSBzdHJlYW07CisgICAgICAgICAgICAjZWxpZiBkZWZpbmVkKEJPT1NUX05PX1NURF9MT0NBTEUpCisgICAgICAgICAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CisgICAgICAgICAgICAjZWxzZQorICAgICAgICAgICAgc3RkOjpiYXNpY19zdHJpbmdzdHJlYW08Y2hhcl90eXBlLHRyYWl0c190eXBlPiBzdHJlYW07CisgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvLyBjYWxsLWJ5LXZhbHVlIGZhbGxiYWNrIHZlcnNpb24gKGRlcHJlY2F0ZWQpCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4KKyAgICBUYXJnZXQgbGV4aWNhbF9jYXN0KFNvdXJjZSBhcmcpCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6d2lkZXN0X2NoYXI8IAorICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBkZXRhaWw6OnN0cmVhbV9jaGFyPFRhcmdldD46OnR5cGUgCisgICAgICAgICAgLCBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRldGFpbDo6c3RyZWFtX2NoYXI8U291cmNlPjo6dHlwZSAKKyAgICAgICAgPjo6dHlwZSBjaGFyX3R5cGU7IAorCisgICAgICAgIHR5cGVkZWYgc3RkOjpjaGFyX3RyYWl0czxjaGFyX3R5cGU+IHRyYWl0czsKKyAgICAgICAgZGV0YWlsOjpsZXhpY2FsX3N0cmVhbTxUYXJnZXQsIFNvdXJjZSwgdHJhaXRzPiBpbnRlcnByZXRlcjsKKyAgICAgICAgVGFyZ2V0IHJlc3VsdDsKKworICAgICAgICBpZighKGludGVycHJldGVyIDw8IGFyZyAmJiBpbnRlcnByZXRlciA+PiByZXN1bHQpKQorICAgICAgICAgIEJPT1NUX0xDQVNUX1RIUk9XX0JBRF9DQVNUKFNvdXJjZSwgVGFyZ2V0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZgorCisvLyBDb3B5cmlnaHQgS2V2bGluIEhlbm5leSwgMjAwMC0yMDA1LgorLy8gQ29weXJpZ2h0IEFsZXhhbmRlciBOYXNvbm92LCAyMDA2LTIwMTAuCisvLyBDb3B5cmlnaHQgQW50b255IFBvbHVraGluLCAyMDExLTIwMTMuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjdW5kZWYgQk9PU1RfTENBU1RfVEhST1dfQkFEX0NBU1QKKyN1bmRlZiBCT09TVF9MQ0FTVF9OT19XQ0hBUl9UCisjdW5kZWYgQk9PU1RfTENBU1RfSEFTX0lOVDEyOAorCisjZW5kaWYgLy8gQk9PU1RfTEVYSUNBTF9DQVNUX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbGltaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbGltaXRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2ZkZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9saW1pdHMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gbWFkZG9jayAxOTk5LiAKKy8vICAoQykgRGF2aWQgQWJyYWhhbXMgMjAwMi4gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIHVzZSB0aGlzIGhlYWRlciBhcyBhIHdvcmthcm91bmQgZm9yIG1pc3NpbmcgPGxpbWl0cz4KKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2NvbXBhdGliaWxpdHkvaW5kZXguaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9MSU1JVFMKKyNkZWZpbmUgQk9PU1RfTElNSVRTCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWZkZWYgQk9PU1RfTk9fTElNSVRTCisjICBlcnJvciAiVGhlcmUgaXMgbm8gc3RkOjpudW1lcmljX2xpbWl0cyBzdXBwcG9ydCBhdmFpbGFibGUuIgorI2Vsc2UKKyMgaW5jbHVkZSA8bGltaXRzPgorI2VuZGlmCisKKyNpZiAoZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKSAmJiBkZWZpbmVkKEJPT1NUX05PX0xPTkdfTE9OR19OVU1FUklDX0xJTUlUUykpIFwKKyAgICAgIHx8IChkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkgJiYgZGVmaW5lZChCT09TVF9OT19NU19JTlQ2NF9OVU1FUklDX0xJTUlUUykpCisvLyBBZGQgbWlzc2luZyBzcGVjaWFsaXphdGlvbnMgZm9yIG51bWVyaWNfbGltaXRzOgorI2lmZGVmIEJPT1NUX0hBU19NU19JTlQ2NAorIyAgZGVmaW5lIEJPT1NUX0xMVCBfX2ludDY0CisjICBkZWZpbmUgQk9PU1RfVUxMVCB1bnNpZ25lZCBfX2ludDY0CisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0xMVCAgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUKKyMgIGRlZmluZSBCT09TVF9VTExUICA6Om5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyNlbmRpZgorCisjaW5jbHVkZSA8Y2xpbWl0cz4gIC8vIGZvciBDSEFSX0JJVAorCituYW1lc3BhY2Ugc3RkCit7CisgIHRlbXBsYXRlPD4KKyAgY2xhc3MgbnVtZXJpY19saW1pdHM8Qk9PU1RfTExUPiAKKyAgeworICAgcHVibGljOgorCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc3BlY2lhbGl6ZWQgPSB0cnVlKTsKKyNpZmRlZiBCT09TVF9IQVNfTVNfSU5UNjQKKyAgICAgIHN0YXRpYyBCT09TVF9MTFQgbWluIEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpeyByZXR1cm4gMHg4MDAwMDAwMDAwMDAwMDAwaTY0OyB9CisgICAgICBzdGF0aWMgQk9PU1RfTExUIG1heCBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKXsgcmV0dXJuIDB4N0ZGRkZGRkZGRkZGRkZGRmk2NDsgfQorI2VsaWYgZGVmaW5lZChMTE9OR19NQVgpCisgICAgICBzdGF0aWMgQk9PU1RfTExUIG1pbiBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKXsgcmV0dXJuIExMT05HX01JTjsgfQorICAgICAgc3RhdGljIEJPT1NUX0xMVCBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiBMTE9OR19NQVg7IH0KKyNlbGlmIGRlZmluZWQoTE9OR0xPTkdfTUFYKQorICAgICAgc3RhdGljIEJPT1NUX0xMVCBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiBMT05HTE9OR19NSU47IH0KKyAgICAgIHN0YXRpYyBCT09TVF9MTFQgbWF4IEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpeyByZXR1cm4gTE9OR0xPTkdfTUFYOyB9CisjZWxzZQorICAgICAgc3RhdGljIEJPT1NUX0xMVCBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiAxTEwgPDwgKHNpemVvZihCT09TVF9MTFQpICogQ0hBUl9CSVQgLSAxKTsgfQorICAgICAgc3RhdGljIEJPT1NUX0xMVCBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiB+KG1pbikoKTsgfQorI2VuZGlmCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBkaWdpdHMgPSBzaXplb2YoQk9PU1RfTExUKSAqIENIQVJfQklUIC0xKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIGRpZ2l0czEwID0gKENIQVJfQklUICogc2l6ZW9mIChCT09TVF9MTFQpIC0gMSkgKiAzMDFMIC8gMTAwMCk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc2lnbmVkID0gdHJ1ZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfaW50ZWdlciA9IHRydWUpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2V4YWN0ID0gdHJ1ZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCByYWRpeCA9IDIpOworICAgICAgc3RhdGljIEJPT1NUX0xMVCBlcHNpbG9uKCkgdGhyb3coKSB7IHJldHVybiAwOyB9OworICAgICAgc3RhdGljIEJPT1NUX0xMVCByb3VuZF9lcnJvcigpIHRocm93KCkgeyByZXR1cm4gMDsgfTsKKworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgbWluX2V4cG9uZW50ID0gMCk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBtaW5fZXhwb25lbnQxMCA9IDApOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgbWF4X2V4cG9uZW50ID0gMCk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBtYXhfZXhwb25lbnQxMCA9IDApOworCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaGFzX2luZmluaXR5ID0gZmFsc2UpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGhhc19xdWlldF9OYU4gPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaGFzX3NpZ25hbGluZ19OYU4gPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaGFzX2Rlbm9ybSA9IGZhbHNlKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBoYXNfZGVub3JtX2xvc3MgPSBmYWxzZSk7CisgICAgICBzdGF0aWMgQk9PU1RfTExUIGluZmluaXR5KCkgdGhyb3coKSB7IHJldHVybiAwOyB9OworICAgICAgc3RhdGljIEJPT1NUX0xMVCBxdWlldF9OYU4oKSB0aHJvdygpIHsgcmV0dXJuIDA7IH07CisgICAgICBzdGF0aWMgQk9PU1RfTExUIHNpZ25hbGluZ19OYU4oKSB0aHJvdygpIHsgcmV0dXJuIDA7IH07CisgICAgICBzdGF0aWMgQk9PU1RfTExUIGRlbm9ybV9taW4oKSB0aHJvdygpIHsgcmV0dXJuIDA7IH07CisKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19pZWM1NTkgPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfYm91bmRlZCA9IHRydWUpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX21vZHVsbyA9IHRydWUpOworCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdHJhcHMgPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdGlueW5lc3NfYmVmb3JlID0gZmFsc2UpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGZsb2F0X3JvdW5kX3N0eWxlLCByb3VuZF9zdHlsZSA9IHJvdW5kX3Rvd2FyZF96ZXJvKTsKKyAgICAgIAorICB9OworCisgIHRlbXBsYXRlPD4KKyAgY2xhc3MgbnVtZXJpY19saW1pdHM8Qk9PU1RfVUxMVD4gCisgIHsKKyAgIHB1YmxpYzoKKworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX3NwZWNpYWxpemVkID0gdHJ1ZSk7CisjaWZkZWYgQk9PU1RfSEFTX01TX0lOVDY0CisgICAgICBzdGF0aWMgQk9PU1RfVUxMVCBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiAwdWk2NDsgfQorICAgICAgc3RhdGljIEJPT1NUX1VMTFQgbWF4IEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpeyByZXR1cm4gMHhGRkZGRkZGRkZGRkZGRkZGdWk2NDsgfQorI2VsaWYgZGVmaW5lZChVTExPTkdfTUFYKSAmJiBkZWZpbmVkKFVMTE9OR19NSU4pCisgICAgICBzdGF0aWMgQk9PU1RfVUxMVCBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiBVTExPTkdfTUlOOyB9CisgICAgICBzdGF0aWMgQk9PU1RfVUxMVCBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiBVTExPTkdfTUFYOyB9CisjZWxpZiBkZWZpbmVkKFVMT05HTE9OR19NQVgpICYmIGRlZmluZWQoVUxPTkdMT05HX01JTikKKyAgICAgIHN0YXRpYyBCT09TVF9VTExUIG1pbiBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKXsgcmV0dXJuIFVMT05HTE9OR19NSU47IH0KKyAgICAgIHN0YXRpYyBCT09TVF9VTExUIG1heCBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKXsgcmV0dXJuIFVMT05HTE9OR19NQVg7IH0KKyNlbHNlCisgICAgICBzdGF0aWMgQk9PU1RfVUxMVCBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiAwdUxMOyB9CisgICAgICBzdGF0aWMgQk9PU1RfVUxMVCBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCl7IHJldHVybiB+MHVMTDsgfQorI2VuZGlmCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBkaWdpdHMgPSBzaXplb2YoQk9PU1RfTExUKSAqIENIQVJfQklUKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIGRpZ2l0czEwID0gKENIQVJfQklUICogc2l6ZW9mIChCT09TVF9MTFQpKSAqIDMwMUwgLyAxMDAwKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19zaWduZWQgPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfaW50ZWdlciA9IHRydWUpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2V4YWN0ID0gdHJ1ZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCByYWRpeCA9IDIpOworICAgICAgc3RhdGljIEJPT1NUX1VMTFQgZXBzaWxvbigpIHRocm93KCkgeyByZXR1cm4gMDsgfTsKKyAgICAgIHN0YXRpYyBCT09TVF9VTExUIHJvdW5kX2Vycm9yKCkgdGhyb3coKSB7IHJldHVybiAwOyB9OworCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBtaW5fZXhwb25lbnQgPSAwKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIG1pbl9leHBvbmVudDEwID0gMCk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBtYXhfZXhwb25lbnQgPSAwKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIG1heF9leHBvbmVudDEwID0gMCk7CisKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBoYXNfaW5maW5pdHkgPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaGFzX3F1aWV0X05hTiA9IGZhbHNlKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBoYXNfc2lnbmFsaW5nX05hTiA9IGZhbHNlKTsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBoYXNfZGVub3JtID0gZmFsc2UpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGhhc19kZW5vcm1fbG9zcyA9IGZhbHNlKTsKKyAgICAgIHN0YXRpYyBCT09TVF9VTExUIGluZmluaXR5KCkgdGhyb3coKSB7IHJldHVybiAwOyB9OworICAgICAgc3RhdGljIEJPT1NUX1VMTFQgcXVpZXRfTmFOKCkgdGhyb3coKSB7IHJldHVybiAwOyB9OworICAgICAgc3RhdGljIEJPT1NUX1VMTFQgc2lnbmFsaW5nX05hTigpIHRocm93KCkgeyByZXR1cm4gMDsgfTsKKyAgICAgIHN0YXRpYyBCT09TVF9VTExUIGRlbm9ybV9taW4oKSB0aHJvdygpIHsgcmV0dXJuIDA7IH07CisKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19pZWM1NTkgPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfYm91bmRlZCA9IHRydWUpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX21vZHVsbyA9IHRydWUpOworCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdHJhcHMgPSBmYWxzZSk7CisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdGlueW5lc3NfYmVmb3JlID0gZmFsc2UpOworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGZsb2F0X3JvdW5kX3N0eWxlLCByb3VuZF9zdHlsZSA9IHJvdW5kX3Rvd2FyZF96ZXJvKTsKKyAgICAgIAorICB9OworfQorI2VuZGlmIAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYWtlX3NoYXJlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21ha2Vfc2hhcmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTJiMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tYWtlX3NoYXJlZC5ocHAKQEAgLTAsMCArMSwxNyBAQAorI2lmbmRlZiBCT09TVF9NQUtFX1NIQVJFRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTUFLRV9TSEFSRURfSFBQX0lOQ0xVREVECisKKy8vICBtYWtlX3NoYXJlZC5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA3LCAyMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmh0bWwKKy8vICBmb3IgZG9jdW1lbnRhdGlvbi4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZC5ocHA+CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX01BS0VfU0hBUkVEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3BvbGljaWVzL3BvbGljeS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvcG9saWNpZXMvcG9saWN5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTRiYjE2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3BvbGljaWVzL3BvbGljeS5ocHAKQEAgLTAsMCArMSw5OTIgQEAKKy8vICBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDcuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9NQVRIX1BPTElDWV9IUFAKKyNkZWZpbmUgQk9PU1RfTUFUSF9QT0xJQ1lfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2NvbnRhaW5zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9maW5kX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcmVtb3ZlX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcHVzaF9iYWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9zaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvY29tcGFyaXNvbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc3RhdGljX2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3Rvb2xzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bGltaXRzPgorLy8gU2FkbHkgd2UgZG8gbmVlZCB0aGUgLmggdmVyc2lvbnMgb2YgdGhlc2UgdG8gYmUgc3VyZSBvZiBnZXR0aW5nCisvLyBGTFRfTUFOVF9ESUcgZXRjLgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPG1hdGguaD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eyBuYW1lc3BhY2UgbWF0aHsgCisKK25hbWVzcGFjZSB0b29sc3sKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbnQgZGlnaXRzKEJPT1NUX01BVEhfRVhQTElDSVRfVEVNUExBVEVfVFlQRShUKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1QgZXBzaWxvbihCT09TVF9NQVRIX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUoVCkpOworCit9CisKK25hbWVzcGFjZSBwb2xpY2llc3sKKworLy8KKy8vIERlZmluZSBtYWNyb3MgZm9yIG91ciBkZWZhdWx0IHBvbGljaWVzLCBpZiB0aGV5J3JlIG5vdCBkZWZpbmVkIGFscmVhZHk6CisvLworI2lmbmRlZiBCT09TVF9NQVRIX0RPTUFJTl9FUlJPUl9QT0xJQ1kKKyNkZWZpbmUgQk9PU1RfTUFUSF9ET01BSU5fRVJST1JfUE9MSUNZIHRocm93X29uX2Vycm9yCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTUFUSF9QT0xFX0VSUk9SX1BPTElDWQorI2RlZmluZSBCT09TVF9NQVRIX1BPTEVfRVJST1JfUE9MSUNZIHRocm93X29uX2Vycm9yCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTUFUSF9PVkVSRkxPV19FUlJPUl9QT0xJQ1kKKyNkZWZpbmUgQk9PU1RfTUFUSF9PVkVSRkxPV19FUlJPUl9QT0xJQ1kgdGhyb3dfb25fZXJyb3IKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX0VWQUxVQVRJT05fRVJST1JfUE9MSUNZCisjZGVmaW5lIEJPT1NUX01BVEhfRVZBTFVBVElPTl9FUlJPUl9QT0xJQ1kgdGhyb3dfb25fZXJyb3IKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX1JPVU5ESU5HX0VSUk9SX1BPTElDWQorI2RlZmluZSBCT09TVF9NQVRIX1JPVU5ESU5HX0VSUk9SX1BPTElDWSB0aHJvd19vbl9lcnJvcgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX01BVEhfVU5ERVJGTE9XX0VSUk9SX1BPTElDWQorI2RlZmluZSBCT09TVF9NQVRIX1VOREVSRkxPV19FUlJPUl9QT0xJQ1kgaWdub3JlX2Vycm9yCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTUFUSF9ERU5PUk1fRVJST1JfUE9MSUNZCisjZGVmaW5lIEJPT1NUX01BVEhfREVOT1JNX0VSUk9SX1BPTElDWSBpZ25vcmVfZXJyb3IKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX0lOREVURVJNSU5BVEVfUkVTVUxUX0VSUk9SX1BPTElDWQorI2RlZmluZSBCT09TVF9NQVRIX0lOREVURVJNSU5BVEVfUkVTVUxUX0VSUk9SX1BPTElDWSBpZ25vcmVfZXJyb3IKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX0RJR0lUUzEwX1BPTElDWQorI2RlZmluZSBCT09TVF9NQVRIX0RJR0lUUzEwX1BPTElDWSAwCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTUFUSF9QUk9NT1RFX0ZMT0FUX1BPTElDWQorI2RlZmluZSBCT09TVF9NQVRIX1BST01PVEVfRkxPQVRfUE9MSUNZIHRydWUKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX1BST01PVEVfRE9VQkxFX1BPTElDWQorI2lmZGVmIEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTUFUSF9QUk9NT1RFX0RPVUJMRV9QT0xJQ1kgZmFsc2UKKyNlbHNlCisjZGVmaW5lIEJPT1NUX01BVEhfUFJPTU9URV9ET1VCTEVfUE9MSUNZIHRydWUKKyNlbmRpZgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX01BVEhfRElTQ1JFVEVfUVVBTlRJTEVfUE9MSUNZCisjZGVmaW5lIEJPT1NUX01BVEhfRElTQ1JFVEVfUVVBTlRJTEVfUE9MSUNZIGludGVnZXJfcm91bmRfb3V0d2FyZHMKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX0FTU0VSVF9VTkRFRklORURfUE9MSUNZCisjZGVmaW5lIEJPT1NUX01BVEhfQVNTRVJUX1VOREVGSU5FRF9QT0xJQ1kgdHJ1ZQorI2VuZGlmCisjaWZuZGVmIEJPT1NUX01BVEhfTUFYX1NFUklFU19JVEVSQVRJT05fUE9MSUNZCisjZGVmaW5lIEJPT1NUX01BVEhfTUFYX1NFUklFU19JVEVSQVRJT05fUE9MSUNZIDEwMDAwMDAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9NQVRIX01BWF9ST09UX0lURVJBVElPTl9QT0xJQ1kKKyNkZWZpbmUgQk9PU1RfTUFUSF9NQVhfUk9PVF9JVEVSQVRJT05fUE9MSUNZIDIwMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfX0JPUkxBTkRDX18pIFwKKyAgICYmICEoZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA8PSAyKSkKKyNkZWZpbmUgQk9PU1RfTUFUSF9NRVRBX0lOVCh0eXBlLCBuYW1lLCBEZWZhdWx0KVwKKyAgIHRlbXBsYXRlIDx0eXBlIE4gPSBEZWZhdWx0PiBzdHJ1Y3QgbmFtZSA6IHB1YmxpYyBuZG5ib29zdDo6bXBsOjppbnRfPE4+e307XAorICAgbmFtZXNwYWNlIGRldGFpbHtcCisgICB0ZW1wbGF0ZSA8dHlwZSBOPlwKKyAgIGNoYXIgdGVzdF9pc192YWxpZF9hcmcoY29uc3QgbmFtZTxOPiopO1wKKyAgIGNoYXIgdGVzdF9pc19kZWZhdWx0X2FyZyhjb25zdCBuYW1lPERlZmF1bHQ+Kik7XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc18jI25hbWUjI19pbXBcCisgICB7XAorICAgICAgdGVtcGxhdGUgPHR5cGUgTj4gc3RhdGljIGNoYXIgdGVzdChjb25zdCBuYW1lPE4+Kik7XAorICAgICAgc3RhdGljIGRvdWJsZSB0ZXN0KC4uLik7XAorICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gc2l6ZW9mKHRlc3Qoc3RhdGljX2Nhc3Q8VCo+KDApKSkgPT0gMSk7XAorICAgfTtcCisgICB9XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc18jI25hbWUgOiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88IDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzXyMjbmFtZSMjX2ltcDxUPjo6dmFsdWU+e307CisKKyNkZWZpbmUgQk9PU1RfTUFUSF9NRVRBX0JPT0wobmFtZSwgRGVmYXVsdClcCisgICB0ZW1wbGF0ZSA8Ym9vbCBOID0gRGVmYXVsdD4gc3RydWN0IG5hbWUgOiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88Tj57fTtcCisgICBuYW1lc3BhY2UgZGV0YWlse1wKKyAgIHRlbXBsYXRlIDxib29sIE4+XAorICAgY2hhciB0ZXN0X2lzX3ZhbGlkX2FyZyhjb25zdCBuYW1lPE4+Kik7XAorICAgY2hhciB0ZXN0X2lzX2RlZmF1bHRfYXJnKGNvbnN0IG5hbWU8RGVmYXVsdD4qKTtcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGlzXyMjbmFtZSMjX2ltcFwKKyAgIHtcCisgICAgICB0ZW1wbGF0ZSA8Ym9vbCBOPiBzdGF0aWMgY2hhciB0ZXN0KGNvbnN0IG5hbWU8Tj4qKTtcCisgICAgICBzdGF0aWMgZG91YmxlIHRlc3QoLi4uKTtcCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBzaXplb2YodGVzdChzdGF0aWNfY2FzdDxUKj4oMCkpKSA9PSAxKTtcCisgICB9O1wKKyAgIH1cCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGlzXyMjbmFtZSA6IHB1YmxpYyBuZG5ib29zdDo6bXBsOjpib29sXzwgOjpuZG5ib29zdDo6bWF0aDo6cG9saWNpZXM6OmRldGFpbDo6aXNfIyNuYW1lIyNfaW1wPFQ+Ojp2YWx1ZT57fTsKKyNlbHNlCisjZGVmaW5lIEJPT1NUX01BVEhfTUVUQV9JTlQoVHlwZSwgbmFtZSwgRGVmYXVsdClcCisgICB0ZW1wbGF0ZSA8VHlwZSBOID0gRGVmYXVsdD4gc3RydWN0IG5hbWUgOiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6aW50XzxOPnt9O1wKKyAgIG5hbWVzcGFjZSBkZXRhaWx7XAorICAgdGVtcGxhdGUgPFR5cGUgTj5cCisgICBjaGFyIHRlc3RfaXNfdmFsaWRfYXJnKGNvbnN0IG5hbWU8Tj4qKTtcCisgICBjaGFyIHRlc3RfaXNfZGVmYXVsdF9hcmcoY29uc3QgbmFtZTxEZWZhdWx0PiopO1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgaXNfIyNuYW1lIyNfdGVzdGVyXAorICAge1wKKyAgICAgIHRlbXBsYXRlIDxUeXBlIE4+IHN0YXRpYyBjaGFyIHRlc3QoY29uc3QgbmFtZTxOPiYpO1wKKyAgICAgIHN0YXRpYyBkb3VibGUgdGVzdCguLi4pO1wKKyAgIH07XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc18jI25hbWUjI19pbXBcCisgICB7XAorICAgICAgc3RhdGljIFQgaW5zdDtcCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBzaXplb2YoIDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzXyMjbmFtZSMjX3Rlc3RlcjxUPjo6dGVzdChpbnN0KSkgPT0gMSk7XAorICAgfTtcCisgICB9XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc18jI25hbWUgOiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88IDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzXyMjbmFtZSMjX2ltcDxUPjo6dmFsdWU+XAorICAge1wKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBVPiBzdHJ1Y3QgYXBwbHl7IHR5cGVkZWYgaXNfIyNuYW1lPFU+IHR5cGU7IH07XAorICAgfTsKKworI2RlZmluZSBCT09TVF9NQVRIX01FVEFfQk9PTChuYW1lLCBEZWZhdWx0KVwKKyAgIHRlbXBsYXRlIDxib29sIE4gPSBEZWZhdWx0PiBzdHJ1Y3QgbmFtZSA6IHB1YmxpYyBuZG5ib29zdDo6bXBsOjpib29sXzxOPnt9O1wKKyAgIG5hbWVzcGFjZSBkZXRhaWx7XAorICAgdGVtcGxhdGUgPGJvb2wgTj5cCisgICBjaGFyIHRlc3RfaXNfdmFsaWRfYXJnKGNvbnN0IG5hbWU8Tj4qKTtcCisgICBjaGFyIHRlc3RfaXNfZGVmYXVsdF9hcmcoY29uc3QgbmFtZTxEZWZhdWx0PiopO1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgaXNfIyNuYW1lIyNfdGVzdGVyXAorICAge1wKKyAgICAgIHRlbXBsYXRlIDxib29sIE4+IHN0YXRpYyBjaGFyIHRlc3QoY29uc3QgbmFtZTxOPiYpO1wKKyAgICAgIHN0YXRpYyBkb3VibGUgdGVzdCguLi4pO1wKKyAgIH07XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc18jI25hbWUjI19pbXBcCisgICB7XAorICAgICAgc3RhdGljIFQgaW5zdDtcCisgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBzaXplb2YoIDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzXyMjbmFtZSMjX3Rlc3RlcjxUPjo6dGVzdChpbnN0KSkgPT0gMSk7XAorICAgfTtcCisgICB9XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc18jI25hbWUgOiBwdWJsaWMgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88IDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzXyMjbmFtZSMjX2ltcDxUPjo6dmFsdWU+XAorICAge1wKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBVPiBzdHJ1Y3QgYXBwbHl7IHR5cGVkZWYgaXNfIyNuYW1lPFU+IHR5cGU7ICB9O1wKKyAgIH07CisjZW5kaWYKKy8vCisvLyBCZWdpbiBieSBkZWZpbmluZyBwb2xpY3kgdHlwZXMgZm9yIGVycm9yIGhhbmRsaW5nOgorLy8KK2VudW0gZXJyb3JfcG9saWN5X3R5cGUKK3sKKyAgIHRocm93X29uX2Vycm9yID0gMCwKKyAgIGVycm5vX29uX2Vycm9yID0gMSwKKyAgIGlnbm9yZV9lcnJvciA9IDIsCisgICB1c2VyX2Vycm9yID0gMworfTsKKworQk9PU1RfTUFUSF9NRVRBX0lOVChlcnJvcl9wb2xpY3lfdHlwZSwgZG9tYWluX2Vycm9yLCBCT09TVF9NQVRIX0RPTUFJTl9FUlJPUl9QT0xJQ1kpCitCT09TVF9NQVRIX01FVEFfSU5UKGVycm9yX3BvbGljeV90eXBlLCBwb2xlX2Vycm9yLCBCT09TVF9NQVRIX1BPTEVfRVJST1JfUE9MSUNZKQorQk9PU1RfTUFUSF9NRVRBX0lOVChlcnJvcl9wb2xpY3lfdHlwZSwgb3ZlcmZsb3dfZXJyb3IsIEJPT1NUX01BVEhfT1ZFUkZMT1dfRVJST1JfUE9MSUNZKQorQk9PU1RfTUFUSF9NRVRBX0lOVChlcnJvcl9wb2xpY3lfdHlwZSwgdW5kZXJmbG93X2Vycm9yLCBCT09TVF9NQVRIX1VOREVSRkxPV19FUlJPUl9QT0xJQ1kpCitCT09TVF9NQVRIX01FVEFfSU5UKGVycm9yX3BvbGljeV90eXBlLCBkZW5vcm1fZXJyb3IsIEJPT1NUX01BVEhfREVOT1JNX0VSUk9SX1BPTElDWSkKK0JPT1NUX01BVEhfTUVUQV9JTlQoZXJyb3JfcG9saWN5X3R5cGUsIGV2YWx1YXRpb25fZXJyb3IsIEJPT1NUX01BVEhfRVZBTFVBVElPTl9FUlJPUl9QT0xJQ1kpCitCT09TVF9NQVRIX01FVEFfSU5UKGVycm9yX3BvbGljeV90eXBlLCByb3VuZGluZ19lcnJvciwgQk9PU1RfTUFUSF9ST1VORElOR19FUlJPUl9QT0xJQ1kpCitCT09TVF9NQVRIX01FVEFfSU5UKGVycm9yX3BvbGljeV90eXBlLCBpbmRldGVybWluYXRlX3Jlc3VsdF9lcnJvciwgQk9PU1RfTUFUSF9JTkRFVEVSTUlOQVRFX1JFU1VMVF9FUlJPUl9QT0xJQ1kpCisKKy8vCisvLyBQb2xpY3kgdHlwZXMgZm9yIGludGVybmFsIHByb21vdGlvbjoKKy8vCitCT09TVF9NQVRIX01FVEFfQk9PTChwcm9tb3RlX2Zsb2F0LCBCT09TVF9NQVRIX1BST01PVEVfRkxPQVRfUE9MSUNZKQorQk9PU1RfTUFUSF9NRVRBX0JPT0wocHJvbW90ZV9kb3VibGUsIEJPT1NUX01BVEhfUFJPTU9URV9ET1VCTEVfUE9MSUNZKQorQk9PU1RfTUFUSF9NRVRBX0JPT0woYXNzZXJ0X3VuZGVmaW5lZCwgQk9PU1RfTUFUSF9BU1NFUlRfVU5ERUZJTkVEX1BPTElDWSkKKy8vCisvLyBQb2xpY3kgdHlwZXMgZm9yIGRpc2NyZXRlIHF1YW50aWxlczoKKy8vCitlbnVtIGRpc2NyZXRlX3F1YW50aWxlX3BvbGljeV90eXBlCit7CisgICByZWFsLAorICAgaW50ZWdlcl9yb3VuZF9vdXR3YXJkcywKKyAgIGludGVnZXJfcm91bmRfaW53YXJkcywKKyAgIGludGVnZXJfcm91bmRfZG93biwKKyAgIGludGVnZXJfcm91bmRfdXAsCisgICBpbnRlZ2VyX3JvdW5kX25lYXJlc3QKK307CisKK0JPT1NUX01BVEhfTUVUQV9JTlQoZGlzY3JldGVfcXVhbnRpbGVfcG9saWN5X3R5cGUsIGRpc2NyZXRlX3F1YW50aWxlLCBCT09TVF9NQVRIX0RJU0NSRVRFX1FVQU5USUxFX1BPTElDWSkKKy8vCisvLyBQcmVjaXNpb246CisvLworQk9PU1RfTUFUSF9NRVRBX0lOVChpbnQsIGRpZ2l0czEwLCBCT09TVF9NQVRIX0RJR0lUUzEwX1BPTElDWSkKK0JPT1NUX01BVEhfTUVUQV9JTlQoaW50LCBkaWdpdHMyLCAwKQorLy8KKy8vIEl0ZXJhdGlvbnM6CisvLworQk9PU1RfTUFUSF9NRVRBX0lOVCh1bnNpZ25lZCBsb25nLCBtYXhfc2VyaWVzX2l0ZXJhdGlvbnMsIEJPT1NUX01BVEhfTUFYX1NFUklFU19JVEVSQVRJT05fUE9MSUNZKQorQk9PU1RfTUFUSF9NRVRBX0lOVCh1bnNpZ25lZCBsb25nLCBtYXhfcm9vdF9pdGVyYXRpb25zLCBCT09TVF9NQVRIX01BWF9ST09UX0lURVJBVElPTl9QT0xJQ1kpCisvLworLy8gRGVmaW5lIHRoZSBuYW1lcyBmb3IgZWFjaCBwb3NzaWJsZSBwb2xpY3k6CisvLworI2RlZmluZSBCT09TVF9NQVRIX1BBUkFNRVRFUihuYW1lKVwKKyAgIEJPT1NUX1BBUkFNRVRFUl9URU1QTEFURV9LRVlXT1JEKG5hbWUjI19uYW1lKVwKKyAgIEJPT1NUX1BBUkFNRVRFUl9OQU1FKG5hbWUjI19uYW1lKQorCitzdHJ1Y3QgZGVmYXVsdF9wb2xpY3l7fTsKKworbmFtZXNwYWNlIGRldGFpbHsKKy8vCisvLyBUcmFpdCB0byB3b3JrIG91dCBiaXRzIHByZWNpc2lvbiBmcm9tIGRpZ2l0czEwIGFuZCBkaWdpdHMyOgorLy8KK3RlbXBsYXRlIDxjbGFzcyBEaWdpdHMxMCwgY2xhc3MgRGlnaXRzMj4KK3N0cnVjdCBwcmVjaXNpb24KK3sKKyAgIC8vCisgICAvLyBOb3cgd29yayBvdXQgdGhlIHByZWNpc2lvbjoKKyAgIC8vCisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgIChEaWdpdHMxMDo6dmFsdWUgPT0gMCksCisgICAgICBkaWdpdHMyPDA+LAorICAgICAgZGlnaXRzMjwoKERpZ2l0czEwOjp2YWx1ZSArIDEpICogMTAwMEwpIC8gMzAxTD4KKyAgID46OnR5cGUgZGlnaXRzMl90eXBlOworcHVibGljOgorI2lmZGVmIF9fQk9STEFORENfXworICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAoRGlnaXRzMjo6dmFsdWUgPiA6Om5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6ZGV0YWlsOjpwcmVjaXNpb248RGlnaXRzMTAsRGlnaXRzMj46OmRpZ2l0czJfdHlwZTo6dmFsdWUpLAorICAgICAgRGlnaXRzMiwgZGlnaXRzMl90eXBlPjo6dHlwZSB0eXBlOworI2Vsc2UKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgKERpZ2l0czI6OnZhbHVlID4gZGlnaXRzMl90eXBlOjp2YWx1ZSksCisgICAgICBEaWdpdHMyLCBkaWdpdHMyX3R5cGU+Ojp0eXBlIHR5cGU7CisjZW5kaWYKK307CisKK3RlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCLCBib29sIGI+CitzdHJ1Y3Qgc2VsZWN0X3Jlc3VsdAoreworICAgdHlwZWRlZiBBIHR5cGU7Cit9OwordGVtcGxhdGUgPGNsYXNzIEEsIGNsYXNzIEI+CitzdHJ1Y3Qgc2VsZWN0X3Jlc3VsdDxBLCBCLCBmYWxzZT4KK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpkZXJlZjxCPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFNlcSwgY2xhc3MgUHJlZCwgY2xhc3MgRGVmYXVsdFR5cGU+CitzdHJ1Y3QgZmluZF9hcmcKK3sKK3ByaXZhdGU6CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6ZmluZF9pZjxTZXEsIFByZWQ+Ojp0eXBlIGl0ZXI7CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6ZW5kPFNlcT46OnR5cGUgZW5kX3R5cGU7CitwdWJsaWM6CisgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdF9yZXN1bHQ8CisgICAgICBEZWZhdWx0VHlwZSwgaXRlciwKKyAgICAgIDo6bmRuYm9vc3Q6OmlzX3NhbWU8aXRlciwgZW5kX3R5cGU+Ojp2YWx1ZT46OnR5cGUgdHlwZTsKK307CisKK2RvdWJsZSB0ZXN0X2lzX3ZhbGlkX2FyZyguLi4pOworZG91YmxlIHRlc3RfaXNfZGVmYXVsdF9hcmcoLi4uKTsKK2NoYXIgdGVzdF9pc192YWxpZF9hcmcoY29uc3QgZGVmYXVsdF9wb2xpY3kqKTsKK2NoYXIgdGVzdF9pc19kZWZhdWx0X2FyZyhjb25zdCBkZWZhdWx0X3BvbGljeSopOworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc192YWxpZF9wb2xpY3lfaW1wIAoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gc2l6ZW9mKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OnRlc3RfaXNfdmFsaWRfYXJnKHN0YXRpY19jYXN0PFQqPigwKSkpID09IDEpOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfZGVmYXVsdF9wb2xpY3lfaW1wCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBzaXplb2YoOjpuZG5ib29zdDo6bWF0aDo6cG9saWNpZXM6OmRldGFpbDo6dGVzdF9pc19kZWZhdWx0X2FyZyhzdGF0aWNfY2FzdDxUKj4oMCkpKSA9PSAxKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgaXNfdmFsaWRfcG9saWN5IAorOiBwdWJsaWMgbXBsOjpib29sXzwgCisgICA6Om5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6ZGV0YWlsOjppc192YWxpZF9wb2xpY3lfaW1wPFQ+Ojp2YWx1ZT4KK3t9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGlzX2RlZmF1bHRfcG9saWN5IAorOiBwdWJsaWMgbXBsOjpib29sXzwgCisgICA6Om5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6ZGV0YWlsOjppc19kZWZhdWx0X3BvbGljeV9pbXA8VD46OnZhbHVlPgoreworICAgdGVtcGxhdGUgPGNsYXNzIFU+CisgICBzdHJ1Y3QgYXBwbHkKKyAgIHsKKyAgICAgIHR5cGVkZWYgaXNfZGVmYXVsdF9wb2xpY3k8VT4gdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgU2VxLCBjbGFzcyBULCBpbnQgTj4KK3N0cnVjdCBhcHBlbmRfTgoreworICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OnB1c2hfYmFjazxTZXEsIFQ+Ojp0eXBlIG5ld19zZXE7CisgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGVuZF9OPG5ld19zZXEsIFQsIE4tMT46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBTZXEsIGNsYXNzIFQ+CitzdHJ1Y3QgYXBwZW5kX048U2VxLCBULCAwPgoreworICAgdHlwZWRlZiBTZXEgdHlwZTsKK307CisKKy8vCisvLyBUcmFpdHMgY2xhc3MgdG8gd29yayBvdXQgd2hhdCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIG91ciBkZWZhdWx0CisvLyBwb2xpY3k8PiBjbGFzcyB3aWxsIGhhdmUgd2hlbiBtb2RpZmllZCBmb3IgZm9yd2FyZGluZzoKKy8vCit0ZW1wbGF0ZSA8Ym9vbCBmLCBib29sIGQ+CitzdHJ1Y3QgZGVmYXVsdF9hcmdzCit7CisgICB0eXBlZGVmIHByb21vdGVfZmxvYXQ8ZmFsc2U+IGFyZzE7CisgICB0eXBlZGVmIHByb21vdGVfZG91YmxlPGZhbHNlPiBhcmcyOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBkZWZhdWx0X2FyZ3M8ZmFsc2UsIGZhbHNlPgoreworICAgdHlwZWRlZiBkZWZhdWx0X3BvbGljeSBhcmcxOworICAgdHlwZWRlZiBkZWZhdWx0X3BvbGljeSBhcmcyOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBkZWZhdWx0X2FyZ3M8dHJ1ZSwgZmFsc2U+Cit7CisgICB0eXBlZGVmIHByb21vdGVfZmxvYXQ8ZmFsc2U+IGFyZzE7CisgICB0eXBlZGVmIGRlZmF1bHRfcG9saWN5IGFyZzI7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGRlZmF1bHRfYXJnczxmYWxzZSwgdHJ1ZT4KK3sKKyAgIHR5cGVkZWYgcHJvbW90ZV9kb3VibGU8ZmFsc2U+IGFyZzE7CisgICB0eXBlZGVmIGRlZmF1bHRfcG9saWN5IGFyZzI7Cit9OworCit0eXBlZGVmIGRlZmF1bHRfYXJnczxCT09TVF9NQVRIX1BST01PVEVfRkxPQVRfUE9MSUNZLCBCT09TVF9NQVRIX1BST01PVEVfRE9VQkxFX1BPTElDWT46OmFyZzEgZm9yd2FyZGluZ19hcmcxOwordHlwZWRlZiBkZWZhdWx0X2FyZ3M8Qk9PU1RfTUFUSF9QUk9NT1RFX0ZMT0FUX1BPTElDWSwgQk9PU1RfTUFUSF9QUk9NT1RFX0RPVUJMRV9QT0xJQ1k+OjphcmcyIGZvcndhcmRpbmdfYXJnMjsKKworfSAvLyBkZXRhaWwKKy8vCisvLyBOb3cgZGVmaW5lIHRoZSBwb2xpY3kgdHlwZSB3aXRoIGVub3VnaCBhcmd1bWVudHMgdG8gaGFuZGxlIGFsbAorLy8gdGhlIHBvbGljaWVzOgorLy8KK3RlbXBsYXRlIDxjbGFzcyBBMSA9IGRlZmF1bHRfcG9saWN5LCAKKyAgICAgICAgICBjbGFzcyBBMiA9IGRlZmF1bHRfcG9saWN5LCAKKyAgICAgICAgICBjbGFzcyBBMyA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEE0ID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTUgPSBkZWZhdWx0X3BvbGljeSwKKyAgICAgICAgICBjbGFzcyBBNiA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEE3ID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTggPSBkZWZhdWx0X3BvbGljeSwKKyAgICAgICAgICBjbGFzcyBBOSA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEExMCA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEExMSA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEExMiA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEExMyA9IGRlZmF1bHRfcG9saWN5Pgorc3RydWN0IHBvbGljeQoreworcHJpdmF0ZToKKyAgIC8vCisgICAvLyBWYWxpZGF0ZSBhbGwgb3VyIGFyZ3VtZW50czoKKyAgIC8vCisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBMT46OnZhbHVlKTsKKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoOjpuZG5ib29zdDo6bWF0aDo6cG9saWNpZXM6OmRldGFpbDo6aXNfdmFsaWRfcG9saWN5PEEyPjo6dmFsdWUpOworICAgQk9PU1RfU1RBVElDX0FTU0VSVCg6Om5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6ZGV0YWlsOjppc192YWxpZF9wb2xpY3k8QTM+Ojp2YWx1ZSk7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBND46OnZhbHVlKTsKKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoOjpuZG5ib29zdDo6bWF0aDo6cG9saWNpZXM6OmRldGFpbDo6aXNfdmFsaWRfcG9saWN5PEE1Pjo6dmFsdWUpOworICAgQk9PU1RfU1RBVElDX0FTU0VSVCg6Om5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6ZGV0YWlsOjppc192YWxpZF9wb2xpY3k8QTY+Ojp2YWx1ZSk7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBNz46OnZhbHVlKTsKKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoOjpuZG5ib29zdDo6bWF0aDo6cG9saWNpZXM6OmRldGFpbDo6aXNfdmFsaWRfcG9saWN5PEE4Pjo6dmFsdWUpOworICAgQk9PU1RfU1RBVElDX0FTU0VSVCg6Om5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6ZGV0YWlsOjppc192YWxpZF9wb2xpY3k8QTk+Ojp2YWx1ZSk7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBMTA+Ojp2YWx1ZSk7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBMTE+Ojp2YWx1ZSk7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBMTI+Ojp2YWx1ZSk7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3ZhbGlkX3BvbGljeTxBMTM+Ojp2YWx1ZSk7CisgICAvLworICAgLy8gVHlwZWxpc3Qgb2YgdGhlIGFyZ3VtZW50czoKKyAgIC8vCisgICB0eXBlZGVmIG1wbDo6bGlzdDxBMSxBMixBMyxBNCxBNSxBNixBNyxBOCxBOSxBMTAsQTExLEExMixBMTM+IGFyZ19saXN0OworCitwdWJsaWM6CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX2RvbWFpbl9lcnJvcjxtcGw6Ol8xPiwgZG9tYWluX2Vycm9yPD4gPjo6dHlwZSBkb21haW5fZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfcG9sZV9lcnJvcjxtcGw6Ol8xPiwgcG9sZV9lcnJvcjw+ID46OnR5cGUgcG9sZV9lcnJvcl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19vdmVyZmxvd19lcnJvcjxtcGw6Ol8xPiwgb3ZlcmZsb3dfZXJyb3I8PiA+Ojp0eXBlIG92ZXJmbG93X2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX3VuZGVyZmxvd19lcnJvcjxtcGw6Ol8xPiwgdW5kZXJmbG93X2Vycm9yPD4gPjo6dHlwZSB1bmRlcmZsb3dfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfZGVub3JtX2Vycm9yPG1wbDo6XzE+LCBkZW5vcm1fZXJyb3I8PiA+Ojp0eXBlIGRlbm9ybV9lcnJvcl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19ldmFsdWF0aW9uX2Vycm9yPG1wbDo6XzE+LCBldmFsdWF0aW9uX2Vycm9yPD4gPjo6dHlwZSBldmFsdWF0aW9uX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX3JvdW5kaW5nX2Vycm9yPG1wbDo6XzE+LCByb3VuZGluZ19lcnJvcjw+ID46OnR5cGUgcm91bmRpbmdfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfaW5kZXRlcm1pbmF0ZV9yZXN1bHRfZXJyb3I8bXBsOjpfMT4sIGluZGV0ZXJtaW5hdGVfcmVzdWx0X2Vycm9yPD4gPjo6dHlwZSBpbmRldGVybWluYXRlX3Jlc3VsdF9lcnJvcl90eXBlOworcHJpdmF0ZToKKyAgIC8vCisgICAvLyBOb3cgd29yayBvdXQgdGhlIHByZWNpc2lvbjoKKyAgIC8vCisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX2RpZ2l0czEwPG1wbDo6XzE+LCBkaWdpdHMxMDw+ID46OnR5cGUgZGlnaXRzMTBfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfZGlnaXRzMjxtcGw6Ol8xPiwgZGlnaXRzMjw+ID46OnR5cGUgYml0c19wcmVjaXNpb25fdHlwZTsKK3B1YmxpYzoKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpwcmVjaXNpb248ZGlnaXRzMTBfdHlwZSwgYml0c19wcmVjaXNpb25fdHlwZT46OnR5cGUgcHJlY2lzaW9uX3R5cGU7CisgICAvLworICAgLy8gSW50ZXJuYWwgcHJvbW90aW9uOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfcHJvbW90ZV9mbG9hdDxtcGw6Ol8xPiwgcHJvbW90ZV9mbG9hdDw+ID46OnR5cGUgcHJvbW90ZV9mbG9hdF90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19wcm9tb3RlX2RvdWJsZTxtcGw6Ol8xPiwgcHJvbW90ZV9kb3VibGU8PiA+Ojp0eXBlIHByb21vdGVfZG91YmxlX3R5cGU7CisgICAvLworICAgLy8gRGlzY3JldGUgcXVhbnRpbGVzOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfZGlzY3JldGVfcXVhbnRpbGU8bXBsOjpfMT4sIGRpc2NyZXRlX3F1YW50aWxlPD4gPjo6dHlwZSBkaXNjcmV0ZV9xdWFudGlsZV90eXBlOworICAgLy8KKyAgIC8vIE1hdGhlbWF0aWNhbGx5IHVuZGVmaW5lZCBwcm9wZXJ0aWVzOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfYXNzZXJ0X3VuZGVmaW5lZDxtcGw6Ol8xPiwgYXNzZXJ0X3VuZGVmaW5lZDw+ID46OnR5cGUgYXNzZXJ0X3VuZGVmaW5lZF90eXBlOworICAgLy8KKyAgIC8vIE1heCBpdGVyYXRpb25zOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfbWF4X3Nlcmllc19pdGVyYXRpb25zPG1wbDo6XzE+LCBtYXhfc2VyaWVzX2l0ZXJhdGlvbnM8PiA+Ojp0eXBlIG1heF9zZXJpZXNfaXRlcmF0aW9uc190eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19tYXhfcm9vdF9pdGVyYXRpb25zPG1wbDo6XzE+LCBtYXhfcm9vdF9pdGVyYXRpb25zPD4gPjo6dHlwZSBtYXhfcm9vdF9pdGVyYXRpb25zX3R5cGU7Cit9OworLy8KKy8vIFRoZXNlIGZ1bGwgc3BlY2lhbGl6YXRpb25zIGFyZSBkZWZpbmVkIHRvIHJlZHVjZSB0aGUgYW1vdW50IG9mCisvLyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9ucyB0aGF0IGhhdmUgdG8gdGFrZSBwbGFjZSB3aGVuIHVzaW5nIHRoZSBkZWZhdWx0CisvLyBwb2xpY2llcywgdGhleSBoYXZlIHF1aXRlIGEgbGFyZ2UgaW1wYWN0IG9uIGNvbXBpbGUgdGltZXM6CisvLwordGVtcGxhdGUgPD4KK3N0cnVjdCBwb2xpY3k8ZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5LCBkZWZhdWx0X3BvbGljeSwgZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5LCBkZWZhdWx0X3BvbGljeSwgZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5LCBkZWZhdWx0X3BvbGljeSwgZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5PgoreworcHVibGljOgorICAgdHlwZWRlZiBkb21haW5fZXJyb3I8PiBkb21haW5fZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgcG9sZV9lcnJvcjw+IHBvbGVfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgb3ZlcmZsb3dfZXJyb3I8PiBvdmVyZmxvd19lcnJvcl90eXBlOworICAgdHlwZWRlZiB1bmRlcmZsb3dfZXJyb3I8PiB1bmRlcmZsb3dfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgZGVub3JtX2Vycm9yPD4gZGVub3JtX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIGV2YWx1YXRpb25fZXJyb3I8PiBldmFsdWF0aW9uX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHJvdW5kaW5nX2Vycm9yPD4gcm91bmRpbmdfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgaW5kZXRlcm1pbmF0ZV9yZXN1bHRfZXJyb3I8PiBpbmRldGVybWluYXRlX3Jlc3VsdF9lcnJvcl90eXBlOworI2lmIEJPT1NUX01BVEhfRElHSVRTMTBfUE9MSUNZID09IDAKKyAgIHR5cGVkZWYgZGlnaXRzMjw+IHByZWNpc2lvbl90eXBlOworI2Vsc2UKKyAgIHR5cGVkZWYgZGV0YWlsOjpwcmVjaXNpb248ZGlnaXRzMTA8PiwgZGlnaXRzMjw+ID46OnR5cGUgcHJlY2lzaW9uX3R5cGU7CisjZW5kaWYKKyAgIHR5cGVkZWYgcHJvbW90ZV9mbG9hdDw+IHByb21vdGVfZmxvYXRfdHlwZTsKKyAgIHR5cGVkZWYgcHJvbW90ZV9kb3VibGU8PiBwcm9tb3RlX2RvdWJsZV90eXBlOworICAgdHlwZWRlZiBkaXNjcmV0ZV9xdWFudGlsZTw+IGRpc2NyZXRlX3F1YW50aWxlX3R5cGU7CisgICB0eXBlZGVmIGFzc2VydF91bmRlZmluZWQ8PiBhc3NlcnRfdW5kZWZpbmVkX3R5cGU7CisgICB0eXBlZGVmIG1heF9zZXJpZXNfaXRlcmF0aW9uczw+IG1heF9zZXJpZXNfaXRlcmF0aW9uc190eXBlOworICAgdHlwZWRlZiBtYXhfcm9vdF9pdGVyYXRpb25zPD4gbWF4X3Jvb3RfaXRlcmF0aW9uc190eXBlOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBwb2xpY3k8ZGV0YWlsOjpmb3J3YXJkaW5nX2FyZzEsIGRldGFpbDo6Zm9yd2FyZGluZ19hcmcyLCBkZWZhdWx0X3BvbGljeSwgZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5LCBkZWZhdWx0X3BvbGljeSwgZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5LCBkZWZhdWx0X3BvbGljeSwgZGVmYXVsdF9wb2xpY3ksIGRlZmF1bHRfcG9saWN5PgoreworcHVibGljOgorICAgdHlwZWRlZiBkb21haW5fZXJyb3I8PiBkb21haW5fZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgcG9sZV9lcnJvcjw+IHBvbGVfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgb3ZlcmZsb3dfZXJyb3I8PiBvdmVyZmxvd19lcnJvcl90eXBlOworICAgdHlwZWRlZiB1bmRlcmZsb3dfZXJyb3I8PiB1bmRlcmZsb3dfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgZGVub3JtX2Vycm9yPD4gZGVub3JtX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIGV2YWx1YXRpb25fZXJyb3I8PiBldmFsdWF0aW9uX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHJvdW5kaW5nX2Vycm9yPD4gcm91bmRpbmdfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgaW5kZXRlcm1pbmF0ZV9yZXN1bHRfZXJyb3I8PiBpbmRldGVybWluYXRlX3Jlc3VsdF9lcnJvcl90eXBlOworI2lmIEJPT1NUX01BVEhfRElHSVRTMTBfUE9MSUNZID09IDAKKyAgIHR5cGVkZWYgZGlnaXRzMjw+IHByZWNpc2lvbl90eXBlOworI2Vsc2UKKyAgIHR5cGVkZWYgZGV0YWlsOjpwcmVjaXNpb248ZGlnaXRzMTA8PiwgZGlnaXRzMjw+ID46OnR5cGUgcHJlY2lzaW9uX3R5cGU7CisjZW5kaWYKKyAgIHR5cGVkZWYgcHJvbW90ZV9mbG9hdDxmYWxzZT4gcHJvbW90ZV9mbG9hdF90eXBlOworICAgdHlwZWRlZiBwcm9tb3RlX2RvdWJsZTxmYWxzZT4gcHJvbW90ZV9kb3VibGVfdHlwZTsKKyAgIHR5cGVkZWYgZGlzY3JldGVfcXVhbnRpbGU8PiBkaXNjcmV0ZV9xdWFudGlsZV90eXBlOworICAgdHlwZWRlZiBhc3NlcnRfdW5kZWZpbmVkPD4gYXNzZXJ0X3VuZGVmaW5lZF90eXBlOworICAgdHlwZWRlZiBtYXhfc2VyaWVzX2l0ZXJhdGlvbnM8PiBtYXhfc2VyaWVzX2l0ZXJhdGlvbnNfdHlwZTsKKyAgIHR5cGVkZWYgbWF4X3Jvb3RfaXRlcmF0aW9uczw+IG1heF9yb290X2l0ZXJhdGlvbnNfdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBQb2xpY3ksIAorICAgICAgICAgIGNsYXNzIEExID0gZGVmYXVsdF9wb2xpY3ksIAorICAgICAgICAgIGNsYXNzIEEyID0gZGVmYXVsdF9wb2xpY3ksIAorICAgICAgICAgIGNsYXNzIEEzID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTQgPSBkZWZhdWx0X3BvbGljeSwKKyAgICAgICAgICBjbGFzcyBBNSA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEE2ID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTcgPSBkZWZhdWx0X3BvbGljeSwKKyAgICAgICAgICBjbGFzcyBBOCA9IGRlZmF1bHRfcG9saWN5LAorICAgICAgICAgIGNsYXNzIEE5ID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTEwID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTExID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTEyID0gZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgY2xhc3MgQTEzID0gZGVmYXVsdF9wb2xpY3k+CitzdHJ1Y3Qgbm9ybWFsaXNlCit7Citwcml2YXRlOgorICAgdHlwZWRlZiBtcGw6Omxpc3Q8QTEsQTIsQTMsQTQsQTUsQTYsQTcsQTgsQTksQTEwLEExMSxBMTIsQTEzPiBhcmdfbGlzdDsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfZG9tYWluX2Vycm9yPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OmRvbWFpbl9lcnJvcl90eXBlID46OnR5cGUgZG9tYWluX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX3BvbGVfZXJyb3I8bXBsOjpfMT4sIHR5cGVuYW1lIFBvbGljeTo6cG9sZV9lcnJvcl90eXBlID46OnR5cGUgcG9sZV9lcnJvcl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19vdmVyZmxvd19lcnJvcjxtcGw6Ol8xPiwgdHlwZW5hbWUgUG9saWN5OjpvdmVyZmxvd19lcnJvcl90eXBlID46OnR5cGUgb3ZlcmZsb3dfZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfdW5kZXJmbG93X2Vycm9yPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OnVuZGVyZmxvd19lcnJvcl90eXBlID46OnR5cGUgdW5kZXJmbG93X2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX2Rlbm9ybV9lcnJvcjxtcGw6Ol8xPiwgdHlwZW5hbWUgUG9saWN5OjpkZW5vcm1fZXJyb3JfdHlwZSA+Ojp0eXBlIGRlbm9ybV9lcnJvcl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19ldmFsdWF0aW9uX2Vycm9yPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OmV2YWx1YXRpb25fZXJyb3JfdHlwZSA+Ojp0eXBlIGV2YWx1YXRpb25fZXJyb3JfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfcm91bmRpbmdfZXJyb3I8bXBsOjpfMT4sIHR5cGVuYW1lIFBvbGljeTo6cm91bmRpbmdfZXJyb3JfdHlwZSA+Ojp0eXBlIHJvdW5kaW5nX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX2luZGV0ZXJtaW5hdGVfcmVzdWx0X2Vycm9yPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OmluZGV0ZXJtaW5hdGVfcmVzdWx0X2Vycm9yX3R5cGUgPjo6dHlwZSBpbmRldGVybWluYXRlX3Jlc3VsdF9lcnJvcl90eXBlOworICAgLy8KKyAgIC8vIE5vdyB3b3JrIG91dCB0aGUgcHJlY2lzaW9uOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfZGlnaXRzMTA8bXBsOjpfMT4sIGRpZ2l0czEwPD4gPjo6dHlwZSBkaWdpdHMxMF90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19kaWdpdHMyPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OnByZWNpc2lvbl90eXBlID46OnR5cGUgYml0c19wcmVjaXNpb25fdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpwcmVjaXNpb248ZGlnaXRzMTBfdHlwZSwgYml0c19wcmVjaXNpb25fdHlwZT46OnR5cGUgcHJlY2lzaW9uX3R5cGU7CisgICAvLworICAgLy8gSW50ZXJuYWwgcHJvbW90aW9uOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfcHJvbW90ZV9mbG9hdDxtcGw6Ol8xPiwgdHlwZW5hbWUgUG9saWN5Ojpwcm9tb3RlX2Zsb2F0X3R5cGUgPjo6dHlwZSBwcm9tb3RlX2Zsb2F0X3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX3Byb21vdGVfZG91YmxlPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OnByb21vdGVfZG91YmxlX3R5cGUgPjo6dHlwZSBwcm9tb3RlX2RvdWJsZV90eXBlOworICAgLy8KKyAgIC8vIERpc2NyZXRlIHF1YW50aWxlczoKKyAgIC8vCisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZmluZF9hcmc8YXJnX2xpc3QsIGlzX2Rpc2NyZXRlX3F1YW50aWxlPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6OmRpc2NyZXRlX3F1YW50aWxlX3R5cGUgPjo6dHlwZSBkaXNjcmV0ZV9xdWFudGlsZV90eXBlOworICAgLy8KKyAgIC8vIE1hdGhlbWF0aWNhbGx5IHVuZGVmaW5lZCBwcm9wZXJ0aWVzOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpmaW5kX2FyZzxhcmdfbGlzdCwgaXNfYXNzZXJ0X3VuZGVmaW5lZDxtcGw6Ol8xPiwgdHlwZW5hbWUgUG9saWN5Ojphc3NlcnRfdW5kZWZpbmVkX3R5cGUgPjo6dHlwZSBhc3NlcnRfdW5kZWZpbmVkX3R5cGU7CisgICAvLworICAgLy8gTWF4IGl0ZXJhdGlvbnM6CisgICAvLworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19tYXhfc2VyaWVzX2l0ZXJhdGlvbnM8bXBsOjpfMT4sIHR5cGVuYW1lIFBvbGljeTo6bWF4X3Nlcmllc19pdGVyYXRpb25zX3R5cGU+Ojp0eXBlIG1heF9zZXJpZXNfaXRlcmF0aW9uc190eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZpbmRfYXJnPGFyZ19saXN0LCBpc19tYXhfcm9vdF9pdGVyYXRpb25zPG1wbDo6XzE+LCB0eXBlbmFtZSBQb2xpY3k6Om1heF9yb290X2l0ZXJhdGlvbnNfdHlwZT46OnR5cGUgbWF4X3Jvb3RfaXRlcmF0aW9uc190eXBlOworICAgLy8KKyAgIC8vIERlZmluZSBhIHR5cGVsaXN0IG9mIHRoZSBwb2xpY2llczoKKyAgIC8vCisgICB0eXBlZGVmIG1wbDo6dmVjdG9yPAorICAgICAgZG9tYWluX2Vycm9yX3R5cGUsCisgICAgICBwb2xlX2Vycm9yX3R5cGUsCisgICAgICBvdmVyZmxvd19lcnJvcl90eXBlLAorICAgICAgdW5kZXJmbG93X2Vycm9yX3R5cGUsCisgICAgICBkZW5vcm1fZXJyb3JfdHlwZSwKKyAgICAgIGV2YWx1YXRpb25fZXJyb3JfdHlwZSwKKyAgICAgIHJvdW5kaW5nX2Vycm9yX3R5cGUsCisgICAgICBpbmRldGVybWluYXRlX3Jlc3VsdF9lcnJvcl90eXBlLAorICAgICAgcHJlY2lzaW9uX3R5cGUsCisgICAgICBwcm9tb3RlX2Zsb2F0X3R5cGUsCisgICAgICBwcm9tb3RlX2RvdWJsZV90eXBlLAorICAgICAgZGlzY3JldGVfcXVhbnRpbGVfdHlwZSwKKyAgICAgIGFzc2VydF91bmRlZmluZWRfdHlwZSwKKyAgICAgIG1heF9zZXJpZXNfaXRlcmF0aW9uc190eXBlLAorICAgICAgbWF4X3Jvb3RfaXRlcmF0aW9uc190eXBlPiByZXN1bHRfbGlzdDsKKyAgIC8vCisgICAvLyBSZW1vdmUgYWxsIHRoZSBwb2xpY2llcyB0aGF0IGFyZSB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdDoKKyAgIC8vCisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6cmVtb3ZlX2lmPHJlc3VsdF9saXN0LCBkZXRhaWw6OmlzX2RlZmF1bHRfcG9saWN5PG1wbDo6Xz4gPjo6dHlwZSByZWR1Y2VkX2xpc3Q7CisgICAvLworICAgLy8gUGFkIG91dCB0aGUgbGlzdCB3aXRoIGRlZmF1bHRzOgorICAgLy8KKyAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjphcHBlbmRfTjxyZWR1Y2VkX2xpc3QsIGRlZmF1bHRfcG9saWN5LCAoMTQgLSA6Om5kbmJvb3N0OjptcGw6OnNpemU8cmVkdWNlZF9saXN0Pjo6dmFsdWUpPjo6dHlwZSByZXN1bHRfdHlwZTsKK3B1YmxpYzoKKyAgIHR5cGVkZWYgcG9saWN5PAorICAgICAgdHlwZW5hbWUgbXBsOjphdDxyZXN1bHRfdHlwZSwgbXBsOjppbnRfPDA+ID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmF0PHJlc3VsdF90eXBlLCBtcGw6OmludF88MT4gPjo6dHlwZSwKKyAgICAgIHR5cGVuYW1lIG1wbDo6YXQ8cmVzdWx0X3R5cGUsIG1wbDo6aW50XzwyPiA+Ojp0eXBlLAorICAgICAgdHlwZW5hbWUgbXBsOjphdDxyZXN1bHRfdHlwZSwgbXBsOjppbnRfPDM+ID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmF0PHJlc3VsdF90eXBlLCBtcGw6OmludF88ND4gPjo6dHlwZSwKKyAgICAgIHR5cGVuYW1lIG1wbDo6YXQ8cmVzdWx0X3R5cGUsIG1wbDo6aW50Xzw1PiA+Ojp0eXBlLAorICAgICAgdHlwZW5hbWUgbXBsOjphdDxyZXN1bHRfdHlwZSwgbXBsOjppbnRfPDY+ID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmF0PHJlc3VsdF90eXBlLCBtcGw6OmludF88Nz4gPjo6dHlwZSwKKyAgICAgIHR5cGVuYW1lIG1wbDo6YXQ8cmVzdWx0X3R5cGUsIG1wbDo6aW50Xzw4PiA+Ojp0eXBlLAorICAgICAgdHlwZW5hbWUgbXBsOjphdDxyZXN1bHRfdHlwZSwgbXBsOjppbnRfPDk+ID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmF0PHJlc3VsdF90eXBlLCBtcGw6OmludF88MTA+ID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmF0PHJlc3VsdF90eXBlLCBtcGw6OmludF88MTE+ID46OnR5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmF0PHJlc3VsdF90eXBlLCBtcGw6OmludF88MTI+ID46OnR5cGUgPiB0eXBlOworfTsKKy8vCisvLyBGdWxsIHNwZWNpYWxpc2F0aW9uIHRvIHNwZWVkIHVwIGNvbXBpbGF0aW9uIG9mIHRoZSBjb21tb24gY2FzZToKKy8vCit0ZW1wbGF0ZSA8Pgorc3RydWN0IG5vcm1hbGlzZTxwb2xpY3k8PiwgCisgICAgICAgICAgcHJvbW90ZV9mbG9hdDxmYWxzZT4sIAorICAgICAgICAgIHByb21vdGVfZG91YmxlPGZhbHNlPiwgCisgICAgICAgICAgZGlzY3JldGVfcXVhbnRpbGU8PiwKKyAgICAgICAgICBhc3NlcnRfdW5kZWZpbmVkPD4sCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3k+Cit7CisgICB0eXBlZGVmIHBvbGljeTxkZXRhaWw6OmZvcndhcmRpbmdfYXJnMSwgZGV0YWlsOjpmb3J3YXJkaW5nX2FyZzI+IHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IG5vcm1hbGlzZTxwb2xpY3k8ZGV0YWlsOjpmb3J3YXJkaW5nX2FyZzEsIGRldGFpbDo6Zm9yd2FyZGluZ19hcmcyPiwKKyAgICAgICAgICBwcm9tb3RlX2Zsb2F0PGZhbHNlPiwKKyAgICAgICAgICBwcm9tb3RlX2RvdWJsZTxmYWxzZT4sCisgICAgICAgICAgZGlzY3JldGVfcXVhbnRpbGU8PiwKKyAgICAgICAgICBhc3NlcnRfdW5kZWZpbmVkPD4sCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3ksCisgICAgICAgICAgZGVmYXVsdF9wb2xpY3k+Cit7CisgICB0eXBlZGVmIHBvbGljeTxkZXRhaWw6OmZvcndhcmRpbmdfYXJnMSwgZGV0YWlsOjpmb3J3YXJkaW5nX2FyZzI+IHR5cGU7Cit9OworCitpbmxpbmUgcG9saWN5PD4gbWFrZV9wb2xpY3koKQoreyByZXR1cm4gcG9saWN5PD4oKTsgfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTE+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMT46OnR5cGUgbWFrZV9wb2xpY3koY29uc3QgQTEmKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMT46OnR5cGUgcmVzdWx0X3R5cGU7CisgICByZXR1cm4gcmVzdWx0X3R5cGUoKTsgCit9CisKK3RlbXBsYXRlIDxjbGFzcyBBMSwgY2xhc3MgQTI+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTI+Ojp0eXBlIG1ha2VfcG9saWN5KGNvbnN0IEExJiwgY29uc3QgQTImKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTI+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMz4KK2lubGluZSB0eXBlbmFtZSBub3JtYWxpc2U8cG9saWN5PD4sIEExLCBBMiwgQTM+Ojp0eXBlIG1ha2VfcG9saWN5KGNvbnN0IEExJiwgY29uc3QgQTImLCBjb25zdCBBMyYpCit7IAorICAgdHlwZWRlZiB0eXBlbmFtZSBub3JtYWxpc2U8cG9saWN5PD4sIEExLCBBMiwgQTM+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQ+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBND46OnR5cGUgbWFrZV9wb2xpY3koY29uc3QgQTEmLCBjb25zdCBBMiYsIGNvbnN0IEEzJiwgY29uc3QgQTQmKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBND46OnR5cGUgcmVzdWx0X3R5cGU7CisgICByZXR1cm4gcmVzdWx0X3R5cGUoKTsgCit9CisKK3RlbXBsYXRlIDxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTU+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIG1ha2VfcG9saWN5KGNvbnN0IEExJiwgY29uc3QgQTImLCBjb25zdCBBMyYsIGNvbnN0IEE0JiwgY29uc3QgQTUmKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTU+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNj4KK2lubGluZSB0eXBlbmFtZSBub3JtYWxpc2U8cG9saWN5PD4sIEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+Ojp0eXBlIG1ha2VfcG9saWN5KGNvbnN0IEExJiwgY29uc3QgQTImLCBjb25zdCBBMyYsIGNvbnN0IEE0JiwgY29uc3QgQTUmLCBjb25zdCBBNiYpCit7IAorICAgdHlwZWRlZiB0eXBlbmFtZSBub3JtYWxpc2U8cG9saWN5PD4sIEExLCBBMiwgQTMsIEE0LCBBNSwgQTY+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTc+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGUgbWFrZV9wb2xpY3koY29uc3QgQTEmLCBjb25zdCBBMiYsIGNvbnN0IEEzJiwgY29uc3QgQTQmLCBjb25zdCBBNSYsIGNvbnN0IEE2JiwgY29uc3QgQTcmKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNz46OnR5cGUgcmVzdWx0X3R5cGU7CisgICByZXR1cm4gcmVzdWx0X3R5cGUoKTsgCit9CisKK3RlbXBsYXRlIDxjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTg+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIG1ha2VfcG9saWN5KGNvbnN0IEExJiwgY29uc3QgQTImLCBjb25zdCBBMyYsIGNvbnN0IEE0JiwgY29uc3QgQTUmLCBjb25zdCBBNiYsIGNvbnN0IEE3JiwgY29uc3QgQTgmKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTg+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOT4KK2lubGluZSB0eXBlbmFtZSBub3JtYWxpc2U8cG9saWN5PD4sIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgQTk+Ojp0eXBlIG1ha2VfcG9saWN5KGNvbnN0IEExJiwgY29uc3QgQTImLCBjb25zdCBBMyYsIGNvbnN0IEE0JiwgY29uc3QgQTUmLCBjb25zdCBBNiYsIGNvbnN0IEE3JiwgY29uc3QgQTgmLCBjb25zdCBBOSYpCit7IAorICAgdHlwZWRlZiB0eXBlbmFtZSBub3JtYWxpc2U8cG9saWN5PD4sIEExLCBBMiwgQTMsIEE0LCBBNSwgQTYsIEE3LCBBOCwgQTk+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOSwgY2xhc3MgQTEwPgoraW5saW5lIHR5cGVuYW1lIG5vcm1hbGlzZTxwb2xpY3k8PiwgQTEsIEEyLCBBMywgQTQsIEE1LCBBNiwgQTcsIEE4LCBBOSwgQTEwPjo6dHlwZSBtYWtlX3BvbGljeShjb25zdCBBMSYsIGNvbnN0IEEyJiwgY29uc3QgQTMmLCBjb25zdCBBNCYsIGNvbnN0IEE1JiwgY29uc3QgQTYmLCBjb25zdCBBNyYsIGNvbnN0IEE4JiwgY29uc3QgQTkmLCBjb25zdCBBMTAmKQoreyAKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5LCBBMTA+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIHJlc3VsdF90eXBlKCk7IAorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOSwgY2xhc3MgQTEwLCBjbGFzcyBBMTE+CitpbmxpbmUgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5LCBBMTAsIEExMT46OnR5cGUgbWFrZV9wb2xpY3koY29uc3QgQTEmLCBjb25zdCBBMiYsIGNvbnN0IEEzJiwgY29uc3QgQTQmLCBjb25zdCBBNSYsIGNvbnN0IEE2JiwgY29uc3QgQTcmLCBjb25zdCBBOCYsIGNvbnN0IEE5JiwgY29uc3QgQTEwJiwgY29uc3QgQTExJikKK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbm9ybWFsaXNlPHBvbGljeTw+LCBBMSwgQTIsIEEzLCBBNCwgQTUsIEE2LCBBNywgQTgsIEE5LCBBMTAsIEExMT46OnR5cGUgcmVzdWx0X3R5cGU7CisgICByZXR1cm4gcmVzdWx0X3R5cGUoKTsKK30KKworLy8KKy8vIFRyYWl0cyBjbGFzcyB0byBoYW5kbGUgaW50ZXJuYWwgcHJvbW90aW9uOgorLy8KK3RlbXBsYXRlIDxjbGFzcyBSZWFsLCBjbGFzcyBQb2xpY3k+CitzdHJ1Y3QgZXZhbHVhdGlvbgoreworICAgdHlwZWRlZiBSZWFsIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUG9saWN5Pgorc3RydWN0IGV2YWx1YXRpb248ZmxvYXQsIFBvbGljeT4KK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88dHlwZW5hbWUgUG9saWN5Ojpwcm9tb3RlX2Zsb2F0X3R5cGUsIGRvdWJsZSwgZmxvYXQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUG9saWN5Pgorc3RydWN0IGV2YWx1YXRpb248ZG91YmxlLCBQb2xpY3k+Cit7CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPHR5cGVuYW1lIFBvbGljeTo6cHJvbW90ZV9kb3VibGVfdHlwZSwgbG9uZyBkb3VibGUsIGRvdWJsZT46OnR5cGUgdHlwZTsKK307CisKKyNpZmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworCit0ZW1wbGF0ZSA8Y2xhc3MgUmVhbD4KK3N0cnVjdCBiYXNpY19kaWdpdHMgOiBwdWJsaWMgbXBsOjppbnRfPDA+eyB9OwordGVtcGxhdGUgPD4KK3N0cnVjdCBiYXNpY19kaWdpdHM8ZmxvYXQ+IDogcHVibGljIG1wbDo6aW50XzxGTFRfTUFOVF9ESUc+eyB9OwordGVtcGxhdGUgPD4KK3N0cnVjdCBiYXNpY19kaWdpdHM8ZG91YmxlPiA6IHB1YmxpYyBtcGw6OmludF88REJMX01BTlRfRElHPnsgfTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgYmFzaWNfZGlnaXRzPGxvbmcgZG91YmxlPiA6IHB1YmxpYyBtcGw6OmludF88TERCTF9NQU5UX0RJRz57IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSZWFsLCBjbGFzcyBQb2xpY3k+CitzdHJ1Y3QgcHJlY2lzaW9uCit7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8UmVhbD46OnJhZGl4ID09IDIpOworICAgdHlwZWRlZiB0eXBlbmFtZSBQb2xpY3k6OnByZWNpc2lvbl90eXBlIHByZWNpc2lvbl90eXBlOworICAgdHlwZWRlZiBiYXNpY19kaWdpdHM8UmVhbD4gZGlnaXRzX3Q7CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgbXBsOjplcXVhbF90bzxkaWdpdHNfdCwgbXBsOjppbnRfPDA+ID4sCisgICAgICAvLyBQb3NzaWJseSB1bmtub3duIHByZWNpc2lvbjoKKyAgICAgIHByZWNpc2lvbl90eXBlLAorICAgICAgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICBtcGw6Om9yXzxtcGw6Omxlc3NfZXF1YWw8ZGlnaXRzX3QsIHByZWNpc2lvbl90eXBlPiwgbXBsOjpsZXNzX2VxdWFsPHByZWNpc2lvbl90eXBlLCBtcGw6OmludF88MD4gPiA+LAorICAgICAgICAgLy8gRGVmYXVsdCBjYXNlLCBmdWxsIHByZWNpc2lvbiBmb3IgUmVhbFR5cGU6CisgICAgICAgICBkaWdpdHMyPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8UmVhbD46OmRpZ2l0cz4sCisgICAgICAgICAvLyBVc2VyIGN1c3RvbWlzZWQgcHJlY2lzaW9uOgorICAgICAgICAgcHJlY2lzaW9uX3R5cGUKKyAgICAgID46OnR5cGUKKyAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBQb2xpY3k+CitzdHJ1Y3QgcHJlY2lzaW9uPGZsb2F0LCBQb2xpY3k+Cit7CisgICB0eXBlZGVmIGRpZ2l0czI8RkxUX01BTlRfRElHPiB0eXBlOworfTsKK3RlbXBsYXRlIDxjbGFzcyBQb2xpY3k+CitzdHJ1Y3QgcHJlY2lzaW9uPGRvdWJsZSwgUG9saWN5PgoreworICAgdHlwZWRlZiBkaWdpdHMyPERCTF9NQU5UX0RJRz4gdHlwZTsKK307Cit0ZW1wbGF0ZSA8Y2xhc3MgUG9saWN5Pgorc3RydWN0IHByZWNpc2lvbjxsb25nIGRvdWJsZSwgUG9saWN5PgoreworICAgdHlwZWRlZiBkaWdpdHMyPExEQkxfTUFOVF9ESUc+IHR5cGU7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZSA8Y2xhc3MgUmVhbCwgY2xhc3MgUG9saWN5Pgorc3RydWN0IHByZWNpc2lvbgoreworICAgQk9PU1RfU1RBVElDX0FTU0VSVCgoOjpzdGQ6Om51bWVyaWNfbGltaXRzPFJlYWw+OjpyYWRpeCA9PSAyKSB8fCAoKDo6c3RkOjpudW1lcmljX2xpbWl0czxSZWFsPjo6aXNfc3BlY2lhbGl6ZWQgPT0gMCkgfHwgKDo6c3RkOjpudW1lcmljX2xpbWl0czxSZWFsPjo6ZGlnaXRzID09IDApKSk7CisjaWZuZGVmIF9fQk9STEFORENfXworICAgdHlwZWRlZiB0eXBlbmFtZSBQb2xpY3k6OnByZWNpc2lvbl90eXBlIHByZWNpc2lvbl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAoKDo6c3RkOjpudW1lcmljX2xpbWl0czxSZWFsPjo6aXNfc3BlY2lhbGl6ZWQgPT0gMCkgfHwgKDo6c3RkOjpudW1lcmljX2xpbWl0czxSZWFsPjo6ZGlnaXRzID09IDApKSwKKyAgICAgIC8vIFBvc3NpYmx5IHVua25vd24gcHJlY2lzaW9uOgorICAgICAgcHJlY2lzaW9uX3R5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAgICAoKDo6c3RkOjpudW1lcmljX2xpbWl0czxSZWFsPjo6ZGlnaXRzIDw9IHByZWNpc2lvbl90eXBlOjp2YWx1ZSkgCisgICAgICAgICB8fCAoUG9saWN5OjpwcmVjaXNpb25fdHlwZTo6dmFsdWUgPD0gMCkpLAorICAgICAgICAgLy8gRGVmYXVsdCBjYXNlLCBmdWxsIHByZWNpc2lvbiBmb3IgUmVhbFR5cGU6CisgICAgICAgICBkaWdpdHMyPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8UmVhbD46OmRpZ2l0cz4sCisgICAgICAgICAvLyBVc2VyIGN1c3RvbWlzZWQgcHJlY2lzaW9uOgorICAgICAgICAgcHJlY2lzaW9uX3R5cGUKKyAgICAgID46OnR5cGUKKyAgID46OnR5cGUgdHlwZTsKKyNlbHNlCisgICB0eXBlZGVmIHR5cGVuYW1lIFBvbGljeTo6cHJlY2lzaW9uX3R5cGUgcHJlY2lzaW9uX3R5cGU7CisgICB0eXBlZGVmIG1wbDo6aW50XzwgOjpzdGQ6Om51bWVyaWNfbGltaXRzPFJlYWw+OjpkaWdpdHM+IGRpZ2l0c190OworICAgdHlwZWRlZiBtcGw6OmJvb2xfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8UmVhbD46OmlzX3NwZWNpYWxpemVkPiBzcGVjX3Q7CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgbXBsOjpvcl88bXBsOjplcXVhbF90bzxzcGVjX3QsIG1wbDo6ZmFsc2VfPiwgbXBsOjplcXVhbF90bzxkaWdpdHNfdCwgbXBsOjppbnRfPDA+ID4gPiwKKyAgICAgIC8vIFBvc3NpYmx5IHVua25vd24gcHJlY2lzaW9uOgorICAgICAgcHJlY2lzaW9uX3R5cGUsCisgICAgICB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgICAgIG1wbDo6b3JfPG1wbDo6bGVzc19lcXVhbDxkaWdpdHNfdCwgcHJlY2lzaW9uX3R5cGU+LCBtcGw6Omxlc3NfZXF1YWw8cHJlY2lzaW9uX3R5cGUsIG1wbDo6aW50XzwwPiA+ID4sCisgICAgICAgICAvLyBEZWZhdWx0IGNhc2UsIGZ1bGwgcHJlY2lzaW9uIGZvciBSZWFsVHlwZToKKyAgICAgICAgIGRpZ2l0czI8IDo6c3RkOjpudW1lcmljX2xpbWl0czxSZWFsPjo6ZGlnaXRzPiwKKyAgICAgICAgIC8vIFVzZXIgY3VzdG9taXNlZCBwcmVjaXNpb246CisgICAgICAgICBwcmVjaXNpb25fdHlwZQorICAgICAgPjo6dHlwZQorICAgPjo6dHlwZSB0eXBlOworI2VuZGlmCit9OworCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01BVEhfVVNFX0ZMT0FUMTI4CisKK3RlbXBsYXRlIDxjbGFzcyBQb2xpY3k+CitzdHJ1Y3QgcHJlY2lzaW9uPF9fZmxvYXQxMjgsIFBvbGljeT4KK3sKKyAgIHR5cGVkZWYgbXBsOjppbnRfPDExMz4gdHlwZTsKK307CisKKyNlbmRpZgorCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgoraW5saW5lIGludCBkaWdpdHNfaW1wKG1wbDo6dHJ1ZV8gY29uc3QmKQoreworI2lmbmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgQk9PU1RfU1RBVElDX0FTU0VSVCggOjpzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zcGVjaWFsaXplZCk7CisjZWxzZQorICAgQk9PU1RfQVNTRVJUKDo6c3RkOjpudW1lcmljX2xpbWl0czxUPjo6aXNfc3BlY2lhbGl6ZWQpOworI2VuZGlmCisgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjpwb2xpY2llczo6cHJlY2lzaW9uPFQsIFBvbGljeT46OnR5cGUgcF90OworICAgcmV0dXJuIHBfdDo6dmFsdWU7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CitpbmxpbmUgaW50IGRpZ2l0c19pbXAobXBsOjpmYWxzZV8gY29uc3QmKQoreworICAgcmV0dXJuIHRvb2xzOjpkaWdpdHM8VD4oKTsKK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CitpbmxpbmUgaW50IGRpZ2l0cyhCT09TVF9NQVRIX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUoVCkpCit7CisgICB0eXBlZGVmIG1wbDo6Ym9vbF88IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmlzX3NwZWNpYWxpemVkID4gdGFnX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjpkaWdpdHNfaW1wPFQsIFBvbGljeT4odGFnX3R5cGUoKSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQb2xpY3k+CitpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfbWF4X3Nlcmllc19pdGVyYXRpb25zKCkKK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgUG9saWN5OjptYXhfc2VyaWVzX2l0ZXJhdGlvbnNfdHlwZSBpdGVyX3R5cGU7CisgICByZXR1cm4gaXRlcl90eXBlOjp2YWx1ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFBvbGljeT4KK2lubGluZSB1bnNpZ25lZCBsb25nIGdldF9tYXhfcm9vdF9pdGVyYXRpb25zKCkKK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgUG9saWN5OjptYXhfcm9vdF9pdGVyYXRpb25zX3R5cGUgaXRlcl90eXBlOworICAgcmV0dXJuIGl0ZXJfdHlwZTo6dmFsdWU7Cit9CisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBEaWdpdHMsIGNsYXNzIFNtYWxsLCBjbGFzcyBEZWZhdWx0Pgorc3RydWN0IHNlcmllc19mYWN0b3JfY2FsYworeworICAgc3RhdGljIFQgZ2V0KCkKKyAgIHsKKyAgICAgIHJldHVybiBsZGV4cChUKDEuMCksIDEgLSBEaWdpdHM6OnZhbHVlKTsKKyAgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBEaWdpdHM+CitzdHJ1Y3Qgc2VyaWVzX2ZhY3Rvcl9jYWxjPFQsIERpZ2l0cywgbXBsOjp0cnVlXywgbXBsOjp0cnVlXz4KK3sKKyAgIHN0YXRpYyBUIGdldCgpCisgICB7CisgICAgICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjplcHNpbG9uPFQ+KCk7CisgICB9Cit9OwordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIERpZ2l0cz4KK3N0cnVjdCBzZXJpZXNfZmFjdG9yX2NhbGM8VCwgRGlnaXRzLCBtcGw6OnRydWVfLCBtcGw6OmZhbHNlXz4KK3sKKyAgIHN0YXRpYyBUIGdldCgpCisgICB7CisgICAgICBzdGF0aWMgY29uc3QgbmRuYm9vc3Q6OnVpbnRtYXhfdCB2ID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OnVpbnRtYXhfdD4oMXUpIDw8IChEaWdpdHM6OnZhbHVlIC0gMSk7CisgICAgICByZXR1cm4gMSAvIHN0YXRpY19jYXN0PFQ+KHYpOworICAgfQorfTsKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBEaWdpdHM+CitzdHJ1Y3Qgc2VyaWVzX2ZhY3Rvcl9jYWxjPFQsIERpZ2l0cywgbXBsOjpmYWxzZV8sIG1wbDo6dHJ1ZV8+Cit7CisgICBzdGF0aWMgVCBnZXQoKQorICAgeworICAgICAgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjp0b29sczo6ZXBzaWxvbjxUPigpOworICAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KK2lubGluZSBUIGdldF9lcHNpbG9uX2ltcChtcGw6OnRydWVfIGNvbnN0JikKK3sKKyNpZm5kZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoIDo6c3RkOjpudW1lcmljX2xpbWl0czxUPjo6aXNfc3BlY2lhbGl6ZWQpOworICAgQk9PU1RfU1RBVElDX0FTU0VSVCggOjpzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpyYWRpeCA9PSAyKTsKKyNlbHNlCisgICBCT09TVF9BU1NFUlQoOjpzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zcGVjaWFsaXplZCk7CisgICBCT09TVF9BU1NFUlQoOjpzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpyYWRpeCA9PSAyKTsKKyNlbmRpZgorICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6cG9saWNpZXM6OnByZWNpc2lvbjxULCBQb2xpY3k+Ojp0eXBlIHBfdDsKKyAgIHR5cGVkZWYgbXBsOjpib29sXzxwX3Q6OnZhbHVlIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8bmRuYm9vc3Q6OnVpbnRtYXhfdD46OmRpZ2l0cz4gaXNfc21hbGxfaW50OworICAgdHlwZWRlZiBtcGw6OmJvb2xfPHBfdDo6dmFsdWUgPj0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6ZGlnaXRzPiBpc19kZWZhdWx0X3ZhbHVlOworICAgcmV0dXJuIHNlcmllc19mYWN0b3JfY2FsYzxULCBwX3QsIGlzX3NtYWxsX2ludCwgaXNfZGVmYXVsdF92YWx1ZT46OmdldCgpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgoraW5saW5lIFQgZ2V0X2Vwc2lsb25faW1wKG1wbDo6ZmFsc2VfIGNvbnN0JikKK3sKKyAgIHJldHVybiB0b29sczo6ZXBzaWxvbjxUPigpOworfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKwordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KK2lubGluZSBUIGdldF9lcHNpbG9uKEJPT1NUX01BVEhfRVhQTElDSVRfVEVNUExBVEVfVFlQRShUKSkKK3sKKyAgIHR5cGVkZWYgbXBsOjpib29sXzwgKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmlzX3NwZWNpYWxpemVkICYmIChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpyYWRpeCA9PSAyKSkgPiB0YWdfdHlwZTsKKyAgIHJldHVybiBkZXRhaWw6OmdldF9lcHNpbG9uX2ltcDxULCBQb2xpY3k+KHRhZ190eXBlKCkpOworfQorCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8Y2xhc3MgQTEsIAorICAgICAgICAgIGNsYXNzIEEyLCAKKyAgICAgICAgICBjbGFzcyBBMywKKyAgICAgICAgICBjbGFzcyBBNCwKKyAgICAgICAgICBjbGFzcyBBNSwKKyAgICAgICAgICBjbGFzcyBBNiwKKyAgICAgICAgICBjbGFzcyBBNywKKyAgICAgICAgICBjbGFzcyBBOCwKKyAgICAgICAgICBjbGFzcyBBOSwKKyAgICAgICAgICBjbGFzcyBBMTAsCisgICAgICAgICAgY2xhc3MgQTExPgorY2hhciB0ZXN0X2lzX3BvbGljeShjb25zdCBwb2xpY3k8QTEsQTIsQTMsQTQsQTUsQTYsQTcsQTgsQTksQTEwLEExMT4qKTsKK2RvdWJsZSB0ZXN0X2lzX3BvbGljeSguLi4pOworCit0ZW1wbGF0ZSA8Y2xhc3MgUD4KK3N0cnVjdCBpc19wb2xpY3lfaW1wCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoc2l6ZW9mKDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OnRlc3RfaXNfcG9saWN5KHN0YXRpY19jYXN0PFAqPigwKSkpID09IDEpKTsKK307CisKK30KKwordGVtcGxhdGUgPGNsYXNzIFA+CitzdHJ1Y3QgaXNfcG9saWN5IDogcHVibGljIG1wbDo6Ym9vbF88IDo6bmRuYm9vc3Q6Om1hdGg6OnBvbGljaWVzOjpkZXRhaWw6OmlzX3BvbGljeV9pbXA8UD46OnZhbHVlPiB7fTsKKworLy8KKy8vIEhlbHBlciB0cmFpdHMgY2xhc3MgZm9yIGRpc3RyaWJ1dGlvbiBlcnJvciBoYW5kbGluZzoKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgUG9saWN5Pgorc3RydWN0IGNvbnN0cnVjdG9yX2Vycm9yX2NoZWNrCit7CisgICB0eXBlZGVmIHR5cGVuYW1lIFBvbGljeTo6ZG9tYWluX2Vycm9yX3R5cGUgZG9tYWluX2Vycm9yX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgIChkb21haW5fZXJyb3JfdHlwZTo6dmFsdWUgPT0gdGhyb3dfb25fZXJyb3IpIHx8IChkb21haW5fZXJyb3JfdHlwZTo6dmFsdWUgPT0gdXNlcl9lcnJvciksCisgICAgICBtcGw6OnRydWVfLAorICAgICAgbXBsOjpmYWxzZV8+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUG9saWN5Pgorc3RydWN0IG1ldGhvZF9lcnJvcl9jaGVjaworeworICAgdHlwZWRlZiB0eXBlbmFtZSBQb2xpY3k6OmRvbWFpbl9lcnJvcl90eXBlIGRvbWFpbl9lcnJvcl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAoZG9tYWluX2Vycm9yX3R5cGU6OnZhbHVlID09IHRocm93X29uX2Vycm9yKSAmJiAoZG9tYWluX2Vycm9yX3R5cGU6OnZhbHVlICE9IHVzZXJfZXJyb3IpLAorICAgICAgbXBsOjpmYWxzZV8sCisgICAgICBtcGw6OnRydWVfPjo6dHlwZSB0eXBlOworfTsKKworfX19IC8vIG5hbWVzcGFjZXMKKworI2VuZGlmIC8vIEJPT1NUX01BVEhfUE9MSUNZX0hQUAorCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2RldGFpbC9mcF90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2RldGFpbC9mcF90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYzhkNzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZGV0YWlsL2ZwX3RyYWl0cy5ocHAKQEAgLTAsMCArMSw1NzAgQEAKKy8vIGZwX3RyYWl0cy5ocHAKKworI2lmbmRlZiBCT09TVF9NQVRIX0ZQX1RSQUlUU19IUFAKKyNkZWZpbmUgQk9PU1RfTUFUSF9GUF9UUkFJVFNfSFBQCisKKy8vIENvcHlyaWdodCAoYykgMjAwNiBKb2hhbiBSYWRlCisKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0CisvLyBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLyoKK1RvIHN1cHBvcnQgb2xkIGNvbXBpbGVycywgY2FyZSBoYXMgYmVlbiB0YWtlbiB0byBhdm9pZCBwYXJ0aWFsIHRlbXBsYXRlCitzcGVjaWFsaXphdGlvbiBhbmQgbWV0YSBmdW5jdGlvbiBmb3J3YXJkaW5nLgorV2l0aCB0aGVzZSB0ZWNobmlxdWVzLCB0aGUgY29kZSBjb3VsZCBiZSBzaW1wbGlmaWVkLgorKi8KKworI2lmIGRlZmluZWQoX192bXMpICYmIGRlZmluZWQoX19ERUNDWFgpICYmICFfX0lFRUVfRkxPQVQKKy8vIFRoZSBWQVggZmxvYXRpbmcgcG9pbnQgZm9ybWF0cyBhcmUgdXNlZCAoZm9yIGZsb2F0IGFuZCBkb3VibGUpCisjICAgZGVmaW5lIEJPT1NUX0ZQQ0xBU1NJRllfVkFYX0ZPUk1BVAorI2VuZGlmCisKKyNpbmNsdWRlIDxjc3RyaW5nPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkaW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvZW5kaWFuLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mbG9hdGluZ19wb2ludC5ocHA+CisKKyNpZmRlZiBCT09TVF9OT19TVERDX05BTUVTUEFDRQorICBuYW1lc3BhY2Ugc3RkeyB1c2luZyA6Om1lbWNweTsgfQorI2VuZGlmCisKKyNpZm5kZWYgRlBfTk9STUFMCisKKyNkZWZpbmUgRlBfWkVSTyAgICAgICAgMAorI2RlZmluZSBGUF9OT1JNQUwgICAgICAxCisjZGVmaW5lIEZQX0lORklOSVRFICAgIDIKKyNkZWZpbmUgRlBfTkFOICAgICAgICAgMworI2RlZmluZSBGUF9TVUJOT1JNQUwgICA0CisKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfSEFTX0ZQQ0xBU1NJRlkKKworI2lmbmRlZiBmcGNsYXNzaWZ5CisjICBpZiAoZGVmaW5lZChfX0dMSUJDUFBfXykgfHwgZGVmaW5lZChfX0dMSUJDWFhfXykpIFwKKyAgICAgICAgICYmIGRlZmluZWQoX0dMSUJDWFhfVVNFX0M5OV9NQVRIKSBcCisgICAgICAgICAmJiAhKGRlZmluZWQoX0dMSUJDWFhfVVNFX0M5OV9GUF9NQUNST1NfRFlOQU1JQykgXAorICAgICAgICAgJiYgKF9HTElCQ1hYX1VTRV9DOTlfRlBfTUFDUk9TX0RZTkFNSUMgIT0gMCkpCisjICAgICBpZmRlZiBfU1RMUF9WRU5ET1JfQ1NURAorIyAgICAgICAgaWYgX1NUTFBPUlRfVkVSU0lPTiA+PSAweDUyMAorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX0ZQQ0xBU1NJRllfUFJFRklYIDo6X19zdGRfYWxpYXM6OiAKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9GUENMQVNTSUZZX1BSRUZJWCA6Ol9TVExQX1ZFTkRPUl9DU1REOjogCisjICAgICAgICBlbmRpZgorIyAgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0ZQQ0xBU1NJRllfUFJFRklYIDo6c3RkOjoKKyMgICAgIGVuZGlmCisjICBlbHNlCisjICAgICB1bmRlZiBCT09TVF9IQVNfRlBDTEFTU0lGWQorIyAgICAgZGVmaW5lIEJPT1NUX0ZQQ0xBU1NJRllfUFJFRklYCisjICBlbmRpZgorI2VsaWYgKGRlZmluZWQoX19IUF9hQ0MpICYmICFkZWZpbmVkKF9faHBwYSkpCisvLyBhQ0MgNiBhcHBlYXJzIHRvIGRvICIjZGVmaW5lIGZwY2xhc3NpZnkgZnBjbGFzc2lmeSIgd2hpY2ggbWVzc2VzIHVzIHVwIGEgYml0IQorIyAgZGVmaW5lIEJPT1NUX0ZQQ0xBU1NJRllfUFJFRklYIDo6CisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0ZQQ0xBU1NJRllfUFJFRklYCisjZW5kaWYKKworI2lmZGVmIF9fTUlOR1czMl9fCisjICB1bmRlZiBCT09TVF9IQVNfRlBDTEFTU0lGWQorI2VuZGlmCisKKyNlbmRpZgorCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgbWF0aCB7CituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyogCitUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHVzZWQgdG8gdGFnIHRoZSBkaWZmZXJlbnQgbWV0aG9kcyB0aGF0IGFyZSB1c2VkCitmb3IgZmxvYXRpbmcgcG9pbnQgY2xhc3NpZmljYXRpb24KKyovCisKK3N0cnVjdCBuYXRpdmVfdGFnIHt9OwordGVtcGxhdGUgPGJvb2wgaGFzX2xpbWl0cz4KK3N0cnVjdCBnZW5lcmljX3RhZyB7fTsKK3N0cnVjdCBpZWVlX3RhZyB7fTsKK3N0cnVjdCBpZWVlX2NvcHlfYWxsX2JpdHNfdGFnIDogcHVibGljIGllZWVfdGFnIHt9Oworc3RydWN0IGllZWVfY29weV9sZWFkaW5nX2JpdHNfdGFnIDogcHVibGljIGllZWVfdGFnIHt9OworCisjaWZkZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKy8vCisvLyBUaGVzZSBoZWxwZXIgZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkgd2hlbiBudW1lcmljX2xpbWl0czw+CisvLyBtZW1iZXJzIGFyZSBub3QgY29tcGlsZSB0aW1lIGNvbnN0YW50czoKKy8vCitpbmxpbmUgYm9vbCBpc19nZW5lcmljX3RhZ19mYWxzZShjb25zdCBnZW5lcmljX3RhZzxmYWxzZT4qKQoreworICAgcmV0dXJuIHRydWU7Cit9CitpbmxpbmUgYm9vbCBpc19nZW5lcmljX3RhZ19mYWxzZShjb25zdCB2b2lkKikKK3sKKyAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvKgorTW9zdCBwcm9jZXNzb3JzIHN1cHBvcnQgdGhyZWUgZGlmZmVyZW50IGZsb2F0aW5nIHBvaW50IHByZWNpc2lvbnM6CitzaW5nbGUgcHJlY2lzaW9uICgzMiBiaXRzKSwgZG91YmxlIHByZWNpc2lvbiAoNjQgYml0cykKK2FuZCBleHRlbmRlZCBkb3VibGUgcHJlY2lzaW9uICg4MCAtIDEyOCBiaXRzLCBkZXBlbmRpbmcgb24gdGhlIHByb2Nlc3NvcikKKworTm90ZSB0aGF0IHRoZSBDKysgdHlwZSBsb25nIGRvdWJsZSBjYW4gYmUgaW1wbGVtZW50ZWQKK2JvdGggYXMgZG91YmxlIHByZWNpc2lvbiBhbmQgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbi4KKyovCisKK3N0cnVjdCB1bmtub3duX3ByZWNpc2lvbnt9Oworc3RydWN0IHNpbmdsZV9wcmVjaXNpb24ge307CitzdHJ1Y3QgZG91YmxlX3ByZWNpc2lvbiB7fTsKK3N0cnVjdCBleHRlbmRlZF9kb3VibGVfcHJlY2lzaW9uIHt9OworCisvLyBuYXRpdmVfdGFnIHZlcnNpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGZwX3RyYWl0c19uYXRpdmUKK3sKKyAgICB0eXBlZGVmIG5hdGl2ZV90YWcgbWV0aG9kOworfTsKKworLy8gZ2VuZXJpY190YWcgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IHN0cnVjdCBmcF90cmFpdHNfbm9uX25hdGl2ZQoreworI2lmbmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgdHlwZWRlZiBnZW5lcmljX3RhZzxzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zcGVjaWFsaXplZD4gbWV0aG9kOworI2Vsc2UKKyAgIHR5cGVkZWYgZ2VuZXJpY190YWc8ZmFsc2U+IG1ldGhvZDsKKyNlbmRpZgorfTsKKworLy8gaWVlZV90YWcgdmVyc2lvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8qCitUaGVzZSBzcGVjaWFsaXphdGlvbnMgb2YgZnBfdHJhaXRzX25vbl9uYXRpdmUgY29udGFpbiBpbmZvcm1hdGlvbiBuZWVkZWQKK3RvICJwYXJzZSIgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlci4KKworVHlwZWRlZiBtZW1iZXJzOgorCisgIGJpdHMgLS0gdGhlIHRhcmdldCB0eXBlIHdoZW4gY29weWluZyB0aGUgbGVhZGluZyBieXRlcyBvZiBhIGZsb2F0aW5nCisgICAgICBwb2ludCBudW1iZXIuIEl0IGlzIGEgdHlwZWRlZiBmb3IgdWludDMyX3Qgb3IgdWludDY0X3QuCisKKyAgbWV0aG9kIC0tIHRlbGxzIHVzIHdoZXRoZXIgYWxsIGJ5dGVzIGFyZSBjb3BpZWQgb3Igbm90LgorICAgICAgSXQgaXMgYSB0eXBlZGVmIGZvciBpZWVlX2NvcHlfYWxsX2JpdHNfdGFnIG9yIGllZWVfY29weV9sZWFkaW5nX2JpdHNfdGFnLgorCitTdGF0aWMgZGF0YSBtZW1iZXJzOgorCisgIHNpZ24sIGV4cG9uZW50LCBmbGFnLCBzaWduaWZpY2FuZCAtLSBiaXQgbWFza3MgdGhhdCBnaXZlIHRoZSBtZWFuaW5nIG9mIHRoZQorICBiaXRzIGluIHRoZSBsZWFkaW5nIGJ5dGVzLgorCitTdGF0aWMgZnVuY3Rpb24gbWVtYmVyczoKKworICBnZXRfYml0cygpLCBzZXRfYml0cygpIC0tIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBsZWFkaW5nIGJ5dGVzLgorCisqLworCisvLyBpZWVlX3RhZyB2ZXJzaW9uLCBmbG9hdCAoMzIgYml0cykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9GUENMQVNTSUZZX1ZBWF9GT1JNQVQKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZnBfdHJhaXRzX25vbl9uYXRpdmU8ZmxvYXQsIHNpbmdsZV9wcmVjaXNpb24+Cit7CisgICAgdHlwZWRlZiBpZWVlX2NvcHlfYWxsX2JpdHNfdGFnIG1ldGhvZDsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbiAgICAgICAgPSAweDgwMDAwMDAwdSk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBleHBvbmVudCAgICA9IDB4N2Y4MDAwMDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgZmxhZyAgICAgICAgPSAweDAwMDAwMDAwKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIHNpZ25pZmljYW5kID0gMHgwMDdmZmZmZik7CisKKyAgICB0eXBlZGVmIHVpbnQzMl90IGJpdHM7CisgICAgc3RhdGljIHZvaWQgZ2V0X2JpdHMoZmxvYXQgeCwgdWludDMyX3QmIGEpIHsgc3RkOjptZW1jcHkoJmEsICZ4LCA0KTsgfQorICAgIHN0YXRpYyB2b2lkIHNldF9iaXRzKGZsb2F0JiB4LCB1aW50MzJfdCBhKSB7IHN0ZDo6bWVtY3B5KCZ4LCAmYSwgNCk7IH0KK307CisKKy8vIGllZWVfdGFnIHZlcnNpb24sIGRvdWJsZSAoNjQgYml0cykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWYgZGVmaW5lZChCT09TVF9OT19JTlQ2NF9UKSB8fCBkZWZpbmVkKEJPT1NUX05PX0lOQ0xBU1NfTUVNQkVSX0lOSVRJQUxJWkFUSU9OKSBcCisgICB8fCBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX0NPREVHRUFSX18pCisKK3RlbXBsYXRlPD4gc3RydWN0IGZwX3RyYWl0c19ub25fbmF0aXZlPGRvdWJsZSwgZG91YmxlX3ByZWNpc2lvbj4KK3sKKyAgICB0eXBlZGVmIGllZWVfY29weV9sZWFkaW5nX2JpdHNfdGFnIG1ldGhvZDsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbiAgICAgICAgPSAweDgwMDAwMDAwdSk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBleHBvbmVudCAgICA9IDB4N2ZmMDAwMDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgZmxhZyAgICAgICAgPSAwKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIHNpZ25pZmljYW5kID0gMHgwMDBmZmZmZik7CisKKyAgICB0eXBlZGVmIHVpbnQzMl90IGJpdHM7CisKKyAgICBzdGF0aWMgdm9pZCBnZXRfYml0cyhkb3VibGUgeCwgdWludDMyX3QmIGEpCisgICAgeworICAgICAgICBzdGQ6Om1lbWNweSgmYSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oJngpICsgb2Zmc2V0XywgNCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgc2V0X2JpdHMoZG91YmxlJiB4LCB1aW50MzJfdCBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4oJngpICsgb2Zmc2V0XywgJmEsIDQpOworICAgIH0KKworcHJpdmF0ZToKKworI2lmIGRlZmluZWQoQk9PU1RfQklHX0VORElBTikKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBvZmZzZXRfID0gMCk7CisjZWxpZiBkZWZpbmVkKEJPT1NUX0xJVFRMRV9FTkRJQU4pCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgb2Zmc2V0XyA9IDQpOworI2Vsc2UKKyAgICBCT09TVF9TVEFUSUNfQVNTRVJUKGZhbHNlKTsKKyNlbmRpZgorfTsKKworLy8uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKworI2Vsc2UKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZnBfdHJhaXRzX25vbl9uYXRpdmU8ZG91YmxlLCBkb3VibGVfcHJlY2lzaW9uPgoreworICAgIHR5cGVkZWYgaWVlZV9jb3B5X2FsbF9iaXRzX3RhZyBtZXRob2Q7CisKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3Qgc2lnbiAgICAgPSAoKHVpbnQ2NF90KTB4ODAwMDAwMDB1KSA8PCAzMjsKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZXhwb25lbnQgPSAoKHVpbnQ2NF90KTB4N2ZmMDAwMDApIDw8IDMyOworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBmbGFnICAgICA9IDA7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNpZ25pZmljYW5kCisgICAgICAgID0gKCgodWludDY0X3QpMHgwMDBmZmZmZikgPDwgMzIpICsgKCh1aW50NjRfdCkweGZmZmZmZmZmdSk7CisKKyAgICB0eXBlZGVmIHVpbnQ2NF90IGJpdHM7CisgICAgc3RhdGljIHZvaWQgZ2V0X2JpdHMoZG91YmxlIHgsIHVpbnQ2NF90JiBhKSB7IHN0ZDo6bWVtY3B5KCZhLCAmeCwgOCk7IH0KKyAgICBzdGF0aWMgdm9pZCBzZXRfYml0cyhkb3VibGUmIHgsIHVpbnQ2NF90IGEpIHsgc3RkOjptZW1jcHkoJngsICZhLCA4KTsgfQorfTsKKworI2VuZGlmCisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9GUENMQVNTSUZZX1ZBWF9GT1JNQVQKKworLy8gbG9uZyBkb3VibGUgKDY0IGJpdHMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmIGRlZmluZWQoQk9PU1RfTk9fSU5UNjRfVCkgfHwgZGVmaW5lZChCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTilcCisgICB8fCBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX0NPREVHRUFSX18pCisKK3RlbXBsYXRlPD4gc3RydWN0IGZwX3RyYWl0c19ub25fbmF0aXZlPGxvbmcgZG91YmxlLCBkb3VibGVfcHJlY2lzaW9uPgoreworICAgIHR5cGVkZWYgaWVlZV9jb3B5X2xlYWRpbmdfYml0c190YWcgbWV0aG9kOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBzaWduICAgICAgICA9IDB4ODAwMDAwMDB1KTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIGV4cG9uZW50ICAgID0gMHg3ZmYwMDAwMCk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBmbGFnICAgICAgICA9IDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbmlmaWNhbmQgPSAweDAwMGZmZmZmKTsKKworICAgIHR5cGVkZWYgdWludDMyX3QgYml0czsKKworICAgIHN0YXRpYyB2b2lkIGdldF9iaXRzKGxvbmcgZG91YmxlIHgsIHVpbnQzMl90JiBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkoJmEsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KCZ4KSArIG9mZnNldF8sIDQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNldF9iaXRzKGxvbmcgZG91YmxlJiB4LCB1aW50MzJfdCBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4oJngpICsgb2Zmc2V0XywgJmEsIDQpOworICAgIH0KKworcHJpdmF0ZToKKworI2lmIGRlZmluZWQoQk9PU1RfQklHX0VORElBTikKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBvZmZzZXRfID0gMCk7CisjZWxpZiBkZWZpbmVkKEJPT1NUX0xJVFRMRV9FTkRJQU4pCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgb2Zmc2V0XyA9IDQpOworI2Vsc2UKKyAgICBCT09TVF9TVEFUSUNfQVNTRVJUKGZhbHNlKTsKKyNlbmRpZgorfTsKKworLy8uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKworI2Vsc2UKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZnBfdHJhaXRzX25vbl9uYXRpdmU8bG9uZyBkb3VibGUsIGRvdWJsZV9wcmVjaXNpb24+Cit7CisgICAgdHlwZWRlZiBpZWVlX2NvcHlfYWxsX2JpdHNfdGFnIG1ldGhvZDsKKworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBzaWduICAgICA9ICh1aW50NjRfdCkweDgwMDAwMDAwdSA8PCAzMjsKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZXhwb25lbnQgPSAodWludDY0X3QpMHg3ZmYwMDAwMCA8PCAzMjsKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZmxhZyAgICAgPSAwOworICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBzaWduaWZpY2FuZAorICAgICAgICA9ICgodWludDY0X3QpMHgwMDBmZmZmZiA8PCAzMikgKyAodWludDY0X3QpMHhmZmZmZmZmZnU7CisKKyAgICB0eXBlZGVmIHVpbnQ2NF90IGJpdHM7CisgICAgc3RhdGljIHZvaWQgZ2V0X2JpdHMobG9uZyBkb3VibGUgeCwgdWludDY0X3QmIGEpIHsgc3RkOjptZW1jcHkoJmEsICZ4LCA4KTsgfQorICAgIHN0YXRpYyB2b2lkIHNldF9iaXRzKGxvbmcgZG91YmxlJiB4LCB1aW50NjRfdCBhKSB7IHN0ZDo6bWVtY3B5KCZ4LCAmYSwgOCk7IH0KK307CisKKyNlbmRpZgorCisKKy8vIGxvbmcgZG91YmxlICg+NjQgYml0cyksIHg4NiBhbmQgeDY0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfTV9JWDg2KSBcCisgICAgfHwgZGVmaW5lZChfX2FtZDY0KSB8fCBkZWZpbmVkKF9fYW1kNjRfXykgIHx8IGRlZmluZWQoX01fQU1ENjQpIFwKKyAgICB8fCBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KQorCisvLyBJbnRlbCBleHRlbmRlZCBkb3VibGUgcHJlY2lzaW9uIGZvcm1hdCAoODAgYml0cykKKwordGVtcGxhdGU8Pgorc3RydWN0IGZwX3RyYWl0c19ub25fbmF0aXZlPGxvbmcgZG91YmxlLCBleHRlbmRlZF9kb3VibGVfcHJlY2lzaW9uPgoreworICAgIHR5cGVkZWYgaWVlZV9jb3B5X2xlYWRpbmdfYml0c190YWcgbWV0aG9kOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBzaWduICAgICAgICA9IDB4ODAwMDAwMDB1KTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIGV4cG9uZW50ICAgID0gMHg3ZmZmMDAwMCk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBmbGFnICAgICAgICA9IDB4MDAwMDgwMDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbmlmaWNhbmQgPSAweDAwMDA3ZmZmKTsKKworICAgIHR5cGVkZWYgdWludDMyX3QgYml0czsKKworICAgIHN0YXRpYyB2b2lkIGdldF9iaXRzKGxvbmcgZG91YmxlIHgsIHVpbnQzMl90JiBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkoJmEsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KCZ4KSArIDYsIDQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNldF9iaXRzKGxvbmcgZG91YmxlJiB4LCB1aW50MzJfdCBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4oJngpICsgNiwgJmEsIDQpOworICAgIH0KK307CisKKworLy8gbG9uZyBkb3VibGUgKD42NCBiaXRzKSwgSXRhbml1bSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2VsaWYgZGVmaW5lZChfX2lhNjQpIHx8IGRlZmluZWQoX19pYTY0X18pIHx8IGRlZmluZWQoX01fSUE2NCkKKworLy8gVGhlIGZsb2F0aW5nIHBvaW50IGZvcm1hdCBpcyB1bmtub3duIGF0IGNvbXBpbGUgdGltZQorLy8gTm8gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gaXMgcHJvdmlkZWQuCisvLyBUaGUgZ2VuZXJpY190YWcgZGVmaW5pdGlvbiBpcyB1c2VkLgorCisvLyBUaGUgSXRhbml1bSBzdXBwb3J0cyBib3RoCisvLyB0aGUgSW50ZWwgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbiBmb3JtYXQgKDgwIGJpdHMpIGFuZAorLy8gdGhlIElFRUUgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbiBmb3JtYXQgd2l0aCAxNSBleHBvbmVudCBiaXRzICgxMjggYml0cykuCisKKworLy8gbG9uZyBkb3VibGUgKD42NCBiaXRzKSwgUG93ZXJQQyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2VsaWYgZGVmaW5lZChfX3Bvd2VycGMpIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19QT1dFUlBDX18pIFwKKyAgICB8fCBkZWZpbmVkKF9fcHBjKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19QUENfXykKKworLy8gUG93ZXJQQyBleHRlbmRlZCBkb3VibGUgcHJlY2lzaW9uIGZvcm1hdCAoMTI4IGJpdHMpCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcF90cmFpdHNfbm9uX25hdGl2ZTxsb25nIGRvdWJsZSwgZXh0ZW5kZWRfZG91YmxlX3ByZWNpc2lvbj4KK3sKKyAgICB0eXBlZGVmIGllZWVfY29weV9sZWFkaW5nX2JpdHNfdGFnIG1ldGhvZDsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbiAgICAgICAgPSAweDgwMDAwMDAwdSk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBleHBvbmVudCAgICA9IDB4N2ZmMDAwMDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgZmxhZyAgICAgICAgPSAweDAwMDAwMDAwKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIHNpZ25pZmljYW5kID0gMHgwMDBmZmZmZik7CisKKyAgICB0eXBlZGVmIHVpbnQzMl90IGJpdHM7CisKKyAgICBzdGF0aWMgdm9pZCBnZXRfYml0cyhsb25nIGRvdWJsZSB4LCB1aW50MzJfdCYgYSkKKyAgICB7CisgICAgICAgIHN0ZDo6bWVtY3B5KCZhLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigmeCkgKyBvZmZzZXRfLCA0KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzZXRfYml0cyhsb25nIGRvdWJsZSYgeCwgdWludDMyX3QgYSkKKyAgICB7CisgICAgICAgIHN0ZDo6bWVtY3B5KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KCZ4KSArIG9mZnNldF8sICZhLCA0KTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyNpZiBkZWZpbmVkKEJPT1NUX0JJR19FTkRJQU4pCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgb2Zmc2V0XyA9IDApOworI2VsaWYgZGVmaW5lZChCT09TVF9MSVRUTEVfRU5ESUFOKQorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIG9mZnNldF8gPSAxMik7CisjZWxzZQorICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoZmFsc2UpOworI2VuZGlmCit9OworCisKKy8vIGxvbmcgZG91YmxlICg+NjQgYml0cyksIE1vdG9yb2xhIDY4SyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNlbGlmIGRlZmluZWQoX19tNjhrKSB8fCBkZWZpbmVkKF9fbTY4a19fKSBcCisgICAgfHwgZGVmaW5lZChfX21jNjgwMDApIHx8IGRlZmluZWQoX19tYzY4MDAwX18pIFwKKworLy8gTW90b3JvbGEgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbiBmb3JtYXQgKDk2IGJpdHMpCisKKy8vIEl0IGlzIHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgSW50ZWwgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbiBmb3JtYXQsCisvLyBleGNlcHQgdGhhdCAxKSBpdCBpcyBiaWctZW5kaWFuLCAyKSB0aGUgM3JkIGFuZCA0dGggYnl0ZSBhcmUgcGFkZGluZywgYW5kCisvLyAzKSB0aGUgZmxhZyBiaXQgaXMgbm90IHNldCBmb3IgaW5maW5pdHkKKwordGVtcGxhdGU8Pgorc3RydWN0IGZwX3RyYWl0c19ub25fbmF0aXZlPGxvbmcgZG91YmxlLCBleHRlbmRlZF9kb3VibGVfcHJlY2lzaW9uPgoreworICAgIHR5cGVkZWYgaWVlZV9jb3B5X2xlYWRpbmdfYml0c190YWcgbWV0aG9kOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBzaWduICAgICAgICA9IDB4ODAwMDAwMDB1KTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIGV4cG9uZW50ICAgID0gMHg3ZmZmMDAwMCk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBmbGFnICAgICAgICA9IDB4MDAwMDgwMDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbmlmaWNhbmQgPSAweDAwMDA3ZmZmKTsKKworICAgIC8vIGNvcHkgMXN0LCAybmQsIDV0aCBhbmQgNnRoIGJ5dGUuIDNyZCBhbmQgNHRoIGJ5dGUgYXJlIHBhZGRpbmcuCisKKyAgICB0eXBlZGVmIHVpbnQzMl90IGJpdHM7CisKKyAgICBzdGF0aWMgdm9pZCBnZXRfYml0cyhsb25nIGRvdWJsZSB4LCB1aW50MzJfdCYgYSkKKyAgICB7CisgICAgICAgIHN0ZDo6bWVtY3B5KCZhLCAmeCwgMik7CisgICAgICAgIHN0ZDo6bWVtY3B5KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KCZhKSArIDIsCisgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigmeCkgKyA0LCAyKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzZXRfYml0cyhsb25nIGRvdWJsZSYgeCwgdWludDMyX3QgYSkKKyAgICB7CisgICAgICAgIHN0ZDo6bWVtY3B5KCZ4LCAmYSwgMik7CisgICAgICAgIHN0ZDo6bWVtY3B5KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KCZ4KSArIDQsCisgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPigmYSkgKyAyLCAyKTsKKyAgICB9Cit9OworCisKKy8vIGxvbmcgZG91YmxlICg+NjQgYml0cyksIEFsbCBvdGhlciBwcm9jZXNzb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNlbHNlCisKKy8vIElFRUUgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbiBmb3JtYXQgd2l0aCAxNSBleHBvbmVudCBiaXRzICgxMjggYml0cykKKwordGVtcGxhdGU8Pgorc3RydWN0IGZwX3RyYWl0c19ub25fbmF0aXZlPGxvbmcgZG91YmxlLCBleHRlbmRlZF9kb3VibGVfcHJlY2lzaW9uPgoreworICAgIHR5cGVkZWYgaWVlZV9jb3B5X2xlYWRpbmdfYml0c190YWcgbWV0aG9kOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBzaWduICAgICAgICA9IDB4ODAwMDAwMDB1KTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodWludDMyX3QsIGV4cG9uZW50ICAgID0gMHg3ZmZmMDAwMCk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVpbnQzMl90LCBmbGFnICAgICAgICA9IDB4MDAwMDAwMDApOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1aW50MzJfdCwgc2lnbmlmaWNhbmQgPSAweDAwMDBmZmZmKTsKKworICAgIHR5cGVkZWYgdWludDMyX3QgYml0czsKKworICAgIHN0YXRpYyB2b2lkIGdldF9iaXRzKGxvbmcgZG91YmxlIHgsIHVpbnQzMl90JiBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkoJmEsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KCZ4KSArIG9mZnNldF8sIDQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNldF9iaXRzKGxvbmcgZG91YmxlJiB4LCB1aW50MzJfdCBhKQorICAgIHsKKyAgICAgICAgc3RkOjptZW1jcHkocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBjaGFyKj4oJngpICsgb2Zmc2V0XywgJmEsIDQpOworICAgIH0KKworcHJpdmF0ZToKKworI2lmIGRlZmluZWQoQk9PU1RfQklHX0VORElBTikKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBvZmZzZXRfID0gMCk7CisjZWxpZiBkZWZpbmVkKEJPT1NUX0xJVFRMRV9FTkRJQU4pCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgb2Zmc2V0XyA9IDEyKTsKKyNlbHNlCisgICAgQk9PU1RfU1RBVElDX0FTU0VSVChmYWxzZSk7CisjZW5kaWYKK307CisKKyNlbmRpZgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBzaXplX3RvX3ByZWNpc2lvbiBpcyBhIHR5cGUgc3dpdGNoIGZvciBjb252ZXJ0aW5nIGEgQysrIGZsb2F0aW5nIHBvaW50IHR5cGUKKy8vIHRvIHRoZSBjb3JyZXNwb25kaW5nIHByZWNpc2lvbiB0eXBlLgorCit0ZW1wbGF0ZTxpbnQgbiwgYm9vbCBmcD4gc3RydWN0IHNpemVfdG9fcHJlY2lzaW9uCit7CisgICB0eXBlZGVmIHVua25vd25fcHJlY2lzaW9uIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzaXplX3RvX3ByZWNpc2lvbjw0LCB0cnVlPgoreworICAgIHR5cGVkZWYgc2luZ2xlX3ByZWNpc2lvbiB0eXBlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2l6ZV90b19wcmVjaXNpb248OCwgdHJ1ZT4KK3sKKyAgICB0eXBlZGVmIGRvdWJsZV9wcmVjaXNpb24gdHlwZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNpemVfdG9fcHJlY2lzaW9uPDEwLCB0cnVlPgoreworICAgIHR5cGVkZWYgZXh0ZW5kZWRfZG91YmxlX3ByZWNpc2lvbiB0eXBlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2l6ZV90b19wcmVjaXNpb248MTIsIHRydWU+Cit7CisgICAgdHlwZWRlZiBleHRlbmRlZF9kb3VibGVfcHJlY2lzaW9uIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzaXplX3RvX3ByZWNpc2lvbjwxNiwgdHJ1ZT4KK3sKKyAgICB0eXBlZGVmIGV4dGVuZGVkX2RvdWJsZV9wcmVjaXNpb24gdHlwZTsKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gRmlndXJlIG91dCB3aGV0aGVyIHRvIHVzZSBuYXRpdmUgY2xhc3NpZmljYXRpb24gZnVuY3Rpb25zIGJhc2VkIG9uCisvLyB3aGV0aGVyIFQgaXMgYSBidWlsdCBpbiBmbG9hdGluZyBwb2ludCB0eXBlIG9yIG5vdDoKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBzZWxlY3RfbmF0aXZlCit7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHNpemVfdG9fcHJlY2lzaW9uPHNpemVvZihUKSwgOjpuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnZhbHVlPjo6dHlwZSBwcmVjaXNpb247CisgICAgdHlwZWRlZiBmcF90cmFpdHNfbm9uX25hdGl2ZTxULCBwcmVjaXNpb24+IHR5cGU7Cit9OwordGVtcGxhdGU8Pgorc3RydWN0IHNlbGVjdF9uYXRpdmU8ZmxvYXQ+Cit7CisgICAgdHlwZWRlZiBmcF90cmFpdHNfbmF0aXZlPGZsb2F0PiB0eXBlOworfTsKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZWxlY3RfbmF0aXZlPGRvdWJsZT4KK3sKKyAgICB0eXBlZGVmIGZwX3RyYWl0c19uYXRpdmU8ZG91YmxlPiB0eXBlOworfTsKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZWxlY3RfbmF0aXZlPGxvbmcgZG91YmxlPgoreworICAgIHR5cGVkZWYgZnBfdHJhaXRzX25hdGl2ZTxsb25nIGRvdWJsZT4gdHlwZTsKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIGZwX3RyYWl0cyBpcyBhIHR5cGUgc3dpdGNoIHRoYXQgc2VsZWN0cyB0aGUgcmlnaHQgZnBfdHJhaXRzX25vbl9uYXRpdmUKKworI2lmIChkZWZpbmVkKEJPT1NUX01BVEhfVVNFX0M5OSkgJiYgIShkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPCA0KSkpIFwKKyAgICYmICFkZWZpbmVkKF9faHB1eCkgXAorICAgJiYgIWRlZmluZWQoX19ERUNDWFgpXAorICAgJiYgIWRlZmluZWQoX19vc2ZfXykgXAorICAgJiYgIWRlZmluZWQoX19TR0lfU1RMX1BPUlQpICYmICFkZWZpbmVkKF9TVExQT1JUX1ZFUlNJT04pXAorICAgJiYgIWRlZmluZWQoQk9PU1RfTUFUSF9ESVNBQkxFX1NURF9GUENMQVNTSUZZKQorIyAgZGVmaW5lIEJPT1NUX01BVEhfVVNFX1NURF9GUENMQVNTSUZZCisjZW5kaWYKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGZwX3RyYWl0cworeworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBzaXplX3RvX3ByZWNpc2lvbjxzaXplb2YoVCksIDo6bmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZT46OnR5cGUgcHJlY2lzaW9uOworI2lmIGRlZmluZWQoQk9PU1RfTUFUSF9VU0VfU1REX0ZQQ0xBU1NJRlkpICYmICFkZWZpbmVkKEJPT1NUX01BVEhfRElTQUJMRV9TVERfRlBDTEFTU0lGWSkKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdF9uYXRpdmU8VD46OnR5cGUgdHlwZTsKKyNlbHNlCisgICAgdHlwZWRlZiBmcF90cmFpdHNfbm9uX25hdGl2ZTxULCBwcmVjaXNpb24+IHR5cGU7CisjZW5kaWYKKyAgICB0eXBlZGVmIGZwX3RyYWl0c19ub25fbmF0aXZlPFQsIHByZWNpc2lvbj4gc2lnbl9jaGFuZ2VfdHlwZTsKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK30gICAvLyBuYW1lc3BhY2UgZGV0YWlsCit9ICAgLy8gbmFtZXNwYWNlIG1hdGgKK30gICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZGV0YWlsL3JvdW5kX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZGV0YWlsL3JvdW5kX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkOTM5MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9kZXRhaWwvcm91bmRfZndkLmhwcApAQCAtMCwwICsxLDkzIEBACisvLyBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDguCisKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0CisvLyBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9NQVRIX1NQRUNJQUxfUk9VTkRfRldEX0hQUAorI2RlZmluZSBCT09TVF9NQVRIX1NQRUNJQUxfUk9VTkRfRldEX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3Rvb2xzL3Byb21vdGlvbi5ocHA+CisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSBvbmNlCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICBuYW1lc3BhY2UgbWF0aAorICAgeyAKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgdHJ1bmMoY29uc3QgVCYgdiwgY29uc3QgUG9saWN5JiBwb2wpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHRydW5jKGNvbnN0IFQmIHYpOworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIGludCBpdHJ1bmMoY29uc3QgVCYgdiwgY29uc3QgUG9saWN5JiBwb2wpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBpbnQgaXRydW5jKGNvbnN0IFQmIHYpOworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIGxvbmcgbHRydW5jKGNvbnN0IFQmIHYsIGNvbnN0IFBvbGljeSYgcG9sKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgbG9uZyBsdHJ1bmMoY29uc3QgVCYgdik7CisjaWZkZWYgQk9PU1RfSEFTX0xPTkdfTE9ORworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSBsbHRydW5jKGNvbnN0IFQmIHYsIGNvbnN0IFBvbGljeSYgcG9sKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlIGxsdHJ1bmMoY29uc3QgVCYgdik7CisjZW5kaWYKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHJvdW5kKGNvbnN0IFQmIHYsIGNvbnN0IFBvbGljeSYgcG9sKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSByb3VuZChjb25zdCBUJiB2KTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICBpbnQgaXJvdW5kKGNvbnN0IFQmIHYsIGNvbnN0IFBvbGljeSYgcG9sKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgaW50IGlyb3VuZChjb25zdCBUJiB2KTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICBsb25nIGxyb3VuZChjb25zdCBUJiB2LCBjb25zdCBQb2xpY3kmIHBvbCk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIGxvbmcgbHJvdW5kKGNvbnN0IFQmIHYpOworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgbGxyb3VuZChjb25zdCBUJiB2LCBjb25zdCBQb2xpY3kmIHBvbCk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSBsbHJvdW5kKGNvbnN0IFQmIHYpOworI2VuZGlmCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgVCBtb2RmKGNvbnN0IFQmIHYsIFQqIGlwYXJ0LCBjb25zdCBQb2xpY3kmIHBvbCk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIFQgbW9kZihjb25zdCBUJiB2LCBUKiBpcGFydCk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgVCBtb2RmKGNvbnN0IFQmIHYsIGludCogaXBhcnQsIGNvbnN0IFBvbGljeSYgcG9sKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgVCBtb2RmKGNvbnN0IFQmIHYsIGludCogaXBhcnQpOworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIFQgbW9kZihjb25zdCBUJiB2LCBsb25nKiBpcGFydCwgY29uc3QgUG9saWN5JiBwb2wpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBUIG1vZGYoY29uc3QgVCYgdiwgbG9uZyogaXBhcnQpOworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICBUIG1vZGYoY29uc3QgVCYgdiwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlKiBpcGFydCwgY29uc3QgUG9saWN5JiBwb2wpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBUIG1vZGYoY29uc3QgVCYgdiwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlKiBpcGFydCk7CisjZW5kaWYKKworICAgfQorfQorCisjdW5kZWYgQk9PU1RfTUFUSF9TVERfVVNJTkcKKyNkZWZpbmUgQk9PU1RfTUFUSF9TVERfVVNJTkcgQk9PU1RfTUFUSF9TVERfVVNJTkdfQ09SRVwKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjpyb3VuZDtcCisgICB1c2luZyBuZG5ib29zdDo6bWF0aDo6aXJvdW5kO1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjpscm91bmQ7XAorICAgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6OnRydW5jO1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjppdHJ1bmM7XAorICAgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6Omx0cnVuYztcCisgICB1c2luZyBuZG5ib29zdDo6bWF0aDo6bW9kZjsKKworCisjZW5kaWYgLy8gQk9PU1RfTUFUSF9TUEVDSUFMX1JPVU5EX0ZXRF9IUFAKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2ZwY2xhc3NpZnkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2ZwY2xhc3NpZnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZWVhNTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvZnBjbGFzc2lmeS5ocHAKQEAgLTAsMCArMSw2MDYgQEAKKy8vICBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUtMjAwOC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCBKb2hhbiBSYWRlCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9NQVRIX0ZQQ0xBU1NJRllfSFBQCisjZGVmaW5lIEJPT1NUX01BVEhfRlBDTEFTU0lGWV9IUFAKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvY21hdGguaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbWF0aC90b29scy9yZWFsX2Nhc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0aW5nX3BvaW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL21hdGhfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL2RldGFpbC9mcF90cmFpdHMuaHBwPgorLyohCisgIFxmaWxlIGZwY2xhc3NpZnkuaHBwCisgIFxicmllZiBDbGFzc2lmeSBmbG9hdGluZy1wb2ludCB2YWx1ZSBhcyBub3JtYWwsIHN1Ym5vcm1hbCwgemVybywgaW5maW5pdGUsIG9yIE5hTi4KKyAgXHZlcnNpb24gMS4wCisgIFxhdXRob3IgSm9obiBNYWRkb2NrCisgKi8KKworLyoKKworMS4gSWYgdGhlIHBsYXRmb3JtIGlzIEM5OSBjb21wbGlhbnQsIHRoZW4gdGhlIG5hdGl2ZSBmbG9hdGluZyBwb2ludAorY2xhc3NpZmljYXRpb24gZnVuY3Rpb25zIGFyZSB1c2VkLiAgSG93ZXZlciwgbm90ZSB0aGF0IHdlIG11c3Qgb25seQorZGVmaW5lIHRoZSBmdW5jdGlvbnMgd2hpY2ggY2FsbCBzdGQ6OmZwY2xhc3NpZnkgZXRjIGlmIHRoYXQgZnVuY3Rpb24KK3JlYWxseSBkb2VzIGV4aXN0OiBvdGhlcndpc2UgYSBjb21waWxlciBtYXkgcmVqZWN0IHRoZSBjb2RlIGV2ZW4gdGhvdWdoCit0aGUgdGVtcGxhdGUgaXMgbmV2ZXIgaW5zdGFudGlhdGVkLgorCisyLiBJZiB0aGUgcGxhdGZvcm0gaXMgbm90IEM5OSBjb21wbGlhbnQsIGFuZCB0aGUgYmluYXJ5IGZvcm1hdCBmb3IKK2EgZmxvYXRpbmcgcG9pbnQgdHlwZSAoZmxvYXQsIGRvdWJsZSBvciBsb25nIGRvdWJsZSkgY2FuIGJlIGRldGVybWluZWQKK2F0IGNvbXBpbGUgdGltZSwgdGhlbiB0aGUgZm9sbG93aW5nIGFsZ29yaXRobSBpcyB1c2VkOgorCisgICAgICAgIElmIGFsbCBleHBvbmVudCBiaXRzLCB0aGUgZmxhZyBiaXQgKGlmIHRoZXJlIGlzIG9uZSksCisgICAgICAgIGFuZCBhbGwgc2lnbmlmaWNhbmQgYml0cyBhcmUgMCwgdGhlbiB0aGUgbnVtYmVyIGlzIHplcm8uCisKKyAgICAgICAgSWYgYWxsIGV4cG9uZW50IGJpdHMgYW5kIHRoZSBmbGFnIGJpdCAoaWYgdGhlcmUgaXMgb25lKSBhcmUgMCwKKyAgICAgICAgYW5kIGF0IGxlYXN0IG9uZSBzaWduaWZpY2FuZCBiaXQgaXMgMSwgdGhlbiB0aGUgbnVtYmVyIGlzIHN1Ym5vcm1hbC4KKworICAgICAgICBJZiBhbGwgZXhwb25lbnQgYml0cyBhcmUgMSBhbmQgYWxsIHNpZ25pZmljYW5kIGJpdHMgYXJlIDAsCisgICAgICAgIHRoZW4gdGhlIG51bWJlciBpcyBpbmZpbml0eS4KKworICAgICAgICBJZiBhbGwgZXhwb25lbnQgYml0cyBhcmUgMSBhbmQgYXQgbGVhc3Qgb25lIHNpZ25pZmljYW5kIGJpdCBpcyAxLAorICAgICAgICB0aGVuIHRoZSBudW1iZXIgaXMgYSBub3QtYS1udW1iZXIuCisKKyAgICAgICAgT3RoZXJ3aXNlIHRoZSBudW1iZXIgaXMgbm9ybWFsLgorCisgICAgICAgIFRoaXMgYWxnb3JpdGhtIHdvcmtzIGZvciB0aGUgSUVFRSA3NTQgcmVwcmVzZW50YXRpb24sCisgICAgICAgIGFuZCBhbHNvIGZvciBzZXZlcmFsIG5vbiBJRUVFIDc1NCBmb3JtYXRzLgorCisgICAgTW9zdCBmb3JtYXRzIGhhdmUgdGhlIHN0cnVjdHVyZQorICAgICAgICBzaWduIGJpdCArIGV4cG9uZW50IGJpdHMgKyBzaWduaWZpY2FuZCBiaXRzLgorCisgICAgQSBmZXcgaGF2ZSB0aGUgc3RydWN0dXJlCisgICAgICAgIHNpZ24gYml0ICsgZXhwb25lbnQgYml0cyArIGZsYWcgYml0ICsgc2lnbmlmaWNhbmQgYml0cy4KKyAgICBUaGUgZmxhZyBiaXQgaXMgMCBmb3IgemVybyBhbmQgc3Vibm9ybWFsIG51bWJlcnMsCisgICAgICAgIGFuZCAxIGZvciBub3JtYWwgbnVtYmVycyBhbmQgTmFOLgorICAgICAgICBJdCBpcyAwIChNb3Rvcm9sYSA2OEspIG9yIDEgKEludGVsKSBmb3IgaW5maW5pdHkuCisKKyAgICBUbyBnZXQgdGhlIGJpdHMsIHRoZSBmb3VyIG9yIGVpZ2h0IG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZXMgYXJlIGNvcGllZAorICAgIGludG8gYW4gdWludDMyX3Qgb3IgdWludDY0X3QgYW5kIGJpdCBtYXNrcyBhcmUgYXBwbGllZC4KKyAgICBUaGlzIGNvdmVycyBhbGwgdGhlIGV4cG9uZW50IGJpdHMgYW5kIHRoZSBmbGFnIGJpdCAoaWYgdGhlcmUgaXMgb25lKSwKKyAgICBidXQgbm90IGFsd2F5cyBhbGwgdGhlIHNpZ25pZmljYW5kIGJpdHMuCisgICAgU29tZSBvZiB0aGUgZnVuY3Rpb25zIGJlbG93IGhhdmUgdHdvIGltcGxlbWVudGF0aW9ucywKKyAgICBkZXBlbmRpbmcgb24gd2hldGhlciBhbGwgdGhlIHNpZ25pZmljYW5kIGJpdHMgYXJlIGNvcGllZCBvciBub3QuCisKKzMuIElmIHRoZSBwbGF0Zm9ybSBpcyBub3QgQzk5IGNvbXBsaWFudCwgYW5kIHRoZSBiaW5hcnkgZm9ybWF0IGZvcgorYSBmbG9hdGluZyBwb2ludCB0eXBlIChmbG9hdCwgZG91YmxlIG9yIGxvbmcgZG91YmxlKSBjYW4gbm90IGJlIGRldGVybWluZWQKK2F0IGNvbXBpbGUgdGltZSwgdGhlbiBjb21wYXJpc29uIHdpdGggc3RkOjpudW1lcmljX2xpbWl0cyB2YWx1ZXMKK2lzIHVzZWQuCisKKyovCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykKKyNpbmNsdWRlIDxmbG9hdC5oPgorI2VuZGlmCisKKyNpZmRlZiBCT09TVF9OT19TVERDX05BTUVTUEFDRQorICBuYW1lc3BhY2Ugc3RkeyB1c2luZyA6OmFiczsgdXNpbmcgOjpmYWJzOyB9CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0eworCisvLworLy8gVGhpcyBtdXN0IG5vdCBiZSBsb2NhdGVkIGluIGFueSBuYW1lc3BhY2UgdW5kZXIgbmRuYm9vc3Q6Om1hdGgKKy8vIG90aGVyd2lzZSB3ZSBjYW4gZ2V0IGludG8gYW4gaW5maW5pdGUgbG9vcCBpZiBpc25hbiBpcworLy8gYSAjZGVmaW5lIGZvciAiaXNuYW4iICEKKy8vCituYW1lc3BhY2UgbWF0aF9kZXRhaWx7CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQ4MDApCisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgYm9vbCBpc19uYW5faGVscGVyKFQgdCwgY29uc3QgbmRuYm9vc3Q6OnRydWVfdHlwZSYpCit7CisjaWZkZWYgaXNuYW4KKyAgIHJldHVybiBpc25hbih0KTsKKyNlbGlmIGRlZmluZWQoQk9PU1RfTUFUSF9ESVNBQkxFX1NURF9GUENMQVNTSUZZKSB8fCAhZGVmaW5lZChCT09TVF9IQVNfRlBDTEFTU0lGWSkKKyAgICh2b2lkKXQ7CisgICByZXR1cm4gZmFsc2U7CisjZWxzZSAvLyBCT09TVF9IQVNfRlBDTEFTU0lGWQorICAgcmV0dXJuIChCT09TVF9GUENMQVNTSUZZX1BSRUZJWCBmcGNsYXNzaWZ5KHQpID09IChpbnQpRlBfTkFOKTsKKyNlbmRpZgorfQorCisjaWZkZWYgQk9PU1RfTVNWQworI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBib29sIGlzX25hbl9oZWxwZXIoVCwgY29uc3QgbmRuYm9vc3Q6OmZhbHNlX3R5cGUmKQoreworICAgcmV0dXJuIGZhbHNlOworfQorCit9CisKK25hbWVzcGFjZSBtYXRoeworCituYW1lc3BhY2UgZGV0YWlseworCisjaWZkZWYgQk9PU1RfTUFUSF9VU0VfU1REX0ZQQ0xBU1NJRlkKK3RlbXBsYXRlIDxjbGFzcyBUPgoraW5saW5lIGludCBmcGNsYXNzaWZ5X2ltcCBCT09TVF9OT19NQUNST19FWFBBTkQoVCB0LCBjb25zdCBuYXRpdmVfdGFnJikKK3sKKyAgIHJldHVybiAoc3RkOjpmcGNsYXNzaWZ5KSh0KTsKK30KKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBpbnQgZnBjbGFzc2lmeV9pbXAgQk9PU1RfTk9fTUFDUk9fRVhQQU5EKFQgdCwgY29uc3QgZ2VuZXJpY190YWc8dHJ1ZT4mKQoreworICAgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX1ZBUklBQkxFKHQpOworCisgICAvLyB3aGVuZXZlciBwb3NzaWJsZSBjaGVjayBmb3IgTmFuJ3MgZmlyc3Q6CisjaWYgZGVmaW5lZChCT09TVF9IQVNfRlBDTEFTU0lGWSkgICYmICFkZWZpbmVkKEJPT1NUX01BVEhfRElTQUJMRV9TVERfRlBDTEFTU0lGWSkKKyAgIGlmKDo6bmRuYm9vc3Q6Om1hdGhfZGV0YWlsOjppc19uYW5faGVscGVyKHQsIDo6bmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+KCkpKQorICAgICAgcmV0dXJuIEZQX05BTjsKKyNlbGlmIGRlZmluZWQoaXNuYW4pCisgICBpZihuZG5ib29zdDo6bWF0aF9kZXRhaWw6OmlzX25hbl9oZWxwZXIodCwgOjpuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD4oKSkpCisgICAgICByZXR1cm4gRlBfTkFOOworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCisgICBpZig6Ol9pc25hbihuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnJlYWxfY2FzdDxkb3VibGU+KHQpKSkKKyAgICAgIHJldHVybiBGUF9OQU47CisjZW5kaWYKKyAgIC8vIHN0ZDo6ZmFicyBicm9rZW4gb24gYSBmZXcgc3lzdGVtcyBlc3BlY2lhbGx5IGZvciBsb25nIGxvbmchISEhCisgICBUIGF0ID0gKHQgPCBUKDApKSA/IC10IDogdDsKKworICAgLy8gVXNlIGEgcHJvY2VzcyBvZiBleGNsdXNpb24gdG8gZmlndXJlIG91dAorICAgLy8gd2hhdCBraW5kIG9mIHR5cGUgd2UgaGF2ZSwgdGhpcyByZWxpZXMgb24KKyAgIC8vIElFRUUgY29uZm9ybWluZyByZWFscyB0aGF0IHdpbGwgdHJlYXQKKyAgIC8vIE5hbidzIGFzIHVub3JkZXJlZC4gIFNvbWUgY29tcGlsZXJzCisgICAvLyBkb24ndCBkbyB0aGlzIG9uY2Ugb3B0aW1pc2F0aW9ucyBhcmUKKyAgIC8vIHR1cm5lZCBvbiwgaGVuY2UgdGhlIGNoZWNrIGZvciBuYW4ncyBhYm92ZS4KKyAgIGlmKGF0IDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgpKCkpCisgICB7CisgICAgICBpZihhdCA+PSAoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWluKSgpKQorICAgICAgICAgcmV0dXJuIEZQX05PUk1BTDsKKyAgICAgIHJldHVybiAoYXQgIT0gMCkgPyBGUF9TVUJOT1JNQUwgOiBGUF9aRVJPOworICAgfQorICAgZWxzZSBpZihhdCA+IChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgpKCkpCisgICAgICByZXR1cm4gRlBfSU5GSU5JVEU7CisgICByZXR1cm4gRlBfTkFOOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBpbnQgZnBjbGFzc2lmeV9pbXAgQk9PU1RfTk9fTUFDUk9fRVhQQU5EKFQgdCwgY29uc3QgZ2VuZXJpY190YWc8ZmFsc2U+JikKK3sKKyNpZmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgaWYoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6aXNfc3BlY2lhbGl6ZWQpCisgICAgICByZXR1cm4gZnBjbGFzc2lmeV9pbXAodCwgZ2VuZXJpY190YWc8dHJ1ZT4oKSk7CisjZW5kaWYKKyAgIC8vCisgICAvLyBBbiB1bmtub3duIHR5cGUgd2l0aCBubyBudW1lcmljX2xpbWl0cyBzdXBwb3J0LAorICAgLy8gc28gd2hhdCBhcmUgd2Ugc3VwcG9zZWQgdG8gZG8gd2UgZG8gaGVyZT8KKyAgIC8vCisgICBCT09TVF9NQVRIX0lOU1RSVU1FTlRfVkFSSUFCTEUodCk7CisKKyAgIHJldHVybiB0ID09IDAgPyBGUF9aRVJPIDogRlBfTk9STUFMOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW50IGZwY2xhc3NpZnlfaW1wIEJPT1NUX05PX01BQ1JPX0VYUEFORChUIHgsIGllZWVfY29weV9hbGxfYml0c190YWcpCit7CisgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKworICAgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX1ZBUklBQkxFKHgpOworCisgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHRyYWl0czo6Yml0cyBhOworICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworICAgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX1ZBUklBQkxFKGEpOworICAgYSAmPSB0cmFpdHM6OmV4cG9uZW50IHwgdHJhaXRzOjpmbGFnIHwgdHJhaXRzOjpzaWduaWZpY2FuZDsKKyAgIEJPT1NUX01BVEhfSU5TVFJVTUVOVF9WQVJJQUJMRSgodHJhaXRzOjpleHBvbmVudCB8IHRyYWl0czo6ZmxhZyB8IHRyYWl0czo6c2lnbmlmaWNhbmQpKTsKKyAgIEJPT1NUX01BVEhfSU5TVFJVTUVOVF9WQVJJQUJMRShhKTsKKworICAgaWYoYSA8PSB0cmFpdHM6OnNpZ25pZmljYW5kKSB7CisgICAgICBpZihhID09IDApCisgICAgICAgICByZXR1cm4gRlBfWkVSTzsKKyAgICAgIGVsc2UKKyAgICAgICAgIHJldHVybiBGUF9TVUJOT1JNQUw7CisgICB9CisKKyAgIGlmKGEgPCB0cmFpdHM6OmV4cG9uZW50KSByZXR1cm4gRlBfTk9STUFMOworCisgICBhICY9IHRyYWl0czo6c2lnbmlmaWNhbmQ7CisgICBpZihhID09IDApIHJldHVybiBGUF9JTkZJTklURTsKKworICAgcmV0dXJuIEZQX05BTjsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2ludCBmcGNsYXNzaWZ5X2ltcCBCT09TVF9OT19NQUNST19FWFBBTkQoVCB4LCBpZWVlX2NvcHlfbGVhZGluZ19iaXRzX3RhZykKK3sKKyAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBmcF90cmFpdHM8VD46OnR5cGUgdHJhaXRzOworCisgICBCT09TVF9NQVRIX0lOU1RSVU1FTlRfVkFSSUFCTEUoeCk7CisKKyAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgdHJhaXRzOjpiaXRzIGE7CisgICB0cmFpdHM6OmdldF9iaXRzKHgsYSk7CisgICBhICY9IHRyYWl0czo6ZXhwb25lbnQgfCB0cmFpdHM6OmZsYWcgfCB0cmFpdHM6OnNpZ25pZmljYW5kOworCisgICBpZihhIDw9IHRyYWl0czo6c2lnbmlmaWNhbmQpIHsKKyAgICAgIGlmKHggPT0gMCkKKyAgICAgICAgIHJldHVybiBGUF9aRVJPOworICAgICAgZWxzZQorICAgICAgICAgcmV0dXJuIEZQX1NVQk5PUk1BTDsKKyAgIH0KKworICAgaWYoYSA8IHRyYWl0czo6ZXhwb25lbnQpIHJldHVybiBGUF9OT1JNQUw7CisKKyAgIGEgJj0gdHJhaXRzOjpzaWduaWZpY2FuZDsKKyAgIHRyYWl0czo6c2V0X2JpdHMoeCxhKTsKKyAgIGlmKHggPT0gMCkgcmV0dXJuIEZQX0lORklOSVRFOworCisgICByZXR1cm4gRlBfTkFOOworfQorCisjaWYgZGVmaW5lZChCT09TVF9NQVRIX1VTRV9TVERfRlBDTEFTU0lGWSkgJiYgKGRlZmluZWQoQk9PU1RfTUFUSF9OT19OQVRJVkVfTE9OR19ET1VCTEVfRlBfQ0xBU1NJRlkpIHx8IGRlZmluZWQoQk9PU1RfTUFUSF9OT19MT05HX0RPVUJMRV9NQVRIX0ZVTkNUSU9OUykpCitpbmxpbmUgaW50IGZwY2xhc3NpZnlfaW1wIEJPT1NUX05PX01BQ1JPX0VYUEFORChsb25nIGRvdWJsZSB0LCBjb25zdCBuYXRpdmVfdGFnJikKK3sKKyAgIHJldHVybiBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjpmcGNsYXNzaWZ5X2ltcCh0LCBnZW5lcmljX3RhZzx0cnVlPigpKTsKK30KKyNlbmRpZgorCit9ICAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK3RlbXBsYXRlIDxjbGFzcyBUPgoraW5saW5lIGludCBmcGNsYXNzaWZ5IEJPT1NUX05PX01BQ1JPX0VYUEFORChUIHQpCit7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgdHJhaXRzOjptZXRob2QgbWV0aG9kOworICAgdHlwZWRlZiB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHZhbHVlX3R5cGU7CisjaWZkZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyAgIGlmKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmlzX3NwZWNpYWxpemVkICYmIGRldGFpbDo6aXNfZ2VuZXJpY190YWdfZmFsc2Uoc3RhdGljX2Nhc3Q8bWV0aG9kKj4oMCkpKQorICAgICAgcmV0dXJuIGRldGFpbDo6ZnBjbGFzc2lmeV9pbXAoc3RhdGljX2Nhc3Q8dmFsdWVfdHlwZT4odCksIGRldGFpbDo6Z2VuZXJpY190YWc8dHJ1ZT4oKSk7CisgICByZXR1cm4gZGV0YWlsOjpmcGNsYXNzaWZ5X2ltcChzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPih0KSwgbWV0aG9kKCkpOworI2Vsc2UKKyAgIHJldHVybiBkZXRhaWw6OmZwY2xhc3NpZnlfaW1wKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHQpLCBtZXRob2QoKSk7CisjZW5kaWYKK30KKworI2lmZGVmIEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMKK3RlbXBsYXRlIDw+CitpbmxpbmUgaW50IGZwY2xhc3NpZnk8bG9uZyBkb3VibGU+IEJPT1NUX05PX01BQ1JPX0VYUEFORChsb25nIGRvdWJsZSB0KQoreworICAgdHlwZWRlZiBkZXRhaWw6OmZwX3RyYWl0czxsb25nIGRvdWJsZT46OnR5cGUgdHJhaXRzOworICAgdHlwZWRlZiB0cmFpdHM6Om1ldGhvZCBtZXRob2Q7CisgICB0eXBlZGVmIGxvbmcgZG91YmxlIHZhbHVlX3R5cGU7CisjaWZkZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyAgIGlmKHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBkb3VibGU+Ojppc19zcGVjaWFsaXplZCAmJiBkZXRhaWw6OmlzX2dlbmVyaWNfdGFnX2ZhbHNlKHN0YXRpY19jYXN0PG1ldGhvZCo+KDApKSkKKyAgICAgIHJldHVybiBkZXRhaWw6OmZwY2xhc3NpZnlfaW1wKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHQpLCBkZXRhaWw6OmdlbmVyaWNfdGFnPHRydWU+KCkpOworICAgcmV0dXJuIGRldGFpbDo6ZnBjbGFzc2lmeV9pbXAoc3RhdGljX2Nhc3Q8dmFsdWVfdHlwZT4odCksIG1ldGhvZCgpKTsKKyNlbHNlCisgICByZXR1cm4gZGV0YWlsOjpmcGNsYXNzaWZ5X2ltcChzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPih0KSwgbWV0aG9kKCkpOworI2VuZGlmCit9CisjZW5kaWYKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZmRlZiBCT09TVF9NQVRIX1VTRV9TVERfRlBDTEFTU0lGWQorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNmaW5pdGVfaW1wbChUIHgsIG5hdGl2ZV90YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChzdGQ6OmlzZmluaXRlKSh4KTsKKyAgICB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNmaW5pdGVfaW1wbChUIHgsIGdlbmVyaWNfdGFnPHRydWU+IGNvbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiB4ID49IC0oc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KSgpCisgICAgICAgICAgICAmJiB4IDw9IChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgpKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBpbmxpbmUgYm9vbCBpc2Zpbml0ZV9pbXBsKFQgeCwgZ2VuZXJpY190YWc8ZmFsc2U+IGNvbnN0JikKKyAgICB7CisjaWZkZWYgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyAgICAgIGlmKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmlzX3NwZWNpYWxpemVkKQorICAgICAgICAgcmV0dXJuIGlzZmluaXRlX2ltcGwoeCwgZ2VuZXJpY190YWc8dHJ1ZT4oKSk7CisjZW5kaWYKKyAgICAgICAodm9pZCl4OyAvLyB3YXJuaW5nIHN1cHJlc3Npb24uCisgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBpbmxpbmUgYm9vbCBpc2Zpbml0ZV9pbXBsKFQgeCwgaWVlZV90YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRldGFpbDo6ZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworICAgICAgICBhICY9IHRyYWl0czo6ZXhwb25lbnQ7CisgICAgICAgIHJldHVybiBhICE9IHRyYWl0czo6ZXhwb25lbnQ7CisgICAgfQorCisjaWYgZGVmaW5lZChCT09TVF9NQVRIX1VTRV9TVERfRlBDTEFTU0lGWSkgJiYgZGVmaW5lZChCT09TVF9NQVRIX05PX05BVElWRV9MT05HX0RPVUJMRV9GUF9DTEFTU0lGWSkKK2lubGluZSBib29sIGlzZmluaXRlX2ltcGwgQk9PU1RfTk9fTUFDUk9fRVhQQU5EKGxvbmcgZG91YmxlIHQsIGNvbnN0IG5hdGl2ZV90YWcmKQoreworICAgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpkZXRhaWw6OmlzZmluaXRlX2ltcGwodCwgZ2VuZXJpY190YWc8dHJ1ZT4oKSk7Cit9CisjZW5kaWYKKworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lIGJvb2wgKGlzZmluaXRlKShUIHgpCit7IC8vITwgXGJyaWVmIHJldHVybiB0cnVlIGlmIGZsb2F0aW5nLXBvaW50IHR5cGUgdCBpcyBmaW5pdGUuCisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgdHJhaXRzOjptZXRob2QgbWV0aG9kOworICAgLy8gdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnR5cGUgZnBfdGFnOworICAgdHlwZWRlZiB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHZhbHVlX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjppc2Zpbml0ZV9pbXBsKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisKKyNpZmRlZiBCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TCit0ZW1wbGF0ZTw+CitpbmxpbmUgYm9vbCAoaXNmaW5pdGUpKGxvbmcgZG91YmxlIHgpCit7IC8vITwgXGJyaWVmIHJldHVybiB0cnVlIGlmIGZsb2F0aW5nLXBvaW50IHR5cGUgdCBpcyBmaW5pdGUuCisgICB0eXBlZGVmIGRldGFpbDo6ZnBfdHJhaXRzPGxvbmcgZG91YmxlPjo6dHlwZSB0cmFpdHM7CisgICB0eXBlZGVmIHRyYWl0czo6bWV0aG9kIG1ldGhvZDsKKyAgIHR5cGVkZWYgbmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50PGxvbmcgZG91YmxlPjo6dHlwZSBmcF90YWc7CisgICB0eXBlZGVmIGxvbmcgZG91YmxlIHZhbHVlX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjppc2Zpbml0ZV9pbXBsKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZmRlZiBCT09TVF9NQVRIX1VTRV9TVERfRlBDTEFTU0lGWQorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNub3JtYWxfaW1wbChUIHgsIG5hdGl2ZV90YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChzdGQ6Omlzbm9ybWFsKSh4KTsKKyAgICB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNub3JtYWxfaW1wbChUIHgsIGdlbmVyaWNfdGFnPHRydWU+IGNvbnN0JikKKyAgICB7CisgICAgICAgIGlmKHggPCAwKSB4ID0gLXg7CisgICAgICAgIHJldHVybiB4ID49IChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptaW4pKCkKKyAgICAgICAgICAgICYmIHggPD0gKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCkoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIGlubGluZSBib29sIGlzbm9ybWFsX2ltcGwoVCB4LCBnZW5lcmljX3RhZzxmYWxzZT4gY29uc3QmKQorICAgIHsKKyNpZmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgICAgaWYoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6aXNfc3BlY2lhbGl6ZWQpCisgICAgICAgICByZXR1cm4gaXNub3JtYWxfaW1wbCh4LCBnZW5lcmljX3RhZzx0cnVlPigpKTsKKyNlbmRpZgorICAgICAgIHJldHVybiAhKHggPT0gMCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBpbmxpbmUgYm9vbCBpc25vcm1hbF9pbXBsKFQgeCwgaWVlZV90YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRldGFpbDo6ZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworICAgICAgICBhICY9IHRyYWl0czo6ZXhwb25lbnQgfCB0cmFpdHM6OmZsYWc7CisgICAgICAgIHJldHVybiAoYSAhPSAwKSAmJiAoYSA8IHRyYWl0czo6ZXhwb25lbnQpOworICAgIH0KKworI2lmIGRlZmluZWQoQk9PU1RfTUFUSF9VU0VfU1REX0ZQQ0xBU1NJRlkpICYmIGRlZmluZWQoQk9PU1RfTUFUSF9OT19OQVRJVkVfTE9OR19ET1VCTEVfRlBfQ0xBU1NJRlkpCitpbmxpbmUgYm9vbCBpc25vcm1hbF9pbXBsIEJPT1NUX05PX01BQ1JPX0VYUEFORChsb25nIGRvdWJsZSB0LCBjb25zdCBuYXRpdmVfdGFnJikKK3sKKyAgIHJldHVybiBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjppc25vcm1hbF9pbXBsKHQsIGdlbmVyaWNfdGFnPHRydWU+KCkpOworfQorI2VuZGlmCisKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZSBib29sIChpc25vcm1hbCkoVCB4KQoreworICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisgICB0eXBlZGVmIHR5cGVuYW1lIHRyYWl0czo6bWV0aG9kIG1ldGhvZDsKKyAgIC8vdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnR5cGUgZnBfdGFnOworICAgdHlwZWRlZiB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHZhbHVlX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjppc25vcm1hbF9pbXBsKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisKKyNpZmRlZiBCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TCit0ZW1wbGF0ZTw+CitpbmxpbmUgYm9vbCAoaXNub3JtYWwpKGxvbmcgZG91YmxlIHgpCit7CisgICB0eXBlZGVmIGRldGFpbDo6ZnBfdHJhaXRzPGxvbmcgZG91YmxlPjo6dHlwZSB0cmFpdHM7CisgICB0eXBlZGVmIHRyYWl0czo6bWV0aG9kIG1ldGhvZDsKKyAgIHR5cGVkZWYgbmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50PGxvbmcgZG91YmxlPjo6dHlwZSBmcF90YWc7CisgICB0eXBlZGVmIGxvbmcgZG91YmxlIHZhbHVlX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjppc25vcm1hbF9pbXBsKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZmRlZiBCT09TVF9NQVRIX1VTRV9TVERfRlBDTEFTU0lGWQorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNpbmZfaW1wbChUIHgsIG5hdGl2ZV90YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChzdGQ6OmlzaW5mKSh4KTsKKyAgICB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNpbmZfaW1wbChUIHgsIGdlbmVyaWNfdGFnPHRydWU+IGNvbnN0JikKKyAgICB7CisgICAgICAgICh2b2lkKXg7IC8vIGluIGNhc2UgdGhlIGNvbXBpbGVyIHRoaW5rcyB0aGF0IHggaXMgdW51c2VkIGJlY2F1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxUPjo6aGFzX2luZmluaXR5IGlzIGZhbHNlCisgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpoYXNfaW5maW5pdHkKKyAgICAgICAgICAgICYmICggeCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjppbmZpbml0eSgpCisgICAgICAgICAgICAgICAgIHx8IHggPT0gLXN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmluZmluaXR5KCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNpbmZfaW1wbChUIHgsIGdlbmVyaWNfdGFnPGZhbHNlPiBjb25zdCYpCisgICAgeworI2lmZGVmIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisgICAgICBpZihzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zcGVjaWFsaXplZCkKKyAgICAgICAgIHJldHVybiBpc2luZl9pbXBsKHgsIGdlbmVyaWNfdGFnPHRydWU+KCkpOworI2VuZGlmCisgICAgICAgICh2b2lkKXg7IC8vIHdhcm5pbmcgc3VwcmVzc2lvbi4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNpbmZfaW1wbChUIHgsIGllZWVfY29weV9hbGxfYml0c190YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworICAgICAgICBhICY9IHRyYWl0czo6ZXhwb25lbnQgfCB0cmFpdHM6OnNpZ25pZmljYW5kOworICAgICAgICByZXR1cm4gYSA9PSB0cmFpdHM6OmV4cG9uZW50OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNpbmZfaW1wbChUIHgsIGllZWVfY29weV9sZWFkaW5nX2JpdHNfdGFnIGNvbnN0JikKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBmcF90cmFpdHM8VD46OnR5cGUgdHJhaXRzOworCisgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgdHJhaXRzOjpiaXRzIGE7CisgICAgICAgIHRyYWl0czo6Z2V0X2JpdHMoeCxhKTsKKyAgICAgICAgYSAmPSB0cmFpdHM6OmV4cG9uZW50IHwgdHJhaXRzOjpzaWduaWZpY2FuZDsKKyAgICAgICAgaWYoYSAhPSB0cmFpdHM6OmV4cG9uZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHRyYWl0czo6c2V0X2JpdHMoeCwwKTsKKyAgICAgICAgcmV0dXJuIHggPT0gMDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKEJPT1NUX01BVEhfVVNFX1NURF9GUENMQVNTSUZZKSAmJiBkZWZpbmVkKEJPT1NUX01BVEhfTk9fTkFUSVZFX0xPTkdfRE9VQkxFX0ZQX0NMQVNTSUZZKQoraW5saW5lIGJvb2wgaXNpbmZfaW1wbCBCT09TVF9OT19NQUNST19FWFBBTkQobG9uZyBkb3VibGUgdCwgY29uc3QgbmF0aXZlX3RhZyYpCit7CisgICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmRldGFpbDo6aXNpbmZfaW1wbCh0LCBnZW5lcmljX3RhZzx0cnVlPigpKTsKK30KKyNlbmRpZgorCit9ICAgLy8gbmFtZXNwYWNlIGRldGFpbAorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lIGJvb2wgKGlzaW5mKShUIHgpCit7CisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgdHJhaXRzOjptZXRob2QgbWV0aG9kOworICAgLy8gdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnR5cGUgZnBfdGFnOworICAgdHlwZWRlZiB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHZhbHVlX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjppc2luZl9pbXBsKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisKKyNpZmRlZiBCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TCit0ZW1wbGF0ZTw+CitpbmxpbmUgYm9vbCAoaXNpbmYpKGxvbmcgZG91YmxlIHgpCit7CisgICB0eXBlZGVmIGRldGFpbDo6ZnBfdHJhaXRzPGxvbmcgZG91YmxlPjo6dHlwZSB0cmFpdHM7CisgICB0eXBlZGVmIHRyYWl0czo6bWV0aG9kIG1ldGhvZDsKKyAgIHR5cGVkZWYgbmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50PGxvbmcgZG91YmxlPjo6dHlwZSBmcF90YWc7CisgICB0eXBlZGVmIGxvbmcgZG91YmxlIHZhbHVlX3R5cGU7CisgICByZXR1cm4gZGV0YWlsOjppc2luZl9pbXBsKHN0YXRpY19jYXN0PHZhbHVlX3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZmRlZiBCT09TVF9NQVRIX1VTRV9TVERfRlBDTEFTU0lGWQorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNuYW5faW1wbChUIHgsIG5hdGl2ZV90YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChzdGQ6OmlzbmFuKSh4KTsKKyAgICB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNuYW5faW1wbChUIHgsIGdlbmVyaWNfdGFnPHRydWU+IGNvbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpoYXNfaW5maW5pdHkKKyAgICAgICAgICAgID8gISh4IDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmluZmluaXR5KCkpCisgICAgICAgICAgICA6IHggIT0geDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIGlubGluZSBib29sIGlzbmFuX2ltcGwoVCB4LCBnZW5lcmljX3RhZzxmYWxzZT4gY29uc3QmKQorICAgIHsKKyNpZmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworICAgICAgaWYoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6aXNfc3BlY2lhbGl6ZWQpCisgICAgICAgICByZXR1cm4gaXNuYW5faW1wbCh4LCBnZW5lcmljX3RhZzx0cnVlPigpKTsKKyNlbmRpZgorICAgICAgICAodm9pZCl4OyAvLyB3YXJuaW5nIHN1cHJlc3Npb24KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIGJvb2wgaXNuYW5faW1wbChUIHgsIGllZWVfY29weV9hbGxfYml0c190YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworICAgICAgICBhICY9IHRyYWl0czo6ZXhwb25lbnQgfCB0cmFpdHM6OnNpZ25pZmljYW5kOworICAgICAgICByZXR1cm4gYSA+IHRyYWl0czo6ZXhwb25lbnQ7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBpbmxpbmUgYm9vbCBpc25hbl9pbXBsKFQgeCwgaWVlZV9jb3B5X2xlYWRpbmdfYml0c190YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworCisgICAgICAgIGEgJj0gdHJhaXRzOjpleHBvbmVudCB8IHRyYWl0czo6c2lnbmlmaWNhbmQ7CisgICAgICAgIGlmKGEgPCB0cmFpdHM6OmV4cG9uZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGEgJj0gdHJhaXRzOjpzaWduaWZpY2FuZDsKKyAgICAgICAgdHJhaXRzOjpzZXRfYml0cyh4LGEpOworICAgICAgICByZXR1cm4geCAhPSAwOworICAgIH0KKworfSAgIC8vIG5hbWVzcGFjZSBkZXRhaWwKKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZSBib29sIChpc25hbikoVCB4KQoreyAvLyE8IFxicmllZiByZXR1cm4gdHJ1ZSBpZiBmbG9hdGluZy1wb2ludCB0eXBlIHQgaXMgTmFOIChOb3QgQSBOdW1iZXIpLgorICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisgICB0eXBlZGVmIHR5cGVuYW1lIHRyYWl0czo6bWV0aG9kIG1ldGhvZDsKKyAgIC8vIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp0eXBlIGZwX3RhZzsKKyAgIHJldHVybiBkZXRhaWw6OmlzbmFuX2ltcGwoeCwgbWV0aG9kKCkpOworfQorCisjaWZkZWYgaXNuYW4KK3RlbXBsYXRlIDw+IGlubGluZSBib29sIGlzbmFuIEJPT1NUX05PX01BQ1JPX0VYUEFORDxmbG9hdD4oZmxvYXQgdCl7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoX2RldGFpbDo6aXNfbmFuX2hlbHBlcih0LCBuZG5ib29zdDo6dHJ1ZV90eXBlKCkpOyB9Cit0ZW1wbGF0ZSA8PiBpbmxpbmUgYm9vbCBpc25hbiBCT09TVF9OT19NQUNST19FWFBBTkQ8ZG91YmxlPihkb3VibGUgdCl7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoX2RldGFpbDo6aXNfbmFuX2hlbHBlcih0LCBuZG5ib29zdDo6dHJ1ZV90eXBlKCkpOyB9Cit0ZW1wbGF0ZSA8PiBpbmxpbmUgYm9vbCBpc25hbiBCT09TVF9OT19NQUNST19FWFBBTkQ8bG9uZyBkb3VibGU+KGxvbmcgZG91YmxlIHQpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aF9kZXRhaWw6OmlzX25hbl9oZWxwZXIodCwgbmRuYm9vc3Q6OnRydWVfdHlwZSgpKTsgfQorI2VsaWYgZGVmaW5lZChCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TKQordGVtcGxhdGU8PgoraW5saW5lIGJvb2wgKGlzbmFuKShsb25nIGRvdWJsZSB4KQoreyAvLyE8IFxicmllZiByZXR1cm4gdHJ1ZSBpZiBmbG9hdGluZy1wb2ludCB0eXBlIHQgaXMgTmFOIChOb3QgQSBOdW1iZXIpLgorICAgdHlwZWRlZiBkZXRhaWw6OmZwX3RyYWl0czxsb25nIGRvdWJsZT46OnR5cGUgdHJhaXRzOworICAgdHlwZWRlZiB0cmFpdHM6Om1ldGhvZCBtZXRob2Q7CisgICB0eXBlZGVmIG5kbmJvb3N0Ojppc19mbG9hdGluZ19wb2ludDxsb25nIGRvdWJsZT46OnR5cGUgZnBfdGFnOworICAgcmV0dXJuIGRldGFpbDo6aXNuYW5faW1wbCh4LCBtZXRob2QoKSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbWF0aAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX01BVEhfRlBDTEFTU0lGWV9IUFAKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3NwZWNpYWxfZnVuY3Rpb25zL21hdGhfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9tYXRoX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWViN2I0YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9tYXRoX2Z3ZC5ocHAKQEAgLTAsMCArMSwxNDA4IEBACisvLyBtYXRoX2Z3ZC5ocHAKKworLy8gVE9ETyByZXZpc2UgY29tcGxldGVseSBmb3IgbmV3IGRpc3RyaWJ1dGlvbiBjbGFzc2VzLgorCisvLyBDb3B5cmlnaHQgUGF1bCBBLiBCcmlzdG93IDIwMDYuCisvLyBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDYuCisKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0CisvLyBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gT21uaWJ1cyBsaXN0IG9mIGZvcndhcmQgZGVjbGFyYXRpb25zIG9mIG1hdGggc3BlY2lhbCBmdW5jdGlvbnMuCisKKy8vIElUID0gSW50ZWdlciB0eXBlLgorLy8gUlQgPSBSZWFsIHR5cGUgKGJ1aWx0LWluIGZsb2F0aW5nLXBvaW50IHR5cGVzLCBmbG9hdCwgZG91YmxlLCBsb25nIGRvdWJsZSkgJiBVc2VyIERlZmluZWQgVHlwZXMKKy8vIEFUID0gSW50ZWdlciBvciBSZWFsIHR5cGUKKworI2lmbmRlZiBCT09TVF9NQVRIX1NQRUNJQUxfTUFUSF9GV0RfSFBQCisjZGVmaW5lIEJPT1NUX01BVEhfU1BFQ0lBTF9NQVRIX0ZXRF9IUFAKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9kZXRhaWwvcm91bmRfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3Rvb2xzL3Byb21vdGlvbi5ocHA+IC8vIGZvciBhcmd1bWVudCBwcm9tb3Rpb24uCisjaW5jbHVkZSA8bmRuYm9vc3QvbWF0aC9wb2xpY2llcy9wb2xpY3kuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9jb21wYXJpc29uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvbm9fdHIxL2NvbXBsZXguaHBwPgorCisjZGVmaW5lIEJPT1NUX05PX01BQ1JPX0VYUEFORCAvKiovCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgbmFtZXNwYWNlIG1hdGgKKyAgIHsgLy8gTWF0aCBmdW5jdGlvbnMgKGluIHJvdWdobHkgYWxwaGFiZXRpYyBvcmRlcikuCisKKyAgIC8vIEJldGEgZnVuY3Rpb25zLgorICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMj46OnR5cGUKKyAgICAgICAgIGJldGEoUlQxIGEsIFJUMiBiKTsgLy8gQmV0YSBmdW5jdGlvbiAoMiBhcmd1bWVudHMpLgorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIEE+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBBPjo6dHlwZQorICAgICAgICAgYmV0YShSVDEgYSwgUlQyIGIsIEEgeCk7IC8vIEJldGEgZnVuY3Rpb24gKDMgYXJndW1lbnRzKS4KKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDMsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGJldGEoUlQxIGEsIFJUMiBiLCBSVDMgeCwgY29uc3QgUG9saWN5JiBwb2wpOyAvLyBCZXRhIGZ1bmN0aW9uICgzIGFyZ3VtZW50cykuCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZQorICAgICAgICAgYmV0YWMoUlQxIGEsIFJUMiBiLCBSVDMgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBiZXRhYyhSVDEgYSwgUlQyIGIsIFJUMyB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZQorICAgICAgICAgaWJldGEoUlQxIGEsIFJUMiBiLCBSVDMgeCk7IC8vIEluY29tcGxldGUgYmV0YSBmdW5jdGlvbi4KKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDMsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhKFJUMSBhLCBSVDIgYiwgUlQzIHgsIGNvbnN0IFBvbGljeSYgcG9sKTsgLy8gSW5jb21wbGV0ZSBiZXRhIGZ1bmN0aW9uLgorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFJUMz4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhYyhSVDEgYSwgUlQyIGIsIFJUMyB4KTsgLy8gSW5jb21wbGV0ZSBiZXRhIGNvbXBsZW1lbnQgZnVuY3Rpb24uCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBpYmV0YWMoUlQxIGEsIFJUMiBiLCBSVDMgeCwgY29uc3QgUG9saWN5JiBwb2wpOyAvLyBJbmNvbXBsZXRlIGJldGEgY29tcGxlbWVudCBmdW5jdGlvbi4KKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDIsIFQzLCBUND46OnR5cGUKKyAgICAgICAgIGliZXRhX2ludihUMSBhLCBUMiBiLCBUMyBwLCBUNCogcHkpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMywgVDQ+Ojp0eXBlCisgICAgICAgICBpYmV0YV9pbnYoVDEgYSwgVDIgYiwgVDMgcCwgVDQqIHB5LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZQorICAgICAgICAgaWJldGFfaW52KFJUMSBhLCBSVDIgYiwgUlQzIHApOyAvLyBJbmNvbXBsZXRlIGJldGEgaW52ZXJzZSBmdW5jdGlvbi4KKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDMsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhX2ludihSVDEgYSwgUlQyIGIsIFJUMyBwLCBjb25zdCBQb2xpY3kmKTsgLy8gSW5jb21wbGV0ZSBiZXRhIGludmVyc2UgZnVuY3Rpb24uCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZQorICAgICAgICAgaWJldGFfaW52YShSVDEgYSwgUlQyIGIsIFJUMyBwKTsgLy8gSW5jb21wbGV0ZSBiZXRhIGludmVyc2UgZnVuY3Rpb24uCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBpYmV0YV9pbnZhKFJUMSBhLCBSVDIgYiwgUlQzIHAsIGNvbnN0IFBvbGljeSYpOyAvLyBJbmNvbXBsZXRlIGJldGEgaW52ZXJzZSBmdW5jdGlvbi4KKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBpYmV0YV9pbnZiKFJUMSBhLCBSVDIgYiwgUlQzIHApOyAvLyBJbmNvbXBsZXRlIGJldGEgaW52ZXJzZSBmdW5jdGlvbi4KKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDMsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhX2ludmIoUlQxIGEsIFJUMiBiLCBSVDMgcCwgY29uc3QgUG9saWN5Jik7IC8vIEluY29tcGxldGUgYmV0YSBpbnZlcnNlIGZ1bmN0aW9uLgorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDMsIFQ0Pjo6dHlwZQorICAgICAgICAgaWJldGFjX2ludihUMSBhLCBUMiBiLCBUMyBxLCBUNCogcHkpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMywgVDQ+Ojp0eXBlCisgICAgICAgICBpYmV0YWNfaW52KFQxIGEsIFQyIGIsIFQzIHEsIFQ0KiBweSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFJUMz4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhY19pbnYoUlQxIGEsIFJUMiBiLCBSVDMgcSk7IC8vIEluY29tcGxldGUgYmV0YSBjb21wbGVtZW50IGludmVyc2UgZnVuY3Rpb24uCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBpYmV0YWNfaW52KFJUMSBhLCBSVDIgYiwgUlQzIHEsIGNvbnN0IFBvbGljeSYpOyAvLyBJbmNvbXBsZXRlIGJldGEgY29tcGxlbWVudCBpbnZlcnNlIGZ1bmN0aW9uLgorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFJUMz4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhY19pbnZhKFJUMSBhLCBSVDIgYiwgUlQzIHEpOyAvLyBJbmNvbXBsZXRlIGJldGEgY29tcGxlbWVudCBpbnZlcnNlIGZ1bmN0aW9uLgorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFJUMywgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZQorICAgICAgICAgaWJldGFjX2ludmEoUlQxIGEsIFJUMiBiLCBSVDMgcSwgY29uc3QgUG9saWN5Jik7IC8vIEluY29tcGxldGUgYmV0YSBjb21wbGVtZW50IGludmVyc2UgZnVuY3Rpb24uCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZQorICAgICAgICAgaWJldGFjX2ludmIoUlQxIGEsIFJUMiBiLCBSVDMgcSk7IC8vIEluY29tcGxldGUgYmV0YSBjb21wbGVtZW50IGludmVyc2UgZnVuY3Rpb24uCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBpYmV0YWNfaW52YihSVDEgYSwgUlQyIGIsIFJUMyBxLCBjb25zdCBQb2xpY3kmKTsgLy8gSW5jb21wbGV0ZSBiZXRhIGNvbXBsZW1lbnQgaW52ZXJzZSBmdW5jdGlvbi4KKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlCisgICAgICAgICBpYmV0YV9kZXJpdmF0aXZlKFJUMSBhLCBSVDIgYiwgUlQzIHgpOyAgLy8gZGVyaXZhdGl2ZSBvZiBpbmNvbXBsZXRlIGJldGEKKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDMsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUKKyAgICAgICAgIGliZXRhX2Rlcml2YXRpdmUoUlQxIGEsIFJUMiBiLCBSVDMgeCwgY29uc3QgUG9saWN5JiBwb2wpOyAgLy8gZGVyaXZhdGl2ZSBvZiBpbmNvbXBsZXRlIGJldGEKKworICAgLy8gZXJmICYgZXJmYyBlcnJvciBmdW5jdGlvbnMuCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+IC8vIEVycm9yIGZ1bmN0aW9uLgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgZXJmKFJUIHopOworICAgdGVtcGxhdGUgPGNsYXNzIFJULCBjbGFzcyBQb2xpY3k+IC8vIEVycm9yIGZ1bmN0aW9uLgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgZXJmKFJUIHosIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+Ly8gRXJyb3IgZnVuY3Rpb24gY29tcGxlbWVudC4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGVyZmMoUlQgeik7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4vLyBFcnJvciBmdW5jdGlvbiBjb21wbGVtZW50LgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgZXJmYyhSVCB6LCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFJUPi8vIEVycm9yIGZ1bmN0aW9uIGludmVyc2UuCisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSBlcmZfaW52KFJUIHopOworICAgdGVtcGxhdGUgPGNsYXNzIFJULCBjbGFzcyBQb2xpY3k+Ly8gRXJyb3IgZnVuY3Rpb24gaW52ZXJzZS4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGVyZl9pbnYoUlQgeiwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+Ly8gRXJyb3IgZnVuY3Rpb24gY29tcGxlbWVudCBpbnZlcnNlLgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgZXJmY19pbnYoUlQgeik7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4vLyBFcnJvciBmdW5jdGlvbiBjb21wbGVtZW50IGludmVyc2UuCisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSBlcmZjX2ludihSVCB6LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIC8vIFBvbHlub21pYWxzOgorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlCisgICAgICAgICBsZWdlbmRyZV9uZXh0KHVuc2lnbmVkIGwsIFQxIHgsIFQyIFBsLCBUMyBQbG0xKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlCisgICAgICAgICBsZWdlbmRyZV9wKGludCBsLCBUIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZQorICAgICAgICAgbGVnZW5kcmVfcChpbnQgbCwgVCB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZQorICAgICAgICAgbGVnZW5kcmVfcSh1bnNpZ25lZCBsLCBUIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZQorICAgICAgICAgbGVnZW5kcmVfcSh1bnNpZ25lZCBsLCBUIHgsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlCisgICAgICAgICBsZWdlbmRyZV9uZXh0KHVuc2lnbmVkIGwsIHVuc2lnbmVkIG0sIFQxIHgsIFQyIFBsLCBUMyBQbG0xKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlCisgICAgICAgICBsZWdlbmRyZV9wKGludCBsLCBpbnQgbSwgVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUKKyAgICAgICAgIGxlZ2VuZHJlX3AoaW50IGwsIGludCBtLCBUIHgsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlCisgICAgICAgICBsYWd1ZXJyZV9uZXh0KHVuc2lnbmVkIG4sIFQxIHgsIFQyIExuLCBUMyBMbm0xKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlCisgICAgICBsYWd1ZXJyZV9uZXh0KHVuc2lnbmVkIG4sIHVuc2lnbmVkIGwsIFQxIHgsIFQyIFBsLCBUMyBQbG0xKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlCisgICAgICBsYWd1ZXJyZSh1bnNpZ25lZCBuLCBUIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZQorICAgICAgbGFndWVycmUodW5zaWduZWQgbiwgdW5zaWduZWQgbSwgVCB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICBzdHJ1Y3QgbGFndWVycmVfcmVzdWx0CisgICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgcG9saWNpZXM6OmlzX3BvbGljeTxUMj4sCisgICAgICAgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxPjo6dHlwZSwKKyAgICAgICAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDI+Ojp0eXBlCisgICAgICA+Ojp0eXBlIHR5cGU7CisgICB9OworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgbGFndWVycmVfcmVzdWx0PFQxLCBUMj46OnR5cGUKKyAgICAgIGxhZ3VlcnJlKHVuc2lnbmVkIG4sIFQxIG0sIFQyIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUKKyAgICAgIGhlcm1pdGUodW5zaWduZWQgbiwgVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUKKyAgICAgIGhlcm1pdGUodW5zaWduZWQgbiwgVCB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDIsIFQzPjo6dHlwZQorICAgICAgaGVybWl0ZV9uZXh0KHVuc2lnbmVkIG4sIFQxIHgsIFQyIEhuLCBUMyBIbm0xKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj4KKyAgIHN0ZDo6Y29tcGxleDx0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGU+CisgICAgICAgICBzcGhlcmljYWxfaGFybW9uaWModW5zaWduZWQgbiwgaW50IG0sIFQxIHRoZXRhLCBUMiBwaGkpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlPgorICAgICAgc3BoZXJpY2FsX2hhcm1vbmljKHVuc2lnbmVkIG4sIGludCBtLCBUMSB0aGV0YSwgVDIgcGhpLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUKKyAgICAgICAgIHNwaGVyaWNhbF9oYXJtb25pY19yKHVuc2lnbmVkIG4sIGludCBtLCBUMSB0aGV0YSwgVDIgcGhpKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlCisgICAgICBzcGhlcmljYWxfaGFybW9uaWNfcih1bnNpZ25lZCBuLCBpbnQgbSwgVDEgdGhldGEsIFQyIHBoaSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlCisgICAgICAgICBzcGhlcmljYWxfaGFybW9uaWNfaSh1bnNpZ25lZCBuLCBpbnQgbSwgVDEgdGhldGEsIFQyIHBoaSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZQorICAgICAgc3BoZXJpY2FsX2hhcm1vbmljX2kodW5zaWduZWQgbiwgaW50IG0sIFQxIHRoZXRhLCBUMiBwaGksIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgLy8gRWxsaXB0aWMgaW50ZWdyYWxzOgorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlCisgICAgICAgICBlbGxpbnRfcmYoVDEgeCwgVDIgeSwgVDMgeik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlCisgICAgICAgICBlbGxpbnRfcmYoVDEgeCwgVDIgeSwgVDMgeiwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMz4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMz46OnR5cGUKKyAgICAgICAgIGVsbGludF9yZChUMSB4LCBUMiB5LCBUMyB6KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMz46OnR5cGUKKyAgICAgICAgIGVsbGludF9yZChUMSB4LCBUMiB5LCBUMyB6LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUKKyAgICAgICAgIGVsbGludF9yYyhUMSB4LCBUMiB5KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlCisgICAgICAgICBlbGxpbnRfcmMoVDEgeCwgVDIgeSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDMsIFQ0Pjo6dHlwZQorICAgICAgICAgZWxsaW50X3JqKFQxIHgsIFQyIHksIFQzIHosIFQ0IHApOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMywgVDQ+Ojp0eXBlCisgICAgICAgICBlbGxpbnRfcmooVDEgeCwgVDIgeSwgVDMgeiwgVDQgcCwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgZWxsaW50XzIoVCBrKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBlbGxpbnRfMihUMSBrLCBUMiBwaGkpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZWxsaW50XzIoVDEgaywgVDIgcGhpLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBlbGxpbnRfMShUIGspOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIGVsbGludF8xKFQxIGssIFQyIHBoaSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBlbGxpbnRfMShUMSBrLCBUMiBwaGksIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgbmFtZXNwYWNlIGRldGFpbHsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFY+CisgICBzdHJ1Y3QgZWxsaW50XzNfcmVzdWx0CisgICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgcG9saWNpZXM6OmlzX3BvbGljeTxWPiwKKyAgICAgICAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUsCisgICAgICAgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFUsIFY+Ojp0eXBlCisgICAgICA+Ojp0eXBlIHR5cGU7CisgICB9OworCisgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMz4KKyAgIHR5cGVuYW1lIGRldGFpbDo6ZWxsaW50XzNfcmVzdWx0PFQxLCBUMiwgVDM+Ojp0eXBlIGVsbGludF8zKFQxIGssIFQyIHYsIFQzIHBoaSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlIGVsbGludF8zKFQxIGssIFQyIHYsIFQzIHBoaSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIGVsbGludF8zKFQxIGssIFQyIHYpOworCisgICAvLyBGYWN0b3JpYWwgZnVuY3Rpb25zLgorICAgLy8gTm90ZTogbm90IGZvciBpbnRlZ3JhbCB0eXBlcywgYXQgcHJlc2VudC4KKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD4KKyAgIHN0cnVjdCBtYXhfZmFjdG9yaWFsOworICAgdGVtcGxhdGUgPGNsYXNzIFJUPgorICAgUlQgZmFjdG9yaWFsKHVuc2lnbmVkIGludCk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4KKyAgIFJUIGZhY3RvcmlhbCh1bnNpZ25lZCBpbnQsIGNvbnN0IFBvbGljeSYgcG9sKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD4KKyAgIFJUIHVuY2hlY2tlZF9mYWN0b3JpYWwodW5zaWduZWQgaW50IEJPT1NUX01BVEhfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUoUlQpKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD4KKyAgIFJUIGRvdWJsZV9mYWN0b3JpYWwodW5zaWduZWQgaSk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4KKyAgIFJUIGRvdWJsZV9mYWN0b3JpYWwodW5zaWduZWQgaSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSBmYWxsaW5nX2ZhY3RvcmlhbChSVCB4LCB1bnNpZ25lZCBuKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFJULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSBmYWxsaW5nX2ZhY3RvcmlhbChSVCB4LCB1bnNpZ25lZCBuLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIHJpc2luZ19mYWN0b3JpYWwoUlQgeCwgaW50IG4pOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIHJpc2luZ19mYWN0b3JpYWwoUlQgeCwgaW50IG4sIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgLy8gR2FtbWEgZnVuY3Rpb25zLgorICAgdGVtcGxhdGUgPGNsYXNzIFJUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgdGdhbW1hKFJUIHopOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSB0Z2FtbWExcG0xKFJUIHopOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIHRnYW1tYTFwbTEoUlQgeiwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyPjo6dHlwZSB0Z2FtbWEoUlQxIGEsIFJUMiB6KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyPjo6dHlwZSB0Z2FtbWEoUlQxIGEsIFJUMiB6LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGxnYW1tYShSVCB6LCBpbnQqIHNpZ24pOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGxnYW1tYShSVCB6LCBpbnQqIHNpZ24sIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFJUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgbGdhbW1hKFJUIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGxnYW1tYShSVCB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMj4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDI+Ojp0eXBlIHRnYW1tYV9sb3dlcihSVDEgYSwgUlQyIHopOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDI+Ojp0eXBlIHRnYW1tYV9sb3dlcihSVDEgYSwgUlQyIHosIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyPjo6dHlwZSBnYW1tYV9xKFJUMSBhLCBSVDIgeik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMj46OnR5cGUgZ2FtbWFfcShSVDEgYSwgUlQyIHosIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyPjo6dHlwZSBnYW1tYV9wKFJUMSBhLCBSVDIgeik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMj46OnR5cGUgZ2FtbWFfcChSVDEgYSwgUlQyIHosIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIHRnYW1tYV9kZWx0YV9yYXRpbyhUMSB6LCBUMiBkZWx0YSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSB0Z2FtbWFfZGVsdGFfcmF0aW8oVDEgeiwgVDIgZGVsdGEsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIHRnYW1tYV9yYXRpbyhUMSBhLCBUMiBiKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIHRnYW1tYV9yYXRpbyhUMSBhLCBUMiBiLCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBnYW1tYV9wX2Rlcml2YXRpdmUoVDEgYSwgVDIgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBnYW1tYV9wX2Rlcml2YXRpdmUoVDEgYSwgVDIgeCwgY29uc3QgUG9saWN5Jik7CisKKyAgIC8vIGdhbW1hIGludmVyc2UuCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIGdhbW1hX3BfaW52KFQxIGEsIFQyIHApOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZ2FtbWFfcF9pbnZhKFQxIGEsIFQyIHAsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIGdhbW1hX3BfaW52YShUMSBhLCBUMiBwKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIGdhbW1hX3BfaW52KFQxIGEsIFQyIHAsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIGdhbW1hX3FfaW52KFQxIGEsIFQyIHEpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZ2FtbWFfcV9pbnYoVDEgYSwgVDIgcSwgY29uc3QgUG9saWN5Jik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZ2FtbWFfcV9pbnZhKFQxIGEsIFQyIHEpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZ2FtbWFfcV9pbnZhKFQxIGEsIFQyIHEsIGNvbnN0IFBvbGljeSYpOworCisgICAvLyBkaWdhbW1hOgorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGRpZ2FtbWEoVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgZGlnYW1tYShUIHgsIGNvbnN0IFBvbGljeSYpOworCisgICAvLyBIeXBvdGVudXNlIGZ1bmN0aW9uIHNxcnQoeCBeIDIgKyB5IF4gMikuCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlCisgICAgICAgICBoeXBvdChUMSB4LCBUMiB5KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlCisgICAgICAgICBoeXBvdChUMSB4LCBUMiB5LCBjb25zdCBQb2xpY3kmKTsKKworICAgLy8gY2JydCAtIGN1YmUgcm9vdC4KKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGNicnQoUlQgeik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgY2JydChSVCB6LCBjb25zdCBQb2xpY3kmKTsKKworICAgLy8gbG9nMXAgaXMgbG9nKHggKyAxKQorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGxvZzFwKFQpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBsb2cxcChULCBjb25zdCBQb2xpY3kmKTsKKworICAgLy8gbG9nMXBteCBpcyBsb2coeCArIDEpIC0geAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGxvZzFwbXgoVCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGxvZzFwbXgoVCwgY29uc3QgUG9saWN5Jik7CisKKyAgIC8vIEV4cCAoeCkgbWludXMgMSBmdW5jdGlvbnMuCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgZXhwbTEoVCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGV4cG0xKFQsIGNvbnN0IFBvbGljeSYpOworCisgICAvLyBQb3dlciAtIDEKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUKKyAgICAgICAgIHBvd20xKGNvbnN0IFQxIGEsIGNvbnN0IFQyIHopOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUKKyAgICAgICAgIHBvd20xKGNvbnN0IFQxIGEsIGNvbnN0IFQyIHosIGNvbnN0IFBvbGljeSYpOworCisgICAvLyBzcXJ0KDEreCkgLSAxCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc3FydDFwbTEoY29uc3QgVCYgdmFsKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc3FydDFwbTEoY29uc3QgVCYgdmFsLCBjb25zdCBQb2xpY3kmKTsKKworICAgLy8gc2ludXMgY2FyZGluYWxzOgorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHNpbmNfcGkoVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc2luY19waShUIHgsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc2luaGNfcGkoVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc2luaGNfcGkoVCB4LCBjb25zdCBQb2xpY3kmKTsKKworICAgLy8gaW52ZXJzZSBoeXBlcmJvbGljczoKKyAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGFzaW5oKFQgeCk7CisKKyAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgYXNpbmgoVCB4LCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgYWNvc2goVCB4KTsKKworICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhY29zaChUIHgsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhdGFuaChUIHgpOworCisgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGF0YW5oKFQgeCwgY29uc3QgUG9saWN5Jik7CisKKyAgIG5hbWVzcGFjZSBkZXRhaWx7CisKKyAgICAgIHR5cGVkZWYgbXBsOjppbnRfPDA+IGJlc3NlbF9ub19pbnRfdGFnOyAgICAgIC8vIE5vIGludGVnZXIgb3B0aW1pc2F0aW9uIHBvc3NpYmxlLgorICAgICAgdHlwZWRlZiBtcGw6OmludF88MT4gYmVzc2VsX21heWJlX2ludF90YWc7ICAgLy8gTWF5YmUgaW50ZWdlciBvcHRpbWlzYXRpb24uCisgICAgICB0eXBlZGVmIG1wbDo6aW50XzwyPiBiZXNzZWxfaW50X3RhZzsgICAgICAgICAvLyBEZWZpbml0ZSBpbnRlZ2VyIG9wdGltaXN0YWlvbi4KKworICAgICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgICAgc3RydWN0IGJlc3NlbF90cmFpdHMKKyAgICAgIHsKKyAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczwKKyAgICAgICAgICAgIFQxLCBUMgorICAgICAgICAgPjo6dHlwZSByZXN1bHRfdHlwZTsKKworICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwb2xpY2llczo6cHJlY2lzaW9uPHJlc3VsdF90eXBlLCBQb2xpY3k+Ojp0eXBlIHByZWNpc2lvbl90eXBlOworCisgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgICAgbXBsOjpvcl88CisgICAgICAgICAgICAgICBtcGw6Omxlc3NfZXF1YWw8cHJlY2lzaW9uX3R5cGUsIG1wbDo6aW50XzwwPiA+LAorICAgICAgICAgICAgICAgbXBsOjpncmVhdGVyPHByZWNpc2lvbl90eXBlLCBtcGw6OmludF88NjQ+ID4gPiwKKyAgICAgICAgICAgIGJlc3NlbF9ub19pbnRfdGFnLAorICAgICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgICAgICBpc19pbnRlZ3JhbDxUMT4sCisgICAgICAgICAgICAgICBiZXNzZWxfaW50X3RhZywKKyAgICAgICAgICAgICAgIGJlc3NlbF9tYXliZV9pbnRfdGFnCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICA+Ojp0eXBlIG9wdGltaXNhdGlvbl90YWc7CisgICAgICB9OworICAgfSAvLyBkZXRhaWwKKworICAgLy8gQmVzc2VsIGZ1bmN0aW9uczoKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeT46OnJlc3VsdF90eXBlIGN5bF9iZXNzZWxfaihUMSB2LCBUMiB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSBkZXRhaWw6OmJlc3NlbF90cmFpdHM8VDEsIFQyLCBwb2xpY2llczo6cG9saWN5PD4gPjo6cmVzdWx0X3R5cGUgY3lsX2Jlc3NlbF9qKFQxIHYsIFQyIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIFBvbGljeT46OnJlc3VsdF90eXBlIHNwaF9iZXNzZWwodW5zaWduZWQgdiwgVCB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIHBvbGljaWVzOjpwb2xpY3k8PiA+OjpyZXN1bHRfdHlwZSBzcGhfYmVzc2VsKHVuc2lnbmVkIHYsIFQgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeT46OnJlc3VsdF90eXBlIGN5bF9iZXNzZWxfaShUMSB2LCBUMiB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSBkZXRhaWw6OmJlc3NlbF90cmFpdHM8VDEsIFQyLCBwb2xpY2llczo6cG9saWN5PD4gPjo6cmVzdWx0X3R5cGUgY3lsX2Jlc3NlbF9pKFQxIHYsIFQyIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSBkZXRhaWw6OmJlc3NlbF90cmFpdHM8VDEsIFQyLCBQb2xpY3k+OjpyZXN1bHRfdHlwZSBjeWxfYmVzc2VsX2soVDEgdiwgVDIgeCwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgcG9saWNpZXM6OnBvbGljeTw+ID46OnJlc3VsdF90eXBlIGN5bF9iZXNzZWxfayhUMSB2LCBUMiB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgUG9saWN5Pjo6cmVzdWx0X3R5cGUgY3lsX25ldW1hbm4oVDEgdiwgVDIgeCwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgcG9saWNpZXM6OnBvbGljeTw+ID46OnJlc3VsdF90eXBlIGN5bF9uZXVtYW5uKFQxIHYsIFQyIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIFBvbGljeT46OnJlc3VsdF90eXBlIHNwaF9uZXVtYW5uKHVuc2lnbmVkIHYsIFQgeCwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxULCBULCBwb2xpY2llczo6cG9saWN5PD4gPjo6cmVzdWx0X3R5cGUgc3BoX25ldW1hbm4odW5zaWduZWQgdiwgVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxULCBULCBQb2xpY3k+OjpyZXN1bHRfdHlwZSBjeWxfYmVzc2VsX2pfemVybyhUIHYsIGludCBtLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIHBvbGljaWVzOjpwb2xpY3k8PiA+OjpyZXN1bHRfdHlwZSBjeWxfYmVzc2VsX2pfemVybyhUIHYsIGludCBtKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIE91dHB1dEl0ZXJhdG9yPgorICAgT3V0cHV0SXRlcmF0b3IgY3lsX2Jlc3NlbF9qX3plcm8oVCB2LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlcl9vZl96ZXJvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3Igb3V0X2l0KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIE91dHB1dEl0ZXJhdG9yLCBjbGFzcyBQb2xpY3k+CisgICBPdXRwdXRJdGVyYXRvciBjeWxfYmVzc2VsX2pfemVybyhUIHYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydF9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtYmVyX29mX3plcm9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvciBvdXRfaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIFBvbGljeT46OnJlc3VsdF90eXBlIGN5bF9uZXVtYW5uX3plcm8oVCB2LCBpbnQgbSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxULCBULCBwb2xpY2llczo6cG9saWN5PD4gPjo6cmVzdWx0X3R5cGUgY3lsX25ldW1hbm5femVybyhUIHYsIGludCBtKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIE91dHB1dEl0ZXJhdG9yPgorICAgT3V0cHV0SXRlcmF0b3IgY3lsX25ldW1hbm5femVybyhUIHYsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0X2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlcl9vZl96ZXJvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvciBvdXRfaXQpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgT3V0cHV0SXRlcmF0b3IsIGNsYXNzIFBvbGljeT4KKyAgIE91dHB1dEl0ZXJhdG9yIGN5bF9uZXVtYW5uX3plcm8oVCB2LAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydF9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJfb2ZfemVyb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3Igb3V0X2l0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgc3RkOjpjb21wbGV4PHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIHBvbGljaWVzOjpwb2xpY3k8PiA+OjpyZXN1bHRfdHlwZT4gY3lsX2hhbmtlbF8xKFQxIHYsIFQyIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgUG9saWN5Pjo6cmVzdWx0X3R5cGU+IGN5bF9oYW5rZWxfMShUMSB2LCBUMiB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT4KKyAgIHN0ZDo6Y29tcGxleDx0eXBlbmFtZSBkZXRhaWw6OmJlc3NlbF90cmFpdHM8VDEsIFQyLCBQb2xpY3k+OjpyZXN1bHRfdHlwZT4gY3lsX2hhbmtlbF8yKFQxIHYsIFQyIHgsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj4KKyAgIHN0ZDo6Y29tcGxleDx0eXBlbmFtZSBkZXRhaWw6OmJlc3NlbF90cmFpdHM8VDEsIFQyLCBwb2xpY2llczo6cG9saWN5PD4gPjo6cmVzdWx0X3R5cGU+IGN5bF9oYW5rZWxfMihUMSB2LCBUMiB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgUG9saWN5PgorICAgc3RkOjpjb21wbGV4PHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeT46OnJlc3VsdF90eXBlPiBzcGhfaGFua2VsXzEoVDEgdiwgVDIgeCwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgorICAgc3RkOjpjb21wbGV4PHR5cGVuYW1lIGRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIHBvbGljaWVzOjpwb2xpY3k8PiA+OjpyZXN1bHRfdHlwZT4gc3BoX2hhbmtlbF8xKFQxIHYsIFQyIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgUG9saWN5Pjo6cmVzdWx0X3R5cGU+IHNwaF9oYW5rZWxfMihUMSB2LCBUMiB4LCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgcG9saWNpZXM6OnBvbGljeTw+ID46OnJlc3VsdF90eXBlPiBzcGhfaGFua2VsXzIoVDEgdiwgVDIgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGFpcnlfYWkoVCB4LCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGFpcnlfYWkoVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgYWlyeV9iaShUIHgsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgYWlyeV9iaShUIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhaXJ5X2FpX3ByaW1lKFQgeCwgY29uc3QgUG9saWN5Jik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhaXJ5X2FpX3ByaW1lKFQgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGFpcnlfYmlfcHJpbWUoVCB4LCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGFpcnlfYmlfcHJpbWUoVCB4KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBUIGFpcnlfYWlfemVybyh1bnNpZ25lZCBtKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICBUIGFpcnlfYWlfemVybyh1bnNpZ25lZCBtLCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIE91dHB1dEl0ZXJhdG9yPgorICAgT3V0cHV0SXRlcmF0b3IgYWlyeV9haV96ZXJvKAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc3RhcnRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJfb2ZfemVyb3MsCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvciBvdXRfaXQpOworICAgdGVtcGxhdGUgPGNsYXNzIE91dHB1dEl0ZXJhdG9yLCBjbGFzcyBQb2xpY3k+CisgICBPdXRwdXRJdGVyYXRvciBhaXJ5X2FpX3plcm8oCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzdGFydF9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlcl9vZl96ZXJvcywKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dEl0ZXJhdG9yIG91dF9pdCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIFQgYWlyeV9iaV96ZXJvKHVuc2lnbmVkIG0pOworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIFQgYWlyeV9iaV96ZXJvKHVuc2lnbmVkIG0sIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgT3V0cHV0SXRlcmF0b3I+CisgICBPdXRwdXRJdGVyYXRvciBhaXJ5X2JpX3plcm8oCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzdGFydF9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlcl9vZl96ZXJvcywKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dEl0ZXJhdG9yIG91dF9pdCk7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgT3V0cHV0SXRlcmF0b3IsIGNsYXNzIFBvbGljeT4KKyAgIE91dHB1dEl0ZXJhdG9yIGFpcnlfYmlfemVybygKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0X2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtYmVyX29mX3plcm9zLAorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3Igb3V0X2l0LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9saWN5Jik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHNpbl9waShUIHgsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc2luX3BpKFQgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGNvc19waShUIHgsIGNvbnN0IFBvbGljeSYpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgY29zX3BpKFQgeCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgaW50IGZwY2xhc3NpZnkgQk9PU1RfTk9fTUFDUk9fRVhQQU5EKFQgdCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgYm9vbCBpc2Zpbml0ZSBCT09TVF9OT19NQUNST19FWFBBTkQoVCB6KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBib29sIGlzaW5mIEJPT1NUX05PX01BQ1JPX0VYUEFORChUIHQpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIGJvb2wgaXNuYW4gQk9PU1RfTk9fTUFDUk9fRVhQQU5EKFQgdCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgYm9vbCBpc25vcm1hbCBCT09TVF9OT19NQUNST19FWFBBTkQoVCB0KTsKKworICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgIGludCBzaWduYml0IEJPT1NUX05PX01BQ1JPX0VYUEFORChUIHgpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIGludCBzaWduIEJPT1NUX05PX01BQ1JPX0VYUEFORChjb25zdCBUJiB6KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGNvcHlzaWduIEJPT1NUX05PX01BQ1JPX0VYUEFORChjb25zdCBUJiB4LCBjb25zdCBVJiB5KTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGNoYW5nZXNpZ24gQk9PU1RfTk9fTUFDUk9fRVhQQU5EKGNvbnN0IFQmIHopOworCisgICAvLyBFeHBvbmVudGlhbCBpbnRlZ3JhbHM6CisgICBuYW1lc3BhY2UgZGV0YWlseworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHN0cnVjdCBleHBpbnRfcmVzdWx0CisgICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgcG9saWNpZXM6OmlzX3BvbGljeTxVPiwKKyAgICAgICAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUsCisgICAgICAgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFU+Ojp0eXBlCisgICAgICA+Ojp0eXBlIHR5cGU7CisgICB9OworCisgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgZXhwaW50KHVuc2lnbmVkIG4sIFQgeiwgY29uc3QgUG9saWN5Jik7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgdHlwZW5hbWUgZGV0YWlsOjpleHBpbnRfcmVzdWx0PFQsIFU+Ojp0eXBlIGV4cGludChUIGNvbnN0IHosIFUgY29uc3QgdSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBleHBpbnQoVCB6KTsKKworICAgLy8gWmV0YToKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHpldGEoVCBzLCBjb25zdCBQb2xpY3kmKTsKKworICAgLy8gT3dlbidzIFQgZnVuY3Rpb246CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgb3dlbnNfdChUMSBoLCBUMiBhLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgb3dlbnNfdChUMSBoLCBUMiBhKTsKKworICAgLy8gSmFjb2JpIEZ1bmN0aW9uczoKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBWLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFUsIFY+Ojp0eXBlIGphY29iaV9lbGxpcHRpYyhUIGssIFUgdGhldGEsIFYqIHBjbiwgViogcGRuLCBjb25zdCBQb2xpY3kmKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFY+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFUsIFY+Ojp0eXBlIGphY29iaV9lbGxpcHRpYyhUIGssIFUgdGhldGEsIFYqIHBjbiA9IDAsIFYqIHBkbiA9IDApOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVSwgY2xhc3MgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc24oVSBrLCBUIHRoZXRhLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBVLCBjbGFzcyBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc24oVSBrLCBUIHRoZXRhKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX2NuKFQgaywgVSB0aGV0YSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX2NuKFQgaywgVSB0aGV0YSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9kbihUIGssIFUgdGhldGEsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9kbihUIGssIFUgdGhldGEpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfY2QoVCBrLCBVIHRoZXRhLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfY2QoVCBrLCBVIHRoZXRhKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX2RjKFQgaywgVSB0aGV0YSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX2RjKFQgaywgVSB0aGV0YSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9ucyhUIGssIFUgdGhldGEsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9ucyhUIGssIFUgdGhldGEpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc2QoVCBrLCBVIHRoZXRhLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc2QoVCBrLCBVIHRoZXRhKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX2RzKFQgaywgVSB0aGV0YSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX2RzKFQgaywgVSB0aGV0YSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9uYyhUIGssIFUgdGhldGEsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9uYyhUIGssIFUgdGhldGEpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfbmQoVCBrLCBVIHRoZXRhLCBjb25zdCBQb2xpY3kmIHBvbCk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfbmQoVCBrLCBVIHRoZXRhKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX3NjKFQgaywgVSB0aGV0YSwgY29uc3QgUG9saWN5JiBwb2wpOworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgamFjb2JpX3NjKFQgaywgVSB0aGV0YSk7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9jcyhUIGssIFUgdGhldGEsIGNvbnN0IFBvbGljeSYgcG9sKTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGphY29iaV9jcyhUIGssIFUgdGhldGEpOworCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSB6ZXRhKFQgcyk7CisKKyAgIC8vIHBvdzoKKyAgIHRlbXBsYXRlIDxpbnQgTiwgdHlwZW5hbWUgVCwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBwb3coVCBiYXNlLCBjb25zdCBQb2xpY3kmIHBvbGljeSk7CisKKyAgIHRlbXBsYXRlIDxpbnQgTiwgdHlwZW5hbWUgVD4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgcG93KFQgYmFzZSk7CisKKyAgIC8vIG5leHQ6CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgUG9saWN5PgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBuZXh0YWZ0ZXIoY29uc3QgVCYsIGNvbnN0IFUmLCBjb25zdCBQb2xpY3kmKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBuZXh0YWZ0ZXIoY29uc3QgVCYsIGNvbnN0IFUmKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGZsb2F0X25leHQoY29uc3QgVCYsIGNvbnN0IFBvbGljeSYpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGZsb2F0X25leHQoY29uc3QgVCYpOworICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFBvbGljeT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgZmxvYXRfcHJpb3IoY29uc3QgVCYsIGNvbnN0IFBvbGljeSYpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGZsb2F0X3ByaW9yKGNvbnN0IFQmKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQsIFU+Ojp0eXBlIGZsb2F0X2Rpc3RhbmNlKGNvbnN0IFQmLCBjb25zdCBVJiwgY29uc3QgUG9saWN5Jik7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgZmxvYXRfZGlzdGFuY2UoY29uc3QgVCYsIGNvbnN0IFUmKTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3k+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGZsb2F0X2FkdmFuY2UoVCB2YWwsIGludCBkaXN0YW5jZSwgY29uc3QgUG9saWN5JiBwb2wpOworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGZsb2F0X2FkdmFuY2UoY29uc3QgVCYgdmFsLCBpbnQgZGlzdGFuY2UpOworCisgICAgfSAvLyBuYW1lc3BhY2UgbWF0aAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKKyNkZWZpbmUgQk9PU1RfTUFUSF9ERVRBSUxfTExfRlVOQyhQb2xpY3kpXAorICAgXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIFQgbW9kZihjb25zdCBUJiB2LCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUqIGlwYXJ0KXsgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6Om1vZGY7IHJldHVybiBtb2RmKHYsIGlwYXJ0LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlIGxsdHJ1bmMoY29uc3QgVCYgdil7IHVzaW5nIG5kbmJvb3N0OjptYXRoOjpsbHRydW5jOyByZXR1cm4gbGx0cnVuYyh2LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlIGxscm91bmQoY29uc3QgVCYgdil7IHVzaW5nIG5kbmJvb3N0OjptYXRoOjpsbHJvdW5kOyByZXR1cm4gbGxyb3VuZCh2LCBQb2xpY3koKSk7IH1cCisKKyNlbHNlCisjZGVmaW5lIEJPT1NUX01BVEhfREVUQUlMX0xMX0ZVTkMoUG9saWN5KQorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTUFUSF9ERUNMQVJFX1NQRUNJQUxfRlVOQ1RJT05TKFBvbGljeSlcCisgICBcCisgICBCT09TVF9NQVRIX0RFVEFJTF9MTF9GVU5DKFBvbGljeSlcCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyPjo6dHlwZSBcCisgICBiZXRhKFJUMSBhLCBSVDIgYikgeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6YmV0YShhLCBiLCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIEE+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBBPjo6dHlwZSBcCisgICBiZXRhKFJUMSBhLCBSVDIgYiwgQSB4KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmJldGEoYSwgYiwgeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDM+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlIFwKKyAgIGJldGFjKFJUMSBhLCBSVDIgYiwgUlQzIHgpIHsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmJldGFjKGEsIGIsIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZSBcCisgICBpYmV0YShSVDEgYSwgUlQyIGIsIFJUMyB4KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmliZXRhKGEsIGIsIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZSBcCisgICBpYmV0YWMoUlQxIGEsIFJUMiBiLCBSVDMgeCl7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoOjppYmV0YWMoYSwgYiwgeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0PlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDIsIFQzLCBUND46OnR5cGUgIFwKKyAgIGliZXRhX2ludihUMSBhLCBUMiBiLCBUMyBwLCBUNCogcHkpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6aWJldGFfaW52KGEsIGIsIHAsIHB5LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFJUMz5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUgXAorICAgaWJldGFfaW52KFJUMSBhLCBSVDIgYiwgUlQzIHApeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6aWJldGFfaW52KGEsIGIsIHAsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUND5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMywgVDQ+Ojp0eXBlIFwKKyAgIGliZXRhY19pbnYoVDEgYSwgVDIgYiwgVDMgcSwgVDQqIHB5KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmliZXRhY19pbnYoYSwgYiwgcSwgcHksIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZSBcCisgICBpYmV0YV9pbnZhKFJUMSBhLCBSVDIgYiwgUlQzIHApeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6aWJldGFfaW52YShhLCBiLCBwLCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMz5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyLCBUMz46OnR5cGUgXAorICAgaWJldGFjX2ludmEoVDEgYSwgVDIgYiwgVDMgcSl7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoOjppYmV0YWNfaW52YShhLCBiLCBxLCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDIsIGNsYXNzIFJUMz5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDIsIFJUMz46OnR5cGUgXAorICAgaWJldGFfaW52YihSVDEgYSwgUlQyIGIsIFJUMyBwKXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmliZXRhX2ludmIoYSwgYiwgcCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlIFwKKyAgIGliZXRhY19pbnZiKFQxIGEsIFQyIGIsIFQzIHEpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6aWJldGFjX2ludmIoYSwgYiwgcSwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyLCBjbGFzcyBSVDM+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyLCBSVDM+Ojp0eXBlIFwKKyAgIGliZXRhY19pbnYoUlQxIGEsIFJUMiBiLCBSVDMgcSl7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoOjppYmV0YWNfaW52KGEsIGIsIHEsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMiwgY2xhc3MgUlQzPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMiwgUlQzPjo6dHlwZSBcCisgICBpYmV0YV9kZXJpdmF0aXZlKFJUMSBhLCBSVDIgYiwgUlQzIHgpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6aWJldGFfZGVyaXZhdGl2ZShhLCBiLCB4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSBlcmYoUlQgeikgeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6ZXJmKHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGVyZmMoUlQgeil7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoOjplcmZjKHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGVyZl9pbnYoUlQgeikgeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6ZXJmX2ludih6LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSBlcmZjX2ludihSVCB6KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmVyZmNfaW52KHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjpsZWdlbmRyZV9uZXh0O1wKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBcCisgICBsZWdlbmRyZV9wKGludCBsLCBUIHgpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6bGVnZW5kcmVfcChsLCB4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgXAorICAgbGVnZW5kcmVfcSh1bnNpZ25lZCBsLCBUIHgpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6bGVnZW5kcmVfcShsLCB4LCBQb2xpY3koKSk7IH1cCitcCisgICB1c2luZyA6Om5kbmJvb3N0OjptYXRoOjpsZWdlbmRyZV9uZXh0O1wKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBcCisgICBsZWdlbmRyZV9wKGludCBsLCBpbnQgbSwgVCB4KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmxlZ2VuZHJlX3AobCwgbSwgeCwgUG9saWN5KCkpOyB9XAorXAorICAgdXNpbmcgOjpuZG5ib29zdDo6bWF0aDo6bGFndWVycmVfbmV4dDtcCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgXAorICAgbGFndWVycmUodW5zaWduZWQgbiwgVCB4KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmxhZ3VlcnJlKG4sIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjpsYWd1ZXJyZV9yZXN1bHQ8VDEsIFQyPjo6dHlwZSBcCisgICBsYWd1ZXJyZSh1bnNpZ25lZCBuLCBUMSBtLCBUMiB4KSB7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoOjpsYWd1ZXJyZShuLCBtLCB4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgXAorICAgaGVybWl0ZSh1bnNpZ25lZCBuLCBUIHgpeyByZXR1cm4gOjpuZG5ib29zdDo6bWF0aDo6aGVybWl0ZShuLCB4LCBQb2xpY3koKSk7IH1cCitcCisgICB1c2luZyBuZG5ib29zdDo6bWF0aDo6aGVybWl0ZV9uZXh0O1wKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHN0ZDo6Y29tcGxleDx0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlPiBcCisgICBzcGhlcmljYWxfaGFybW9uaWModW5zaWduZWQgbiwgaW50IG0sIFQxIHRoZXRhLCBUMiBwaGkpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OnNwaGVyaWNhbF9oYXJtb25pYyhuLCBtLCB0aGV0YSwgcGhpLCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIFwKKyAgIHNwaGVyaWNhbF9oYXJtb25pY19yKHVuc2lnbmVkIG4sIGludCBtLCBUMSB0aGV0YSwgVDIgcGhpKXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OnNwaGVyaWNhbF9oYXJtb25pY19yKG4sIG0sIHRoZXRhLCBwaGksIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgXAorICAgc3BoZXJpY2FsX2hhcm1vbmljX2kodW5zaWduZWQgbiwgaW50IG0sIFQxIHRoZXRhLCBUMiBwaGkpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OnNwaGVyaWNhbF9oYXJtb25pY19pKG4sIG0sIHRoZXRhLCBwaGksIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFBvbGljeT5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBcCisgICAgICBzcGhlcmljYWxfaGFybW9uaWNfaSh1bnNpZ25lZCBuLCBpbnQgbSwgVDEgdGhldGEsIFQyIHBoaSwgY29uc3QgUG9saWN5JiBwb2wpO1wKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDIsIFQzPjo6dHlwZSBcCisgICBlbGxpbnRfcmYoVDEgeCwgVDIgeSwgVDMgeil7IHJldHVybiA6Om5kbmJvb3N0OjptYXRoOjplbGxpbnRfcmYoeCwgeSwgeiwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDM+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDM+Ojp0eXBlIFwKKyAgIGVsbGludF9yZChUMSB4LCBUMiB5LCBUMyB6KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmVsbGludF9yZCh4LCB5LCB6LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIFwKKyAgIGVsbGludF9yYyhUMSB4LCBUMiB5KXsgcmV0dXJuIDo6bmRuYm9vc3Q6Om1hdGg6OmVsbGludF9yYyh4LCB5LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMiwgVDMsIFQ0Pjo6dHlwZSBcCisgICBlbGxpbnRfcmooVDEgeCwgVDIgeSwgVDMgeiwgVDQgcCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6ZWxsaW50X3JqKHgsIHksIHosIHAsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBlbGxpbnRfMihUIGspeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmVsbGludF8yKGssIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZWxsaW50XzIoVDEgaywgVDIgcGhpKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjplbGxpbnRfMihrLCBwaGksIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBlbGxpbnRfMShUIGspeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmVsbGludF8xKGssIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZWxsaW50XzEoVDEgaywgVDIgcGhpKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjplbGxpbnRfMShrLCBwaGksIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDIsIFQzPjo6dHlwZSBlbGxpbnRfMyhUMSBrLCBUMiB2LCBUMyBwaGkpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmVsbGludF8zKGssIHYsIHBoaSwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBlbGxpbnRfMyhUMSBrLCBUMiB2KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjplbGxpbnRfMyhrLCB2LCBQb2xpY3koKSk7IH1cCitcCisgICB1c2luZyBuZG5ib29zdDo6bWF0aDo6bWF4X2ZhY3RvcmlhbDtcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+XAorICAgaW5saW5lIFJUIGZhY3RvcmlhbCh1bnNpZ25lZCBpbnQgaSkgeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmZhY3RvcmlhbDxSVD4oaSwgUG9saWN5KCkpOyB9XAorICAgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6OnVuY2hlY2tlZF9mYWN0b3JpYWw7XAorICAgdGVtcGxhdGUgPGNsYXNzIFJUPlwKKyAgIGlubGluZSBSVCBkb3VibGVfZmFjdG9yaWFsKHVuc2lnbmVkIGkpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmRvdWJsZV9mYWN0b3JpYWw8UlQ+KGksIFBvbGljeSgpKTsgfVwKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGZhbGxpbmdfZmFjdG9yaWFsKFJUIHgsIHVuc2lnbmVkIG4peyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmZhbGxpbmdfZmFjdG9yaWFsKHgsIG4sIFBvbGljeSgpKTsgfVwKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIHJpc2luZ19mYWN0b3JpYWwoUlQgeCwgdW5zaWduZWQgbil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6cmlzaW5nX2ZhY3RvcmlhbCh4LCBuLCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUPjo6dHlwZSB0Z2FtbWEoUlQgeil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6dGdhbW1hKHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIHRnYW1tYTFwbTEoUlQgeil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6dGdhbW1hMXBtMSh6LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgUlQxLCBjbGFzcyBSVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFJUMSwgUlQyPjo6dHlwZSB0Z2FtbWEoUlQxIGEsIFJUMiB6KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjp0Z2FtbWEoYSwgeiwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFJUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxSVD46OnR5cGUgbGdhbW1hKFJUIHosIGludCogc2lnbil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6bGdhbW1hKHosIHNpZ24sIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGxnYW1tYShSVCB4KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpsZ2FtbWEoeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFJUMSwgY2xhc3MgUlQyPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxSVDEsIFJUMj46OnR5cGUgdGdhbW1hX2xvd2VyKFJUMSBhLCBSVDIgeil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6dGdhbW1hX2xvd2VyKGEsIHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDI+Ojp0eXBlIGdhbW1hX3EoUlQxIGEsIFJUMiB6KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpnYW1tYV9xKGEsIHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDI+Ojp0eXBlIGdhbW1hX3AoUlQxIGEsIFJUMiB6KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpnYW1tYV9wKGEsIHosIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgdGdhbW1hX2RlbHRhX3JhdGlvKFQxIHosIFQyIGRlbHRhKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjp0Z2FtbWFfZGVsdGFfcmF0aW8oeiwgZGVsdGEsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgdGdhbW1hX3JhdGlvKFQxIGEsIFQyIGIpIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjp0Z2FtbWFfcmF0aW8oYSwgYiwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBnYW1tYV9wX2Rlcml2YXRpdmUoVDEgYSwgVDIgeCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Z2FtbWFfcF9kZXJpdmF0aXZlKGEsIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZ2FtbWFfcF9pbnYoVDEgYSwgVDIgcCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Z2FtbWFfcF9pbnYoYSwgcCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBnYW1tYV9wX2ludmEoVDEgYSwgVDIgcCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Z2FtbWFfcF9pbnZhKGEsIHAsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQxLCBUMj46OnR5cGUgZ2FtbWFfcV9pbnYoVDEgYSwgVDIgcSl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Z2FtbWFfcV9pbnYoYSwgcSwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBnYW1tYV9xX2ludmEoVDEgYSwgVDIgcSl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Z2FtbWFfcV9pbnZhKGEsIHEsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBkaWdhbW1hKFQgeCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6ZGlnYW1tYSh4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUMSwgVDI+Ojp0eXBlIFwKKyAgIGh5cG90KFQxIHgsIFQyIHkpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6Omh5cG90KHgsIHksIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQ+Ojp0eXBlIGNicnQoUlQgeil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Y2JydCh6LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgbG9nMXAoVCB4KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpsb2cxcCh4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgbG9nMXBteChUIHgpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmxvZzFwbXgoeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGV4cG0xKFQgeCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6ZXhwbTEoeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VDEsIFQyPjo6dHlwZSBcCisgICBwb3dtMShjb25zdCBUMSBhLCBjb25zdCBUMiB6KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpwb3dtMShhLCB6LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc3FydDFwbTEoY29uc3QgVCYgdmFsKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpzcXJ0MXBtMSh2YWwsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBzaW5jX3BpKFQgeCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6c2luY19waSh4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgc2luaGNfcGkoVCB4KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpzaW5oY19waSh4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhc2luaChjb25zdCBUIHgpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmFzaW5oKHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIGFjb3NoKGNvbnN0IFQgeCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6YWNvc2goeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGU8dHlwZW5hbWUgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgYXRhbmgoY29uc3QgVCB4KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjphdGFuaCh4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgUG9saWN5ID46OnJlc3VsdF90eXBlIGN5bF9iZXNzZWxfaihUMSB2LCBUMiB4KVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpjeWxfYmVzc2VsX2oodiwgeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjpkZXRhaWw6OmJlc3NlbF90cmFpdHM8VCwgVCwgUG9saWN5ID46OnJlc3VsdF90eXBlIHNwaF9iZXNzZWwodW5zaWduZWQgdiwgVCB4KVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpzcGhfYmVzc2VsKHYsIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjpkZXRhaWw6OmJlc3NlbF90cmFpdHM8VDEsIFQyLCBQb2xpY3kgPjo6cmVzdWx0X3R5cGUgXAorICAgY3lsX2Jlc3NlbF9pKFQxIHYsIFQyIHgpIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpjeWxfYmVzc2VsX2kodiwgeCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OmRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeSA+OjpyZXN1bHRfdHlwZSBcCisgICBjeWxfYmVzc2VsX2soVDEgdiwgVDIgeCkgeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmN5bF9iZXNzZWxfayh2LCB4LCBQb2xpY3koKSk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgUG9saWN5ID46OnJlc3VsdF90eXBlIFwKKyAgIGN5bF9uZXVtYW5uKFQxIHYsIFQyIHgpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmN5bF9uZXVtYW5uKHYsIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIFBvbGljeSA+OjpyZXN1bHRfdHlwZSBcCisgICBzcGhfbmV1bWFubih1bnNpZ25lZCB2LCBUIHgpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OnNwaF9uZXVtYW5uKHYsIHgsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQsIFQsIFBvbGljeSA+OjpyZXN1bHRfdHlwZSBjeWxfYmVzc2VsX2pfemVybyhUIHYsIGludCBtKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpjeWxfYmVzc2VsX2pfemVybyh2LCBtLCBQb2xpY3koKSk7IH1cCitcCit0ZW1wbGF0ZSA8Y2xhc3MgT3V0cHV0SXRlcmF0b3IsIGNsYXNzIFQ+XAorICAgaW5saW5lIHZvaWQgY3lsX2Jlc3NlbF9qX3plcm8oVCB2LFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydF9pbmRleCxcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJfb2ZfemVyb3MsXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0SXRlcmF0b3Igb3V0X2l0KVwKKyAgIHsgbmRuYm9vc3Q6Om1hdGg6OmN5bF9iZXNzZWxfal96ZXJvKHYsIHN0YXJ0X2luZGV4LCBudW1iZXJfb2ZfemVyb3MsIG91dF9pdCwgUG9saWN5KCkpOyB9XAorXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjpkZXRhaWw6OmJlc3NlbF90cmFpdHM8VCwgVCwgUG9saWN5ID46OnJlc3VsdF90eXBlIGN5bF9uZXVtYW5uX3plcm8oVCB2LCBpbnQgbSlcCisgICB7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Y3lsX25ldW1hbm5femVybyh2LCBtLCBQb2xpY3koKSk7IH1cCitcCit0ZW1wbGF0ZSA8Y2xhc3MgT3V0cHV0SXRlcmF0b3IsIGNsYXNzIFQ+XAorICAgaW5saW5lIHZvaWQgY3lsX25ldW1hbm5femVybyhUIHYsXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRfaW5kZXgsXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJfb2ZfemVyb3MsXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXRJdGVyYXRvciBvdXRfaXQpXAorICAgeyBuZG5ib29zdDo6bWF0aDo6Y3lsX25ldW1hbm5femVybyh2LCBzdGFydF9pbmRleCwgbnVtYmVyX29mX3plcm9zLCBvdXRfaXQsIFBvbGljeSgpKTsgfVwKK1wKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBzaW5fcGkoVCB4KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpzaW5fcGkoeCk7IH1cCitcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgY29zX3BpKFQgeCl7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6Y29zX3BpKHgpOyB9XAorXAorICAgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6OmZwY2xhc3NpZnk7XAorICAgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6OmlzZmluaXRlO1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjppc2luZjtcCisgICB1c2luZyBuZG5ib29zdDo6bWF0aDo6aXNuYW47XAorICAgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6Omlzbm9ybWFsO1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjpzaWduYml0O1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjpzaWduO1wKKyAgIHVzaW5nIG5kbmJvb3N0OjptYXRoOjpjb3B5c2lnbjtcCisgICB1c2luZyBuZG5ib29zdDo6bWF0aDo6Y2hhbmdlc2lnbjtcCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VCxVPjo6dHlwZSBleHBpbnQoVCBjb25zdCYgeiwgVSBjb25zdCYgdSlcCisgICB7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6ZXhwaW50KHosIHUsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBleHBpbnQoVCB6KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpleHBpbnQoeiwgUG9saWN5KCkpOyB9XAorICAgXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjptYXRoOjp0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHpldGEoVCBzKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjp6ZXRhKHMsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSBUIHJvdW5kKGNvbnN0IFQmIHYpeyB1c2luZyBuZG5ib29zdDo6bWF0aDo6cm91bmQ7IHJldHVybiByb3VuZCh2LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgaW50IGlyb3VuZChjb25zdCBUJiB2KXsgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6Omlyb3VuZDsgcmV0dXJuIGlyb3VuZCh2LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgbG9uZyBscm91bmQoY29uc3QgVCYgdil7IHVzaW5nIG5kbmJvb3N0OjptYXRoOjpscm91bmQ7IHJldHVybiBscm91bmQodiwgUG9saWN5KCkpOyB9XAorICAgXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIFQgdHJ1bmMoY29uc3QgVCYgdil7IHVzaW5nIG5kbmJvb3N0OjptYXRoOjp0cnVuYzsgcmV0dXJuIHRydW5jKHYsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSBpbnQgaXRydW5jKGNvbnN0IFQmIHYpeyB1c2luZyBuZG5ib29zdDo6bWF0aDo6aXRydW5jOyByZXR1cm4gaXRydW5jKHYsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSBsb25nIGx0cnVuYyhjb25zdCBUJiB2KXsgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6Omx0cnVuYzsgcmV0dXJuIGx0cnVuYyh2LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgVCBtb2RmKGNvbnN0IFQmIHYsIFQqIGlwYXJ0KXsgdXNpbmcgbmRuYm9vc3Q6Om1hdGg6Om1vZGY7IHJldHVybiBtb2RmKHYsIGlwYXJ0LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgVCBtb2RmKGNvbnN0IFQmIHYsIGludCogaXBhcnQpeyB1c2luZyBuZG5ib29zdDo6bWF0aDo6bW9kZjsgcmV0dXJuIG1vZGYodiwgaXBhcnQsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSBUIG1vZGYoY29uc3QgVCYgdiwgbG9uZyogaXBhcnQpeyB1c2luZyBuZG5ib29zdDo6bWF0aDo6bW9kZjsgcmV0dXJuIG1vZGYodiwgaXBhcnQsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxpbnQgTiwgY2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgcG93KFQgdil7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6cG93PE4+KHYsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPiBUIG5leHRhZnRlcihjb25zdCBUJiBhLCBjb25zdCBUJiBiKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpuZXh0YWZ0ZXIoYSwgYiwgUG9saWN5KCkpOyB9XAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+IFQgZmxvYXRfbmV4dChjb25zdCBUJiBhKXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpmbG9hdF9uZXh0KGEsIFBvbGljeSgpKTsgfVwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPiBUIGZsb2F0X3ByaW9yKGNvbnN0IFQmIGEpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmZsb2F0X3ByaW9yKGEsIFBvbGljeSgpKTsgfVwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPiBUIGZsb2F0X2Rpc3RhbmNlKGNvbnN0IFQmIGEsIGNvbnN0IFQmIGIpeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmZsb2F0X2Rpc3RhbmNlKGEsIGIsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBSVDEsIGNsYXNzIFJUMj5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8UlQxLCBSVDI+Ojp0eXBlIG93ZW5zX3QoUlQxIGEsIFJUMiB6KXsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpvd2Vuc190KGEsIHosIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+XAorICAgaW5saW5lIHN0ZDo6Y29tcGxleDx0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6ZGV0YWlsOjpiZXNzZWxfdHJhaXRzPFQxLCBUMiwgUG9saWN5ID46OnJlc3VsdF90eXBlPiBjeWxfaGFua2VsXzEoVDEgdiwgVDIgeClcCisgICB7ICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmN5bF9oYW5rZWxfMSh2LCB4LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OmRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeSA+OjpyZXN1bHRfdHlwZT4gY3lsX2hhbmtlbF8yKFQxIHYsIFQyIHgpXAorICAgeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmN5bF9oYW5rZWxfMih2LCB4LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OmRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeSA+OjpyZXN1bHRfdHlwZT4gc3BoX2hhbmtlbF8xKFQxIHYsIFQyIHgpXAorICAgeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OnNwaF9oYW5rZWxfMSh2LCB4LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPlwKKyAgIGlubGluZSBzdGQ6OmNvbXBsZXg8dHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OmRldGFpbDo6YmVzc2VsX3RyYWl0czxUMSwgVDIsIFBvbGljeSA+OjpyZXN1bHRfdHlwZT4gc3BoX2hhbmtlbF8yKFQxIHYsIFQyIHgpXAorICAgeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OnNwaF9oYW5rZWxfMih2LCB4LCBQb2xpY3koKSk7IH1cCisgICBcCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD5cCisgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6Om1hdGg6OnRvb2xzOjpwcm9tb3RlX2FyZ3M8VD46OnR5cGUgamFjb2JpX2VsbGlwdGljKFQgaywgVCB0aGV0YSwgVCogcGNuLCBUKiBwZG4pXAorICAgeyByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmphY29iaV9lbGxpcHRpYyhrLCB0aGV0YSwgcGNuLCBwZG4sIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBVLCBjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc24oVSBrLCBUIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfc24oaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfY24oVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfY24oaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfZG4oVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfZG4oaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfY2QoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfY2QoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfZGMoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfZGMoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfbnMoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfbnMoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc2QoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfc2QoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfZHMoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfZHMoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfbmMoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfbmMoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfbmQoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfbmQoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfc2MoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfc2MoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxULCBVPjo6dHlwZSBqYWNvYmlfY3MoVCBrLCBVIHRoZXRhKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjpqYWNvYmlfY3MoaywgdGhldGEsIFBvbGljeSgpKTsgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhaXJ5X2FpKFQgeClcCisgICB7ICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmFpcnlfYWkoeCwgUG9saWN5KCkpOyAgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhaXJ5X2JpKFQgeClcCisgICB7ICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmFpcnlfYmkoeCwgUG9saWN5KCkpOyAgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhaXJ5X2FpX3ByaW1lKFQgeClcCisgICB7ICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmFpcnlfYWlfcHJpbWUoeCwgUG9saWN5KCkpOyAgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6bWF0aDo6dG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSBhaXJ5X2JpX3ByaW1lKFQgeClcCisgICB7ICByZXR1cm4gbmRuYm9vc3Q6Om1hdGg6OmFpcnlfYmlfcHJpbWUoeCwgUG9saWN5KCkpOyAgfVwKKyAgIFwKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPlwKKyAgIGlubGluZSBUIGFpcnlfYWlfemVybyhpbnQgbSlcCisgICB7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6YWlyeV9haV96ZXJvPFQ+KG0sIFBvbGljeSgpKTsgfVwKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBPdXRwdXRJdGVyYXRvcj5cCisgICBPdXRwdXRJdGVyYXRvciBhaXJ5X2FpX3plcm8oaW50IHN0YXJ0X2luZGV4LCB1bnNpZ25lZCBudW1iZXJfb2ZfemVyb3MsIE91dHB1dEl0ZXJhdG9yIG91dF9pdClcCisgICB7IHJldHVybiBuZG5ib29zdDo6bWF0aDo6YWlyeV9haV96ZXJvPFQ+KHN0YXJ0X2luZGV4LCBudW1iZXJfb2ZfemVyb3MsIG91dF9pdCwgUG9saWN5KCkpOyB9XAorICAgXAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+XAorICAgaW5saW5lIFQgYWlyeV9iaV96ZXJvKGludCBtKVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjphaXJ5X2JpX3plcm88VD4obSwgUG9saWN5KCkpOyB9XAorICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIE91dHB1dEl0ZXJhdG9yPlwKKyAgIE91dHB1dEl0ZXJhdG9yIGFpcnlfYmlfemVybyhpbnQgc3RhcnRfaW5kZXgsIHVuc2lnbmVkIG51bWJlcl9vZl96ZXJvcywgT3V0cHV0SXRlcmF0b3Igb3V0X2l0KVwKKyAgIHsgcmV0dXJuIG5kbmJvb3N0OjptYXRoOjphaXJ5X2JpX3plcm88VD4oc3RhcnRfaW5kZXgsIG51bWJlcl9vZl96ZXJvcywgb3V0X2l0LCBQb2xpY3koKSk7IH1cCisgICBcCisKKworCisKKworI2VuZGlmIC8vIEJPT1NUX01BVEhfU1BFQ0lBTF9NQVRIX0ZXRF9IUFAKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvc2lnbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvc3BlY2lhbF9mdW5jdGlvbnMvc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVjYWNmYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9zaWduLmhwcApAQCAtMCwwICsxLDE1MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDYuCisvLyAgKEMpIENvcHlyaWdodCBKb2hhbiBSYWRlIDIwMDYuCisvLyAgKEMpIENvcHlyaWdodCBQYXVsIEEuIEJyaXN0b3cgMjAxMSAoYWRkZWQgY2hhbmdlc2lnbikuCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX01BVEhfVE9PTFNfU0lHTl9IUFAKKyNkZWZpbmUgQk9PU1RfTUFUSF9UT09MU19TSUdOX0hQUAorCisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3Rvb2xzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9tYXRoX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbWF0aC9zcGVjaWFsX2Z1bmN0aW9ucy9kZXRhaWwvZnBfdHJhaXRzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eyBuYW1lc3BhY2UgbWF0aHsgCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisgIC8vIHNpZ25iaXQKKworI2lmZGVmIEJPT1NUX01BVEhfVVNFX1NURF9GUENMQVNTSUZZCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gCisgICAgaW5saW5lIGludCBzaWduYml0X2ltcGwoVCB4LCBuYXRpdmVfdGFnIGNvbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiAoc3RkOjpzaWduYml0KSh4KTsKKyAgICB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IAorICAgIGlubGluZSBpbnQgc2lnbmJpdF9pbXBsKFQgeCwgZ2VuZXJpY190YWc8dHJ1ZT4gY29uc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHggPCAwOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IAorICAgIGlubGluZSBpbnQgc2lnbmJpdF9pbXBsKFQgeCwgZ2VuZXJpY190YWc8ZmFsc2U+IGNvbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiB4IDwgMDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiAKKyAgICBpbmxpbmUgaW50IHNpZ25iaXRfaW1wbChUIHgsIGllZWVfY29weV9hbGxfYml0c190YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworICAgICAgICByZXR1cm4gYSAmIHRyYWl0czo6c2lnbiA/IDEgOiAwOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IAorICAgIGlubGluZSBpbnQgc2lnbmJpdF9pbXBsKFQgeCwgaWVlZV9jb3B5X2xlYWRpbmdfYml0c190YWcgY29uc3QmKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGZwX3RyYWl0czxUPjo6dHlwZSB0cmFpdHM7CisKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0cmFpdHM6OmJpdHMgYTsKKyAgICAgICAgdHJhaXRzOjpnZXRfYml0cyh4LGEpOworCisgICAgICAgIHJldHVybiBhICYgdHJhaXRzOjpzaWduID8gMSA6IDA7CisgICAgfQorCisgICAgLy8gQ2hhbmdlc2lnbgorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBpbmxpbmUgVCAoY2hhbmdlc2lnbl9pbXBsKShUIHgsIGdlbmVyaWNfdGFnPHRydWU+IGNvbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiAteDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIGlubGluZSBUIChjaGFuZ2VzaWduX2ltcGwpKFQgeCwgZ2VuZXJpY190YWc8ZmFsc2U+IGNvbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiAteDsKKyAgICB9CisKKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIFQgY2hhbmdlc2lnbl9pbXBsKFQgeCwgaWVlZV9jb3B5X2FsbF9iaXRzX3RhZyBjb25zdCYpCisgICAgeworICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZnBfdHJhaXRzPFQ+OjpzaWduX2NoYW5nZV90eXBlIHRyYWl0czsKKworICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHRyYWl0czo6Yml0cyBhOworICAgICAgICB0cmFpdHM6OmdldF9iaXRzKHgsYSk7CisgICAgICAgIGEgXj0gdHJhaXRzOjpzaWduOworICAgICAgICB0cmFpdHM6OnNldF9iaXRzKHgsYSk7CisgICAgICAgIHJldHVybiB4OworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgaW5saW5lIFQgKGNoYW5nZXNpZ25faW1wbCkoVCB4LCBpZWVlX2NvcHlfbGVhZGluZ19iaXRzX3RhZyBjb25zdCYpCisgICAgeworICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZnBfdHJhaXRzPFQ+OjpzaWduX2NoYW5nZV90eXBlIHRyYWl0czsKKworICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHRyYWl0czo6Yml0cyBhOworICAgICAgICB0cmFpdHM6OmdldF9iaXRzKHgsYSk7CisgICAgICAgIGEgXj0gdHJhaXRzOjpzaWduOworICAgICAgICB0cmFpdHM6OnNldF9iaXRzKHgsYSk7CisgICAgICAgIHJldHVybiB4OworICAgIH0KKworCit9ICAgLy8gbmFtZXNwYWNlIGRldGFpbAorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbnQgKHNpZ25iaXQpKFQgeCkKK3sgCisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZnBfdHJhaXRzPFQ+Ojp0eXBlIHRyYWl0czsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgdHJhaXRzOjptZXRob2QgbWV0aG9kOworICAgLy8gdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnR5cGUgZnBfdGFnOworICAgdHlwZWRlZiB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHJlc3VsdF90eXBlOworICAgcmV0dXJuIGRldGFpbDo6c2lnbmJpdF9pbXBsKHN0YXRpY19jYXN0PHJlc3VsdF90eXBlPih4KSwgbWV0aG9kKCkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBpbnQgc2lnbiBCT09TVF9OT19NQUNST19FWFBBTkQoY29uc3QgVCYgeikKK3sKKyAgIHJldHVybiAoeiA9PSAwKSA/IDAgOiAobmRuYm9vc3Q6Om1hdGg6OnNpZ25iaXQpKHopID8gLTEgOiAxOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gdHlwZW5hbWUgdG9vbHM6OnByb21vdGVfYXJnczxUPjo6dHlwZSAoY2hhbmdlc2lnbikoY29uc3QgVCYgeCkKK3sgLy8hPCBcYnJpZWYgcmV0dXJuIHVuY2hhbmdlZCBiaW5hcnkgcGF0dGVybiBvZiB4LCBleGNlcHQgZm9yIGNoYW5nZSBvZiBzaWduIGJpdC4gCisgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6ZnBfdHJhaXRzPFQ+OjpzaWduX2NoYW5nZV90eXBlIHRyYWl0czsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgdHJhaXRzOjptZXRob2QgbWV0aG9kOworICAgLy8gdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnR5cGUgZnBfdGFnOworICAgdHlwZWRlZiB0eXBlbmFtZSB0b29sczo6cHJvbW90ZV9hcmdzPFQ+Ojp0eXBlIHJlc3VsdF90eXBlOworCisgICByZXR1cm4gZGV0YWlsOjpjaGFuZ2VzaWduX2ltcGwoc3RhdGljX2Nhc3Q8cmVzdWx0X3R5cGU+KHgpLCBtZXRob2QoKSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgoraW5saW5lIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgCisgICBjb3B5c2lnbiBCT09TVF9OT19NQUNST19FWFBBTkQoY29uc3QgVCYgeCwgY29uc3QgVSYgeSkKK3sKKyAgIEJPT1NUX01BVEhfU1REX1VTSU5HCisgICB0eXBlZGVmIHR5cGVuYW1lIHRvb2xzOjpwcm9tb3RlX2FyZ3M8VCwgVT46OnR5cGUgcmVzdWx0X3R5cGU7CisgICByZXR1cm4gKG5kbmJvb3N0OjptYXRoOjpzaWduYml0KShzdGF0aWNfY2FzdDxyZXN1bHRfdHlwZT4oeCkpICE9IChuZG5ib29zdDo6bWF0aDo6c2lnbmJpdCkoc3RhdGljX2Nhc3Q8cmVzdWx0X3R5cGU+KHkpKSAKKyAgICAgID8gKG5kbmJvb3N0OjptYXRoOjpjaGFuZ2VzaWduKShzdGF0aWNfY2FzdDxyZXN1bHRfdHlwZT4oeCkpIDogc3RhdGljX2Nhc3Q8cmVzdWx0X3R5cGU+KHgpOworfQorCit9IC8vIG5hbWVzcGFjZSBtYXRoCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAvLyBCT09TVF9NQVRIX1RPT0xTX1NJR05fSFBQCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3Rvb2xzL2NvbmZpZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvdG9vbHMvY29uZmlnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTIxNzhjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3Rvb2xzL2NvbmZpZy5ocHAKQEAgLTAsMCArMSwzNTIgQEAKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDYtNyBKb2huIE1hZGRvY2sKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX01BVEhfVE9PTFNfQ09ORklHX0hQUAorI2RlZmluZSBCT09TVF9NQVRIX1RPT0xTX0NPTkZJR19IUFAKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkaW50LmhwcD4gLy8gZm9yIG5kbmJvb3N0Ojp1aW50bWF4X3QKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8YWxnb3JpdGhtPiAgLy8gZm9yIG1pbiBhbmQgbWF4CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnL25vX3RyMS9jbWF0aC5ocHA+CisjaW5jbHVkZSA8Y2xpbWl0cz4KKyNpbmNsdWRlIDxjZmxvYXQ+CisjaWYgKGRlZmluZWQobWFjaW50b3NoKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX0FQUExFX0NDX18pKQorIyAgaW5jbHVkZSA8bWF0aC5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3Rvb2xzL3VzZXIuaHBwPgorCisjaWYgKGRlZmluZWQoX19DWUdXSU5fXykgfHwgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX05ldEJTRF9fKSBcCisgICB8fCAoZGVmaW5lZChfX2hwcGEpICYmICFkZWZpbmVkKF9fT3BlbkJTRF9fKSkgfHwgKGRlZmluZWQoX19OT19MT05HX0RPVUJMRV9NQVRIKSAmJiAoREJMX01BTlRfRElHICE9IExEQkxfTUFOVF9ESUcpKSkgXAorICAgJiYgIWRlZmluZWQoQk9PU1RfTUFUSF9OT19MT05HX0RPVUJMRV9NQVRIX0ZVTkNUSU9OUykKKyMgIGRlZmluZSBCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TCisjZW5kaWYKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTgyKSkKKy8vCisvLyBCb3JsYW5kIHBvc3QgNS44LjIgdXNlcyBEaW5rdW13YXJlJ3Mgc3RkIEMgbGliIHdoaWNoCisvLyBkb2Vzbid0IGhhdmUgdHJ1ZSBsb25nIGRvdWJsZSBwcmVjaXNpb24uICBFYXJsaWVyCisvLyB2ZXJzaW9ucyBhcmUgcHJvYmxlbWF0aWMgdG9vOgorLy8KKyMgIGRlZmluZSBCT09TVF9NQVRIX05PX1JFQUxfQ09OQ0VQVF9URVNUUworIyAgZGVmaW5lIEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMKKyMgIGRlZmluZSBCT09TVF9NQVRIX0NPTlRST0xfRlAgX2NvbnRyb2w4NyhNQ1dfRU0sTUNXX0VNKQorIyAgaW5jbHVkZSA8ZmxvYXQuaD4KKyNlbmRpZgorI2lmZGVmIF9fSUJNQ1BQX18KKy8vCisvLyBGb3IgcmVhc29ucyBJIGRvbid0IHVuc2Vyc3RhbmQsIHRoZSB0ZXN0cyB3aXRoIElNQidzIGNvbXBpbGVyIGFsbAorLy8gcGFzcyBhdCBsb25nIGRvdWJsZSBwcmVjaXNpb24sIGJ1dCBmYWlsIHdpdGggcmVhbF9jb25jZXB0LCB0aG9zZSB0ZXN0cworLy8gYXJlIGRpc2FibGVkIGZvciBub3cuICAoSk0gMjAxMikuCisjICBkZWZpbmUgQk9PU1RfTUFUSF9OT19SRUFMX0NPTkNFUFRfVEVTVFMKKyNlbmRpZgorI2lmIChkZWZpbmVkKG1hY2ludG9zaCkgfHwgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19BUFBMRV9DQ19fKSkgJiYgKChMREJMX01BTlRfRElHID09IDEwNikgfHwgKF9fTERCTF9NQU5UX0RJR19fID09IDEwNikpICYmICFkZWZpbmVkKEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMpCisvLworLy8gRGFyd2luJ3MgcmF0aGVyIHN0cmFuZ2UgImRvdWJsZSBkb3VibGUiIGlzIHJhdGhlciBoYXJkIHRvCisvLyBzdXBwb3J0LCBpdCBzaG91bGQgYmUgcG9zc2libGUgZ2l2ZW4gZW5vdWdoIGVmZm9ydCB0aG91Z2guLi4KKy8vCisjICBkZWZpbmUgQk9PU1RfTUFUSF9OT19MT05HX0RPVUJMRV9NQVRIX0ZVTkNUSU9OUworI2VuZGlmCisjaWYgZGVmaW5lZCh1bml4KSAmJiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpICYmIChfX0lOVEVMX0NPTVBJTEVSIDw9IDEwMDApICYmICFkZWZpbmVkKEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMpCisvLworLy8gSW50ZWwgY29tcGlsZXIgcHJpb3IgdG8gdmVyc2lvbiAxMCBoYXMgc3BvcmFkaWMgcHJvYmxlbXMKKy8vIGNhbGxpbmcgdGhlIGxvbmcgZG91YmxlIG92ZXJsb2FkcyBvZiB0aGUgc3RkIGxpYiBtYXRoIGZ1bmN0aW9uczoKKy8vIGNhbGxpbmcgOjpwb3dsIGlzIE9LLCBidXQgc3RkOjpwb3cobG9uZyBkb3VibGUsIGxvbmcgZG91YmxlKSAKKy8vIG1heSBzZWdmYXVsdCBkZXBlbmRpbmcgdXBvbiB0aGUgdmFsdWUgb2YgdGhlIGFyZ3VtZW50cyBwYXNzZWQgCisvLyBhbmQgdGhlIHNwZWNpZmljIExpbnV4IGRpc3RyaWJ1dGlvbi4KKy8vCisvLyBXZSdsbCBiZSBjb25zZXJ2YXRpdmUgYW5kIGRpc2FibGUgbG9uZyBkb3VibGUgc3VwcG9ydCBmb3IgdGhpcyBjb21waWxlci4KKy8vCisvLyBDb21tZW50IG91dCB0aGlzICNkZWZpbmUgYW5kIHRyeSBidWlsZGluZyB0aGUgdGVzdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKKy8vIHlvdXIgSW50ZWwgY29tcGlsZXIgdmVyc2lvbiBoYXMgdGhpcyBpc3N1ZSBvciBub3QuCisvLworIyAgZGVmaW5lIEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMKKyNlbmRpZgorI2lmIGRlZmluZWQodW5peCkgJiYgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKQorLy8KKy8vIEludGVsIGNvbXBpbGVyIGhhcyBzcG9yYWRpYyBpc3N1ZXMgY29tcGlsaW5nIHN0ZDo6ZnBjbGFzc2lmeSBkZXBlbmRpbmcgb24KKy8vIHRoZSBleGFjdCBPUyB2ZXJzaW9uIHVzZWQuICBVc2Ugb3VyIG93biBjb2RlIGZvciB0aGlzIGFzIHdlIGtub3cgaXQgd29ya3MKKy8vIHdlbGwgb24gSW50ZWwgcHJvY2Vzc29yczoKKy8vCisjZGVmaW5lIEJPT1NUX01BVEhfRElTQUJMRV9TVERfRlBDTEFTU0lGWQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCisgICAvLyBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LCBvdXIgdGVzdHMgZG9uJ3Qgc3VwcG9ydCBoYXJkd2FyZSBleGNlcHRpb25zOgorIyAgZGVmaW5lIEJPT1NUX01BVEhfQ09OVFJPTF9GUCBfY29udHJvbDg3KE1DV19FTSxNQ1dfRU0pCisjZW5kaWYKKworI2lmZGVmIF9fSUJNQ1BQX18KKyMgIGRlZmluZSBCT09TVF9NQVRIX05PX0RFRFVDRURfRlVOQ1RJT05fUE9JTlRFUlMKKyNlbmRpZgorCisjaWYgKGRlZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgKF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxKSkKKyMgIGRlZmluZSBCT09TVF9NQVRIX1VTRV9DOTkKKyNlbmRpZgorCisjaWYgKGRlZmluZWQoX19ocHV4KSAmJiAhZGVmaW5lZChfX2hwcGEpKQorIyAgZGVmaW5lIEJPT1NUX01BVEhfVVNFX0M5OQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9HTElCQ1hYX1VTRV9DOTkpCisjICBkZWZpbmUgQk9PU1RfTUFUSF9VU0VfQzk5CisjZW5kaWYKKworI2lmIGRlZmluZWQoX0xJQkNQUF9WRVJTSU9OKSAmJiAhZGVmaW5lZChfTVNDX1ZFUikKKyMgIGRlZmluZSBCT09TVF9NQVRIX1VTRV9DOTkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9fSFBfYUNDKSB8fCBkZWZpbmVkKEJPT1NUX0lOVEVMKSBcCisgIHx8IGRlZmluZWQoQk9PU1RfTk9fTkFUSVZFX0xPTkdfRE9VQkxFX0ZQX0NMQVNTSUZZKSBcCisgIHx8IChkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChCT09TVF9NQVRIX1VTRV9DOTkpKVwKKyAgfHwgZGVmaW5lZChCT09TVF9NQVRIX05PX0xPTkdfRE9VQkxFX01BVEhfRlVOQ1RJT05TKQorIyAgZGVmaW5lIEJPT1NUX01BVEhfTk9fTkFUSVZFX0xPTkdfRE9VQkxFX0ZQX0NMQVNTSUZZCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fRVhQTElDSVRfRlVOQ1RJT05fVEVNUExBVEVfQVJHVU1FTlRTKSB8fCBCT09TVF9XT1JLQVJPVU5EKF9fU1VOUFJPX0NDLCA8PSAweDU5MCkKKworIyAgaW5jbHVkZSAibmRuYm9vc3QvdHlwZS5ocHAiCisjICBpbmNsdWRlICJuZG5ib29zdC9ub25fdHlwZS5ocHAiCisKKyMgIGRlZmluZSBCT09TVF9NQVRIX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUodCkgICAgICAgICBuZG5ib29zdDo6dHlwZTx0PiogPSAwCisjICBkZWZpbmUgQk9PU1RfTUFUSF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkgICAgbmRuYm9vc3Q6OnR5cGU8dD4qCisjICBkZWZpbmUgQk9PU1RfTUFUSF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KSAgbmRuYm9vc3Q6Om5vbl90eXBlPHQsIHY+KiA9IDAKKyMgIGRlZmluZSBCT09TVF9NQVRIX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFX1NQRUModCwgdikgIG5kbmJvb3N0Ojpub25fdHlwZTx0LCB2PioKKworIyAgZGVmaW5lIEJPT1NUX01BVEhfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUodCkgICAgICAgICBcCisgICAgICAgICAgICAgLCBCT09TVF9NQVRIX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUodCkKKyMgIGRlZmluZSBCT09TVF9NQVRIX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkgICAgXAorICAgICAgICAgICAgICwgQk9PU1RfTUFUSF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkKKyMgIGRlZmluZSBCT09TVF9NQVRIX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KSAgXAorICAgICAgICAgICAgICwgQk9PU1RfTUFUSF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KQorIyAgZGVmaW5lIEJPT1NUX01BVEhfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFX1NQRUModCwgdikgIFwKKyAgICAgICAgICAgICAsIEJPT1NUX01BVEhfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEVfU1BFQyh0LCB2KQorCisjZWxzZQorCisvLyBubyB3b3JrYXJvdW5kIG5lZWRlZDogZXhwYW5kIHRvIG5vdGhpbmcKKworIyAgZGVmaW5lIEJPT1NUX01BVEhfRVhQTElDSVRfVEVNUExBVEVfVFlQRSh0KQorIyAgZGVmaW5lIEJPT1NUX01BVEhfRVhQTElDSVRfVEVNUExBVEVfVFlQRV9TUEVDKHQpCisjICBkZWZpbmUgQk9PU1RfTUFUSF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KQorIyAgZGVmaW5lIEJPT1NUX01BVEhfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEVfU1BFQyh0LCB2KQorCisjICBkZWZpbmUgQk9PU1RfTUFUSF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfVFlQRSh0KQorIyAgZGVmaW5lIEJPT1NUX01BVEhfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEVfU1BFQyh0KQorIyAgZGVmaW5lIEJPT1NUX01BVEhfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFKHQsIHYpCisjICBkZWZpbmUgQk9PU1RfTUFUSF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEVfU1BFQyh0LCB2KQorCisKKyNlbmRpZiAvLyBkZWZpbmVkIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworCisjaWYgKGRlZmluZWQoX19TVU5QUk9fQ0MpIHx8IGRlZmluZWQoX19ocHBhKSB8fCBkZWZpbmVkKF9fR05VQ19fKSkgJiYgIWRlZmluZWQoQk9PU1RfTUFUSF9TTUFMTF9DT05TVEFOVCkKKy8vIFN1bidzIGNvbXBpbGVyIGVtaXRzIGEgaGFyZCBlcnJvciBpZiBhIGNvbnN0YW50IHVuZGVyZmxvd3MsCisvLyBhcyBkb2VzIGFDQyBvbiBQQS1SSVNDLCB3aGlsZSBnY2MgaXNzdWVzIGEgbGFyZ2UgbnVtYmVyIG9mIHdhcm5pbmdzOgorIyAgZGVmaW5lIEJPT1NUX01BVEhfU01BTExfQ09OU1RBTlQoeCkgMAorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9NQVRIX1NNQUxMX0NPTlNUQU5UKHgpIHgKKyNlbmRpZgorCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTQwMCkKKy8vCisvLyBEZWZpbmUgaWYgY29uc3RhbnRzIHRvbyBsYXJnZSBmb3IgYSBmbG9hdCBjYXVzZSAiYmFkIgorLy8gdmFsdWVzIHRvIGJlIHN0b3JlZCBpbiB0aGUgZGF0YSwgcmF0aGVyIHRoYW4gaW5maW5pdHkKKy8vIG9yIGEgc3VpdGFibHkgbGFyZ2UgdmFsdWUuCisvLworIyAgZGVmaW5lIEJPT1NUX01BVEhfQlVHR1lfTEFSR0VfRkxPQVRfQ09OU1RBTlRTCisjZW5kaWYKKy8vCisvLyBUdW5lIHBlcmZvcm1hbmNlIG9wdGlvbnMgZm9yIHNwZWNpZmljIGNvbXBpbGVyczoKKy8vCisjaWZkZWYgQk9PU1RfTVNWQworIyAgZGVmaW5lIEJPT1NUX01BVEhfUE9MWV9NRVRIT0QgMgorI2VsaWYgZGVmaW5lZChCT09TVF9JTlRFTCkKKyMgIGRlZmluZSBCT09TVF9NQVRIX1BPTFlfTUVUSE9EIDIKKyMgIGRlZmluZSBCT09TVF9NQVRIX1JBVElPTkFMX01FVEhPRCAyCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorIyAgZGVmaW5lIEJPT1NUX01BVEhfUE9MWV9NRVRIT0QgMworIyAgZGVmaW5lIEJPT1NUX01BVEhfUkFUSU9OQUxfTUVUSE9EIDMKKyMgIGRlZmluZSBCT09TVF9NQVRIX0lOVF9UQUJMRV9UWVBFKFJULCBJVCkgUlQKKyMgIGRlZmluZSBCT09TVF9NQVRIX0lOVF9WQUxVRV9TVUZGSVgoUlYsIFNVRikgUlYjIy4wTAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0xPTkdfTE9ORykgJiYgIWRlZmluZWQoQk9PU1RfTUFUSF9JTlRfVEFCTEVfVFlQRSkKKyMgIGRlZmluZSBCT09TVF9NQVRIX0lOVF9UQUJMRV9UWVBFKFJULCBJVCkgUlQKKyMgIGRlZmluZSBCT09TVF9NQVRIX0lOVF9WQUxVRV9TVUZGSVgoUlYsIFNVRikgUlYjIy4wTAorI2VuZGlmCisKKy8vCisvLyBUaGUgbWF4aW11bSBvcmRlciBvZiBwb2x5bm9taWFsIHRoYXQgd2lsbCBiZSBldmFsdWF0ZWQgCisvLyB2aWEgYW4gdW5yb2xsZWQgc3BlY2lhbGlzYXRpb246CisvLworI2lmbmRlZiBCT09TVF9NQVRIX01BWF9QT0xZX09SREVSCisjICBkZWZpbmUgQk9PU1RfTUFUSF9NQVhfUE9MWV9PUkRFUiAxNworI2VuZGlmIAorLy8KKy8vIFNldCB0aGUgbWV0aG9kIHVzZWQgdG8gZXZhbHVhdGUgcG9seW5vbWlhbHMgYW5kIHJhdGlvbmFsczoKKy8vCisjaWZuZGVmIEJPT1NUX01BVEhfUE9MWV9NRVRIT0QKKyMgIGRlZmluZSBCT09TVF9NQVRIX1BPTFlfTUVUSE9EIDEKKyNlbmRpZiAKKyNpZm5kZWYgQk9PU1RfTUFUSF9SQVRJT05BTF9NRVRIT0QKKyMgIGRlZmluZSBCT09TVF9NQVRIX1JBVElPTkFMX01FVEhPRCAwCisjZW5kaWYgCisvLworLy8gZGVjaWRlIHdoZXRoZXIgdG8gc3RvcmUgY29uc3RhbnRzIGFzIGludGVnZXJzIG9yIHJlYWxzOgorLy8KKyNpZm5kZWYgQk9PU1RfTUFUSF9JTlRfVEFCTEVfVFlQRQorIyAgZGVmaW5lIEJPT1NUX01BVEhfSU5UX1RBQkxFX1RZUEUoUlQsIElUKSBJVAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX01BVEhfSU5UX1ZBTFVFX1NVRkZJWAorIyAgZGVmaW5lIEJPT1NUX01BVEhfSU5UX1ZBTFVFX1NVRkZJWChSViwgU1VGKSBSViMjU1VGCisjZW5kaWYKKy8vCisvLyBUZXN0IHdoZXRoZXIgdG8gc3VwcG9ydCBfX2Zsb2F0MTI4OgorLy8KKyNpZiBkZWZpbmVkKF9HTElCQ1hYX1VTRV9GTE9BVDEyOCkgJiYgZGVmaW5lZChCT09TVF9HQ0MpICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKKy8vCisvLyBPbmx5IGVuYWJsZSB0aGlzIHdoZW4gdGhlIGNvbXBpbGVyIHJlYWxseSBpcyBHQ0MgYXMgY2xhbmcgYW5kIHByb2JhYmx5IAorLy8gaW50ZWwgdG9vIGRvbid0IHN1cHBvcnQgX19mbG9hdDEyOCB5ZXQgOi0oCisvLworIyAgZGVmaW5lIEJPT1NUX01BVEhfVVNFX0ZMT0FUMTI4CisjZW5kaWYKKy8vCisvLyBDaGVjayBmb3IgV2luQ0Ugd2l0aCBubyBpb3N0cmVhbSBzdXBwb3J0OgorLy8KKyNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpICYmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKQorIyAgZGVmaW5lIEJPT1NUX01BVEhfTk9fTEVYSUNBTF9DQVNUCisjZW5kaWYKKworLy8KKy8vIEhlbHBlciBtYWNybyBmb3IgY29udHJvbGxpbmcgdGhlIEZQIGJlaGF2aW91cjoKKy8vCisjaWZuZGVmIEJPT1NUX01BVEhfQ09OVFJPTF9GUAorIyAgZGVmaW5lIEJPT1NUX01BVEhfQ09OVFJPTF9GUAorI2VuZGlmCisvLworLy8gSGVscGVyIG1hY3JvIGZvciB1c2luZyBzdGF0ZW1lbnRzOgorLy8KKyNkZWZpbmUgQk9PU1RfTUFUSF9TVERfVVNJTkdfQ09SRSBcCisgICB1c2luZyBzdGQ6OmFicztcCisgICB1c2luZyBzdGQ6OmFjb3M7XAorICAgdXNpbmcgc3RkOjpjb3M7XAorICAgdXNpbmcgc3RkOjpmbW9kO1wKKyAgIHVzaW5nIHN0ZDo6bW9kZjtcCisgICB1c2luZyBzdGQ6OnRhbjtcCisgICB1c2luZyBzdGQ6OmFzaW47XAorICAgdXNpbmcgc3RkOjpjb3NoO1wKKyAgIHVzaW5nIHN0ZDo6ZnJleHA7XAorICAgdXNpbmcgc3RkOjpwb3c7XAorICAgdXNpbmcgc3RkOjp0YW5oO1wKKyAgIHVzaW5nIHN0ZDo6YXRhbjtcCisgICB1c2luZyBzdGQ6OmV4cDtcCisgICB1c2luZyBzdGQ6OmxkZXhwO1wKKyAgIHVzaW5nIHN0ZDo6c2luO1wKKyAgIHVzaW5nIHN0ZDo6YXRhbjI7XAorICAgdXNpbmcgc3RkOjpmYWJzO1wKKyAgIHVzaW5nIHN0ZDo6bG9nO1wKKyAgIHVzaW5nIHN0ZDo6c2luaDtcCisgICB1c2luZyBzdGQ6OmNlaWw7XAorICAgdXNpbmcgc3RkOjpmbG9vcjtcCisgICB1c2luZyBzdGQ6OmxvZzEwO1wKKyAgIHVzaW5nIHN0ZDo6c3FydDsKKworI2RlZmluZSBCT09TVF9NQVRIX1NURF9VU0lORyBCT09TVF9NQVRIX1NURF9VU0lOR19DT1JFCisKK25hbWVzcGFjZSBuZG5ib29zdHsgbmFtZXNwYWNlIG1hdGh7CituYW1lc3BhY2UgdG9vbHMKK3sKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgVCBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04oVCBhLCBUIGIsIFQgYykKK3sKKyAgIHJldHVybiAoc3RkOjptYXgpKChzdGQ6Om1heCkoYSwgYiksIGMpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBUIG1heCBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTihUIGEsIFQgYiwgVCBjLCBUIGQpCit7CisgICByZXR1cm4gKHN0ZDo6bWF4KSgoc3RkOjptYXgpKGEsIGIpLCAoc3RkOjptYXgpKGMsIGQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgdG9vbHMKKwordGVtcGxhdGUgPGNsYXNzIFQ+Cit2b2lkIHN1cHByZXNzX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGNvbnN0IFQmKQoreworfQorCit9fSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QgbmFtZXNwYWNlIG1hdGgKKworI2lmICgoZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pKSB8fCBkZWZpbmVkKF9fUU5YX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykpICYmICFkZWZpbmVkKEJPT1NUX05PX0ZFTlZfSCkKKworICAgI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9mZW52LmhwcD4KKworIyAgaWZkZWYgRkVfQUxMX0VYQ0VQVAorCituYW1lc3BhY2UgbmRuYm9vc3R7IG5hbWVzcGFjZSBtYXRoeworICAgbmFtZXNwYWNlIGRldGFpbAorICAgeworICAgc3RydWN0IGZwdV9ndWFyZAorICAgeworICAgICAgZnB1X2d1YXJkKCkKKyAgICAgIHsKKyAgICAgICAgIGZlZ2V0ZXhjZXB0ZmxhZygmbV9mbGFncywgRkVfQUxMX0VYQ0VQVCk7CisgICAgICAgICBmZWNsZWFyZXhjZXB0KEZFX0FMTF9FWENFUFQpOworICAgICAgfQorICAgICAgfmZwdV9ndWFyZCgpCisgICAgICB7CisgICAgICAgICBmZXNldGV4Y2VwdGZsYWcoJm1fZmxhZ3MsIEZFX0FMTF9FWENFUFQpOworICAgICAgfQorICAgcHJpdmF0ZToKKyAgICAgIGZleGNlcHRfdCBtX2ZsYWdzOworICAgfTsKKworICAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisgICB9fSAvLyBuYW1lc3BhY2VzCisKKyMgICAgZGVmaW5lIEJPT1NUX0ZQVV9FWENFUFRJT05fR1VBUkQgbmRuYm9vc3Q6Om1hdGg6OmRldGFpbDo6ZnB1X2d1YXJkIGxvY2FsX2d1YXJkX29iamVjdDsKKyMgICAgZGVmaW5lIEJPT1NUX01BVEhfSU5TVFJVTUVOVF9GUFUgZG97IGZleGNlcHRfdCBjcHVfZmxhZ3M7IGZlZ2V0ZXhjZXB0ZmxhZygmY3B1X2ZsYWdzLCBGRV9BTExfRVhDRVBUKTsgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX1ZBUklBQkxFKGNwdV9mbGFncyk7IH0gd2hpbGUoMCk7IAorCisjICBlbHNlCisKKyMgICAgZGVmaW5lIEJPT1NUX0ZQVV9FWENFUFRJT05fR1VBUkQKKyMgICAgZGVmaW5lIEJPT1NUX01BVEhfSU5TVFJVTUVOVF9GUFUKKworIyAgZW5kaWYKKworI2Vsc2UgLy8gQWxsIG90aGVyIHBsYXRmb3Jtcy4KKyMgIGRlZmluZSBCT09TVF9GUFVfRVhDRVBUSU9OX0dVQVJECisjICBkZWZpbmUgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX0ZQVQorI2VuZGlmCisKKyNpZmRlZiBCT09TVF9NQVRIX0lOU1RSVU1FTlQKKworIyAgaW5jbHVkZSA8aW9zdHJlYW0+CisjICBpbmNsdWRlIDxpb21hbmlwPgorIyAgaW5jbHVkZSA8dHlwZWluZm8+CisKKyMgIGRlZmluZSBCT09TVF9NQVRIX0lOU1RSVU1FTlRfQ09ERSh4KSBcCisgICAgICBzdGQ6OmNvdXQgPDwgc3RkOjpzZXRwcmVjaXNpb24oMzUpIDw8IF9fRklMRV9fIDw8ICI6IiA8PCBfX0xJTkVfXyA8PCAiICIgPDwgeCA8PCBzdGQ6OmVuZGw7CisjICBkZWZpbmUgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX1ZBUklBQkxFKG5hbWUpIEJPT1NUX01BVEhfSU5TVFJVTUVOVF9DT0RFKEJPT1NUX1NUUklOR0laRShuYW1lKSA8PCAiID0gIiA8PCBuYW1lKQorCisjZWxzZQorCisjICBkZWZpbmUgQk9PU1RfTUFUSF9JTlNUUlVNRU5UX0NPREUoeCkKKyMgIGRlZmluZSBCT09TVF9NQVRIX0lOU1RSVU1FTlRfVkFSSUFCTEUobmFtZSkKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NQVRIX1RPT0xTX0NPTkZJR19IUFAKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21hdGgvdG9vbHMvcHJvbW90aW9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbWF0aC90b29scy9wcm9tb3Rpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYjZkMzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvdG9vbHMvcHJvbW90aW9uLmhwcApAQCAtMCwwICsxLDE1MCBAQAorLy8gYm9vc3RcbWF0aFx0b29sc1xwcm9tb3Rpb24uaHBwCisKKy8vIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNi4KKy8vIENvcHlyaWdodCBQYXVsIEEuIEJyaXN0b3cgMjAwNi4KKworLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQKKy8vIG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyBQcm9tb3RlIGFyZ3VtZW50cyBmdW5jdGlvbnMgdG8gYWxsb3cgbWF0aCBmdW5jdGlvbnMgdG8gaGF2ZSBhcmd1bWVudHMKKy8vIHByb3ZpZGVkIGFzIGludGVnZXIgT1IgcmVhbCAoZmxvYXRpbmctcG9pbnQsIGJ1aWx0LWluIG9yIFVEVCkKKy8vIChjYWxsZWQgQXJpdGhtZXRpY1R5cGUgaW4gZnVuY3Rpb25zIHRoYXQgdXNlIHByb21vdGlvbikKKy8vIHRoYXQgaGVscCB0byByZWR1Y2UgdGhlIHJpc2sgb2YgY3JlYXRpbmcgbXVsdGlwbGUgaW5zdGFudGlhdGlvbnMuCisvLyBBbGxvd3MgY3JlYXRpb24gb2YgYW4gaW5saW5lIHdyYXBwZXIgdGhhdCBmb3J3YXJkcyB0byBhIGZvbyhSVCwgUlQpIGZ1bmN0aW9uLAorLy8gc28geW91IG5ldmVyIGdldCB0byBpbnN0YW50aWF0ZSBhbnkgbWl4ZWQgZm9vKFJULCBJVCkgZnVuY3Rpb25zLgorCisjaWZuZGVmIEJPT1NUX01BVEhfUFJPTU9USU9OX0hQUAorI2RlZmluZSBCT09TVF9NQVRIX1BST01PVElPTl9IUFAKKworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLyBCb29zdCB0eXBlIHRyYWl0czoKKyNpbmNsdWRlIDxuZG5ib29zdC9tYXRoL3Rvb2xzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXRpbmdfcG9pbnQuaHBwPiAvLyBmb3IgbmRuYm9vc3Q6OmlzX2Zsb2F0aW5nX3BvaW50OworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2ludGVncmFsLmhwcD4gLy8gZm9yIG5kbmJvb3N0Ojppc19pbnRlZ3JhbAorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcD4gLy8gZm9yIG5kbmJvb3N0Ojppc19jb252ZXJ0aWJsZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPi8vIGZvciBuZG5ib29zdDo6aXNfc2FtZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+Ly8gZm9yIG5kbmJvb3N0OjpyZW1vdmVfY3YKKy8vIEJvb3N0IFRlbXBsYXRlIG1ldGEgcHJvZ3JhbW1pbmc6CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4gLy8gZm9yIG5kbmJvb3N0OjptcGw6OmlmX2MuCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FuZC5ocHA+IC8vIGZvciBuZG5ib29zdDo6bXBsOjppZl9jLgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9vci5ocHA+IC8vIGZvciBuZG5ib29zdDo6bXBsOjppZl9jLgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3QuaHBwPiAvLyBmb3IgbmRuYm9vc3Q6Om1wbDo6aWZfYy4KKworI2lmZGVmIEJPT1NUX01BVEhfTk9fTE9OR19ET1VCTEVfTUFUSF9GVU5DVElPTlMKKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgbmFtZXNwYWNlIG1hdGgKKyAgeworICAgIG5hbWVzcGFjZSB0b29scworICAgIHsKKyAgICAgIC8vIElmIGVpdGhlciBUMSBvciBUMiBpcyBhbiBpbnRlZ2VyIHR5cGUsCisgICAgICAvLyBwcmV0ZW5kIGl0IHdhcyBhIGRvdWJsZSAoZm9yIHRoZSBwdXJwb3NlcyBvZiBmdXJ0aGVyIGFuYWx5c2lzKS4KKyAgICAgIC8vIFRoZW4gcGljayB0aGUgd2lkZXIgb2YgdGhlIHR3byBmbG9hdGluZy1wb2ludCB0eXBlcworICAgICAgLy8gYXMgdGhlIGFjdHVhbCBzaWduYXR1cmUgdG8gZm9yd2FyZCB0by4KKyAgICAgIC8vIEZvciBleGFtcGxlOgorICAgICAgLy8gZm9vKGludCwgc2hvcnQpIC0+IGRvdWJsZSBmb28oZG91YmxlLCBkb3VibGUpOworICAgICAgLy8gZm9vKGludCwgZmxvYXQpIC0+IGRvdWJsZSBmb28oZG91YmxlLCBkb3VibGUpOworICAgICAgLy8gTm90ZTogTk9UIGZsb2F0IGZvbyhmbG9hdCwgZmxvYXQpCisgICAgICAvLyBmb28oaW50LCBkb3VibGUpIC0+IGZvbyhkb3VibGUsIGRvdWJsZSk7CisgICAgICAvLyBmb28oZG91YmxlLCBmbG9hdCkgLT4gZG91YmxlIGZvbyhkb3VibGUsIGRvdWJsZSk7CisgICAgICAvLyBmb28oZG91YmxlLCBmbG9hdCkgLT4gZG91YmxlIGZvbyhkb3VibGUsIGRvdWJsZSk7CisgICAgICAvLyBmb28oYW55LWludC1vci1mbG9hdC10eXBlLCBsb25nIGRvdWJsZSkgLT4gZm9vKGxvbmcgZG91YmxlLCBsb25nIGRvdWJsZSk7CisgICAgICAvLyBidXQgT05MWSBmbG9hdCBmb28oZmxvYXQsIGZsb2F0KSBpcyB1bmNoYW5nZWQuCisgICAgICAvLyBTbyB0aGUgb25seSB3YXkgdG8gZ2V0IGFuIGVudGlyZWx5IGZsb2F0IHZlcnNpb24gaXMgdG8gY2FsbCBmb28oMS5GLCAyLkYpLAorICAgICAgLy8gQnV0IHNpbmNlIG1vc3QgKGFsbD8pIHRoZSBtYXRoIGZ1bmN0aW9ucyBjb252ZXJ0IHRvIGRvdWJsZSBpbnRlcm5hbGx5LAorICAgICAgLy8gcHJvYmFibHkgdGhlcmUgd291bGQgbm90IGJlIHRoZSBob3BlZC1mb3IgZ2FpbiBieSB1c2luZyBmbG9hdCBoZXJlLgorCisgICAgICAvLyBUaGlzIGZvbGxvd3MgdGhlIEMtY29tcGF0aWJsZSBjb252ZXJzaW9uIHJ1bGVzIG9mIHBvdywgZXRjCisgICAgICAvLyB3aGVyZSBwb3coaW50LCBmbG9hdCkgaXMgY29udmVydGVkIHRvIHBvdyhkb3VibGUsIGRvdWJsZSkuCisKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgc3RydWN0IHByb21vdGVfYXJnCisgICAgICB7IC8vIElmIFQgaXMgaW50ZWdyYWwgdHlwZSwgdGhlbiBwcm9tb3RlIHRvIGRvdWJsZS4KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzxpc19pbnRlZ3JhbDxUPiwgZG91YmxlLCBUPjo6dHlwZSB0eXBlOworICAgICAgfTsKKyAgICAgIC8vIFRoZXNlIGZ1bGwgc3BlY2lhbGlzYXRpb25zIHJlZHVjZSBtcGw6OmlmXyB1c2FnZSBhbmQgc3BlZWQgdXAKKyAgICAgIC8vIGNvbXBpbGF0aW9uOgorICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfYXJnPGZsb2F0PiB7IHR5cGVkZWYgZmxvYXQgdHlwZTsgfTsKKyAgICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2FyZzxkb3VibGU+eyB0eXBlZGVmIGRvdWJsZSB0eXBlOyB9OworICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfYXJnPGxvbmcgZG91YmxlPiB7IHR5cGVkZWYgbG9uZyBkb3VibGUgdHlwZTsgfTsKKyAgICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2FyZzxpbnQ+IHsgIHR5cGVkZWYgZG91YmxlIHR5cGU7IH07CisKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CisgICAgICBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzIKKyAgICAgIHsgLy8gUHJvbW90ZSwgaWYgbmVjZXNzYXJ5LCAmIHBpY2sgdGhlIHdpZGVyIG9mIHRoZSB0d28gZmxvYXRpbmctcG9pbnQgdHlwZXMuCisgICAgICAgIC8vIGZvciBib3RoIHBhcmFtZXRlciB0eXBlcywgaWYgaW50ZWdyYWwgcHJvbW90ZSB0byBkb3VibGUuCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJvbW90ZV9hcmc8VDE+Ojp0eXBlIFQxUDsgLy8gVDEgcGVyaGFwcyBwcm9tb3RlZC4KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcm9tb3RlX2FyZzxUMj46OnR5cGUgVDJQOyAvLyBUMiBwZXJoYXBzIHByb21vdGVkLgorCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjphbmRfPGlzX2Zsb2F0aW5nX3BvaW50PFQxUD4sIGlzX2Zsb2F0aW5nX3BvaW50PFQyUD4gPjo6dHlwZSwgLy8gYm90aCBUMVAgYW5kIFQyUCBhcmUgZmxvYXRpbmctcG9pbnQ/CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl88IHR5cGVuYW1lIG1wbDo6b3JfPGlzX3NhbWU8bG9uZyBkb3VibGUsIFQxUD4sIGlzX3NhbWU8bG9uZyBkb3VibGUsIFQyUD4gPjo6dHlwZSwgLy8gZWl0aGVyIGxvbmcgZG91YmxlPworICAgICAgICAgICAgbG9uZyBkb3VibGUsIC8vIHRoZW4gcmVzdWx0IHR5cGUgaXMgbG9uZyBkb3VibGUuCisgICAgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmXzwgdHlwZW5hbWUgbXBsOjpvcl88aXNfc2FtZTxkb3VibGUsIFQxUD4sIGlzX3NhbWU8ZG91YmxlLCBUMlA+ID46OnR5cGUsIC8vIGVpdGhlciBkb3VibGU/CisgICAgICAgICAgICBkb3VibGUsIC8vIHJlc3VsdCB0eXBlIGlzIGRvdWJsZS4KKyAgICAgICAgICBmbG9hdCAvLyBlbHNlIHJlc3VsdCB0eXBlIGlzIGZsb2F0LgorICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICA+Ojp0eXBlLAorICAgICAgICAgIC8vIGVsc2Ugb25lIG9yIHRoZSBvdGhlciBpcyBhIHVzZXItZGVmaW5lZCB0eXBlOgorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfPCB0eXBlbmFtZSBtcGw6OmFuZF88bXBsOjpub3RfPGlzX2Zsb2F0aW5nX3BvaW50PFQyUD4gPiwgOjpuZG5ib29zdDo6aXNfY29udmVydGlibGU8VDFQLCBUMlA+ID4sIFQyUCwgVDFQPjo6dHlwZT46OnR5cGUgdHlwZTsKKyAgICAgIH07IC8vIHByb21vdGVfYXJnMgorICAgICAgLy8gVGhlc2UgZnVsbCBzcGVjaWFsaXNhdGlvbnMgcmVkdWNlIG1wbDo6aWZfIHVzYWdlIGFuZCBzcGVlZCB1cAorICAgICAgLy8gY29tcGlsYXRpb246CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8ZmxvYXQsIGZsb2F0PiB7IHR5cGVkZWYgZmxvYXQgdHlwZTsgfTsKKyAgICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2FyZ3NfMjxkb3VibGUsIGRvdWJsZT57IHR5cGVkZWYgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8bG9uZyBkb3VibGUsIGxvbmcgZG91YmxlPiB7IHR5cGVkZWYgbG9uZyBkb3VibGUgdHlwZTsgfTsKKyAgICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2FyZ3NfMjxpbnQsIGludD4geyAgdHlwZWRlZiBkb3VibGUgdHlwZTsgfTsKKyAgICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2FyZ3NfMjxpbnQsIGZsb2F0PiB7ICB0eXBlZGVmIGRvdWJsZSB0eXBlOyB9OworICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfYXJnc18yPGZsb2F0LCBpbnQ+IHsgIHR5cGVkZWYgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8aW50LCBkb3VibGU+IHsgIHR5cGVkZWYgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8ZG91YmxlLCBpbnQ+IHsgIHR5cGVkZWYgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8aW50LCBsb25nIGRvdWJsZT4geyAgdHlwZWRlZiBsb25nIGRvdWJsZSB0eXBlOyB9OworICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfYXJnc18yPGxvbmcgZG91YmxlLCBpbnQ+IHsgIHR5cGVkZWYgbG9uZyBkb3VibGUgdHlwZTsgfTsKKyAgICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBwcm9tb3RlX2FyZ3NfMjxmbG9hdCwgZG91YmxlPiB7ICB0eXBlZGVmIGRvdWJsZSB0eXBlOyB9OworICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfYXJnc18yPGRvdWJsZSwgZmxvYXQ+IHsgIHR5cGVkZWYgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8ZmxvYXQsIGxvbmcgZG91YmxlPiB7ICB0eXBlZGVmIGxvbmcgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8bG9uZyBkb3VibGUsIGZsb2F0PiB7ICB0eXBlZGVmIGxvbmcgZG91YmxlIHR5cGU7IH07CisgICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgcHJvbW90ZV9hcmdzXzI8ZG91YmxlLCBsb25nIGRvdWJsZT4geyAgdHlwZWRlZiBsb25nIGRvdWJsZSB0eXBlOyB9OworICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IHByb21vdGVfYXJnc18yPGxvbmcgZG91YmxlLCBkb3VibGU+IHsgIHR5cGVkZWYgbG9uZyBkb3VibGUgdHlwZTsgfTsKKworICAgICAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj1mbG9hdCwgY2xhc3MgVDM9ZmxvYXQsIGNsYXNzIFQ0PWZsb2F0LCBjbGFzcyBUNT1mbG9hdCwgY2xhc3MgVDY9ZmxvYXQ+CisgICAgICBzdHJ1Y3QgcHJvbW90ZV9hcmdzCisgICAgICB7CisgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByb21vdGVfYXJnc18yPAorICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PFQxPjo6dHlwZSwKKyAgICAgICAgICAgIHR5cGVuYW1lIHByb21vdGVfYXJnc18yPAorICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PFQyPjo6dHlwZSwKKyAgICAgICAgICAgICAgIHR5cGVuYW1lIHByb21vdGVfYXJnc18yPAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PFQzPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHByb21vdGVfYXJnc18yPAorICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ0Pjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHByb21vdGVfYXJnc18yPAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ1Pjo6dHlwZSwgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ2Pjo6dHlwZQorICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgPjo6dHlwZSB0eXBlOworCisjaWZkZWYgQk9PU1RfTUFUSF9OT19MT05HX0RPVUJMRV9NQVRIX0ZVTkNUSU9OUworICAgICAgICAgLy8KKyAgICAgICAgIC8vIEd1YXJkIGFnYWluc3QgdXNlIG9mIGxvbmcgZG91YmxlIGlmIGl0J3Mgbm90IHN1cHBvcnRlZDoKKyAgICAgICAgIC8vCisgICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCgwID09IDo6bmRuYm9vc3Q6OmlzX3NhbWU8dHlwZSwgbG9uZyBkb3VibGU+Ojp2YWx1ZSkpOworI2VuZGlmCisgICAgICB9OworCisgICAgfSAvLyBuYW1lc3BhY2UgdG9vbHMKKyAgfSAvLyBuYW1lc3BhY2UgbWF0aAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX01BVEhfUFJPTU9USU9OX0hQUAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21hdGgvdG9vbHMvcmVhbF9jYXN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbWF0aC90b29scy9yZWFsX2Nhc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwOGRjYmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvdG9vbHMvcmVhbF9jYXN0LmhwcApAQCAtMCwwICsxLDI5IEBACisvLyAgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA2LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfTUFUSF9UT09MU19SRUFMX0NBU1RfSFBQCisjZGVmaW5lIEJPT1NUX01BVEhfVE9PTFNfUkVBTF9DQVNUX0hQUAorCisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgb25jZQorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdHsgbmFtZXNwYWNlIG1hdGgKK3sKKyAgbmFtZXNwYWNlIHRvb2xzCisgIHsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVG8sIGNsYXNzIFQ+CisgICAgaW5saW5lIFRvIHJlYWxfY2FzdChUIHQpCisgICAgeworICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUbz4odCk7CisgICAgfQorICB9IC8vIG5hbWVzcGFjZSB0b29scworfSAvLyBuYW1lc3BhY2UgbWF0aAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX01BVEhfVE9PTFNfUkVBTF9DQVNUX0hQUAorCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3Rvb2xzL3VzZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tYXRoL3Rvb2xzL3VzZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYmRhZjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21hdGgvdG9vbHMvdXNlci5ocHAKQEAgLTAsMCArMSw5NyBAQAorLy8gQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA3LgorLy8gQ29weXJpZ2h0IFBhdWwgQS4gQnJpc3RvdyAyMDA3LgorCisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dAorLy8gb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfTUFUSF9UT09MU19VU0VSX0hQUAorI2RlZmluZSBCT09TVF9NQVRIX1RPT0xTX1VTRVJfSFBQCisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gVGhpcyBmaWxlIGNhbiBiZSBtb2RpZmllZCBieSB0aGUgdXNlciB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgcG9saWNpZXMuCisvLyBTZWUgIkNoYW5naW5nIHRoZSBQb2xpY3kgRGVmYXVsdHMiIGluIGRvY3VtZW50YXRpb24uCisKKy8vIGRlZmluZSB0aGlzIGlmIHRoZSBwbGF0Zm9ybSBoYXMgbm8gbG9uZyBkb3VibGUgZnVuY3Rpb25zLAorLy8gb3IgaWYgdGhlIGxvbmcgZG91YmxlIHZlcnNpb25zIGhhdmUgb25seSBkb3VibGUgcHJlY2lzaW9uOgorLy8KKy8vICNkZWZpbmUgQk9PU1RfTUFUSF9OT19MT05HX0RPVUJMRV9NQVRIX0ZVTkNUSU9OUworLy8KKy8vIFBlcmZvcm1hbmNlIHR1bmluZyBvcHRpb25zOgorLy8KKy8vICNkZWZpbmUgQk9PU1RfTUFUSF9QT0xZX01FVEhPRCAzCisvLyAjZGVmaW5lIEJPT1NUX01BVEhfUkFUSU9OQUxfTUVUSE9EIDMKKy8vCisvLyBUaGUgbWF4aW11bSBvcmRlciBvZiBwb2x5bm9taWFsIHRoYXQgd2lsbCBiZSBldmFsdWF0ZWQKKy8vIHZpYSBhbiB1bnJvbGxlZCBzcGVjaWFsaXNhdGlvbjoKKy8vCisvLyAjZGVmaW5lIEJPT1NUX01BVEhfTUFYX1BPTFlfT1JERVIgMTcKKy8vCisvLyBkZWNpZGUgd2hldGhlciB0byBzdG9yZSBjb25zdGFudHMgYXMgaW50ZWdlcnMgb3IgcmVhbHM6CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX0lOVF9UQUJMRV9UWVBFKFJULCBJVCkgSVQKKworLy8KKy8vIERlZmF1bHQgcG9saWNpZXMgZm9sbG93OgorLy8KKy8vIERvbWFpbiBlcnJvcnM6CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX0RPTUFJTl9FUlJPUl9QT0xJQ1kgdGhyb3dfb25fZXJyb3IKKy8vCisvLyBQb2xlIGVycm9yczoKKy8vCisvLyAjZGVmaW5lIEJPT1NUX01BVEhfUE9MRV9FUlJPUl9QT0xJQ1kgdGhyb3dfb25fZXJyb3IKKy8vCisvLyBPdmVyZmxvdyBFcnJvcnM6CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX09WRVJGTE9XX0VSUk9SX1BPTElDWSB0aHJvd19vbl9lcnJvcgorLy8KKy8vIEludGVybmFsIEV2YWx1YXRpb24gRXJyb3JzOgorLy8KKy8vICNkZWZpbmUgQk9PU1RfTUFUSF9FVkFMVUFUSU9OX0VSUk9SX1BPTElDWSB0aHJvd19vbl9lcnJvcgorLy8KKy8vIFVuZGVyZm93OgorLy8KKy8vICNkZWZpbmUgQk9PU1RfTUFUSF9VTkRFUkZMT1dfRVJST1JfUE9MSUNZIGlnbm9yZV9lcnJvcgorLy8KKy8vIERlbm9ybXM6CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX0RFTk9STV9FUlJPUl9QT0xJQ1kgaWdub3JlX2Vycm9yCisvLworLy8gTWF4IGRpZ2l0cyB0byB1c2UgZm9yIGludGVybmFsIGNhbGN1bGF0aW9uczoKKy8vCisvLyAjZGVmaW5lIEJPT1NUX01BVEhfRElHSVRTMTBfUE9MSUNZIDAKKy8vCisvLyBQcm9tb3RlIGZsb2F0cyB0byBkb3VibGVzIGludGVybmFsbHk/CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX1BST01PVEVfRkxPQVRfUE9MSUNZIHRydWUKKy8vCisvLyBQcm9tb3RlIGRvdWJsZXMgdG8gbG9uZyBkb3VibGUgaW50ZXJuYWxseToKKy8vCisvLyAjZGVmaW5lIEJPT1NUX01BVEhfUFJPTU9URV9ET1VCTEVfUE9MSUNZIHRydWUKKy8vCisvLyBXaGF0IGRvIGRpc2NyZXRlIHF1YW50aWxlcyByZXR1cm4/CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX0RJU0NSRVRFX1FVQU5USUxFX1BPTElDWSBpbnRlZ2VyX3JvdW5kX291dHdhcmRzCisvLworLy8gSWYgYSBmdW5jdGlvbiBpcyBtYXRoZW1hdGljYWxseSB1bmRlZmluZWQKKy8vIChmb3IgZXhhbXBsZSB0aGUgQ2F1Y2h5IGRpc3RyaWJ1dGlvbiBoYXMgbm8gbWVhbiksCisvLyB0aGVuIGRvIHdlIHN0b3AgdGhlIGNvZGUgZnJvbSBjb21waWxpbmc/CisvLworLy8gI2RlZmluZSBCT09TVF9NQVRIX0FTU0VSVF9VTkRFRklORURfUE9MSUNZIHRydWUKKy8vCisvLyBNYXhpbXVtIHNlcmllcyBpdGVyc3Rpb25zIHBlcm1pdHRlZDoKKy8vCisvLyAjZGVmaW5lIEJPT1NUX01BVEhfTUFYX1NFUklFU19JVEVSQVRJT05fUE9MSUNZIDEwMDAwMDAKKy8vCisvLyBNYXhpbXVtIHJvb3QgZmluZGluZyBzdGVwcyBwZXJtaXR0ZWQ6CisvLworLy8gZGVmaW5lIEJPT1NUX01BVEhfTUFYX1JPT1RfSVRFUkFUSU9OX1BPTElDWSAyMDAKKworI2VuZGlmIC8vIEJPT1NUX01BVEhfVE9PTFNfVVNFUl9IUFAKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21lbV9mbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21lbV9mbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YyYjliMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbWVtX2ZuLmhwcApAQCAtMCwwICsxLDI0IEBACisjaWZuZGVmIEJPT1NUX01FTV9GTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTUVNX0ZOX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBtZW1fZm4uaHBwIC0gYSBnZW5lcmFsaXphdGlvbiBvZiBzdGQ6Om1lbV9mdW5bX3JlZl0KKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA5IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvYmluZC9tZW1fZm4uaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kL21lbV9mbi5ocHA+CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX01FTV9GTl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbWVtb3J5X29yZGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbWVtb3J5X29yZGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTQyOTBjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tZW1vcnlfb3JkZXIuaHBwCkBAIC0wLDAgKzEsNTMgQEAKKyNpZm5kZWYgQk9PU1RfTUVNT1JZX09SREVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NRU1PUllfT1JERVJfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLyAgYm9vc3QvbWVtb3J5X29yZGVyLmhwcAorLy8KKy8vICBEZWZpbmVzIGVudW0gbmRuYm9vc3Q6Om1lbW9yeV9vcmRlciBwZXIgdGhlIEMrKzB4IHdvcmtpbmcgZHJhZnQKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKy8vCisvLyBFbnVtIHZhbHVlcyBhcmUgY2hvc2VuIHNvIHRoYXQgY29kZSB0aGF0IG5lZWRzIHRvIGluc2VydAorLy8gYSB0cmFpbGluZyBmZW5jZSBmb3IgYWNxdWlyZSBzZW1hbnRpY3MgY2FuIHVzZSBhIHNpbmdsZQorLy8gdGVzdCBzdWNoIGFzOgorLy8KKy8vIGlmKCBtbyAmIG1lbW9yeV9vcmRlcl9hY3F1aXJlICkgeyAuLi5mZW5jZS4uLiB9CisvLworLy8gRm9yIGxlYWRpbmcgZmVuY2VzIG9uZSBjYW4gdXNlOgorLy8KKy8vIGlmKCBtbyAmIG1lbW9yeV9vcmRlcl9yZWxlYXNlICkgeyAuLi5mZW5jZS4uLiB9CisvLworLy8gQXJjaGl0ZWN0dXJlcyBzdWNoIGFzIEFscGhhIHRoYXQgbmVlZCBhIGZlbmNlIG9uIGNvbnN1bWUKKy8vIGNhbiB1c2U6CisvLworLy8gaWYoIG1vICYgKCBtZW1vcnlfb3JkZXJfYWNxdWlyZSB8IG1lbW9yeV9vcmRlcl9jb25zdW1lICkgKSB7IC4uLmZlbmNlLi4uIH0KKy8vCisKK2VudW0gbWVtb3J5X29yZGVyCit7CisgICAgbWVtb3J5X29yZGVyX3JlbGF4ZWQgPSAwLAorICAgIG1lbW9yeV9vcmRlcl9hY3F1aXJlID0gMSwKKyAgICBtZW1vcnlfb3JkZXJfcmVsZWFzZSA9IDIsCisgICAgbWVtb3J5X29yZGVyX2FjcV9yZWwgPSAzLCAvLyBhY3F1aXJlIHwgcmVsZWFzZQorICAgIG1lbW9yeV9vcmRlcl9zZXFfY3N0ID0gNywgLy8gYWNxX3JlbCB8IDQKKyAgICBtZW1vcnlfb3JkZXJfY29uc3VtZSA9IDgKK307CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX01FTU9SWV9PUkRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9hbGdvcml0aG0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL2FsZ29yaXRobS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZlYWVmMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9hbGdvcml0aG0uaHBwCkBAIC0wLDAgKzEsMjc1IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAxMi0yMDEyLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21vdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vISBcZmlsZQorCisjaWZuZGVmIEJPT1NUX01PVkVfQUxHT1JJVEhNX0hQUAorI2RlZmluZSBCT09TVF9NT1ZFX0FMR09SSVRITV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL3V0aWxpdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvaXRlcmF0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvYWxnb3JpdGhtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvbm9fZXhjZXB0aW9uc19zdXBwb3J0LmhwcD4KKworI2luY2x1ZGUgPGFsZ29yaXRobT4gLy9jb3B5LCBjb3B5X2JhY2t3YXJkCisjaW5jbHVkZSA8bWVtb3J5PiAgICAvL3VuaW5pdGlhbGl6ZWRfY29weQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyNpZiAhZGVmaW5lZChCT09TVF9NT1ZFX1VTRV9TVEFOREFSRF9MSUJSQVJZX01PVkUpCisKKyAgIC8vISA8Yj5FZmZlY3RzPC9iPjogTW92ZXMgZWxlbWVudHMgaW4gdGhlIHJhbmdlIFtmaXJzdCxsYXN0KSBpbnRvIHRoZSByYW5nZSBbcmVzdWx0LHJlc3VsdCArIChsYXN0IC0KKyAgIC8vISAgIGZpcnN0KSkgc3RhcnRpbmcgZnJvbSBmaXJzdCBhbmQgcHJvY2VlZGluZyB0byBsYXN0LiBGb3IgZWFjaCBub24tbmVnYXRpdmUgaW50ZWdlciBuIDwgKGxhc3QtZmlyc3QpLAorICAgLy8hICAgcGVyZm9ybXMgKihyZXN1bHQgKyBuKSA9IDo6bmRuYm9vc3Q6Om1vdmUgKCooZmlyc3QgKyBuKSkuCisgICAvLyEKKyAgIC8vISA8Yj5FZmZlY3RzPC9iPjogcmVzdWx0ICsgKGxhc3QgLSBmaXJzdCkuCisgICAvLyEKKyAgIC8vISA8Yj5SZXF1aXJlczwvYj46IHJlc3VsdCBzaGFsbCBub3QgYmUgaW4gdGhlIHJhbmdlIFtmaXJzdCxsYXN0KS4KKyAgIC8vIQorICAgLy8hIDxiPkNvbXBsZXhpdHk8L2I+OiBFeGFjdGx5IGxhc3QgLSBmaXJzdCBtb3ZlIGFzc2lnbm1lbnRzLgorICAgdGVtcGxhdGUgPHR5cGVuYW1lIEksIC8vIEkgbW9kZWxzIElucHV0SXRlcmF0b3IKKyAgICAgICAgICAgIHR5cGVuYW1lIE8+IC8vIE8gbW9kZWxzIE91dHB1dEl0ZXJhdG9yCisgICBPIG1vdmUoSSBmLCBJIGwsIE8gcmVzdWx0KQorICAgeworICAgICAgd2hpbGUgKGYgIT0gbCkgeworICAgICAgICAgKnJlc3VsdCA9IDo6bmRuYm9vc3Q6Om1vdmUoKmYpOworICAgICAgICAgKytmOyArK3Jlc3VsdDsKKyAgICAgIH0KKyAgICAgIHJldHVybiByZXN1bHQ7CisgICB9CisKKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgLy8KKyAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVfYmFja3dhcmQKKyAgIC8vCisgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgLy8hIDxiPkVmZmVjdHM8L2I+OiBNb3ZlcyBlbGVtZW50cyBpbiB0aGUgcmFuZ2UgW2ZpcnN0LGxhc3QpIGludG8gdGhlIHJhbmdlCisgICAvLyEgICBbcmVzdWx0IC0gKGxhc3QtZmlyc3QpLHJlc3VsdCkgc3RhcnRpbmcgZnJvbSBsYXN0IC0gMSBhbmQgcHJvY2VlZGluZyB0bworICAgLy8hICAgZmlyc3QuIEZvciBlYWNoIHBvc2l0aXZlIGludGVnZXIgbiA8PSAobGFzdCAtIGZpcnN0KSwKKyAgIC8vISAgIHBlcmZvcm1zICoocmVzdWx0IC0gbikgPSA6Om5kbmJvb3N0Ojptb3ZlKCoobGFzdCAtIG4pKS4KKyAgIC8vIQorICAgLy8hIDxiPlJlcXVpcmVzPC9iPjogcmVzdWx0IHNoYWxsIG5vdCBiZSBpbiB0aGUgcmFuZ2UgW2ZpcnN0LGxhc3QpLgorICAgLy8hCisgICAvLyEgPGI+UmV0dXJuczwvYj46IHJlc3VsdCAtIChsYXN0IC0gZmlyc3QpLgorICAgLy8hCisgICAvLyEgPGI+Q29tcGxleGl0eTwvYj46IEV4YWN0bHkgbGFzdCAtIGZpcnN0IGFzc2lnbm1lbnRzLgorICAgdGVtcGxhdGUgPHR5cGVuYW1lIEksIC8vIEkgbW9kZWxzIEJpZGlyZWN0aW9uYWxJdGVyYXRvcgorICAgdHlwZW5hbWUgTz4gLy8gTyBtb2RlbHMgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yCisgICBPIG1vdmVfYmFja3dhcmQoSSBmLCBJIGwsIE8gcmVzdWx0KQorICAgeworICAgICAgd2hpbGUgKGYgIT0gbCkgeworICAgICAgICAgLS1sOyAtLXJlc3VsdDsKKyAgICAgICAgICpyZXN1bHQgPSA6Om5kbmJvb3N0Ojptb3ZlKCpsKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiByZXN1bHQ7CisgICB9CisKKyNlbHNlCisKKyAgIHVzaW5nIDo6c3RkOjptb3ZlX2JhY2t3YXJkOworCisjZW5kaWYgICAvLyFkZWZpbmVkKEJPT1NUX01PVkVfVVNFX1NUQU5EQVJEX0xJQlJBUllfTU9WRSkKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pbml0aWFsaXplZF9tb3ZlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vISA8Yj5FZmZlY3RzPC9iPjoKKy8vISAgIFxjb2RlCisvLyEgICBmb3IgKDsgZmlyc3QgIT0gbGFzdDsgKytyZXN1bHQsICsrZmlyc3QpCisvLyEgICAgICBuZXcgKHN0YXRpY19jYXN0PHZvaWQqPigmKnJlc3VsdCkpCisvLyEgICAgICAgICB0eXBlbmFtZSBpdGVyYXRvcl90cmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPjo6dmFsdWVfdHlwZShuZG5ib29zdDo6bW92ZSgqZmlyc3QpKTsKKy8vISAgIFxlbmRjb2RlCisvLyEKKy8vISA8Yj5SZXR1cm5zPC9iPjogcmVzdWx0Cit0ZW1wbGF0ZQorICAgPHR5cGVuYW1lIEksIC8vIEkgbW9kZWxzIElucHV0SXRlcmF0b3IKKyAgICB0eXBlbmFtZSBGPiAvLyBGIG1vZGVscyBGb3J3YXJkSXRlcmF0b3IKK0YgdW5pbml0aWFsaXplZF9tb3ZlKEkgZiwgSSBsLCBGIHIKKyAgIC8vLyBAY29uZAorLy8gICAsdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmVuYWJsZV9pZjxoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDx0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxJPjo6dmFsdWVfdHlwZT4gPjo6dHlwZSogPSAwCisgICAvLy8gQGVuZGNvbmQKKyAgICkKK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8ST46OnZhbHVlX3R5cGUgaW5wdXRfdmFsdWVfdHlwZTsKKworICAgRiBiYWNrID0gcjsKKyAgIEJPT1NUX1RSWXsKKyAgICAgIHdoaWxlIChmICE9IGwpIHsKKyAgICAgICAgIHZvaWQgKiBjb25zdCBhZGRyID0gc3RhdGljX2Nhc3Q8dm9pZCo+KDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjphZGRyZXNzb2YoKnIpKTsKKyAgICAgICAgIDo6bmV3KGFkZHIpIGlucHV0X3ZhbHVlX3R5cGUoOjpuZG5ib29zdDo6bW92ZSgqZikpOworICAgICAgICAgKytmOyArK3I7CisgICAgICB9CisgICB9CisgICBCT09TVF9DQVRDSCguLi4peworCSAgIGZvciAoOyBiYWNrICE9IHI7ICsrYmFjayl7CisgICAgICAgICBiYWNrLT5+aW5wdXRfdmFsdWVfdHlwZSgpOworICAgICAgfQorCSAgIEJPT1NUX1JFVEhST1c7CisgICB9CisgICBCT09TVF9DQVRDSF9FTkQKKyAgIHJldHVybiByOworfQorCisvLy8gQGNvbmQKKy8qCit0ZW1wbGF0ZQorICAgPHR5cGVuYW1lIEksICAgLy8gSSBtb2RlbHMgSW5wdXRJdGVyYXRvcgorICAgIHR5cGVuYW1lIEY+ICAgLy8gRiBtb2RlbHMgRm9yd2FyZEl0ZXJhdG9yCitGIHVuaW5pdGlhbGl6ZWRfbW92ZShJIGYsIEkgbCwgRiByLAorICAgdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmRpc2FibGVfaWY8aGFzX21vdmVfZW11bGF0aW9uX2VuYWJsZWQ8dHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8ST46OnZhbHVlX3R5cGU+ID46OnR5cGUqID0gMCkKK3sKKyAgIHJldHVybiBzdGQ6OnVuaW5pdGlhbGl6ZWRfY29weShmLCBsLCByKTsKK30KKyovCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW5pdGlhbGl6ZWRfY29weV9vcl9tb3ZlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKK3RlbXBsYXRlCis8dHlwZW5hbWUgSSwgICAvLyBJIG1vZGVscyBJbnB1dEl0ZXJhdG9yCit0eXBlbmFtZSBGPiAgIC8vIEYgbW9kZWxzIEZvcndhcmRJdGVyYXRvcgoraW5saW5lIEYgdW5pbml0aWFsaXplZF9tb3ZlX21vdmVfaXRlcmF0b3IoSSBmLCBJIGwsIEYgcgorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICx0eXBlbmFtZSA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZW5hYmxlX2lmPCBoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDx0eXBlbmFtZSBJOjp2YWx1ZV90eXBlPiA+Ojp0eXBlKiA9IDAKKykKK3sKKyAgIHJldHVybiA6Om5kbmJvb3N0Ojp1bmluaXRpYWxpemVkX21vdmUoZiwgbCwgcik7Cit9CisvKgordGVtcGxhdGUKKzx0eXBlbmFtZSBJLCAgIC8vIEkgbW9kZWxzIElucHV0SXRlcmF0b3IKK3R5cGVuYW1lIEY+ICAgLy8gRiBtb2RlbHMgRm9yd2FyZEl0ZXJhdG9yCitGIHVuaW5pdGlhbGl6ZWRfbW92ZV9tb3ZlX2l0ZXJhdG9yKEkgZiwgSSBsLCBGIHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjpkaXNhYmxlX2lmPCBoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDx0eXBlbmFtZSBJOjp2YWx1ZV90eXBlPiA+Ojp0eXBlKiA9IDApCit7CisgICByZXR1cm4gc3RkOjp1bmluaXRpYWxpemVkX2NvcHkoZi5iYXNlKCksIGwuYmFzZSgpLCByKTsKK30KKyovCit9ICAvL25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKK3RlbXBsYXRlCis8dHlwZW5hbWUgSSwgICAvLyBJIG1vZGVscyBJbnB1dEl0ZXJhdG9yCit0eXBlbmFtZSBGPiAgIC8vIEYgbW9kZWxzIEZvcndhcmRJdGVyYXRvcgoraW5saW5lIEYgdW5pbml0aWFsaXplZF9jb3B5X29yX21vdmUoSSBmLCBJIGwsIEYgciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmVuYWJsZV9pZjwgbW92ZV9kZXRhaWw6OmlzX21vdmVfaXRlcmF0b3I8ST4gPjo6dHlwZSogPSAwKQoreworICAgcmV0dXJuIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjp1bmluaXRpYWxpemVkX21vdmVfbW92ZV9pdGVyYXRvcihmLCBsLCByKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weV9vcl9tb3ZlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKK3RlbXBsYXRlCis8dHlwZW5hbWUgSSwgICAvLyBJIG1vZGVscyBJbnB1dEl0ZXJhdG9yCit0eXBlbmFtZSBGPiAgIC8vIEYgbW9kZWxzIEZvcndhcmRJdGVyYXRvcgoraW5saW5lIEYgbW92ZV9tb3ZlX2l0ZXJhdG9yKEkgZiwgSSBsLCBGIHIKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmVuYWJsZV9pZjwgaGFzX21vdmVfZW11bGF0aW9uX2VuYWJsZWQ8dHlwZW5hbWUgSTo6dmFsdWVfdHlwZT4gPjo6dHlwZSogPSAwCispCit7CisgICByZXR1cm4gOjpuZG5ib29zdDo6bW92ZShmLCBsLCByKTsKK30KKy8qCit0ZW1wbGF0ZQorPHR5cGVuYW1lIEksICAgLy8gSSBtb2RlbHMgSW5wdXRJdGVyYXRvcgordHlwZW5hbWUgRj4gICAvLyBGIG1vZGVscyBGb3J3YXJkSXRlcmF0b3IKK0YgbW92ZV9tb3ZlX2l0ZXJhdG9yKEkgZiwgSSBsLCBGIHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjpkaXNhYmxlX2lmPCBoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDx0eXBlbmFtZSBJOjp2YWx1ZV90eXBlPiA+Ojp0eXBlKiA9IDApCit7CisgICByZXR1cm4gc3RkOjpjb3B5KGYuYmFzZSgpLCBsLmJhc2UoKSwgcik7Cit9CisqLworCit9ICAvL25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKK3RlbXBsYXRlCis8dHlwZW5hbWUgSSwgICAvLyBJIG1vZGVscyBJbnB1dEl0ZXJhdG9yCit0eXBlbmFtZSBGPiAgIC8vIEYgbW9kZWxzIEZvcndhcmRJdGVyYXRvcgoraW5saW5lIEYgY29weV9vcl9tb3ZlKEkgZiwgSSBsLCBGIHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjplbmFibGVfaWY8IG1vdmVfZGV0YWlsOjppc19tb3ZlX2l0ZXJhdG9yPEk+ID46OnR5cGUqID0gMCkKK3sKKyAgIHJldHVybiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6bW92ZV9tb3ZlX2l0ZXJhdG9yKGYsIGwsIHIpOworfQorCisvLy8gQGVuZGNvbmQKKworLy8hIDxiPkVmZmVjdHM8L2I+OgorLy8hICAgXGNvZGUKKy8vISAgIGZvciAoOyBmaXJzdCAhPSBsYXN0OyArK3Jlc3VsdCwgKytmaXJzdCkKKy8vISAgICAgIG5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KCYqcmVzdWx0KSkKKy8vISAgICAgICAgIHR5cGVuYW1lIGl0ZXJhdG9yX3RyYWl0czxGb3J3YXJkSXRlcmF0b3I+Ojp2YWx1ZV90eXBlKCpmaXJzdCk7CisvLyEgICBcZW5kY29kZQorLy8hCisvLyEgPGI+UmV0dXJuczwvYj46IHJlc3VsdAorLy8hCisvLyEgPGI+Tm90ZTwvYj46IFRoaXMgZnVuY3Rpb24gaXMgcHJvdmlkZWQgYmVjYXVzZQorLy8hICAgPGk+c3RkOjp1bmluaXRpYWxpemVkX2NvcHk8L2k+IGZyb20gc29tZSBTVEwgaW1wbGVtZW50YXRpb25zCisvLyEgICAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCA8aT5tb3ZlX2l0ZXJhdG9yPC9pPgordGVtcGxhdGUKKzx0eXBlbmFtZSBJLCAgIC8vIEkgbW9kZWxzIElucHV0SXRlcmF0b3IKK3R5cGVuYW1lIEY+ICAgLy8gRiBtb2RlbHMgRm9yd2FyZEl0ZXJhdG9yCitpbmxpbmUgRiB1bmluaXRpYWxpemVkX2NvcHlfb3JfbW92ZShJIGYsIEkgbCwgRiByCisgICAvLy8gQGNvbmQKKyAgICx0eXBlbmFtZSA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZGlzYWJsZV9pZjwgbW92ZV9kZXRhaWw6OmlzX21vdmVfaXRlcmF0b3I8ST4gPjo6dHlwZSogPSAwCisgICAvLy8gQGVuZGNvbmQKKyAgICkKK3sKKyAgIHJldHVybiBzdGQ6OnVuaW5pdGlhbGl6ZWRfY29weShmLCBsLCByKTsKK30KKworLy8hIDxiPkVmZmVjdHM8L2I+OgorLy8hICAgXGNvZGUKKy8vISAgIGZvciAoOyBmaXJzdCAhPSBsYXN0OyArK3Jlc3VsdCwgKytmaXJzdCkKKy8vISAgICAgICpyZXN1bHQgPSAqZmlyc3Q7CisvLyEgICBcZW5kY29kZQorLy8hCisvLyEgPGI+UmV0dXJuczwvYj46IHJlc3VsdAorLy8hCisvLyEgPGI+Tm90ZTwvYj46IFRoaXMgZnVuY3Rpb24gaXMgcHJvdmlkZWQgYmVjYXVzZQorLy8hICAgPGk+c3RkOjp1bmluaXRpYWxpemVkX2NvcHk8L2k+IGZyb20gc29tZSBTVEwgaW1wbGVtZW50YXRpb25zCisvLyEgICAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCA8aT5tb3ZlX2l0ZXJhdG9yPC9pPgordGVtcGxhdGUKKzx0eXBlbmFtZSBJLCAgIC8vIEkgbW9kZWxzIElucHV0SXRlcmF0b3IKK3R5cGVuYW1lIEY+ICAgLy8gRiBtb2RlbHMgRm9yd2FyZEl0ZXJhdG9yCitpbmxpbmUgRiBjb3B5X29yX21vdmUoSSBmLCBJIGwsIEYgcgorICAgLy8vIEBjb25kCisgICAsdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmRpc2FibGVfaWY8IG1vdmVfZGV0YWlsOjppc19tb3ZlX2l0ZXJhdG9yPEk+ID46OnR5cGUqID0gMAorICAgLy8vIEBlbmRjb25kCisgICApCit7CisgICByZXR1cm4gc3RkOjpjb3B5KGYsIGwsIHIpOworfQorCit9ICAvL25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfZW5kLmhwcD4KKworI2VuZGlmIC8vI2lmbmRlZiBCT09TVF9NT1ZFX01PVkVfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21vdmUvY29yZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21vdmUvY29yZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJlNDdlYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9jb3JlLmhwcApAQCAtMCwwICsxLDMzMiBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gKEMpIENvcHlyaWdodCBJb24gR2F6dGFuYWdhIDIwMTItMjAxMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tb3ZlIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyEgXGZpbGUgY29yZS5ocHAKKy8vISBUaGlzIGhlYWRlciBpbXBsZW1lbnRzIG1hY3JvcyB0byBkZWZpbmUgbW92YWJsZSBjbGFzc2VzIGFuZAorLy8hIG1vdmUtYXdhcmUgZnVuY3Rpb25zCisKKyNpZm5kZWYgQk9PU1RfTU9WRV9DT1JFX0hQUAorI2RlZmluZSBCT09TVF9NT1ZFX0NPUkVfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwPgorCisjaWZkZWYgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyAgICNkZWZpbmUgQk9PU1RfTU9WRV9JTVBMX05PX0NPUFlfQ1RPUl9PUl9BU1NJR04oVFlQRSkgXAorICAgICAgcHJpdmF0ZTpcCisgICAgICBUWVBFKFRZUEUgJik7XAorICAgICAgVFlQRSYgb3BlcmF0b3I9KFRZUEUgJik7XAorICAgLy8KKyNlbHNlCisgICAjZGVmaW5lIEJPT1NUX01PVkVfSU1QTF9OT19DT1BZX0NUT1JfT1JfQVNTSUdOKFRZUEUpIFwKKyAgICAgIHB1YmxpYzpcCisgICAgICBUWVBFKFRZUEUgY29uc3QgJikgPSBkZWxldGU7XAorICAgICAgVFlQRSYgb3BlcmF0b3I9KFRZUEUgY29uc3QgJikgPSBkZWxldGU7XAorICAgICAgcHJpdmF0ZTpcCisgICAvLworI2VuZGlmICAgLy9CT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykgJiYgIWRlZmluZWQoQk9PU1RfTU9WRV9ET1hZR0VOX0lOVk9LRUQpCisKKyAgICNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9tZXRhX3V0aWxzLmhwcD4KKworICAgLy9Nb3ZlIGVtdWxhdGlvbiBydiBicmVha3Mgc3RhbmRhcmQgYWxpYXNpbmcgcnVsZXMgc28gYWRkIHdvcmthcm91bmRzIGZvciBzb21lIGNvbXBpbGVycworICAgI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+PSA0KQorICAgICAgI2RlZmluZSBCT09TVF9NT1ZFX0FUVFJJQlVURV9NQVlfQUxJQVMgX19hdHRyaWJ1dGVfXygoX19tYXlfYWxpYXNfXykpCisgICAjZWxzZQorICAgICAgI2RlZmluZSBCT09TVF9NT1ZFX0FUVFJJQlVURV9NQVlfQUxJQVMKKyAgICNlbmRpZgorCisgICBuYW1lc3BhY2UgbmRuYm9vc3QgeworCisgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgIC8vCisgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnYKKyAgIC8vCisgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgY2xhc3MgcnYKKyAgICAgIDogcHVibGljIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppZl9jCisgICAgICAgICA8IDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppc19jbGFzc19vcl91bmlvbjxUPjo6dmFsdWUKKyAgICAgICAgICwgVAorICAgICAgICAgLCA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZW1wdHkKKyAgICAgICAgID46OnR5cGUKKyAgIHsKKyAgICAgIHJ2KCk7CisgICAgICB+cnYoKTsKKyAgICAgIHJ2KHJ2IGNvbnN0Jik7CisgICAgICB2b2lkIG9wZXJhdG9yPShydiBjb25zdCYpOworICAgfSBCT09TVF9NT1ZFX0FUVFJJQlVURV9NQVlfQUxJQVM7CisKKworICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAvLworICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZV9kZXRhaWw6OmlzX3J2CisgICAvLworICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgIG5hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgc3RydWN0IGlzX3J2CisgICAgICA6IDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLCBmYWxzZT4KKyAgIHt9OworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCBpc19ydjwgcnY8VD4gPgorICAgICAgOiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4KKyAgIHt9OworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCBpc19ydjwgY29uc3QgcnY8VD4gPgorICAgICAgOiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4KKyAgIHt9OworCisgICB9ICAvL25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgLy8KKyAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc19tb3ZlX2VtdWxhdGlvbl9lbmFibGVkCisgICAvLworICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgc3RydWN0IGhhc19tb3ZlX2VtdWxhdGlvbl9lbmFibGVkCisgICAgICA6IDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppc19jb252ZXJ0aWJsZTwgVCwgOjpuZG5ib29zdDo6cnY8VD4mID4KKyAgIHt9OworCisgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgc3RydWN0IGhhc19tb3ZlX2VtdWxhdGlvbl9lbmFibGVkPFQmPgorICAgICAgOiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgZmFsc2U+CisgICB7fTsKKworICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgIHN0cnVjdCBoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDwgOjpuZG5ib29zdDo6cnY8VD4gPgorICAgICAgOiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgZmFsc2U+CisgICB7fTsKKworICAgfSAgLy9uYW1lc3BhY2UgbmRuYm9vc3QgeworCisgICAjZGVmaW5lIEJPT1NUX1JWX1JFRihUWVBFKVwKKyAgICAgIDo6bmRuYm9vc3Q6OnJ2PCBUWVBFID4mIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGXzJfVEVNUExfQVJHUyhUWVBFLCBBUkcxLCBBUkcyKVwKKyAgICAgIDo6bmRuYm9vc3Q6OnJ2PCBUWVBFPEFSRzEsIEFSRzI+ID4mIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGXzNfVEVNUExfQVJHUyhUWVBFLCBBUkcxLCBBUkcyLCBBUkczKVwKKyAgICAgIDo6bmRuYm9vc3Q6OnJ2PCBUWVBFPEFSRzEsIEFSRzIsIEFSRzM+ID4mIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGX0JFR1wKKyAgICAgIDo6bmRuYm9vc3Q6OnJ2PCAgIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGX0VORFwKKyAgICAgID4mIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfRldEX1JFRihUWVBFKVwKKyAgICAgIGNvbnN0IFRZUEUgJiBcCisgICAvLworCisgICAjZGVmaW5lIEJPT1NUX0NPUFlfQVNTSUdOX1JFRihUWVBFKVwKKyAgICAgIGNvbnN0IDo6bmRuYm9vc3Q6OnJ2PCBUWVBFID4mIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfQ09QWV9BU1NJR05fUkVGX0JFRyBcCisgICAgICBjb25zdCA6Om5kbmJvb3N0OjpydjwgIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfQ09QWV9BU1NJR05fUkVGX0VORCBcCisgICAgICA+JiBcCisgICAvLworCisgICAjZGVmaW5lIEJPT1NUX0NPUFlfQVNTSUdOX1JFRl8yX1RFTVBMX0FSR1MoVFlQRSwgQVJHMSwgQVJHMilcCisgICAgICBjb25zdCA6Om5kbmJvb3N0OjpydjwgVFlQRTxBUkcxLCBBUkcyPiA+JiBcCisgICAvLworCisgICAjZGVmaW5lIEJPT1NUX0NPUFlfQVNTSUdOX1JFRl8zX1RFTVBMX0FSR1MoVFlQRSwgQVJHMSwgQVJHMiwgQVJHMylcCisgICAgICBjb25zdCA6Om5kbmJvb3N0OjpydjwgVFlQRTxBUkcxLCBBUkcyLCBBUkczPiA+JiBcCisgICAvLworCisgICAjZGVmaW5lIEJPT1NUX0NBVENIX0NPTlNUX1JMVkFMVUUoVFlQRSlcCisgICAgICBjb25zdCA6Om5kbmJvb3N0OjpydjwgVFlQRSA+JiBcCisgICAvLworCisgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgIC8vCisgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9NT1ZBQkxFX0JVVF9OT1RfQ09QWUFCTEUKKyAgIC8vCisgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICNkZWZpbmUgQk9PU1RfTU9WQUJMRV9CVVRfTk9UX0NPUFlBQkxFKFRZUEUpXAorICAgICAgQk9PU1RfTU9WRV9JTVBMX05PX0NPUFlfQ1RPUl9PUl9BU1NJR04oVFlQRSlcCisgICAgICBwdWJsaWM6XAorICAgICAgb3BlcmF0b3IgOjpuZG5ib29zdDo6cnY8VFlQRT4mKCkgXAorICAgICAgeyAgcmV0dXJuICpzdGF0aWNfY2FzdDwgOjpuZG5ib29zdDo6cnY8VFlQRT4qID4odGhpcyk7ICB9XAorICAgICAgb3BlcmF0b3IgY29uc3QgOjpuZG5ib29zdDo6cnY8VFlQRT4mKCkgY29uc3QgXAorICAgICAgeyAgcmV0dXJuICpzdGF0aWNfY2FzdDxjb25zdCA6Om5kbmJvb3N0OjpydjxUWVBFPiogPih0aGlzKTsgIH1cCisgICAgICBwcml2YXRlOlwKKyAgIC8vCisKKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgLy8KKyAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0NPUFlBQkxFX0FORF9NT1ZBQkxFCisgICAvLworICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICNkZWZpbmUgQk9PU1RfQ09QWUFCTEVfQU5EX01PVkFCTEUoVFlQRSlcCisgICAgICBwdWJsaWM6XAorICAgICAgVFlQRSYgb3BlcmF0b3I9KFRZUEUgJnQpXAorICAgICAgeyAgdGhpcy0+b3BlcmF0b3I9KHN0YXRpY19jYXN0PGNvbnN0IDo6bmRuYm9vc3Q6OnJ2PFRZUEU+ICY+KGNvbnN0X2Nhc3Q8Y29uc3QgVFlQRSAmPih0KSkpOyByZXR1cm4gKnRoaXM7fVwKKyAgICAgIHB1YmxpYzpcCisgICAgICBvcGVyYXRvciA6Om5kbmJvb3N0OjpydjxUWVBFPiYoKSBcCisgICAgICB7ICByZXR1cm4gKnN0YXRpY19jYXN0PCA6Om5kbmJvb3N0OjpydjxUWVBFPiogPih0aGlzKTsgIH1cCisgICAgICBvcGVyYXRvciBjb25zdCA6Om5kbmJvb3N0OjpydjxUWVBFPiYoKSBjb25zdCBcCisgICAgICB7ICByZXR1cm4gKnN0YXRpY19jYXN0PGNvbnN0IDo6bmRuYm9vc3Q6OnJ2PFRZUEU+KiA+KHRoaXMpOyAgfVwKKyAgICAgIHByaXZhdGU6XAorICAgLy8KKworICAgI2RlZmluZSBCT09TVF9DT1BZQUJMRV9BTkRfTU9WQUJMRV9BTFQoVFlQRSlcCisgICAgICBwdWJsaWM6XAorICAgICAgb3BlcmF0b3IgOjpuZG5ib29zdDo6cnY8VFlQRT4mKCkgXAorICAgICAgeyAgcmV0dXJuICpzdGF0aWNfY2FzdDwgOjpuZG5ib29zdDo6cnY8VFlQRT4qID4odGhpcyk7ICB9XAorICAgICAgb3BlcmF0b3IgY29uc3QgOjpuZG5ib29zdDo6cnY8VFlQRT4mKCkgY29uc3QgXAorICAgICAgeyAgcmV0dXJuICpzdGF0aWNfY2FzdDxjb25zdCA6Om5kbmJvb3N0OjpydjxUWVBFPiogPih0aGlzKTsgIH1cCisgICAgICBwcml2YXRlOlwKKyAgIC8vCisKKyNlbHNlICAgIC8vQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKworICAgLy9Db21waWxlciB3b3JrYXJvdW5kIGRldGVjdGlvbgorICAgI2lmICFkZWZpbmVkKEJPT1NUX01PVkVfRE9YWUdFTl9JTlZPS0VEKQorICAgICAgI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01JTk9SX18gPCA1KSAmJiAhZGVmaW5lZChfX2NsYW5nX18pCisgICAgICAgICAvL1ByZS1zdGFuZGFyZCBydmFsdWUgYmluZGluZyBydWxlcworICAgICAgICAgI2RlZmluZSBCT09TVF9NT1ZFX09MRF9SVkFMVUVfUkVGX0JJTkRJTkdfUlVMRVMKKyAgICAgICNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA9PSAxNjAwKQorICAgICAgICAgLy9TdGFuZGFyZCBydmFsdWUgYmluZGluZyBydWxlcyBidXQgd2l0aCBzb21lIGJ1Z3MKKyAgICAgICAgICNkZWZpbmUgQk9PU1RfTU9WRV9NU1ZDXzEwX01FTUJFUl9SVkFMVUVfUkVGX0JVRworICAgICAgICAgLy9Vc2Ugc3RhbmRhcmQgbGlicmFyeSBmb3IgTVNWQyB0byBhdm9pZCBuYW1lc3BhY2UgaXNzdWVzIGFzCisgICAgICAgICAvL3NvbWUgbW92ZSBjYWxscyBpbiB0aGUgU1RMIGFyZSBub3QgZnVsbHkgcXVhbGlmaWVkLgorICAgICAgICAgLy8jZGVmaW5lIEJPT1NUX01PVkVfVVNFX1NUQU5EQVJEX0xJQlJBUllfTU9WRQorICAgICAgI2VuZGlmCisgICAjZW5kaWYKKworICAgLy8hIFRoaXMgbWFjcm8gbWFya3MgYSB0eXBlIGFzIG1vdmFibGUgYnV0IG5vdCBjb3B5YWJsZSwgZGlzYWJsaW5nIGNvcHkgY29uc3RydWN0aW9uCisgICAvLyEgYW5kIGFzc2lnbm1lbnQuIFRoZSB1c2VyIHdpbGwgbmVlZCB0byB3cml0ZSBhIG1vdmUgY29uc3RydWN0b3IvYXNzaWdubWVudCBhcyBleHBsYWluZWQKKyAgIC8vISBpbiB0aGUgZG9jdW1lbnRhdGlvbiB0byBmdWxseSB3cml0ZSBhIG1vdmFibGUgYnV0IG5vdCBjb3B5YWJsZSBjbGFzcy4KKyAgICNkZWZpbmUgQk9PU1RfTU9WQUJMRV9CVVRfTk9UX0NPUFlBQkxFKFRZUEUpXAorICAgICAgQk9PU1RfTU9WRV9JTVBMX05PX0NPUFlfQ1RPUl9PUl9BU1NJR04oVFlQRSlcCisgICAgICBwdWJsaWM6XAorICAgICAgdHlwZWRlZiBpbnQgYm9vc3RfbW92ZV9lbXVsYXRpb25fdDtcCisgICAvLworCisgICAvLyEgVGhpcyBtYWNybyBtYXJrcyBhIHR5cGUgYXMgY29weWFibGUgYW5kIG1vdmFibGUuCisgICAvLyEgVGhlIHVzZXIgd2lsbCBuZWVkIHRvIHdyaXRlIGEgbW92ZSBjb25zdHJ1Y3Rvci9hc3NpZ25tZW50IGFuZCBhIGNvcHkgYXNzaWdubWVudAorICAgLy8hIGFzIGV4cGxhaW5lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiB0byBmdWxseSB3cml0ZSBhIGNvcHlhYmxlIGFuZCBtb3ZhYmxlIGNsYXNzLgorICAgI2RlZmluZSBCT09TVF9DT1BZQUJMRV9BTkRfTU9WQUJMRShUWVBFKVwKKyAgIC8vCisKKyAgICNpZiAhZGVmaW5lZChCT09TVF9NT1ZFX0RPWFlHRU5fSU5WT0tFRCkKKyAgICNkZWZpbmUgQk9PU1RfQ09QWUFCTEVfQU5EX01PVkFCTEVfQUxUKFRZUEUpXAorICAgLy8KKyAgICNlbmRpZiAgIC8vI2lmICFkZWZpbmVkKEJPT1NUX01PVkVfRE9YWUdFTl9JTlZPS0VEKQorCisgICBuYW1lc3BhY2UgbmRuYm9vc3QgeworCisgICAvLyFUaGlzIHRyYWl0IHlpZWxkcyB0byBhIGNvbXBpbGUtdGltZSB0cnVlIGJvb2xlYW4gaWYgVCB3YXMgbWFya2VkIGFzCisgICAvLyFCT09TVF9NT1ZBQkxFX0JVVF9OT1RfQ09QWUFCTEUgb3IgQk9PU1RfQ09QWUFCTEVfQU5EX01PVkFCTEUgYW5kCisgICAvLyFydmFsdWUgcmVmZXJlbmNlcyBhcmUgbm90IGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0uIEZhbHNlIG90aGVyd2lzZS4KKyAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICBzdHJ1Y3QgaGFzX21vdmVfZW11bGF0aW9uX2VuYWJsZWQKKyAgIHsKKyAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7CisgICB9OworCisgICB9ICAvL25hbWVzcGFjZSBuZG5ib29zdHsKKworICAgLy8hVGhpcyBtYWNybyBpcyB1c2VkIHRvIGFjaGlldmUgcG9ydGFibGUgc3ludGF4IGluIG1vdmUKKyAgIC8vIWNvbnN0cnVjdG9ycyBhbmQgYXNzaWdubWVudHMgZm9yIGNsYXNzZXMgbWFya2VkIGFzCisgICAvLyFCT09TVF9DT1BZQUJMRV9BTkRfTU9WQUJMRSBvciBCT09TVF9NT1ZBQkxFX0JVVF9OT1RfQ09QWUFCTEUKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGKFRZUEUpXAorICAgICAgVFlQRSAmJiBcCisgICAvLworCisgICAvLyFUaGlzIG1hY3JvIGlzIHVzZWQgdG8gYWNoaWV2ZSBwb3J0YWJsZSBzeW50YXggaW4gbW92ZQorICAgLy8hY29uc3RydWN0b3JzIGFuZCBhc3NpZ25tZW50cyBmb3IgdGVtcGxhdGUgY2xhc3NlcyBtYXJrZWQgYXMKKyAgIC8vIUJPT1NUX0NPUFlBQkxFX0FORF9NT1ZBQkxFIG9yIEJPT1NUX01PVkFCTEVfQlVUX05PVF9DT1BZQUJMRS4KKyAgIC8vIUFzIG1hY3JvcyBoYXZlIHByb2JsZW1zIHdpdGggY29tbWEtc2VwYXJhdGQgdGVtcGxhdGUgYXJndW1lbnRzLAorICAgLy8hdGhlIHRlbXBsYXRlIGFyZ3VtZW50IG11c3QgYmUgcHJlY2VkZWQgd2l0aCBCT09TVF9SVl9SRUZfU1RBUlQKKyAgIC8vIWFuZCBlbmRlZCB3aXRoIEJPT1NUX1JWX1JFRl9FTkQKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGX0JFR1wKKyAgICAgICAgIFwKKyAgIC8vCisKKyAgIC8vIVRoaXMgbWFjcm8gaXMgdXNlZCB0byBhY2hpZXZlIHBvcnRhYmxlIHN5bnRheCBpbiBtb3ZlCisgICAvLyFjb25zdHJ1Y3RvcnMgYW5kIGFzc2lnbm1lbnRzIGZvciB0ZW1wbGF0ZSBjbGFzc2VzIG1hcmtlZCBhcworICAgLy8hQk9PU1RfQ09QWUFCTEVfQU5EX01PVkFCTEUgb3IgQk9PU1RfTU9WQUJMRV9CVVRfTk9UX0NPUFlBQkxFLgorICAgLy8hQXMgbWFjcm9zIGhhdmUgcHJvYmxlbXMgd2l0aCBjb21tYS1zZXBhcmF0ZCB0ZW1wbGF0ZSBhcmd1bWVudHMsCisgICAvLyF0aGUgdGVtcGxhdGUgYXJndW1lbnQgbXVzdCBiZSBwcmVjZWRlZCB3aXRoIEJPT1NUX1JWX1JFRl9TVEFSVAorICAgLy8hYW5kIGVuZGVkIHdpdGggQk9PU1RfUlZfUkVGX0VORAorICAgI2RlZmluZSBCT09TVF9SVl9SRUZfRU5EXAorICAgICAgJiYgXAorCisgICAvLyFUaGlzIG1hY3JvIGlzIHVzZWQgdG8gYWNoaWV2ZSBwb3J0YWJsZSBzeW50YXggaW4gY29weQorICAgLy8hYXNzaWdubWVudCBmb3IgY2xhc3NlcyBtYXJrZWQgYXMgQk9PU1RfQ09QWUFCTEVfQU5EX01PVkFCTEUuCisgICAjZGVmaW5lIEJPT1NUX0NPUFlfQVNTSUdOX1JFRihUWVBFKVwKKyAgICAgIGNvbnN0IFRZUEUgJiBcCisgICAvLworCisgICAvLyEgVGhpcyBtYWNybyBpcyB1c2VkIHRvIGltcGxlbWVudCBwb3J0YWJsZSBwZXJmZWN0IGZvcndhcmRpbmcKKyAgIC8vISBhcyBleHBsYWluZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisgICAjZGVmaW5lIEJPT1NUX0ZXRF9SRUYoVFlQRSlcCisgICAgICBUWVBFICYmIFwKKyAgIC8vCisKKyAgICNpZiAhZGVmaW5lZChCT09TVF9NT1ZFX0RPWFlHRU5fSU5WT0tFRCkKKyAgIC8vLyBAY29uZAorCisgICAjZGVmaW5lIEJPT1NUX1JWX1JFRl8yX1RFTVBMX0FSR1MoVFlQRSwgQVJHMSwgQVJHMilcCisgICAgICBUWVBFPEFSRzEsIEFSRzI+ICYmIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfUlZfUkVGXzNfVEVNUExfQVJHUyhUWVBFLCBBUkcxLCBBUkcyLCBBUkczKVwKKyAgICAgIFRZUEU8QVJHMSwgQVJHMiwgQVJHMz4gJiYgXAorICAgLy8KKworICAgI2RlZmluZSBCT09TVF9DT1BZX0FTU0lHTl9SRUZfQkVHIFwKKyAgICAgIGNvbnN0IFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfQ09QWV9BU1NJR05fUkVGX0VORCBcCisgICAgICAmIFwKKyAgIC8vCisKKyAgICNkZWZpbmUgQk9PU1RfQ09QWV9BU1NJR05fUkVGXzJfVEVNUExfQVJHUyhUWVBFLCBBUkcxLCBBUkcyKVwKKyAgICAgIGNvbnN0IFRZUEU8QVJHMSwgQVJHMj4gJiBcCisgICAvLworCisgICAjZGVmaW5lIEJPT1NUX0NPUFlfQVNTSUdOX1JFRl8zX1RFTVBMX0FSR1MoVFlQRSwgQVJHMSwgQVJHMiwgQVJHMylcCisgICAgICBjb25zdCBUWVBFPEFSRzEsIEFSRzIsIEFSRzM+JiBcCisgICAvLworCisgICAjZGVmaW5lIEJPT1NUX0NBVENIX0NPTlNUX1JMVkFMVUUoVFlQRSlcCisgICAgICBjb25zdCBUWVBFICYgXAorICAgLy8KKworICAgLy8vIEBlbmRjb25kCisKKyAgICNlbmRpZiAgIC8vI2lmICFkZWZpbmVkKEJPT1NUX01PVkVfRE9YWUdFTl9JTlZPS0VEKQorCisjZW5kaWYgICAvL0JPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfZW5kLmhwcD4KKworI2VuZGlmIC8vI2lmbmRlZiBCT09TVF9NT1ZFX0NPUkVfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM2OGFlYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2JlZ2luLmhwcApAQCAtMCwwICsxLDIzIEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAxMi0yMDEyLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbW92ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWZkZWYgQk9PU1RfTVNWQworICAgI2lmbmRlZiBfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUKKyAgICAgICNkZWZpbmUgIEJPT1NUX01PVkVfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUKKyAgICAgICNkZWZpbmUgX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFCisgICAjZW5kaWYKKyAgICNpZm5kZWYgX1NDTF9TRUNVUkVfTk9fV0FSTklOR1MKKyAgICAgICNkZWZpbmUgIEJPT1NUX01PVkVfU0NMX1NFQ1VSRV9OT19XQVJOSU5HUworICAgICAgI2RlZmluZSBfU0NMX1NFQ1VSRV9OT19XQVJOSU5HUworICAgI2VuZGlmCisgICAjcHJhZ21hIHdhcm5pbmcgKHB1c2gpCisgICAjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGUgOiA0OTk2KSAvLyAiZnVuY3Rpb24iOiB3YXMgZGVjbGFyZWQgZGVwcmVjYXRlZAorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19lbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfZW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDNiY2UwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfZW5kLmhwcApAQCAtMCwwICsxLDIwIEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAxMi0yMDEyLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvY29udGFpbmVyIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworI2lmIGRlZmluZWQgQk9PU1RfTVNWQworICAgI3ByYWdtYSB3YXJuaW5nIChwb3ApCisgICAjaWZkZWYgQk9PU1RfTU9WRV9ERVRBSUxfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUKKyAgICAgICN1bmRlZiBCT09TVF9NT1ZFX0RFVEFJTF9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURQorICAgICAgI3VuZGVmIF9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURQorICAgI2VuZGlmCisgICAjaWZuZGVmIEJPT1NUX01PVkVfU0NMX1NFQ1VSRV9OT19XQVJOSU5HUworICAgICAgI3VuZGVmICBCT09TVF9NT1ZFX1NDTF9TRUNVUkVfTk9fV0FSTklOR1MKKyAgICAgICN1bmRlZiBfU0NMX1NFQ1VSRV9OT19XQVJOSU5HUworICAgI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9kZXRhaWwvbWV0YV91dGlscy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21vdmUvZGV0YWlsL21ldGFfdXRpbHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNjhmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21vdmUvZGV0YWlsL21ldGFfdXRpbHMuaHBwCkBAIC0wLDAgKzEsMTU4IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAxMi0yMDEyLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21vdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vISBcZmlsZQorCisjaWZuZGVmIEJPT1NUX01PVkVfREVUQUlMX01FVEFfVVRJTFNfSFBQCisjZGVmaW5lIEJPT1NUX01PVkVfREVUQUlMX01FVEFfVVRJTFNfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfYmVnaW4uaHBwPgorCisvL1NtYWxsIG1ldGEtdHlwZXRyYWl0cyB0byBzdXBwb3J0IG1vdmUKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7CisKKy8vaWZfCit0ZW1wbGF0ZTxib29sIEMsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KK3N0cnVjdCBpZl9jCit7CisgICB0eXBlZGVmIFQxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CitzdHJ1Y3QgaWZfYzxmYWxzZSxUMSxUMj4KK3sKKyAgIHR5cGVkZWYgVDIgdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+CitzdHJ1Y3QgaWZfCit7CisgICB0eXBlZGVmIHR5cGVuYW1lIGlmX2M8MCAhPSBUMTo6dmFsdWUsIFQyLCBUMz46OnR5cGUgdHlwZTsKK307CisKKy8vZW5hYmxlX2lmXwordGVtcGxhdGUgPGJvb2wgQiwgY2xhc3MgVCA9IHZvaWQ+CitzdHJ1Y3QgZW5hYmxlX2lmX2MKK3sKKyAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgZW5hYmxlX2lmX2M8ZmFsc2UsIFQ+IHt9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IHZvaWQ+CitzdHJ1Y3QgZW5hYmxlX2lmIDogcHVibGljIGVuYWJsZV9pZl9jPENvbmQ6OnZhbHVlLCBUPiB7fTsKKwordGVtcGxhdGUgPGNsYXNzIENvbmQsIGNsYXNzIFQgPSB2b2lkPgorc3RydWN0IGRpc2FibGVfaWYgOiBwdWJsaWMgZW5hYmxlX2lmX2M8IUNvbmQ6OnZhbHVlLCBUPiB7fTsKKworLy9pbnRlZ3JhbF9jb25zdGFudAordGVtcGxhdGU8Y2xhc3MgVCwgVCB2Pgorc3RydWN0IGludGVncmFsX2NvbnN0YW50Cit7CisgICBzdGF0aWMgY29uc3QgVCB2YWx1ZSA9IHY7CisgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKKyAgIHR5cGVkZWYgaW50ZWdyYWxfY29uc3RhbnQ8VCwgdj4gdHlwZTsKK307CisKKy8vaWRlbnRpdHkKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlkZW50aXR5Cit7CisgICB0eXBlZGVmIFQgdHlwZTsKK307CisKKy8vaXNfY29udmVydGlibGUKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorY2xhc3MgaXNfY29udmVydGlibGUKK3sKKyAgIHR5cGVkZWYgY2hhciB0cnVlX3Q7CisgICBjbGFzcyBmYWxzZV90IHsgY2hhciBkdW1teVsyXTsgfTsKKyAgIHN0YXRpYyB0cnVlX3QgZGlzcGF0Y2goVSk7CisgICBzdGF0aWMgZmFsc2VfdCBkaXNwYXRjaCguLi4pOworICAgc3RhdGljIFQgJnRyaWdnZXIoKTsKKyAgIHB1YmxpYzoKKyAgIGVudW0geyB2YWx1ZSA9IHNpemVvZihkaXNwYXRjaCh0cmlnZ2VyKCkpKSA9PSBzaXplb2YodHJ1ZV90KSB9OworfTsKKworLy9hbmRfIG5vdF8KK3RlbXBsYXRlIDx0eXBlbmFtZSBDb25kaXRpb24xLCB0eXBlbmFtZSBDb25kaXRpb24yLCB0eXBlbmFtZSBDb25kaXRpb24zID0gaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4gPgorc3RydWN0IGFuZF8KKyAgIDogcHVibGljIGludGVncmFsX2NvbnN0YW50PGJvb2wsIENvbmRpdGlvbjE6OnZhbHVlICYmIENvbmRpdGlvbjI6OnZhbHVlICYmIENvbmRpdGlvbjM6OnZhbHVlPgore307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCb29sZWFuPgorc3RydWN0IG5vdF8KKyAgIDogcHVibGljIGludGVncmFsX2NvbnN0YW50PGJvb2wsICFCb29sZWFuOjp2YWx1ZT4KK3t9OworCisvL2lzX2x2YWx1ZV9yZWZlcmVuY2UKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfbHZhbHVlX3JlZmVyZW5jZQorICAgOiBwdWJsaWMgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgZmFsc2U+Cit7fTsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBpc19sdmFsdWVfcmVmZXJlbmNlPFQmPgorICAgOiBwdWJsaWMgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4KK3t9OworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGlzX2NsYXNzX29yX3VuaW9uCit7CisgICBzdHJ1Y3QgdHdvY2hhciB7IGNoYXIgX1syXTsgfTsKKyAgIHRlbXBsYXRlIDxjbGFzcyBVPgorICAgc3RhdGljIGNoYXIgaXNfY2xhc3Nfb3JfdW5pb25fdGVzdGVyKHZvaWQoVTo6Kikodm9pZCkpOworICAgdGVtcGxhdGUgPGNsYXNzIFU+CisgICBzdGF0aWMgdHdvY2hhciBpc19jbGFzc19vcl91bmlvbl90ZXN0ZXIoLi4uKTsKKyAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mKGlzX2NsYXNzX29yX3VuaW9uX3Rlc3RlcjxUPigwKSkgPT0gc2l6ZW9mKGNoYXIpOworfTsKKworc3RydWN0IGVtcHR5e307CisKKy8vYWRkcmVzc29mCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgYWRkcl9pbXBsX3JlZgoreworICAgVCAmIHZfOworICAgaW5saW5lIGFkZHJfaW1wbF9yZWYoIFQgJiB2ICk6IHZfKCB2ICkge30KKyAgIGlubGluZSBvcGVyYXRvciBUJiAoKSBjb25zdCB7IHJldHVybiB2XzsgfQorCisgICBwcml2YXRlOgorICAgYWRkcl9pbXBsX3JlZiAmIG9wZXJhdG9yPShjb25zdCBhZGRyX2ltcGxfcmVmICYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGFkZHJlc3NvZl9pbXBsCit7CisgICBzdGF0aWMgaW5saW5lIFQgKiBmKCBUICYgdiwgbG9uZyApCisgICB7CisgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4oCisgICAgICAgICAmY29uc3RfY2FzdDxjaGFyJj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2xhdGlsZSBjaGFyICY+KHYpKSk7CisgICB9CisKKyAgIHN0YXRpYyBpbmxpbmUgVCAqIGYoIFQgKiB2LCBpbnQgKQorICAgeyAgcmV0dXJuIHY7ICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lIFQgKiBhZGRyZXNzb2YoIFQgJiB2ICkKK3sKKyAgIHJldHVybiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6YWRkcmVzc29mX2ltcGw8VD46OmYKKyAgICAgICggOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmFkZHJfaW1wbF9yZWY8VD4oIHYgKSwgMCApOworfQorCit9ICAvL25hbWVzcGFjZSBtb3ZlX2RldGFpbCB7Cit9ICAvL25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfZW5kLmhwcD4KKworI2VuZGlmIC8vI2lmbmRlZiBCT09TVF9NT1ZFX0RFVEFJTF9NRVRBX1VUSUxTX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL2l0ZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIzMzliMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSwyOTggQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIChDKSBDb3B5cmlnaHQgSW9uIEdhenRhbmFnYSAyMDEyLTIwMTIuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbW92ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8hIFxmaWxlCisKKyNpZm5kZWYgQk9PU1RfTU9WRV9JVEVSQVRPUl9IUFAKKyNkZWZpbmUgQk9PU1RfTU9WRV9JVEVSQVRPUl9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS91dGlsaXR5LmhwcD4KKyNpbmNsdWRlIDxpdGVyYXRvcj4gIC8vc3RkOjppdGVyYXRvcgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlX2l0ZXJhdG9yCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vISBDbGFzcyB0ZW1wbGF0ZSBtb3ZlX2l0ZXJhdG9yIGlzIGFuIGl0ZXJhdG9yIGFkYXB0b3Igd2l0aCB0aGUgc2FtZSBiZWhhdmlvcgorLy8hIGFzIHRoZSB1bmRlcmx5aW5nIGl0ZXJhdG9yIGV4Y2VwdCB0aGF0IGl0cyBkZXJlZmVyZW5jZSBvcGVyYXRvciBpbXBsaWNpdGx5CisvLyEgY29udmVydHMgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSB1bmRlcmx5aW5nIGl0ZXJhdG9yJ3MgZGVyZWZlcmVuY2Ugb3BlcmF0b3IKKy8vISB0byBhbiBydmFsdWUgcmVmZXJlbmNlLiBTb21lIGdlbmVyaWMgYWxnb3JpdGhtcyBjYW4gYmUgY2FsbGVkIHdpdGggbW92ZQorLy8hIGl0ZXJhdG9ycyB0byByZXBsYWNlIGNvcHlpbmcgd2l0aCBtb3ZpbmcuCit0ZW1wbGF0ZSA8Y2xhc3MgSXQ+CitjbGFzcyBtb3ZlX2l0ZXJhdG9yCit7CisgICBwdWJsaWM6CisgICB0eXBlZGVmIEl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcl90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czxpdGVyYXRvcl90eXBlPjo6dmFsdWVfdHlwZSAgICAgICAgdmFsdWVfdHlwZTsKKyAgICNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykgfHwgZGVmaW5lZChCT09TVF9NT1ZFX0RPWFlHRU5fSU5WT0tFRCkKKyAgIHR5cGVkZWYgdmFsdWVfdHlwZSAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZTsKKyAgICNlbHNlCisgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppZl8KKyAgICAgIDwgOjpuZG5ib29zdDo6aGFzX21vdmVfZW11bGF0aW9uX2VuYWJsZWQ8dmFsdWVfdHlwZT4KKyAgICAgICwgOjpuZG5ib29zdDo6cnY8dmFsdWVfdHlwZT4mCisgICAgICAsIHZhbHVlX3R5cGUgJiA+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2U7CisgICAjZW5kaWYKKyAgIHR5cGVkZWYgSXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXI7CisgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPGl0ZXJhdG9yX3R5cGU+OjpkaWZmZXJlbmNlX3R5cGUgICBkaWZmZXJlbmNlX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPGl0ZXJhdG9yX3R5cGU+OjppdGVyYXRvcl9jYXRlZ29yeSBpdGVyYXRvcl9jYXRlZ29yeTsKKworICAgbW92ZV9pdGVyYXRvcigpCisgICB7fQorCisgICBleHBsaWNpdCBtb3ZlX2l0ZXJhdG9yKEl0IGkpCisgICAgICA6ICBtX2l0KGkpCisgICB7fQorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4KKyAgIG1vdmVfaXRlcmF0b3IoY29uc3QgbW92ZV9pdGVyYXRvcjxVPiYgdSkKKyAgICAgIDogIG1faXQodS5iYXNlKCkpCisgICB7fQorCisgICBpdGVyYXRvcl90eXBlIGJhc2UoKSBjb25zdAorICAgeyAgcmV0dXJuIG1faXQ7ICAgfQorCisgICByZWZlcmVuY2Ugb3BlcmF0b3IqKCkgY29uc3QKKyAgIHsKKyAgICAgICNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKSB8fCBkZWZpbmVkKEJPT1NUX01PVkVfT0xEX1JWQUxVRV9SRUZfQklORElOR19SVUxFUykKKyAgICAgIHJldHVybiAqbV9pdDsKKyAgICAgICNlbHNlCisgICAgICByZXR1cm4gOjpuZG5ib29zdDo6bW92ZSgqbV9pdCk7CisgICAgICAjZW5kaWYKKyAgIH0KKworICAgcG9pbnRlciAgIG9wZXJhdG9yLT4oKSBjb25zdAorICAgeyAgcmV0dXJuIG1faXQ7ICAgfQorCisgICBtb3ZlX2l0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgIHsgICsrbV9pdDsgcmV0dXJuICp0aGlzOyAgIH0KKworICAgbW92ZV9pdGVyYXRvcjxpdGVyYXRvcl90eXBlPiAgb3BlcmF0b3IrKyhpbnQpCisgICB7ICBtb3ZlX2l0ZXJhdG9yPGl0ZXJhdG9yX3R5cGU+IHRtcCgqdGhpcyk7ICsrKCp0aGlzKTsgcmV0dXJuIHRtcDsgICB9CisKKyAgIG1vdmVfaXRlcmF0b3ImIG9wZXJhdG9yLS0oKQorICAgeyAgLS1tX2l0OyByZXR1cm4gKnRoaXM7ICAgfQorCisgICBtb3ZlX2l0ZXJhdG9yPGl0ZXJhdG9yX3R5cGU+ICBvcGVyYXRvci0tKGludCkKKyAgIHsgIG1vdmVfaXRlcmF0b3I8aXRlcmF0b3JfdHlwZT4gdG1wKCp0aGlzKTsgLS0oKnRoaXMpOyByZXR1cm4gdG1wOyAgIH0KKworICAgbW92ZV9pdGVyYXRvcjxpdGVyYXRvcl90eXBlPiAgb3BlcmF0b3IrIChkaWZmZXJlbmNlX3R5cGUgbikgY29uc3QKKyAgIHsgIHJldHVybiBtb3ZlX2l0ZXJhdG9yPGl0ZXJhdG9yX3R5cGU+KG1faXQgKyBuKTsgIH0KKworICAgbW92ZV9pdGVyYXRvciYgb3BlcmF0b3IrPShkaWZmZXJlbmNlX3R5cGUgbikKKyAgIHsgIG1faXQgKz0gbjsgcmV0dXJuICp0aGlzOyAgIH0KKworICAgbW92ZV9pdGVyYXRvcjxpdGVyYXRvcl90eXBlPiAgb3BlcmF0b3ItIChkaWZmZXJlbmNlX3R5cGUgbikgY29uc3QKKyAgIHsgIHJldHVybiBtb3ZlX2l0ZXJhdG9yPGl0ZXJhdG9yX3R5cGU+KG1faXQgLSBuKTsgIH0KKworICAgbW92ZV9pdGVyYXRvciYgb3BlcmF0b3ItPShkaWZmZXJlbmNlX3R5cGUgbikKKyAgIHsgIG1faXQgLT0gbjsgcmV0dXJuICp0aGlzOyAgIH0KKworICAgcmVmZXJlbmNlIG9wZXJhdG9yW10oZGlmZmVyZW5jZV90eXBlIG4pIGNvbnN0CisgICB7CisgICAgICAjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykgfHwgZGVmaW5lZChCT09TVF9NT1ZFX09MRF9SVkFMVUVfUkVGX0JJTkRJTkdfUlVMRVMpCisgICAgICByZXR1cm4gbV9pdFtuXTsKKyAgICAgICNlbHNlCisgICAgICByZXR1cm4gOjpuZG5ib29zdDo6bW92ZShtX2l0W25dKTsKKyAgICAgICNlbmRpZgorICAgfQorCisgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IG1vdmVfaXRlcmF0b3ImIHgsIGNvbnN0IG1vdmVfaXRlcmF0b3ImIHkpCisgICB7ICByZXR1cm4geC5iYXNlKCkgPT0geS5iYXNlKCk7ICB9CisKKyAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgbW92ZV9pdGVyYXRvciYgeCwgY29uc3QgbW92ZV9pdGVyYXRvciYgeSkKKyAgIHsgIHJldHVybiB4LmJhc2UoKSAhPSB5LmJhc2UoKTsgIH0KKworICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I8IChjb25zdCBtb3ZlX2l0ZXJhdG9yJiB4LCBjb25zdCBtb3ZlX2l0ZXJhdG9yJiB5KQorICAgeyAgcmV0dXJuIHguYmFzZSgpIDwgeS5iYXNlKCk7ICAgfQorCisgICBmcmllbmQgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IG1vdmVfaXRlcmF0b3ImIHgsIGNvbnN0IG1vdmVfaXRlcmF0b3ImIHkpCisgICB7ICByZXR1cm4geC5iYXNlKCkgPD0geS5iYXNlKCk7ICB9CisKKyAgIGZyaWVuZCBib29sIG9wZXJhdG9yPiAoY29uc3QgbW92ZV9pdGVyYXRvciYgeCwgY29uc3QgbW92ZV9pdGVyYXRvciYgeSkKKyAgIHsgIHJldHVybiB4LmJhc2UoKSA+IHkuYmFzZSgpOyAgfQorCisgICBmcmllbmQgYm9vbCBvcGVyYXRvcj49KGNvbnN0IG1vdmVfaXRlcmF0b3ImIHgsIGNvbnN0IG1vdmVfaXRlcmF0b3ImIHkpCisgICB7ICByZXR1cm4geC5iYXNlKCkgPj0geS5iYXNlKCk7ICB9CisKKyAgIGZyaWVuZCBkaWZmZXJlbmNlX3R5cGUgb3BlcmF0b3ItKGNvbnN0IG1vdmVfaXRlcmF0b3ImIHgsIGNvbnN0IG1vdmVfaXRlcmF0b3ImIHkpCisgICB7ICByZXR1cm4geC5iYXNlKCkgLSB5LmJhc2UoKTsgICB9CisKKyAgIGZyaWVuZCBtb3ZlX2l0ZXJhdG9yIG9wZXJhdG9yKyhkaWZmZXJlbmNlX3R5cGUgbiwgY29uc3QgbW92ZV9pdGVyYXRvciYgeCkKKyAgIHsgIHJldHVybiBtb3ZlX2l0ZXJhdG9yKHguYmFzZSgpICsgbik7ICAgfQorCisgICBwcml2YXRlOgorICAgSXQgbV9pdDsKK307CisKKy8vaXNfbW92ZV9pdGVyYXRvcgorbmFtZXNwYWNlIG1vdmVfZGV0YWlsIHsKKwordGVtcGxhdGUgPGNsYXNzIEk+CitzdHJ1Y3QgaXNfbW92ZV9pdGVyYXRvcgorICAgOiBwdWJsaWMgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmludGVncmFsX2NvbnN0YW50PGJvb2wsIGZhbHNlPgoreworfTsKKwordGVtcGxhdGUgPGNsYXNzIEk+CitzdHJ1Y3QgaXNfbW92ZV9pdGVyYXRvcjwgOjpuZG5ib29zdDo6bW92ZV9pdGVyYXRvcjxJPiA+CisgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4KK3sKK307CisKK30gIC8vbmFtZXNwYWNlIG1vdmVfZGV0YWlsIHsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZV9pdGVyYXRvcgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyEKKy8vISA8Yj5SZXR1cm5zPC9iPjogbW92ZV9pdGVyYXRvcjxJdD4oaSkuCit0ZW1wbGF0ZTxjbGFzcyBJdD4KK2lubGluZSBtb3ZlX2l0ZXJhdG9yPEl0PiBtYWtlX21vdmVfaXRlcmF0b3IoY29uc3QgSXQgJml0KQoreyAgcmV0dXJuIG1vdmVfaXRlcmF0b3I8SXQ+KGl0KTsgfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrX21vdmVfaW5zZXJ0X2l0ZXJhdG9yCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKworLy8hIEEgbW92ZSBpbnNlcnQgaXRlcmF0b3IgdGhhdCBtb3ZlIGNvbnN0cnVjdHMgZWxlbWVudHMgYXQgdGhlCisvLyEgYmFjayBvZiBhIGNvbnRhaW5lcgordGVtcGxhdGUgPHR5cGVuYW1lIEM+IC8vIEMgbW9kZWxzIENvbnRhaW5lcgorY2xhc3MgYmFja19tb3ZlX2luc2VydF9pdGVyYXRvcgorICAgOiBwdWJsaWMgc3RkOjppdGVyYXRvcjxzdGQ6Om91dHB1dF9pdGVyYXRvcl90YWcsIHZvaWQsIHZvaWQsIHZvaWQsIHZvaWQ+Cit7CisgICBDKiBjb250YWluZXJfbTsKKworICAgcHVibGljOgorICAgdHlwZWRlZiBDICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUgICB2YWx1ZV90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpyZWZlcmVuY2UgICAgcmVmZXJlbmNlOworCisgICBleHBsaWNpdCBiYWNrX21vdmVfaW5zZXJ0X2l0ZXJhdG9yKEMmIHgpIDogY29udGFpbmVyX20oJngpIHsgfQorCisgICBiYWNrX21vdmVfaW5zZXJ0X2l0ZXJhdG9yJiBvcGVyYXRvcj0ocmVmZXJlbmNlIHgpCisgICB7IGNvbnRhaW5lcl9tLT5wdXNoX2JhY2sobmRuYm9vc3Q6Om1vdmUoeCkpOyByZXR1cm4gKnRoaXM7IH0KKworICAgYmFja19tb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3I9KEJPT1NUX1JWX1JFRih2YWx1ZV90eXBlKSB4KQorICAgeyAgcmVmZXJlbmNlIHJ4ID0geDsgcmV0dXJuIHRoaXMtPm9wZXJhdG9yPShyeCk7ICB9CisKKyAgIGJhY2tfbW92ZV9pbnNlcnRfaXRlcmF0b3ImIG9wZXJhdG9yKigpICAgICB7IHJldHVybiAqdGhpczsgfQorICAgYmFja19tb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IrKygpICAgIHsgcmV0dXJuICp0aGlzOyB9CisgICBiYWNrX21vdmVfaW5zZXJ0X2l0ZXJhdG9yJiBvcGVyYXRvcisrKGludCkgeyByZXR1cm4gKnRoaXM7IH0KK307CisKKy8vIQorLy8hIDxiPlJldHVybnM8L2I+OiBiYWNrX21vdmVfaW5zZXJ0X2l0ZXJhdG9yPEM+KHgpLgordGVtcGxhdGUgPHR5cGVuYW1lIEM+IC8vIEMgbW9kZWxzIENvbnRhaW5lcgoraW5saW5lIGJhY2tfbW92ZV9pbnNlcnRfaXRlcmF0b3I8Qz4gYmFja19tb3ZlX2luc2VydGVyKEMmIHgpCit7CisgICByZXR1cm4gYmFja19tb3ZlX2luc2VydF9pdGVyYXRvcjxDPih4KTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgZnJvbnRfbW92ZV9pbnNlcnRfaXRlcmF0b3IKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8hIEEgbW92ZSBpbnNlcnQgaXRlcmF0b3IgdGhhdCBtb3ZlIGNvbnN0cnVjdHMgZWxlbWVudHMgaW50IHRoZQorLy8hIGZyb250IG9mIGEgY29udGFpbmVyCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQz4gLy8gQyBtb2RlbHMgQ29udGFpbmVyCitjbGFzcyBmcm9udF9tb3ZlX2luc2VydF9pdGVyYXRvcgorICAgOiBwdWJsaWMgc3RkOjppdGVyYXRvcjxzdGQ6Om91dHB1dF9pdGVyYXRvcl90YWcsIHZvaWQsIHZvaWQsIHZvaWQsIHZvaWQ+Cit7CisgICBDKiBjb250YWluZXJfbTsKKworcHVibGljOgorICAgdHlwZWRlZiBDICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnZhbHVlX3R5cGUgICB2YWx1ZV90eXBlOworICAgdHlwZWRlZiB0eXBlbmFtZSBDOjpyZWZlcmVuY2UgICAgcmVmZXJlbmNlOworCisgICBleHBsaWNpdCBmcm9udF9tb3ZlX2luc2VydF9pdGVyYXRvcihDJiB4KSA6IGNvbnRhaW5lcl9tKCZ4KSB7IH0KKworICAgZnJvbnRfbW92ZV9pbnNlcnRfaXRlcmF0b3ImIG9wZXJhdG9yPShyZWZlcmVuY2UgeCkKKyAgIHsgY29udGFpbmVyX20tPnB1c2hfZnJvbnQobmRuYm9vc3Q6Om1vdmUoeCkpOyByZXR1cm4gKnRoaXM7IH0KKworICAgZnJvbnRfbW92ZV9pbnNlcnRfaXRlcmF0b3ImIG9wZXJhdG9yPShCT09TVF9SVl9SRUYodmFsdWVfdHlwZSkgeCkKKyAgIHsgIHJlZmVyZW5jZSByeCA9IHg7IHJldHVybiB0aGlzLT5vcGVyYXRvcj0ocngpOyAgfQorCisgICBmcm9udF9tb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IqKCkgICAgIHsgcmV0dXJuICp0aGlzOyB9CisgICBmcm9udF9tb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IrKygpICAgIHsgcmV0dXJuICp0aGlzOyB9CisgICBmcm9udF9tb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IrKyhpbnQpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvLyEKKy8vISA8Yj5SZXR1cm5zPC9iPjogZnJvbnRfbW92ZV9pbnNlcnRfaXRlcmF0b3I8Qz4oeCkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQz4gLy8gQyBtb2RlbHMgQ29udGFpbmVyCitpbmxpbmUgZnJvbnRfbW92ZV9pbnNlcnRfaXRlcmF0b3I8Qz4gZnJvbnRfbW92ZV9pbnNlcnRlcihDJiB4KQoreworICAgcmV0dXJuIGZyb250X21vdmVfaW5zZXJ0X2l0ZXJhdG9yPEM+KHgpOworfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRfbW92ZV9pdGVyYXRvcgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwordGVtcGxhdGUgPHR5cGVuYW1lIEM+IC8vIEMgbW9kZWxzIENvbnRhaW5lcgorY2xhc3MgbW92ZV9pbnNlcnRfaXRlcmF0b3IKKyAgIDogcHVibGljIHN0ZDo6aXRlcmF0b3I8c3RkOjpvdXRwdXRfaXRlcmF0b3JfdGFnLCB2b2lkLCB2b2lkLCB2b2lkLCB2b2lkPgoreworICAgQyogY29udGFpbmVyX207CisgICB0eXBlbmFtZSBDOjppdGVyYXRvciBwb3NfOworCisgICBwdWJsaWM6CisgICB0eXBlZGVmIEMgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJfdHlwZTsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6dmFsdWVfdHlwZSAgIHZhbHVlX3R5cGU7CisgICB0eXBlZGVmIHR5cGVuYW1lIEM6OnJlZmVyZW5jZSAgICByZWZlcmVuY2U7CisKKyAgIGV4cGxpY2l0IG1vdmVfaW5zZXJ0X2l0ZXJhdG9yKEMmIHgsIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIHBvcykKKyAgICAgIDogY29udGFpbmVyX20oJngpLCBwb3NfKHBvcykKKyAgIHt9CisKKyAgIG1vdmVfaW5zZXJ0X2l0ZXJhdG9yJiBvcGVyYXRvcj0ocmVmZXJlbmNlIHgpCisgICB7CisgICAgICBwb3NfID0gY29udGFpbmVyX20tPmluc2VydChwb3NfLCA6Om5kbmJvb3N0Ojptb3ZlKHgpKTsKKyAgICAgICsrcG9zXzsKKyAgICAgIHJldHVybiAqdGhpczsKKyAgIH0KKworICAgbW92ZV9pbnNlcnRfaXRlcmF0b3ImIG9wZXJhdG9yPShCT09TVF9SVl9SRUYodmFsdWVfdHlwZSkgeCkKKyAgIHsgIHJlZmVyZW5jZSByeCA9IHg7IHJldHVybiB0aGlzLT5vcGVyYXRvcj0ocngpOyAgfQorCisgICBtb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IqKCkgICAgIHsgcmV0dXJuICp0aGlzOyB9CisgICBtb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IrKygpICAgIHsgcmV0dXJuICp0aGlzOyB9CisgICBtb3ZlX2luc2VydF9pdGVyYXRvciYgb3BlcmF0b3IrKyhpbnQpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvLyEKKy8vISA8Yj5SZXR1cm5zPC9iPjogbW92ZV9pbnNlcnRfaXRlcmF0b3I8Qz4oeCwgaXQpLgordGVtcGxhdGUgPHR5cGVuYW1lIEM+IC8vIEMgbW9kZWxzIENvbnRhaW5lcgoraW5saW5lIG1vdmVfaW5zZXJ0X2l0ZXJhdG9yPEM+IG1vdmVfaW5zZXJ0ZXIoQyYgeCwgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXQpCit7CisgICByZXR1cm4gbW92ZV9pbnNlcnRfaXRlcmF0b3I8Qz4oeCwgaXQpOworfQorCit9ICAvL25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9jb25maWdfZW5kLmhwcD4KKworI2VuZGlmIC8vI2lmbmRlZiBCT09TVF9NT1ZFX0lURVJBVE9SX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL21vdmUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL21vdmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMmZmYjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21vdmUvbW92ZS5ocHAKQEAgLTAsMCArMSwyNyBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcywgVmljZW50ZSBCb3RldCAyMDA5LgorLy8gKEMpIENvcHlyaWdodCBJb24gR2F6dGFuYWdhIDIwMDktMjAxMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tb3ZlIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyEgXGZpbGUgbW92ZS5ocHAKKy8vISBBIGdlbmVyYWwgbGlicmFyeSBoZWFkZXIgdGhhdCBpbmNsdWRlcworLy8hIHRoZSByZXN0IG9mIHRvcC1sZXZlbCBoZWFkZXJzLgorCisjaWZuZGVmIEJPT1NUX01PVkVfTU9WRV9IUFAKKyNkZWZpbmUgQk9PU1RfTU9WRV9NT1ZFX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL3V0aWxpdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvaXRlcmF0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvdHJhaXRzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2FsZ29yaXRobS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHA+CisKKyNlbmRpZiAvLyNpZm5kZWYgQk9PU1RfTU9WRV9NT1ZFX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21vdmUvdHJhaXRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2Q1ODVkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL3RyYWl0cy5ocHAKQEAgLTAsMCArMSwxNDIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIChDKSBDb3B5cmlnaHQgSW9uIEdhenRhbmFnYSAyMDA5LTIwMTIuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbW92ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8hIFxmaWxlCisKKyNpZm5kZWYgQk9PU1RfTU9WRV9NT1ZFX1RSQUlUU19IUFAKKyNkZWZpbmUgQk9PU1RfTU9WRV9NT1ZFX1RSQUlUU19IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS9kZXRhaWwvbWV0YV91dGlscy5ocHA+CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2NvcmUuaHBwPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKy8vISBJZiB0aGlzIHRyYWl0IHlpZWxkcyB0byB0cnVlCisvLyEgKDxpPmhhc190cml2aWFsX2Rlc3RydWN0b3JfYWZ0ZXJfbW92ZSAmbHQ7VCZndDs6OnZhbHVlID09IHRydWU8L2k+KQorLy8hIG1lYW5zIHRoYXQgaWYgVCBpcyB1c2VkIGFzIGFyZ3VtZW50IG9mIGEgbW92ZSBjb25zdHJ1Y3Rpb24vYXNzaWdubWVudCwKKy8vISB0aGVyZSBpcyBubyBuZWVkIHRvIGNhbGwgVCdzIGRlc3RydWN0b3IuCisvLyEgVGhpcyBvcHRpbWl6YXRpb24gdGlwaWNhbGx5IGlzIHVzZWQgdG8gaW1wcm92ZSBjb250YWluZXJzJyBwZXJmb3JtYW5jZS4KKy8vIQorLy8hIEJ5IGRlZmF1bHQgdGhpcyB0cmFpdCBpcyB0cnVlIGlmIHRoZSB0eXBlIGhhcyB0cml2aWFsIGRlc3RydWN0b3IsCisvLyEgZXZlcnkgY2xhc3Mgc2hvdWxkIHNwZWNpYWxpemUgdGhpcyB0cmFpdCBpZiBpdCB3YW50cyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlCisvLyEgd2hlbiBpbnNlcnRlZCBpbiBjb250YWluZXJzLgordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvcl9hZnRlcl9tb3ZlCisgICA6IDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2Rlc3RydWN0b3I8VD4KK3t9OworCisvLyEgQnkgZGVmYXVsdCB0aGlzIHRyYWl0cyByZXR1cm5zIGZhbHNlLiBDbGFzc2VzIHdpdGggbm9uLXRocm93aW5nIG1vdmUgY29uc3RydWN0b3IKKy8vISBhbmQgYXNzaWdubWVudCBjYW4gc3BlY2lhbGl6ZSB0aGlzIHRyYWl0IHRvIG9idGFpbiBzb21lIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy4KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGhhc19ub3Rocm93X21vdmUKKyAgIDogcHVibGljIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLCBmYWxzZT4KK3t9OworCituYW1lc3BhY2UgbW92ZV9kZXRhaWwgeworCisvLyBDb2RlIGZyb20gSmVmZnJleSBMZWUgSGVsbHJ1bmcsIG1hbnkgdGhhbmtzCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgIHRlbXBsYXRlPCBjbGFzcyBUPiBzdHJ1Y3QgZm9yd2FyZF90eXBlIHsgdHlwZWRlZiBUIHR5cGU7IH07CisjZWxzZSAvLyAjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICB0ZW1wbGF0ZTwgY2xhc3MgVD4KKyAgIHN0cnVjdCBmb3J3YXJkX3R5cGUKKyAgIHsgdHlwZWRlZiBjb25zdCBUICZ0eXBlOyB9OworCisgICB0ZW1wbGF0ZTwgY2xhc3MgVD4KKyAgIHN0cnVjdCBmb3J3YXJkX3R5cGU8IG5kbmJvb3N0OjpydjxUPiA+CisgICB7IHR5cGVkZWYgVCB0eXBlOyB9OworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgaXNfcnZhbHVlX3JlZmVyZW5jZSA6IDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLCBmYWxzZT4geyB9OworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworICAgdGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgaXNfcnZhbHVlX3JlZmVyZW5jZTwgVCYmID4gOiA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4geyB9OworI2Vsc2UgLy8gI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworICAgdGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgaXNfcnZhbHVlX3JlZmVyZW5jZTwgbmRuYm9vc3Q6OnJ2PFQ+JiA+CisgICAgICA6ICA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgdHJ1ZT4KKyAgIHt9OworCisgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBpc19ydmFsdWVfcmVmZXJlbmNlPCBjb25zdCBuZG5ib29zdDo6cnY8VD4mID4KKyAgICAgIDogOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmludGVncmFsX2NvbnN0YW50PGJvb2wsIHRydWU+CisgICB7fTsKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgIHRlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IGFkZF9ydmFsdWVfcmVmZXJlbmNlIHsgdHlwZWRlZiBUJiYgdHlwZTsgfTsKKyNlbHNlIC8vICNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgIG5hbWVzcGFjZSBkZXRhaWxfYWRkX3J2YWx1ZV9yZWZlcmVuY2UKKyAgIHsKKyAgICAgIHRlbXBsYXRlPCBjbGFzcyBUCisgICAgICAgICAgICAgICwgYm9vbCBlbXVsYXRpb24gPSA6Om5kbmJvb3N0OjpoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDxUPjo6dmFsdWUKKyAgICAgICAgICAgICAgLCBib29sIHJ2ICAgICAgICA9IDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppc19ydjxUPjo6dmFsdWUgID4KKyAgICAgIHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZV9pbXBsIHsgdHlwZWRlZiBUIHR5cGU7IH07CisKKyAgICAgIHRlbXBsYXRlPCBjbGFzcyBULCBib29sIGVtdWxhdGlvbj4KKyAgICAgIHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZV9pbXBsPCBULCBlbXVsYXRpb24sIHRydWUgPiB7IHR5cGVkZWYgVCAmIHR5cGU7IH07CisKKyAgICAgIHRlbXBsYXRlPCBjbGFzcyBULCBib29sIHJ2ID4KKyAgICAgIHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZV9pbXBsPCBULCB0cnVlLCBydiA+IHsgdHlwZWRlZiA6Om5kbmJvb3N0OjpydjxUPiYgdHlwZTsgfTsKKyAgIH0gLy8gbmFtZXNwYWNlIGRldGFpbF9hZGRfcnZhbHVlX3JlZmVyZW5jZQorCisgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+CisgICBzdHJ1Y3QgYWRkX3J2YWx1ZV9yZWZlcmVuY2UKKyAgICAgIDogZGV0YWlsX2FkZF9ydmFsdWVfcmVmZXJlbmNlOjphZGRfcnZhbHVlX3JlZmVyZW5jZV9pbXBsPFQ+CisgICB7IH07CisKKyAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgIHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZTxUICY+CisgICB7ICB0eXBlZGVmIFQgJiB0eXBlOyB9OworCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCByZW1vdmVfcnZhbHVlX3JlZmVyZW5jZSB7IHR5cGVkZWYgVCB0eXBlOyB9OworCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCByZW1vdmVfcnZhbHVlX3JlZmVyZW5jZTwgVCYmID4gICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgVCB0eXBlOyB9OworI2Vsc2UgLy8gI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworICAgdGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgcmVtb3ZlX3J2YWx1ZV9yZWZlcmVuY2U8IHJ2PFQ+ID4gICAgICAgICAgICAgICAgeyB0eXBlZGVmIFQgdHlwZTsgfTsKKyAgIHRlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHJlbW92ZV9ydmFsdWVfcmVmZXJlbmNlPCBjb25zdCBydjxUPiA+ICAgICAgICAgIHsgdHlwZWRlZiBUIHR5cGU7IH07CisgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCByZW1vdmVfcnZhbHVlX3JlZmVyZW5jZTwgdm9sYXRpbGUgcnY8VD4gPiAgICAgICB7IHR5cGVkZWYgVCB0eXBlOyB9OworICAgdGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgcmVtb3ZlX3J2YWx1ZV9yZWZlcmVuY2U8IGNvbnN0IHZvbGF0aWxlIHJ2PFQ+ID4geyB0eXBlZGVmIFQgdHlwZTsgfTsKKyAgIHRlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHJlbW92ZV9ydmFsdWVfcmVmZXJlbmNlPCBydjxUPiYgPiAgICAgICAgICAgICAgIHsgdHlwZWRlZiBUIHR5cGU7IH07CisgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCByZW1vdmVfcnZhbHVlX3JlZmVyZW5jZTwgY29uc3QgcnY8VD4mID4gICAgICAgICB7IHR5cGVkZWYgVCB0eXBlOyB9OworICAgdGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgcmVtb3ZlX3J2YWx1ZV9yZWZlcmVuY2U8IHZvbGF0aWxlIHJ2PFQ+JiA+ICAgICAgeyB0eXBlZGVmIFQgdHlwZTsgfTsKKyAgIHRlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHJlbW92ZV9ydmFsdWVfcmVmZXJlbmNlPCBjb25zdCB2b2xhdGlsZSBydjxUPiYgPnsgdHlwZWRlZiBUIHR5cGU7IH07CisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3R5cGVuYW1lIG5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6YWRkX3J2YWx1ZV9yZWZlcmVuY2U8VD46OnR5cGUgZGVjbHZhbCgpOworCit9ICAvL21vdmVfZGV0YWlsIHsKKworLy8gSWRlYXMgZnJvbSBCb29zdC5Nb3ZlIHJldmlldywgSmVmZnJleSBMZWUgSGVsbHJ1bmc6CisvLworLy8tIFR5cGVUcmFpdHMgbWV0YWZ1bmN0aW9ucyBpc19sdmFsdWVfcmVmZXJlbmNlLCBhZGRfbHZhbHVlX3JlZmVyZW5jZSwgYW5kIHJlbW92ZV9sdmFsdWVfcmVmZXJlbmNlID8KKy8vICBQZXJoYXBzIGFkZF9yZWZlcmVuY2UgYW5kIHJlbW92ZV9yZWZlcmVuY2UgY2FuIGJlIG1vZGlmaWVkIHNvIHRoYXQgdGhleSBiZWhhdmUgd3J0IGVtdWxhdGVkIHJ2YWx1ZQorLy8gIHJlZmVyZW5jZXMgdGhlIHNhbWUgYXMgd3J0IHJlYWwgcnZhbHVlIHJlZmVyZW5jZXMsIGkuZS4sIGFkZF9yZWZlcmVuY2U8IHJ2PFQ+JiA+IC0+IFQmIHJhdGhlciB0aGFuCisvLyAgcnY8VD4mIChzaW5jZSBUJiYgJiAtPiBUJikuCisvLworLy8tIEFkZCdsIFR5cGVUcmFpdHMgaGFzX1t0cml2aWFsX11tb3ZlX3tjb25zdHJ1Y3Rvcixhc3NpZ259Li4uPworLy8KKy8vLSBBbiBhc19sdmFsdWUoVCYgeCkgZnVuY3Rpb24sIHdoaWNoIGFtb3VudHMgdG8gYW4gaWRlbnRpdHkgb3BlcmF0aW9uIGluIEMrKzB4LCBidXQgc3RyaXBzIGVtdWxhdGVkCisvLyAgcnZhbHVlIHJlZmVyZW5jZXMgaW4gQysrMDMuICBUaGlzIG1heSBiZSBuZWNlc3NhcnkgdG8gcHJldmVudCAiYWNjaWRlbnRhbCBtb3ZlcyIuCisKKworfSAgLy9uYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHA+CisKKyNlbmRpZiAvLyNpZm5kZWYgQk9PU1RfTU9WRV9NT1ZFX1RSQUlUU19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS91dGlsaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbW92ZS91dGlsaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgyODc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tb3ZlL3V0aWxpdHkuaHBwCkBAIC0wLDAgKzEsMTk0IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyAoQykgQ29weXJpZ2h0IElvbiBHYXp0YW5hZ2EgMjAxMi0yMDEyLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21vdmUgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8vISBcZmlsZQorCisjaWZuZGVmIEJPT1NUX01PVkVfTU9WRV9VVElMSVRZX0hQUAorI2RlZmluZSBCT09TVF9NT1ZFX01PVkVfVVRJTElUWV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvZGV0YWlsL2NvbmZpZ19iZWdpbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS9jb3JlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL2RldGFpbC9tZXRhX3V0aWxzLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpICYmICFkZWZpbmVkKEJPT1NUX01PVkVfRE9YWUdFTl9JTlZPS0VEKQorCisgICBuYW1lc3BhY2UgbmRuYm9vc3QgeworCisgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgc3RydWN0IGVuYWJsZV9tb3ZlX3V0aWxpdHlfZW11bGF0aW9uCisgICB7CisgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7CisgICB9OworICAgIAorICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAvLworICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZSgpCisgICAvLworICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgaW5saW5lIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjplbmFibGVfaWZfYworICAgICAgPCBlbmFibGVfbW92ZV91dGlsaXR5X2VtdWxhdGlvbjxUPjo6dmFsdWUgJiYgIWhhc19tb3ZlX2VtdWxhdGlvbl9lbmFibGVkPFQ+Ojp2YWx1ZSwgVCY+Ojp0eXBlCisgICAgICAgICBtb3ZlKFQmIHgpCisgICB7CisgICAgICByZXR1cm4geDsKKyAgIH0KKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBpbmxpbmUgdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmVuYWJsZV9pZl9jCisgICAgICA8IGVuYWJsZV9tb3ZlX3V0aWxpdHlfZW11bGF0aW9uPFQ+Ojp2YWx1ZSAmJiBoYXNfbW92ZV9lbXVsYXRpb25fZW5hYmxlZDxUPjo6dmFsdWUsIHJ2PFQ+Jj46OnR5cGUKKyAgICAgICAgIG1vdmUoVCYgeCkKKyAgIHsKKyAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8cnY8VD4qID4oOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmFkZHJlc3NvZih4KSk7CisgICB9CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgaW5saW5lIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjplbmFibGVfaWZfYworICAgICAgPCBlbmFibGVfbW92ZV91dGlsaXR5X2VtdWxhdGlvbjxUPjo6dmFsdWUgJiYgaGFzX21vdmVfZW11bGF0aW9uX2VuYWJsZWQ8VD46OnZhbHVlLCBydjxUPiY+Ojp0eXBlCisgICAgICAgICBtb3ZlKHJ2PFQ+JiB4KQorICAgeworICAgICAgcmV0dXJuIHg7CisgICB9CisKKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgLy8KKyAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcndhcmQoKQorICAgLy8KKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIGlubGluZSB0eXBlbmFtZSA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZW5hYmxlX2lmX2MKKyAgICAgIDwgZW5hYmxlX21vdmVfdXRpbGl0eV9lbXVsYXRpb248VD46OnZhbHVlICYmIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppc19ydjxUPjo6dmFsdWUsIFQgJj46OnR5cGUKKyAgICAgICAgIGZvcndhcmQoY29uc3QgdHlwZW5hbWUgOjpuZG5ib29zdDo6bW92ZV9kZXRhaWw6OmlkZW50aXR5PFQ+Ojp0eXBlICZ4KQorICAgeworICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8VCY+KHgpOworICAgfQorCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIGlubGluZSB0eXBlbmFtZSA6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6ZW5hYmxlX2lmX2MKKyAgICAgIDwgZW5hYmxlX21vdmVfdXRpbGl0eV9lbXVsYXRpb248VD46OnZhbHVlICYmICE6Om5kbmJvb3N0Ojptb3ZlX2RldGFpbDo6aXNfcnY8VD46OnZhbHVlLCBjb25zdCBUICY+Ojp0eXBlCisgICAgICBmb3J3YXJkKGNvbnN0IHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppZGVudGl0eTxUPjo6dHlwZSAmeCkKKyAgIHsKKyAgICAgIHJldHVybiB4OworICAgfQorCisgICB9ICAvL25hbWVzcGFjZSBuZG5ib29zdAorCisjZWxzZSAgICAvLyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKSAmJiAhZGVmaW5lZChCT09TVF9NT1ZFX0RPWFlHRU5fSU5WT0tFRCkKKworICAgI2lmIGRlZmluZWQoQk9PU1RfTU9WRV9VU0VfU1RBTkRBUkRfTElCUkFSWV9NT1ZFKQorICAgICAgI2luY2x1ZGUgPHV0aWxpdHk+CisKKyAgICAgIG5hbWVzcGFjZSBuZG5ib29zdHsKKworICAgICAgdXNpbmcgOjpzdGQ6Om1vdmU7CisgICAgICB1c2luZyA6OnN0ZDo6Zm9yd2FyZDsKKworICAgICAgfSAgLy9uYW1lc3BhY2UgbmRuYm9vc3QKKworICAgI2Vsc2UgLy8hQk9PU1RfTU9WRV9VU0VfU1RBTkRBUkRfTElCUkFSWV9NT1ZFCisKKyAgICAgICNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKworICAgICAgbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworICAgICAgLy8hIFRoaXMgdHJhaXQncyBpbnRlcm5hbCBib29sZWFuIGB2YWx1ZWAgaXMgZmFsc2UgaW4gY29tcGlsZXJzIHdpdGggcnZhbHVlIHJlZmVyZW5jZXMKKyAgICAgIC8vISBhbmQgdHJ1ZSBpbiBjb21waWxlcnMgd2l0aG91dCBydmFsdWUgcmVmZXJlbmNlcy4KKyAgICAgIC8vIQorICAgICAgLy8hIEEgdXNlciBjYW4gc3BlY2lhbGl6ZSB0aGlzIHRyYWl0IGZvciBhIHR5cGUgVCB0byBmYWxzZSB0byBTRklOQUUgb3V0IGBtb3ZlYCBhbmQgYGZvcndhcmRgCisgICAgICAvLyEgc28gdGhhdCB0aGUgdXNlciBjYW4gZGVmaW5lIGEgZGlmZmVyZW50IG1vdmUgZW11bGF0aW9uIGZvciB0aGF0IHR5cGUgaW4gbmFtZXNwYWNlIG5kbmJvb3N0CisgICAgICAvLyEgKGUuZy4gYW5vdGhlciBCb29zdCBsaWJyYXJ5IGZvciBpdHMgdHlwZXMpIGFuZCBhdm9pZCBhbnkgb3ZlcmxvYWQgYW1iaWd1aXR5LgorICAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICAgIHN0cnVjdCBlbmFibGVfbW92ZV91dGlsaXR5X2VtdWxhdGlvbgorICAgICAgeworICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsKKyAgICAgIH07CisKKyAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgLy8KKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmUKKyAgICAgIC8vCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgI2lmIGRlZmluZWQoQk9PU1RfTU9WRV9ET1hZR0VOX0lOVk9LRUQpCisgICAgICAgICAvLyEgVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBhIHdheSB0byBjb252ZXJ0IGEgcmVmZXJlbmNlIGludG8gYSBydmFsdWUgcmVmZXJlbmNlCisgICAgICAgICAvLyEgaW4gY29tcGlsZXJzIHdpdGggcnZhbHVlIHJlZmVyZW5jZXMuIEZvciBvdGhlciBjb21waWxlcnMgY29udmVydHMgVCAmIGludG8KKyAgICAgICAgIC8vISA8aT46Om5kbmJvb3N0OjpydjxUPiAmPC9pPiBzbyB0aGF0IG1vdmUgZW11bGF0aW9uIGlzIGFjdGl2YXRlZC4KKyAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICAgcnZhbHVlX3JlZmVyZW5jZSBtb3ZlIChpbnB1dF9yZWZlcmVuY2UpOworCisgICAgICAjZWxpZiBkZWZpbmVkKEJPT1NUX01PVkVfT0xEX1JWQUxVRV9SRUZfQklORElOR19SVUxFUykKKworICAgICAgICAgLy9PbGQgbW92ZSBhcHByb2FjaCwgbHZhbHVlcyBjb3VsZCBiaW5kIHRvIHJ2YWx1ZSByZWZlcmVuY2VzCisgICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgIGlubGluZSB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlICYmIG1vdmUoVCYmIHQpCisgICAgICAgICB7ICByZXR1cm4gdDsgICB9CisKKyAgICAgICNlbHNlIC8vQk9PU1RfTU9WRV9PTERfUlZBTFVFX1JFRl9CSU5ESU5HX1JVTEVTCisKKyAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICAgaW5saW5lIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgJiYgbW92ZShUJiYgdCkKKyAgICAgICAgIHsgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgJiY+KHQpOyB9CisKKyAgICAgICNlbmRpZiAgIC8vQk9PU1RfTU9WRV9PTERfUlZBTFVFX1JFRl9CSU5ESU5HX1JVTEVTCisKKyAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgLy8KKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcndhcmQKKyAgICAgIC8vCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCisgICAgICAjaWYgZGVmaW5lZChCT09TVF9NT1ZFX0RPWFlHRU5fSU5WT0tFRCkKKyAgICAgICAgIC8vISBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIGxpbWl0ZWQgZm9ybSBvZiBmb3J3YXJkaW5nIHRoYXQgaXMgdXN1YWxseSBlbm91Z2ggZm9yCisgICAgICAgICAvLyEgaW4tcGxhY2UgY29uc3RydWN0aW9uIGFuZCBhdm9pZHMgdGhlIGV4cG9uZW50aWFsIG92ZXJsb2FkaW5nIGZvcgorICAgICAgICAgLy8hIGFjaGlldmUgdGhlIGxpbWl0ZWQgZm9yd2FyZGluZyBpbiBDKyswMy4KKyAgICAgICAgIC8vIQorICAgICAgICAgLy8hIEZvciBjb21waWxlcnMgd2l0aCBydmFsdWUgcmVmZXJlbmNlcyB0aGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHBlcmZlY3QgZm9yd2FyZGluZy4KKyAgICAgICAgIC8vIQorICAgICAgICAgLy8hIE90aGVyd2lzZToKKyAgICAgICAgIC8vISAqIElmIGlucHV0X3JlZmVyZW5jZSBiaW5kcyB0byBjb25zdCA6Om5kbmJvb3N0OjpydjxUPiAmIHRoZW4gaXQgb3V0cHV0X3JlZmVyZW5jZSBpcworICAgICAgICAgLy8hICAgOjpuZG5ib29zdDo6cnY8VD4gJgorICAgICAgICAgLy8hCisgICAgICAgICAvLyEgKiBFbHNlLCBvdXRwdXRfcmVmZXJlbmNlIGlzIGVxdWFsIHRvIGlucHV0X3JlZmVyZW5jZS4KKyAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBvdXRwdXRfcmVmZXJlbmNlIGZvcndhcmQoaW5wdXRfcmVmZXJlbmNlKTsKKyAgICAgICNlbGlmIGRlZmluZWQoQk9PU1RfTU9WRV9PTERfUlZBTFVFX1JFRl9CSU5ESU5HX1JVTEVTKQorCisgICAgICAgICAvL09sZCBtb3ZlIGFwcHJvYWNoLCBsdmFsdWVzIGNvdWxkIGJpbmQgdG8gcnZhbHVlIHJlZmVyZW5jZXMKKworICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgICBpbmxpbmUgVCYmIGZvcndhcmQgKHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjppZGVudGl0eTxUPjo6dHlwZSYmIHQpCisgICAgICAgICB7ICByZXR1cm4gdDsgICB9CisKKyAgICAgICNlbHNlIC8vT2xkIG1vdmUKKworICAgICAgICAgLy9JbXBsZW1lbnRhdGlvbiAjNSBmcm9tIE4yOTUxLCB0aGFua3MgdG8gSG93YXJkIEhpbm5hbnQKKworICAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIFU+CisgICAgICAgICBpbmxpbmUgVCYmIGZvcndhcmQoVSYmIHQKKyAgICAgICAgICAgICAsIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjplbmFibGVfaWZfYzwKKyAgICAgICAgICAgICAgIG1vdmVfZGV0YWlsOjppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA/IG1vdmVfZGV0YWlsOjppc19sdmFsdWVfcmVmZXJlbmNlPFU+Ojp2YWx1ZSA6IHRydWU+Ojp0eXBlICogPSAwLyoKKyAgICAgICAgICAgICAsIHR5cGVuYW1lIDo6bmRuYm9vc3Q6Om1vdmVfZGV0YWlsOjplbmFibGVfaWZfYzwKKyAgICAgICAgICAgICAgIG1vdmVfZGV0YWlsOjppc19jb252ZXJ0aWJsZQorICAgICAgICAgICAgICAgICAgPHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8VT46OnR5cGUqLCB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlKj46OnZhbHVlPjo6dHlwZSAqID0gMCovKQorICAgICAgICAgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VCYmPih0KTsgICB9CisKKyAgICAgICNlbmRpZiAgIC8vQk9PU1RfTU9WRV9ET1hZR0VOX0lOVk9LRUQKKworICAgICAgfSAgLy9uYW1lc3BhY2UgbmRuYm9vc3QgeworCisgICAjZW5kaWYgICAvLyNpZiBkZWZpbmVkKEJPT1NUX01PVkVfVVNFX1NUQU5EQVJEX0xJQlJBUllfTU9WRSkKKworI2VuZGlmICAgLy9CT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworCisjaW5jbHVkZSA8bmRuYm9vc3QvbW92ZS9kZXRhaWwvY29uZmlnX2VuZC5ocHA+CisKKyNlbmRpZiAvLyNpZm5kZWYgQk9PU1RfTU9WRV9NT1ZFX1VUSUxJVFlfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9PMV9zaXplLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL08xX3NpemUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3NWIwNWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9PMV9zaXplLmhwcApAQCAtMCwwICsxLDQwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX08xX1NJWkVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9PMV9TSVpFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogTzFfc2l6ZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9PMV9zaXplX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vTzFfc2l6ZV9pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyByZXR1cm5zIHNlcXVlbmNlIHNpemUgaWYgaXQncyBhbiBPKDEpIG9wZXJhdGlvbjsgb3RoZXJ3aXNlIHJldHVybnMgLTEKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICA+CitzdHJ1Y3QgTzFfc2l6ZQorICAgIDogTzFfc2l6ZV9pbXBsPCB0eXBlbmFtZSBzZXF1ZW5jZV90YWc8U2VxdWVuY2U+Ojp0eXBlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgU2VxdWVuY2UgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSwgTzFfc2l6ZSwgKFNlcXVlbmNlKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLCBPMV9zaXplKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX08xX1NJWkVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9PMV9zaXplX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9PMV9zaXplX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM1NDJjNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL08xX3NpemVfZndkLmhwcApAQCAtMCwwICsxLDI0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX08xX1NJWkVfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTzFfU0laRV9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBPMV9zaXplX2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgTzFfc2l6ZV9pbXBsOwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IE8xX3NpemU7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfTzFfU0laRV9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hZHZhbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FkdmFuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZmQ3YWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hZHZhbmNlLmhwcApAQCAtMCwwICsxLDc2IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FEVkFOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BRFZBTkNFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYWR2YW5jZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hZHZhbmNlX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xlc3MuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9uZWdhdGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC90YWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2ZvcndhcmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfYmFja3dhcmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBmb3J3YXJkL2JpZGlyZWN0aW9uYWwgaXRlcmF0b3JzCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBhZHZhbmNlX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVzczwgTixsb25nXzwwPiA+Ojp0eXBlIGJhY2t3YXJkXzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88IGJhY2t3YXJkXywgbmVnYXRlPE4+LCBOID46OnR5cGUgb2Zmc2V0XzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgYmFja3dhcmRfCisgICAgICAgICAgICAsIGF1eDo6YWR2YW5jZV9iYWNrd2FyZDwgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKG9mZnNldF8pOjp2YWx1ZSA+CisgICAgICAgICAgICAsIGF1eDo6YWR2YW5jZV9mb3J3YXJkPCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQob2Zmc2V0Xyk6OnZhbHVlID4KKyAgICAgICAgICAgID46OnR5cGUgZl87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTxmXyxJdGVyYXRvcj46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oSXRlcmF0b3IpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4pCisgICAgPgorc3RydWN0IGFkdmFuY2UKKyAgICA6IGFkdmFuY2VfaW1wbDwgdHlwZW5hbWUgdGFnPEl0ZXJhdG9yPjo6dHlwZSA+CisgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8SXRlcmF0b3IsTj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pCisgICAgPgorc3RydWN0IGFkdmFuY2VfYworICAgIDogYWR2YW5jZV9pbXBsPCB0eXBlbmFtZSB0YWc8SXRlcmF0b3I+Ojp0eXBlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTxJdGVyYXRvcixsb25nXzxOPiA+Cit7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgYWR2YW5jZSkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BRFZBTkNFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYWR2YW5jZV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYWR2YW5jZV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNjg2NGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hZHZhbmNlX2Z3ZC5ocHAKQEAgLTAsMCArMSwyOCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BRFZBTkNFX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FEVkFOQ0VfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYWR2YW5jZV9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb21tb25fbmFtZV93a25kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQ09NTU9OX05BTUVfV0tORChhZHZhbmNlKQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGFkdmFuY2VfaW1wbDsKK3RlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgTiA+IHN0cnVjdCBhZHZhbmNlOworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FEVkFOQ0VfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYWx3YXlzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Fsd2F5cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MzN2YwZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Fsd2F5cy5ocHAKQEAgLTAsMCArMSwzOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BTFdBWVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BTFdBWVNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhbHdheXMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZGVmX3BhcmFtc190YWlsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYXJpdHlfc3BlYy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVmFsdWUgPiBzdHJ1Y3QgYWx3YXlzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVAorICAgICAgICBCT09TVF9NUExfUFBfTkVTVEVEX0RFRl9QQVJBTVNfVEFJTCgxLCB0eXBlbmFtZSBULCBuYSkKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBWYWx1ZSB0eXBlOworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMSwgYWx3YXlzKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FMV0FZU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyM2E2YjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hbmQuaHBwCkBAIC0wLDAgKzEsNjAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQU5EX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYW5kLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmVzdGVkX3R5cGVfd2tuZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCisvLyBhZ3VydCwgMTkvbWF5LzA0OiB3b3JrYXJvdW5kIGEgY29uZmxpY3Qgd2l0aCA8aXNvNjQ2Lmg+IGhlYWRlcidzIAorLy8gJ29yJyBhbmQgJ2FuZCcgbWFjcm9zLCBzZWUgaHR0cDovL3Rpbnl1cmwuY29tLzNldDY5OyAnZGVmaW5lZChhbmQpJworLy8gaGFzIHRvIGJlIGNoZWNrZWQgaW4gYSBzZXBhcmF0ZSBjb25kaXRpb24sIG90aGVyd2lzZSBHQ0MgY29tcGxhaW5zIAorLy8gYWJvdXQgJ2FuZCcgYmVpbmcgYW4gYWx0ZXJuYXRpdmUgdG9rZW4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAKKyNpZm5kZWYgX19HQ0NYTUxfXworI2lmIGRlZmluZWQoYW5kKSAKKyMgICBwcmFnbWEgcHVzaF9tYWNybygiYW5kIikKKyMgICB1bmRlZiBhbmQKKyMgICBkZWZpbmUgYW5kKHgpCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgYW5kLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWZuZGVmIF9fR0NDWE1MX18KKyNpZiBkZWZpbmVkKGFuZCkgCisjICAgcHJhZ21hIHBvcF9tYWNybygiYW5kIikKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2Vsc2UKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfTkFNRSBhbmRfCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9PUF9WQUxVRTEgZmFsc2UKKyMgICBkZWZpbmUgQVVYNzc4MDc2X09QX1ZBTFVFMiB0cnVlCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbG9naWNhbF9vcC5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FORF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FwcGx5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FwcGx5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTE4YTk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMjI5IEBACisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKyNpZm5kZWYgQk9PU1RfTVBMX0FQUExZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVBQTFlfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhcHBseS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FwcGx5X2Z3ZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FwcGx5X3dyYXAuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9wbGFjZWhvbGRlcnMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9sYW1iZGEuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGFwcGx5LmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcnRpYWxfc3BlY19wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9lbnVtLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKy8vIGxvY2FsIG1hY3JvcywgI3VuZGVmLWluZWQgYXQgdGhlIGVuZCBvZiB0aGUgaGVhZGVyCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9BUFBMWV9QQVJBTVMocGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKCBcCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0FQUExZX0RFRl9QQVJBTVMocGFyYW0sIHZhbHVlKSBcCisgICAgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TKCBcCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICAsIHZhbHVlIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9BUFBMWV9OX1BBUkFNUyhuLCBwYXJhbSkgXAorICAgIEJPT1NUX01QTF9QUF9QQVJBTVMobiwgcGFyYW0pIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0FQUExZX05fQ09NTUFfUEFSQU1TKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYobikgXAorICAgIEJPT1NUX01QTF9QUF9QQVJBTVMobiwgcGFyYW0pIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0FQUExZX05fUEFSVElBTF9TUEVDX1BBUkFNUyhuLCBwYXJhbSwgZGVmKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYobikgXAorICAgIEJPT1NUX01QTF9QUF9QQVJUSUFMX1NQRUNfUEFSQU1TKG4sIHBhcmFtLCBkZWYpIFwKKyAgICAvKiovCisgICAgCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9BUFBMWV9OX1NQRUNfUEFSQU1TKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfTVBMX1BQX0VOVU0oQk9PU1RfUFBfSU5DKG4pLCBwYXJhbSkgXAorICAgIC8qKi8KKworCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDAsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIDxuZG5ib29zdC9tcGwvYXBwbHkuaHBwPikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fQVBQTFlfVEVNUExBVEUpCisvLyByZWFsIEMrKyB2ZXJzaW9uIGlzIGFscmVhZHkgdGFrZW4gY2FyZSBvZgorIyAgIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworbmFtZXNwYWNlIGF1eCB7CisvLyBhcHBseV9jb3VudF9hcmdzCisjZGVmaW5lIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX1BSRUZJWCBhcHBseQorI2RlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19ERUZBVUxUIG5hCisjZGVmaW5lIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX0FSSVRZIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb3VudF9hcmdzLmhwcD4KK30KKworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIEFVWDc3ODA3Nl9BUFBMWV9ERUZfUEFSQU1TKHR5cGVuYW1lIFQsIG5hKQorICAgID4KK3N0cnVjdCBhcHBseQorICAgIDogYXV4OjphcHBseV9jaG9vc2VyPCAKKyAgICAgICAgICBhdXg6OmFwcGx5X2NvdW50X2FyZ3M8IEFVWDc3ODA3Nl9BUFBMWV9QQVJBTVMoVCkgPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgRiwgQVVYNzc4MDc2X0FQUExZX1BBUkFNUyhUKSA+Ojp0eXBlCit7Cit9OworCisjICAgZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGVuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fQVBQTFlfVEVNUExBVEUKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUFBMWV9OX1NQRUNfUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0FQUExZX05fUEFSVElBTF9TUEVDX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUFBMWV9OX0NPTU1BX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUFBMWV9OX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUFBMWV9ERUZfUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0FQUExZX1BBUkFNUworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9BUFBMWV9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uLCBkZXB0aCA9PSAxCisKKy8vIEZvciBnY2MgNC40IGNvbXBhdGFiaWxpdHksIHdlIG11c3QgaW5jbHVkZSB0aGUKKy8vIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCB0ZXN0IGluc2lkZSBhbiAjZWxzZSBjbGF1c2UuCisjZWxzZSAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKKyNpZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA9PSAxCisKKyMgICBkZWZpbmUgaV8gQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChhcHBseSxpXykKKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgOiBCT09TVF9QUF9DQVQoYXBwbHlfd3JhcCxpXyk8IAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMoaV8sIFQpCisgICAgICAgID4KK3sKKyNlbHNlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9QUF9DQVQoYXBwbHlfd3JhcCxpXyk8IAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMoaV8sIFQpCisgICAgICAgID46OnR5cGUgdHlwZTsKKyNlbmRpZgorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgQk9PU1RfUFBfSU5DKGlfKQorICAgICAgICAsIEJPT1NUX1BQX0NBVChhcHBseSxpXykKKyAgICAgICAgLCAoRiBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMoaV8sVCkpCisgICAgICAgICkKK307CisKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IEJPT1NUX1BQX0NBVChhcHBseSxpXyk8QVVYNzc4MDc2X0FQUExZX05fU1BFQ19QQVJBTVMoaV8sIGludCk+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisjZW5kaWYKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fQVBQTFlfVEVNUExBVEUpCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworI2lmIGlfID09IEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQVVYNzc4MDc2X0FQUExZX05fQ09NTUFfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBhcHBseQorICAgIDogQk9PU1RfUFBfQ0FUKGFwcGx5LGlfKTwgRiBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMoaV8sIFQpID4KK3sKK307CisjZWxzZQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGIEFVWDc3ODA3Nl9BUFBMWV9OX0NPTU1BX1BBUkFNUyhpXywgdHlwZW5hbWUgVCkKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYgQVVYNzc4MDc2X0FQUExZX05fUEFSVElBTF9TUEVDX1BBUkFNUyhpXywgVCwgbmEpID4KKyAgICA6IEJPT1NUX1BQX0NBVChhcHBseSxpXyk8IEYgQVVYNzc4MDc2X0FQUExZX05fQ09NTUFfUEFSQU1TKGlfLCBUKSA+Cit7Cit9OworI2VuZGlmCisKKyMgICBlbHNlIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fQVBQTFlfVEVNUExBVEUpCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X2Nob29zZXI8aV8+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRiwgQVVYNzc4MDc2X0FQUExZX1BBUkFNUyh0eXBlbmFtZSBUKQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGFwcGx5LGlfKTwKKyAgICAgICAgICAgICAgRiBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMoaV8sIFQpCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorI2VuZGlmCisKKyMgICBlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19BUFBMWV9URU1QTEFURQorCisjICAgdW5kZWYgaV8KKworI2VuZGlmIC8vIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hcHBseV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXBwbHlfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTUzMDA2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDEwNyBAQAorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX01QTF9BUFBMWV9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BUFBMWV9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhcHBseV9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgYXBwbHlfZndkLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworLy8gYWd1cnQsIDE1L2phbi8wMjogdG9wLWxldmVsICdhcHBseScgdGVtcGxhdGUgZ2l2ZXMgYW4gSUNFIG9uIE1TVkMKKy8vIChmb3Iga25vd24gcmVhc29ucykKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19BUFBMWV9URU1QTEFURQorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBsb2NhbCBtYWNybywgI3VuZGVmLWluZWQgYXQgdGhlIGVuZCBvZiB0aGUgaGVhZGVyCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9BUFBMWV9ERUZfUEFSQU1TKHBhcmFtLCB2YWx1ZSkgXAorICAgIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyggXAorICAgICAgICAgIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgLCB2YWx1ZSBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQVBQTFlfTl9DT01NQV9QQVJBTVMobiwgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihuKSBcCisgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhuLCBwYXJhbSkgXAorICAgIC8qKi8KKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fQVBQTFlfVEVNUExBVEUpCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCBBVVg3NzgwNzZfQVBQTFlfREVGX1BBUkFNUyh0eXBlbmFtZSBULCBuYSkKKyAgICA+CitzdHJ1Y3QgYXBwbHk7CisjZWxzZQorbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgQk9PU1RfQVVYX05UVFBfREVDTChpbnQsIGFyaXR5XykgPiBzdHJ1Y3QgYXBwbHlfY2hvb3NlcjsKK30KKyNlbmRpZgorCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19BUFBMWV9URU1QTEFURQorCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDAsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIDxuZG5ib29zdC9tcGwvYXBwbHlfZndkLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUFBMWV9OX0NPTU1BX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUFBMWV9ERUZfUEFSQU1TCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FQUExZX0ZXRF9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQVVYNzc4MDc2X0FQUExZX05fQ09NTUFfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoYXBwbHksaV8pOworCisjdW5kZWYgaV8KKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYxN2ViMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FwcGx5X3dyYXAuaHBwCkBAIC0wLDAgKzEsMjM0IEBACisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKyNpZm5kZWYgQk9PU1RfTVBMX0FQUExZX1dSQVBfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BUFBMWV9XUkFQX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDgKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYXBwbHlfd3JhcC5ocHAgNDkyNzIgMjAwOC0xMC0xMSAwNjo1MDo0NlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjUwOjQ2IC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjcyICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2hhc19hcHBseS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmEuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL21zdmNfbmV2ZXJfdHJ1ZS5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGFwcGx5X3dyYXAuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9hZGQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9iY2MuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9hbmQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworLy8gbG9jYWwgbWFjcm9zLCAjdW5kZWYtaW5lZCBhdCB0aGUgZW5kIG9mIHRoZSBoZWFkZXIKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhuLCBwYXJhbSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQVBQTFlfV1JBUF9TUEVDX1BBUkFNUyhuLCBwYXJhbSkgXAorICAgIEJPT1NUX01QTF9QUF9FTlVNKEJPT1NUX1BQX0lOQyhuKSwgcGFyYW0pIFwKKyAgICAvKiovCisKKworI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgwLCBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZLCA8bmRuYm9vc3QvbXBsL2FwcGx5X3dyYXAuaHBwPikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworCisjICAgdW5kZWYgQVVYNzc4MDc2X0FQUExZX1dSQVBfU1BFQ19QQVJBTVMKKyMgICB1bmRlZiBBVVg3NzgwNzZfQVBQTFlfV1JBUF9QQVJBTVMKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZiAvLyBCT09TVF9NUExfQVBQTFlfV1JBUF9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uLCBkZXB0aCA9PSAxCisKKy8vIEZvciBnY2MgNC40IGNvbXBhdGFiaWxpdHksIHdlIG11c3QgaW5jbHVkZSB0aGUKKy8vIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCB0ZXN0IGluc2lkZSBhbiAjZWxzZSBjbGF1c2UuCisjZWxzZSAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKKyNpZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA9PSAxCisKKyMgICBkZWZpbmUgaV8gQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKKyMgICBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKy8vIE1TVkMgdmVyc2lvbgorCisjZGVmaW5lIEFVWDc3ODA3Nl9NU1ZDX0RUV19OQU1FIEJPT1NUX1BQX0NBVChtc3ZjX2FwcGx5LGlfKQorI2RlZmluZSBBVVg3NzgwNzZfTVNWQ19EVFdfT1JJR0lOQUxfTkFNRSBhcHBseQorI2RlZmluZSBBVVg3NzgwNzZfTVNWQ19EVFdfQVJJVFkgaV8KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2R0dy5ocHA+CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiBCT09TVF9QUF9DT01NQV9JRihpXykgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoYXBwbHlfd3JhcCxpXykKK3sKKyAgICAvLyBNZXRhZnVuY3Rpb24gZm9yd2FyZGluZyBjb25mdXNlcyB2YzYKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX1BQX0NBVChtc3ZjX2FwcGx5LGlfKTxGPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICBBVVg3NzgwNzZfQVBQTFlfV1JBUF9QQVJBTVMoaV8sIFQpCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKKyMgICBlbGlmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpCisvLyBNV0NXL0JvcmxhbmQgdmVyc2lvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOLCB0eXBlbmFtZSBGIEJPT1NUX1BQX0NPTU1BX0lGKGlfKSBBVVg3NzgwNzZfQVBQTFlfV1JBUF9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChhcHBseV93cmFwX2ltcGwsaV8pOworCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMiBcCisgICAgKDMsKDAsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkgLSBpXywgPG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiBCT09TVF9QUF9DT01NQV9JRihpXykgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoYXBwbHlfd3JhcCxpXykKKyAgICA6IEJPT1NUX1BQX0NBVChhcHBseV93cmFwX2ltcGwsaV8pPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTxGLGlfPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgIEJPT1NUX1BQX0NPTU1BX0lGKGlfKSBBVVg3NzgwNzZfQVBQTFlfV1JBUF9QQVJBTVMoaV8sIFQpCisgICAgICAgID46OnR5cGUKK3sKK307CisKKyMgICBlbHNlCisvLyBJU085OCBDKyssIHdpdGggbWlub3IgY29uY2Vzc2lvbiB0byB2YzcKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGIEJPT1NUX1BQX0NPTU1BX0lGKGlfKSBBVVg3NzgwNzZfQVBQTFlfV1JBUF9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpCisjaWYgaV8gPT0gMAorICAgICwgdHlwZW5hbWUgaGFzX2FwcGx5XyA9IHR5cGVuYW1lIGF1eDo6aGFzX2FwcGx5PEY+Ojp0eXBlCisjZW5kaWYKKyAgICA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKGFwcGx5X3dyYXAsaV8pCisvLyBtZXRhZnVuY3Rpb24gZm9yd2FyZGluZyBjb25mdXNlcyBNU1ZDIDcuMAorI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDEzMDApCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKGlfLCBUKSA+Cit7CisjZWxzZQoreyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKGlfLCBUKQorICAgICAgICA+Ojp0eXBlIHR5cGU7CisjZW5kaWYKK307CisKKyNpZiBpXyA9PSAwICYmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKGFwcGx5X3dyYXAsaV8pPEYsdHJ1ZV8+CisgICAgOiBGOjphcHBseQoreworfTsKKyNlbmRpZgorCisjICAgZW5kaWYgLy8gd29ya2Fyb3VuZHMKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IEJPT1NUX1BQX0NBVChhcHBseV93cmFwLGlfKTxBVVg3NzgwNzZfQVBQTFlfV1JBUF9TUEVDX1BBUkFNUyhpXywgaW50KT4KK3sKKyAgICB0eXBlZGVmIGludCB0eXBlOworfTsKKyNlbmRpZgorCisjICAgdW5kZWYgaV8KKworLy8vLy8gaXRlcmF0aW9uLCBkZXB0aCA9PSAyCisKKyNlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpID09IDIKKworIyAgIGRlZmluZSBqXyBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMikKKworI2lmIGlfID09IDAgJiYgal8gPT0gMCBcCisgICAgJiYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JDQzU5MF9XT1JLQVJPVU5EUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fSEFTX0FQUExZKQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgYm9vbCBGX2hhc19hcHBseSA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMF9iY2IgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8IG5hID4gdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwX2JjYjwgRiwgdHJ1ZSA+IHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OmFwcGx5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIEFVWDc3ODA3Nl9BUFBMWV9XUkFQX1BBUkFNUyhpXywgdHlwZW5hbWUgVCkKKyAgICA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKGFwcGx5X3dyYXBfaW1wbCxpXyk8CisgICAgICAgICAgQk9PU1RfTVBMX1BQX0FERChpXywgal8pCisgICAgICAgICwgRgorICAgICAgICBCT09TVF9QUF9DT01NQV9JRihpXykgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKGlfLCBUKQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBhcHBseV93cmFwX2ltcGwwX2JjYjwgRiwgYXV4OjpoYXNfYXBwbHk8IEYgPjo6dmFsdWUgPjo6dHlwZSB0eXBlOworfTsKKyNlbHNlCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiBCT09TVF9QUF9DT01NQV9JRihpXykgQVVYNzc4MDc2X0FQUExZX1dSQVBfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoYXBwbHlfd3JhcF9pbXBsLGlfKTwKKyAgICAgICAgICBCT09TVF9NUExfUFBfQUREKGlfLCBqXykKKyAgICAgICAgLCBGCisgICAgICAgIEJPT1NUX1BQX0NPTU1BX0lGKGlfKSBBVVg3NzgwNzZfQVBQTFlfV1JBUF9QQVJBTVMoaV8sIFQpCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIEFVWDc3ODA3Nl9BUFBMWV9XUkFQX1BBUkFNUyhpXywgVCkKKyNpZiBpXyA9PSAwICYmIGpfID09IDAKKy8vLyBzaW5jZSB0aGUgZGVmYXVsdHMgYXJlICJsb3N0Iiwgd2UgaGF2ZSB0byBwYXNzICpzb21ldGhpbmcqIGV2ZW4gZm9yIG51bGxhcnkKKy8vLyBtZXRhZnVuY3Rpb24gY2xhc3NlcworICAgICAgICBuYQorI2Vsc2UKKyAgICAgICAgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQU5EKGlfLCBqXykpIEJPT1NUX01QTF9QUF9FTlVNKGpfLCBuYSkKKyNlbmRpZgorICAgICAgICA+IHR5cGU7Cit9OworCisjZW5kaWYKKworIyAgIHVuZGVmIGpfCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKQorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXJnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FyZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiYzI0OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2FyZy5ocHAKQEAgLTAsMCArMSwxMzEgQEAKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9NUExfQVJHX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVJHX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYXJnLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXJnX2Z3ZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmEuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX2Fzc2VydC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYXJpdHlfc3BlYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYXJnX3R5cGVkZWYuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiBhcmcuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZmF1bHRfcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKKy8vIGxvY2FsIG1hY3JvLCAjdW5kZWYtaW5lZCBhdCB0aGUgZW5kIG9mIHRoZSBoZWFkZXIKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfQVJHX05fREVGQVVMVF9QQVJBTVMocGFyYW0sdmFsdWUpIFwKKyAgICBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVMoIFwKKyAgICAgICAgICBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZIFwKKyAgICAgICAgLCBwYXJhbSBcCisgICAgICAgICwgdmFsdWUgXAorICAgICAgICApIFwKKyAgICAvKiovCisjZWxzZQorIyAgIGRlZmluZSBBVVg3NzgwNzZfQVJHX05fREVGQVVMVF9QQVJBTVMocGFyYW0sdmFsdWUpIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKCBcCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgwLCBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZLCA8bmRuYm9vc3QvbXBsL2FyZy5ocHA+KSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisKKyMgICB1bmRlZiBBVVg3NzgwNzZfQVJHX05fREVGQVVMVF9QQVJBTVMKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsYXJnKQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9BUkdfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBpXyBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKworI2lmIGlfID4gMAorCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8aV8+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSBpXyk7CisgICAgdHlwZWRlZiBhcmc8Qk9PU1RfUFBfSU5DKGlfKT4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIEFVWDc3ODA3Nl9BUkdfTl9ERUZBVUxUX1BBUkFNUyh0eXBlbmFtZSBVLCBuYSkKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoVSxpXykgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8LTE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAtMSk7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICBBVVg3NzgwNzZfQVJHX05fREVGQVVMVF9QQVJBTVModHlwZW5hbWUgVSwgbmEpCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCisjZW5kaWYgLy8gaV8gPiAwCisKKyN1bmRlZiBpXworI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXJnX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hcmdfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWVjMzBkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXJnX2Z3ZC5ocHAKQEAgLTAsMCArMSwyOCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BUkdfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVJHX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMgorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGFyZ19md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgorCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKSA+IHN0cnVjdCBhcmc7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0woYXJnKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FSR19GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hc3NlcnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXNzZXJ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDE0YjJmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXNzZXJ0LmhwcApAQCAtMCwwICsxLDQzOCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BU1NFUlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhc3NlcnQuaHBwIDg0NDQyIDIwMTMtMDUtMjMgMTQ6Mzg6MjJaIHN0ZXZlbl93YXRhbmFiZSAkCisvLyAkRGF0ZTogMjAxMy0wNS0yMyAwNzozODoyMiAtMDcwMCAoVGh1LCAyMyBNYXkgMjAxMykgJAorLy8gJFJldmlzaW9uOiA4NDQ0MiAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbm90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uZXN0ZWRfdHlwZV93a25kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2R0cC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9wcF9jb3VudGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+IC8vIG1ha2Ugc3VyZSAnc2l6ZV90JyBpcyBwbGFjZWQgaW50byAnc3RkJworI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDE3MDApCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpIFwKKyAgICB8fCAoQk9PU1RfTVBMX0NGR19HQ0MgIT0gMCkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgPD0gNjAwKQorIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0FTU0VSVF9VU0VfUkVMQVRJT05fTkFNRVMKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzIwMikgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19BU1NFUlRfQlJPS0VOX1BPSU5URVJfVE9fUE9JTlRFUl9UT19NRU1CRVIKKyNlbmRpZgorCisvLyBhZ3VydCwgMTAvbm92LzA2OiB1c2UgZW51bXMgZm9yIEJvcmxhbmQgKHdoaWNoIGNhbm5vdCBjb3BlIHdpdGggc3RhdGljIGNvbnN0YW50cykgCisvLyBhbmQgR0NDICh3aGljaCBpc3N1ZXMgInVudXNlZCB2YXJpYWJsZSIgd2FybmluZ3Mgd2hlbiBzdGF0aWMgY29uc3RhbnRzIGFyZSB1c2VkIAorLy8gYXQgYSBmdW5jdGlvbiBzY29wZSkKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkgXAorICAgIHx8IChCT09TVF9NUExfQ0ZHX0dDQyAhPSAwKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FTU0VSVF9DT05TVEFOVChULCBleHByKSBlbnVtIHsgZXhwciB9CisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FTU0VSVF9DT05TVEFOVChULCBleHByKSBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgZXhwcikKKyNlbmRpZgorCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKworc3RydWN0IGZhaWxlZCB7fTsKKworLy8gYWd1cnQsIDI0L2F1Zy8wNDogTVNWQyA3LjEgd29ya2Fyb3VuZCBoZXJlIGFuZCBiZWxvdzogcmV0dXJuL2FjY2VwdCAKKy8vICdhc3NlcnQ8ZmFsc2U+JyBieSByZWZlcmVuY2U7IGNhbid0IGFwcGx5IGl0IHVuY29uZGl0aW9uYWxseSAtLSBhcHBhcmVudGx5IGl0CisvLyBkZWdyYWRlcyB0aGUgcXVhbGl0eSBvZiBHQ0MgZGlhZ25vc3RpY3MKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDEzMTApCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9BU1NFUlRfQVJHKHgpIHgmCisjZWxzZQorIyAgIGRlZmluZSBBVVg3NzgwNzZfQVNTRVJUX0FSRyh4KSB4CisjZW5kaWYKKwordGVtcGxhdGU8IGJvb2wgQyA+ICBzdHJ1Y3QgYXNzZXJ0ICAgICAgICB7IHR5cGVkZWYgdm9pZCogdHlwZTsgfTsKK3RlbXBsYXRlPD4gICAgICAgICAgc3RydWN0IGFzc2VydDxmYWxzZT4geyB0eXBlZGVmIEFVWDc3ODA3Nl9BU1NFUlRfQVJHKGFzc2VydCkgdHlwZTsgfTsKKwordGVtcGxhdGU8IGJvb2wgQyA+CitpbnQgYXNzZXJ0aW9uX2ZhaWxlZCggdHlwZW5hbWUgYXNzZXJ0PEM+Ojp0eXBlICk7CisKK3RlbXBsYXRlPCBib29sIEMgPgorc3RydWN0IGFzc2VydGlvbgoreworICAgIHN0YXRpYyBpbnQgZmFpbGVkKCBhc3NlcnQ8ZmFsc2U+ICk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXNzZXJ0aW9uPHRydWU+Cit7CisgICAgc3RhdGljIGludCBmYWlsZWQoIHZvaWQqICk7Cit9OworCitzdHJ1Y3QgYXNzZXJ0XworeworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hLCB0eXBlbmFtZSBUNCA9IG5hID4gc3RydWN0IHR5cGVzIHt9OworI2VuZGlmCisgICAgc3RhdGljIGFzc2VydF8gY29uc3QgYXJnOworICAgIGVudW0gcmVsYXRpb25zIHsgZXF1YWwgPSAxLCBub3RfZXF1YWwsIGdyZWF0ZXIsIGdyZWF0ZXJfZXF1YWwsIGxlc3MsIGxlc3NfZXF1YWwgfTsKK307CisKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfQVNTRVJUX1VTRV9SRUxBVElPTl9OQU1FUykKKworYm9vbCBvcGVyYXRvcj09KCBmYWlsZWQsIGZhaWxlZCApOworYm9vbCBvcGVyYXRvciE9KCBmYWlsZWQsIGZhaWxlZCApOworYm9vbCBvcGVyYXRvcj4oIGZhaWxlZCwgZmFpbGVkICk7Citib29sIG9wZXJhdG9yPj0oIGZhaWxlZCwgZmFpbGVkICk7Citib29sIG9wZXJhdG9yPCggZmFpbGVkLCBmYWlsZWQgKTsKK2Jvb2wgb3BlcmF0b3I8PSggZmFpbGVkLCBmYWlsZWQgKTsKKworI2lmIGRlZmluZWQoX19FREdfVkVSU0lPTl9fKQordGVtcGxhdGU8IGJvb2wgKCopKGZhaWxlZCwgZmFpbGVkKSwgbG9uZyB4LCBsb25nIHkgPiBzdHJ1Y3QgYXNzZXJ0X3JlbGF0aW9uIHt9OworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FTU0VSVF9SRUxBVElPTih4LCB5LCByKSBhc3NlcnRfcmVsYXRpb248cix4LHk+CisjZWxzZQordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIHgpLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCB5KSwgYm9vbCAoKikoZmFpbGVkLCBmYWlsZWQpID4gCitzdHJ1Y3QgYXNzZXJ0X3JlbGF0aW9uIHt9OworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FTU0VSVF9SRUxBVElPTih4LCB5LCByKSBhc3NlcnRfcmVsYXRpb248eCx5LHI+CisjZW5kaWYKKworI2Vsc2UgLy8gQk9PU1RfTVBMX0NGR19BU1NFUlRfVVNFX1JFTEFUSU9OX05BTUVTCisKK25kbmJvb3N0OjptcGw6OmF1eDo6d2VpZ2h0ZWRfdGFnPDE+Ojp0eXBlIG9wZXJhdG9yPT0oIGFzc2VydF8sIGFzc2VydF8gKTsKK25kbmJvb3N0OjptcGw6OmF1eDo6d2VpZ2h0ZWRfdGFnPDI+Ojp0eXBlIG9wZXJhdG9yIT0oIGFzc2VydF8sIGFzc2VydF8gKTsKK25kbmJvb3N0OjptcGw6OmF1eDo6d2VpZ2h0ZWRfdGFnPDM+Ojp0eXBlIG9wZXJhdG9yPiggIGFzc2VydF8sIGFzc2VydF8gKTsKK25kbmJvb3N0OjptcGw6OmF1eDo6d2VpZ2h0ZWRfdGFnPDQ+Ojp0eXBlIG9wZXJhdG9yPj0oIGFzc2VydF8sIGFzc2VydF8gKTsKK25kbmJvb3N0OjptcGw6OmF1eDo6d2VpZ2h0ZWRfdGFnPDU+Ojp0eXBlIG9wZXJhdG9yPCggYXNzZXJ0XywgYXNzZXJ0XyApOworbmRuYm9vc3Q6Om1wbDo6YXV4Ojp3ZWlnaHRlZF90YWc8Nj46OnR5cGUgb3BlcmF0b3I8PSggYXNzZXJ0XywgYXNzZXJ0XyApOworCit0ZW1wbGF0ZTwgYXNzZXJ0Xzo6cmVsYXRpb25zIHIsIGxvbmcgeCwgbG9uZyB5ID4gc3RydWN0IGFzc2VydF9yZWxhdGlvbiB7fTsKKworI2VuZGlmIAorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxNzAwKQorCit0ZW1wbGF0ZTxjbGFzcyBQcmVkPgorc3RydWN0IGV4dHJhY3RfYXNzZXJ0X3ByZWQ7CisKK3RlbXBsYXRlPGNsYXNzIFByZWQ+CitzdHJ1Y3QgZXh0cmFjdF9hc3NlcnRfcHJlZDx2b2lkKFByZWQpPiB7IHR5cGVkZWYgUHJlZCB0eXBlOyB9OworCit0ZW1wbGF0ZTxjbGFzcyBQcmVkPgorc3RydWN0IGV2YWxfYXNzZXJ0IHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGV4dHJhY3RfYXNzZXJ0X3ByZWQ8UHJlZD46OnR5cGUgUDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFA6OnR5cGUgcF90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6bXBsOjppZl9jPHBfdHlwZTo6dmFsdWUsCisgICAgICAgIEFVWDc3ODA3Nl9BU1NFUlRfQVJHKGFzc2VydDxmYWxzZT4pLAorICAgICAgICBmYWlsZWQgKioqKioqKioqKioqIFA6OioqKioqKioqKioqKgorICAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFByZWQ+CitzdHJ1Y3QgZXZhbF9hc3NlcnRfbm90IHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGV4dHJhY3RfYXNzZXJ0X3ByZWQ8UHJlZD46OnR5cGUgUDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFA6OnR5cGUgcF90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6bXBsOjppZl9jPCFwX3R5cGU6OnZhbHVlLAorICAgICAgICBBVVg3NzgwNzZfQVNTRVJUX0FSRyhhc3NlcnQ8ZmFsc2U+KSwKKyAgICAgICAgZmFpbGVkICoqKioqKioqKioqKiA6Om5kbmJvb3N0OjptcGw6Om5vdF88UD46OioqKioqKioqKioqKgorICAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK1QgbWFrZV9hc3NlcnRfYXJnKCk7CisKKyNlbGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfQVNTRVJUX0JST0tFTl9QT0lOVEVSX1RPX1BPSU5URVJfVE9fTUVNQkVSKQorCit0ZW1wbGF0ZTwgYm9vbCA+IHN0cnVjdCBhc3NlcnRfYXJnX3ByZWRfaW1wbCB7IHR5cGVkZWYgaW50IHR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBhc3NlcnRfYXJnX3ByZWRfaW1wbDx0cnVlPiB7IHR5cGVkZWYgdm9pZCogdHlwZTsgfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFAgPiBzdHJ1Y3QgYXNzZXJ0X2FyZ19wcmVkCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBQOjp0eXBlIHBfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFzc2VydF9hcmdfcHJlZF9pbXBsPCBwX3R5cGU6OnZhbHVlID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBQID4gc3RydWN0IGFzc2VydF9hcmdfcHJlZF9ub3QKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFA6OnR5cGUgcF90eXBlOworICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX0NPTlNUQU5UKCBib29sLCBwID0gIXBfdHlwZTo6dmFsdWUgKTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFzc2VydF9hcmdfcHJlZF9pbXBsPHA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUHJlZCA+CitmYWlsZWQgKioqKioqKioqKioqIChQcmVkOjoqKioqKioqKioqKiogCisgICAgICBhc3NlcnRfYXJnKCB2b2lkICgqKShQcmVkKSwgdHlwZW5hbWUgYXNzZXJ0X2FyZ19wcmVkPFByZWQ+Ojp0eXBlICkKKyAgICApOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUHJlZCA+CitmYWlsZWQgKioqKioqKioqKioqIChuZG5ib29zdDo6bXBsOjpub3RfPFByZWQ+OjoqKioqKioqKioqKiogCisgICAgICBhc3NlcnRfbm90X2FyZyggdm9pZCAoKikoUHJlZCksIHR5cGVuYW1lIGFzc2VydF9hcmdfcHJlZF9ub3Q8UHJlZD46OnR5cGUgKQorICAgICk7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBQcmVkID4KK0FVWDc3ODA3Nl9BU1NFUlRfQVJHKGFzc2VydDxmYWxzZT4pCithc3NlcnRfYXJnKCB2b2lkICgqKShQcmVkKSwgdHlwZW5hbWUgYXNzZXJ0X2FyZ19wcmVkX25vdDxQcmVkPjo6dHlwZSApOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUHJlZCA+CitBVVg3NzgwNzZfQVNTRVJUX0FSRyhhc3NlcnQ8ZmFsc2U+KQorYXNzZXJ0X25vdF9hcmcoIHZvaWQgKCopKFByZWQpLCB0eXBlbmFtZSBhc3NlcnRfYXJnX3ByZWQ8UHJlZD46OnR5cGUgKTsKKworCisjZWxzZSAvLyBCT09TVF9NUExfQ0ZHX0FTU0VSVF9CUk9LRU5fUE9JTlRFUl9UT19QT0lOVEVSX1RPX01FTUJFUgorICAgICAgICAKK3RlbXBsYXRlPCBib29sIGMsIHR5cGVuYW1lIFByZWQgPiBzdHJ1Y3QgYXNzZXJ0X2FyZ190eXBlX2ltcGwKK3sKKyAgICB0eXBlZGVmIGZhaWxlZCAgICAgICoqKioqKioqKioqKiBQcmVkOjoqIG13Y3c4M193a25kOworICAgIHR5cGVkZWYgbXdjdzgzX3drbmQgKioqKioqKioqKioqKiB0eXBlOworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFByZWQgPiBzdHJ1Y3QgYXNzZXJ0X2FyZ190eXBlX2ltcGw8dHJ1ZSxQcmVkPgoreworICAgIHR5cGVkZWYgQVVYNzc4MDc2X0FTU0VSVF9BUkcoYXNzZXJ0PGZhbHNlPikgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBQcmVkID4gc3RydWN0IGFzc2VydF9hcmdfdHlwZQorICAgIDogYXNzZXJ0X2FyZ190eXBlX2ltcGw8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoUHJlZCkpOjp2YWx1ZSwgUHJlZCA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUHJlZCA+Cit0eXBlbmFtZSBhc3NlcnRfYXJnX3R5cGU8UHJlZD46OnR5cGUgCithc3NlcnRfYXJnKHZvaWQgKCopKFByZWQpLCBpbnQpOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgUHJlZCA+Cit0eXBlbmFtZSBhc3NlcnRfYXJnX3R5cGU8IG5kbmJvb3N0OjptcGw6Om5vdF88UHJlZD4gPjo6dHlwZSAKK2Fzc2VydF9ub3RfYXJnKHZvaWQgKCopKFByZWQpLCBpbnQpOworCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19BU1NFUlRfVVNFX1JFTEFUSU9OX05BTUVTKQordGVtcGxhdGU8IGxvbmcgeCwgbG9uZyB5LCBib29sICgqcikoZmFpbGVkLCBmYWlsZWQpID4KK3R5cGVuYW1lIGFzc2VydF9hcmdfdHlwZV9pbXBsPCBmYWxzZSxCT09TVF9NUExfQVVYX0FTU0VSVF9SRUxBVElPTih4LHkscikgPjo6dHlwZQorYXNzZXJ0X3JlbF9hcmcoIEJPT1NUX01QTF9BVVhfQVNTRVJUX1JFTEFUSU9OKHgseSxyKSApOworIyAgIGVsc2UKK3RlbXBsYXRlPCBhc3NlcnRfOjpyZWxhdGlvbnMgciwgbG9uZyB4LCBsb25nIHkgPgordHlwZW5hbWUgYXNzZXJ0X2FyZ190eXBlX2ltcGw8IGZhbHNlLGFzc2VydF9yZWxhdGlvbjxyLHgseT4gPjo6dHlwZQorYXNzZXJ0X3JlbF9hcmcoIGFzc2VydF9yZWxhdGlvbjxyLHgseT4gKTsKKyMgICBlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19BU1NFUlRfQlJPS0VOX1BPSU5URVJfVE9fUE9JTlRFUl9UT19NRU1CRVIKKworI3VuZGVmIEFVWDc3ODA3Nl9BU1NFUlRfQVJHCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDE3MDApCisKKy8vIEJPT1NUX01QTF9BU1NFUlQoKHByZWQ8eCwuLi4+KSkKKworI2RlZmluZSBCT09TVF9NUExfQVNTRVJUKHByZWQpIFwKK0JPT1NUX01QTF9BVVhfQVNTRVJUX0NPTlNUQU5UKCBcCisgICAgICBzdGQ6OnNpemVfdCBcCisgICAgLCBCT09TVF9QUF9DQVQobXBsX2Fzc2VydGlvbl9pbl9saW5lXyxCT09TVF9NUExfQVVYX1BQX0NPVU5URVIoKSkgPSBzaXplb2YoIFwKKyAgICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRpb25fZmFpbGVkPGZhbHNlPiggXAorICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjptYWtlX2Fzc2VydF9hcmc8IFwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjptcGw6OmV2YWxfYXNzZXJ0PHZvaWQgcHJlZD46OnR5cGUgXAorICAgICAgICAgICAgICAgID4oKSBcCisgICAgICAgICAgICApIFwKKyAgICAgICAgKSBcCisgICAgKSBcCisvKiovCisKKy8vIEJPT1NUX01QTF9BU1NFUlRfTk9UKChwcmVkPHgsLi4uPikpCisKKyNkZWZpbmUgQk9PU1RfTVBMX0FTU0VSVF9OT1QocHJlZCkgXAorQk9PU1RfTVBMX0FVWF9BU1NFUlRfQ09OU1RBTlQoIFwKKyAgICAgIHN0ZDo6c2l6ZV90IFwKKyAgICAsIEJPT1NUX1BQX0NBVChtcGxfYXNzZXJ0aW9uX2luX2xpbmVfLEJPT1NUX01QTF9BVVhfUFBfQ09VTlRFUigpKSA9IHNpemVvZiggXAorICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydGlvbl9mYWlsZWQ8ZmFsc2U+KCBcCisgICAgICAgICAgICAgIG5kbmJvb3N0OjptcGw6Om1ha2VfYXNzZXJ0X2FyZzwgXAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6Om1wbDo6ZXZhbF9hc3NlcnRfbm90PHZvaWQgcHJlZD46OnR5cGUgXAorICAgICAgICAgICAgICAgID4oKSBcCisgICAgICAgICAgICApIFwKKyAgICAgICAgKSBcCisgICAgKSBcCisvKiovCisKKyNlbHNlCisKKy8vIEJPT1NUX01QTF9BU1NFUlQoKHByZWQ8eCwuLi4+KSkKKworI2RlZmluZSBCT09TVF9NUExfQVNTRVJUKHByZWQpIFwKK0JPT1NUX01QTF9BVVhfQVNTRVJUX0NPTlNUQU5UKCBcCisgICAgICBzdGQ6OnNpemVfdCBcCisgICAgLCBCT09TVF9QUF9DQVQobXBsX2Fzc2VydGlvbl9pbl9saW5lXyxCT09TVF9NUExfQVVYX1BQX0NPVU5URVIoKSkgPSBzaXplb2YoIFwKKyAgICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRpb25fZmFpbGVkPGZhbHNlPiggXAorICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRfYXJnKCAodm9pZCAoKikgcHJlZCkwLCAxICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkgXAorICAgICkgXAorLyoqLworCisvLyBCT09TVF9NUExfQVNTRVJUX05PVCgocHJlZDx4LC4uLj4pKQorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVNTRVJUX05PVChwcmVkKSBcCitlbnVtIHsgXAorICAgICAgQk9PU1RfUFBfQ0FUKG1wbF9hc3NlcnRpb25faW5fbGluZV8sQk9PU1RfTVBMX0FVWF9QUF9DT1VOVEVSKCkpID0gc2l6ZW9mKCBcCisgICAgICAgICAgbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0aW9uPGZhbHNlPjo6ZmFpbGVkKCBcCisgICAgICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydF9ub3RfYXJnKCAodm9pZCAoKikgcHJlZCkwLCAxICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkgXAorfVwKKy8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfTk9UKHByZWQpIFwKK0JPT1NUX01QTF9BVVhfQVNTRVJUX0NPTlNUQU5UKCBcCisgICAgICBzdGQ6OnNpemVfdCBcCisgICAgLCBCT09TVF9QUF9DQVQobXBsX2Fzc2VydGlvbl9pbl9saW5lXyxCT09TVF9NUExfQVVYX1BQX0NPVU5URVIoKSkgPSBzaXplb2YoIFwKKyAgICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRpb25fZmFpbGVkPGZhbHNlPiggXAorICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRfbm90X2FyZyggKHZvaWQgKCopIHByZWQpMCwgMSApIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApIFwKKyAgICkgXAorLyoqLworI2VuZGlmCisKKyNlbmRpZgorCisvLyBCT09TVF9NUExfQVNTRVJUX1JFTEFUSU9OKHgsID09fCE9fDw9fDx8Pj18PiwgeSkKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19BU1NFUlRfVVNFX1JFTEFUSU9OX05BTUVTKQorCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19BU1NFUlRfQlJPS0VOX1BPSU5URVJfVE9fUE9JTlRFUl9UT19NRU1CRVIpCisvLyBhZ3VydCwgOS9ub3YvMDY6ICdlbnVtJyBiZWxvdyBpcyBhIHdvcmthcm91bmQgZm9yIGdjYyA0LjAuNC80LjEuMSBidWdzICMyOTUyMiBhbmQgIzI5NTE4CisjICAgZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfUkVMQVRJT05fSU1QTChjb3VudGVyLCB4LCByZWwsIHkpICAgICAgXAorZW51bSB7IEJPT1NUX1BQX0NBVChtcGxfYXNzZXJ0X3JlbF92YWx1ZSxjb3VudGVyKSA9ICh4IHJlbCB5KSB9OyBcCitCT09TVF9NUExfQVVYX0FTU0VSVF9DT05TVEFOVCggXAorICAgICAgc3RkOjpzaXplX3QgXAorICAgICwgQk9PU1RfUFBfQ0FUKG1wbF9hc3NlcnRpb25faW5fbGluZV8sY291bnRlcikgPSBzaXplb2YoIFwKKyAgICAgICAgbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0aW9uX2ZhaWxlZDxCT09TVF9QUF9DQVQobXBsX2Fzc2VydF9yZWxfdmFsdWUsY291bnRlcik+KCBcCisgICAgICAgICAgICAobmRuYm9vc3Q6Om1wbDo6ZmFpbGVkICoqKioqKioqKioqKiAoIG5kbmJvb3N0OjptcGw6OmFzc2VydF9yZWxhdGlvbjwgXAorICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0Xzo6cmVsYXRpb25zKCBzaXplb2YoIFwKKyAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRfOjphcmcgcmVsIG5kbmJvb3N0OjptcGw6OmFzc2VydF86OmFyZyBcCisgICAgICAgICAgICAgICAgICAgICkgKSBcCisgICAgICAgICAgICAgICAgLCB4IFwKKyAgICAgICAgICAgICAgICAsIHkgXAorICAgICAgICAgICAgICAgID46OioqKioqKioqKioqKikpIDAgKSBcCisgICAgICAgICkgXAorICAgICkgXAorLyoqLworIyAgIGVsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FTU0VSVF9SRUxBVElPTl9JTVBMKGNvdW50ZXIsIHgsIHJlbCwgeSkgICAgXAorQk9PU1RfTVBMX0FVWF9BU1NFUlRfQ09OU1RBTlQoIFwKKyAgICAgIHN0ZDo6c2l6ZV90IFwKKyAgICAsIEJPT1NUX1BQX0NBVChtcGxfYXNzZXJ0X3JlbCxjb3VudGVyKSA9IHNpemVvZiggXAorICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydF86OmFyZyByZWwgbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0Xzo6YXJnIFwKKyAgICAgICAgKSBcCisgICAgKTsgXAorQk9PU1RfTVBMX0FVWF9BU1NFUlRfQ09OU1RBTlQoIGJvb2wsIEJPT1NUX1BQX0NBVChtcGxfYXNzZXJ0X3JlbF92YWx1ZSxjb3VudGVyKSA9ICh4IHJlbCB5KSApOyBcCitCT09TVF9NUExfQVVYX0FTU0VSVF9DT05TVEFOVCggXAorICAgICAgc3RkOjpzaXplX3QgXAorICAgICwgQk9PU1RfUFBfQ0FUKG1wbF9hc3NlcnRpb25faW5fbGluZV8sY291bnRlcikgPSBzaXplb2YoIFwKKyAgICAgICAgbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0aW9uX2ZhaWxlZDxCT09TVF9QUF9DQVQobXBsX2Fzc2VydF9yZWxfdmFsdWUsY291bnRlcik+KCBcCisgICAgICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydF9yZWxfYXJnKCBuZG5ib29zdDo6bXBsOjphc3NlcnRfcmVsYXRpb248IFwKKyAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydF86OnJlbGF0aW9ucyhCT09TVF9QUF9DQVQobXBsX2Fzc2VydF9yZWwsY291bnRlcikpIFwKKyAgICAgICAgICAgICAgICAsIHggXAorICAgICAgICAgICAgICAgICwgeSBcCisgICAgICAgICAgICAgICAgPigpICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkgXAorICAgICkgXAorLyoqLworIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FTU0VSVF9SRUxBVElPTih4LCByZWwsIHkpIFwKK0JPT1NUX01QTF9BU1NFUlRfUkVMQVRJT05fSU1QTChCT09TVF9NUExfQVVYX1BQX0NPVU5URVIoKSwgeCwgcmVsLCB5KSBcCisvKiovCisKKyNlbHNlIC8vICFCT09TVF9NUExfQ0ZHX0FTU0VSVF9VU0VfUkVMQVRJT05fTkFNRVMKKworIyAgIGlmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19BU1NFUlRfQlJPS0VOX1BPSU5URVJfVE9fUE9JTlRFUl9UT19NRU1CRVIpCisjICAgZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfUkVMQVRJT04oeCwgcmVsLCB5KSBcCitCT09TVF9NUExfQVVYX0FTU0VSVF9DT05TVEFOVCggXAorICAgICAgc3RkOjpzaXplX3QgXAorICAgICwgQk9PU1RfUFBfQ0FUKG1wbF9hc3NlcnRpb25faW5fbGluZV8sQk9PU1RfTVBMX0FVWF9QUF9DT1VOVEVSKCkpID0gc2l6ZW9mKCBcCisgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydGlvbl9mYWlsZWQ8KHggcmVsIHkpPiggbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0X3JlbF9hcmcoIFwKKyAgICAgICAgICAgICAgbmRuYm9vc3Q6Om1wbDo6Qk9PU1RfTVBMX0FVWF9BU1NFUlRfUkVMQVRJT04oeCx5LCgmbmRuYm9vc3Q6Om1wbDo6b3BlcmF0b3IgcmVsKSkoKSBcCisgICAgICAgICAgICApICkgXAorICAgICAgICApIFwKKyAgICApIFwKKy8qKi8KKyMgICBlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfUkVMQVRJT04oeCwgcmVsLCB5KSBcCitCT09TVF9NUExfQVVYX0FTU0VSVF9DT05TVEFOVCggXAorICAgICAgc3RkOjpzaXplX3QgXAorICAgICwgQk9PU1RfUFBfQ0FUKG1wbF9hc3NlcnRpb25faW5fbGluZV8sQk9PU1RfTVBMX0FVWF9QUF9DT1VOVEVSKCkpID0gc2l6ZW9mKCBcCisgICAgICAgIG5kbmJvb3N0OjptcGw6OmFzc2VydGlvbl9mYWlsZWQ8KHggcmVsIHkpPiggKG5kbmJvb3N0OjptcGw6OmZhaWxlZCAqKioqKioqKioqKiogKCBcCisgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjpCT09TVF9NUExfQVVYX0FTU0VSVF9SRUxBVElPTih4LHksKCZuZG5ib29zdDo6bXBsOjpvcGVyYXRvciByZWwpKTo6KioqKioqKioqKioqKSkwICkgXAorICAgICAgICApIFwKKyAgICApIFwKKy8qKi8KKyMgICBlbmRpZgorCisjZW5kaWYKKworCisvLyBCT09TVF9NUExfQVNTRVJUX01TRyggKHByZWQ8eCwuLi4+Ojp2YWx1ZSksIFVTRVJfUFJPVklERURfTUVTU0FHRSwgKHR5cGVzPHgsLi4uPikgKSAKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgQk9PU1RfVEVTVEVEX0FUKDB4MzIwMikpCisjICAgZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfTVNHX0lNUEwoIGNvdW50ZXIsIGMsIG1zZywgdHlwZXNfICkgXAorc3RydWN0IG1zZzsgXAordHlwZWRlZiBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKG1zZyxjb3VudGVyKSA6IG5kbmJvb3N0OjptcGw6OmFzc2VydF8gXAoreyBcCisgICAgdXNpbmcgbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0Xzo6dHlwZXM7IFwKKyAgICBzdGF0aWMgbmRuYm9vc3Q6Om1wbDo6ZmFpbGVkICoqKioqKioqKioqKiAobXNnOjoqKioqKioqKioqKiogYXNzZXJ0X2FyZygpKSB0eXBlc18gXAorICAgIHsgcmV0dXJuIDA7IH0gXAorfSBCT09TVF9QUF9DQVQobXBsX2Fzc2VydF9hcmcsY291bnRlcik7IFwKK0JPT1NUX01QTF9BVVhfQVNTRVJUX0NPTlNUQU5UKCBcCisgICAgICBzdGQ6OnNpemVfdCBcCisgICAgLCBCT09TVF9QUF9DQVQobXBsX2Fzc2VydGlvbl9pbl9saW5lXyxjb3VudGVyKSA9IHNpemVvZiggXAorICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRpb248KGMpPjo6ZmFpbGVkKCBCT09TVF9QUF9DQVQobXBsX2Fzc2VydF9hcmcsY291bnRlcik6OmFzc2VydF9hcmcoKSApIFwKKyAgICAgICAgKSBcCisgICAgKSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVNTRVJUX01TR19JTVBMKCBjb3VudGVyLCBjLCBtc2csIHR5cGVzXyApICBcCitzdHJ1Y3QgbXNnOyBcCit0eXBlZGVmIHN0cnVjdCBCT09TVF9QUF9DQVQobXNnLGNvdW50ZXIpIDogbmRuYm9vc3Q6Om1wbDo6YXNzZXJ0XyBcCit7IFwKKyAgICBzdGF0aWMgbmRuYm9vc3Q6Om1wbDo6ZmFpbGVkICoqKioqKioqKioqKiAobXNnOjoqKioqKioqKioqKiogYXNzZXJ0X2FyZygpKSB0eXBlc18gXAorICAgIHsgcmV0dXJuIDA7IH0gXAorfSBCT09TVF9QUF9DQVQobXBsX2Fzc2VydF9hcmcsY291bnRlcik7IFwKK0JPT1NUX01QTF9BVVhfQVNTRVJUX0NPTlNUQU5UKCBcCisgICAgICBzdGQ6OnNpemVfdCBcCisgICAgLCBCT09TVF9QUF9DQVQobXBsX2Fzc2VydGlvbl9pbl9saW5lXyxjb3VudGVyKSA9IHNpemVvZiggXAorICAgICAgICBuZG5ib29zdDo6bXBsOjphc3NlcnRpb25fZmFpbGVkPChjKT4oIEJPT1NUX1BQX0NBVChtcGxfYXNzZXJ0X2FyZyxjb3VudGVyKTo6YXNzZXJ0X2FyZygpICkgXAorICAgICAgICApIFwKKyAgICApIFwKKy8qKi8KKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX01QTF9BU1NFUlRfTVNHKCBjLCBtc2csIHR5cGVzXyApIFwKK0JPT1NUX01QTF9BU1NFUlRfTVNHX0lNUEwoIEJPT1NUX01QTF9BVVhfUFBfQ09VTlRFUigpLCBjLCBtc2csIHR5cGVzXyApIFwKKy8qKi8KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BU1NFUlRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg3NWU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F0LmhwcApAQCAtMCwwICsxLDUyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhdC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2F0X2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTikKKyAgICA+CitzdHJ1Y3QgYXQKKyAgICA6IGF0X2ltcGw8IHR5cGVuYW1lIHNlcXVlbmNlX3RhZzxTZXF1ZW5jZT46OnR5cGUgPgorICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PCBTZXF1ZW5jZSxOID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsYXQsKFNlcXVlbmNlLE4pKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBTZXF1ZW5jZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgTikKKyAgICA+CitzdHJ1Y3QgYXRfYworICAgIDogYXRfaW1wbDwgdHlwZW5hbWUgc2VxdWVuY2VfdGFnPFNlcXVlbmNlPjo6dHlwZSA+CisgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8IFNlcXVlbmNlLG1wbDo6bG9uZ188Tj4gPgoreworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDIsIGF0KQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXRfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F0X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM5MTU0NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F0X2Z3ZC5ocHAKQEAgLTAsMCArMSwyNCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVF9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVF9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhdF9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGF0X2ltcGw7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UsIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXQ7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVRfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9PMV9zaXplX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9PMV9zaXplX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMmNmMDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL08xX3NpemVfaW1wbC5ocHAKQEAgLTAsMCArMSw4NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9PMV9TSVpFX0lNUExfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9PMV9TSVpFX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBPMV9zaXplX2ltcGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvTzFfc2l6ZV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2hhc19zaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZm9yd2FyZGluZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKy8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gLSByZXR1cm5zICdTZXF1ZW5jZTo6c2l6ZScgaWYgc2VxdWVuY2UgaGFzIGEgJ3NpemUnCisvLyBtZW1iZXIsIGFuZCAtMSBvdGhlcndpc2U7IGNvbnJldGUgc2VxdWVuY2VzIG1pZ2h0IG92ZXJyaWRlIGl0IGJ5IAorLy8gc3BlY2lhbGl6aW5nIGVpdGhlciB0aGUgJ08xX3NpemVfaW1wbCcgb3IgdGhlIHByaW1hcnkgJ08xX3NpemUnIHRlbXBsYXRlCisKKyMgICBpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApIFwKKyAgICAmJiAhQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCBCT09TVF9URVNURURfQVQoMHgzMDAzKSkKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiBzdHJ1Y3QgTzFfc2l6ZV9pbXBsCisgICAgOiBTZXF1ZW5jZTo6c2l6ZQoreworfTsKK30KKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGFwcGx5CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ORVNURURfRk9SV0FSRElORykKKyAgICAgICAgOiBpZl88CisgICAgICAgICAgICAgIGF1eDo6aGFzX3NpemU8U2VxdWVuY2U+CisgICAgICAgICAgICAsIGF1eDo6TzFfc2l6ZV9pbXBsPFNlcXVlbmNlPgorICAgICAgICAgICAgLCBsb25nXzwtMT4KKyAgICAgICAgICAgID46OnR5cGUKKyAgICB7CisjZWxzZQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGF1eDo6aGFzX3NpemU8U2VxdWVuY2U+CisgICAgICAgICAgICAsIGF1eDo6TzFfc2l6ZV9pbXBsPFNlcXVlbmNlPgorICAgICAgICAgICAgLCBsb25nXzwtMT4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQobG9uZywgdmFsdWUgPQorICAgICAgICAgICAgICAoaWZfPAorICAgICAgICAgICAgICAgICAgYXV4OjpoYXNfc2l6ZTxTZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICAsIGF1eDo6TzFfc2l6ZV9pbXBsPFNlcXVlbmNlPgorICAgICAgICAgICAgICAgICwgbG9uZ188LTE+CisgICAgICAgICAgICAgICAgPjo6dHlwZTo6dmFsdWUpCisgICAgICAgICAgICApOworI2VuZGlmCisgICAgfTsKK307CisKKyMgICBlbHNlIC8vIEJPT1NUX01TVkMKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188LTE+CisgICAgICAgIHsKKyAgICAgICAgfTsKK307CisKKyMgICBlbmRpZgorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX08xX1NJWkVfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2IyNWViYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwCkBAIC0wLDAgKzEsNDggQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYWRsX2JhcnJpZXIuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYWRsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0FETF9CQVJSSUVSX05BTUVTUEFDRSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRSBtcGxfCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4gbmFtZXNwYWNlIG1wbF8geworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRSB9CisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTCh0eXBlKSBcCisgICAgbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IFwKKyAgICB1c2luZyA6OkJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjp0eXBlOyBcCisgICAgfSB9IFwKKy8qKi8KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCituYW1lc3BhY2UgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0UgeyBuYW1lc3BhY2UgYXV4IHt9IH0KK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyB1c2luZyBuYW1lc3BhY2UgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U7IAorbmFtZXNwYWNlIGF1eCB7IHVzaW5nIG5hbWVzcGFjZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6YXV4OyB9Cit9fQorI2VuZGlmCisKKyNlbHNlIC8vIEJPT1NUX01QTF9DRkdfTk9fQURMX0JBUlJJRVJfTkFNRVNQQUNFCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0UgbmRuYm9vc3Q6Om1wbAorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRSB9fQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0wodHlwZSkgLyoqLworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfYmFja3dhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2JhY2t3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjNkZjgxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2JhY2t3YXJkLmhwcApAQCAtMCwwICsxLDEyOCBAQAorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX01QTF9BVVg3NzgwNzZfQURWQU5DRV9CQUNLV0FSRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWDc3ODA3Nl9BRFZBTkNFX0JBQ0tXQVJEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYWR2YW5jZV9iYWNrd2FyZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ByaW9yLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGFkdmFuY2VfYmFja3dhcmQuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy91bnJvbGxpbmcuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pID4gc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMCwgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORywgPG5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfYmFja3dhcmQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworLy8gaW1wbGVtZW50YXRpb24gZm9yIE4gdGhhdCBleGNlZWRzIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBOKSA+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDxCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HPgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORykgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWDc3ODA3Nl9BRFZBTkNFX0JBQ0tXQVJEX0hQUF9JTkNMVURFRAorCisvLy8vLyBpdGVyYXRpb24sIGRlcHRoID09IDEKKworLy8gRm9yIGdjYyA0LjQgY29tcGF0YWJpbGl0eSwgd2UgbXVzdCBpbmNsdWRlIHRoZQorLy8gQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIIHRlc3QgaW5zaWRlIGFuICNlbHNlIGNsYXVzZS4KKyNlbHNlIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORworI2lmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpID09IDEKKyNkZWZpbmUgaV8gQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPCBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKworI2lmIGlfID4gMAorIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzIgXAorICAgICgzLCgxLCBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSksIDxuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2JhY2t3YXJkLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisjZW5kaWYKKworICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKSkgdHlwZTsKKyAgICB9OworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfNjBfRVRJX0JVRykKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBhcHBseTxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCB0eXBlOworICAgIH07CisjZW5kaWYKK307CisKKyN1bmRlZiBpXworCisvLy8vLyBpdGVyYXRpb24sIGRlcHRoID09IDIKKworI2VsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgPT0gMgorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9JVEVSXzAgQk9PU1RfUFBfQ0FUKGl0ZXIsQk9PU1RfUFBfREVDKEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigyKSkpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9JVEVSXzEgQk9PU1RfUFBfQ0FUKGl0ZXIsQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDIpKQorCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8QVVYNzc4MDc2X0lURVJfMD46OnR5cGUgQVVYNzc4MDc2X0lURVJfMTsKKyAgICAgICAgCisjICAgdW5kZWYgQVVYNzc4MDc2X0lURVJfMQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9JVEVSXzAKKworI2VuZGlmIC8vIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU2MWMyNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9mb3J3YXJkLmhwcApAQCAtMCwwICsxLDEyNyBAQAorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQURWQU5DRV9GT1JXQVJEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0FEVkFOQ0VfRk9SV0FSRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGFkdmFuY2VfZm9yd2FyZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL25leHQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgYWR2YW5jZV9mb3J3YXJkLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvdW5yb2xsaW5nLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwPgorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vIGZvcndhcmQgZGVjbGFyYXRpb24KK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBOKSA+IHN0cnVjdCBhZHZhbmNlX2ZvcndhcmQ7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMCwgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORywgPG5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisvLyBpbXBsZW1lbnRhdGlvbiBmb3IgTiB0aGF0IGV4Y2VlZHMgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pID4gCitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8Qk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORz4KKyAgICAgICAgICAgICwgSXRlcmF0b3IKKyAgICAgICAgICAgID46OnR5cGUgY2h1bmtfcmVzdWx0XzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORykgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9BRFZBTkNFX0ZPUldBUkRfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbiwgZGVwdGggPT0gMQorCisvLyBGb3IgZ2NjIDQuNCBjb21wYXRhYmlsaXR5LCB3ZSBtdXN0IGluY2x1ZGUgdGhlCisvLyBCT09TVF9QUF9JVEVSQVRJT05fREVQVEggdGVzdCBpbnNpZGUgYW4gI2Vsc2UgY2xhdXNlLgorI2Vsc2UgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCisjaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgPT0gMQorI2RlZmluZSBpXyBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisKKyNpZiBpXyA+IDAKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yIFwKKyAgICAoMywoMSwgaV8sIDxuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2ZvcndhcmQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKyNlbmRpZgorICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLGlfKSB0eXBlOworICAgIH07CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKQorICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGFwcGx5PGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKKyNlbmRpZgorfTsKKworI3VuZGVmIGlfCisKKy8vLy8vIGl0ZXJhdGlvbiwgZGVwdGggPT0gMgorCisjZWxpZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA9PSAyCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lURVJfMCBCT09TVF9QUF9DQVQoaXRlcixCT09TVF9QUF9ERUMoQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDIpKSkKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lURVJfMSBCT09TVF9QUF9DQVQoaXRlcixCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMikpCisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PEFVWDc3ODA3Nl9JVEVSXzA+Ojp0eXBlIEFVWDc3ODA3Nl9JVEVSXzE7CisgICAgICAgIAorIyAgIHVuZGVmIEFVWDc3ODA3Nl9JVEVSXzEKKyMgICB1bmRlZiBBVVg3NzgwNzZfSVRFUl8wCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKQorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hcmdfdHlwZWRlZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2FyZ190eXBlZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTc4NDJlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hcmdfdHlwZWRlZi5ocHAKQEAgLTAsMCArMSwzMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUZfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUZfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhcmdfdHlwZWRlZi5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKSBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKQorICAgIAorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKFQsIG5hbWUpIHR5cGVkZWYgVCBuYW1lOworCisjZWxzZQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYoVCwgbmFtZSkgLyoqLworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2FyaXRobWV0aWNfb3AuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hcml0aG1ldGljX29wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGYyNTY4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hcml0aG1ldGljX29wLmhwcApAQCAtMCwwICsxLDkyIEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGFyaXRobWV0aWNfb3AuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYXJnZXN0X2ludC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdmFsdWVfd2tuZC5ocHA+CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFVWDc3ODA3Nl9PUF9QUkVGSVgpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9PUF9QUkVGSVggQVVYNzc4MDc2X09QX05BTUUKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnVtZXJpY19vcC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgQVVYNzc4MDc2X09QX1BSRUZJWC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX1ZBTFVFX0FSSVRITUVUSUMpCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4xLCBUIG4yID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1BSRUZJWCxfd2tuZCkKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgPSAobjEgQVVYNzc4MDc2X09QX1RPS0VOIG4yKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPFQsdmFsdWU+IHR5cGU7Cit9OworfQorI2VuZGlmCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBBVVg3NzgwNzZfT1BfSU1QTF9OQU1FPGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9WQUxVRV9BUklUSE1FVElDKQorICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIEFVWDc3ODA3Nl9PUF9UT0tFTiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyNlbHNlCisgICAgICAgIDogYXV4OjpCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1BSRUZJWCxfd2tuZCk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKyNlbmRpZgorICAgIHsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI3VuZGVmIEFVWDc3ODA3Nl9PUF9UQUdfTkFNRQorI3VuZGVmIEFVWDc3ODA3Nl9PUF9JTVBMX05BTUUKKyN1bmRlZiBBVVg3NzgwNzZfT1BfQVJJVFkKKyN1bmRlZiBBVVg3NzgwNzZfT1BfUFJFRklYCisjdW5kZWYgQVVYNzc4MDc2X09QX05BTUUKKyN1bmRlZiBBVVg3NzgwNzZfT1BfVE9LRU4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYXJpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhjNzA4ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYXJpdHkuaHBwCkBAIC0wLDAgKzEsMzkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0FSSVRZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0FSSVRZX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYXJpdHkuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vIGFndXJ0LCAxNS9tYXIvMDI6IGl0J3MgcG9zc2libGUgdG8gaW1wbGVtZW50IHRoZSB0ZW1wbGF0ZSBzbyB0aGF0IGl0IHdpbGwgCisvLyAianVzdCB3b3JrIiBhbmQgZG8gbm90IHJlcXVpcmUgYW55IHNwZWNpYWxpemF0aW9uLCBidXQgbm90IG9uIHRoZSBjb21waWxlcnMKKy8vIHRoYXQgcmVxdWlyZSB0aGUgYXJpdHkgd29ya2Fyb3VuZCBpbiB0aGUgZmlyc3QgcGxhY2UKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pID4KK3N0cnVjdCBhcml0eQoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gTik7Cit9OworCit9fX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfQlJPS0VOX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0FSSVRZX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9hcml0eV9zcGVjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYXJpdHlfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjljMTBiYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYXJpdHlfc3BlYy5ocHAKQEAgLTAsMCArMSw2NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQVJJVFlfU1BFQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYXJpdHlfc3BlYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kdHAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2FyaXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoaSx0eXBlLG5hbWUpIFwKK25hbWVzcGFjZSBhdXggeyBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKSwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGUgVCkgPiBcCitzdHJ1Y3QgYXJpdHk8IFwKKyAgICAgIG5hbWU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSxUKSA+IFwKKyAgICAsIE4gXAorICAgID4gXAoreyBcCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCBcCisgICAgICAgICwgdmFsdWUgPSBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZIFwKKyAgICAgICAgKTsgXAorfTsgXAorfSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05PTlRZUEVfQVJJVFlfU1BFQyhpLHR5cGUsbmFtZSkgLyoqLworI2VuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKGksbmFtZSkgXAorICAgIEJPT1NUX01QTF9BVVhfTk9OVFlQRV9BUklUWV9TUEVDKGksdHlwZW5hbWUsbmFtZSkgXAorLyoqLworCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKGksIG5hbWUpIFwKK25hbWVzcGFjZSBhdXggeyBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorc3RydWN0IHRlbXBsYXRlX2FyaXR5PCBuYW1lPEJPT1NUX01QTF9QUF9QQVJBTVMoaSxUKT4gPiBcCisgICAgOiBpbnRfPGk+IFwKK3sgXAorfTsgXAorfSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoaSwgbmFtZSkgLyoqLworI2VuZGlmCisKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQVJJVFlfU1BFQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYXRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2F0X2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMmYyMzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2F0X2ltcGwuaHBwCkBAIC0wLDAgKzEsNDUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0FUX0lNUExfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQVRfSU1QTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGF0X2ltcGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYWR2YW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2RlcmVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90cmFpdHNfbGFtYmRhX3NwZWMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworLy8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbjsgY29ucmV0ZSBzZXF1ZW5jZXMgbWlnaHQgb3ZlcnJpZGUgaXQgYnkgCisvLyBzcGVjaWFsaXppbmcgZWl0aGVyIHRoZSAnYXRfaW1wbCcgb3IgdGhlIHByaW1hcnkgJ2F0JyB0ZW1wbGF0ZQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBhdF9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFkdmFuY2U8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGJlZ2luPFNlcXVlbmNlPjo6dHlwZQorICAgICAgICAgICAgLCBOCisgICAgICAgICAgICA+Ojp0eXBlIGl0ZXJfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGVyZWY8aXRlcl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BTEdPUklUTV9UUkFJVFNfTEFNQkRBX1NQRUMoMiwgYXRfaW1wbCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQVRfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYmVnaW5fZW5kX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9iZWdpbl9lbmRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU3ZWY3MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vYmVnaW5fZW5kX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTAxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9CRUdJTl9FTkRfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9CRUdJTl9FTkRfSU1QTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYmVnaW5fZW5kX2ltcGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZ19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92b2lkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZXZhbF9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaGFzX2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdHJhaXRzX2xhbWJkYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKworbmFtZXNwYWNlIGF1eCB7IAorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiAKK3N0cnVjdCBiZWdpbl90eXBlIAoreyAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFNlcXVlbmNlOjpiZWdpbiB0eXBlOyAKK307Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiAKK3N0cnVjdCBlbmRfdHlwZQoreyAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFNlcXVlbmNlOjplbmQgdHlwZTsgCit9OworCit9CisKKy8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb247IGNvbnJldGUgc2VxdWVuY2VzIG1pZ2h0IG92ZXJyaWRlIGl0IGJ5IAorLy8gc3BlY2lhbGl6aW5nIGVpdGhlciB0aGUgJ2JlZ2luX2ltcGwvZW5kX2ltcGwnIG9yIHRoZSBwcmltYXJ5IAorLy8gJ2JlZ2luL2VuZCcgdGVtcGxhdGVzCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGJlZ2luX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZXZhbF9pZjxhdXg6Omhhc19iZWdpbjxTZXF1ZW5jZSwgdHJ1ZV8+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV4OjpiZWdpbl90eXBlPFNlcXVlbmNlPiwgdm9pZF8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGVuZF9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGV2YWxfaWY8YXV4OjpoYXNfYmVnaW48U2VxdWVuY2UsIHRydWVfPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1eDo6ZW5kX3R5cGU8U2VxdWVuY2U+LCB2b2lkXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworLy8gc3BlY2lhbGl6ZSAnYmVnaW5fdHJhaXQvZW5kX3RyYWl0JyBmb3IgdHdvIHByZS1kZWZpbmVkIHRhZ3MKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfSU1QTF9TUEVDKG5hbWUsIHRhZywgcmVzdWx0KSBcCit0ZW1wbGF0ZTw+IFwKK3N0cnVjdCBuYW1lIyNfaW1wbDx0YWc+IFwKK3sgXAorICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSA+IHN0cnVjdCBhcHBseSBcCisgICAgeyBcCisgICAgICAgIHR5cGVkZWYgcmVzdWx0IHR5cGU7IFwKKyAgICB9OyBcCit9OyBcCisvKiovCisKKy8vIGEgc2VxdWVuY2Ugd2l0aCBuZXN0ZWQgJ2JlZ2luL2VuZCcgdHlwZWRlZnM7IGp1c3QgcXVlcnkgdGhlbQorQVVYNzc4MDc2X0lNUExfU1BFQyhiZWdpbiwgbmVzdGVkX2JlZ2luX2VuZF90YWcsIHR5cGVuYW1lIFNlcXVlbmNlOjpiZWdpbikKK0FVWDc3ODA3Nl9JTVBMX1NQRUMoZW5kLCBuZXN0ZWRfYmVnaW5fZW5kX3RhZywgdHlwZW5hbWUgU2VxdWVuY2U6OmVuZCkKKworLy8gaWYgYSB0eXBlICdUJyBkb2VzIG5vdCBjb250YWluICdiZWdpbi9lbmQnIG9yICd0YWcnIG1lbWJlcnMgCisvLyBhbmQgZG9lc24ndCBzcGVjaWFsaXplIGVpdGhlciAnYmVnaW4vZW5kJyBvciAnYmVnaW5faW1wbC9lbmRfaW1wbCcgCisvLyB0ZW1wbGF0ZXMsIHRoZW4gd2UgZW5kIHVwIGhlcmUKK0FVWDc3ODA3Nl9JTVBMX1NQRUMoYmVnaW4sIG5vbl9zZXF1ZW5jZV90YWcsIHZvaWRfKQorQVVYNzc4MDc2X0lNUExfU1BFQyhlbmQsIG5vbl9zZXF1ZW5jZV90YWcsIHZvaWRfKQorQVVYNzc4MDc2X0lNUExfU1BFQyhiZWdpbiwgbmEsIHZvaWRfKQorQVVYNzc4MDc2X0lNUExfU1BFQyhlbmQsIG5hLCB2b2lkXykKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9JTVBMX1NQRUMKKworCitCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDX0lNUEwoMSxiZWdpbl9pbXBsKQorQk9PU1RfTVBMX0FMR09SSVRNX1RSQUlUU19MQU1CREFfU1BFQ19JTVBMKDEsZW5kX2ltcGwpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0JFR0lOX0VORF9JTVBMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jbGVhcl9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY2xlYXJfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU1ZGZhMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY2xlYXJfaW1wbC5ocHAKQEAgLTAsMCArMSwzNSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ0xFQVJfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DTEVBUl9JTVBMX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogY2xlYXJfaW1wbC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9jbGVhcl9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3RyYWl0c19sYW1iZGFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uOyB0aGUgZGVmaW5pdGlvbiBpcyBuZWVkZWQgdG8gbWFrZSBNU1ZDIGhhcHB5CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGNsZWFyX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiBzdHJ1Y3QgYXBwbHk7Cit9OworCitCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDKDEsIGNsZWFyX2ltcGwpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NMRUFSX0lNUExfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbW1vbl9uYW1lX3drbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb21tb25fbmFtZV93a25kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDdjMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb21tb25fbmFtZV93a25kLmhwcApAQCAtMCwwICsxLDM0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT01NT05fTkFNRV9XS05EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTU1PTl9OQU1FX1dLTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBjb21tb25fbmFtZV93a25kLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg1NjEpCisvLyBhZ3VydCwgMTIvbm92LzAyOiB0byBzdXBwcmVzcyB0aGUgYm9ndXMgIkNhbm5vdCBoYXZlIGJvdGggYSB0ZW1wbGF0ZSBjbGFzcyAKKy8vIGFuZCBmdW5jdGlvbiBuYW1lZCAneHh4JyIgZGlhZ25vc3RpYworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0NPTU1PTl9OQU1FX1dLTkQobmFtZSkgXAorbmFtZXNwYWNlIG5hbWVfIyN3a25kIHsgXAordGVtcGxhdGU8IHR5cGVuYW1lID4gdm9pZCBuYW1lKCk7IFwKK30gXAorLyoqLworCisjZWxzZQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09NTU9OX05BTUVfV0tORChuYW1lKSAvKiovCisKKyNlbmRpZiAvLyBfX0JPUkxBTkRDX18KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09NTU9OX05BTUVfV0tORF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29tcGFyaXNvbl9vcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbXBhcmlzb25fb3AuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwODI3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbXBhcmlzb25fb3AuaHBwCkBAIC0wLDAgKzEsODMgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogY29tcGFyaXNvbl9vcC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwPgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChBVVg3NzgwNzZfT1BfUFJFRklYKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfUFJFRklYIEFVWDc3ODA3Nl9PUF9OQU1FCisjZW5kaWYKKworI2RlZmluZSBBVVg3NzgwNzZfT1BfQVJJVFkgMgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnVtZXJpY19vcC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgQVVYNzc4MDc2X09QX1BSRUZJWC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaW50ZWdyYWwuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworLy8gTVNWQyB3b3JrYXJvdW5kOiBpbXBsZW1lbnQgbGVzcyBpbiB0ZXJtcyBvZiBncmVhdGVyCisjaWYgMCBBVVg3NzgwNzZfT1BfVE9LRU4gMSAmJiAhKDEgQVVYNzc4MDc2X09QX1RPS0VOIDApICYmICEoMCBBVVg3NzgwNzZfT1BfVE9LRU4gMCkKKyMgICBkZWZpbmUgQVVYNzc4MDc2X09QKE4xLCBOMikgXAorICAgICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgPiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSApIFwKKy8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9PUChOMSwgTjIpIFwKKyAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlIFwKKyAgICAgICAgICBBVVg3NzgwNzZfT1BfVE9LRU4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgXAorICAgICAgICApIFwKKy8qKi8KKyNlbmRpZgorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgQVVYNzc4MDc2X09QX0lNUExfTkFNRTxpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ORVNURURfVkFMVUVfQVJJVEhNRVRJQykKKyAgICAgICAgOiBib29sXzwgQVVYNzc4MDc2X09QKE4xLCBOMikgPgorICAgIHsKKyNlbHNlCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBBVVg3NzgwNzZfT1AoTjEsIE4yKSk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisjZW5kaWYKKyAgICB9OworfTsKKworI3VuZGVmIEFVWDc3ODA3Nl9PUAorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisjdW5kZWYgQVVYNzc4MDc2X09QX1RBR19OQU1FCisjdW5kZWYgQVVYNzc4MDc2X09QX0lNUExfTkFNRQorI3VuZGVmIEFVWDc3ODA3Nl9PUF9BUklUWQorI3VuZGVmIEFVWDc3ODA3Nl9PUF9QUkVGSVgKKyN1bmRlZiBBVVg3NzgwNzZfT1BfTkFNRQorI3VuZGVmIEFVWDc3ODA3Nl9PUF9UT0tFTgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYWRsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2FkbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI1NzMwNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2FkbC5ocHAKQEAgLTAsMCArMSw0MCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX0FETF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfQURMX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYWRsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisvLyBhZ3VydCwgMjUvYXByLzA0OiB0ZWNobmljYWxseSwgdGhlIEFETCB3b3JrYXJvdW5kIGlzIG9ubHkgbmVlZGVkIGZvciBHQ0MsCisvLyBidXQgcHV0dGluZyBldmVyeXRoaW5nIGV4cGVjdCBwdWJsaWMsIHVzZXItc3BlY2lhbGl6YWJsZSBtZXRhZnVuY3Rpb25zIGludG8KKy8vIGEgc2VwYXJhdGUgZ2xvYmFsIG5hbWVzcGFjZSBoYXMgYSBuaWNlIHNpZGUgZWZmZWN0IG9mIHJlZHVjaW5nIHRoZSBsZW5ndGggCisvLyBvZiB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIHN5bWJvbHMsIHNvIHdlIGFwcGx5IHRoZSB3b3JrYXJvdW5kIG9uIGFsbCAKKy8vIHBsYXRmb3JtcyB0aGF0IGNhbiBoYW5kbGUgaXQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fQURMX0JBUlJJRVJfTkFNRVNQQUNFKSBcCisgICAgJiYgKCAgIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgQk9PU1RfVEVTVEVEX0FUKDE0MDApKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIEJPT1NUX1RFU1RFRF9BVCgweDMyMDIpKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04sIEJPT1NUX1RFU1RFRF9BVCg4MTApKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX0FETF9CQVJSSUVSX05BTUVTUEFDRQorCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0FETF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2FycmF5cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9hcnJheXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MzYzMWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9hcnJheXMuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19BUlJBWVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0FSUkFZU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMy0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGFycmF5cy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0RFUEVOREVOVF9BUlJBWV9UWVBFUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkgXAorICAgICAgICApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19ERVBFTkRFTlRfQVJSQVlfVFlQRVMKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19BUlJBWVNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9iY2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYmNjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzQyMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYmNjLmhwcApAQCAtMCwwICsxLDI4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfQkNDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19CQ0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDgKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYmNjLmhwcCA0OTI3MiAyMDA4LTEwLTExIDA2OjUwOjQ2WiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDQtMDktMDIgMTA6NDE6MzcgLTA1MDAgKFRodSwgMDIgU2VwIDIwMDQpICQKKy8vICRSZXZpc2lvbjogMjQ4NzQgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19CQ0M1OTBfV09SS0FST1VORFMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sID49IDB4NTkwKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19CQ0M1OTBfV09SS0FST1VORFMKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19CQ0NfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNmMwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9iaW5kLmhwcApAQCAtMCwwICsxLDMzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfQklORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfQklORF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBiaW5kLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fQklORF9URU1QTEFURSkgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoICAgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX0JJTkRfVEVNUExBVEUKKworI2VuZGlmCisKKy8vI2RlZmluZSBCT09TVF9NUExfQ0ZHX05PX1VOTkFNRURfUExBQ0VIT0xERVJfU1VQUE9SVAorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfQklORF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2NvbXBpbGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2NvbXBpbGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTUyNDQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY29tcGlsZXIuaHBwCkBAIC0wLDAgKzEsNjYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19DT01QSUxFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfQ09NUElMRVJfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwOAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBjb21waWxlci5ocHAgNTMxODkgMjAwOS0wNS0yMiAyMDowNzo1NVogaGthaXNlciAkCisvLyAkRGF0ZTogMjAwOS0wNS0yMiAxMzowNzo1NSAtMDcwMCAoRnJpLCAyMiBNYXkgMjAwOSkgJAorLy8gJFJldmlzaW9uOiA1MzE4OSAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUikKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kdHAuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjICAgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUiBtc3ZjNjAKKworIyAgIGVsaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzAwKQorIyAgICAgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19DT01QSUxFUl9ESVIgbXN2YzcwCisKKyMgICBlbGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVBMX0NGR19HQ0MsIEJPT1NUX1RFU1RFRF9BVCgweDAzMDQpKQorIyAgICAgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19DT01QSUxFUl9ESVIgZ2NjCisKKyMgICBlbGlmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKQorIyAgICAgICBpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTKQorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfQ09NUElMRVJfRElSIGJjYzU1MQorIyAgICAgICBlbGlmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA+PSAweDU5MCkKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUiBiY2MKKyMgICAgICAgZWxzZQorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfQ09NUElMRVJfRElSIGJjY19wcmU1OTAKKyMgICAgICAgZW5kaWYKKworIyAgIGVsaWYgQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKQorIyAgICAgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19DT01QSUxFUl9ESVIgZG1jCisKKyMgICBlbGlmIGRlZmluZWQoX19NV0VSS1NfXykKKyMgICAgICAgaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUiBtd2N3CisjICAgICAgIGVsc2UKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUiBwbGFpbgorIyAgICAgICBlbmRpZgorCisjICAgZWxpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUiBub19jdHBzCisKKyMgICBlbGlmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19URU1QTEFURV9URU1QTEFURV9QQVJBTUVURVJTKQorIyAgICAgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19DT01QSUxFUl9ESVIgbm9fdHRwCisKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUiBwbGFpbgorIyAgIGVuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX0NPTVBJTEVSX0RJUgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfQ09NUElMRVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwOGEzMTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcApAQCAtMCwwICsxLDMwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfQ1RQU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfQ1RQU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGN0cHMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTk9OVFlQRV9URU1QTEFURV9QQVJUSUFMX1NQRUMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg1ODIpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19OT05UWVBFX1RFTVBMQVRFX1BBUlRJQUxfU1BFQworCisjZW5kaWYKKworLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiBpcyBkZWZpbmVkIGluIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfQ1RQU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2RtY19hbWJpZ3VvdXNfY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kbWNfYW1iaWd1b3VzX2N0cHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNTRhZTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kbWNfYW1iaWd1b3VzX2N0cHMuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19ETUNfQU1CSUdVT1VTX0NUUFNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0RNQ19BTUJJR1VPVVNfQ1RQU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBkbWNfYW1iaWd1b3VzX2N0cHMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0RNQ19BTUJJR1VPVVNfQ1RQUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fRE1DX18sIEJPT1NUX1RFU1RFRF9BVCgweDg0MCkpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19ETUNfQU1CSUdVT1VTX0NUUFMKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19ETUNfQU1CSUdVT1VTX0NUUFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kdHAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Nzk2Mjg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfRFRQX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19EVFBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBkdHAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKy8vIE1XQ1cgNy54LTguMCAibG9zdHMiIGRlZmF1bHQgdGVtcGxhdGUgcGFyYW1ldGVycyBvZiBuZXN0ZWQgY2xhc3MgCisvLyB0ZW1wbGF0ZXMgd2hlbiB0aGVpciBvd25lciBjbGFzc2VzIGFyZSBwYXNzZWQgYXMgYXJndW1lbnRzIHRvIG90aGVyIAorLy8gdGVtcGxhdGVzOyBCb3JsYW5kIDUuNS4xICJmb3JnZXRzIiB0aGVtIGZyb20gdGhlIHZlcnkgYmVnaW5uaW5nIChpZiAKKy8vIHRoZSBvd25lciBjbGFzcyBpcyBhIGNsYXNzIHRlbXBsYXRlKSwgYW5kIEJvcmxhbmQgNS42IGlzbid0IGV2ZW4KKy8vIGFibGUgdG8gY29tcGlsZSBhIGRlZmluaXRpb24gb2YgbmVzdGVkIGNsYXNzIHRlbXBsYXRlIHdpdGggRFRQCisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA+PSAweDU2MCkgXAorICAgICYmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMKKworI2VuZGlmCisKKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfQlJPS0VOX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmICggICBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIDw9IDB4MzAwMSkgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkgXAorICAgICAgICB8fCBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpIFwKKyAgICAgICAgKQorICAgICAgICAKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19CUk9LRU5fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19EVFBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjJmMjljCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcApAQCAtMCwwICsxLDQ3IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfRVRJX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19FVElfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBldGkuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisvLyBmbGFncyBmb3IgTVNWQyA2LjUncyBzby1jYWxsZWQgImVhcmx5IHRlbXBsYXRlIGluc3RhbnRpYXRpb24gYnVnIgorI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHCisKKyNlbmRpZgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzcwX0VUSV9CVUcpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzAwKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTVNWQ183MF9FVElfQlVHCisKKyNlbmRpZgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgKCBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKSBcCisgICAgICAgIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzcwX0VUSV9CVUcpIFwKKyAgICAgICAgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTVNWQ19FVElfQlVHCisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfRVRJX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZm9yd2FyZGluZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9mb3J3YXJkaW5nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjdlODMyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZm9yd2FyZGluZy5ocHAKQEAgLTAsMCArMSwyNyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX0ZPUldBUkRJTkdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0ZPUldBUkRJTkdfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZm9yd2FyZGluZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX0ZPUldBUkRJTkcpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19ORVNURURfRk9SV0FSRElORworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0ZPUldBUkRJTkdfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9nY2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWQ4ZjdkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcApAQCAtMCwwICsxLDIzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfR0NDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19HQ0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZ2NjLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19FREdfVkVSU0lPTl9fKQorIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0dDQyAoKF9fR05VQ19fIDw8IDgpIHwgX19HTlVDX01JTk9SX18pCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0dDQyAwCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0dDQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2hhc19hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfYXBwbHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYWVkNWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfYXBwbHkuaHBwCkBAIC0wLDAgKzEsMzIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19IQVNfQVBQTFlfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0hBU19BUFBMWV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBoYXNfYXBwbHkuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaGFzX3h4eC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fSEFTX0FQUExZKSBcCisgICAgJiYgKCAgIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8IDMwMCkgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCBCT09TVF9URVNURURfQVQoMHgzMjAyKSkgXAorICAgICAgICApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19IQVNfQVBQTFkKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19IQVNfQVBQTFlfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfeHh4LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2hhc194eHguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjZmY4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfeHh4LmhwcApAQCAtMCwwICsxLDM0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfSEFTX1hYWF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfSEFTX1hYWF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi0yMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGhhc194eHguaHBwIDYzNTE4IDIwMTAtMDctMDIgMDg6MzI6MDNaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAxMC0wNy0wMiAwMTozMjowMyAtMDcwMCAoRnJpLCAwMiBKdWwgMjAxMCkgJAorLy8gJFJldmlzaW9uOiA2MzUxOCAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvb3ZlcmxvYWRfcmVzb2x1dGlvbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisvLyBhZ3VydCwgMTEvamFuLzAzOiBzaWduYWxzIGEgc3R1Yi1vbmx5ICdoYXNfeHh4JyBpbXBsZW1lbnRhdGlvbgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYKSBcCisgICAgJiYgKCAgIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fT1ZFUkxPQURfUkVTT0xVVElPTikgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA8PSAyKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkgXAorICAgICAgICApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fSEFTX1hYWF9URU1QTEFURQorCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0hBU19YWFhfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThjYmQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVncmFsLmhwcApAQCAtMCwwICsxLDM4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfSU5URUdSQUxfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0lOVEVHUkFMX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGludGVncmFsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfQkNDX0lOVEVHUkFMX0NPTlNUQU5UUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0JDQ19JTlRFR1JBTF9DT05TVEFOVFMKKworI2VuZGlmCisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9WQUxVRV9BUklUSE1FVElDKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmICggQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpIFwKKyAgICAgICAgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX1ZBTFVFX0FSSVRITUVUSUMKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19JTlRFR1JBTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTRkYzllCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaW50ZWwuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19JTlRFTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfSU5URUxfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW50ZWwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKworLy8gQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gaXMgZGVmaW5lZCBoZXJlOgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19JTlRFTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2xhbWJkYS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwODM4NWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwCkBAIC0wLDAgKzEsMzIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19MQU1CREFfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0xBTUJEQV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxhbWJkYS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKworLy8gYWd1cnQsIDE1L2phbi8wMjogZnVsbC1mbGVkZ2VkIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIGJvdGggCisvLyB0ZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIF9hbmRfIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkgXAorICAgICYmICggICBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fVEVNUExBVEVfVEVNUExBVEVfUEFSQU1FVEVSUykgXAorICAgICAgICB8fCBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICAgICAgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVAorCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0xBTUJEQV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJhNjllYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19NU1ZDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19NU1ZDX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbXN2Yy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworCisvLyBCT09TVF9NU1ZDIGlzIGRlZmluZWQgaGVyZToKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfTVNWQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmNfdHlwZW5hbWUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Y190eXBlbmFtZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVmYWIwMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmNfdHlwZW5hbWUuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19NU1ZDX1RZUEVOQU1FX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19NU1ZDX1RZUEVOQU1FX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbXN2Y190eXBlbmFtZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApCisjICAgZGVmaW5lIEJPT1NUX01TVkNfVFlQRU5BTUUKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01TVkNfVFlQRU5BTUUgdHlwZW5hbWUKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfTVNWQ19UWVBFTkFNRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL250dHAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMxN2Q0MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL250dHAuaHBwCkBAIC0wLDAgKzEsNDEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19OVFRQX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19OVFRQX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbnR0cC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKy8vIE1TVkMgNi41IElDRS1zIG9uIHRoZSBjb2RlIGFzIHNpbXBsZSBhcyB0aGlzIChzZWUgImF1eF8vbnR0cF9kZWNsLmhwcCIKKy8vIGZvciBhIHdvcmthcm91bmQpOgorLy8KKy8vICAgIG5hbWVzcGFjZSBzdGQgeworLy8gICAgdGVtcGxhdGU8IHR5cGVuYW1lIENoYXIgPiBzdHJ1Y3Qgc3RyaW5nOworLy8gICAgfQorLy8KKy8vICAgIHZvaWQgZm9vKHN0ZDo6c3RyaW5nPGNoYXI+KTsKKy8vCisvLyAgICBuYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKy8vICAgIHRlbXBsYXRlPCBpbnQgPiBzdHJ1Y3QgYXJnOworLy8gICAgfX0KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTlRUUF9CVUcpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OVFRQX0JVRworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX05UVFBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9vdmVybG9hZF9yZXNvbHV0aW9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL292ZXJsb2FkX3Jlc29sdXRpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzYTc5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9vdmVybG9hZF9yZXNvbHV0aW9uLmhwcApAQCAtMCwwICsxLDI5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfT1ZFUkxPQURfUkVTT0xVVElPTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfT1ZFUkxPQURfUkVTT0xVVElPTl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG92ZXJsb2FkX3Jlc29sdXRpb24uaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9PVkVSTE9BRF9SRVNPTFVUSU9OKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmICggICBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDU5MCkgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIDwgMHgzMDAxKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0JST0tFTl9PVkVSTE9BRF9SRVNPTFVUSU9OCisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfT1ZFUkxPQURfUkVTT0xVVElPTl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3BwX2NvdW50ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHBfY291bnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJjNDMxOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3BwX2NvdW50ZXIuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19QUF9DT1VOVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19QUF9DT1VOVEVSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA2CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHBwX2NvdW50ZXIuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQVVYX1BQX0NPVU5URVIpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorIyAgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPj0gMTMwMCkKKyMgICAgICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfUFBfQ09VTlRFUigpIF9fQ09VTlRFUl9fCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUF9DT1VOVEVSKCkgX19MSU5FX18KKyMgICBlbmRpZgorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19QUF9DT1VOVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQyMDg4ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHAKQEAgLTAsMCArMSwzOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX1BSRVBST0NFU1NPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfUFJFUFJPQ0VTU09SX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHJlcHJvY2Vzc29yLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fUFBfTUFDUk9fRVhQQU5TSU9OKSBcCisgICAgJiYgKCAgIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgPD0gMHgzMDAzKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NTgyKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgQk9PU1RfVEVTVEVEX0FUKDUwMikpIFwKKyAgICAgICAgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfQlJPS0VOX1BQX01BQ1JPX0VYUEFOU0lPTgorCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fT1dOX1BQX1BSSU1JVElWRVMpCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fT1dOX1BQX1BSSU1JVElWRVMKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTkVFRFNfVE9LRU5fUEFTVElOR19PUF9GT1JfVE9LRU5TX0pVWFRBUE9TSU5HKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKQorIyAgIGRlZmluZSBCT09TVF9ORUVEU19UT0tFTl9QQVNUSU5HX09QX0ZPUl9UT0tFTlNfSlVYVEFQT1NJTkcKKyNlbmRpZgorCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19QUkVQUk9DRVNTT1JfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzOTdlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcApAQCAtMCwwICsxLDI1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfU1RBVElDX0NPTlNUQU5UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19TVEFUSUNfQ09OU1RBTlRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBzdGF0aWNfY29uc3RhbnQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorLy8gQk9PU1RfU1RBVElDX0NPTlNUQU5UIGlzIGRlZmluZWQgaGVyZToKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2Vsc2UKKy8vIHVuZGVmIHRoZSBtYWNybyBmb3IgdGhlIHByZXByb2Nlc3NpbmcgbW9kZQorIyAgIHVuZGVmIEJPT1NUX1NUQVRJQ19DT05TVEFOVAorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19TVEFUSUNfQ09OU1RBTlRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODVjODJmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcApAQCAtMCwwICsxLDQxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfVFRQX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19UVFBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB0dHAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19URU1QTEFURV9URU1QTEFURV9QQVJBTUVURVJTKSBcCisgICAgJiYgKCBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1RFTVBMQVRFUykgXAorICAgICAgfHwgQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoIDB4NTkwKSApIFwKKyAgICAgICApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19URU1QTEFURV9URU1QTEFURV9QQVJBTUVURVJTCisKKyNlbmRpZgorCisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0VYVEVOREVEX1RFTVBMQVRFX1BBUkFNRVRFUlNfTUFUQ0hJTkcpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgKCAgIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVBMX0NGR19HQ0MsIEJPT1NUX1RFU1RFRF9BVCgweDAzMDIpKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0VYVEVOREVEX1RFTVBMQVRFX1BBUkFNRVRFUlNfTUFUQ0hJTkcKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19UVFBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90eXBlb2YuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTQyNWY5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcApAQCAtMCwwICsxLDM4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfVFlQRU9GX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19UWVBFT0ZfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDMtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB0eXBlb2YuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfSEFTX1RZUEVPRikgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoICAgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0dDQykgJiYgQk9PU1RfTVBMX0NGR19HQ0MgPj0gMHgwMzAyIFwKKyAgICAgICAgfHwgZGVmaW5lZChfX01XRVJLU19fKSAmJiBfX01XRVJLU19fID49IDB4MzAwMCBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX0hBU19UWVBFT0YKKworI2VuZGlmCisKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfSEFTX1RZUEVPRikKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19UWVBFT0ZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0OTQzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcApAQCAtMCwwICsxLDE5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfVVNFX1BSRVBST0NFU1NFRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfVVNFX1BSRVBST0NFU1NFRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHVzZV9wcmVwcm9jZXNzZWQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKy8vICNkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfVVNFX1BSRVBST0NFU1NFRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UyZGE5OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwCkBAIC0wLDAgKzEsMTkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19XT1JLQVJPVU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19XT1JLQVJPVU5EX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogd29ya2Fyb3VuZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX1dPUktBUk9VTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvbnRhaW5zX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb250YWluc19pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41M2VjMTIyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9jb250YWluc19pbXBsLmhwcApAQCAtMCwwICsxLDYxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05UQUlOU19JTVBMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTlRBSU5TX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBFcmljIEZyaWVkbWFuIDIwMDIKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogY29udGFpbnNfaW1wbC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9jb250YWluc19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iZWdpbl9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9maW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbm90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90cmFpdHNfbGFtYmRhX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9mb3J3YXJkaW5nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgY29udGFpbnNfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX0ZPUldBUkRJTkcpCisgICAgICAgIDogbm90XzwgaXNfc2FtZTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZmluZDxTZXF1ZW5jZSxUPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBlbmQ8U2VxdWVuY2U+Ojp0eXBlCisgICAgICAgICAgICA+ID4KKyAgICB7CisjZWxzZQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBub3RfPCBpc19zYW1lPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmaW5kPFNlcXVlbmNlLFQ+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGVuZDxTZXF1ZW5jZT46OnR5cGUKKyAgICAgICAgICAgID4gPiB0eXBlOworCisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgICAgICAgICAobm90XzwgaXNfc2FtZTwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGZpbmQ8U2VxdWVuY2UsVD46OnR5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIGVuZDxTZXF1ZW5jZT46OnR5cGUKKyAgICAgICAgICAgICAgICA+ID46OnZhbHVlKQorICAgICAgICAgICAgKTsKKyNlbmRpZgorICAgIH07Cit9OworCitCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDKDIsY29udGFpbnNfaW1wbCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09OVEFJTlNfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vY291bnRfYXJncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvdW50X2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ODUyYjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2NvdW50X2FyZ3MuaHBwCkBAIC0wLDAgKzEsMTA1IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGNvdW50X2FyZ3MuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZXhwcl9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyNpZiAhZGVmaW5lZChBVVg3NzgwNzZfQ09VTlRfQVJHU19QQVJBTV9OQU1FKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19QQVJBTV9OQU1FIFQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQVVYNzc4MDc2X0NPVU5UX0FSR1NfVEVNUExBVEVfUEFSQU0pCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX1RFTVBMQVRFX1BBUkFNIHR5cGVuYW1lIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX1BBUkFNX05BTUUKKyNlbmRpZgorCisvLyBsb2NhbCBtYWNyb3MsICN1bmRlZi1pbmVkIGF0IHRoZSBlbmQgb2YgdGhlIGhlYWRlcgorCisjaWYgIWRlZmluZWQoQVVYNzc4MDc2X0NPVU5UX0FSR1NfVVNFX1NUQU5EQVJEX1BQX1BSSU1JVElWRVMpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19SRVBFQVQgQk9PU1RfTVBMX1BQX1JFUEVBVAorIyAgIGRlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19QQVJBTVMocGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKCBcCisgICAgICAgICAgQVVYNzc4MDc2X0NPVU5UX0FSR1NfQVJJVFkgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX1JFUEVBVCBCT09TVF9QUF9SRVBFQVQKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0NPVU5UX0FSR1NfUEFSQU1TKHBhcmFtKSBcCisgICAgQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNUyggXAorICAgICAgICAgIEJPT1NUX1BQX0lOQyhBVVg3NzgwNzZfQ09VTlRfQVJHU19BUklUWSkgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjZW5kaWYgLy8gQVVYNzc4MDc2X0NPVU5UX0FSR1NfVVNFX1NUQU5EQVJEX1BQX1BSSU1JVElWRVMKKworCisjZGVmaW5lIEFVWDc3ODA3Nl9JU19BUkdfVEVNUExBVEVfTkFNRSBcCisgICAgQk9PU1RfUFBfQ0FUKGlzXyxCT09TVF9QUF9DQVQoQVVYNzc4MDc2X0NPVU5UX0FSR1NfUFJFRklYLF9hcmcpKSBcCisvKiovCisKKyNkZWZpbmUgQVVYNzc4MDc2X0NPVU5UX0FSR1NfRlVOQyh1bnVzZWQsIGksIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfRVhQUl9JRihpLCArKSBcCisgICAgQVVYNzc4MDc2X0lTX0FSR19URU1QTEFURV9OQU1FPEJPT1NUX1BQX0NBVChwYXJhbSxCT09TVF9QUF9JTkMoaSkpPjo6dmFsdWUgXAorLyoqLworCisvLyBpc188eHh4Pl9hcmcKK3RlbXBsYXRlPCBBVVg3NzgwNzZfQ09VTlRfQVJHU19URU1QTEFURV9QQVJBTSA+CitzdHJ1Y3QgQVVYNzc4MDc2X0lTX0FSR19URU1QTEFURV9OQU1FCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgQVVYNzc4MDc2X0lTX0FSR19URU1QTEFURV9OQU1FPEFVWDc3ODA3Nl9DT1VOVF9BUkdTX0RFRkFVTFQ+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKworLy8gPHh4eD5fY291bnRfYXJncwordGVtcGxhdGU8CisgICAgICBBVVg3NzgwNzZfQ09VTlRfQVJHU19QQVJBTVMoQVVYNzc4MDc2X0NPVU5UX0FSR1NfVEVNUExBVEVfUEFSQU0pCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfQ09VTlRfQVJHU19QUkVGSVgsX2NvdW50X2FyZ3MpCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSBBVVg3NzgwNzZfQ09VTlRfQVJHU19SRVBFQVQoCisgICAgICAgICAgQVVYNzc4MDc2X0NPVU5UX0FSR1NfQVJJVFkKKyAgICAgICAgLCBBVVg3NzgwNzZfQ09VTlRfQVJHU19GVU5DCisgICAgICAgICwgQVVYNzc4MDc2X0NPVU5UX0FSR1NfUEFSQU1fTkFNRQorICAgICAgICApKTsKK307CisKKyN1bmRlZiBBVVg3NzgwNzZfQ09VTlRfQVJHU19GVU5DCisjdW5kZWYgQVVYNzc4MDc2X0lTX0FSR19URU1QTEFURV9OQU1FCisjdW5kZWYgQVVYNzc4MDc2X0NPVU5UX0FSR1NfUEFSQU1TCisjdW5kZWYgQVVYNzc4MDc2X0NPVU5UX0FSR1NfUkVQRUFUCisKKyN1bmRlZiBBVVg3NzgwNzZfQ09VTlRfQVJHU19BUklUWQorI3VuZGVmIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX0RFRkFVTFQKKyN1bmRlZiBBVVg3NzgwNzZfQ09VTlRfQVJHU19QUkVGSVgKKyN1bmRlZiBBVVg3NzgwNzZfQ09VTlRfQVJHU19VU0VfU1RBTkRBUkRfUFBfUFJJTUlUSVZFUworI3VuZGVmIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX1RFTVBMQVRFX1BBUkFNCisjdW5kZWYgQVVYNzc4MDc2X0NPVU5UX0FSR1NfUEFSQU1fTkFNRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9maW5kX2lmX3ByZWQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9maW5kX2lmX3ByZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1Yzg3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2ZpbmRfaWZfcHJlZC5ocHAKQEAgLTAsMCArMSwzMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfRklORF9JRl9QUkVEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0ZJTkRfSUZfUFJFRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgRXJpYyBGcmllZG1hbiAyMDAyCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9hcHBseS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL25vdC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFByZWRpY2F0ZSA+CitzdHJ1Y3QgZmluZF9pZl9wcmVkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbm90XzwgYXV4OjppdGVyX2FwcGx5MTxQcmVkaWNhdGUsSXRlcmF0b3I+ID4gdHlwZTsKKyAgICB9OworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0ZJTkRfSUZfUFJFRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzllMjk2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0ZPTERfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9GT0xEX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBmb2xkX2ltcGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0X3ByaW9yLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXBwbHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9kZXJlZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjICAgZW5kaWYKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgZm9sZF9pbXBsLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfRk9MRF9JTVBMX09QKGl0ZXIpIHR5cGVuYW1lIGRlcmVmPGl0ZXI+Ojp0eXBlCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVggZm9sZAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbF9ib2R5LmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0ZPTERfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsX2JvZHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9mb2xkX2ltcGxfYm9keS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY5OGRiZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsX2JvZHkuaHBwCkBAIC0wLDAgKzEsMzY1IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGZvbGRfaW1wbF9ib2R5LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy91bnJvbGxpbmcuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVjLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworLy8gbG9jYWwgbWFjcm9zLCAjdW5kZWYtaW5lZCBhdCB0aGUgZW5kIG9mIHRoZSBoZWFkZXIKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfSVRFUl9GT0xEX1NURVAodW51c2VkLCBpLCB1bnVzZWQyKSBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFwKKyAgICAgICAgICBGb3J3YXJkT3AgXAorICAgICAgICAsIEJPT1NUX1BQX0NBVChzdGF0ZSxpKSBcCisgICAgICAgICwgQVVYNzc4MDc2X0ZPTERfSU1QTF9PUChCT09TVF9QUF9DQVQoaXRlcixpKSkgXAorICAgICAgICA+Ojp0eXBlIEJPT1NUX1BQX0NBVChzdGF0ZSxCT09TVF9QUF9JTkMoaSkpOyBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8Qk9PU1RfUFBfQ0FUKGl0ZXIsaSk+Ojp0eXBlIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKGl0ZXIsQk9PU1RfUFBfSU5DKGkpKTsgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUUgXAorICAgIEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9pbXBsKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUUgXAorICAgIEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9jaHVuaykgXAorICAgIC8qKi8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgordGVtcGxhdGU8CisgICAgICBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4gCitzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FOworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworIyAgIGlmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgwLCBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HLCA8bmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsX2JvZHkuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworLy8gaW1wbGVtZW50YXRpb24gZm9yIE4gdGhhdCBleGNlZWRzIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcKK3RlbXBsYXRlPAorICAgICAgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKQorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRQoreworICAgIHR5cGVkZWYgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FPAorICAgICAgICAgIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FPAorICAgICAgICAgICggKE4gLSBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HKSA8IDAgPyAwIDogTiAtIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcgKQorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IHJlc187CisgICAgICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKKy8vIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIGZvciBzZXF1ZW5jZXMgb2YgdW5rbm93biBzaXplCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPiAKK3N0cnVjdCBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUU8LTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3A+CisgICAgOiBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUU8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsQVVYNzc4MDc2X0ZPTERfSU1QTF9PUChGaXJzdCk+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4gCitzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FPC0xLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3A+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCisjICAgZWxzZSAvLyBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkKKworLy8gQm9ybGFuZCBoYXZlIHNvbWUgc2VyaW91cyBwcm9ibGVtcyB3aXRoIHRoZSB1bnJvbGxlZCB2ZXJzaW9uLCBzbworLy8gd2UgYWx3YXlzIHVzZSBhIGJhc2ljIGltcGxlbWVudGF0aW9uCit0ZW1wbGF0ZTwKKyAgICAgIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikKKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPiAKK3N0cnVjdCBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUUKK3sKKyAgICB0eXBlZGVmIEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRTwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSxBVVg3NzgwNzZfRk9MRF9JTVBMX09QKEZpcnN0KT46OnR5cGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIHR5cGVkZWYgc3RhdGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKQorICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRTxOLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgc3RhdGUgdHlwZTsKK307CisKKyMgICBlbmRpZiAvLyBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkKKyAKKyNlbHNlIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPgorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUU7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMCwgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORywgPG5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbF9ib2R5LmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKy8vIGltcGxlbWVudGF0aW9uIGZvciBOIHRoYXQgZXhjZWVkcyBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKSA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+IAorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRTwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORworICAgICAgICAgICAgLCBGaXJzdAorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIFN0YXRlCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgPiBjaHVua187CisKKyAgICAgICAgdHlwZWRlZiBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUU8CisgICAgICAgICAgICAgICggKE4gLSBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HKSA8IDAgPyAwIDogTiAtIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcgKQorICAgICAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCisvLyBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBmb3Igc2VxdWVuY2VzIG9mIHVua25vd24gc2l6ZQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4gCitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVgsX3N0ZXApOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9udWxsX3N0ZXApCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUU8LTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPiAKKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8Rmlyc3QsTGFzdD46OnR5cGUKKyAgICAgICAgICAgICwgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVgsX251bGxfc3RlcCk8TGFzdCxTdGF0ZT4KKyAgICAgICAgICAgICwgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVgsX3N0ZXApPEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzYwX0VUSV9CVUcpCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzxpbnQsaW50LGludCxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4gCitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVgsX3N0ZXApCit7CisgICAgLy8gY2FuJ3QgaW5oZXJpdCBoZXJlIC0gaXQgYnJlYWtzIE1TVkMgNy4wCisgICAgdHlwZWRlZiBBVVg3NzgwNzZfRk9MRF9DSFVOS19OQU1FPC0xPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsQVVYNzc4MDc2X0ZPTERfSU1QTF9PUChGaXJzdCk+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBjaHVua186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKQorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRQorICAgIDogQVVYNzc4MDc2X0ZPTERfQ0hVTktfTkFNRTxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Rmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3A+Cit7Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9fX0KKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUUKKyMgICB1bmRlZiBBVVg3NzgwNzZfSVRFUl9GT0xEX1NURVAKKworI3VuZGVmIEFVWDc3ODA3Nl9GT0xEX0lNUExfT1AKKyN1bmRlZiBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYCisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorCisjICAgZGVmaW5lIG5fIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUU8bl8sRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3A+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKworICAgIEJPT1NUX01QTF9QUF9SRVBFQVQobl8sIEFVWDc3ODA3Nl9JVEVSX0ZPTERfU1RFUCwgdW51c2VkKQorCisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoc3RhdGUsbl8pIHN0YXRlOworICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGl0ZXIsbl8pIGl0ZXJhdG9yOworfTsKKworI2Vsc2UKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfQ0hVTktfTkFNRTxuXz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworCisgICAgICAgIEJPT1NUX01QTF9QUF9SRVBFQVQobl8sIEFVWDc3ODA3Nl9JVEVSX0ZPTERfU1RFUCwgdW51c2VkKQorCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKHN0YXRlLG5fKSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoaXRlcixuXykgaXRlcmF0b3I7CisgICAgfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzYwX0VUSV9CVUcpCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzxpbnQsaW50LGludCxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKyNlbmRpZgorfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworIyAgIHVuZGVmIG5fCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9mdWxsX2xhbWJkYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWExYmE1ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwCkBAIC0wLDAgKzEsMzU0IEBACisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9GVUxMX0xBTUJEQV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9GVUxMX0xBTUJEQV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGZ1bGxfbGFtYmRhLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGFtYmRhX2Z3ZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JpbmRfZndkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvcHJvdGVjdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3F1b3RlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXJnLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludF9md2QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcD4KKyMgICBpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykKKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgICBlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfYXJpdHlfcGFyYW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGZ1bGxfbGFtYmRhLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kbWNfYW1iaWd1b3VzX2N0cHMuaHBwPgorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBsb2NhbCBtYWNyb3MsICN1bmRlZi1pbmVkIGF0IHRoZSBlbmQgb2YgdGhlIGhlYWRlcgorIyAgIGRlZmluZSBBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgcGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCBwYXJhbSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQklORF9QQVJBTVMocGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKCBcCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCBwYXJhbSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQVJJVFlfUEFSQU0ocGFyYW0pIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9BUklUWV9QQVJBTShwYXJhbSkgXAorICAgIC8qKi8KKworCisjZGVmaW5lIG5fIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyhuXyxib29sIEMsZmFsc2UpCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IEJPT1NUX01QTF9QUF9FTlVNKG5fLGZhbHNlKSA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorI3VuZGVmIG5fCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgQVVYNzc4MDc2X0FSSVRZX1BBUkFNKHR5cGVuYW1lIEFyaXR5KQorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIFQgcmVzdWx0XzsKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKworCit0ZW1wbGF0ZTwgaW50IE4sIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgbGFtYmRhPCBhcmc8Tj4sVGFnIEFVWDc3ODA3Nl9BUklUWV9QQVJBTShpbnRfPC0xPikgPgoreworICAgIHR5cGVkZWYgdHJ1ZV8gaXNfbGU7CisgICAgdHlwZWRlZiBtcGw6OmFyZzxOPiByZXN1bHRfOyAvLyBxdWFsaWZpZWQgZm9yIHRoZSBzYWtlIG9mIE1JUFNwcm8gNy40MQorICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7IAorfTsKKworCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDAsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIDxuZG5ib29zdC9tcGwvYXV4Xy9mdWxsX2xhbWJkYS5ocHA+KSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisvLy8gc3BlY2lhbCBjYXNlIGZvciAncHJvdGVjdCcKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGxhbWJkYTwgbXBsOjpwcm90ZWN0PFQ+LFRhZyBBVVg3NzgwNzZfQVJJVFlfUEFSQU0oaW50XzwxPikgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PFQ+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisvLy8gc3BlY2lhbGl6YXRpb25zIGZvciB0aGUgbWFpbiAnYmluZCcgZm9ybQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCBBVVg3NzgwNzZfQklORF9QQVJBTVModHlwZW5hbWUgVCkKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDxGLEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhUKT4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgQVVYNzc4MDc2X0FSSVRZX1BBUkFNKGludF88Qk9PU1RfUFBfSU5DKEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkpPikKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDxGLCBBVVg3NzgwNzZfQklORF9QQVJBTVMoVCk+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgLCB0eXBlbmFtZSBBcml0eQorICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgbGFtYmRhPEYsVGFnMSxBcml0eT4KKyAgICAgICAgLCBUYWcyCisgICAgICAgICwgaW50XzwzPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8IHF1b3RlMTxhdXg6OnRlbXBsYXRlX2FyaXR5PiwgdHlwZW5hbWUgbDE6OnJlc3VsdF8gPiBhcml0eV87CisgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIGlmXzxpc19sZSxhcml0eV8sQXJpdHk+Ojp0eXBlLFRhZzIgPiBsMzsKKyAgICAKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mzxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMiwgbDM+IGxlX3Jlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCisjZWxpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0RNQ19BTUJJR1VPVVNfQ1RQUykKKworLy8vIHdvcmthcm91bmQgZm9yIE1XQ1cgOC4zKy9FREcgPCAzMDMsIGxlYWRzIHRvIGFtYmlndWl0eSBvbiBEaWdpdGFsIE1hcnMKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnMSwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgbGFtYmRhPCBGLFRhZzEgPgorICAgICAgICAsIFRhZzIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBGLFRhZzIgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVGFnMSxUYWcyID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGU7CisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8aXNfbGUsIFRhZzIsIG1wbDo6bGFtYmRhLCBsMSwgbDI+IGxlX3Jlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCisjZW5kaWYKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9BUklUWV9QQVJBTQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0JJTkRfUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0xBTUJEQV9QQVJBTVMKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBsYW1iZGEpCisjZWxzZQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAzLCBsYW1iZGEpCisjZW5kaWYKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0ZVTExfTEFNQkRBX0hQUF9JTkNMVURFRAorCisvLy8vLyBpdGVyYXRpb24sIGRlcHRoID09IDEKKworLy8gRm9yIGdjYyA0LjQgY29tcGF0YWJpbGl0eSwgd2UgbXVzdCBpbmNsdWRlIHRoZQorLy8gQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIIHRlc3QgaW5zaWRlIGFuICNlbHNlIGNsYXVzZS4KKyNlbHNlIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORworI2lmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpID09IDEKKyNkZWZpbmUgaV8gQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKKyNpZiBpXyA+IDAKKworbmFtZXNwYWNlIGF1eCB7CisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1JFU1VMVCh1bnVzZWQsIGlfLCBUKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIFwKKyAgICB0eXBlbmFtZSBCT09TVF9QUF9DQVQoVCwgQk9PU1RfUFBfSU5DKGlfKSk6OnJlc3VsdF8gXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfVFlQRSh1bnVzZWQsIGlfLCBUKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIFwKKyAgICB0eXBlbmFtZSBCT09TVF9QUF9DQVQoVCwgQk9PU1RfUFBfSU5DKGlfKSk6OnR5cGUgXAorICAgIC8qKi8KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCBBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgdHlwZW5hbWUgUCkgPiBjbGFzcyBGCisgICAgLCBBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgdHlwZW5hbWUgTCkKKyAgICA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKGxlX3Jlc3VsdCxpXykKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgQk9PU1RfTVBMX1BQX1JFUEVBVChpXywgQVVYNzc4MDc2X1RZUEUsIEwpCisgICAgICAgID4gcmVzdWx0XzsKKyAgICAKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgQVVYNzc4MDc2X0xBTUJEQV9QQVJBTVMoaV8sIHR5cGVuYW1lIFApID4gY2xhc3MgRgorICAgICwgQVVYNzc4MDc2X0xBTUJEQV9QQVJBTVMoaV8sIHR5cGVuYW1lIEwpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChsZV9yZXN1bHQsaV8pPCB0cnVlXyxUYWcsRixBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgTCkgPgoreworICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGJpbmQsaV8pPAorICAgICAgICAgIEJPT1NUX1BQX0NBVChxdW90ZSxpXyk8RixUYWc+CisgICAgICAgICwgQk9PU1RfTVBMX1BQX1JFUEVBVChpXywgQVVYNzc4MDc2X1JFU1VMVCwgTCkKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKKyMgICB1bmRlZiBBVVg3NzgwNzZfVFlQRQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9SRVNVTFQKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfTEFNQkRBX1RZUEVERUYodW51c2VkLCBpXywgVCkgXAorICAgIHR5cGVkZWYgbGFtYmRhPCBCT09TVF9QUF9DQVQoVCwgQk9PU1RfUFBfSU5DKGlfKSksIFRhZyA+IFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKGwsQk9PU1RfUFBfSU5DKGlfKSk7IFwKKy8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfSVNfTEVfVFlQRURFRih1bnVzZWQsIGlfLCB1bnVzZWQyKSBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9QUF9DQVQobCxCT09TVF9QUF9JTkMoaV8pKTo6aXNfbGUgXAorICAgICAgICBCT09TVF9QUF9DQVQoaXNfbGUsQk9PU1RfUFBfSU5DKGlfKSk7IFwKKy8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfSVNfTEFNQkRBX0VYUFIodW51c2VkLCBpXywgdW51c2VkMikgXAorICAgIEJPT1NUX1BQX0NPTU1BX0lGKGlfKSBcCisgICAgQk9PU1RfUFBfQ0FUKGlzX2xlLEJPT1NUX1BQX0lOQyhpXykpOjp2YWx1ZSBcCisvKiovCisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IEFVWDc3ODA3Nl9MQU1CREFfUEFSQU1TKGlfLCB0eXBlbmFtZSBQKSA+IGNsYXNzIEYKKyAgICAsIEFVWDc3ODA3Nl9MQU1CREFfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwgCisgICAgICAgICAgRjxBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgVCk+CisgICAgICAgICwgVGFnCisgICAgICAgIEFVWDc3ODA3Nl9BUklUWV9QQVJBTShpbnRfPGlfPikKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9QUF9SRVBFQVQoaV8sIEFVWDc3ODA3Nl9MQU1CREFfVFlQRURFRiwgVCkKKyAgICBCT09TVF9NUExfUFBfUkVQRUFUKGlfLCBBVVg3NzgwNzZfSVNfTEVfVFlQRURFRiwgdW51c2VkKQorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBCT09TVF9NUExfUFBfUkVQRUFUKGlfLCBBVVg3NzgwNzZfSVNfTEFNQkRBX0VYUFIsIHVudXNlZCkKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpCT09TVF9QUF9DQVQobGVfcmVzdWx0LGlfKTwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgbCkKKyAgICAgICAgPiBsZV9yZXN1bHRfOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKworCisjICAgdW5kZWYgQVVYNzc4MDc2X0lTX0xBTUJEQV9FWFBSCisjICAgdW5kZWYgQVVYNzc4MDc2X0lTX0xFX1RZUEVERUYKKyMgICB1bmRlZiBBVVg3NzgwNzZfTEFNQkRBX1RZUEVERUYKKworI2VuZGlmIC8vIGlfID4gMAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEJPT1NUX1BQX0NBVChiaW5kLGlfKTxGIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLCBUKT4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgQVVYNzc4MDc2X0FSSVRZX1BBUkFNKGludF88Qk9PU1RfUFBfSU5DKGlfKT4pCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChiaW5kLGlfKTwKKyAgICAgICAgICBGCisgICAgICAgIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLCBUKQorICAgICAgICA+IHJlc3VsdF87CisgICAgICAgIAorICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworI3VuZGVmIGlfCisjZW5kaWYgLy8gQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX2FwcGx5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX2FwcGx5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODZjZTUzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9oYXNfYXBwbHkuaHBwCkBAIC0wLDAgKzEsMzIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0hBU19BUFBMWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9IQVNfQVBQTFlfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaGFzX2FwcGx5LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2hhc194eHguaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9oYXNfYXBwbHkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19IQVNfQVBQTFkpCitCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYoaGFzX2FwcGx5LCBhcHBseSwgZmFsc2UpCisjZWxzZQordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIGZhbGxiYWNrXyA9IGZhbHNlXyA+CitzdHJ1Y3QgaGFzX2FwcGx5CisgICAgOiBmYWxsYmFja18KK3sKK307CisjZW5kaWYKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9IQVNfQVBQTFlfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2hhc19iZWdpbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2hhc19iZWdpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNhNTYxMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX2JlZ2luLmhwcApAQCAtMCwwICsxLDIzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9IQVNfQkVHSU5fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfSEFTX0JFR0lOX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaGFzX2JlZ2luLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2hhc194eHguaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CitCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYoaGFzX2JlZ2luLCBiZWdpbiwgdHJ1ZSkKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9IQVNfQkVHSU5fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2hhc19yZWJpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9oYXNfcmViaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDNlMjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9oYXNfcmViaW5kLmhwcApAQCAtMCwwICsxLDk5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9IQVNfUkVCSU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0hBU19SRUJJTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBoYXNfcmViaW5kLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDI0NCkgJiYgIWRlZmluZWQoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04pCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2hhc194eHguaHBwPgorI2VsaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2hhc194eHguaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL21zdmNfaXNfY2xhc3MuaHBwPgorI2VsaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHA+CisjZWxzZQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3R5cGVfd3JhcHBlci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjQ0KSAmJiAhZGVmaW5lZChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikKKworQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfTkFNRURfREVGKGhhc19yZWJpbmQsIHJlYmluZCwgZmFsc2UpCisKKyNlbGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorCitCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYoaGFzX3JlYmluZF9pbXBsLCByZWJpbmQsIGZhbHNlKQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaGFzX3JlYmluZAorICAgIDogaWZfPCAKKyAgICAgICAgICBtc3ZjX2lzX2NsYXNzPFQ+CisgICAgICAgICwgaGFzX3JlYmluZF9pbXBsPFQ+CisgICAgICAgICwgYm9vbF88ZmFsc2U+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKyNlbHNlIC8vIHRoZSByZXN0CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGhhc19yZWJpbmRfdGFnIHt9Oworbm9fdGFnIG9wZXJhdG9yfChoYXNfcmViaW5kX3RhZzxpbnQ+LCB2b2lkIGNvbnN0IHZvbGF0aWxlKik7CisKKyMgICBpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaGFzX3JlYmluZAoreworICAgIHN0YXRpYyBoYXNfcmViaW5kX3RhZzxUPiogZ2V0KCk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gCisgICAgICAgICAgc2l6ZW9mKGhhc19yZWJpbmRfdGFnPGludD4oKSB8IGdldCgpKSA9PSBzaXplb2YoeWVzX3RhZykKKyAgICAgICAgKTsKK307CisjICAgZWxzZSAvLyBfX0JPUkxBTkRDX18KK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBoYXNfcmViaW5kX2ltcGwKK3sKKyAgICBzdGF0aWMgVCogZ2V0KCk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gCisgICAgICAgICAgc2l6ZW9mKGhhc19yZWJpbmRfdGFnPGludD4oKSB8IGdldCgpKSA9PSBzaXplb2YoeWVzX3RhZykKKyAgICAgICAgKTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBoYXNfcmViaW5kCisgICAgOiBpZl88IAorICAgICAgICAgIGlzX2NsYXNzPFQ+CisgICAgICAgICwgaGFzX3JlYmluZF9pbXBsPFQ+CisgICAgICAgICwgYm9vbF88ZmFsc2U+CisgICAgICAgID46OnR5cGUKK3sKK307CisjICAgZW5kaWYgLy8gX19CT1JMQU5EQ19fCisKKyNlbmRpZgorCit9fX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfSEFTX1JFQklORF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3NpemUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9oYXNfc2l6ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJiNzdmNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3NpemUuaHBwCkBAIC0wLDAgKzEsMjMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0hBU19TSVpFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0hBU19TSVpFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaGFzX3NpemUuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaGFzX3h4eC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKK0JPT1NUX01QTF9IQVNfWFhYX1RSQUlUX0RFRihzaXplKQorfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0hBU19TSVpFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9oYXNfdGFnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3RhZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjIwOTIzZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3RhZy5ocHAKQEAgLTAsMCArMSwyMyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfSEFTX1RBR19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9IQVNfVEFHX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaGFzX3RhZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9oYXNfeHh4LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfTkFNRURfREVGKGhhc190YWcsIHRhZywgZmFsc2UpCit9fX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfSEFTX1RBR19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3R5cGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9oYXNfdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk5ZmVmMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaGFzX3R5cGUuaHBwCkBAIC0wLDAgKzEsMjMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0hBU19UWVBFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0hBU19UWVBFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaGFzX3R5cGUuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaGFzX3h4eC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKK0JPT1NUX01QTF9IQVNfWFhYX1RSQUlUX05BTUVEX0RFRihoYXNfdHlwZSwgdHlwZSwgdHJ1ZSkKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9IQVNfVFlQRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYwZjI5NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsNDIgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDYKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY29tcGlsZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9wcmVwcm9jZXNzb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc3RyaW5naXplLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX05FRURTX1RPS0VOX1BBU1RJTkdfT1BfRk9SX1RPS0VOU19KVVhUQVBPU0lORykKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1BSRVBST0NFU1NFRF9IRUFERVIgXAorICAgIEJPT1NUX01QTF9DRkdfQ09NUElMRVJfRElSL0JPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIFwKKy8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9QUkVQUk9DRVNTRURfSEVBREVSIFwKKyAgICBCT09TVF9QUF9DQVQoQk9PU1RfTVBMX0NGR19DT01QSUxFUl9ESVIsLykjI0JPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIFwKKy8qKi8KKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNzAwKSkKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lOQ0xVREVfU1RSSU5HIEJPT1NUX1BQX1NUUklOR0laRShib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvQVVYNzc4MDc2X1BSRVBST0NFU1NFRF9IRUFERVIpCisjICAgaW5jbHVkZSBBVVg3NzgwNzZfSU5DTFVERV9TVFJJTkcKKyMgICB1bmRlZiBBVVg3NzgwNzZfSU5DTFVERV9TVFJJTkcKKyNlbHNlCisjICAgaW5jbHVkZSBCT09TVF9QUF9TVFJJTkdJWkUoYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL0FVWDc3ODA3Nl9QUkVQUk9DRVNTRURfSEVBREVSKQorI2VuZGlmCisKKyMgICB1bmRlZiBBVVg3NzgwNzZfUFJFUFJPQ0VTU0VEX0hFQURFUgorCisjdW5kZWYgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaW5zZXJ0ZXJfYWxnb3JpdGhtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaW5zZXJ0ZXJfYWxnb3JpdGhtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmJlODRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pbnNlcnRlcl9hbGdvcml0aG0uaHBwCkBAIC0wLDAgKzEsMTU5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9JTlNFUlRFUl9BTEdPUklUSE1fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfSU5TRVJURVJfQUxHT1JJVEhNX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAzLTIwMDQKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAzLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW5zZXJ0ZXJfYWxnb3JpdGhtLmhwcCA1NTY0OCAyMDA5LTA4LTE4IDA1OjE2OjUzWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDktMDgtMTcgMjI6MTY6NTMgLTA3MDAgKE1vbiwgMTcgQXVnIDIwMDkpICQKKy8vICRSZXZpc2lvbjogNTU2NDggJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JhY2tfaW5zZXJ0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9mcm9udF9pbnNlcnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3B1c2hfYmFjay5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3B1c2hfZnJvbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iYWNrX2luc2VydGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZnJvbnRfaW5zZXJ0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9jbGVhci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmEuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbW1vbl9uYW1lX3drbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9JTlNFUlRFUl9BTEdPUklUSE1fREVGKGFyaXR5LCBuYW1lKSBcCitCT09TVF9NUExfQVVYX0NPTU1PTl9OQU1FX1dLTkQobmFtZSkgXAordGVtcGxhdGU8IFwKKyAgICAgIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyhhcml0eSwgdHlwZW5hbWUgUCwgbmEpIFwKKyAgICA+IFwKK3N0cnVjdCBuYW1lIFwKKyAgICA6IGF1eDo6bmFtZSMjX2ltcGw8Qk9PU1RfTVBMX1BQX1BBUkFNUyhhcml0eSwgUCk+IFwKK3sgXAorfTsgXAorXAordGVtcGxhdGU8IFwKKyAgICAgIEJPT1NUX01QTF9QUF9QQVJBTVMoQk9PU1RfUFBfREVDKGFyaXR5KSwgdHlwZW5hbWUgUCkgXAorICAgID4gXAorc3RydWN0IG5hbWU8IEJPT1NUX01QTF9QUF9QQVJBTVMoQk9PU1RfUFBfREVDKGFyaXR5KSwgUCksbmEgPiBcCisgICAgOiBpZl88IGhhc19wdXNoX2JhY2s8IHR5cGVuYW1lIGNsZWFyPFAxPjo6dHlwZT4gXAorICAgICAgICAsIGF1eDo6bmFtZSMjX2ltcGw8IFwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhCT09TVF9QUF9ERUMoYXJpdHkpLCBQKSBcCisgICAgICAgICAgICAsIGJhY2tfaW5zZXJ0ZXI8IHR5cGVuYW1lIGNsZWFyPFAxPjo6dHlwZSA+IFwKKyAgICAgICAgICAgID4gXAorICAgICAgICAsIGF1eDo6cmV2ZXJzZV8jI25hbWUjI19pbXBsPCBcCisgICAgICAgICAgICAgIEJPT1NUX01QTF9QUF9QQVJBTVMoQk9PU1RfUFBfREVDKGFyaXR5KSwgUCkgXAorICAgICAgICAgICAgLCBmcm9udF9pbnNlcnRlcjwgdHlwZW5hbWUgY2xlYXI8UDE+Ojp0eXBlID4gXAorICAgICAgICAgICAgPiBcCisgICAgICAgID46OnR5cGUgXAoreyBcCit9OyBcCitcCit0ZW1wbGF0ZTwgXAorICAgICAgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TKGFyaXR5LCB0eXBlbmFtZSBQLCBuYSkgXAorICAgID4gXAorc3RydWN0IHJldmVyc2VfIyNuYW1lIFwKKyAgICA6IGF1eDo6cmV2ZXJzZV8jI25hbWUjI19pbXBsPEJPT1NUX01QTF9QUF9QQVJBTVMoYXJpdHksIFApPiBcCit7IFwKK307IFwKK1wKK3RlbXBsYXRlPCBcCisgICAgICBCT09TVF9NUExfUFBfUEFSQU1TKEJPT1NUX1BQX0RFQyhhcml0eSksIHR5cGVuYW1lIFApIFwKKyAgICA+IFwKK3N0cnVjdCByZXZlcnNlXyMjbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhCT09TVF9QUF9ERUMoYXJpdHkpLCBQKSxuYSA+IFwKKyAgICA6IGlmXzwgaGFzX3B1c2hfYmFjazxQMT4gXAorICAgICAgICAsIGF1eDo6cmV2ZXJzZV8jI25hbWUjI19pbXBsPCBcCisgICAgICAgICAgICAgIEJPT1NUX01QTF9QUF9QQVJBTVMoQk9PU1RfUFBfREVDKGFyaXR5KSwgUCkgXAorICAgICAgICAgICAgLCBiYWNrX2luc2VydGVyPCB0eXBlbmFtZSBjbGVhcjxQMT46OnR5cGUgPiBcCisgICAgICAgICAgICA+IFwKKyAgICAgICAgLCBhdXg6Om5hbWUjI19pbXBsPCBcCisgICAgICAgICAgICAgIEJPT1NUX01QTF9QUF9QQVJBTVMoQk9PU1RfUFBfREVDKGFyaXR5KSwgUCkgXAorICAgICAgICAgICAgLCBmcm9udF9pbnNlcnRlcjwgdHlwZW5hbWUgY2xlYXI8UDE+Ojp0eXBlID4gXAorICAgICAgICAgICAgPiBcCisgICAgICAgID46OnR5cGUgXAoreyBcCit9OyBcCitCT09TVF9NUExfQVVYX05BX1NQRUMoYXJpdHksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyhhcml0eSwgcmV2ZXJzZV8jI25hbWUpIFwKKy8qKi8KKworI2Vsc2UKKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0lOU0VSVEVSX0FMR09SSVRITV9ERUYoYXJpdHksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfQ09NTU9OX05BTUVfV0tORChuYW1lKSBcCit0ZW1wbGF0ZTwgXAorICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhCT09TVF9QUF9ERUMoYXJpdHkpLCB0eXBlbmFtZSBQKSBcCisgICAgPiBcCitzdHJ1Y3QgZGVmXyMjbmFtZSMjX2ltcGwgXAorICAgIDogaWZfPCBoYXNfcHVzaF9iYWNrPFAxPiBcCisgICAgICAgICwgYXV4OjpuYW1lIyNfaW1wbDwgXAorICAgICAgICAgICAgICBCT09TVF9NUExfUFBfUEFSQU1TKEJPT1NUX1BQX0RFQyhhcml0eSksIFApIFwKKyAgICAgICAgICAgICwgYmFja19pbnNlcnRlcjwgdHlwZW5hbWUgY2xlYXI8UDE+Ojp0eXBlID4gXAorICAgICAgICAgICAgPiBcCisgICAgICAgICwgYXV4OjpyZXZlcnNlXyMjbmFtZSMjX2ltcGw8IFwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhCT09TVF9QUF9ERUMoYXJpdHkpLCBQKSBcCisgICAgICAgICAgICAsIGZyb250X2luc2VydGVyPCB0eXBlbmFtZSBjbGVhcjxQMT46OnR5cGUgPiBcCisgICAgICAgICAgICA+IFwKKyAgICAgICAgPjo6dHlwZSBcCit7IFwKK307IFwKK1wKK3RlbXBsYXRlPCBcCisgICAgICBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVMoYXJpdHksIHR5cGVuYW1lIFAsIG5hKSBcCisgICAgPiBcCitzdHJ1Y3QgbmFtZSBcCit7IFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGV2YWxfaWY8IFwKKyAgICAgICAgICBpc19uYTxCT09TVF9QUF9DQVQoUCwgYXJpdHkpPiBcCisgICAgICAgICwgZGVmXyMjbmFtZSMjX2ltcGw8Qk9PU1RfTVBMX1BQX1BBUkFNUyhCT09TVF9QUF9ERUMoYXJpdHkpLCBQKT4gXAorICAgICAgICAsIGF1eDo6bmFtZSMjX2ltcGw8Qk9PU1RfTVBMX1BQX1BBUkFNUyhhcml0eSwgUCk+IFwKKyAgICAgICAgPjo6dHlwZSB0eXBlOyBcCit9OyBcCitcCit0ZW1wbGF0ZTwgXAorICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhCT09TVF9QUF9ERUMoYXJpdHkpLCB0eXBlbmFtZSBQKSBcCisgICAgPiBcCitzdHJ1Y3QgZGVmX3JldmVyc2VfIyNuYW1lIyNfaW1wbCBcCisgICAgOiBpZl88IGhhc19wdXNoX2JhY2s8UDE+IFwKKyAgICAgICAgLCBhdXg6OnJldmVyc2VfIyNuYW1lIyNfaW1wbDwgXAorICAgICAgICAgICAgICBCT09TVF9NUExfUFBfUEFSQU1TKEJPT1NUX1BQX0RFQyhhcml0eSksIFApIFwKKyAgICAgICAgICAgICwgYmFja19pbnNlcnRlcjwgdHlwZW5hbWUgY2xlYXI8UDE+Ojp0eXBlID4gXAorICAgICAgICAgICAgPiBcCisgICAgICAgICwgYXV4OjpuYW1lIyNfaW1wbDwgXAorICAgICAgICAgICAgICBCT09TVF9NUExfUFBfUEFSQU1TKEJPT1NUX1BQX0RFQyhhcml0eSksIFApIFwKKyAgICAgICAgICAgICwgZnJvbnRfaW5zZXJ0ZXI8IHR5cGVuYW1lIGNsZWFyPFAxPjo6dHlwZSA+IFwKKyAgICAgICAgICAgID4gXAorICAgICAgICA+Ojp0eXBlIFwKK3sgXAorfTsgXAordGVtcGxhdGU8IFwKKyAgICAgIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyhhcml0eSwgdHlwZW5hbWUgUCwgbmEpIFwKKyAgICA+IFwKK3N0cnVjdCByZXZlcnNlXyMjbmFtZSBcCit7IFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGV2YWxfaWY8IFwKKyAgICAgICAgICBpc19uYTxCT09TVF9QUF9DQVQoUCwgYXJpdHkpPiBcCisgICAgICAgICwgZGVmX3JldmVyc2VfIyNuYW1lIyNfaW1wbDxCT09TVF9NUExfUFBfUEFSQU1TKEJPT1NUX1BQX0RFQyhhcml0eSksIFApPiBcCisgICAgICAgICwgYXV4OjpyZXZlcnNlXyMjbmFtZSMjX2ltcGw8Qk9PU1RfTVBMX1BQX1BBUkFNUyhhcml0eSwgUCk+IFwKKyAgICAgICAgPjo6dHlwZSB0eXBlOyBcCit9OyBcCitCT09TVF9NUExfQVVYX05BX1NQRUMoYXJpdHksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyhhcml0eSwgcmV2ZXJzZV8jI25hbWUpIFwKKy8qKi8KKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfSU5TRVJURVJfQUxHT1JJVEhNX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaW50ZWdyYWxfd3JhcHBlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZmN2Q4MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaW50ZWdyYWxfd3JhcHBlci5ocHAKQEAgLTAsMCArMSw5MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDYKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW50ZWdyYWxfd3JhcHBlci5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTiEKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jX3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyNpZiAhZGVmaW5lZChBVVhfV1JBUFBFUl9OQU1FKQorIyAgIGRlZmluZSBBVVhfV1JBUFBFUl9OQU1FIEJPT1NUX1BQX0NBVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLF8pCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFVWF9XUkFQUEVSX1BBUkFNUykKKyMgICBkZWZpbmUgQVVYX1dSQVBQRVJfUEFSQU1TKE4pIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsIE4pCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFVWF9XUkFQUEVSX0lOU1QpCisjICAgaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDI0MDcpCisjICAgICAgIGRlZmluZSBBVVhfV1JBUFBFUl9JTlNUKHZhbHVlKSBBVVhfV1JBUFBFUl9OQU1FPCB2YWx1ZSA+CisjICAgZWxzZSAKKyMgICAgICAgZGVmaW5lIEFVWF9XUkFQUEVSX0lOU1QodmFsdWUpIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpBVVhfV1JBUFBFUl9OQU1FPCB2YWx1ZSA+CisjICAgZW5kaWYKKyNlbmRpZgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKK3RlbXBsYXRlPCBBVVhfV1JBUFBFUl9QQVJBTVMoTikgPgorc3RydWN0IEFVWF9XUkFQUEVSX05BTUUKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSwgdmFsdWUgPSBOKTsKKy8vIGFndXJ0LCAwOC9tYXIvMDM6IFNHSSBNSVBTcHJvIEMrKyB3b3JrYXJvdW5kLCBoYXZlIHRvICNpZmRlZiBiZWNhdXNlIHNvbWUgCisvLyBvdGhlciBjb21waWxlcnMgKGUuZy4gTVNWQykgYXJlIG5vdCBwYXJ0aWN1bGFyeSBoYXBweSBhYm91dCBpdAorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpCisgICAgdHlwZWRlZiBzdHJ1Y3QgQVVYX1dSQVBQRVJfTkFNRSB0eXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIEFVWF9XUkFQUEVSX05BTUUgdHlwZTsKKyNlbmRpZgorICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgaW50ZWdyYWxfY190YWcgdGFnOworCisvLyBoYXZlIHRvICNpZmRlZiBoZXJlOiBzb21lIGNvbXBpbGVycyBkb24ndCBsaWtlIHRoZSAnTiArIDEnIGZvcm0gKE1TVkMpLAorLy8gd2hpbGUgc29tZSBvdGhlciBkb24ndCBsaWtlICd2YWx1ZSArIDEnIChCb3JsYW5kKSwgYW5kIHNvbWUgZG9uJ3QgbGlrZQorLy8gZWl0aGVyCisjaWYgQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDI0MykKKyBwcml2YXRlOgorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCBuZXh0X3ZhbHVlID0gQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCAoTiArIDEpKSk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsIHByaW9yX3ZhbHVlID0gQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCAoTiAtIDEpKSk7CisgcHVibGljOgorICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfSU5TVChuZXh0X3ZhbHVlKSBuZXh0OworICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfSU5TVChwcmlvcl92YWx1ZSkgcHJpb3I7CisjZWxpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTYxKSkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgQk9PU1RfVEVTVEVEX0FUKDUwMikpIFwKKyAgICB8fCAoQk9PU1RfV09SS0FST1VORChfX0hQX2FDQywgPD0gNTM4MDApICYmIChCT09TVF9XT1JLQVJPVU5EKF9faHB4c3RkOTgsICE9IDEpKSkKKyAgICB0eXBlZGVmIEFVWF9XUkFQUEVSX0lOU1QoIEJPT1NUX01QTF9BVVhfU1RBVElDX0NBU1QoQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSwgKE4gKyAxKSkgKSBuZXh0OworICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfSU5TVCggQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCAoTiAtIDEpKSApIHByaW9yOworI2Vsc2UKKyAgICB0eXBlZGVmIEFVWF9XUkFQUEVSX0lOU1QoIEJPT1NUX01QTF9BVVhfU1RBVElDX0NBU1QoQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSwgKHZhbHVlICsgMSkpICkgbmV4dDsKKyAgICB0eXBlZGVmIEFVWF9XUkFQUEVSX0lOU1QoIEJPT1NUX01QTF9BVVhfU1RBVElDX0NBU1QoQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSwgKHZhbHVlIC0gMSkpICkgcHJpb3I7CisjZW5kaWYKKworICAgIC8vIGVuYWJsZXMgdW5pZm9ybSBmdW5jdGlvbiBjYWxsIHN5bnRheCBmb3IgZmFtaWxpZXMgb2Ygb3ZlcmxvYWRlZCAKKyAgICAvLyBmdW5jdGlvbnMgdGhhdCByZXR1cm4gb2JqZWN0cyBvZiBib3RoIGFyaXRobWV0aWMgKCdpbnQnLCAnbG9uZycsCisgICAgLy8gJ2RvdWJsZScsIGV0Yy4pIGFuZCB3cmFwcGVkIGludGVncmFsIHR5cGVzIChmb3IgYW4gZXhhbXBsZSwgc2VlIAorICAgIC8vICJtcGwvZXhhbXBsZS9wb3dlci5jcHAiKQorICAgIG9wZXJhdG9yIEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxBVVhfV1JBUFBFUl9WQUxVRV9UWVBFPih0aGlzLT52YWx1ZSk7IH0gCit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04pCit0ZW1wbGF0ZTwgQVVYX1dSQVBQRVJfUEFSQU1TKE4pID4KK0FVWF9XUkFQUEVSX1ZBTFVFX1RZUEUgY29uc3QgQVVYX1dSQVBQRVJfSU5TVChOKTo6dmFsdWU7CisjZW5kaWYKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKKworI3VuZGVmIEFVWF9XUkFQUEVSX05BTUUKKyN1bmRlZiBBVVhfV1JBUFBFUl9QQVJBTVMKKyN1bmRlZiBBVVhfV1JBUFBFUl9JTlNUCisjdW5kZWYgQVVYX1dSQVBQRVJfVkFMVUVfVFlQRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pc19tc3ZjX2V0aV9hcmcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pc19tc3ZjX2V0aV9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllYzBiY2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2lzX21zdmNfZXRpX2FyZy5ocHAKQEAgLTAsMCArMSw2NCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfSVNfTVNWQ19FVElfQVJHX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0lTX01TVkNfRVRJX0FSR19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGlzX21zdmNfZXRpX2FyZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3llc19uby5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfbXN2Y19ldGlfYXJnCit7IAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKyNlbHNlIC8vIEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHCisKK3N0cnVjdCBldGlfaW50X2NvbnZlcnRpYmxlCit7CisgICAgZXRpX2ludF9jb252ZXJ0aWJsZShpbnQpOworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX21zdmNfZXRpX2FyZworeyAKKyAgICBzdGF0aWMgbm9fdGFnIHRlc3QoLi4uKTsKKyAgICBzdGF0aWMgeWVzX3RhZyB0ZXN0KGV0aV9pbnRfY29udmVydGlibGUpOworICAgIHN0YXRpYyBUJiBnZXQoKTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgICAgIHNpemVvZih0ZXN0KGdldCgpKSkgPT0gc2l6ZW9mKHllc190YWcpCisgICAgICAgICk7Cit9OworCisjZW5kaWYKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX21zdmNfZXRpX2FyZzxpbnQ+Cit7IAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTVNWQ19FVElfQlVHCisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9JU19NU1ZDX0VUSV9BUkdfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2l0ZXJfYXBwbHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2FwcGx5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWE2MmE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2FwcGx5LmhwcApAQCAtMCwwICsxLDQ3IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0lURVJfQVBQTFlfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JVEVSX0FQUExZX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaXRlcl9hcHBseS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2RlcmVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgPgorc3RydWN0IGl0ZXJfYXBwbHkxCisgICAgOiBhcHBseTE8IEYsdHlwZW5hbWUgZGVyZWY8SXRlcmF0b3I+Ojp0eXBlID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgICwgdHlwZW5hbWUgSXRlcmF0b3IxCisgICAgLCB0eXBlbmFtZSBJdGVyYXRvcjIKKyAgICA+CitzdHJ1Y3QgaXRlcl9hcHBseTIKKyAgICA6IGFwcGx5MjwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgZGVyZWY8SXRlcmF0b3IxPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGRlcmVmPEl0ZXJhdG9yMj46OnR5cGUKKyAgICAgICAgPgoreworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSVRFUl9BUFBMWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU5MGViMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2lmX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjEwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9JVEVSX0ZPTERfSUZfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9JVEVSX0ZPTERfSUZfSU1QTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMS0yMDAyCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGl0ZXJfZm9sZF9pZl9pbXBsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdmFsdWVfd2tuZC5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGl0ZXJfZm9sZF9pZl9pbXBsLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvdW5yb2xsaW5nLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgU3RhdGUgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPFN0YXRlT3AsU3RhdGUsSXRlcmF0b3I+Ojp0eXBlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yT3A6OnR5cGUgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKKy8vIGFndXJ0LCAyNS9qdW4vMDI6IE1TVkMgNi41IHdvcmthcm91bmQsIGhhZCB0byBnZXQgcmlkIG9mIGluaGVyaXRhbmNlIAorLy8gaGVyZSBhbmQgaW4gJ2l0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwJywgYmVjYXVzZSBzb21ldGltZXMgaXQgaW50ZXJmZXJlZCAKKy8vIHdpdGggdGhlICJlYXJseSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIGJ1ZyIgaW4gX3JlYWxseV8gdWdseSB3YXlzCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvcj46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsRm9yd2FyZE9wLG1wbDo6bmV4dDxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvcj46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsQmFja3dhcmRPcCxpZGVudGl0eTxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKworCisvLyBsb2NhbCBtYWNyb3MsICN1bmRlZi1pbmVkIGF0IHRoZSBlbmQgb2YgdGhlIGhlYWRlcgorCisjICAgZGVmaW5lIEFVWF9JVEVSX0ZPTERfRk9SV0FSRF9TVEVQKHVudXNlZCwgaSwgdW51c2VkMikgXAorICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgXAorICAgICAgICAgIHR5cGVuYW1lIEJPT1NUX1BQX0NBVChmb3J3YXJkX3N0ZXAsaSk6Oml0ZXJhdG9yIFwKKyAgICAgICAgLCB0eXBlbmFtZSBCT09TVF9QUF9DQVQoZm9yd2FyZF9zdGVwLGkpOjpzdGF0ZSBcCisgICAgICAgICwgRm9yd2FyZE9wIFwKKyAgICAgICAgLCBGb3J3YXJkUHJlZGljYXRlIFwKKyAgICAgICAgPiBCT09TVF9QUF9DQVQoZm9yd2FyZF9zdGVwLCBCT09TVF9QUF9JTkMoaSkpOyBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWF9JVEVSX0ZPTERfQkFDS1dBUkRfU1RFUF9GVU5DKGkpIFwKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCBcCisgICAgICAgICAgdHlwZW5hbWUgQk9PU1RfUFBfQ0FUKGZvcndhcmRfc3RlcCxCT09TVF9QUF9ERUMoaSkpOjppdGVyYXRvciBcCisgICAgICAgICwgdHlwZW5hbWUgQk9PU1RfUFBfQ0FUKGJhY2t3YXJkX3N0ZXAsaSk6OnN0YXRlIFwKKyAgICAgICAgLCBCYWNrd2FyZE9wIFwKKyAgICAgICAgLCBCYWNrd2FyZFByZWRpY2F0ZSBcCisgICAgICAgID4gQk9PU1RfUFBfQ0FUKGJhY2t3YXJkX3N0ZXAsQk9PU1RfUFBfREVDKGkpKTsgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVhfSVRFUl9GT0xEX0JBQ0tXQVJEX1NURVAodW51c2VkLCBpLCB1bnVzZWQyKSBcCisgICAgQVVYX0lURVJfRk9MRF9CQUNLV0FSRF9TVEVQX0ZVTkMoIFwKKyAgICAgICAgQk9PU1RfUFBfU1VCX0QoMSxCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HLGkpIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWF9MQVNUX0ZPUldBUkRfU1RFUCBcCisgICAgQk9PU1RfUFBfQ0FUKGZvcndhcmRfc3RlcCwgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORykgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVhfTEFTVF9CQUNLV0FSRF9TVEVQIFwKKyAgICBCT09TVF9QUF9DQVQoYmFja3dhcmRfc3RlcCwgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORykgXAorICAgIC8qKi8KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZFByZWRpY2F0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgQmFja3dhcmRQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ltcGwKK3sKKyBwcml2YXRlOgorICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX251bGxfc3RlcDxJdGVyYXRvcixTdGF0ZT4gZm9yd2FyZF9zdGVwMDsKKyAgICBCT09TVF9QUF9SRVBFQVQoCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORworICAgICAgICAsIEFVWF9JVEVSX0ZPTERfRk9SV0FSRF9TVEVQCisgICAgICAgICwgdW51c2VkCisgICAgICAgICkKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICB0eXBlbmFtZSBBVVhfTEFTVF9GT1JXQVJEX1NURVA6Om5vdF9sYXN0CisgICAgICAgICwgaXRlcl9mb2xkX2lmX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEFVWF9MQVNUX0ZPUldBUkRfU1RFUDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgQVVYX0xBU1RfRk9SV0FSRF9TVEVQOjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEJhY2t3YXJkUHJlZGljYXRlCisgICAgICAgICAgICA+CisgICAgICAgICwgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgQVVYX0xBU1RfRk9SV0FSRF9TVEVQOjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBBVVhfTEFTVF9GT1JXQVJEX1NURVA6OnN0YXRlCisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUgQVVYX0xBU1RfQkFDS1dBUkRfU1RFUDsKKworICAgIEJPT1NUX1BQX1JFUEVBVCgKKyAgICAgICAgICBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICwgQVVYX0lURVJfRk9MRF9CQUNLV0FSRF9TVEVQCisgICAgICAgICwgdW51c2VkCisgICAgICAgICkKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAwOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEFVWF9MQVNUX0JBQ0tXQVJEX1NURVA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKworIyAgIHVuZGVmIEFVWF9MQVNUX0JBQ0tXQVJEX1NURVAKKyMgICB1bmRlZiBBVVhfTEFTVF9GT1JXQVJEX1NURVAKKyMgICB1bmRlZiBBVVhfSVRFUl9GT0xEX0JBQ0tXQVJEX1NURVAKKyMgICB1bmRlZiBBVVhfSVRFUl9GT0xEX0JBQ0tXQVJEX1NURVBfRlVOQworIyAgIHVuZGVmIEFVWF9JVEVSX0ZPTERfRk9SV0FSRF9TVEVQCisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfSVRFUl9GT0xEX0lGX0lNUExfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2N2IxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDQyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9JVEVSX0ZPTERfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9JVEVSX0ZPTERfSU1QTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGl0ZXJfZm9sZF9pbXBsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dF9wcmlvci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FwcGx5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjICAgaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorIyAgICAgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyAgICAgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyMgICBlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiBpdGVyX2ZvbGRfaW1wbC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0ZPTERfSU1QTF9PUChpdGVyKSBpdGVyCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVggaXRlcl9mb2xkCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsX2JvZHkuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfSVRFUl9GT0xEX0lNUExfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRkMGU0NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX2FyaXR5X3BhcmFtLmhwcApAQCAtMCwwICsxLDI1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9MQU1CREFfQVJJVFlfUEFSQU1fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX2FyaXR5X3BhcmFtLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R0cC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0VYVEVOREVEX1RFTVBMQVRFX1BBUkFNRVRFUlNfTUFUQ0hJTkcpCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNKHBhcmFtKSAgICAKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNKHBhcmFtKSAsIHBhcmFtCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9ub19jdHBzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTY2MDUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAKQEAgLTAsMCArMSwxOTMgQEAKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0xBTUJEQV9OT19DVFBTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9OT19DVFBTX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX25vX2N0cHMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9sYW1iZGFfZndkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmluZF9md2QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9wcm90ZWN0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaXNfcGxhY2Vob2xkZXIuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgbGFtYmRhX25vX2N0cHMuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZmF1bHRfcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUyhpXywgcGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCBwYXJhbSkgXAorICAgIC8qKi8KKworbmFtZXNwYWNlIGF1eCB7CisKKyNkZWZpbmUgbl8gQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWQordGVtcGxhdGU8CisgICAgICBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVMobl8sYm9vbCBDLGZhbHNlKQorICAgID4KK3N0cnVjdCBsYW1iZGFfb3IKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGFtYmRhX29yPCBCT09TVF9NUExfUFBfRU5VTShuXyxmYWxzZSkgPgorICAgIDogZmFsc2VfCit7Cit9OworI3VuZGVmIG5fCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBBcml0eSA+IHN0cnVjdCBsYW1iZGFfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgIHR5cGVkZWYgaXNfcGxhY2Vob2xkZXI8VD4gaXNfbGU7CisgICAgfTsKK307CisKKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMSwgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSwgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9ub19jdHBzLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgICwgdHlwZW5hbWUgUHJvdGVjdAorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICAvLy8gTWV0YWZ1bmN0aW9uIGZvcndhcmRpbmcgY29uZnVzZXMgTVNWQyA2LngKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dGVtcGxhdGVfYXJpdHk8VD46OnR5cGUgYXJpdHlfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfaW1wbDxhcml0eV8+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxUYWcsUHJvdGVjdCA+IGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6dHlwZSB0eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OmlzX2xlIGlzX2xlOworICAgIAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMywgbGFtYmRhLCAoVCwgVGFnLCBQcm90ZWN0KSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMSwgMywgbGFtYmRhKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKKyMgICB1bmRlZiBBVVg3NzgwNzZfTEFNQkRBX1BBUkFNUworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTEFNQkRBX05PX0NUUFNfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbiwgZGVwdGggPT0gMQorCisjZWxzZQorCisjZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9MQU1CREFfVFlQRURFRih1bnVzZWQsIGlfLCBGKSBcCisgICAgdHlwZWRlZiBsYW1iZGE8IFwKKyAgICAgICAgICB0eXBlbmFtZSBGOjpCT09TVF9QUF9DQVQoYXJnLEJPT1NUX1BQX0lOQyhpXykpIFwKKyAgICAgICAgLCBUYWcgXAorICAgICAgICAsIGZhbHNlXyBcCisgICAgICAgID4gQk9PU1RfUFBfQ0FUKGwsQk9PU1RfUFBfSU5DKGlfKSk7IFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lTX0xFX1RZUEVERUYodW51c2VkLCBpXywgdW51c2VkMikgXAorICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfUFBfQ0FUKGwsQk9PU1RfUFBfSU5DKGlfKSk6OmlzX2xlIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKGlzX2xlLEJPT1NUX1BQX0lOQyhpXykpOyBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9JU19MQU1CREFfRVhQUih1bnVzZWQsIGlfLCB1bnVzZWQyKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIFwKKyAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChCT09TVF9QUF9DQVQoaXNfbGUsQk9PU1RfUFBfSU5DKGlfKSkpOjp2YWx1ZSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9MQU1CREFfUkVTVUxUKHVudXNlZCwgaV8sIHVudXNlZDIpIFwKKyAgICAsIHR5cGVuYW1lIEJPT1NUX1BQX0NBVChsLEJPT1NUX1BQX0lOQyhpXykpOjp0eXBlIFwKKyAgICAvKiovCisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPGlfPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBCT09TVF9NUExfUFBfUkVQRUFUKGlfLCBBVVg3NzgwNzZfTEFNQkRBX1RZUEVERUYsIEYpCisgICAgICAgIEJPT1NUX01QTF9QUF9SRVBFQVQoaV8sIEFVWDc3ODA3Nl9JU19MRV9UWVBFREVGLCB1bnVzZWQpCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX1BQX1JFUEVBVChpXywgQVVYNzc4MDc2X0lTX0xBTUJEQV9FWFBSLCB1bnVzZWQpCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGJpbmQsaV8pPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgIEJPT1NUX01QTF9QUF9SRVBFQVQoaV8sIEFVWDc3ODA3Nl9MQU1CREFfUkVTVUxULCB1bnVzZWQpCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9MQU1CREFfUkVTVUxUCisjICAgdW5kZWYgQVVYNzc4MDc2X0lTX0xBTUJEQV9FWFBSCisjICAgdW5kZWYgQVVYNzc4MDc2X0lTX0xFX1RZUEVERUYKKyMgICB1bmRlZiBBVVg3NzgwNzZfTEFNQkRBX1RZUEVERUYKKworI3VuZGVmIGlfCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3NwZWMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNlNjEzNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3NwZWMuaHBwCkBAIC0wLDAgKzEsNDkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0xBTUJEQV9TUEVDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TUEVDX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDcKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX3NwZWMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdm9pZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xhbWJkYV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfYXJpdHlfcGFyYW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfUEFTU19USFJPVUdIX0xBTUJEQV9TUEVDKGksIG5hbWUpIFwKK3RlbXBsYXRlPCBcCisgICAgICBCT09TVF9NUExfUFBfUEFSQU1TKGksIHR5cGVuYW1lIFQpIFwKKyAgICAsIHR5cGVuYW1lIFRhZyBcCisgICAgPiBcCitzdHJ1Y3QgbGFtYmRhPCBcCisgICAgICBuYW1lPCBCT09TVF9NUExfUFBfUEFSQU1TKGksIFQpID4gXAorICAgICwgVGFnIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9BUklUWV9QQVJBTShpbnRfPGk+KSBcCisgICAgPiBcCit7IFwKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsgXAorICAgIHR5cGVkZWYgbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCBUKSA+IHJlc3VsdF87IFwKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsgXAorfTsgXAorLyoqLworCisjZWxzZQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfUEFTU19USFJPVUdIX0xBTUJEQV9TUEVDKGksIG5hbWUpIC8qKi8KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0xBTUJEQV9TUEVDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTViMTU1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX3N1cHBvcnQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoaSwgbmFtZSwgcGFyYW1zKSAvKiovCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoaSxuYW1lLHBhcmFtcykgLyoqLworCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludF9md2QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3llc19uby5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfZndkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS90b19saXN0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0FSR19UWVBFREVGX0ZVTkMoUix0eXBlZGVmXyxpLHBhcmFtKSBcCisgICAgdHlwZWRlZl8gcGFyYW0gQk9PU1RfUFBfQ0FUKGFyZyxCT09TVF9QUF9JTkMoaSkpOyBcCisgICAgLyoqLworCisvLyBhZ3VydCwgMDcvbWFyLzAzOiByZXN0b3JlIGFuIG9sZCByZXZpc2lvbiBmb3IgdGhlIHNha2Ugb2YgU0dJIE1JUFNwcm8gQysrCisjaWYgQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkgCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVChpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICB0eXBlZGVmIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjppbnRfPGk+IGFyaXR5OyBcCisgICAgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1IoIFwKKyAgICAgICAgICAxIFwKKyAgICAgICAgLCBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0FSR19UWVBFREVGX0ZVTkMgXAorICAgICAgICAsIHR5cGVkZWYgXAorICAgICAgICAsIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QoaSxwYXJhbXMpIFwKKyAgICAgICAgKSBcCisgICAgc3RydWN0IHJlYmluZCBcCisgICAgeyBcCisgICAgICAgIHRlbXBsYXRlPCBCT09TVF9NUExfUFBfUEFSQU1TKGksdHlwZW5hbWUgVSkgPiBzdHJ1Y3QgYXBwbHkgXAorICAgICAgICAgICAgOiBuYW1lPCBCT09TVF9NUExfUFBfUEFSQU1TKGksVSkgPiBcCisgICAgICAgIHsgXAorICAgICAgICB9OyBcCisgICAgfTsgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoaSwgbmFtZSwgcGFyYW1zKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVChpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICAvKiovCisKKyNlbGlmIEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyNDQpICYmICFkZWZpbmVkKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OKQorLy8gYWd1cnQsIDE4L2phbi8wMzogb2xkIEVERy1iYXNlZCBjb21waWxlcnMgYWN0dWFsbHkgZW5mb3JjZSAxMS40IHBhcmEgOQorLy8gKGluIHN0cmljdCBtb2RlKSwgc28gd2UgaGF2ZSB0byBwcm92aWRlIGFuIGFsdGVybmF0aXZlIHRvIHRoZSAKKy8vIE1TVkMtb3B0aW1pemVkIGltcGxlbWVudGF0aW9uCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKGksIG5hbWUsIHBhcmFtcykgXAorICAgIHR5cGVkZWYgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6OmludF88aT4gYXJpdHk7IFwKKyAgICBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUiggXAorICAgICAgICAgIDEgXAorICAgICAgICAsIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfQVJHX1RZUEVERUZfRlVOQyBcCisgICAgICAgICwgdHlwZWRlZiBcCisgICAgICAgICwgQk9PU1RfUFBfVFVQTEVfVE9fTElTVChpLHBhcmFtcykgXAorICAgICAgICApIFwKKyAgICBzdHJ1Y3QgcmViaW5kOyBcCisvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVChpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoaSwgbmFtZSwgcGFyYW1zKSBcCit9OyBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorc3RydWN0IG5hbWU8Qk9PU1RfTVBMX1BQX1BBUkFNUyhpLFQpPjo6cmViaW5kIFwKK3sgXAorICAgIHRlbXBsYXRlPCBCT09TVF9NUExfUFBfUEFSQU1TKGksdHlwZW5hbWUgVSkgPiBzdHJ1Y3QgYXBwbHkgXAorICAgICAgICA6IG5hbWU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSxVKSA+IFwKKyAgICB7IFwKKyAgICB9OyBcCisvKiovCisKKyNlbHNlIC8vIF9fRURHX1ZFUlNJT05fXworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBoYXNfcmViaW5kX3RhZzsKK319fQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQyhpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICB0eXBlZGVmIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjppbnRfPGk+IGFyaXR5OyBcCisgICAgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1IoIFwKKyAgICAgICAgICAxIFwKKyAgICAgICAgLCBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0FSR19UWVBFREVGX0ZVTkMgXAorICAgICAgICAsIHR5cGVkZWYgXAorICAgICAgICAsIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QoaSxwYXJhbXMpIFwKKyAgICAgICAgKSBcCisgICAgZnJpZW5kIGNsYXNzIEJPT1NUX1BQX0NBVChuYW1lLF9yZWJpbmQpOyBcCisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQobmFtZSxfcmViaW5kKSByZWJpbmQ7IFwKKy8qKi8KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hBU19SRUJJTkQoaSwgbmFtZSwgcGFyYW1zKSBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorOjpuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcgb3BlcmF0b3J8KCBcCisgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZF90YWc8aW50PiBcCisgICAgLCBuYW1lPEJPT1NUX01QTF9QUF9QQVJBTVMoaSxUKT4qIFwKKyAgICApOyBcCis6Om5kbmJvb3N0OjptcGw6OmF1eDo6bm9fdGFnIG9wZXJhdG9yfCggXAorICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6Omhhc19yZWJpbmRfdGFnPGludD4gXAorICAgICwgbmFtZTwgQk9PU1RfTVBMX1BQX0VOVU0oaSw6Om5kbmJvb3N0OjptcGw6Om5hKSA+KiBcCisgICAgKTsgXAorLyoqLworI2VsaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hBU19SRUJJTkQoaSwgbmFtZSwgcGFyYW1zKSBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorOjpuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcgb3BlcmF0b3J8KCBcCisgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZF90YWc8aW50PiBcCisgICAgLCA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZF90YWc8IG5hbWU8Qk9PU1RfTVBMX1BQX1BBUkFNUyhpLFQpPiA+KiBcCisgICAgKTsgXAorLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9IQVNfUkVCSU5EKGksIG5hbWUsIHBhcmFtcykgLyoqLworI2VuZGlmCisKKyMgICBpZiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoaSwgbmFtZSwgcGFyYW1zKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKGksIG5hbWUsIHBhcmFtcykgXAorfTsgXAorQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9IQVNfUkVCSU5EKGksIG5hbWUsIHBhcmFtcykgXAorY2xhc3MgQk9PU1RfUFBfQ0FUKG5hbWUsX3JlYmluZCkgXAoreyBcCisgcHVibGljOiBcCisgICAgdGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSx0eXBlbmFtZSBVKSA+IHN0cnVjdCBhcHBseSBcCisgICAgICAgIDogbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLFUpID4gXAorICAgIHsgXAorICAgIH07IFwKKy8qKi8KKyMgICBlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoaSwgbmFtZSwgcGFyYW1zKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKGksIG5hbWUsIHBhcmFtcykgXAorfTsgXAorQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9IQVNfUkVCSU5EKGksIG5hbWUsIHBhcmFtcykgXAorY2xhc3MgQk9PU1RfUFBfQ0FUKG5hbWUsX3JlYmluZCkgXAoreyBcCisgcHVibGljOiBcCisgICAgdGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSx0eXBlbmFtZSBVKSA+IHN0cnVjdCBhcHBseSBcCisgICAgeyBcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLFUpID46OnR5cGUgdHlwZTsgXAorICAgIH07IFwKKy8qKi8KKyMgICBlbmRpZiAvLyBfX0JPUkxBTkRDX18KKworI2VuZGlmIC8vIF9fRURHX1ZFUlNJT05fXworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYXJnZXN0X2ludC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xhcmdlc3RfaW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhhZDk0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9sYXJnZXN0X2ludC5ocHAKQEAgLTAsMCArMSw2MyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfTEFSR0VTVF9JTlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFSR0VTVF9JTlRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsYXJnZXN0X2ludC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVncmFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGludGVncmFsX3Jhbms7CisKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX3Jhbms8Ym9vbD4gICAgICAgICAgIDogaW50XzwxPiB7fTsKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX3Jhbms8c2lnbmVkIGNoYXI+ICAgIDogaW50XzwyPiB7fTsKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX3Jhbms8Y2hhcj4gICAgICAgICAgIDogaW50XzwzPiB7fTsKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX3Jhbms8dW5zaWduZWQgY2hhcj4gIDogaW50Xzw0PiB7fTsKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVCkKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX3Jhbms8d2NoYXJfdD4gICAgICAgIDogaW50Xzw1PiB7fTsKKyNlbmRpZgordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfcmFuazxzaG9ydD4gICAgICAgICAgOiBpbnRfPDY+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfcmFuazx1bnNpZ25lZCBzaG9ydD4gOiBpbnRfPDc+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfcmFuazxpbnQ+ICAgICAgICAgICAgOiBpbnRfPDg+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfcmFuazx1bnNpZ25lZCBpbnQ+ICAgOiBpbnRfPDk+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfcmFuazxsb25nPiAgICAgICAgICAgOiBpbnRfPDEwPiB7fTsKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX3Jhbms8dW5zaWduZWQgbG9uZz4gIDogaW50XzwxMT4ge307CisKKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCit0ZW1wbGF0ZTw+IHN0cnVjdCBpbnRlZ3JhbF9yYW5rPGxvbmdfbG9uZ190eXBlPiA6IGludF88MTI+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfcmFuazx1bG9uZ19sb25nX3R5cGU+OiBpbnRfPDEzPiB7fTsKKyNlbmRpZgorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4gc3RydWN0IGxhcmdlc3RfaW50CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ORVNURURfVkFMVUVfQVJJVEhNRVRJQykKKyAgICA6IGlmX2M8IAorICAgICAgICAgICggaW50ZWdyYWxfcmFuazxUMT46OnZhbHVlID49IGludGVncmFsX3Jhbms8VDI+Ojp2YWx1ZSApCisgICAgICAgICwgVDEKKyAgICAgICAgLCBUMgorICAgICAgICA+Cit7CisjZWxzZQoreworICAgIGVudW0geyByYW5rMSA9IGludGVncmFsX3Jhbms8VDE+Ojp2YWx1ZSB9OworICAgIGVudW0geyByYW5rMiA9IGludGVncmFsX3Jhbms8VDI+Ojp2YWx1ZSB9OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfYzwgKHJhbmsxID49IHJhbmsyKSxUMSxUMiA+Ojp0eXBlIHR5cGU7CisjZW5kaWYKK307CisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9MQVJHRVNUX0lOVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbG9naWNhbF9vcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xvZ2ljYWxfb3AuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNzhlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL2xvZ2ljYWxfb3AuaHBwCkBAIC0wLDAgKzEsMTY1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsb2dpY2FsX29wLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OIQorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmVzdGVkX3R5cGVfd2tuZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZXh0X3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZl9wYXJhbXNfdGFpbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9zdWIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1BBUkFNUyhwYXJhbSwgc3ViKSBcCisgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyggXAorICAgICAgICAgIEJPT1NUX01QTF9QUF9TVUIoQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSwgc3ViKSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NISUZURURfUEFSQU1TKHBhcmFtLCBzdWIpIFwKKyAgICBCT09TVF9NUExfUFBfRVhUX1BBUkFNUyggXAorICAgICAgICAgIDIsIEJPT1NUX01QTF9QUF9TVUIoQk9PU1RfUFBfSU5DKEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkpLCBzdWIpIFwKKyAgICAgICAgLCBwYXJhbSBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU1BFQ19QQVJBTVMocGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfRU5VTSggXAorICAgICAgICAgIEJPT1NUX1BQX0RFQyhCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZKSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKK25hbWVzcGFjZSBhdXggeworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8IGJvb2wgQ18sIEFVWDc3ODA3Nl9QQVJBTVModHlwZW5hbWUgVCwgMSkgPgorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfTkFNRSxpbXBsKQorICAgIDogQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9WQUxVRTEsXykKK3sKK307CisKK3RlbXBsYXRlPCBBVVg3NzgwNzZfUEFSQU1TKHR5cGVuYW1lIFQsIDEpID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX05BTUUsaW1wbCk8IEFVWDc3ODA3Nl9PUF9WQUxVRTIsQVVYNzc4MDc2X1BBUkFNUyhULCAxKSA+CisgICAgOiBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX05BTUUsaW1wbCk8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBBVVg3NzgwNzZfU0hJRlRFRF9QQVJBTVMoVCwgMSkKKyAgICAgICAgLCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1ZBTFVFMixfKQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9OQU1FLGltcGwpPAorICAgICAgICAgIEFVWDc3ODA3Nl9PUF9WQUxVRTIKKyAgICAgICAgLCBBVVg3NzgwNzZfU1BFQ19QQVJBTVMoQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9WQUxVRTIsXykpCisgICAgICAgID4KKyAgICA6IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfVkFMVUUyLF8pCit7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZTwgYm9vbCBDXyA+IHN0cnVjdCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX05BTUUsaW1wbCkKK3sKKyAgICB0ZW1wbGF0ZTwgQVVYNzc4MDc2X1BBUkFNUyh0eXBlbmFtZSBULCAxKSA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9WQUxVRTEsXykKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfTkFNRSxpbXBsKTxBVVg3NzgwNzZfT1BfVkFMVUUyPgoreworICAgIHRlbXBsYXRlPCBBVVg3NzgwNzZfUEFSQU1TKHR5cGVuYW1lIFQsIDEpID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX05BTUUsaW1wbCk8IAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgQVVYNzc4MDc2X1NISUZURURfUEFSQU1TKFQsMSksQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9WQUxVRTIsXykgPgorICAgIHsKKyAgICB9OworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzAwKQorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88QVVYNzc4MDc2X1NQRUNfUEFSQU1TKEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfVkFMVUUyLF8pKT4KKyAgICAgICAgOiBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1ZBTFVFMixfKQorICAgIHsKKyAgICB9OworfTsKKyNlbHNlCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9OQU1FLGltcGwpPEFVWDc3ODA3Nl9PUF9WQUxVRTI+CisgICAgOjpyZXN1bHRfPCBBVVg3NzgwNzZfU1BFQ19QQVJBTVMoQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9WQUxVRTIsXykpID4KKyAgICAgICAgOiBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1ZBTFVFMixfKQoreworfTsKKyNlbmRpZiAvLyBCT09TVF9NU1ZDID09IDEzMDAKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTCgyLCB0eXBlbmFtZSBULCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1ZBTFVFMixfKSkKKyAgICA+CitzdHJ1Y3QgQVVYNzc4MDc2X09QX05BTUUKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorICAgIDogYXV4OjpCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX05BTUUsaW1wbCk8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBBVVg3NzgwNzZfU0hJRlRFRF9QQVJBTVMoVCwwKQorICAgICAgICA+CisjZWxzZQorICAgIDogYXV4OjpCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX05BTUUsaW1wbCk8IAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEFVWDc3ODA3Nl9TSElGVEVEX1BBUkFNUyhULDApID4KKyNlbmRpZgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWQorICAgICAgICAsIEFVWDc3ODA3Nl9PUF9OQU1FCisgICAgICAgICwgKEFVWDc3ODA3Nl9QQVJBTVMoVCwgMCkpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZCisgICAgLCBBVVg3NzgwNzZfT1BfTkFNRQorICAgICkKKworfX0KKworI3VuZGVmIEFVWDc3ODA3Nl9TUEVDX1BBUkFNUworI3VuZGVmIEFVWDc3ODA3Nl9TSElGVEVEX1BBUkFNUworI3VuZGVmIEFVWDc3ODA3Nl9QQVJBTVMKKyN1bmRlZiBBVVg3NzgwNzZfT1BfTkFNRQorI3VuZGVmIEFVWDc3ODA3Nl9PUF9WQUxVRTEKKyN1bmRlZiBBVVg3NzgwNzZfT1BfVkFMVUUyCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL21zdmNfZHR3LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19kdHcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZWYyOGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL21zdmNfZHR3LmhwcApAQCAtMCwwICsxLDY4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBtc3ZjX2R0dy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTiEKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorCisvLyBsb2NhbCBtYWNyb3MsICN1bmRlZi1pbmVkIGF0IHRoZSBlbmQgb2YgdGhlIGhlYWRlcgorI2RlZmluZSBBVVg3NzgwNzZfRFRXX1BBUkFNUyhwYXJhbSkgXAorICAgIEJPT1NUX01QTF9QUF9QQVJBTVMoQVVYNzc4MDc2X01TVkNfRFRXX0FSSVRZLCBwYXJhbSkgXAorLyoqLworCisjZGVmaW5lIEFVWDc3ODA3Nl9EVFdfT1JJR0lOQUxfTkFNRSBcCisgICAgQVVYNzc4MDc2X01TVkNfRFRXX09SSUdJTkFMX05BTUUgXAorLyoqLworCisvLyB3YXJuaW5nOiBub3QgYSB3ZWxsLWZvcm1lZCBDKysKKy8vIHdvcmthcm91bmQgZm9yIE1TVkMgNi41J3MgImRlcGVuZGVudCB0ZW1wbGF0ZSB0eXBlZGVmIGJ1ZyIKKwordGVtcGxhdGU8IHR5cGVuYW1lIEY+CitzdHJ1Y3QgQVVYNzc4MDc2X01TVkNfRFRXX05BTUUKK3sKKyAgICB0ZW1wbGF0ZTwgYm9vbCA+IHN0cnVjdCBmXyA6IEYge307CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZl88dHJ1ZT4KKyAgICB7CisjaWYgQVVYNzc4MDc2X01TVkNfRFRXX0FSSVRZID4gMAorICAgICAgICB0ZW1wbGF0ZTwgQVVYNzc4MDc2X0RUV19QQVJBTVModHlwZW5hbWUgUCkgPiBzdHJ1Y3QgQVVYNzc4MDc2X0RUV19PUklHSU5BTF9OQU1FCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHRlbXBsYXRlPCBBVVg3NzgwNzZfRFRXX1BBUkFNUyh0eXBlbmFtZSBUKSA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZl88IGF1eDo6bXN2Y19uZXZlcl90cnVlPEY+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIEFVWDc3ODA3Nl9EVFdfT1JJR0lOQUxfTkFNRTwgQVVYNzc4MDc2X0RUV19QQVJBTVMoVCkgPgorICAgIHsKKyAgICB9OworI2Vsc2UKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAgPSBpbnQgPiBzdHJ1Y3QgQVVYNzc4MDc2X0RUV19PUklHSU5BTF9OQU1FCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID0gaW50ID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBmXzwgYXV4Ojptc3ZjX25ldmVyX3RydWU8Rj46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgQVVYNzc4MDc2X0RUV19PUklHSU5BTF9OQU1FPD4KKyAgICB7CisgICAgfTsKKyNlbmRpZgorfTsKKworI3VuZGVmIEFVWDc3ODA3Nl9EVFdfT1JJR0lOQUxfTkFNRQorI3VuZGVmIEFVWDc3ODA3Nl9EVFdfUEFSQU1TCisKKyN1bmRlZiBBVVg3NzgwNzZfTVNWQ19EVFdfTkFNRQorI3VuZGVmIEFVWDc3ODA3Nl9NU1ZDX0RUV19PUklHSU5BTF9OQU1FCisjdW5kZWYgQVVYNzc4MDc2X01TVkNfRFRXX0FSSVRZCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL21zdmNfZXRpX2Jhc2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2V0aV9iYXNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2ExYzRhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2V0aV9iYXNlLmhwcApAQCAtMCwwICsxLDc3IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9NU1ZDX0VUSV9CQVNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX01TVkNfRVRJX0JBU0VfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBtc3ZjX2V0aV9iYXNlLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaXNfbXN2Y19ldGlfYXJnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzcwX0VUSV9CVUcpCisKK3RlbXBsYXRlPCBib29sID4gc3RydWN0IG1zdmNfZXRpX2Jhc2VfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBUCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbXN2Y19ldGlfYmFzZV9pbXBsPHRydWU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7CisgICAgICAgIHR5cGVkZWYgcmVzdWx0XyBmaXJzdDsKKyAgICAgICAgdHlwZWRlZiByZXN1bHRfIHNlY29uZDsKKyAgICAgICAgdHlwZWRlZiByZXN1bHRfIHRhZzsKKyAgICAgICAgZW51bSB7IHZhbHVlID0gMCB9OworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtc3ZjX2V0aV9iYXNlCisgICAgOiBtc3ZjX2V0aV9iYXNlX2ltcGw8IGlzX21zdmNfZXRpX2FyZzxUPjo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKKyNlbHNlIC8vICFCT09TVF9NUExfQ0ZHX01TVkNfNzBfRVRJX0JVRworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtc3ZjX2V0aV9iYXNlCisgICAgOiBUCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NUExfQ0ZHX0dDQywgQk9PU1RfVEVTVEVEX0FUKDB4MDMwNCkpCisgICAgbXN2Y19ldGlfYmFzZSgpOworI2VuZGlmCisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCisjZW5kaWYgCisKK3RlbXBsYXRlPD4gc3RydWN0IG1zdmNfZXRpX2Jhc2U8aW50PgoreworICAgIHR5cGVkZWYgbXN2Y19ldGlfYmFzZSB0eXBlOworICAgIHR5cGVkZWYgbXN2Y19ldGlfYmFzZSBmaXJzdDsKKyAgICB0eXBlZGVmIG1zdmNfZXRpX2Jhc2Ugc2Vjb25kOworICAgIHR5cGVkZWYgbXN2Y19ldGlfYmFzZSB0YWc7CisgICAgZW51bSB7IHZhbHVlID0gMCB9OworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX01TVkNfRVRJX0JBU0VfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL21zdmNfaXNfY2xhc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2lzX2NsYXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGNiOGI5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2lzX2NsYXNzLmhwcApAQCAtMCwwICsxLDU4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9NU1ZDX0lTX0NMQVNTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX01TVkNfSVNfQ0xBU1NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBtc3ZjX2lzX2NsYXNzLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdHlwZV93cmFwcGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19jbGFzc19oZWxwZXIKK3sKKyAgICB0eXBlZGVmIGludCAoVDo6KiB0eXBlKSgpOworfTsKKworLy8gTVNWQyA2Lngtc3BlY2lmaWMgbGlnaHR3ZWlnaHQgJ2lzX2NsYXNzJyBpbXBsZW1lbnRhdGlvbjsgCisvLyBEaXN0aW5ndWlzaGluZyBmZWF0dXJlOiBkb2VzIG5vdCBpbnN0YW50aWF0ZSB0aGUgdHlwZSBiZWluZyB0ZXN0ZWQuCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgbXN2Y19pc19jbGFzc19pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFU+CisgICAgc3RhdGljIHllc190YWcgIHRlc3QodHlwZV93cmFwcGVyPFU+KiwgLyp0eXBlbmFtZSovIGlzX2NsYXNzX2hlbHBlcjxVPjo6dHlwZSA9IDApOworICAgIHN0YXRpYyBub190YWcgICB0ZXN0KHZvaWQgY29uc3Qgdm9sYXRpbGUqLCAuLi4pOworCisgICAgZW51bSB7IHZhbHVlID0gc2l6ZW9mKHRlc3QoKHR5cGVfd3JhcHBlcjxUPiopMCkpID09IHNpemVvZih5ZXNfdGFnKSB9OworICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7Cit9OworCisvLyBhZ3VydCwgMTcvc2VwLzA0OiBoYXZlIHRvIGNoZWNrIGZvciAnaXNfcmVmZXJlbmNlJyB1cGZyb250IHRvIGF2b2lkIElDRXMgaW4KKy8vIGNvbXBsZXggbWV0YXByb2dyYW1zCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgbXN2Y19pc19jbGFzcworICAgIDogaWZfPAorICAgICAgICAgIGlzX3JlZmVyZW5jZTxUPgorICAgICAgICAsIGZhbHNlXworICAgICAgICAsIG1zdmNfaXNfY2xhc3NfaW1wbDxUPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit9fX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTVNWQ19JU19DTEFTU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19uZXZlcl90cnVlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19uZXZlcl90cnVlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWQ1MzFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX25ldmVyX3RydWUuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX01TVkNfTkVWRVJfVFJVRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9NU1ZDX05FVkVSX1RSVUVfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBtc3ZjX25ldmVyX3RydWUuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBtc3ZjX25ldmVyX3RydWUKK3sKKyAgICBlbnVtIHsgdmFsdWUgPSBmYWxzZSB9OworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NU1ZDCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX01TVkNfTkVWRVJfVFJVRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y190eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbXN2Y190eXBlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjUyZWQyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX3R5cGUuaHBwCkBAIC0wLDAgKzEsNjIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX01TVkNfVFlQRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9NU1ZDX1RZUEVfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBtc3ZjX3R5cGUuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pc19tc3ZjX2V0aV9hcmcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ183MF9FVElfQlVHKQorCit0ZW1wbGF0ZTwgYm9vbCA+IHN0cnVjdCBtc3ZjX3R5cGVfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtc3ZjX3R5cGVfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtc3ZjX3R5cGUKKyAgICA6IG1zdmNfdHlwZV9pbXBsPCBpc19tc3ZjX2V0aV9hcmc8VD46OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCisjZWxzZSAvLyBCT09TVF9NUExfQ0ZHX01TVkNfNzBfRVRJX0JVRworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtc3ZjX3R5cGUgCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtc3ZjX3R5cGU8aW50PgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCisjZW5kaWYKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX01TVkNfVFlQRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbmEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFiNjQ0OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbmEuaHBwCkBAIC0wLDAgKzEsOTUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX05BX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX05BX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbmEuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX25hCisgICAgOiBmYWxzZV8KK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICB1c2luZyBmYWxzZV86OnZhbHVlOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfbmE8bmE+CisgICAgOiB0cnVlXworeworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgIHVzaW5nIHRydWVfOjp2YWx1ZTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX25vdF9uYQorICAgIDogdHJ1ZV8KK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICB1c2luZyB0cnVlXzo6dmFsdWU7CisjZW5kaWYKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19ub3RfbmE8bmE+CisgICAgOiBmYWxzZV8KK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICB1c2luZyBmYWxzZV86OnZhbHVlOworI2VuZGlmCit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBVID4gc3RydWN0IGlmX25hCit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVSA+IHN0cnVjdCBpZl9uYTxuYSxVPgoreworICAgIHR5cGVkZWYgVSB0eXBlOworfTsKKyNlbHNlCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpZl9uYV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBpZl9uYV9pbXBsPG5hPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUgPiBzdHJ1Y3QgaWZfbmEKKyAgICA6IGlmX25hX2ltcGw8VD46OnRlbXBsYXRlIGFwcGx5PFU+Cit7Cit9OworI2VuZGlmCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX05BX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9uYV9hc3NlcnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9uYV9hc3NlcnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYzk0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25hX2Fzc2VydC5ocHAKQEAgLTAsMCArMSwzNCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfTkFfQVNTRVJUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX05BX0FTU0VSVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG5hX2Fzc2VydC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX01TQ19GVUxMX1ZFUiwgPD0gMTQwMDUwNjAxKSAgICBcCisgICAgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyNDMpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Fzc2VydC5ocHA+CisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh4KSBcCisgICAgQk9PU1RfTVBMX0FTU0VSVF9OT1QoKG5kbmJvb3N0OjptcGw6OmlzX25hPHR5cGU+KSkgXAorLyoqLworI2Vsc2UKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHgpIFwKKyAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCFuZG5ib29zdDo6bXBsOjppc19uYTx4Pjo6dmFsdWUpIFwKKy8qKi8KKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9OQV9BU1NFUlRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25hX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25hX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FkMzQzYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbmFfZndkLmhwcApAQCAtMCwwICsxLDMxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9OQV9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbmFfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKKy8vIG4uYS4gPT0gbm90IGF2YWlsYWJsZQorc3RydWN0IG5hCit7CisgICAgdHlwZWRlZiBuYSB0eXBlOworICAgIGVudW0geyB2YWx1ZSA9IDAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0wobmEpCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX05BX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ZTIzMjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwCkBAIC0wLDAgKzEsMTc1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBuYV9zcGVjLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGFtYmRhX2Z3ZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hcml0eS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2R0cC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvb3ZlcmxvYWRfcmVzb2x1dGlvbi5ocHA+CisKKworI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSBcCisgICAgQk9PU1RfTVBMX1BQX0VOVU0oaSwgbmEpIFwKKy8qKi8KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWShpLCBuYW1lKSBcCituYW1lc3BhY2UgYXV4IHsgXAordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPiBcCitzdHJ1Y3QgYXJpdHk8IFwKKyAgICAgICAgICBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKKyAgICAgICAgLCBOIFwKKyAgICAgICAgPiBcCisgICAgOiBpbnRfPCBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZID4gXAoreyBcCit9OyBcCit9IFwKKy8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWShpLCBuYW1lKSAvKiovCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfTUFJTihpLCBuYW1lKSBcCit0ZW1wbGF0ZTw+IFwKK3N0cnVjdCBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKK3sgXAorICAgIHRlbXBsYXRlPCBcCisgICAgICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCB0eXBlbmFtZSBUKSBcCisgICAgICAgIEJPT1NUX01QTF9QUF9ORVNURURfREVGX1BBUkFNU19UQUlMKGksIHR5cGVuYW1lIFQsIG5hKSBcCisgICAgICAgID4gXAorICAgIHN0cnVjdCBhcHBseSBcCisgICAgICAgIDogbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCBUKSA+IFwKKyAgICB7IFwKKyAgICB9OyBcCit9OyBcCisvKiovCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0xBTUJEQShpLCBuYW1lKSBcCit0ZW1wbGF0ZTw+IFwKK3N0cnVjdCBsYW1iZGE8IFwKKyAgICAgIG5hbWU8IEJPT1NUX01QTF9BVVhfTkFfUEFSQU1TKGkpID4gXAorICAgICwgdm9pZF8gXAorICAgICwgdHJ1ZV8gXAorICAgID4gXAoreyBcCisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7IFwKKyAgICB0eXBlZGVmIG5hbWU8IEJPT1NUX01QTF9BVVhfTkFfUEFSQU1TKGkpID4gdHlwZTsgXAorfTsgXAordGVtcGxhdGU8PiBcCitzdHJ1Y3QgbGFtYmRhPCBcCisgICAgICBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKKyAgICAsIHZvaWRfIFwKKyAgICAsIGZhbHNlXyBcCisgICAgPiBcCit7IFwKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsgXAorICAgIHR5cGVkZWYgbmFtZTwgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTVMoaSkgPiB0eXBlOyBcCit9OyBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfTEFNQkRBKGksIG5hbWUpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBcCitzdHJ1Y3QgbGFtYmRhPCBcCisgICAgICBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKKyAgICAsIFRhZyBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfQVJJVFlfUEFSQU0oaW50XzwtMT4pIFwKKyAgICA+IFwKK3sgXAorICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOyBcCisgICAgdHlwZWRlZiBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IHJlc3VsdF87IFwKKyAgICB0eXBlZGVmIG5hbWU8IEJPT1NUX01QTF9BVVhfTkFfUEFSQU1TKGkpID4gdHlwZTsgXAorfTsgXAorLyoqLworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKSBcCisgICAgICAgICYmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fT1ZFUkxPQURfUkVTT0xVVElPTikKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDX1RFTVBMQVRFX0FSSVRZKGksIGosIG5hbWUpIFwKK25hbWVzcGFjZSBhdXggeyBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhqLCB0eXBlbmFtZSBUKSA+IFwKK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eTwgXAorICAgICAgICAgIG5hbWU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaiwgVCkgPiBcCisgICAgICAgID4gXAorICAgIDogaW50XzxqPiBcCit7IFwKK307IFwKK1wKK3RlbXBsYXRlPD4gXAorc3RydWN0IHRlbXBsYXRlX2FyaXR5PCBcCisgICAgICAgICAgbmFtZTwgQk9PU1RfTVBMX1BQX0VOVU0oaSwgbmEpID4gXAorICAgICAgICA+IFwKKyAgICA6IGludF88LTE+IFwKK3sgXAorfTsgXAorfSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfVEVNUExBVEVfQVJJVFkoaSwgaiwgbmFtZSkgLyoqLworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ19FVElfQlVHKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfRVRJKGksIG5hbWUpIFwKK3RlbXBsYXRlPD4gXAorc3RydWN0IG5hbWU8IEJPT1NUX01QTF9QUF9FTlVNKGksIGludCkgPiBcCit7IFwKKyAgICB0eXBlZGVmIGludCB0eXBlOyBcCisgICAgZW51bSB7IHZhbHVlID0gMCB9OyBcCit9OyBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfRVRJKGksIG5hbWUpIC8qKi8KKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0ocGFyYW0pIHBhcmFtID0gbmEKKworI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfTk9fRVRJKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19NQUlOKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoaSwgbmFtZSkgXAorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWShpLCBpLCBuYW1lKSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19OT19FVEkoaSwgbmFtZSkgXAorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0VUSShpLCBuYW1lKSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDMihpLCBqLCBuYW1lKSBcCitCT09TVF9NUExfQVVYX05BX1NQRUNfTUFJTihpLCBuYW1lKSBcCitCT09TVF9NUExfQVVYX05BX1NQRUNfRVRJKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoaSwgbmFtZSkgXAorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWShpLCBqLCBuYW1lKSBcCisvKiovCisKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTkFfU1BFQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbmVzdGVkX3R5cGVfd2tuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25lc3RlZF90eXBlX3drbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMGM3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL25lc3RlZF90eXBlX3drbmQuaHBwCkBAIC0wLDAgKzEsNDggQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG5lc3RlZF90eXBlX3drbmQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01QTF9DRkdfR0NDLCBCT09TVF9URVNURURfQVQoMHgwMzAyKSkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjEpKSBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgQk9PU1RfVEVTVEVEX0FUKDB4NTMwKSkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbmVzdGVkX3R5cGVfd2tuZAorICAgIDogVDo6dHlwZQoreworfTsKK319fQorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVCkgXAorICAgIGF1eDo6bmVzdGVkX3R5cGVfd2tuZDxUPiBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVCkgXAorICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpuZXN0ZWRfdHlwZV93a25kPFQ+IFwKKy8qKi8KKyNlbmRpZgorCisjZWxzZSAvLyAhQk9PU1RfTVBMX0NGR19HQ0MgZXQgYWwuCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQpIFQ6OnR5cGUKKworI2VuZGlmIAorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZmU2YTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHAKQEAgLTAsMCArMSwzNSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX05UVFBfREVDTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG50dHBfZGVjbC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9udHRwLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OVFRQX0JVRykKKwordHlwZWRlZiBib29sICAgICAgICBfbXBsX250dHBfYm9vbDsKK3R5cGVkZWYgaW50ICAgICAgICAgX21wbF9udHRwX2ludDsKK3R5cGVkZWYgdW5zaWduZWQgICAgX21wbF9udHRwX3Vuc2lnbmVkOwordHlwZWRlZiBsb25nICAgICAgICBfbXBsX250dHBfbG9uZzsKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05UVFBfREVDTChULCB4KSBCT09TVF9QUF9DQVQoX21wbF9udHRwXyxUKSB4IC8qKi8KKworI2Vsc2UKKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05UVFBfREVDTChULCB4KSBUIHggLyoqLworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9udW1lcmljX2Nhc3RfdXRpbHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9udW1lcmljX2Nhc3RfdXRpbHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMGNlMGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL251bWVyaWNfY2FzdF91dGlscy5ocHAKQEAgLTAsMCArMSw3NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfTlVNRVJJQ19DQVNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX05VTUVSSUNfQ0FTVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMy0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG51bWVyaWNfY2FzdF91dGlscy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9udW1lcmljX2Nhc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZm9yd2FyZGluZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGNhc3Qxc3RfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9GT1JXQVJESU5HKQorICAgICAgICA6IGFwcGx5X3dyYXAyPCAKKyAgICAgICAgICAgICAgRgorICAgICAgICAgICAgLCB0eXBlbmFtZSBhcHBseV93cmFwMTwgQk9PU1RfTVBMX0FVWF9OVU1FUklDX0NBU1Q8VGFnMSxUYWcyPixOMSA+Ojp0eXBlCisgICAgICAgICAgICAsIE4yCisgICAgICAgICAgICA+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwgCisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXBwbHlfd3JhcDE8IEJPT1NUX01QTF9BVVhfTlVNRVJJQ19DQVNUPFRhZzEsVGFnMj4sTjEgPjo6dHlwZQorICAgICAgICAgICAgLCBOMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworI2VuZGlmCisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgICwgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBjYXN0Mm5kX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ORVNURURfRk9SV0FSRElORykKKyAgICAgICAgOiBhcHBseV93cmFwMjwgCisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgTjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXBwbHlfd3JhcDE8IEJPT1NUX01QTF9BVVhfTlVNRVJJQ19DQVNUPFRhZzIsVGFnMT4sTjIgPjo6dHlwZQorICAgICAgICAgICAgPgorICAgIHsKKyNlbHNlCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPCAKKyAgICAgICAgICAgICAgRgorICAgICAgICAgICAgLCBOMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBhcHBseV93cmFwMTwgQk9PU1RfTVBMX0FVWF9OVU1FUklDX0NBU1Q8VGFnMixUYWcxPixOMiA+Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisjZW5kaWYKKyAgICB9OworfTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX05VTUVSSUNfQ0FTVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vbnVtZXJpY19vcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL251bWVyaWNfb3AuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhY2Y0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL251bWVyaWNfb3AuaHBwCkBAIC0wLDAgKzEsMzE1IEBACisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04hCisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBudW1lcmljX29wLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbnVtZXJpY19jYXN0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdGFnLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udW1lcmljX2Nhc3RfdXRpbHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19ldGlfYmFzZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdmFsdWVfd2tuZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICB8fCBkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFydGlhbF9zcGVjX3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZl9wYXJhbXNfdGFpbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2V4dF9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9lbnVtLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvYWRkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3Ivc3ViLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworCisjaWYgIWRlZmluZWQoQVVYNzc4MDc2X09QX0FSSVRZKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfQVJJVFkgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChBVVg3NzgwNzZfT1BfSU1QTF9OQU1FKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfSU1QTF9OQU1FIEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfUFJFRklYLF9pbXBsKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChBVVg3NzgwNzZfT1BfVEFHX05BTUUpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9PUF9UQUdfTkFNRSBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X09QX1BSRUZJWCxfdGFnKQorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUgCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZSAKKyAgICA+CitzdHJ1Y3QgQVVYNzc4MDc2X09QX0lNUExfTkFNRQorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorI2Vsc2UKKyAgICA+CitzdHJ1Y3QgQVVYNzc4MDc2X09QX0lNUExfTkFNRQorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorI2VuZGlmCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IEFVWDc3ODA3Nl9PUF9JTVBMX05BTUU8VGFnMSxUYWcxPixUYWcxLFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBBVVg3NzgwNzZfT1BfSU1QTF9OQU1FPFRhZzIsVGFnMj4sVGFnMSxUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IEFVWDc3ODA3Nl9PUF9JTVBMX05BTUU8bmEsbmE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseSAKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKKyAgICB9OworfTsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IEFVWDc3ODA3Nl9PUF9JTVBMX05BTUU8bmEsVGFnPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkgCisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgQVVYNzc4MDc2X09QX0lNUExfTkFNRTxUYWcsbmE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseSAKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKKyAgICB9OworfTsKKyNlbHNlCit0ZW1wbGF0ZTw+IHN0cnVjdCBBVVg3NzgwNzZfT1BfSU1QTF9OQU1FPG5hLGludGVncmFsX2NfdGFnPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkgCisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFVWDc3ODA3Nl9PUF9JTVBMX05BTUU8aW50ZWdyYWxfY190YWcsbmE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseSAKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKKyAgICB9OworfTsKKyNlbmRpZgorCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID49IDEzMDApCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBBVVg3NzgwNzZfT1BfVEFHX05BTUUKKyAgICA6IHRhZzxULG5hPgoreworfTsKKyNlbHNlCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBBVVg3NzgwNzZfT1BfVEFHX05BTUUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKyNlbmRpZgorCisKKyNpZiBBVVg3NzgwNzZfT1BfQVJJVFkgIT0gMgorCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfUklHSFRfT1BFUkFORCh1bnVzZWQsIGksIE4pICwgQk9PU1RfUFBfQ0FUKE4sIEJPT1NUX01QTF9QUF9BREQoaSwgMikpPgorIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfTl9DQUxMUyhpLCBOKSBcCisgICAgQk9PU1RfTVBMX1BQX1JFUEVBVCggQk9PU1RfUFBfREVDKGkpLCBCT09TVF9NUExfUFBfUkVQRUFUX0lERU5USVRZX0ZVTkMsIEFVWDc3ODA3Nl9PUF9OQU1FPCApIFwKKyAgICBOMSBCT09TVF9NUExfUFBfUkVQRUFUKCBCT09TVF9NUExfUFBfU1VCKGksIDEpLCBBVVg3NzgwNzZfT1BfUklHSFRfT1BFUkFORCwgTiApIFwKKy8qKi8KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMKDIsIHR5cGVuYW1lIE4sIG5hKQorICAgID4KK3N0cnVjdCBBVVg3NzgwNzZfT1BfTkFNRQorICAgIDogQVVYNzc4MDc2X09QX05fQ0FMTFMoQVVYNzc4MDc2X09QX0FSSVRZLCBOKQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgQVVYNzc4MDc2X09QX0FSSVRZCisgICAgICAgICwgQVVYNzc4MDc2X09QX05BTUUKKyAgICAgICAgLCAoIEJPT1NUX01QTF9QUF9QQVJBTVMoQVVYNzc4MDc2X09QX0FSSVRZLCBOKSApCisgICAgICAgICkKK307CisKKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoIEJPT1NUX1BQX0RFQyhBVVg3NzgwNzZfT1BfQVJJVFkpLCAyLCA8bmRuYm9vc3QvbXBsL2F1eF8vbnVtZXJpY19vcC5ocHA+ICkpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9PUF9OX0NBTExTCisjICAgdW5kZWYgQVVYNzc4MDc2X09QX1JJR0hUX09QRVJBTkQKKworIyAgIGVsc2UgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfTkFNRSwyKTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMKDIsIHR5cGVuYW1lIE4sIG5hKQorICAgID4KK3N0cnVjdCBBVVg3NzgwNzZfT1BfTkFNRQorI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMwMCkKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgaWZfPAorI2Vsc2UKKyAgICA6IGlmXzwKKyNlbmRpZgorICAgICAgICAgIGlzX25hPE4zPgorICAgICAgICAsIEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfT1BfTkFNRSwyKTxOMSxOMj4KKyAgICAgICAgLCBBVVg3NzgwNzZfT1BfTkFNRTwKKyAgICAgICAgICAgICAgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9OQU1FLDIpPE4xLE4yPgorICAgICAgICAgICAgLCBCT09TVF9NUExfUFBfRVhUX1BBUkFNUygzLCBCT09TVF9QUF9JTkMoQVVYNzc4MDc2X09QX0FSSVRZKSwgTikKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMwMCkKKyAgICA+CisjZW5kaWYKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIEFVWDc3ODA3Nl9PUF9BUklUWQorICAgICAgICAsIEFVWDc3ODA3Nl9PUF9OQU1FCisgICAgICAgICwgKCBCT09TVF9NUExfUFBfUEFSQU1TKEFVWDc3ODA3Nl9PUF9BUklUWSwgTikgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9OQU1FLDIpCisKKyNlbmRpZgorCisjZWxzZSAvLyBBVVg3NzgwNzZfT1BfQVJJVFkgPT0gMgorCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgQVVYNzc4MDc2X09QX05BTUUKKworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfRVRJX0JVRykKKyAgICA6IEFVWDc3ODA3Nl9PUF9JTVBMX05BTUU8CisgICAgICAgICAgdHlwZW5hbWUgQVVYNzc4MDc2X09QX1RBR19OQU1FPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIEFVWDc3ODA3Nl9PUF9UQUdfTkFNRTxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8TjEsTjI+Ojp0eXBlCisjZWxzZQorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBBVVg3NzgwNzZfT1BfSU1QTF9OQU1FPAorICAgICAgICAgICAgICB0eXBlbmFtZSBBVVg3NzgwNzZfT1BfVEFHX05BTUU8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIEFVWDc3ODA3Nl9PUF9UQUdfTkFNRTxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorI2VuZGlmCit7CisjaWYgQVVYNzc4MDc2X09QX0FSSVRZICE9IDIKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIEFVWDc3ODA3Nl9PUF9BUklUWQorICAgICAgICAsIEFVWDc3ODA3Nl9PUF9OQU1FCisgICAgICAgICwgKCBCT09TVF9NUExfUFBfUEFSVElBTF9TUEVDX1BBUkFNUygyLCBOLCBuYSkgKQorICAgICAgICApCisjICAgZWxzZQorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9PUF9OQU1FLDIpLCAoTjEsIE4yKSkKKyMgICBlbmRpZgorCisjZWxzZQorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgQVVYNzc4MDc2X09QX05BTUUsIChOMSwgTjIpKQorI2VuZGlmCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIEFVWDc3ODA3Nl9PUF9BUklUWSwgQVVYNzc4MDc2X09QX05BTUUpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKy8vLy8vIGl0ZXJhdGlvbiwgZGVwdGggPT0gMQorCisvLyBGb3IgZ2NjIDQuNCBjb21wYXRhYmlsaXR5LCB3ZSBtdXN0IGluY2x1ZGUgdGhlCisvLyBCT09TVF9QUF9JVEVSQVRJT05fREVQVEggdGVzdCBpbnNpZGUgYW4gI2Vsc2UgY2xhdXNlLgorI2Vsc2UgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCisjaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgPT0gMQorCisjICAgZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCit0ZW1wbGF0ZTwKKyAgICAgIEJPT1NUX01QTF9QUF9QQVJBTVMoaV8sIHR5cGVuYW1lIE4pCisgICAgPgorc3RydWN0IEFVWDc3ODA3Nl9PUF9OQU1FPEJPT1NUX01QTF9QUF9QQVJUSUFMX1NQRUNfUEFSQU1TKGlfLCBOLCBuYSk+CisjaWYgaV8gIT0gMgorICAgIDogQVVYNzc4MDc2X09QX05fQ0FMTFMoaV8sIE4pCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIEFVWDc3ODA3Nl9PUF9BUklUWQorICAgICAgICAsIEFVWDc3ODA3Nl9PUF9OQU1FCisgICAgICAgICwgKCBCT09TVF9NUExfUFBfUEFSVElBTF9TUEVDX1BBUkFNUyhpXywgTiwgbmEpICkKKyAgICAgICAgKQorfTsKKyNlbmRpZgorCisjICAgdW5kZWYgaV8KKworI2VuZGlmIC8vIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYWR2YW5jZV9iYWNrd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU0ODA5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hZHZhbmNlX2JhY2t3YXJkLmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYWR2YW5jZV9iYWNrd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2JhY2t3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2FkdmFuY2VfZm9yd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYWR2YW5jZV9mb3J3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjMzMWRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2FkdmFuY2VfZm9yd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImFkdmFuY2VfZm9yd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkOwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIGl0ZXIxIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICB0eXBlZGVmIGl0ZXI0IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9mb3J3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9mb3J3YXJkPCgKKyAgICAgICAgICAgICAgICAoTiAtIDQpIDwgMAorICAgICAgICAgICAgICAgICAgICA/IDAKKyAgICAgICAgICAgICAgICAgICAgOiBOIC0gNAorICAgICAgICAgICAgICAgICAgICApPgorICAgICAgICAgICAgLCBjaHVua19yZXN1bHRfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOWZhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYW5kLmhwcApAQCAtMCwwICsxLDY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQ18sIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbAorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IGFuZF9pbXBsPCB0cnVlLFQxLFQyLFQzLFQ0ID4KKyAgICA6IGFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNAorICAgICAgICAsIHRydWVfCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhbmRfaW1wbDwKKyAgICAgICAgICB0cnVlCisgICAgICAgICwgdHJ1ZV8sIHRydWVfLCB0cnVlXywgdHJ1ZV8KKyAgICAgICAgPgorICAgIDogdHJ1ZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSB0cnVlXywgdHlwZW5hbWUgVDQgPSB0cnVlXywgdHlwZW5hbWUgVDUgPSB0cnVlXworICAgID4KK3N0cnVjdCBhbmRfCisKKyAgICA6IGF1eDo6YW5kX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBhbmRfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBhbmRfCisgICAgKQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2FwcGx5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQzNzJmMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseS5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJhcHBseS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MAorCisgICAgOiBhcHBseV93cmFwMDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMQorICAgICAgICAsIGFwcGx5MAorICAgICAgICAsIChGICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5PCBGLG5hLG5hLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTEKKworICAgIDogYXBwbHlfd3JhcDE8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMgorICAgICAgICAsIGFwcGx5MQorICAgICAgICAsIChGLCBUMSkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBhcHBseTE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyCisKKyAgICA6IGFwcGx5X3dyYXAyPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAzCisgICAgICAgICwgYXBwbHkyCisgICAgICAgICwgKEYsIFQxLCBUMikKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsbmEsbmEsbmEgPgorICAgIDogYXBwbHkyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTMKKworICAgIDogYXBwbHlfd3JhcDM8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgYXBwbHkzCisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxuYSxuYSA+CisgICAgOiBhcHBseTM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQKKworICAgIDogYXBwbHlfd3JhcDQ8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFwcGx5NAorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBhcHBseTQ8IEYsVDEsVDIsVDMsVDQgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1CisKKyAgICA6IGFwcGx5X3dyYXA1PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA2CisgICAgICAgICwgYXBwbHk1CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHkKKyAgICA6IGFwcGx5NTwgRixUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNjcxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYXBwbHlfZndkLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEKKyAgICA+CitzdHJ1Y3QgYXBwbHk7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHkxOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTM7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk0OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV93cmFwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcHBseV93cmFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWM2Mzk3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2FwcGx5X3dyYXAuaHBwCkBAIC0wLDAgKzEsNDYxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwOAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYXBwbHlfd3JhcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgYm9vbCBGX2hhc19hcHBseSA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMF9iY2IgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8bmE+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMF9iY2I8IEYsdHJ1ZSA+IHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OmFwcGx5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAwCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBhcHBseV93cmFwX2ltcGwwX2JjYjwgRiwgYXV4OjpoYXNfYXBwbHk8Rj46OnZhbHVlID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDEKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDIKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDMKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwMAorICAgIDogYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsMCA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAKKyAgICAgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDEKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDIKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICAzCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDEKKyAgICA6IGFwcGx5X3dyYXBfaW1wbDE8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5PCBGLDEgPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgMgorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMjwKKyAgICAgICAgICAzCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIKKworICAgICAgICAsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMjwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIKKworICAgICAgICAsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgNQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgLCBuYSwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDIKKyAgICA6IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5PCBGLDIgPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM8CisgICAgICAgICAgMworICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMzwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMworCisgICAgICAgICwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMzwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMworCisgICAgICAgICwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAzCisgICAgOiBhcHBseV93cmFwX2ltcGwzPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiwzID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw0PAorICAgICAgICAgIDQKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMywgVDQKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDQ8CisgICAgICAgICAgNQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorCisgICAgICAgICwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA0CisgICAgOiBhcHBseV93cmFwX2ltcGw0PAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiw0ID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw1OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw1PAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0LCBUNQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1CisgICAgOiBhcHBseV93cmFwX2ltcGw1PAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiw1ID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXJnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYzQzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYXJnLmhwcApAQCAtMCwwICsxLDExNyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImFyZy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8IC0xID4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAtMSk7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwxPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDEpOworICAgIHR5cGVkZWYgYXJnPDI+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMiB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwzPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDMpOworICAgIHR5cGVkZWYgYXJnPDQ+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMyB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw0PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDQpOworICAgIHR5cGVkZWYgYXJnPDU+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfTk9OVFlQRV9BUklUWV9TUEVDKDEsaW50LCBhcmcpCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmFzaWNfYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmFzaWNfYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNkMDU0YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iYXNpY19iaW5kLmhwcApAQCAtMCwwICsxLDMwMCBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMQorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJiYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAwPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDA8Rj4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQwPEY+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMSwgYmluZDApCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSwgYmluZDApCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzCisgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQxPCBGLFQxID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQxPCBGLFQxID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygyLCBiaW5kMSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLCBiaW5kMSkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDUsIGJpbmQ0KQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDUsIGJpbmQ0KQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ1LFUxLFUyLFUzLFU0LFU1ID4gdDU7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVlZTQ5MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaW5kLmhwcApAQCAtMCwwICsxLDM5NyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMQorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJiaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZworeworICAgIHR5cGVkZWYgQXJnIG5leHQ7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEFyZworICAgID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnPCBhcmc8IC0xID4sIEFyZyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBBcmc6Om5leHQgbmV4dDsKKyAgICB0eXBlZGVmIEFyZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFUxCisgICAgLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDM8IEYsVDEsVDIsVDMgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDQsIGJpbmQzKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDQsIGJpbmQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ1LG41ID4gcjU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6OnR5cGUgYTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6Om5leHQgbjY7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYmluZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpbmRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTVkNTU0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYmluZF9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaXRhbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpdGFuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyYWM4ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaXRhbmQuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYml0YW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0YW5kX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXRhbmRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdGFuZF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdGFuZF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdGFuZF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0YW5kXworICAgIDogYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXRhbmRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXRhbmRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdGFuZF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0YW5kXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0YW5kX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAmIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYml0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNmYzNTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvYml0b3IuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYml0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRvcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0b3JfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdG9yXworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXRvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICB8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaXR4b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg2OWZiYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9iaXR4b3IuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYml0eG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0eG9yX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXR4b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdHhvcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0eG9yXworICAgIDogYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXR4b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXR4b3JfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdHhvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0eG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0eG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICBeIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9kZXF1ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZGVxdWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNWQ4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZGVxdWUuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiZGVxdWUuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGVxdWU7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IwPCAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBkZXF1ZQorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZGl2aWRlcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZGl2aWRlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyMmFmZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9kaXZpZGVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImRpdmlkZXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBkaXZpZGVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZGl2aWRlc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGl2aWRlcworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBkaXZpZGVzPCBkaXZpZGVzPCBkaXZpZGVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBkaXZpZGVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZGl2aWRlc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZGl2aWRlc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgZGl2aWRlcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGl2aWRlc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgLyBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDdjNTFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBlcXVhbF90b19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGVxdWFsX3RvCisKKyAgICA6IGVxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGVxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBlcXVhbF90bykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgID09IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiNGJlZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBzdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IHJlc187CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgIDogZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvZnVsbF9sYW1iZGEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTdlZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2Z1bGxfbGFtYmRhLmhwcApAQCAtMCwwICsxLDU1OCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImZ1bGxfbGFtYmRhLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICBib29sIEMxID0gZmFsc2UsIGJvb2wgQzIgPSBmYWxzZSwgYm9vbCBDMyA9IGZhbHNlLCBib29sIEM0ID0gZmFsc2UKKyAgICAsIGJvb2wgQzUgPSBmYWxzZQorICAgID4KK3N0cnVjdCBsYW1iZGFfb3IKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGFtYmRhX29yPCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgICwgdHlwZW5hbWUgQXJpdHkKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBUIHJlc3VsdF87CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK3RlbXBsYXRlPCBpbnQgTiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IGFyZzxOPixUYWcsIGludF88IC0xID4gPgoreworICAgIHR5cGVkZWYgdHJ1ZV8gaXNfbGU7CisgICAgdHlwZWRlZiBtcGw6OmFyZzxOPiByZXN1bHRfOyAvLyBxdWFsaWZpZWQgZm9yIHRoZSBzYWtlIG9mIE1JUFNwcm8gNy40MQorICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDA8Rj4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDE+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQwPAorICAgICAgICAgIEYKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDEKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MTwgdHJ1ZV8sVGFnLEYsTDEgPgoreworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgcXVvdGUxPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8VDE+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwxPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQxPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMTwgRixUMSA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwyPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MgoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMgorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQyPCB0cnVlXyxUYWcsRixMMSxMMiA+Cit7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBxdW90ZTI8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Mj4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDI8IEYsVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Mz4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDMKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MzwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMgPgoreworICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgcXVvdGUzPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyLFQzID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDM+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDM8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMworICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMzwgRixUMSxUMixUMyA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw0PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NAoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NDwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQgPgoreworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgcXVvdGU0PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw0PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZSwgaXNfbGU0Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDQ8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDU+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0LCB0eXBlbmFtZSBMNQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ1Cit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6dHlwZSwgdHlwZW5hbWUgTDU6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0LCB0eXBlbmFtZSBMNQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ1PCB0cnVlXyxUYWcsRixMMSxMMixMMyxMNCxMNSA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBxdW90ZTU8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnJlc3VsdF8sIHR5cGVuYW1lIEw1OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAsIHR5cGVuYW1lIFA1CisgICAgICAgID4KKyAgICAgIGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw1PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIHR5cGVkZWYgbGFtYmRhPCBUNSxUYWcgPiBsNTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgICwgaXNfbGU1Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDU8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQsIGw1CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Nj4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKKy8vLyBzcGVjaWFsIGNhc2UgZm9yICdwcm90ZWN0JwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgbGFtYmRhPCBtcGw6OnByb3RlY3Q8VD4sVGFnLCBpbnRfPDE+ID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxUPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWxpemF0aW9ucyBmb3IgdGhlIG1haW4gJ2JpbmQnIGZvcm0KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw2PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgICwgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgICwgdHlwZW5hbWUgQXJpdHkKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGxhbWJkYTwgRixUYWcxLEFyaXR5ID4KKyAgICAgICAgLCBUYWcyCisgICAgICAgICwgaW50XzwzPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQxPCBxdW90ZTE8YXV4Ojp0ZW1wbGF0ZV9hcml0eT4sIHR5cGVuYW1lIGwxOjpyZXN1bHRfID4gYXJpdHlfOworICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBpZl88IGlzX2xlLGFyaXR5XyxBcml0eSA+Ojp0eXBlLCBUYWcyID4gbDM7CisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDM8aXNfbGUsIFRhZzIsIG1wbDo6bGFtYmRhLCBsMSwgbDIsIGwzPiBsZV9yZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAzLCBsYW1iZGEpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ncmVhdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ncmVhdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmQxYzFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2dyZWF0ZXIuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJncmVhdGVyLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGdyZWF0ZXJfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXIKKworICAgIDogZ3JlYXRlcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlciwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcikKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ncmVhdGVyX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWYxNjVlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2dyZWF0ZXJfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJncmVhdGVyX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZ3JlYXRlcl9lcXVhbF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZ3JlYXRlcl9lcXVhbF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWwKKworICAgIDogZ3JlYXRlcl9lcXVhbF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfZXF1YWxfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfZXF1YWxfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlcl9lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcl9lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvaW5oZXJpdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvaW5oZXJpdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYyMWNkOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9pbmhlcml0LmhwcApAQCAtMCwwICsxLDEzOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImluaGVyaXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgPgorc3RydWN0IGluaGVyaXQyCisgICAgOiBUMSwgVDIKK3sKKyAgICB0eXBlZGVmIGluaGVyaXQyIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBpbmhlcml0MiwgKFQxLCBUMikpCit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEgPgorc3RydWN0IGluaGVyaXQyPCBUMSxlbXB0eV9iYXNlID4KK3sKKyAgICB0eXBlZGVmIFQxIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoVDEsIGVtcHR5X2Jhc2UpKQorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQyID4KK3N0cnVjdCBpbmhlcml0MjwgZW1wdHlfYmFzZSxUMiA+Cit7CisgICAgdHlwZWRlZiBUMiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKGVtcHR5X2Jhc2UsIFQyKSkKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0MjwgZW1wdHlfYmFzZSxlbXB0eV9iYXNlID4KK3sKKyAgICB0eXBlZGVmIGVtcHR5X2Jhc2UgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChlbXB0eV9iYXNlLCBlbXB0eV9iYXNlKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBpbmhlcml0MikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQzCisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0MjwKKyAgICAgICAgICAgICAgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDMKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMworICAgICAgICAsIGluaGVyaXQzCisgICAgICAgICwgKCBUMSwgVDIsIFQzKQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMywgaW5oZXJpdDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NAorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDM8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgaW5oZXJpdDQKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNCwgaW5oZXJpdDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgICwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NQorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDQ8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDUKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGluaGVyaXQ1CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg1LCBpbmhlcml0NSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorICAgID4KK3N0cnVjdCBpbmhlcml0CisgICAgOiBpbmhlcml0NTwgVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQ8IG5hLG5hLG5hLG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwKKworICAgICAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBpbmhlcml0PCBUMSxUMixUMyxUNCxUNSA+CisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUNfTEFNQkRBKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfQVJJVFkoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWSg1LCA1LCBpbmhlcml0KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU1M2VmZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKQEAgLTAsMCArMSwxMzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMS0yMDAyCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJpdGVyX2ZvbGRfaWZfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgU3RhdGUgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBTdGF0ZU9wLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JPcDo6dHlwZSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsRm9yd2FyZE9wLCBtcGw6Om5leHQ8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsQmFja3dhcmRPcCwgaWRlbnRpdHk8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRQcmVkaWNhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9pbXBsCit7CisgcHJpdmF0ZToKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8IEl0ZXJhdG9yLFN0YXRlID4gZm9yd2FyZF9zdGVwMDsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwNDsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Om5vdF9sYXN0CisgICAgICAgICwgaXRlcl9mb2xkX2lmX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkUHJlZGljYXRlCisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgQmFja3dhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlIGJhY2t3YXJkX3N0ZXA0OworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDM6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMjo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAxOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMDsKKyAgICAKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAwOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NWRhNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwxODAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJpdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMyxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUzLGl0ZXIzID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgNAorICAgICAgICAsIEZpcnN0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIFN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgIDogaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xhbWJkYV9ub19jdHBzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sYW1iZGFfbm9fY3Rwcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEzNDc1ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sYW1iZGFfbm9fY3Rwcy5ocHAKQEAgLTAsMCArMSwyMjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJsYW1iZGFfbm9fY3Rwcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJpdHkgPiBzdHJ1Y3QgbGFtYmRhX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB0eXBlZGVmIGlzX3BsYWNlaG9sZGVyPFQ+IGlzX2xlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc1LCBUYWcsIGZhbHNlXyA+IGw1OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw1Ojppc19sZSBpc19sZTU7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTUpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZSwgdHlwZW5hbWUgbDU6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgICwgdHlwZW5hbWUgUHJvdGVjdAorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICAvLy8gTWV0YWZ1bmN0aW9uIGZvcndhcmRpbmcgY29uZnVzZXMgTVNWQyA2LngKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dGVtcGxhdGVfYXJpdHk8VD46OnR5cGUgYXJpdHlfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfaW1wbDxhcml0eV8+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxUYWcsUHJvdGVjdCA+IGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6dHlwZSB0eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OmlzX2xlIGlzX2xlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMywgbGFtYmRhLCAoVCwgVGFnLCBQcm90ZWN0KSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMSwgMywgbGFtYmRhKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sZXNzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmVlMWU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xlc3MuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJsZXNzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3MKKworICAgIDogbGVzc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzcywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sZXNzX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDA4MDc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJsZXNzX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19lcXVhbF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19lcXVhbF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfZXF1YWxfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3NfZXF1YWwKKworICAgIDogbGVzc19lcXVhbF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzc19lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzc19lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA8PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlZGJjYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9saXN0LmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImxpc3QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbGlzdDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDA8ICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbGlzdAorICAgIDogbGlzdDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9saXN0X2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL2xpc3RfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFiYjM2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9saXN0X2MuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAibGlzdF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBsaXN0X2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MV9jPCBULEMwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxX2M8IFQsQzAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0Ml9jPCBULEMwLEMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyX2M8IFQsQzAsQzEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0M19jPCBULEMwLEMxLEMyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzX2M8IFQsQzAsQzEsQzIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0NF9jPCBULEMwLEMxLEMyLEMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0X2M8IFQsQzAsQzEsQzIsQzMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTVfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTZfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE3X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE4X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MThfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTlfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBsaXN0X2MKKyAgICA6IGxpc3QyMF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbWFwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9tYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2Zjg5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbWFwLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gIm1hcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBtYXA7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMDwgID4KK3sKKyAgICB0eXBlZGVmIG1hcDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IG1hcAorICAgIDogbWFwMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL21pbnVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTM5ZDBkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL21pbnVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gIm1pbnVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbWludXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1pbnVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBtaW51c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtaW51c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1pbnVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBtaW51cworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBtaW51czwgbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IG1pbnVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBtaW51c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1pbnVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBtaW51c190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIG1pbnVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBtaW51c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgLSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbW9kdWx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvbW9kdWx1cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU1MDlmMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9tb2R1bHVzLmhwcApAQCAtMCwwICsxLDEwMSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gIm1vZHVsdXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBtb2R1bHVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBtb2R1bHVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBtb2R1bHVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbW9kdWx1c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbW9kdWx1cworCisgICAgOiBtb2R1bHVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbW9kdWx1c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbW9kdWx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBtb2R1bHVzLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBtb2R1bHVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBtb2R1bHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAlIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ub3RfZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE0ZTUzNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9ub3RfZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJub3RfZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG8KKworICAgIDogbm90X2VxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbm90X2VxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBub3RfZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAhPSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDI3ZDA4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL29yLmhwcApAQCAtMCwwICsxLDY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAib3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCBDXywgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IG9yX2ltcGwKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IG9yX2ltcGw8IGZhbHNlLFQxLFQyLFQzLFQ0ID4KKyAgICA6IG9yX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0CisgICAgICAgICwgZmFsc2VfCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBvcl9pbXBsPAorICAgICAgICAgIGZhbHNlCisgICAgICAgICwgZmFsc2VfLCBmYWxzZV8sIGZhbHNlXywgZmFsc2VfCisgICAgICAgID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgLCB0eXBlbmFtZSBUMyA9IGZhbHNlXywgdHlwZW5hbWUgVDQgPSBmYWxzZV8sIHR5cGVuYW1lIFQ1ID0gZmFsc2VfCisgICAgPgorc3RydWN0IG9yXworCisgICAgOiBhdXg6Om9yX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBvcl8KKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigKKyAgICAgIDIKKyAgICAsIDUKKyAgICAsIG9yXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9wbGFjZWhvbGRlcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3BsYWNlaG9sZGVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMwZTQwZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9wbGFjZWhvbGRlcnMuaHBwCkBAIC0wLDAgKzEsMTA1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAicGxhY2Vob2xkZXJzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPCAtMSA+IF87CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzsKK30KKworfX0KKworLy8vIGFndXJ0LCAxNy9tYXIvMDI6IG9uZSBtb3JlIHBsYWNlaG9sZGVyIGZvciB0aGUgbGFzdCAnYXBwbHkjJyAKKy8vLyBzcGVjaWFsaXphdGlvbgorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8MT4gXzE7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzE7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwyPiBfMjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8yKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMjsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDM+IF8zOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzMpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8zOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8ND4gXzQ7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNCkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzQ7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw1PiBfNTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF81KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDY+IF82OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzYpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol82OworfQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3BsdXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3BsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YzA0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcGx1cy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJwbHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgcGx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgcGx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgcGx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHBsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcGx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcGx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHBsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHBsdXMKKyAgICA6IHBsdXM8IHBsdXM8IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogcGx1czwgcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogcGx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHBsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHBsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHBsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHBsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICsgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3F1b3RlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9xdW90ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgyYjkzMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9xdW90ZS5ocHAKQEAgLTAsMCArMSwxMTkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA4CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJxdW90ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIGJvb2wgaGFzX3R5cGVfID4KK3N0cnVjdCBxdW90ZV9pbXBsCisKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBxdW90ZV9pbXBsPCBULGZhbHNlID4KK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUxCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjxVMT4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjxVMT4gPjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUyCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHF1b3RlX2ltcGw8CisgICAgICAgICAgICAgIEY8IFUxLFUyID4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIgPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzID4gPjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgVTEsVTIsVTMsVTQgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMixVMyxVNCA+ID46OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICAsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyxVNCxVNSA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzLFU0LFU1ID4gPjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhNDM4YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyOTUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJyZXZlcnNlX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rOworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUyIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCBpdGVyNAorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIHJldmVyc2VfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCByZXZlcnNlX2ZvbGRfc3RlcDwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfc3RlcAoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGUKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsCisgICAgOiByZXZlcnNlX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOTgwOWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyOTUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJyZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rOworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUwIGJrd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTEgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUyIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUzIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGU0LGl0ZXIzID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTMsaXRlcjMgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICAgICAsIGl0ZXI0CisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgZndkX3N0YXRlNAorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIGJrd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlNCxpdGVyMyA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfc3RlcDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwgLTEgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICB0eXBlbmFtZSBpc19zYW1lPCBGaXJzdCxMYXN0ID46OnR5cGUKKyAgICAgICAgICAgICwgcmV2ZXJzZV9pdGVyX2ZvbGRfbnVsbF9zdGVwPCBMYXN0LFN0YXRlID4KKyAgICAgICAgICAgICwgcmV2ZXJzZV9pdGVyX2ZvbGRfc3RlcDwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwCit7CisgICAgdHlwZWRlZiByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwgLTEgPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgRmlyc3QKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGwKKyAgICA6IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPE4+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zZXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3NldC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJjNDRmOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zZXQuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAic2V0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IHNldDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQwPCAgPgoreworICAgIHR5cGVkZWYgc2V0MDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3Qgc2V0CisgICAgOiBzZXQyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zZXRfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2V0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MjQ5YjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2V0X2MuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAic2V0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHNldF9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxX2M8IFQsQzAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MV9jPCBULEMwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQyX2M8IFQsQzAsQzEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Ml9jPCBULEMwLEMxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQzX2M8IFQsQzAsQzEsQzIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0M19jPCBULEMwLEMxLEMyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ0X2M8IFQsQzAsQzEsQzIsQzMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NF9jPCBULEMwLEMxLEMyLEMzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE1X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTdfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MThfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxOV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3Qgc2V0X2MKKyAgICA6IHNldDIwX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3NoaWZ0X2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3NoaWZ0X2xlZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1YWNmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2Mvc2hpZnRfbGVmdC5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInNoaWZ0X2xlZnQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdAorCisgICAgOiBzaGlmdF9sZWZ0X2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgc2hpZnRfbGVmdF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfbGVmdF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9sZWZ0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9sZWZ0KQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTiwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIDw8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChTKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3NoaWZ0X3JpZ2h0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zaGlmdF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2YjI0MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy9zaGlmdF9yaWdodC5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInNoaWZ0X3JpZ2h0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X3JpZ2h0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodAorCisgICAgOiBzaGlmdF9yaWdodF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9yaWdodCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfcmlnaHQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTiwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgID4+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChTKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3RlbXBsYXRlX2FyaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy90ZW1wbGF0ZV9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ5ZjBmMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy90ZW1wbGF0ZV9hcml0eS5ocHAKQEAgLTAsMCArMSw0MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInRlbXBsYXRlX2FyaXR5LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IHRlbXBsYXRlX2FyaXR5X2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogbXBsOjppbnRfPCAtMSA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHlfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBGOjphcml0eQorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYgPgorc3RydWN0IHRlbXBsYXRlX2FyaXR5CisgICAgOiB0ZW1wbGF0ZV9hcml0eV9pbXBsPCA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZDxGPjo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Rj4KK3sKK307CisKK319fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvdGltZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3RpbWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTYxOTcyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3RpbWVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInRpbWVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgdGltZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHRpbWVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCB0aW1lc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHRpbWVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHRpbWVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCB0aW1lc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRpbWVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCB0aW1lcworICAgIDogdGltZXM8IHRpbWVzPCB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiB0aW1lczwgdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiB0aW1lc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHRpbWVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSB0aW1lc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHRpbWVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCB0aW1lc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgKiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvdW5wYWNrX2FyZ3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3VucGFja19hcmdzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTI0ZjJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3VucGFja19hcmdzLmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAidW5wYWNrX2FyZ3MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgaW50IHNpemUsIHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAwLEYsQXJncyA+CisgICAgOiBhcHBseTA8CisgICAgICAgICAgRgorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMSxGLEFyZ3MgPgorICAgIDogYXBwbHkxPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMixGLEFyZ3MgPgorICAgIDogYXBwbHkyPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDMsRixBcmdzID4KKyAgICA6IGFwcGx5MzwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDQsRixBcmdzID4KKyAgICA6IGFwcGx5NDwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMyA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCA1LEYsQXJncyA+CisgICAgOiBhcHBseTU8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsNCA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IHVucGFja19hcmdzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp1bnBhY2tfYXJnc19pbXBsPAorICAgICAgICAgICAgICBzaXplPEFyZ3M+Ojp2YWx1ZQorICAgICAgICAgICAgLCBGCisgICAgICAgICAgICAsIEFyZ3MKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX1BBU1NfVEhST1VHSF9MQU1CREFfU1BFQygxLCB1bnBhY2tfYXJncykKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2MvdmVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWFiODYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3ZlY3Rvci5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJ2ZWN0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjA8ICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCB2ZWN0b3IKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjL3ZlY3Rvcl9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy92ZWN0b3JfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA3YmZkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYy92ZWN0b3JfYy5ocHAKQEAgLTAsMCArMSwzMDkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA4CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJ2ZWN0b3JfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjFfYzwgVCwgVChDMCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMV9jPCBULCBUKEMwKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMl9jPCBULCBUKEMwKSwgVChDMSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMl9jPCBULCBUKEMwKSwgVChDMSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTFfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTJfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMThfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2MKKyAgICA6IHZlY3RvcjIwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpLCBUKEMxOSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCksIFQoQzE5KSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYWR2YW5jZV9iYWNrd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUwYzgyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hZHZhbmNlX2JhY2t3YXJkLmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfYmFja3dhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FkdmFuY2VfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNhNWFmZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hZHZhbmNlX2ZvcndhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9mb3J3YXJkLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgTiA+IHN0cnVjdCBhZHZhbmNlX2ZvcndhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8ND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8ND4KKyAgICAgICAgICAgICwgSXRlcmF0b3IKKyAgICAgICAgICAgID46OnR5cGUgY2h1bmtfcmVzdWx0XzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRiODhkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hbmQuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3QgYW5kX2ltcGwKKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbDwgdHJ1ZSxUMSxUMixUMyxUNCA+CisgICAgOiBhbmRfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCB0cnVlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYW5kX2ltcGw8CisgICAgICAgICAgdHJ1ZQorICAgICAgICAsIHRydWVfLCB0cnVlXywgdHJ1ZV8sIHRydWVfCisgICAgICAgID4KKyAgICA6IHRydWVfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gdHJ1ZV8sIHR5cGVuYW1lIFQ0ID0gdHJ1ZV8sIHR5cGVuYW1lIFQ1ID0gdHJ1ZV8KKyAgICA+CitzdHJ1Y3QgYW5kXworCisgICAgOiBhdXg6OmFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYW5kXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgYW5kXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYXBwbHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YjFjZDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMTY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MAorCisgICAgOiBhcHBseV93cmFwMDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMQorICAgICAgICAsIGFwcGx5MAorICAgICAgICAsIChGICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5PCBGLG5hLG5hLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTEKKworICAgIDogYXBwbHlfd3JhcDE8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMgorICAgICAgICAsIGFwcGx5MQorICAgICAgICAsIChGLCBUMSkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBhcHBseTE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyCisKKyAgICA6IGFwcGx5X3dyYXAyPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAzCisgICAgICAgICwgYXBwbHkyCisgICAgICAgICwgKEYsIFQxLCBUMikKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsbmEsbmEsbmEgPgorICAgIDogYXBwbHkyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTMKKworICAgIDogYXBwbHlfd3JhcDM8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgYXBwbHkzCisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxuYSxuYSA+CisgICAgOiBhcHBseTM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQKKworICAgIDogYXBwbHlfd3JhcDQ8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFwcGx5NAorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBhcHBseTQ8IEYsVDEsVDIsVDMsVDQgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1CisKKyAgICA6IGFwcGx5X3dyYXA1PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA2CisgICAgICAgICwgYXBwbHk1CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHkKKyAgICA6IGFwcGx5NTwgRixUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9hcHBseV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjY2M5NGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBhcHBseTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FwcGx5X3dyYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMDM5MDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYXBwbHlfd3JhcC5ocHAKQEAgLTAsMCArMSw0NTYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5X3dyYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDA8CisgICAgICAgICAgMAorICAgICAgICAsIEYKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAKKy8vLyBzaW5jZSB0aGUgZGVmYXVsdHMgYXJlICJsb3N0Iiwgd2UgaGF2ZSB0byBwYXNzICpzb21ldGhpbmcqIGV2ZW4gZm9yIG51bGxhcnkKKy8vLyBtZXRhZnVuY3Rpb24gY2xhc3NlcworICAgICAgICBuYQorICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAxCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYQorICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAyCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAzCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDA8CisgICAgICAgICAgNAorICAgICAgICAsIEYKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAKKyAgICAgICAgbmEsIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDAKKyAgICA6IGFwcGx5X3dyYXBfaW1wbDA8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5PCBGLDAgPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICAxCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICAyCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDE8CisgICAgICAgICAgMworICAgICAgICAsIEYKKyAgICAgICAgLCBUMQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMQorICAgICAgICAsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAxCisgICAgOiBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiwxID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwyPAorICAgICAgICAgIDIKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMgorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgMworICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgNAorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwyPAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMgorCisgICAgICAgICwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAyCisgICAgOiBhcHBseV93cmFwX2ltcGwyPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiwyID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwzPAorICAgICAgICAgIDMKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIsIFQzCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM8CisgICAgICAgICAgNAorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMKKworICAgICAgICAsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM8CisgICAgICAgICAgNQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMKKworICAgICAgICAsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMworICAgIDogYXBwbHlfd3JhcF9pbXBsMzwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsMyA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNDwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw0PAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMywgVDQKKworICAgICAgICAsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseV93cmFwNAorICAgIDogYXBwbHlfd3JhcF9pbXBsNDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsNCA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNTwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIsIFQzLCBUNCwgVDUKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwNQorICAgIDogYXBwbHlfd3JhcF9pbXBsNTwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsNSA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPjo6dHlwZQoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FyZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYXJnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTE1N2MyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2FyZy5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMgorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FyZy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8IC0xID4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAtMSk7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUxIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMSk7CisgICAgdHlwZWRlZiBhcmc8Mj4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8Mj4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAyKTsKKyAgICB0eXBlZGVmIGFyZzwzPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMiB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwzPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDMpOworICAgIHR5cGVkZWYgYXJnPDQ+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUzIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDQ+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gNCk7CisgICAgdHlwZWRlZiBhcmc8NT4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTQgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8NT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA1KTsKKyAgICB0eXBlZGVmIGFyZzw2PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfTk9OVFlQRV9BUklUWV9TUEVDKDEsaW50LCBhcmcpCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYmFzaWNfYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYmFzaWNfYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA4M2FkZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iYXNpY19iaW5kLmhwcApAQCAtMCwwICsxLDMwNiBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMQorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYmFzaWNfYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAwPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDA8Rj4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQwPEY+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMSwgYmluZDApCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSwgYmluZDApCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyCisgICAgLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMjwgRixUMSxUMiA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMjwgRixUMSxUMiA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMywgYmluZDIpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMywgYmluZDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDYsIGJpbmQ1KQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDYsIGJpbmQ1KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNmE4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYmluZC5ocHAKQEAgLTAsMCArMSw0MDMgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZworeworICAgIHR5cGVkZWYgQXJnIG5leHQ7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEFyZworICAgID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnPCBhcmc8IC0xID4sIEFyZyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBBcmc6Om5leHQgbmV4dDsKKyAgICB0eXBlZGVmIEFyZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAwPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDA8Rj4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQwPEY+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMSwgYmluZDApCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSwgYmluZDApCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDQsbjQgPiByNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6dHlwZSBhNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6bmV4dCBuNTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ1LG41ID4gcjU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6OnR5cGUgYTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6Om5leHQgbjY7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYmluZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpbmRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmQxYjZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGU4NTkzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpdGFuZC5ocHAKQEAgLTAsMCArMSwxNDcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdGFuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGJpdGFuZF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRhbmRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRhbmRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXRhbmRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdGFuZF8KKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0YW5kX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0YW5kX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRhbmRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdGFuZF8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvYml0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzFhOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpdG9yLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRvcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0b3JfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdG9yXworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXRvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICB8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iaXR4b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdmMGNlNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9iaXR4b3IuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXR4b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXR4b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0eG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0eG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0eG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXR4b3JfCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IGJpdHhvcl88IGJpdHhvcl88IGJpdHhvcl88IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IGJpdHhvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdHhvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0eG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXR4b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXR4b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIF4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2RlcXVlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9kZXF1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzMWY2NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9kZXF1ZS5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2RlcXVlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgZGVxdWUKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2RpdmlkZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2RpdmlkZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNTQxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZGl2aWRlcy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2RpdmlkZXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBkaXZpZGVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZGl2aWRlc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGl2aWRlcworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBkaXZpZGVzPCBkaXZpZGVzPCBkaXZpZGVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBkaXZpZGVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZGl2aWRlc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZGl2aWRlc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgZGl2aWRlcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGl2aWRlc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgLyBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDAyZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9lcXVhbF90by5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGVxdWFsX3RvX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBlcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBlcXVhbF90b190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG8KKworICAgIDogZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBlcXVhbF90b190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGVxdWFsX3RvKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAgPT0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTRjZDQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwxODAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBzdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IHJlc187CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgIDogZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZnVsbF9sYW1iZGEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2VhMzQyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2Z1bGxfbGFtYmRhLmhwcApAQCAtMCwwICsxLDU1OCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9mdWxsX2xhbWJkYS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICAsIHR5cGVuYW1lIEFyaXR5CisgICAgPgorc3RydWN0IGxhbWJkYQoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgVCByZXN1bHRfOworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit0ZW1wbGF0ZTwgaW50IE4sIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgbGFtYmRhPCBhcmc8Tj4sVGFnLCBpbnRfPCAtMSA+ID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwxPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMDwKKyAgICAgICAgICBGCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQxCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDE8IHRydWVfLFRhZyxGLEwxID4KK3sKKyAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgIHF1b3RlMTwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPFQxPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88MT4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MTwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMQorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDE8IEYsVDEgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Mj4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDI+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQyPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMgorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQyPCBGLFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDM+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDM8IHRydWVfLFRhZyxGLEwxLEwyLEwzID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgIHF1b3RlMzwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwzPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88ND4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDQKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIEw0Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDQ8IHRydWVfLFRhZyxGLEwxLEwyLEwzLEw0ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgIHF1b3RlNDwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88ND4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIHR5cGVkZWYgbGFtYmRhPCBUNCxUYWcgPiBsNDsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUsIGlzX2xlNDo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQ0PAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMsIGw0CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw1PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88NT4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIHR5cGVkZWYgbGFtYmRhPCBUNCxUYWcgPiBsNDsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDUsVGFnID4gbDU7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDU6OmlzX2xlIGlzX2xlNTsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZSwgaXNfbGU0Ojp2YWx1ZQorICAgICAgICAsIGlzX2xlNTo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQ1PAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMsIGw0LCBsNQorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDY+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisvLy8gc3BlY2lhbCBjYXNlIGZvciAncHJvdGVjdCcKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGxhbWJkYTwgbXBsOjpwcm90ZWN0PFQ+LFRhZywgaW50XzwxPiA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8VD4gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKKy8vLyBzcGVjaWFsaXphdGlvbnMgZm9yIHRoZSBtYWluICdiaW5kJyBmb3JtCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Nj4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICAsIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICAsIHR5cGVuYW1lIEFyaXR5CisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSxBcml0eSA+CisgICAgICAgICwgVGFnMgorICAgICAgICAsIGludF88Mz4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBGLFRhZzIgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVGFnMSxUYWcyID4gbDI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMTwgcXVvdGUxPGF1eDo6dGVtcGxhdGVfYXJpdHk+LCB0eXBlbmFtZSBsMTo6cmVzdWx0XyA+IGFyaXR5XzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgaWZfPCBpc19sZSxhcml0eV8sQXJpdHkgPjo6dHlwZSwgVGFnMiA+IGwzOworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPGlzX2xlLCBUYWcyLCBtcGw6OmxhbWJkYSwgbDEsIGwyLCBsMz4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMywgbGFtYmRhKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZ3JlYXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvZ3JlYXRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1ZmEzYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9ncmVhdGVyLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGdyZWF0ZXJfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXIKKworICAgIDogZ3JlYXRlcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlciwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcikKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9ncmVhdGVyX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODlhNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2dyZWF0ZXJfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2dyZWF0ZXJfZXF1YWwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbAorCisgICAgOiBncmVhdGVyX2VxdWFsX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZ3JlYXRlcl9lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl9lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBncmVhdGVyX2VxdWFsLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyX2VxdWFsKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID49IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pbmhlcml0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWYzODdmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2luaGVyaXQuaHBwCkBAIC0wLDAgKzEsMTQxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9pbmhlcml0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgID4KK3N0cnVjdCBpbmhlcml0MgorICAgIDogVDEsIFQyCit7CisgICAgdHlwZWRlZiBpbmhlcml0MiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgaW5oZXJpdDIsIChUMSwgVDIpKQorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxID4KK3N0cnVjdCBpbmhlcml0MjwgVDEsZW1wdHlfYmFzZSA+Cit7CisgICAgdHlwZWRlZiBUMSB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKFQxLCBlbXB0eV9iYXNlKSkKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMiA+CitzdHJ1Y3QgaW5oZXJpdDI8IGVtcHR5X2Jhc2UsVDIgPgoreworICAgIHR5cGVkZWYgVDIgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChlbXB0eV9iYXNlLCBUMikpCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDI8IGVtcHR5X2Jhc2UsZW1wdHlfYmFzZSA+Cit7CisgICAgdHlwZWRlZiBlbXB0eV9iYXNlIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoZW1wdHlfYmFzZSwgZW1wdHlfYmFzZSkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgaW5oZXJpdDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0MworICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDI8CisgICAgICAgICAgICAgIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBpbmhlcml0MworICAgICAgICAsICggVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGluaGVyaXQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDQKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQzPAorICAgICAgICAgICAgICBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNAorICAgICAgICAsIGluaGVyaXQ0CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDQsIGluaGVyaXQ0KQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ1ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDUKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQ0PAorICAgICAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBpbmhlcml0NQorICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNSwgaW5oZXJpdDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdAorICAgIDogaW5oZXJpdDU8IFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0PCBuYSxuYSxuYSxuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8CisKKyAgICAgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgICAgICwgdHlwZW5hbWUgVDUgPSBlbXB0eV9iYXNlCisKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgICAgICA6IGluaGVyaXQ8IFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICB7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX1RFTVBMQVRFX0FSSVRZKDUsIDUsIGluaGVyaXQpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGEyODY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApAQCAtMCwwICsxLDEzMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAxLTIwMDIKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgU3RhdGUgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBTdGF0ZU9wLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JPcDo6dHlwZSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsRm9yd2FyZE9wLCBtcGw6Om5leHQ8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsQmFja3dhcmRPcCwgaWRlbnRpdHk8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRQcmVkaWNhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9pbXBsCit7CisgcHJpdmF0ZToKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8IEl0ZXJhdG9yLFN0YXRlID4gZm9yd2FyZF9zdGVwMDsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwNDsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Om5vdF9sYXN0CisgICAgICAgICwgaXRlcl9mb2xkX2lmX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkUHJlZGljYXRlCisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgQmFja3dhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlIGJhY2t3YXJkX3N0ZXA0OworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDM6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMjo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAxOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMDsKKyAgICAKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAwOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MwOGIzMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwxODAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMSBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMyxpdGVyMyA+Ojp0eXBlIHN0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlNCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186OnN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gcmVzXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGFtYmRhX25vX2N0cHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZmM2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGFtYmRhX25vX2N0cHMuaHBwCkBAIC0wLDAgKzEsMjI5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9ub19jdHBzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICBib29sIEMxID0gZmFsc2UsIGJvb2wgQzIgPSBmYWxzZSwgYm9vbCBDMyA9IGZhbHNlLCBib29sIEM0ID0gZmFsc2UKKyAgICAsIGJvb2wgQzUgPSBmYWxzZQorICAgID4KK3N0cnVjdCBsYW1iZGFfb3IKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGFtYmRhX29yPCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBBcml0eSA+IHN0cnVjdCBsYW1iZGFfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgIHR5cGVkZWYgaXNfcGxhY2Vob2xkZXI8VD4gaXNfbGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGw0Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzUsIFRhZywgZmFsc2VfID4gbDU7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDU6OmlzX2xlIGlzX2xlNTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNSk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGw0Ojp0eXBlLCB0eXBlbmFtZSBsNTo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgLCB0eXBlbmFtZSBQcm90ZWN0CisgICAgPgorc3RydWN0IGxhbWJkYQoreworICAgIC8vLyBNZXRhZnVuY3Rpb24gZm9yd2FyZGluZyBjb25mdXNlcyBNU1ZDIDYueAorICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp0ZW1wbGF0ZV9hcml0eTxUPjo6dHlwZSBhcml0eV87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9pbXBsPGFyaXR5Xz4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULFRhZyxQcm90ZWN0ID4gbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjp0eXBlIHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6aXNfbGUgaXNfbGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLCBsYW1iZGEsIChULCBUYWcsIFByb3RlY3QpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigxLCAzLCBsYW1iZGEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xlc3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMzliNzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGVzcy5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGVzcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxlc3NfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzCisKKyAgICA6IGxlc3NfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBsZXNzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBsZXNzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGxlc3MsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3MpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgPiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGVzc19lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGVzc19lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdjMzQ5MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9sZXNzX2VxdWFsLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19lcXVhbF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19lcXVhbF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfZXF1YWxfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3NfZXF1YWwKKworICAgIDogbGVzc19lcXVhbF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzc19lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzc19lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA8PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNjOGM0NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9saXN0LmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBsaXN0OworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MDwgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBsaXN0CisgICAgOiBsaXN0MjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xpc3RfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbGlzdF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDNmMzhmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL2xpc3RfYy5ocHAKQEAgLTAsMCArMSwzMjggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3RfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDFfYzwgVCxDMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MV9jPCBULEMwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDJfYzwgVCxDMCxDMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Ml9jPCBULEMwLEMxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDNfYzwgVCxDMCxDMSxDMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0M19jPCBULEMwLEMxLEMyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDRfYzwgVCxDMCxDMSxDMixDMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NF9jPCBULEMwLEMxLEMyLEMzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTVfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE2X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxN19jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxOF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE5X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3QgbGlzdF9jCisgICAgOiBsaXN0MjBfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL21hcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbWFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTc0ZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL21hcC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21hcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBtYXA7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMDwgID4KK3sKKyAgICB0eXBlZGVmIG1hcDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IG1hcAorICAgIDogbWFwMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL21pbnVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTZiNTkyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL21pbnVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbWludXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBtaW51c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbWludXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1pbnVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1pbnVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbWludXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IG1pbnVzCisgICAgOiBtaW51czwgbWludXM8IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IG1pbnVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IG1pbnVzPCBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IG1pbnVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IG1pbnVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbWludXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1pbnVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgbWludXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IG1pbnVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAtIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWM2MTcyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL21vZHVsdXMuaHBwCkBAIC0wLDAgKzEsMTAxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1vZHVsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1vZHVsdXMKKworICAgIDogbW9kdWx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbW9kdWx1cywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbW9kdWx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbm90X2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9ub3RfZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyOGUxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvbm90X2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ub3RfZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG8KKworICAgIDogbm90X2VxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbm90X2VxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBub3RfZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAhPSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTI5NjAyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL29yLmhwcApAQCAtMCwwICsxLDY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9vci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3Qgb3JfaW1wbAorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3Qgb3JfaW1wbDwgZmFsc2UsVDEsVDIsVDMsVDQgPgorICAgIDogb3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCBmYWxzZV8KKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IG9yX2ltcGw8CisgICAgICAgICAgZmFsc2UKKyAgICAgICAgLCBmYWxzZV8sIGZhbHNlXywgZmFsc2VfLCBmYWxzZV8KKyAgICAgICAgPgorICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gZmFsc2VfLCB0eXBlbmFtZSBUNCA9IGZhbHNlXywgdHlwZW5hbWUgVDUgPSBmYWxzZV8KKyAgICA+CitzdHJ1Y3Qgb3JfCisKKyAgICA6IGF1eDo6b3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG9yXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgb3JfCisgICAgKQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvcGxhY2Vob2xkZXJzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Q0NTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3BsYWNlaG9sZGVycy5ocHAKQEAgLTAsMCArMSwxMDUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3BsYWNlaG9sZGVycy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwgLTEgPiBfOworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8pCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol87Cit9CisKK319CisKKy8vLyBhZ3VydCwgMTcvbWFyLzAyOiBvbmUgbW9yZSBwbGFjZWhvbGRlciBmb3IgdGhlIGxhc3QgJ2FwcGx5IycgCisvLy8gc3BlY2lhbGl6YXRpb24KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDE+IF8xOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzEpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8xOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mj4gXzI7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzI7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwzPiBfMzsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8zKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMzsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDQ+IF80OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzQpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol80OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8NT4gXzU7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzU7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw2PiBfNjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF82KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNjsKK30KKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9wbHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9wbHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTAzZTNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3BsdXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9wbHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgcGx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgcGx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgcGx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHBsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcGx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcGx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHBsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHBsdXMKKyAgICA6IHBsdXM8IHBsdXM8IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogcGx1czwgcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogcGx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHBsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHBsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHBsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHBsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICsgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3F1b3RlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9xdW90ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U3N2ZiYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9xdW90ZS5ocHAKQEAgLTAsMCArMSwxMSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcXVvdGUuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM2YzE3MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyOTUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTEgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuaworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgaXRlcjQKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfc3RlcDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8IEZpcnN0LExhc3QgPjo6dHlwZQorICAgICAgICAgICAgLCByZXZlcnNlX2ZvbGRfbnVsbF9zdGVwPCBMYXN0LFN0YXRlID4KKyAgICAgICAgICAgICwgcmV2ZXJzZV9mb2xkX3N0ZXA8IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9jaHVuazwgLTEgPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZT46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlCisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbAorICAgIDogcmV2ZXJzZV9mb2xkX2NodW5rPE4+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2NjNjg4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjk1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms7CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTIgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTMsaXRlcjMgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgaXRlcjQKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGU0LGl0ZXIzID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8IEZpcnN0LExhc3QgPjo6dHlwZQorICAgICAgICAgICAgLCByZXZlcnNlX2l0ZXJfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KKyAgICAgICAgICAgID46OnR5cGUgcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCBGaXJzdAorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbAorICAgIDogcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NldC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvc2V0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzRjYTExCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NldC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NldC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBzZXQ7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MDwgID4KK3sKKyAgICB0eXBlZGVmIHNldDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHNldAorICAgIDogc2V0MjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvc2V0X2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NldF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWYyZmRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NldF9jLmhwcApAQCAtMCwwICsxLDMyOCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2V0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHNldF9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxX2M8IFQsQzAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MV9jPCBULEMwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQyX2M8IFQsQzAsQzEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Ml9jPCBULEMwLEMxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQzX2M8IFQsQzAsQzEsQzIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0M19jPCBULEMwLEMxLEMyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ0X2M8IFQsQzAsQzEsQzIsQzMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NF9jPCBULEMwLEMxLEMyLEMzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE1X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTdfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MThfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxOV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3Qgc2V0X2MKKyAgICA6IHNldDIwX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NoaWZ0X2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NoaWZ0X2xlZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4ZGYyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvc2hpZnRfbGVmdC5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2hpZnRfbGVmdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X2xlZnRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHNoaWZ0X2xlZnRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBzaGlmdF9sZWZ0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0CisKKyAgICA6IHNoaWZ0X2xlZnRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHNoaWZ0X2xlZnQsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIHNoaWZ0X2xlZnQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPDwgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvc2hpZnRfcmlnaHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NoaWZ0X3JpZ2h0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzI2ZmYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3NoaWZ0X3JpZ2h0LmhwcApAQCAtMCwwICsxLDk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zaGlmdF9yaWdodC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfcmlnaHRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBzaGlmdF9yaWdodF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHQKKworICAgIDogc2hpZnRfcmlnaHRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfcmlnaHRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgc2hpZnRfcmlnaHQsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIHNoaWZ0X3JpZ2h0KQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIE46OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlCisgICAgICAgICAgICAgICAgICA+PiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoUyk6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS90ZW1wbGF0ZV9hcml0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdGVtcGxhdGVfYXJpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MDU3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdGVtcGxhdGVfYXJpdHkuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHlfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBtcGw6OmludF88IC0xID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsPHRydWU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IEY6OmFyaXR5CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHkKKyAgICA6IHRlbXBsYXRlX2FyaXR5X2ltcGw8IDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfcmViaW5kPEY+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxGPgoreworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdGltZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NTE0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdGltZXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC90aW1lcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHRpbWVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCB0aW1lc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgdGltZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgdGltZXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0aW1lc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgdGltZXMKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogdGltZXM8IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogdGltZXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSB0aW1lc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgdGltZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCB0aW1lcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGltZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICogQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3VucGFja19hcmdzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS91bnBhY2tfYXJncy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA5OGVmZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjYzU1MS91bnBhY2tfYXJncy5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdW5wYWNrX2FyZ3MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgaW50IHNpemUsIHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAwLEYsQXJncyA+CisgICAgOiBhcHBseTA8CisgICAgICAgICAgRgorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMSxGLEFyZ3MgPgorICAgIDogYXBwbHkxPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMixGLEFyZ3MgPgorICAgIDogYXBwbHkyPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDMsRixBcmdzID4KKyAgICA6IGFwcGx5MzwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDQsRixBcmdzID4KKyAgICA6IGFwcGx5NDwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMyA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCA1LEYsQXJncyA+CisgICAgOiBhcHBseTU8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsNCA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IHVucGFja19hcmdzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp1bnBhY2tfYXJnc19pbXBsPAorICAgICAgICAgICAgICBzaXplPEFyZ3M+Ojp2YWx1ZQorICAgICAgICAgICAgLCBGCisgICAgICAgICAgICAsIEFyZ3MKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX1BBU1NfVEhST1VHSF9MQU1CREFfU1BFQygxLCB1bnBhY2tfYXJncykKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdmVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjY3NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvci5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3I7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3RvcgorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2M1NTEvdmVjdG9yX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvcl9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmZiZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjNTUxL3ZlY3Rvcl9jLmhwcApAQCAtMCwwICsxLDMwOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHZlY3Rvcl9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxX2M8IFQsIFQoQzApID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjFfYzwgVCwgVChDMCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTFfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTJfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMThfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jCisgICAgOiB2ZWN0b3IyMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpLCBUKEMxOSkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hZHZhbmNlX2JhY2t3YXJkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYWR2YW5jZV9iYWNrd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU0ODA5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYWR2YW5jZV9iYWNrd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImFkdmFuY2VfYmFja3dhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYWR2YW5jZV9mb3J3YXJkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYWR2YW5jZV9mb3J3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjMzMWRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hZHZhbmNlX2ZvcndhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJhZHZhbmNlX2ZvcndhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfZm9yd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOWZhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FuZC5ocHAKQEAgLTAsMCArMSw2OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImFuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3QgYW5kX2ltcGwKKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbDwgdHJ1ZSxUMSxUMixUMyxUNCA+CisgICAgOiBhbmRfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCB0cnVlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYW5kX2ltcGw8CisgICAgICAgICAgdHJ1ZQorICAgICAgICAsIHRydWVfLCB0cnVlXywgdHJ1ZV8sIHRydWVfCisgICAgICAgID4KKyAgICA6IHRydWVfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gdHJ1ZV8sIHR5cGVuYW1lIFQ0ID0gdHJ1ZV8sIHR5cGVuYW1lIFQ1ID0gdHJ1ZV8KKyAgICA+CitzdHJ1Y3QgYW5kXworCisgICAgOiBhdXg6OmFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYW5kXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgYW5kXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYXBwbHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQzNzJmMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMTY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYXBwbHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTAKKworICAgIDogYXBwbHlfd3JhcDA8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDEKKyAgICAgICAgLCBhcHBseTAKKyAgICAgICAgLCAoRiApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBhcHBseTA8Rj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHkxCisKKyAgICA6IGFwcGx5X3dyYXAxPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDIKKyAgICAgICAgLCBhcHBseTEKKyAgICAgICAgLCAoRiwgVDEpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsbmEsbmEsbmEsbmEgPgorICAgIDogYXBwbHkxPCBGLFQxID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MgorCisgICAgOiBhcHBseV93cmFwMjwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMworICAgICAgICAsIGFwcGx5MgorICAgICAgICAsIChGLCBUMSwgVDIpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLFQyLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MjwgRixUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHkzCisKKyAgICA6IGFwcGx5X3dyYXAzPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNAorICAgICAgICAsIGFwcGx5MworICAgICAgICAsIChGLCBUMSwgVDIsIFQzKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYXBwbHkzPCBGLFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk0CisKKyAgICA6IGFwcGx5X3dyYXA0PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBhcHBseTQKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMywgVDQpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsVDMsVDQsbmEgPgorICAgIDogYXBwbHk0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NQorCisgICAgOiBhcHBseV93cmFwNTwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNgorICAgICAgICAsIGFwcGx5NQorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5CisgICAgOiBhcHBseTU8IEYsVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNjcxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FwcGx5X2Z3ZC5ocHAKQEAgLTAsMCArMSw1MiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImFwcGx5X2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGFwcGx5OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHkwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5MTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHkzOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5NDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseV93cmFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGFiYTMzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcHBseV93cmFwLmhwcApAQCAtMCwwICsxLDQ1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDgKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImFwcGx5X3dyYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDA8CisgICAgICAgICAgMAorICAgICAgICAsIEYKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAKKy8vLyBzaW5jZSB0aGUgZGVmYXVsdHMgYXJlICJsb3N0Iiwgd2UgaGF2ZSB0byBwYXNzICpzb21ldGhpbmcqIGV2ZW4gZm9yIG51bGxhcnkKKy8vLyBtZXRhZnVuY3Rpb24gY2xhc3NlcworICAgICAgICBuYQorICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAxCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYQorICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAyCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAzCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDA8CisgICAgICAgICAgNAorICAgICAgICAsIEYKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAKKyAgICAgICAgbmEsIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDAKKyAgICA6IGFwcGx5X3dyYXBfaW1wbDA8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5PCBGLDAgPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICAxCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICAyCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDE8CisgICAgICAgICAgMworICAgICAgICAsIEYKKyAgICAgICAgLCBUMQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMQorICAgICAgICAsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAxCisgICAgOiBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiwxID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwyPAorICAgICAgICAgIDIKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMgorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgMworICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgNAorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwyPAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMgorCisgICAgICAgICwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAyCisgICAgOiBhcHBseV93cmFwX2ltcGwyPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiwyID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwzPAorICAgICAgICAgIDMKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIsIFQzCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM8CisgICAgICAgICAgNAorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMKKworICAgICAgICAsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM8CisgICAgICAgICAgNQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMKKworICAgICAgICAsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMworICAgIDogYXBwbHlfd3JhcF9pbXBsMzwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsMyA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNDwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw0PAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMywgVDQKKworICAgICAgICAsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseV93cmFwNAorICAgIDogYXBwbHlfd3JhcF9pbXBsNDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsNCA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNTwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIsIFQzLCBUNCwgVDUKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwNQorICAgIDogYXBwbHlfd3JhcF9pbXBsNTwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsNSA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPjo6dHlwZQoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcmcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYzQzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2FyZy5ocHAKQEAgLTAsMCArMSwxMTcgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMgorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJhcmcuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPCAtMSA+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gLTEpOworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8Mj4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAyKTsKKyAgICB0eXBlZGVmIGFyZzwzPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTIgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8Mz4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAzKTsKKyAgICB0eXBlZGVmIGFyZzw0PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTQgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8NT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA1KTsKKyAgICB0eXBlZGVmIGFyZzw2PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTUgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX05PTlRZUEVfQVJJVFlfU1BFQygxLGludCwgYXJnKQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iYXNpY19iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYmFzaWNfYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNkMDU0YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYmFzaWNfYmluZC5ocHAKQEAgLTAsMCArMSwzMDAgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYmFzaWNfYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyCisgICAgLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMjwgRixUMSxUMiA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMjwgRixUMSxUMiA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMywgYmluZDIpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMywgYmluZDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFUxCisgICAgLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDM8IEYsVDEsVDIsVDMgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDQsIGJpbmQzKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDQsIGJpbmQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDYsIGJpbmQ1KQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDYsIGJpbmQ1KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVlZTQ5MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYmluZC5ocHAKQEAgLTAsMCArMSwzOTcgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgQXJnCisgICAgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmcKK3sKKyAgICB0eXBlZGVmIEFyZyBuZXh0OworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZzwgYXJnPCAtMSA+LCBBcmcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgQXJnOjpuZXh0IG5leHQ7CisgICAgdHlwZWRlZiBBcmcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMDxGPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDA8Rj4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyCisgICAgLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMjwgRixUMSxUMiA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMjwgRixUMSxUMiA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMywgYmluZDIpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMywgYmluZDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBVMQorICAgICwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPCBGLFQxLFQyLFQzID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDQsbjQgPiByNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6dHlwZSBhNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6bmV4dCBuNTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNSxuNSA+IHI1OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI1Ojp0eXBlIGE1OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI1OjpuZXh0IG42OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDYsIGJpbmQ1KQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDYsIGJpbmQ1KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaW5kX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpbmRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTVkNTU0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9iaW5kX2Z3ZC5ocHAKQEAgLTAsMCArMSw0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImJpbmRfZndkLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYmluZDA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdGFuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyYWM4ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYml0YW5kLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImJpdGFuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGJpdGFuZF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRhbmRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRhbmRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXRhbmRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdGFuZF8KKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0YW5kX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0YW5kX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRhbmRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdGFuZF8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYml0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNmYzNTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdG9yLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImJpdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRvcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRvcl8KKyAgICA6IGJpdG9yXzwgYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXRvcl88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXRvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgfCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdHhvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg2OWZiYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvYml0eG9yLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImJpdHhvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGJpdHhvcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0eG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXR4b3JfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXR4b3JfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXR4b3JfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdHhvcl8KKyAgICA6IGJpdHhvcl88IGJpdHhvcl88IGJpdHhvcl88IGJpdHhvcl88IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdHhvcl88IGJpdHhvcl88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0eG9yX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0eG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXR4b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdHhvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdHhvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgXiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2RlcXVlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGVxdWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNWQ4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2RlcXVlLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImRlcXVlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgZGVxdWUKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9kaXZpZGVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGl2aWRlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyMmFmZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZGl2aWRlcy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJkaXZpZGVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZGl2aWRlc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZGl2aWRlc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGRpdmlkZXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGRpdmlkZXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGRpdmlkZXMKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogZGl2aWRlc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGRpdmlkZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGRpdmlkZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC8gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDdjNTFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9lcXVhbF90by5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImVxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBlcXVhbF90b19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGVxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBlcXVhbF90bworCisgICAgOiBlcXVhbF90b19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBlcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBlcXVhbF90bywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICA9PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiNGJlZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDE4MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICA0CisgICAgICAgICwgRmlyc3QKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9mdWxsX2xhbWJkYS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTdlZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJmdWxsX2xhbWJkYS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICAsIHR5cGVuYW1lIEFyaXR5CisgICAgPgorc3RydWN0IGxhbWJkYQoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgVCByZXN1bHRfOworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit0ZW1wbGF0ZTwgaW50IE4sIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgbGFtYmRhPCBhcmc8Tj4sVGFnLCBpbnRfPCAtMSA+ID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwxPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMDwKKyAgICAgICAgICBGCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQxCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDE8IHRydWVfLFRhZyxGLEwxID4KK3sKKyAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgIHF1b3RlMTwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPFQxPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88MT4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MTwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMQorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDE8IEYsVDEgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Mj4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDI+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQyPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMgorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQyPCBGLFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDM+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDM8IHRydWVfLFRhZyxGLEwxLEwyLEwzID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgIHF1b3RlMzwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwzPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88ND4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDQKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIEw0Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDQ8IHRydWVfLFRhZyxGLEwxLEwyLEwzLEw0ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgIHF1b3RlNDwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88ND4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIHR5cGVkZWYgbGFtYmRhPCBUNCxUYWcgPiBsNDsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUsIGlzX2xlNDo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQ0PAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMsIGw0CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw1PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88NT4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIHR5cGVkZWYgbGFtYmRhPCBUNCxUYWcgPiBsNDsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDUsVGFnID4gbDU7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDU6OmlzX2xlIGlzX2xlNTsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZSwgaXNfbGU0Ojp2YWx1ZQorICAgICAgICAsIGlzX2xlNTo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQ1PAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMsIGw0LCBsNQorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDY+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisvLy8gc3BlY2lhbCBjYXNlIGZvciAncHJvdGVjdCcKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGxhbWJkYTwgbXBsOjpwcm90ZWN0PFQ+LFRhZywgaW50XzwxPiA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8VD4gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKKy8vLyBzcGVjaWFsaXphdGlvbnMgZm9yIHRoZSBtYWluICdiaW5kJyBmb3JtCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Nj4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICAsIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICAsIHR5cGVuYW1lIEFyaXR5CisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSxBcml0eSA+CisgICAgICAgICwgVGFnMgorICAgICAgICAsIGludF88Mz4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBGLFRhZzIgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVGFnMSxUYWcyID4gbDI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMTwgcXVvdGUxPGF1eDo6dGVtcGxhdGVfYXJpdHk+LCB0eXBlbmFtZSBsMTo6cmVzdWx0XyA+IGFyaXR5XzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgaWZfPCBpc19sZSxhcml0eV8sQXJpdHkgPjo6dHlwZSwgVGFnMiA+IGwzOworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPGlzX2xlLCBUYWcyLCBtcGw6OmxhbWJkYSwgbDEsIGwyLCBsMz4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMywgbGFtYmRhKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2dyZWF0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9ncmVhdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmQxYzFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9ncmVhdGVyLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiZ3JlYXRlci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyCisKKyAgICA6IGdyZWF0ZXJfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXIpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2dyZWF0ZXJfZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9ncmVhdGVyX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWYxNjVlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9ncmVhdGVyX2VxdWFsLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiZ3JlYXRlcl9lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsCisKKyAgICA6IGdyZWF0ZXJfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXJfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXJfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPj0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaW5oZXJpdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYyMWNkOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaW5oZXJpdC5ocHAKQEAgLTAsMCArMSwxMzkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJpbmhlcml0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgID4KK3N0cnVjdCBpbmhlcml0MgorICAgIDogVDEsIFQyCit7CisgICAgdHlwZWRlZiBpbmhlcml0MiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgaW5oZXJpdDIsIChUMSwgVDIpKQorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxID4KK3N0cnVjdCBpbmhlcml0MjwgVDEsZW1wdHlfYmFzZSA+Cit7CisgICAgdHlwZWRlZiBUMSB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKFQxLCBlbXB0eV9iYXNlKSkKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMiA+CitzdHJ1Y3QgaW5oZXJpdDI8IGVtcHR5X2Jhc2UsVDIgPgoreworICAgIHR5cGVkZWYgVDIgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChlbXB0eV9iYXNlLCBUMikpCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDI8IGVtcHR5X2Jhc2UsZW1wdHlfYmFzZSA+Cit7CisgICAgdHlwZWRlZiBlbXB0eV9iYXNlIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoZW1wdHlfYmFzZSwgZW1wdHlfYmFzZSkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgaW5oZXJpdDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0MworICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDI8CisgICAgICAgICAgICAgIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBpbmhlcml0MworICAgICAgICAsICggVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGluaGVyaXQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDQKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQzPAorICAgICAgICAgICAgICBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNAorICAgICAgICAsIGluaGVyaXQ0CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDQsIGluaGVyaXQ0KQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ1ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDUKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQ0PAorICAgICAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBpbmhlcml0NQorICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNSwgaW5oZXJpdDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdAorICAgIDogaW5oZXJpdDU8IFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0PCBuYSxuYSxuYSxuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8CisKKyAgICAgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKworICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgICAgIDogaW5oZXJpdDwgVDEsVDIsVDMsVDQsVDUgPgorICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0xBTUJEQSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfVEVNUExBVEVfQVJJVFkoNSwgNSwgaW5oZXJpdCkKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU1M2VmZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTMzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiaXRlcl9mb2xkX2lmX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIFN0YXRlID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgU3RhdGVPcCxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yT3A6OnR5cGUgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEZvcndhcmRPcCwgbXBsOjpuZXh0PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEJhY2t3YXJkT3AsIGlkZW50aXR5PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkUHJlZGljYXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfaW1wbAoreworIHByaXZhdGU6CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPCBJdGVyYXRvcixTdGF0ZSA+IGZvcndhcmRfc3RlcDA7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0Ojpub3RfbGFzdAorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEJhY2t3YXJkUHJlZGljYXRlCisgICAgICAgICAgICA+CisgICAgICAgICwgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZSBiYWNrd2FyZF9zdGVwNDsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAzOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDI6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMTo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDA7CisgICAgCisKKyBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMDo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NWRhNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAiaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMSBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMyxpdGVyMyA+Ojp0eXBlIHN0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlNCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186OnN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gcmVzXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGFtYmRhX25vX2N0cHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sYW1iZGFfbm9fY3Rwcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEzNDc1ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGFtYmRhX25vX2N0cHMuaHBwCkBAIC0wLDAgKzEsMjI5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAibGFtYmRhX25vX2N0cHMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEFyaXR5ID4gc3RydWN0IGxhbWJkYV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgdHlwZWRlZiBpc19wbGFjZWhvbGRlcjxUPiBpc19sZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNSwgVGFnLCBmYWxzZV8gPiBsNTsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU1KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUsIHR5cGVuYW1lIGw1Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICAsIHR5cGVuYW1lIFByb3RlY3QKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgLy8vIE1ldGFmdW5jdGlvbiBmb3J3YXJkaW5nIGNvbmZ1c2VzIE1TVkMgNi54CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnRlbXBsYXRlX2FyaXR5PFQ+Ojp0eXBlIGFyaXR5XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX2ltcGw8YXJpdHlfPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVGFnLFByb3RlY3QgPiBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OnR5cGUgdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjppc19sZSBpc19sZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsIGxhbWJkYSwgKFQsIFRhZywgUHJvdGVjdCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDEsIDMsIGxhbWJkYSkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmVlMWU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sZXNzLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAibGVzcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxlc3NfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzCisKKyAgICA6IGxlc3NfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBsZXNzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBsZXNzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGxlc3MsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3MpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgPiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2xlc3NfZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDA4MDc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9sZXNzX2VxdWFsLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAibGVzc19lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxlc3NfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsCisKKyAgICA6IGxlc3NfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBsZXNzX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBsZXNzX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGxlc3NfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3NfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPD0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9saXN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlZGJjYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGlzdC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJsaXN0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGxpc3Q7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QwPCAgPgoreworICAgIHR5cGVkZWYgbGlzdDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IGxpc3QKKyAgICA6IGxpc3QyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2xpc3RfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL2xpc3RfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFiYjM2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbGlzdF9jLmhwcApAQCAtMCwwICsxLDMyOCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gImxpc3RfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDFfYzwgVCxDMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MV9jPCBULEMwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDJfYzwgVCxDMCxDMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Ml9jPCBULEMwLEMxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDNfYzwgVCxDMCxDMSxDMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0M19jPCBULEMwLEMxLEMyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDRfYzwgVCxDMCxDMSxDMixDMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NF9jPCBULEMwLEMxLEMyLEMzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTVfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE2X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxN19jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxOF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE5X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3QgbGlzdF9jCisgICAgOiBsaXN0MjBfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9tYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9tYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2Zjg5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL21hcC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJtYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWFwOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDA8ICA+Cit7CisgICAgdHlwZWRlZiBtYXAwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBtYXAxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBtYXAKKyAgICA6IG1hcDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9taW51cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL21pbnVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTM5ZDBkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9taW51cy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJtaW51cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG1pbnVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBtaW51c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbWludXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbWludXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtaW51c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWludXMKKyAgICA6IG1pbnVzPCBtaW51czwgbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogbWludXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBtaW51c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbWludXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBtaW51cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWludXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbW9kdWx1cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU1MDlmMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbW9kdWx1cy5ocHAKQEAgLTAsMCArMSwxMDEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJtb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1vZHVsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1vZHVsdXMKKworICAgIDogbW9kdWx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbW9kdWx1cywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbW9kdWx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL25vdF9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE0ZTUzNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvbm90X2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAibm90X2VxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBub3RfZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG5vdF9lcXVhbF90b190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvCisKKyAgICA6IG5vdF9lcXVhbF90b19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG5vdF9lcXVhbF90b190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIG5vdF9lcXVhbF90bywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbm90X2VxdWFsX3RvKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgIT0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9vci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDI3ZDA4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9vci5ocHAKQEAgLTAsMCArMSw2OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gIm9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQ18sIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBvcl9pbXBsCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBvcl9pbXBsPCBmYWxzZSxUMSxUMixUMyxUNCA+CisgICAgOiBvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNAorICAgICAgICAsIGZhbHNlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgb3JfaW1wbDwKKyAgICAgICAgICBmYWxzZQorICAgICAgICAsIGZhbHNlXywgZmFsc2VfLCBmYWxzZV8sIGZhbHNlXworICAgICAgICA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSBmYWxzZV8sIHR5cGVuYW1lIFQ0ID0gZmFsc2VfLCB0eXBlbmFtZSBUNSA9IGZhbHNlXworICAgID4KK3N0cnVjdCBvcl8KKworICAgIDogYXV4Ojpvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgb3JfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBvcl8KKyAgICApCisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3BsYWNlaG9sZGVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMwZTQwZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcGxhY2Vob2xkZXJzLmhwcApAQCAtMCwwICsxLDEwNSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxLTIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInBsYWNlaG9sZGVycy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwgLTEgPiBfOworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8pCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol87Cit9CisKK319CisKKy8vLyBhZ3VydCwgMTcvbWFyLzAyOiBvbmUgbW9yZSBwbGFjZWhvbGRlciBmb3IgdGhlIGxhc3QgJ2FwcGx5IycgCisvLy8gc3BlY2lhbGl6YXRpb24KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDE+IF8xOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzEpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8xOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mj4gXzI7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzI7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwzPiBfMzsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8zKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMzsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDQ+IF80OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzQpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol80OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8NT4gXzU7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzU7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw2PiBfNjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF82KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNjsKK30KKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcGx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3BsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YzA0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3BsdXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAicGx1cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHBsdXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHBsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHBsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHBsdXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHBsdXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBwbHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBwbHVzCisgICAgOiBwbHVzPCBwbHVzPCBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IHBsdXM8IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IHBsdXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBwbHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBwbHVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBwbHVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBwbHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICArIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcXVvdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9xdW90ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y5ZDE4YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcXVvdGUuaHBwCkBAIC0wLDAgKzEsMTEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA4CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJxdW90ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YTQzOGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3JldmVyc2VfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI5NSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInJldmVyc2VfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms7CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUwIGJrd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTIgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUzIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGU0IGJrd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTQsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiByZXZlcnNlX2ZvbGRfaW1wbDwKKyAgICAgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICAgICAsIGl0ZXI0CisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgZndkX3N0YXRlNAorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIGJrd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTQsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX3N0ZXA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwgLTEgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICB0eXBlbmFtZSBpc19zYW1lPCBGaXJzdCxMYXN0ID46OnR5cGUKKyAgICAgICAgICAgICwgcmV2ZXJzZV9mb2xkX251bGxfc3RlcDwgTGFzdCxTdGF0ZSA+CisgICAgICAgICAgICAsIHJldmVyc2VfZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KKyAgICAgICAgICAgID46OnR5cGUgcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9zdGVwCit7CisgICAgdHlwZWRlZiByZXZlcnNlX2ZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9zdGVwOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8CisgICAgICAgICAgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjpzdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZQorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGwKKyAgICA6IHJldmVyc2VfZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Yzk4MDljCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI5NSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInJldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms7CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTIgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTMsaXRlcjMgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgaXRlcjQKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGU0LGl0ZXIzID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8IEZpcnN0LExhc3QgPjo6dHlwZQorICAgICAgICAgICAgLCByZXZlcnNlX2l0ZXJfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KKyAgICAgICAgICAgID46OnR5cGUgcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCBGaXJzdAorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbAorICAgIDogcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zZXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViYzQ0ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NldC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJzZXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3Qgc2V0OworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDA8ICA+Cit7CisgICAgdHlwZWRlZiBzZXQwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBzZXQxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBzZXQKKyAgICA6IHNldDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zZXRfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NldF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzI0OWI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zZXRfYy5ocHAKQEAgLTAsMCArMSwzMjggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJzZXRfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDFfYzwgVCxDMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxX2M8IFQsQzAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDJfYzwgVCxDMCxDMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyX2M8IFQsQzAsQzEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDNfYzwgVCxDMCxDMSxDMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzX2M8IFQsQzAsQzEsQzIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDRfYzwgVCxDMCxDMSxDMixDMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0X2M8IFQsQzAsQzEsQzIsQzMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTVfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTVfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE2X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxN19jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxOF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MThfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE5X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBzZXRfYworICAgIDogc2V0MjBfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NoaWZ0X2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zaGlmdF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWFjZmRkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC9zaGlmdF9sZWZ0LmhwcApAQCAtMCwwICsxLDk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAic2hpZnRfbGVmdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X2xlZnRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHNoaWZ0X2xlZnRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBzaGlmdF9sZWZ0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0CisKKyAgICA6IHNoaWZ0X2xlZnRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHNoaWZ0X2xlZnQsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIHNoaWZ0X2xlZnQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPDwgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NoaWZ0X3JpZ2h0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvc2hpZnRfcmlnaHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NmIyNDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3NoaWZ0X3JpZ2h0LmhwcApAQCAtMCwwICsxLDk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAic2hpZnRfcmlnaHQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgc2hpZnRfcmlnaHRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHNoaWZ0X3JpZ2h0CisKKyAgICA6IHNoaWZ0X3JpZ2h0X2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgc2hpZnRfcmlnaHRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHNoaWZ0X3JpZ2h0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9yaWdodCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPj4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3RlbXBsYXRlX2FyaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdGVtcGxhdGVfYXJpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkOWYwZjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3RlbXBsYXRlX2FyaXR5LmhwcApAQCAtMCwwICsxLDQwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAidGVtcGxhdGVfYXJpdHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHlfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBtcGw6OmludF88IC0xID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsPHRydWU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IEY6OmFyaXR5CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHkKKyAgICA6IHRlbXBsYXRlX2FyaXR5X2ltcGw8IDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfcmViaW5kPEY+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxGPgoreworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdGltZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC90aW1lcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU2MTk3MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdGltZXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gKlByZXByb2Nlc3NlZCogdmVyc2lvbiBvZiB0aGUgbWFpbiAidGltZXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCB0aW1lc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgdGltZXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHRpbWVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgdGltZXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgdGltZXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHRpbWVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgdGltZXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHRpbWVzCisgICAgOiB0aW1lczwgdGltZXM8IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IHRpbWVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgdGltZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHRpbWVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgdGltZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHRpbWVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAqIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdW5wYWNrX2FyZ3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvYmNjX3ByZTU5MC91bnBhY2tfYXJncy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkyNGYyYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdW5wYWNrX2FyZ3MuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyAqUHJlcHJvY2Vzc2VkKiB2ZXJzaW9uIG9mIHRoZSBtYWluICJ1bnBhY2tfYXJncy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBpbnQgc2l6ZSwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDAsRixBcmdzID4KKyAgICA6IGFwcGx5MDwKKyAgICAgICAgICBGCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAxLEYsQXJncyA+CisgICAgOiBhcHBseTE8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAyLEYsQXJncyA+CisgICAgOiBhcHBseTI8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMyxGLEFyZ3MgPgorICAgIDogYXBwbHkzPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgNCxGLEFyZ3MgPgorICAgIDogYXBwbHk0PAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDUsRixBcmdzID4KKyAgICA6IGFwcGx5NTwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMyA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncyw0ID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKworfQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3MKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnVucGFja19hcmdzX2ltcGw8CisgICAgICAgICAgICAgIHNpemU8QXJncz46OnZhbHVlCisgICAgICAgICAgICAsIEYKKyAgICAgICAgICAgICwgQXJncworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfUEFTU19USFJPVUdIX0xBTUJEQV9TUEVDKDEsIHVucGFja19hcmdzKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTlhYjg2MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdmVjdG9yLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInZlY3Rvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3I7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3RvcgorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3ZlY3Rvcl9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2JjY19wcmU1OTAvdmVjdG9yX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwN2JmZDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9iY2NfcHJlNTkwL3ZlY3Rvcl9jLmhwcApAQCAtMCwwICsxLDMwOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDgKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInZlY3Rvcl9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMV9jPCBULCBUKEMwKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxX2M8IFQsIFQoQzApID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IyX2M8IFQsIFQoQzApLCBUKEMxKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyX2M8IFQsIFQoQzApLCBUKEMxKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCkgPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYworICAgIDogdmVjdG9yMjBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCksIFQoQzE5KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hZHZhbmNlX2JhY2t3YXJkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hZHZhbmNlX2JhY2t3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTBjODI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FkdmFuY2VfYmFja3dhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9iYWNrd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2JhY2t3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FkdmFuY2VfZm9yd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYWR2YW5jZV9mb3J3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2E1YWZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FkdmFuY2VfZm9yd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2ZvcndhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfZm9yd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGI4OGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FuZC5ocHAKQEAgLTAsMCArMSw2OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQ18sIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbAorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IGFuZF9pbXBsPCB0cnVlLFQxLFQyLFQzLFQ0ID4KKyAgICA6IGFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNAorICAgICAgICAsIHRydWVfCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhbmRfaW1wbDwKKyAgICAgICAgICB0cnVlCisgICAgICAgICwgdHJ1ZV8sIHRydWVfLCB0cnVlXywgdHJ1ZV8KKyAgICAgICAgPgorICAgIDogdHJ1ZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSB0cnVlXywgdHlwZW5hbWUgVDQgPSB0cnVlXywgdHlwZW5hbWUgVDUgPSB0cnVlXworICAgID4KK3N0cnVjdCBhbmRfCisKKyAgICA6IGF1eDo6YW5kX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBhbmRfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBhbmRfCisgICAgKQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FwcGx5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRiMWNkMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseS5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHkwCisKKyAgICA6IGFwcGx5X3dyYXAwPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgIAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAxCisgICAgICAgICwgYXBwbHkwCisgICAgICAgICwgKEYgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsbmEsbmEsbmEsbmEsbmEgPgorICAgIDogYXBwbHkwPEY+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5MQorCisgICAgOiBhcHBseV93cmFwMTwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAyCisgICAgICAgICwgYXBwbHkxCisgICAgICAgICwgKEYsIFQxKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLG5hLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTIKKworICAgIDogYXBwbHlfd3JhcDI8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBhcHBseTIKKyAgICAgICAgLCAoRiwgVDEsIFQyKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixuYSxuYSxuYSA+CisgICAgOiBhcHBseTI8IEYsVDEsVDIgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MworCisgICAgOiBhcHBseV93cmFwMzwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDQKKyAgICAgICAgLCBhcHBseTMKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLFQyLFQzLG5hLG5hID4KKyAgICA6IGFwcGx5MzwgRixUMSxUMixUMyA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5NAorCisgICAgOiBhcHBseV93cmFwNDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYXBwbHk0CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGFwcGx5NDwgRixUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTUKKworICAgIDogYXBwbHlfd3JhcDU8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDYKKyAgICAgICAgLCBhcHBseTUKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseQorICAgIDogYXBwbHk1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FwcGx5X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNjYzk0ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseV9md2QuaHBwCkBAIC0wLDAgKzEsNTIgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5X2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGFwcGx5OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHkwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5MTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHkzOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5NDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYXBwbHlfd3JhcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYXBwbHlfd3JhcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM5MDIwMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcHBseV93cmFwLmhwcApAQCAtMCwwICsxLDg0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKworICAgICwgdHlwZW5hbWUgaGFzX2FwcGx5XyA9IHR5cGVuYW1lIGF1eDo6aGFzX2FwcGx5PEY+Ojp0eXBlCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDAKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8ICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgYXBwbHlfd3JhcDA8IEYsdHJ1ZV8gPgorICAgIDogRjo6YXBwbHkKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMQorCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTxUMT4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDIKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8IFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAzCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDQKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8IFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDUKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8IFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcmcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2FyZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWExNTdjMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9hcmcuaHBwCkBAIC0wLDAgKzEsMTIzIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxLTIwMDIKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcmcuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPCAtMSA+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gLTEpOworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwxPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDEpOworICAgIHR5cGVkZWYgYXJnPDI+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUxIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDI+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMik7CisgICAgdHlwZWRlZiBhcmc8Mz4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTIgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8Mz4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAzKTsKKyAgICB0eXBlZGVmIGFyZzw0PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMyB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw0PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDQpOworICAgIHR5cGVkZWYgYXJnPDU+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU0IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDU+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gNSk7CisgICAgdHlwZWRlZiBhcmc8Nj4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTUgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX05PTlRZUEVfQVJJVFlfU1BFQygxLGludCwgYXJnKQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2Jhc2ljX2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2Jhc2ljX2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4OTU4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYmFzaWNfYmluZC5ocHAKQEAgLTAsMCArMSw0MDYgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2Jhc2ljX2JpbmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnCit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwgYXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8bXBsOjphcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNT46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUgPgoreworICAgIHR5cGVkZWYgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDAKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyCisgICAgLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMjwgRixUMSxUMiA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMjwgRixUMSxUMiA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMywgYmluZDIpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMywgYmluZDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsbmEsbmEsbmEgPgorICAgIDogYmluZDI8IEYsVDEsVDIgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBVMQorICAgICwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPCBGLFQxLFQyLFQzID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYmluZDM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDYsIGJpbmQ1KQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDYsIGJpbmQ1KQorCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kCisgICAgOiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCisvLy8gaWZfL2V2YWxfaWYgc3BlY2lhbGl6YXRpb25zCit0ZW1wbGF0ZTwgdGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMgPiBjbGFzcyBGLCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IHF1b3RlMzsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMgPiBzdHJ1Y3QgaWZfOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMzwKKyAgICAgIHF1b3RlMzwgaWZfLFRhZyA+CisgICAgLCBUMSwgVDIsIFQzCisgICAgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgbXBsOjphcmc8MT4gbjE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgLCB0MiwgdDMKKyAgICAgICAgICAgID46OnR5cGUgZl87CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGRiMzUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpbmQuaHBwCkBAIC0wLDAgKzEsNTE1IEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgQXJnCisgICAgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmcKK3sKKyAgICB0eXBlZGVmIEFyZyBuZXh0OworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZzwgYXJnPCAtMSA+LCBBcmcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgQXJnOjpuZXh0IG5leHQ7CisgICAgdHlwZWRlZiBBcmcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixuYSxuYSxuYSA+CisgICAgOiBiaW5kMjwgRixUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIGludCBkdW1teV8KKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBVMQorICAgICwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPCBGLFQxLFQyLFQzID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYmluZDM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgaW50IGR1bW15XworICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ1LG41ID4gcjU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6OnR5cGUgYTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6Om5leHQgbjY7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCBpbnQgZHVtbXlfCisgICAgPgorc3RydWN0IGJpbmQKKyAgICA6IGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKKy8vLyBpZl8vZXZhbF9pZiBzcGVjaWFsaXphdGlvbnMKK3RlbXBsYXRlPCB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgcXVvdGUzOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IHN0cnVjdCBpZl87CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBpZl8sVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICAsIHQyLCB0MworICAgICAgICAgICAgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZl86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpbmRfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaW5kX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJlZWViOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaW5kX2Z3ZC5ocHAKQEAgLTAsMCArMSw1MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZF9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgaW50IGR1bW15XyA9IDAKKyAgICA+CitzdHJ1Y3QgYmluZDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCBpbnQgZHVtbXlfID0gMAorICAgID4KK3N0cnVjdCBiaW5kMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgaW50IGR1bW15XyA9IDAKKyAgICA+CitzdHJ1Y3QgYmluZDE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCBpbnQgZHVtbXlfID0gMAorICAgID4KK3N0cnVjdCBiaW5kMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCBpbnQgZHVtbXlfID0gMAorICAgID4KK3N0cnVjdCBiaW5kMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgaW50IGR1bW15XyA9IDAKKyAgICA+CitzdHJ1Y3QgYmluZDQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCBpbnQgZHVtbXlfID0gMAorICAgID4KK3N0cnVjdCBiaW5kNTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGU4NTkzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpdGFuZC5ocHAKQEAgLTAsMCArMSwxNDcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdGFuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGJpdGFuZF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRhbmRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRhbmRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXRhbmRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdGFuZF8KKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0YW5kX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0YW5kX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRhbmRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdGFuZF8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvYml0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzFhOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpdG9yLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRvcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0b3JfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdG9yXworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXRvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICB8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaXR4b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdmMGNlNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9iaXR4b3IuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXR4b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXR4b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0eG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0eG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0eG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXR4b3JfCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IGJpdHhvcl88IGJpdHhvcl88IGJpdHhvcl88IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IGJpdHhvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdHhvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0eG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXR4b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXR4b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIF4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2RlcXVlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9kZXF1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzMWY2NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9kZXF1ZS5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2RlcXVlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgZGVxdWUKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2RpdmlkZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2RpdmlkZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNTQxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZGl2aWRlcy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2RpdmlkZXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBkaXZpZGVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZGl2aWRlc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGl2aWRlcworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBkaXZpZGVzPCBkaXZpZGVzPCBkaXZpZGVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBkaXZpZGVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZGl2aWRlc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZGl2aWRlc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgZGl2aWRlcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGl2aWRlc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgLyBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDAyZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9lcXVhbF90by5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGVxdWFsX3RvX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBlcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBlcXVhbF90b190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG8KKworICAgIDogZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBlcXVhbF90b190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGVxdWFsX3RvKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAgPT0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTRjZDQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwxODAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBzdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IHJlc187CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgIDogZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZnVsbF9sYW1iZGEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDA5YzEwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2Z1bGxfbGFtYmRhLmhwcApAQCAtMCwwICsxLDUzNiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9mdWxsX2xhbWJkYS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgIAorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIFQgcmVzdWx0XzsKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKwordGVtcGxhdGU8IGludCBOLCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGxhbWJkYTwgYXJnPE4+LCBUYWcgPgoreworICAgIHR5cGVkZWYgdHJ1ZV8gaXNfbGU7CisgICAgdHlwZWRlZiBtcGw6OmFyZzxOPiByZXN1bHRfOyAvLyBxdWFsaWZpZWQgZm9yIHRoZSBzYWtlIG9mIE1JUFNwcm8gNy40MQorICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDA8Rj4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDA8CisgICAgICAgICAgRgorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQxPCB0cnVlXyxUYWcsRixMMSA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICBxdW90ZTE8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjxUMT4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MTwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMQorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDE8IEYsVDEgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MgoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMgorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQyPCB0cnVlXyxUYWcsRixMMSxMMiA+Cit7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBxdW90ZTI8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MjwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMjwgRixUMSxUMiA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDM8IHRydWVfLFRhZyxGLEwxLEwyLEwzID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgIHF1b3RlMzwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDM8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMworICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMzwgRixUMSxUMixUMyA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNAorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ0Cit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNAorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ0PCB0cnVlXyxUYWcsRixMMSxMMixMMyxMNCA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBxdW90ZTQ8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyLFQzLFQ0ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIHR5cGVkZWYgbGFtYmRhPCBUNCxUYWcgPiBsNDsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUsIGlzX2xlNDo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQ0PAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMsIGw0CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0LCB0eXBlbmFtZSBMNQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ1Cit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6dHlwZSwgdHlwZW5hbWUgTDU6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0LCB0eXBlbmFtZSBMNQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ1PCB0cnVlXyxUYWcsRixMMSxMMixMMyxMNCxMNSA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBxdW90ZTU8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnJlc3VsdF8sIHR5cGVuYW1lIEw1OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAsIHR5cGVuYW1lIFA1CisgICAgICAgID4KKyAgICAgIGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ1LFRhZyA+IGw1OworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw1Ojppc19sZSBpc19sZTU7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUsIGlzX2xlNDo6dmFsdWUKKyAgICAgICAgLCBpc19sZTU6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NTwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNCwgbDUKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisvLy8gc3BlY2lhbCBjYXNlIGZvciAncHJvdGVjdCcKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGxhbWJkYTwgbXBsOjpwcm90ZWN0PFQ+LCBUYWcgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PFQ+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisvLy8gc3BlY2lhbGl6YXRpb25zIGZvciB0aGUgbWFpbiAnYmluZCcgZm9ybQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgbGFtYmRhKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZ3JlYXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvZ3JlYXRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1ZmEzYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9ncmVhdGVyLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGdyZWF0ZXJfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXIKKworICAgIDogZ3JlYXRlcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlciwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcikKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9ncmVhdGVyX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODlhNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2dyZWF0ZXJfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2dyZWF0ZXJfZXF1YWwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbAorCisgICAgOiBncmVhdGVyX2VxdWFsX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZ3JlYXRlcl9lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl9lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBncmVhdGVyX2VxdWFsLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyX2VxdWFsKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID49IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pbmhlcml0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWYzODdmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2luaGVyaXQuaHBwCkBAIC0wLDAgKzEsMTQxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9pbmhlcml0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgID4KK3N0cnVjdCBpbmhlcml0MgorICAgIDogVDEsIFQyCit7CisgICAgdHlwZWRlZiBpbmhlcml0MiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgaW5oZXJpdDIsIChUMSwgVDIpKQorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxID4KK3N0cnVjdCBpbmhlcml0MjwgVDEsZW1wdHlfYmFzZSA+Cit7CisgICAgdHlwZWRlZiBUMSB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKFQxLCBlbXB0eV9iYXNlKSkKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMiA+CitzdHJ1Y3QgaW5oZXJpdDI8IGVtcHR5X2Jhc2UsVDIgPgoreworICAgIHR5cGVkZWYgVDIgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChlbXB0eV9iYXNlLCBUMikpCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDI8IGVtcHR5X2Jhc2UsZW1wdHlfYmFzZSA+Cit7CisgICAgdHlwZWRlZiBlbXB0eV9iYXNlIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoZW1wdHlfYmFzZSwgZW1wdHlfYmFzZSkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgaW5oZXJpdDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0MworICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDI8CisgICAgICAgICAgICAgIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBpbmhlcml0MworICAgICAgICAsICggVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGluaGVyaXQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDQKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQzPAorICAgICAgICAgICAgICBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNAorICAgICAgICAsIGluaGVyaXQ0CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDQsIGluaGVyaXQ0KQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ1ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDUKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQ0PAorICAgICAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBpbmhlcml0NQorICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNSwgaW5oZXJpdDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdAorICAgIDogaW5oZXJpdDU8IFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0PCBuYSxuYSxuYSxuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8CisKKyAgICAgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgICAgICwgdHlwZW5hbWUgVDUgPSBlbXB0eV9iYXNlCisKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgICAgICA6IGluaGVyaXQ8IFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICB7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX1RFTVBMQVRFX0FSSVRZKDUsIDUsIGluaGVyaXQpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGEyODY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApAQCAtMCwwICsxLDEzMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAxLTIwMDIKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgU3RhdGUgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBTdGF0ZU9wLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JPcDo6dHlwZSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsRm9yd2FyZE9wLCBtcGw6Om5leHQ8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsQmFja3dhcmRPcCwgaWRlbnRpdHk8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRQcmVkaWNhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9pbXBsCit7CisgcHJpdmF0ZToKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8IEl0ZXJhdG9yLFN0YXRlID4gZm9yd2FyZF9zdGVwMDsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwNDsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Om5vdF9sYXN0CisgICAgICAgICwgaXRlcl9mb2xkX2lmX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkUHJlZGljYXRlCisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgQmFja3dhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlIGJhY2t3YXJkX3N0ZXA0OworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDM6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMjo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAxOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMDsKKyAgICAKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAwOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MwOGIzMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwxODAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMSBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMyxpdGVyMyA+Ojp0eXBlIHN0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlNCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGaXJzdAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186OnN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gcmVzXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGFtYmRhX25vX2N0cHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZmM2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGFtYmRhX25vX2N0cHMuaHBwCkBAIC0wLDAgKzEsMjI5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9ub19jdHBzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICBib29sIEMxID0gZmFsc2UsIGJvb2wgQzIgPSBmYWxzZSwgYm9vbCBDMyA9IGZhbHNlLCBib29sIEM0ID0gZmFsc2UKKyAgICAsIGJvb2wgQzUgPSBmYWxzZQorICAgID4KK3N0cnVjdCBsYW1iZGFfb3IKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGFtYmRhX29yPCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBBcml0eSA+IHN0cnVjdCBsYW1iZGFfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgIHR5cGVkZWYgaXNfcGxhY2Vob2xkZXI8VD4gaXNfbGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGw0Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzUsIFRhZywgZmFsc2VfID4gbDU7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDU6OmlzX2xlIGlzX2xlNTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNSk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGw0Ojp0eXBlLCB0eXBlbmFtZSBsNTo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgLCB0eXBlbmFtZSBQcm90ZWN0CisgICAgPgorc3RydWN0IGxhbWJkYQoreworICAgIC8vLyBNZXRhZnVuY3Rpb24gZm9yd2FyZGluZyBjb25mdXNlcyBNU1ZDIDYueAorICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp0ZW1wbGF0ZV9hcml0eTxUPjo6dHlwZSBhcml0eV87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9pbXBsPGFyaXR5Xz4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULFRhZyxQcm90ZWN0ID4gbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjp0eXBlIHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6aXNfbGUgaXNfbGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLCBsYW1iZGEsIChULCBUYWcsIFByb3RlY3QpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigxLCAzLCBsYW1iZGEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xlc3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMzliNzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGVzcy5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGVzcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxlc3NfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzCisKKyAgICA6IGxlc3NfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBsZXNzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBsZXNzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGxlc3MsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3MpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgPiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGVzc19lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGVzc19lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdjMzQ5MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9sZXNzX2VxdWFsLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19lcXVhbF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19lcXVhbF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfZXF1YWxfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3NfZXF1YWwKKworICAgIDogbGVzc19lcXVhbF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzc19lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzc19lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA8PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNjOGM0NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9saXN0LmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBsaXN0OworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MDwgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBsaXN0CisgICAgOiBsaXN0MjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xpc3RfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbGlzdF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDNmMzhmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL2xpc3RfYy5ocHAKQEAgLTAsMCArMSwzMjggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3RfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDFfYzwgVCxDMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MV9jPCBULEMwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDJfYzwgVCxDMCxDMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Ml9jPCBULEMwLEMxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDNfYzwgVCxDMCxDMSxDMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0M19jPCBULEMwLEMxLEMyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDRfYzwgVCxDMCxDMSxDMixDMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NF9jPCBULEMwLEMxLEMyLEMzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTVfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE2X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxN19jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxOF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE5X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3QgbGlzdF9jCisgICAgOiBsaXN0MjBfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL21hcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbWFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTc0ZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL21hcC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21hcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBtYXA7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMDwgID4KK3sKKyAgICB0eXBlZGVmIG1hcDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IG1hcAorICAgIDogbWFwMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL21pbnVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTZiNTkyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL21pbnVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbWludXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBtaW51c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbWludXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1pbnVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1pbnVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbWludXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IG1pbnVzCisgICAgOiBtaW51czwgbWludXM8IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IG1pbnVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IG1pbnVzPCBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IG1pbnVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IG1pbnVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbWludXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1pbnVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgbWludXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IG1pbnVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAtIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWM2MTcyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL21vZHVsdXMuaHBwCkBAIC0wLDAgKzEsMTAxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1vZHVsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1vZHVsdXMKKworICAgIDogbW9kdWx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbW9kdWx1cywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbW9kdWx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbm90X2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9ub3RfZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyOGUxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvbm90X2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ub3RfZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG8KKworICAgIDogbm90X2VxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbm90X2VxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBub3RfZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAhPSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTI5NjAyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL29yLmhwcApAQCAtMCwwICsxLDY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9vci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3Qgb3JfaW1wbAorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3Qgb3JfaW1wbDwgZmFsc2UsVDEsVDIsVDMsVDQgPgorICAgIDogb3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCBmYWxzZV8KKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IG9yX2ltcGw8CisgICAgICAgICAgZmFsc2UKKyAgICAgICAgLCBmYWxzZV8sIGZhbHNlXywgZmFsc2VfLCBmYWxzZV8KKyAgICAgICAgPgorICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gZmFsc2VfLCB0eXBlbmFtZSBUNCA9IGZhbHNlXywgdHlwZW5hbWUgVDUgPSBmYWxzZV8KKyAgICA+CitzdHJ1Y3Qgb3JfCisKKyAgICA6IGF1eDo6b3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG9yXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgb3JfCisgICAgKQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvcGxhY2Vob2xkZXJzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Q0NTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3BsYWNlaG9sZGVycy5ocHAKQEAgLTAsMCArMSwxMDUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3BsYWNlaG9sZGVycy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwgLTEgPiBfOworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8pCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol87Cit9CisKK319CisKKy8vLyBhZ3VydCwgMTcvbWFyLzAyOiBvbmUgbW9yZSBwbGFjZWhvbGRlciBmb3IgdGhlIGxhc3QgJ2FwcGx5IycgCisvLy8gc3BlY2lhbGl6YXRpb24KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDE+IF8xOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzEpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8xOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mj4gXzI7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzI7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwzPiBfMzsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8zKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMzsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDQ+IF80OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzQpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol80OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8NT4gXzU7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzU7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw2PiBfNjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF82KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNjsKK30KKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9wbHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9wbHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTAzZTNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3BsdXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9wbHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgcGx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgcGx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgcGx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHBsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcGx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcGx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHBsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHBsdXMKKyAgICA6IHBsdXM8IHBsdXM8IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogcGx1czwgcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogcGx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHBsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHBsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHBsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHBsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICsgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3F1b3RlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9xdW90ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlNzllZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9xdW90ZS5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3F1b3RlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgYm9vbCBoYXNfdHlwZV8gPgorc3RydWN0IHF1b3RlX2ltcGwKKyAgICA6IFQKK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBxdW90ZV9pbXBsPCBULGZhbHNlID4KK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUxCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPFUxPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPFUxPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTIKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMiA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlMworeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyxVNCA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzLFU0ID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAsIHR5cGVuYW1lIFA1CisgICAgICAgID4KKyAgICAgIGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgICAgICwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgVTEsVTIsVTMsVTQsVTUgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMixVMyxVNCxVNSA+ID46OnZhbHVlCisgICAgICAgICAgICA+CisKKyAgICB7CisgICAgfTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkM2FkNzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjMxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUzIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTQsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIGl0ZXI0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIGJrd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZT46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlCisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYmY1MDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyMzEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBmd2Rfc3RhdGUwIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgaXRlcjQKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgZndkX3N0YXRlNAorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgRmlyc3QKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3NldC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM0Y2ExMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXQuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zZXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3Qgc2V0OworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDA8ICA+Cit7CisgICAgdHlwZWRlZiBzZXQwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBzZXQxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBzZXQKKyAgICA6IHNldDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3NldF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXRfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVmMmZkZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zZXRfYy5ocHAKQEAgLTAsMCArMSwzMjggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NldF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBzZXRfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MV9jPCBULEMwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDFfYzwgVCxDMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0Ml9jPCBULEMwLEMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDJfYzwgVCxDMCxDMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0M19jPCBULEMwLEMxLEMyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDNfYzwgVCxDMCxDMSxDMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0NF9jPCBULEMwLEMxLEMyLEMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDRfYzwgVCxDMCxDMSxDMixDMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTZfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE3X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE4X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTlfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHNldF9jCisgICAgOiBzZXQyMF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zaGlmdF9sZWZ0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zaGlmdF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGRmMjljCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3NoaWZ0X2xlZnQuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NoaWZ0X2xlZnQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdAorCisgICAgOiBzaGlmdF9sZWZ0X2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgc2hpZnRfbGVmdF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfbGVmdF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9sZWZ0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9sZWZ0KQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTiwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIDw8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChTKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3NoaWZ0X3JpZ2h0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zaGlmdF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTcyNmZmMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy9zaGlmdF9yaWdodC5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2hpZnRfcmlnaHQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgc2hpZnRfcmlnaHRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHNoaWZ0X3JpZ2h0CisKKyAgICA6IHNoaWZ0X3JpZ2h0X2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgc2hpZnRfcmlnaHRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHNoaWZ0X3JpZ2h0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9yaWdodCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPj4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdGVtcGxhdGVfYXJpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3RlbXBsYXRlX2FyaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2I0MmFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3RlbXBsYXRlX2FyaXR5LmhwcApAQCAtMCwwICsxLDExIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdGltZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NTE0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdGltZXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC90aW1lcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHRpbWVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCB0aW1lc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgdGltZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgdGltZXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0aW1lc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgdGltZXMKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogdGltZXM8IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogdGltZXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSB0aW1lc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgdGltZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCB0aW1lcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGltZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICogQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZG1jL3VucGFja19hcmdzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy91bnBhY2tfYXJncy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM5MjA0ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy91bnBhY2tfYXJncy5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdW5wYWNrX2FyZ3MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgaW50IHNpemUsIHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAwLEYsQXJncyA+CisgICAgOiBhcHBseTA8CisgICAgICAgICAgRgorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMSxGLEFyZ3MgPgorICAgIDogYXBwbHkxPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMixGLEFyZ3MgPgorICAgIDogYXBwbHkyPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDMsRixBcmdzID4KKyAgICA6IGFwcGx5MzwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDQsRixBcmdzID4KKyAgICA6IGFwcGx5NDwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMyA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCA1LEYsQXJncyA+CisgICAgOiBhcHBseTU8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsNCA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IHVucGFja19hcmdzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGF1eDo6dW5wYWNrX2FyZ3NfaW1wbDwgc2l6ZTxBcmdzPjo6dmFsdWUsRiwgQXJncyA+CisKKyAgICB7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfUEFTU19USFJPVUdIX0xBTUJEQV9TUEVDKDEsIHVucGFja19hcmdzKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdmVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy92ZWN0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNjc1ODkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdmVjdG9yLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IHZlY3RvcjsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IwPCAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yCisgICAgOiB2ZWN0b3IyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2RtYy92ZWN0b3JfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdmVjdG9yX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZmJkYjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9kbWMvdmVjdG9yX2MuaHBwCkBAIC0wLDAgKzEsMzA5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3JfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjFfYzwgVCwgVChDMCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMV9jPCBULCBUKEMwKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMl9jPCBULCBUKEMwKSwgVChDMSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMl9jPCBULCBUKEMwKSwgVChDMSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTFfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTJfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMThfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2MKKyAgICA6IHZlY3RvcjIwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpLCBUKEMxOSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCksIFQoQzE5KSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYWR2YW5jZV9iYWNrd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUwYzgyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hZHZhbmNlX2JhY2t3YXJkLmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfYmFja3dhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FkdmFuY2VfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNhNWFmZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hZHZhbmNlX2ZvcndhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9mb3J3YXJkLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgTiA+IHN0cnVjdCBhZHZhbmNlX2ZvcndhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8ND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8ND4KKyAgICAgICAgICAgICwgSXRlcmF0b3IKKyAgICAgICAgICAgID46OnR5cGUgY2h1bmtfcmVzdWx0XzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRiODhkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hbmQuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3QgYW5kX2ltcGwKKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbDwgdHJ1ZSxUMSxUMixUMyxUNCA+CisgICAgOiBhbmRfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCB0cnVlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYW5kX2ltcGw8CisgICAgICAgICAgdHJ1ZQorICAgICAgICAsIHRydWVfLCB0cnVlXywgdHJ1ZV8sIHRydWVfCisgICAgICAgID4KKyAgICA6IHRydWVfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gdHJ1ZV8sIHR5cGVuYW1lIFQ0ID0gdHJ1ZV8sIHR5cGVuYW1lIFQ1ID0gdHJ1ZV8KKyAgICA+CitzdHJ1Y3QgYW5kXworCisgICAgOiBhdXg6OmFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYW5kXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgYW5kXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YjFjZDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMTY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MAorCisgICAgOiBhcHBseV93cmFwMDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMQorICAgICAgICAsIGFwcGx5MAorICAgICAgICAsIChGICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5PCBGLG5hLG5hLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTEKKworICAgIDogYXBwbHlfd3JhcDE8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMgorICAgICAgICAsIGFwcGx5MQorICAgICAgICAsIChGLCBUMSkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBhcHBseTE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyCisKKyAgICA6IGFwcGx5X3dyYXAyPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAzCisgICAgICAgICwgYXBwbHkyCisgICAgICAgICwgKEYsIFQxLCBUMikKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsbmEsbmEsbmEgPgorICAgIDogYXBwbHkyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTMKKworICAgIDogYXBwbHlfd3JhcDM8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgYXBwbHkzCisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxuYSxuYSA+CisgICAgOiBhcHBseTM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQKKworICAgIDogYXBwbHlfd3JhcDQ8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFwcGx5NAorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBhcHBseTQ8IEYsVDEsVDIsVDMsVDQgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1CisKKyAgICA6IGFwcGx5X3dyYXA1PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA2CisgICAgICAgICwgYXBwbHk1CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHkKKyAgICA6IGFwcGx5NTwgRixUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hcHBseV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjY2M5NGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBhcHBseTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2FwcGx5X3dyYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjOTAyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXBwbHlfd3JhcC5ocHAKQEAgLTAsMCArMSw4NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisKKyAgICAsIHR5cGVuYW1lIGhhc19hcHBseV8gPSB0eXBlbmFtZSBhdXg6Omhhc19hcHBseTxGPjo6dHlwZQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAwCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYgPgorc3RydWN0IGFwcGx5X3dyYXAwPCBGLHRydWVfID4KKyAgICA6IEY6OmFwcGx5Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDEKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8VDE+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAyCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMworCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA0CisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1CisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXJnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMTU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYXJnLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXJnLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwgLTEgPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IC0xKTsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUyIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDM+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMyk7CisgICAgdHlwZWRlZiBhcmc8ND4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU1IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsIGFyZykKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iYXNpY19iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iYXNpY19iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmE1NjVlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2Jhc2ljX2JpbmQuaHBwCkBAIC0wLDAgKzEsNDQwIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9iYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMDxGPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDA8Rj4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQ8IEYsbmEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDA8Rj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMgorICAgICwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDI8IEYsVDEsVDIgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDI8IEYsVDEsVDIgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLG5hLG5hLG5hID4KKyAgICA6IGJpbmQyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLG5hLG5hID4KKyAgICA6IGJpbmQzPCBGLFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBiaW5kNDwgRixUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZAorICAgIDogYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworLy8vIGlmXy9ldmFsX2lmIHNwZWNpYWxpemF0aW9ucwordGVtcGxhdGU8IHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gY2xhc3MgRiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBxdW90ZTM7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IGlmXzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM8CisgICAgICBxdW90ZTM8IGlmXyxUYWcgPgorICAgICwgVDEsIFQyLCBUMworICAgID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIG1wbDo6YXJnPDE+IG4xOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgICwgdDIsIHQzCisgICAgICAgICAgICA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gY2xhc3MgRiwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IHF1b3RlMzsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMgPiBzdHJ1Y3QgZXZhbF9pZjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM8CisgICAgICBxdW90ZTM8IGV2YWxfaWYsVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBldmFsX2lmPAorICAgICAgICAgICAgICB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgLCB0MiwgdDMKKyAgICAgICAgICAgID46OnR5cGUgZl87CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmNkZTVhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpbmQuaHBwCkBAIC0wLDAgKzEsNTYxIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgQXJnCisgICAgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmcKK3sKKyAgICB0eXBlZGVmIEFyZyBuZXh0OworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZzwgYXJnPCAtMSA+LCBBcmcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgQXJnOjpuZXh0IG5leHQ7CisgICAgdHlwZWRlZiBBcmcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixuYSxuYSxuYSA+CisgICAgOiBiaW5kMjwgRixUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBVMQorICAgICwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPCBGLFQxLFQyLFQzID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYmluZDM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ1LG41ID4gcjU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6OnR5cGUgYTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6Om5leHQgbjY7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQKKyAgICA6IGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKKy8vLyBpZl8vZXZhbF9pZiBzcGVjaWFsaXphdGlvbnMKK3RlbXBsYXRlPCB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgcXVvdGUzOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IHN0cnVjdCBpZl87CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBpZl8sVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICAsIHQyLCB0MworICAgICAgICAgICAgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZl86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBxdW90ZTM7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IGV2YWxfaWY7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBldmFsX2lmLFRhZyA+CisgICAgLCBUMSwgVDIsIFQzCisgICAgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgbXBsOjphcmc8MT4gbjE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZXZhbF9pZjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgICwgdDIsIHQzCisgICAgICAgICAgICA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYmluZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpbmRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTA0NmVlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGJpbmQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRhbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpdGFuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBlODU5MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRhbmQuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXRhbmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRhbmRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdGFuZF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0YW5kX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0YW5kX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRhbmRfCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IGJpdGFuZF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdGFuZF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0YW5kX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRhbmRfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRhbmRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICYgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2JpdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzcxYThmNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXRvci5ocHAKQEAgLTAsMCArMSwxNDcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRvcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRvcl8KKyAgICA6IGJpdG9yXzwgYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXRvcl88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXRvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgfCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYml0eG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9iaXR4b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZjBjZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvYml0eG9yLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0eG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0eG9yX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXR4b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdHhvcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0eG9yXworICAgIDogYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXR4b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXR4b3JfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdHhvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0eG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0eG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICBeIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9kZXF1ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZGVxdWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2MzFmNjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZGVxdWUuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kZXF1ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBkZXF1ZTsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjA8ICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IGRlcXVlCisgICAgOiB2ZWN0b3IyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9kaXZpZGVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9kaXZpZGVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjU0MTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2RpdmlkZXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kaXZpZGVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZGl2aWRlc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZGl2aWRlc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGRpdmlkZXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGRpdmlkZXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGRpdmlkZXMKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogZGl2aWRlc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGRpdmlkZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGRpdmlkZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC8gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQwMmRhNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9lcXVhbF90by5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBlcXVhbF90b19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGVxdWFsX3RvCisKKyAgICA6IGVxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGVxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBlcXVhbF90bykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgID09IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0Y2Q0MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICA0CisgICAgICAgICwgRmlyc3QKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2Z1bGxfbGFtYmRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9mdWxsX2xhbWJkYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNlYTM0MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgLCB0eXBlbmFtZSBBcml0eQorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIFQgcmVzdWx0XzsKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKwordGVtcGxhdGU8IGludCBOLCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IGxhbWJkYTwgYXJnPE4+LFRhZywgaW50XzwgLTEgPiA+Cit7CisgICAgdHlwZWRlZiB0cnVlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6YXJnPE4+IHJlc3VsdF87IC8vIHF1YWxpZmllZCBmb3IgdGhlIHNha2Ugb2YgTUlQU3BybyA3LjQxCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMDxGPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88MT4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDA8CisgICAgICAgICAgRgorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQxPCB0cnVlXyxUYWcsRixMMSA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICBxdW90ZTE8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjxUMT4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDE+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDE8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQxPCBGLFQxID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDI+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMgorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQyCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDI8IHRydWVfLFRhZyxGLEwxLEwyID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgIHF1b3RlMjwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMiA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwyPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MjwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMjwgRixUMSxUMiA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50XzwzPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MworeworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzPCB0cnVlXyxUYWcsRixMMSxMMixMMyA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBxdW90ZTM8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88Mz4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MzwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDQ+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNAorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ0Cit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZSwgdHlwZW5hbWUgTDM6OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNAorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQ0PCB0cnVlXyxUYWcsRixMMSxMMixMMyxMNCA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBxdW90ZTQ8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyLFQzLFQ0ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDQ+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NDwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNAorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgICAsIGludF88NT4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQsIHR5cGVuYW1lIEw1CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDUKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIEw0Ojp0eXBlLCB0eXBlbmFtZSBMNTo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQsIHR5cGVuYW1lIEw1CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDU8IHRydWVfLFRhZyxGLEwxLEwyLEwzLEw0LEw1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgIHF1b3RlNTwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6cmVzdWx0XywgdHlwZW5hbWUgTDU6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0CisgICAgICAgICwgdHlwZW5hbWUgUDUKKyAgICAgICAgPgorICAgICAgY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDU+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ1LFRhZyA+IGw1OworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw1Ojppc19sZSBpc19sZTU7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUsIGlzX2xlNDo6dmFsdWUKKyAgICAgICAgLCBpc19sZTU6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NTwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNCwgbDUKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgICwgaW50Xzw2PgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWwgY2FzZSBmb3IgJ3Byb3RlY3QnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IG1wbDo6cHJvdGVjdDxUPixUYWcsIGludF88MT4gPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PFQ+IHJlc3VsdF87CisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCisvLy8gc3BlY2lhbGl6YXRpb25zIGZvciB0aGUgbWFpbiAnYmluZCcgZm9ybQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAgLCBpbnRfPDY+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgLCB0eXBlbmFtZSBBcml0eQorICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgbGFtYmRhPCBGLFRhZzEsQXJpdHkgPgorICAgICAgICAsIFRhZzIKKyAgICAgICAgLCBpbnRfPDM+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgRixUYWcyID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFRhZzEsVGFnMiA+IGwyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8IHF1b3RlMTxhdXg6OnRlbXBsYXRlX2FyaXR5PiwgdHlwZW5hbWUgbDE6OnJlc3VsdF8gPiBhcml0eV87CisgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIGlmXzwgaXNfbGUsYXJpdHlfLEFyaXR5ID46OnR5cGUsIFRhZzIgPiBsMzsKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mzxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMiwgbDM+IGxlX3Jlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDMsIGxhbWJkYSkKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2dyZWF0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2dyZWF0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNWZhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZ3JlYXRlci5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZ3JlYXRlci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyCisKKyAgICA6IGdyZWF0ZXJfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXIpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZ3JlYXRlcl9lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvZ3JlYXRlcl9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5YTU4NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9ncmVhdGVyX2VxdWFsLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZ3JlYXRlcl9lcXVhbF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZ3JlYXRlcl9lcXVhbF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWwKKworICAgIDogZ3JlYXRlcl9lcXVhbF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfZXF1YWxfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfZXF1YWxfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlcl9lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcl9lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvaW5oZXJpdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvaW5oZXJpdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmMzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9pbmhlcml0LmhwcApAQCAtMCwwICsxLDE0MSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvaW5oZXJpdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDIKKyAgICA6IFQxLCBUMgoreworICAgIHR5cGVkZWYgaW5oZXJpdDIgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGluaGVyaXQyLCAoVDEsIFQyKSkKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSA+CitzdHJ1Y3QgaW5oZXJpdDI8IFQxLGVtcHR5X2Jhc2UgPgoreworICAgIHR5cGVkZWYgVDEgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChUMSwgZW1wdHlfYmFzZSkpCit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDIgPgorc3RydWN0IGluaGVyaXQyPCBlbXB0eV9iYXNlLFQyID4KK3sKKyAgICB0eXBlZGVmIFQyIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoZW1wdHlfYmFzZSwgVDIpKQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQyPCBlbXB0eV9iYXNlLGVtcHR5X2Jhc2UgPgoreworICAgIHR5cGVkZWYgZW1wdHlfYmFzZSB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKGVtcHR5X2Jhc2UsIGVtcHR5X2Jhc2UpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDIsIGluaGVyaXQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDMKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQyPAorICAgICAgICAgICAgICBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUMworICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAzCisgICAgICAgICwgaW5oZXJpdDMKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygzLCBpbmhlcml0MykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hLCB0eXBlbmFtZSBUNCA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQ0CisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0MzwKKyAgICAgICAgICAgICAgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQ0CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDQKKyAgICAgICAgLCBpbmhlcml0NAorICAgICAgICAsICggVDEsIFQyLCBUMywgVDQpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg0LCBpbmhlcml0NCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hLCB0eXBlbmFtZSBUNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQ1CisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0NDwKKyAgICAgICAgICAgICAgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgaW5oZXJpdDUKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDUsIGluaGVyaXQ1KQorCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDIgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUMyA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQ0ID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDUgPSBlbXB0eV9iYXNlCisgICAgPgorc3RydWN0IGluaGVyaXQKKyAgICA6IGluaGVyaXQ1PCBUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDwgbmEsbmEsbmEsbmEsbmEgPgoreworICAgIHRlbXBsYXRlPAorCisgICAgICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAgICAgLCB0eXBlbmFtZSBUMyA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQ0ID0gZW1wdHlfYmFzZQorICAgICAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBpbmhlcml0PCBUMSxUMixUMyxUNCxUNSA+CisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUNfTEFNQkRBKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfQVJJVFkoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWSg1LCA1LCBpbmhlcml0KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBhMjg2NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKQEAgLTAsMCArMSwxMzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMS0yMDAyCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2lmX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIFN0YXRlID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgU3RhdGVPcCxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yT3A6OnR5cGUgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEZvcndhcmRPcCwgbXBsOjpuZXh0PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEJhY2t3YXJkT3AsIGlkZW50aXR5PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkUHJlZGljYXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfaW1wbAoreworIHByaXZhdGU6CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPCBJdGVyYXRvcixTdGF0ZSA+IGZvcndhcmRfc3RlcDA7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0Ojpub3RfbGFzdAorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEJhY2t3YXJkUHJlZGljYXRlCisgICAgICAgICAgICA+CisgICAgICAgICwgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZSBiYWNrd2FyZF9zdGVwNDsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAzOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDI6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMTo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDA7CisgICAgCisKKyBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMDo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9pdGVyX2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMDhiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDIsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUyIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTMsaXRlcjMgPjo6dHlwZSBzdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICA0CisgICAgICAgICwgRmlyc3QKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IHJlc187CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgOiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGFtYmRhX25vX2N0cHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xhbWJkYV9ub19jdHBzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmZjNjYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xhbWJkYV9ub19jdHBzLmhwcApAQCAtMCwwICsxLDIyOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJpdHkgPiBzdHJ1Y3QgbGFtYmRhX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB0eXBlZGVmIGlzX3BsYWNlaG9sZGVyPFQ+IGlzX2xlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc1LCBUYWcsIGZhbHNlXyA+IGw1OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw1Ojppc19sZSBpc19sZTU7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTUpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZSwgdHlwZW5hbWUgbDU6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgICwgdHlwZW5hbWUgUHJvdGVjdAorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICAvLy8gTWV0YWZ1bmN0aW9uIGZvcndhcmRpbmcgY29uZnVzZXMgTVNWQyA2LngKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dGVtcGxhdGVfYXJpdHk8VD46OnR5cGUgYXJpdHlfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfaW1wbDxhcml0eV8+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxUYWcsUHJvdGVjdCA+IGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6dHlwZSB0eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OmlzX2xlIGlzX2xlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMywgbGFtYmRhLCAoVCwgVGFnLCBQcm90ZWN0KSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMSwgMywgbGFtYmRhKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9sZXNzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTM5Yjc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xlc3MuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xlc3MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsZXNzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBsZXNzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBsZXNzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbGVzc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbGVzcworCisgICAgOiBsZXNzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbGVzc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbGVzc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBsZXNzLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBsZXNzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxlc3NfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlID4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xlc3NfZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xlc3NfZXF1YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YzM0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGVzc19lcXVhbC5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGVzc19lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxlc3NfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsCisKKyAgICA6IGxlc3NfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBsZXNzX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBsZXNzX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGxlc3NfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3NfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPD0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xpc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xpc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjYzhjNDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbGlzdC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbGlzdDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDA8ICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbGlzdAorICAgIDogbGlzdDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9saXN0X2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL2xpc3RfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzZjM4ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9saXN0X2MuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IGxpc3RfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxX2M8IFQsQzAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDFfYzwgVCxDMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QyX2M8IFQsQzAsQzEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDJfYzwgVCxDMCxDMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QzX2M8IFQsQzAsQzEsQzIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDNfYzwgVCxDMCxDMSxDMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q0X2M8IFQsQzAsQzEsQzIsQzMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDRfYzwgVCxDMCxDMSxDMixDMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE0X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE1X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTdfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MThfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxOV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IGxpc3RfYworICAgIDogbGlzdDIwX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDIwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9tYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL21hcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk3NGYyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9tYXAuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWFwOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDA8ICA+Cit7CisgICAgdHlwZWRlZiBtYXAwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBtYXAxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBtYXAKKyAgICA6IG1hcDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL21pbnVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9taW51cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU2YjU5MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9taW51cy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21pbnVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbWludXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1pbnVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBtaW51c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtaW51c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1pbnVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBtaW51cworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBtaW51czwgbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IG1pbnVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBtaW51c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1pbnVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBtaW51c190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBtaW51cworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIG1pbnVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBtaW51c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgLSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbW9kdWx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvbW9kdWx1cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODljNjE3MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9tb2R1bHVzLmhwcApAQCAtMCwwICsxLDEwMSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbW9kdWx1cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG1vZHVsdXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1vZHVsdXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtb2R1bHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBtb2R1bHVzCisKKyAgICA6IG1vZHVsdXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBtb2R1bHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBtb2R1bHVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIG1vZHVsdXMsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIG1vZHVsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IG1vZHVsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICUgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL25vdF9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvbm90X2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjhlMTAwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL25vdF9lcXVhbF90by5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbm90X2VxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBub3RfZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG5vdF9lcXVhbF90b190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvCisKKyAgICA6IG5vdF9lcXVhbF90b19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG5vdF9lcXVhbF90b190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIG5vdF9lcXVhbF90bywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbm90X2VxdWFsX3RvKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgIT0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL29yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9vci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkyOTYwMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9vci5ocHAKQEAgLTAsMCArMSw2OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvb3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCBDXywgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IG9yX2ltcGwKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IG9yX2ltcGw8IGZhbHNlLFQxLFQyLFQzLFQ0ID4KKyAgICA6IG9yX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0CisgICAgICAgICwgZmFsc2VfCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBvcl9pbXBsPAorICAgICAgICAgIGZhbHNlCisgICAgICAgICwgZmFsc2VfLCBmYWxzZV8sIGZhbHNlXywgZmFsc2VfCisgICAgICAgID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgLCB0eXBlbmFtZSBUMyA9IGZhbHNlXywgdHlwZW5hbWUgVDQgPSBmYWxzZV8sIHR5cGVuYW1lIFQ1ID0gZmFsc2VfCisgICAgPgorc3RydWN0IG9yXworCisgICAgOiBhdXg6Om9yX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBvcl8KKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigKKyAgICAgIDIKKyAgICAsIDUKKyAgICAsIG9yXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9wbGFjZWhvbGRlcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3BsYWNlaG9sZGVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNkNDUxNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9wbGFjZWhvbGRlcnMuaHBwCkBAIC0wLDAgKzEsMTA1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9wbGFjZWhvbGRlcnMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8IC0xID4gXzsKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfOworfQorCit9fQorCisvLy8gYWd1cnQsIDE3L21hci8wMjogb25lIG1vcmUgcGxhY2Vob2xkZXIgZm9yIHRoZSBsYXN0ICdhcHBseSMnIAorLy8vIHNwZWNpYWxpemF0aW9uCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwxPiBfMTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8xKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDI+IF8yOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzIpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8yOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mz4gXzM7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzM7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw0PiBfNDsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF80KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNDsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDU+IF81OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzUpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol81OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Nj4gXzY7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzY7Cit9CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcGx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcGx1cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUwM2UzZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9wbHVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcGx1cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHBsdXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHBsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHBsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHBsdXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHBsdXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBwbHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBwbHVzCisgICAgOiBwbHVzPCBwbHVzPCBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IHBsdXM8IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IHBsdXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBwbHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBwbHVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBwbHVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBwbHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICArIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9xdW90ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcXVvdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYmIzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcXVvdGUuaHBwCkBAIC0wLDAgKzEsMTIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9xdW90ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIGJvb2wgaGFzX3R5cGVfID4KK3N0cnVjdCBxdW90ZV9pbXBsCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgcXVvdGVfaW1wbDwgVCxmYWxzZSA+Cit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlMQoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjxVMT4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjxVMT4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUyCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgVTEsVTIgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMiA+ID46OnZhbHVlCisgICAgICAgICAgICA+CisKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTMKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgVTEsVTIsVTMgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMixVMyA+ID46OnZhbHVlCisgICAgICAgICAgICA+CisKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGU0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgVTEsVTIsVTMsVTQgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMixVMyxVNCA+ID46OnZhbHVlCisgICAgICAgICAgICA+CisKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICAsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8CisgICAgICAgICAgICAgIEY8IFUxLFUyLFUzLFU0LFU1ID4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIsVTMsVTQsVTUgPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPgorCisgICAgeworICAgIH07Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3JldmVyc2VfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDNhZDc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3JldmVyc2VfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDIzMSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IDIsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTIgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgMyxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiByZXZlcnNlX2ZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCBpdGVyNAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTQsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9zdGVwOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8CisgICAgICAgICAgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjpzdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZQorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2JmNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjMxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTEgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDIsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTIgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUzIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGU0IGJrd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGU0LGl0ZXIzID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIGl0ZXI0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIGJrd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGU0LGl0ZXIzID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9zdGVwOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8CisgICAgICAgICAgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjpzdGF0ZQorICAgICAgICAsIEZpcnN0CisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2V0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9zZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNGNhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2V0LmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2V0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IHNldDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQwPCAgPgoreworICAgIHR5cGVkZWYgc2V0MDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3Qgc2V0CisgICAgOiBzZXQyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9zZXRfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2V0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZjJmZGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2V0X2MuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zZXRfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQwX2M8VD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDFfYzwgVCxDMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxX2M8IFQsQzAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDJfYzwgVCxDMCxDMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyX2M8IFQsQzAsQzEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDNfYzwgVCxDMCxDMSxDMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzX2M8IFQsQzAsQzEsQzIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDRfYzwgVCxDMCxDMSxDMixDMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0X2M8IFQsQzAsQzEsQzIsQzMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTVfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTVfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE2X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxN19jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxOF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MThfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE5X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBzZXRfYworICAgIDogc2V0MjBfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQyMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2hpZnRfbGVmdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2hpZnRfbGVmdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhkZjI5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9zaGlmdF9sZWZ0LmhwcApAQCAtMCwwICsxLDk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zaGlmdF9sZWZ0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X2xlZnRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnQKKworICAgIDogc2hpZnRfbGVmdF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgc2hpZnRfbGVmdCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfbGVmdCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIE46OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlCisgICAgICAgICAgICAgICAgICA8PCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoUyk6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy9zaGlmdF9yaWdodC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2hpZnRfcmlnaHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MjZmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2Mvc2hpZnRfcmlnaHQuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NoaWZ0X3JpZ2h0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X3JpZ2h0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodAorCisgICAgOiBzaGlmdF9yaWdodF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9yaWdodCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfcmlnaHQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTiwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgID4+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChTKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3RlbXBsYXRlX2FyaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy90ZW1wbGF0ZV9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyOTc5OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy90ZW1wbGF0ZV9hcml0eS5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vICpQcmVwcm9jZXNzZWQqIHZlcnNpb24gb2YgdGhlIG1haW4gInRlbXBsYXRlX2FyaXR5LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+IHN0cnVjdCBhcml0eV90YWcKK3sKKyAgICB0eXBlZGVmIGNoYXIgKCZ0eXBlKVtOICsgMV07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBDMSwgaW50IEMyLCBpbnQgQzMsIGludCBDNCwgaW50IEM1LCBpbnQgQzYKKyAgICA+CitzdHJ1Y3QgbWF4X2FyaXR5Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgICggQzYgPiAwID8gQzYgOiAoIEM1ID4gMCA/IEM1IDogKCBDNCA+IDAgPyBDNCA6ICggQzMgPiAwID8gQzMgOiAoIEMyID4gMCA/IEMyIDogKCBDMSA+IDAgPyBDMSA6IC0xICkgKSApICkgKSApCisgICAgICAgICk7Cit9OworCithcml0eV90YWc8MD46OnR5cGUgYXJpdHlfaGVscGVyKC4uLik7CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEKKyAgICA+Cit0eXBlbmFtZSBhcml0eV90YWc8MT46OnR5cGUKK2FyaXR5X2hlbHBlcih0eXBlX3dyYXBwZXI8IEY8VDE+ID4sIGFyaXR5X3RhZzwxPik7CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3R5cGVuYW1lIGFyaXR5X3RhZzwyPjo6dHlwZQorYXJpdHlfaGVscGVyKHR5cGVfd3JhcHBlcjwgRjwgVDEsVDIgPiA+LCBhcml0eV90YWc8Mj4pOworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3R5cGVuYW1lIGFyaXR5X3RhZzwzPjo6dHlwZQorYXJpdHlfaGVscGVyKHR5cGVfd3JhcHBlcjwgRjwgVDEsVDIsVDMgPiA+LCBhcml0eV90YWc8Mz4pOworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgordHlwZW5hbWUgYXJpdHlfdGFnPDQ+Ojp0eXBlCithcml0eV9oZWxwZXIodHlwZV93cmFwcGVyPCBGPCBUMSxUMixUMyxUNCA+ID4sIGFyaXR5X3RhZzw0Pik7CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICA+Cit0eXBlbmFtZSBhcml0eV90YWc8NT46OnR5cGUKK2FyaXR5X2hlbHBlcih0eXBlX3dyYXBwZXI8IEY8IFQxLFQyLFQzLFQ0LFQ1ID4gPiwgYXJpdHlfdGFnPDU+KTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNgorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFQ2CisgICAgPgordHlwZW5hbWUgYXJpdHlfdGFnPDY+Ojp0eXBlCithcml0eV9oZWxwZXIodHlwZV93cmFwcGVyPCBGPCBUMSxUMixUMyxUNCxUNSxUNiA+ID4sIGFyaXR5X3RhZzw2Pik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgaW50IE4gPgorc3RydWN0IHRlbXBsYXRlX2FyaXR5X2ltcGwKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eV9oZWxwZXIodHlwZV93cmFwcGVyPEY+KCksIGFyaXR5X3RhZzxOPigpKSkgLSAxCisgICAgICAgICk7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHkKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAoCisgICAgICAgICAgbWF4X2FyaXR5PCB0ZW1wbGF0ZV9hcml0eV9pbXBsPCBGLDEgPjo6dmFsdWUsIHRlbXBsYXRlX2FyaXR5X2ltcGw8IEYsMiA+Ojp2YWx1ZSwgdGVtcGxhdGVfYXJpdHlfaW1wbDwgRiwzID46OnZhbHVlLCB0ZW1wbGF0ZV9hcml0eV9pbXBsPCBGLDQgPjo6dmFsdWUsIHRlbXBsYXRlX2FyaXR5X2ltcGw8IEYsNSA+Ojp2YWx1ZSwgdGVtcGxhdGVfYXJpdHlfaW1wbDwgRiw2ID46OnZhbHVlID46OnZhbHVlCisgICAgICAgICkpOworICAgIHR5cGVkZWYgbXBsOjppbnRfPHZhbHVlPiB0eXBlOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdGltZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3RpbWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDUxNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3RpbWVzLmhwcApAQCAtMCwwICsxLDE0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdGltZXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCB0aW1lc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgdGltZXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHRpbWVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgdGltZXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgdGltZXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHRpbWVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgdGltZXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHRpbWVzCisgICAgOiB0aW1lczwgdGltZXM8IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IHRpbWVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgdGltZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHRpbWVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgdGltZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHRpbWVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAqIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL2djYy91bnBhY2tfYXJncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdW5wYWNrX2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljOTIwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdW5wYWNrX2FyZ3MuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3VucGFja19hcmdzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGludCBzaXplLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMCxGLEFyZ3MgPgorICAgIDogYXBwbHkwPAorICAgICAgICAgIEYKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDEsRixBcmdzID4KKyAgICA6IGFwcGx5MTwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDIsRixBcmdzID4KKyAgICA6IGFwcGx5MjwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAzLEYsQXJncyA+CisgICAgOiBhcHBseTM8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCA0LEYsQXJncyA+CisgICAgOiBhcHBseTQ8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgNSxGLEFyZ3MgPgorICAgIDogYXBwbHk1PAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDQgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit9CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCB1bnBhY2tfYXJncworeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBhdXg6OnVucGFja19hcmdzX2ltcGw8IHNpemU8QXJncz46OnZhbHVlLEYsIEFyZ3MgPgorCisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX1BBU1NfVEhST1VHSF9MQU1CREFfU1BFQygxLCB1bnBhY2tfYXJncykKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdmVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjY3NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3ZlY3Rvci5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3I7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3RvcgorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9nY2MvdmVjdG9yX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3ZlY3Rvcl9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmZiZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvZ2NjL3ZlY3Rvcl9jLmhwcApAQCAtMCwwICsxLDMwOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHZlY3Rvcl9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxX2M8IFQsIFQoQzApID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjFfYzwgVCwgVChDMCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTFfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTJfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMThfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jCisgICAgOiB2ZWN0b3IyMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpLCBUKEMxOSkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FkdmFuY2VfYmFja3dhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FkdmFuY2VfYmFja3dhcmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NjEyYTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYWR2YW5jZV9iYWNrd2FyZC5ocHAKQEAgLTAsMCArMSwxMzIgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9iYWNrd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGFwcGx5PGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIGl0ZXIxIHR5cGU7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGFwcGx5PGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBhcHBseTxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCB0eXBlOworICAgIH07CisKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGFwcGx5PGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8ND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICB0eXBlZGVmIGl0ZXI0IHR5cGU7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGFwcGx5PGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FkdmFuY2VfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg1MjA3NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hZHZhbmNlX2ZvcndhcmQuaHBwCkBAIC0wLDAgKzEsMTMyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkOwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBhcHBseTxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCB0eXBlOworICAgIH07CisKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgYXBwbHk8aW50PgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IGFwcGx5PGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBhcHBseTxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCB0eXBlOworICAgIH07CisKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8ND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgYXBwbHk8aW50PgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWU0ZTNiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FuZC5ocHAKQEAgLTAsMCArMSw3MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sIENfID4gc3RydWN0IGFuZF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhbmRfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IGFuZF9pbXBsPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsdHJ1ZV8gPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFuZF9pbXBsPHRydWU+CisgICAgOjpyZXN1bHRfPCB0cnVlXyx0cnVlXyx0cnVlXyx0cnVlXyA+CisgICAgICAgIDogdHJ1ZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSB0cnVlXywgdHlwZW5hbWUgVDQgPSB0cnVlXywgdHlwZW5hbWUgVDUgPSB0cnVlXworICAgID4KK3N0cnVjdCBhbmRfCisKKyAgICA6IGF1eDo6YW5kX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsVDUgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYW5kXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgYW5kXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXBwbHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ZmIzODMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMTY2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MAorCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAKKyAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAxCisgICAgICAgICwgYXBwbHkwCisgICAgICAgICwgKEYgKQorICAgICAgICApCit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5MDxpbnQ+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHkxCisKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxCisgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMgorICAgICAgICAsIGFwcGx5MQorICAgICAgICAsIChGLCBUMSkKKyAgICAgICAgKQorfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseTE8IGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTIKKworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMworICAgICAgICAsIGFwcGx5MgorICAgICAgICAsIChGLCBUMSwgVDIpCisgICAgICAgICkKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHkyPCBpbnQsaW50LGludCA+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTMKKworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDQKKyAgICAgICAgLCBhcHBseTMKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseTM8IGludCxpbnQsaW50LGludCA+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk0CisKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFwcGx5NAorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseTQ8IGludCxpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTUKKworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNgorICAgICAgICAsIGFwcGx5NQorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHk1PCBpbnQsaW50LGludCxpbnQsaW50LGludCA+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FwcGx5X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJhOWE3NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcHBseV9md2QuaHBwCkBAIC0wLDAgKzEsNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5X2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2FwcGx5X3dyYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MTU3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXBwbHlfd3JhcC5ocHAKQEAgLTAsMCArMSwyNDcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5X3dyYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGPgorc3RydWN0IG1zdmNfYXBwbHkwCit7CisgICAgdGVtcGxhdGU8IGJvb2wgPiBzdHJ1Y3QgZl8gOiBGIHt9OworICAgIHRlbXBsYXRlPD4gc3RydWN0IGZfPHRydWU+CisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUCAgPSBpbnQgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgID0gaW50ID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBmXzwgYXV4Ojptc3ZjX25ldmVyX3RydWU8Rj46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8PgorICAgIHsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfYXBwbHkwPEY+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHlfd3JhcDA8aW50PgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRj4KK3N0cnVjdCBtc3ZjX2FwcGx5MQoreworICAgIHRlbXBsYXRlPCBib29sID4gc3RydWN0IGZfIDogRiB7fTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBmXzx0cnVlPgorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gc3RydWN0IGFwcGx5CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZl88IGF1eDo6bXN2Y19uZXZlcl90cnVlPEY+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PFQxPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwMQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19hcHBseTE8Rj46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgVDEKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV93cmFwMTwgaW50LGludCA+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGPgorc3RydWN0IG1zdmNfYXBwbHkyCit7CisgICAgdGVtcGxhdGU8IGJvb2wgPiBzdHJ1Y3QgZl8gOiBGIHt9OworICAgIHRlbXBsYXRlPD4gc3RydWN0IGZfPHRydWU+CisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gc3RydWN0IGFwcGx5CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IGZfPCBhdXg6Om1zdmNfbmV2ZXJfdHJ1ZTxGPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDIKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfYXBwbHkyPEY+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIFQxLCBUMgorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X3dyYXAyPCBpbnQsaW50LGludCA+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGPgorc3RydWN0IG1zdmNfYXBwbHkzCit7CisgICAgdGVtcGxhdGU8IGJvb2wgPiBzdHJ1Y3QgZl8gOiBGIHt9OworICAgIHRlbXBsYXRlPD4gc3RydWN0IGZfPHRydWU+CisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IHN0cnVjdCBhcHBseQorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGludCB0eXBlOworICAgICAgICB9OworICAgIH07CisKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZl88IGF1eDo6bXN2Y19uZXZlcl90cnVlPEY+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDMKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfYXBwbHkzPEY+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV93cmFwMzwgaW50LGludCxpbnQsaW50ID4KK3sKKyAgICB0eXBlZGVmIGludCB0eXBlOworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEY+CitzdHJ1Y3QgbXN2Y19hcHBseTQKK3sKKyAgICB0ZW1wbGF0ZTwgYm9vbCA+IHN0cnVjdCBmXyA6IEYge307CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZl88dHJ1ZT4KKyAgICB7CisgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAgICAgPgorICAgICAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZl88IGF1eDo6bXN2Y19uZXZlcl90cnVlPEY+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA0Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2FwcGx5NDxGPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X3dyYXA0PCBpbnQsaW50LGludCxpbnQsaW50ID4KK3sKKyAgICB0eXBlZGVmIGludCB0eXBlOworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEY+CitzdHJ1Y3QgbXN2Y19hcHBseTUKK3sKKyAgICB0ZW1wbGF0ZTwgYm9vbCA+IHN0cnVjdCBmXyA6IEYge307CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZl88dHJ1ZT4KKyAgICB7CisgICAgICAgIHRlbXBsYXRlPAorICAgICAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICAgICAgPgorICAgICAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBmXzwgYXV4Ojptc3ZjX25ldmVyX3RydWU8Rj46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8IFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2FwcGx5NTxGPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV93cmFwNTwgaW50LGludCxpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXJnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMTU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYXJnLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXJnLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwgLTEgPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IC0xKTsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUyIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDM+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMyk7CisgICAgdHlwZWRlZiBhcmc8ND4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU1IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsIGFyZykKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iYXNpY19iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iYXNpY19iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjY4MDIzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2Jhc2ljX2JpbmQuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9iYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCByZXNvbHZlX2FyZ19pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmVzb2x2ZV9hcmdfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAsIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnCisgICAgOiByZXNvbHZlX2FyZ19pbXBsPCBpc19iaW5kX3RlbXBsYXRlPFQ+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVTEsVTIsVTMsVTQsVTUgPgoreworfTsKKwordGVtcGxhdGU8IGludCBhcml0eV8gPiBzdHJ1Y3QgYmluZF9jaG9vc2VyOworCithdXg6Om5vX3RhZyBpc19iaW5kX2hlbHBlciguLi4pOwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBhdXg6Om5vX3RhZyBpc19iaW5kX2hlbHBlcihwcm90ZWN0PFQ+Kik7CisKK3RlbXBsYXRlPCBpbnQgTiA+CithdXg6Onllc190YWcgaXNfYmluZF9oZWxwZXIoYXJnPE4+Kik7CisKK3RlbXBsYXRlPCBib29sIGlzX3JlZl8gID0gdHJ1ZSA+CitzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2JpbmRfdGVtcGxhdGVfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgICBzaXplb2YoYXV4Ojppc19iaW5kX2hlbHBlcihzdGF0aWNfY2FzdDxUKj4oMCkpKQorICAgICAgICAgICAgICAgID09IHNpemVvZihhdXg6Onllc190YWcpCisgICAgICAgICAgICApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlCisgICAgOiBpc19iaW5kX3RlbXBsYXRlX2ltcGw8IDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcmVmZXJlbmNlX2ltcGw8VD46OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDA8Rj4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDE8IEYsVDEgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDI8IEYsVDEsVDIgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQzPCBGLFQxLFQyLFQzID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kNDwgRixUMSxUMixUMyxUNCA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzNiOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpbmQuaHBwCkBAIC0wLDAgKzEsNDMyIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgcmVzb2x2ZV9hcmdfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJlc29sdmVfYXJnX2ltcGw8dHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzCisgICAgICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgLCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworICAgIDogcmVzb2x2ZV9hcmdfaW1wbDwgaXNfYmluZF90ZW1wbGF0ZTxUPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULFUxLFUyLFUzLFU0LFU1ID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJnID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgQXJnIG5leHQ7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZ19pbXBsPCBhcmc8IC0xID4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmcgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PEFyZz46OnR5cGUgbmV4dDsKKyAgICAgICAgdHlwZWRlZiBBcmcgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFyZyA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZworICAgIDogcmVwbGFjZV91bm5hbWVkX2FyZ19pbXBsPFQ+Ojp0ZW1wbGF0ZSByZXN1bHRfPEFyZz4KK3sKK307CisKK3RlbXBsYXRlPCBpbnQgYXJpdHlfID4gc3RydWN0IGJpbmRfY2hvb3NlcjsKKworYXV4Ojpub190YWcgaXNfYmluZF9oZWxwZXIoLi4uKTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gYXV4Ojpub190YWcgaXNfYmluZF9oZWxwZXIocHJvdGVjdDxUPiopOworCit0ZW1wbGF0ZTwgaW50IE4gPgorYXV4Ojp5ZXNfdGFnIGlzX2JpbmRfaGVscGVyKGFyZzxOPiopOworCit0ZW1wbGF0ZTwgYm9vbCBpc19yZWZfICA9IHRydWUgPgorc3RydWN0IGlzX2JpbmRfdGVtcGxhdGVfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19iaW5kX3RlbXBsYXRlX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAgc2l6ZW9mKGF1eDo6aXNfYmluZF9oZWxwZXIoc3RhdGljX2Nhc3Q8VCo+KDApKSkKKyAgICAgICAgICAgICAgICA9PSBzaXplb2YoYXV4Ojp5ZXNfdGFnKQorICAgICAgICAgICAgKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZQorICAgIDogaXNfYmluZF90ZW1wbGF0ZV9pbXBsPCA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3JlZmVyZW5jZV9pbXBsPFQ+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxUPgoreworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMDxGPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMTwgRixUMSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQyPCBGLFQxLFQyID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDM8IEYsVDEsVDIsVDMgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDQsIGJpbmQzKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDQsIGJpbmQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDQsbjQgPiByNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6dHlwZSBhNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6bmV4dCBuNTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDUsbjUgPiByNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNTo6dHlwZSBhNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNTo6bmV4dCBuNjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE1LFUxLFUyLFUzLFU0LFU1ID4gdDU7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYmluZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpbmRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmQxYjZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDUxN2JjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdGFuZC5ocHAKQEAgLTAsMCArMSwxNDkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdGFuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IGJpdGFuZF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0YW5kX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBiaXRhbmRfMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0YW5kXworCisgICAgOiBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBiaXRhbmRfMjwgTjEsTjIgPgorICAgICAgICAsIGJpdGFuZF88CisgICAgICAgICAgICAgIGJpdGFuZF8yPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgYml0YW5kX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGJpdGFuZF90YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGJpdGFuZF90YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgYml0YW5kXzIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdGFuZF8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4xLCBUIG4yID4KK3N0cnVjdCBiaXRhbmRfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobjEgJiBuMikpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRhbmRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OmJpdGFuZF93a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCBOMTo6dmFsdWUKKyAgICAgICAgICAgICwgTjI6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYml0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDk2Zjg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2JpdG9yLmhwcApAQCAtMCwwICsxLDE0OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBiaXRvcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRvcl9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBiaXRvcl8yOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRvcl8KKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgYml0b3JfMjwgTjEsTjIgPgorICAgICAgICAsIGJpdG9yXzwKKyAgICAgICAgICAgICAgYml0b3JfMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0b3JfMgorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBiaXRvcl9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBiaXRvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGJpdG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBiaXRvcl8yLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4xLCBUIG4yID4KK3N0cnVjdCBiaXRvcl93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuMSB8IG4yKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPCBULHZhbHVlID4gdHlwZTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGJpdG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpiaXRvcl93a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCBOMTo6dmFsdWUKKyAgICAgICAgICAgICwgTjI6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYml0eG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9iaXR4b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YmY0YTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvYml0eG9yLmhwcApAQCAtMCwwICsxLDE0OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0eG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgYml0eG9yX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0eG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXR4b3JfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXR4b3JfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGJpdHhvcl8yOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXR4b3JfCisKKyAgICA6IGlmXzwKKworICAgICAgICAgIGlzX25hPE4zPgorICAgICAgICAsIGJpdHhvcl8yPCBOMSxOMiA+CisgICAgICAgICwgYml0eG9yXzwKKyAgICAgICAgICAgICAgYml0eG9yXzI8IE4xLE4yID4KKyAgICAgICAgICAgICwgTjMsIE40LCBONQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXR4b3JfMgorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBiaXR4b3JfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYml0eG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYml0eG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBiaXR4b3JfMiwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0eG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGJpdHhvcl93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuMSBeIG4yKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPCBULHZhbHVlID4gdHlwZTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGJpdHhvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGF1eDo6Yml0eG9yX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9kZXF1ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZGVxdWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhN2UyYzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZGVxdWUuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kZXF1ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGRlcXVlX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTwKKyAgICAgICAgICAgICAgVDAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19kZXF1ZV9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfZGVxdWVfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMAorICAgICwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUKKyAgICAsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IGRlcXVlX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfZGVxdWVfYXJnPFQxPjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDM+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX2RlcXVlX2FyZzxUNT46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQ3Pjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDk+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDExPjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQxMz46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQxND46OnZhbHVlIAorICAgICAgICArIGlzX2RlcXVlX2FyZzxUMTU+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDE3Pjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQxOT46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBkZXF1ZV9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OmRlcXVlX2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmRlcXVlX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlCisgICAgOiBhdXg6OmRlcXVlX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmRlcXVlX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZGl2aWRlcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZGl2aWRlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVmN2ZkZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9kaXZpZGVzLmhwcApAQCAtMCwwICsxLDE0OCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZGl2aWRlcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IGRpdmlkZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZGl2aWRlc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGRpdmlkZXMKKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgZGl2aWRlczI8IE4xLE4yID4KKyAgICAgICAgLCBkaXZpZGVzPAorICAgICAgICAgICAgICBkaXZpZGVzMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEKKyAgICAsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGRpdmlkZXMyCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIGRpdmlkZXNfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZGl2aWRlc190YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGRpdmlkZXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBkaXZpZGVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgVCBuMSwgVCBuMiA+CitzdHJ1Y3QgZGl2aWRlc193a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuMSAvIG4yKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPCBULHZhbHVlID4gdHlwZTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGRpdmlkZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OmRpdmlkZXNfd2tuZDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgTjE6OnZhbHVlCisgICAgICAgICAgICAsIE4yOjp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZQorCisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE3MmVlYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9lcXVhbF90by5ocHAKQEAgLTAsMCArMSwxMDIgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBlcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBlcXVhbF90b190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG8KKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBlcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGVxdWFsX3RvKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA9PQorICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkKKyAgICAgICAgICAgICk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4Y2EwYzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI5MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZm9sZF9jaHVuazwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCByZXN1bHRfPCBpbnQsaW50LGludCxpbnQgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaW50IGl0ZXJhdG9yOworICAgIH07CisKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGZvbGRfY2h1bms8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlMSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBmb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZm9sZF9jaHVuazwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCByZXN1bHRfPCBpbnQsaW50LGludCxpbnQgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaW50IGl0ZXJhdG9yOworICAgIH07CisKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGZvbGRfY2h1bms8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIHN0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlNCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgICAgICA0CisgICAgICAgICAgICAsIEZpcnN0CisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgU3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IGNodW5rXzsKKworICAgICAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCB0eXBlbmFtZSBjaHVua186OnN0YXRlCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgPiByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IGZvbGRfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZm9sZF9jaHVuazwgLTEgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8IEZpcnN0LExhc3QgPjo6dHlwZQorICAgICAgICAgICAgLCBmb2xkX251bGxfc3RlcDwgTGFzdCxTdGF0ZSA+CisgICAgICAgICAgICAsIGZvbGRfc3RlcDwgRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIGZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBjaHVua186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbAorICAgIDogZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2Z1bGxfbGFtYmRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mdWxsX2xhbWJkYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2NThkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBUIHJlc3VsdF87CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK3RlbXBsYXRlPCBpbnQgTiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IGFyZzxOPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQwPAorICAgICAgICAgIEYKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDEKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MTwgdHJ1ZV8sVGFnLEYsTDEgPgoreworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgcXVvdGUxPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8VDE+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDE8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQxPCBGLFQxID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDI8IEYsVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MworeworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzPCB0cnVlXyxUYWcsRixMMSxMMixMMyA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBxdW90ZTM8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NAoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NDwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQgPgoreworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgcXVvdGU0PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NDwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNAorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIHR5cGVkZWYgbGFtYmRhPCBUNSxUYWcgPiBsNTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgICwgaXNfbGU1Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDU8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQsIGw1CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWwgY2FzZSBmb3IgJ3Byb3RlY3QnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IG1wbDo6cHJvdGVjdDxUPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxUPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWxpemF0aW9ucyBmb3IgdGhlIG1haW4gJ2JpbmQnIGZvcm0KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIE1XQ1cgOC4zKy9FREcgPCAzMDMsIGxlYWRzIHRvIGFtYmlndWl0eSBvbiBEaWdpdGFsIE1hcnMKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcxLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSA+CisgICAgICAgICwgVGFnMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTsKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mjxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMj4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBsYW1iZGEpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9ncmVhdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9ncmVhdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGRkZWM5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2dyZWF0ZXIuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIGdyZWF0ZXJfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXIpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPgorICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkKKyAgICAgICAgICAgICk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZ3JlYXRlcl9lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvZ3JlYXRlcl9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc4ZTNjYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9ncmVhdGVyX2VxdWFsLmhwcApAQCAtMCwwICsxLDEwMiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBncmVhdGVyX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbAorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBncmVhdGVyX2VxdWFsX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfZXF1YWxfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBncmVhdGVyX2VxdWFsLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyX2VxdWFsKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID49CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9pbmhlcml0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjMyOGY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2luaGVyaXQuaHBwCkBAIC0wLDAgKzEsMTY2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9pbmhlcml0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQzEsIGJvb2wgQzIgPgorc3RydWN0IGluaGVyaXQyX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBUMSwgVDIKKyAgICB7CisgICAgICAgIHR5cGVkZWYgRGVyaXZlZCB0eXBlXzsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQyX2ltcGw8IGZhbHNlLHRydWUgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBEZXJpdmVkLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IFQxCisgICAgeworICAgICAgICB0eXBlZGVmIFQxIHR5cGVfOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDJfaW1wbDwgdHJ1ZSxmYWxzZSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIERlcml2ZWQsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogVDIKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVDIgdHlwZV87CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0Ml9pbXBsPCB0cnVlLHRydWUgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBEZXJpdmVkLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUMSB0eXBlXzsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgPgorc3RydWN0IGluaGVyaXQyCisgICAgOiBhdXg6OmluaGVyaXQyX2ltcGw8CisgICAgICAgICAgaXNfZW1wdHlfYmFzZTxUMT46OnZhbHVlCisgICAgICAgICwgaXNfZW1wdHlfYmFzZTxUMj46OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IGluaGVyaXQyPCBUMSxUMiA+LFQxLCBUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbmhlcml0Mjo6dHlwZV8gdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGluaGVyaXQyLCAoVDEsIFQyKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBpbmhlcml0MikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQzCisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0MjwKKyAgICAgICAgICAgICAgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDMKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMworICAgICAgICAsIGluaGVyaXQzCisgICAgICAgICwgKCBUMSwgVDIsIFQzKQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMywgaW5oZXJpdDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NAorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDM8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgaW5oZXJpdDQKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNCwgaW5oZXJpdDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgICwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NQorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDQ8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDUKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGluaGVyaXQ1CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg1LCBpbmhlcml0NSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorICAgID4KK3N0cnVjdCBpbmhlcml0CisgICAgOiBpbmhlcml0NTwgVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQ8IG5hLG5hLG5hLG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwKKworICAgICAgICAgIHR5cGVuYW1lIFQxID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDIgPSBlbXB0eV9iYXNlCisgICAgICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKworICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgICAgIDogaW5oZXJpdDwgVDEsVDIsVDMsVDQsVDUgPgorICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0xBTUJEQSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfVEVNUExBVEVfQVJJVFkoNSwgNSwgaW5oZXJpdCkKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYTI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTMzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yLCB0eXBlbmFtZSBTdGF0ZSA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFN0YXRlT3AsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvck9wOjp0eXBlIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBQcmVkaWNhdGUsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBub3RfbGFzdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQobm90X2xhc3QpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBJdGVyYXRvcixTdGF0ZSxGb3J3YXJkT3AsIG1wbDo6bmV4dDxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBQcmVkaWNhdGUsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBub3RfbGFzdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQobm90X2xhc3QpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBJdGVyYXRvcixTdGF0ZSxCYWNrd2FyZE9wLCBpZGVudGl0eTxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZFByZWRpY2F0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgQmFja3dhcmRQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ltcGwKK3sKKyBwcml2YXRlOgorICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwgSXRlcmF0b3IsU3RhdGUgPiBmb3J3YXJkX3N0ZXAwOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAzOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXA0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6bm90X2xhc3QKKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICAsIEZvcndhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBCYWNrd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgPgorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUgYmFja3dhcmRfc3RlcDQ7CisKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDQ6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAzOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMzo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAyOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDE6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAwOworICAgIAorCisgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDA6OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDQ6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzUzMTcwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2l0ZXJfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI5MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGl0ZXJfZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTMsaXRlcjMgPjo6dHlwZSBzdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBpdGVyX2ZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICwgRmlyc3QKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBTdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gY2h1bmtfOworCisgICAgICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICB0eXBlbmFtZSBpc19zYW1lPCBGaXJzdCxMYXN0ID46OnR5cGUKKyAgICAgICAgICAgICwgaXRlcl9mb2xkX251bGxfc3RlcDwgTGFzdCxTdGF0ZSA+CisgICAgICAgICAgICAsIGl0ZXJfZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9zdGVwCit7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBjaHVua186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsCisgICAgOiBpdGVyX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGFtYmRhX25vX2N0cHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZmM2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGFtYmRhX25vX2N0cHMuaHBwCkBAIC0wLDAgKzEsMjI5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9ub19jdHBzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICBib29sIEMxID0gZmFsc2UsIGJvb2wgQzIgPSBmYWxzZSwgYm9vbCBDMyA9IGZhbHNlLCBib29sIEM0ID0gZmFsc2UKKyAgICAsIGJvb2wgQzUgPSBmYWxzZQorICAgID4KK3N0cnVjdCBsYW1iZGFfb3IKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGFtYmRhX29yPCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBBcml0eSA+IHN0cnVjdCBsYW1iZGFfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgIHR5cGVkZWYgaXNfcGxhY2Vob2xkZXI8VD4gaXNfbGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGw0Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzUsIFRhZywgZmFsc2VfID4gbDU7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDU6OmlzX2xlIGlzX2xlNTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNSk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGw0Ojp0eXBlLCB0eXBlbmFtZSBsNTo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgLCB0eXBlbmFtZSBQcm90ZWN0CisgICAgPgorc3RydWN0IGxhbWJkYQoreworICAgIC8vLyBNZXRhZnVuY3Rpb24gZm9yd2FyZGluZyBjb25mdXNlcyBNU1ZDIDYueAorICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp0ZW1wbGF0ZV9hcml0eTxUPjo6dHlwZSBhcml0eV87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9pbXBsPGFyaXR5Xz4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULFRhZyxQcm90ZWN0ID4gbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjp0eXBlIHR5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6aXNfbGUgaXNfbGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLCBsYW1iZGEsIChULCBUYWcsIFByb3RlY3QpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigxLCAzLCBsYW1iZGEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xlc3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZjczYTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGVzcy5ocHAKQEAgLTAsMCArMSwxMDIgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xlc3MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBsZXNzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3MKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbGVzc19pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBsZXNzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbGVzc190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzcywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sZXNzX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjAzZmJlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIGxlc3NfZXF1YWxfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGxlc3NfZXF1YWxfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGxlc3NfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3NfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPD0KKyAgICAgICAgICAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApCisgICAgICAgICAgICApOworICAgICAgICB0eXBlZGVmIGJvb2xfPHZhbHVlPiB0eXBlOworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xpc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xpc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMDYyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGlzdC5ocHAKQEAgLTAsMCArMSw1NTYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBsaXN0X2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsaXN0MDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTwKKyAgICAgICAgICAgICAgVDAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0ODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19saXN0X2FyZworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19saXN0X2FyZzxuYT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAKKyAgICAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1CisgICAgLCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMAorICAgID4KK3N0cnVjdCBsaXN0X2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfbGlzdF9hcmc8VDE+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQyPjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDM+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQ0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDU+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDc+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQ4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDk+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQxMD46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQxMT46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDEzPjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUMTU+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQxNj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQxNz46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDE5Pjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbGlzdF9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6Omxpc3RfY291bnRfYXJnczwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4gYXJnX251bV87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGlzdF9jaG9vc2VyPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBsaXN0CisgICAgOiBhdXg6Omxpc3RfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGlzdF9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xpc3RfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbGlzdF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTBmOTJlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL2xpc3RfYy5ocHAKQEAgLTAsMCArMSw1MzQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3RfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGxpc3RfY19jaG9vc2VyOworCit9CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MF9jPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MV9jPAorICAgICAgICAgICAgICBULCBDMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDJfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0M19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDVfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Nl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0N19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDhfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTJfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE0X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTVfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MThfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDIwX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIEMgPgorc3RydWN0IGlzX2xpc3RfY19hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfbGlzdF9jX2FyZzxMT05HX01BWD4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1LCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgLCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgLCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOSwgbG9uZyBDMjAKKyAgICA+CitzdHJ1Y3QgbGlzdF9jX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfbGlzdF9jX2FyZzxDMT46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzM+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEM1Pjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEM2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDNz46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDOD46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8Qzk+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDMTE+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDMTM+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDMTU+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDMTc+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDMTk+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBsaXN0X2NfaW1wbAoreworICAgIHR5cGVkZWYgYXV4OjpsaXN0X2NfY291bnRfYXJnczwKKyAgICAgICAgICBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4gYXJnX251bV87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGlzdF9jX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IGxpc3RfYworICAgIDogYXV4OjpsaXN0X2NfaW1wbDwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGlzdF9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbWFwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9tYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNjY2MDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbWFwLmhwcApAQCAtMCwwICsxLDU1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbWFwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgbWFwX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIG1hcDA8CisgICAgICAgICAgICAgCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxPAorICAgICAgICAgICAgICBUMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19tYXBfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX21hcF9hcmc8bmE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwCisgICAgLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNQorICAgICwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAKKyAgICA+CitzdHJ1Y3QgbWFwX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfbWFwX2FyZzxUMT46OnZhbHVlICsgaXNfbWFwX2FyZzxUMj46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDM+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQ1Pjo6dmFsdWUgKyBpc19tYXBfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUNz46OnZhbHVlICsgaXNfbWFwX2FyZzxUOD46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDk+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUMTE+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUMTM+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUMTU+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUMTc+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUMTk+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IG1hcF9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6Om1hcF9jb3VudF9hcmdzPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjptYXBfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWFwCisgICAgOiBhdXg6Om1hcF9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjptYXBfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9taW51cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbWludXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNzBjNDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbWludXMuaHBwCkBAIC0wLDAgKzEsMTQ4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9taW51cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IG1pbnVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbWludXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1pbnVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtaW51c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbWludXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1pbnVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWludXMKKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgbWludXMyPCBOMSxOMiA+CisgICAgICAgICwgbWludXM8CisgICAgICAgICAgICAgIG1pbnVzMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbWludXNfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbWludXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBtaW51c190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbWludXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBtaW51cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IG1pbnVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xIC0gbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWludXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6Om1pbnVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZThlZWY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL21vZHVsdXMuaHBwCkBAIC0wLDAgKzEsMTE1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtb2R1bHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBtb2R1bHVzCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIG1vZHVsdXNfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbW9kdWx1c190YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIG1vZHVsdXMsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIG1vZHVsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4xLCBUIG4yID4KK3N0cnVjdCBtb2R1bHVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICUgbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbW9kdWx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGF1eDo6bW9kdWx1c193a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCBOMTo6dmFsdWUKKyAgICAgICAgICAgICwgTjI6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbm90X2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9ub3RfZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhOGJiNzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvbm90X2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDEwMiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbm90X2VxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBub3RfZXF1YWxfdG9faW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBub3RfZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG5vdF9lcXVhbF90bworICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBub3RfZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBub3RfZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIG5vdF9lcXVhbF90bykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICE9CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9vci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYjNhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvb3IuaHBwCkBAIC0wLDAgKzEsNzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL29yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sIENfID4gc3RydWN0IG9yX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiB0cnVlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgb3JfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBvcl9pbXBsPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsZmFsc2VfID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBvcl9pbXBsPGZhbHNlPgorICAgIDo6cmVzdWx0XzwgZmFsc2VfLGZhbHNlXyxmYWxzZV8sZmFsc2VfID4KKyAgICAgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSBmYWxzZV8sIHR5cGVuYW1lIFQ0ID0gZmFsc2VfLCB0eXBlbmFtZSBUNSA9IGZhbHNlXworICAgID4KK3N0cnVjdCBvcl8KKworICAgIDogYXV4Ojpvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IFQyLFQzLFQ0LFQ1ID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG9yXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgb3JfCisgICAgKQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcGxhY2Vob2xkZXJzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Q0NTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3BsYWNlaG9sZGVycy5ocHAKQEAgLTAsMCArMSwxMDUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3BsYWNlaG9sZGVycy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwgLTEgPiBfOworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8pCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol87Cit9CisKK319CisKKy8vLyBhZ3VydCwgMTcvbWFyLzAyOiBvbmUgbW9yZSBwbGFjZWhvbGRlciBmb3IgdGhlIGxhc3QgJ2FwcGx5IycgCisvLy8gc3BlY2lhbGl6YXRpb24KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDE+IF8xOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzEpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8xOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mj4gXzI7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzI7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwzPiBfMzsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8zKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMzsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDQ+IF80OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzQpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol80OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8NT4gXzU7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzU7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw2PiBfNjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF82KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNjsKK30KKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9wbHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9wbHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzg4ODRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3BsdXMuaHBwCkBAIC0wLDAgKzEsMTQ4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9wbHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgcGx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHBsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHBsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBwbHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBwbHVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgcGx1cworCisgICAgOiBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBwbHVzMjwgTjEsTjIgPgorICAgICAgICAsIHBsdXM8CisgICAgICAgICAgICAgIHBsdXMyPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgcGx1c19pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBwbHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgcGx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgcGx1czIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHBsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4xLCBUIG4yID4KK3N0cnVjdCBwbHVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICsgbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcGx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGF1eDo6cGx1c193a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCBOMTo6dmFsdWUKKyAgICAgICAgICAgICwgTjI6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcXVvdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3F1b3RlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTc3ZmJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3F1b3RlLmhwcApAQCAtMCwwICsxLDExIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9xdW90ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3JldmVyc2VfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2UzY2RkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3JldmVyc2VfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDM0MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rOworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUyIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCByZXN1bHRfPCBpbnQsaW50LGludCxpbnQsaW50ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCBpdGVyNAorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIHJldmVyc2VfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCByZXZlcnNlX2ZvbGRfc3RlcDwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfc3RlcAoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGUKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsCisgICAgOiByZXZlcnNlX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NDE3ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwzNDMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCByZXN1bHRfPCBpbnQsaW50LGludCxpbnQsaW50ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKKyAgICB9OworCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgaW50LGludCxpbnQsaW50LGludCA+CisgICAgeworICAgICAgICB0eXBlZGVmIGludCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpbnQgaXRlcmF0b3I7CisgICAgfTsKKworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGU0IGJrd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlNCxpdGVyMyA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworICAgIH07CisKKyAgICAvLy8gRVRJIHdvcmthcm91bmQKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCByZXN1bHRfPCBpbnQsaW50LGludCxpbnQsaW50ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworCit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuaworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCBpdGVyNAorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX3N0ZXA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIHJldmVyc2VfaXRlcl9mb2xkX251bGxfc3RlcDwgTGFzdCxTdGF0ZSA+CisgICAgICAgICAgICAsIHJldmVyc2VfaXRlcl9mb2xkX3N0ZXA8IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKKworICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88IGludCxpbnQsaW50LGludCxpbnQgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaW50IGl0ZXJhdG9yOworICAgIH07CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfc3RlcAoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9zdGVwOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8CisgICAgICAgICAgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjpzdGF0ZQorICAgICAgICAsIEZpcnN0CisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsCisgICAgOiByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9zZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NjQ4NzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0LmhwcApAQCAtMCwwICsxLDU1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2V0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3Qgc2V0X2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHNldDA8CisgICAgICAgICAgICAgCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxPAorICAgICAgICAgICAgICBUMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0ODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19zZXRfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3NldF9hcmc8bmE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwCisgICAgLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNQorICAgICwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAKKyAgICA+CitzdHJ1Y3Qgc2V0X2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfc2V0X2FyZzxUMT46OnZhbHVlICsgaXNfc2V0X2FyZzxUMj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDM+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfYXJnPFQ1Pjo6dmFsdWUgKyBpc19zZXRfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUNz46OnZhbHVlICsgaXNfc2V0X2FyZzxUOD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDk+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTE+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTM+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTU+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTc+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTk+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHNldF9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OnNldF9jb3VudF9hcmdzPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpzZXRfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3Qgc2V0CisgICAgOiBhdXg6OnNldF9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpzZXRfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9zZXRfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YTliMTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2V0X2MuaHBwCkBAIC0wLDAgKzEsNTM0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zZXRfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IHNldF9jX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MF9jPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDFfYzwKKyAgICAgICAgICAgICAgVCwgQzAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Ml9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0M19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDRfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Nl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDdfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTFfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTJfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxM19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTRfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTVfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTdfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MThfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjBfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgQyA+CitzdHJ1Y3QgaXNfc2V0X2NfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3NldF9jX2FyZzxMT05HX01BWD4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1LCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgLCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgLCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOSwgbG9uZyBDMjAKKyAgICA+CitzdHJ1Y3Qgc2V0X2NfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc19zZXRfY19hcmc8QzE+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMz46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEM0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEM1Pjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8Qzc+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDOD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDOT46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEMxMD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMTE+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzEzPjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEMxNT46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEMxNj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMTc+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzE5Pjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBzZXRfY19pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OnNldF9jX2NvdW50X2FyZ3M8CisgICAgICAgICAgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnNldF9jX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHNldF9jCisgICAgOiBhdXg6OnNldF9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnNldF9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2hpZnRfbGVmdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2hpZnRfbGVmdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MwNTY4OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC9zaGlmdF9sZWZ0LmhwcApAQCAtMCwwICsxLDExNCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2hpZnRfbGVmdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdAorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBzaGlmdF9sZWZ0X2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9sZWZ0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9sZWZ0KQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgU2hpZnQsIFQgbiwgU2hpZnQgcyA+CitzdHJ1Y3Qgc2hpZnRfbGVmdF93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuIDw8IHMpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OnNoaWZ0X2xlZnRfd2tuZDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBTOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsIE46OnZhbHVlCisgICAgICAgICAgICAsIFM6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvc2hpZnRfcmlnaHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3NoaWZ0X3JpZ2h0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjYzZDUxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3NoaWZ0X3JpZ2h0LmhwcApAQCAtMCwwICsxLDExNCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2hpZnRfcmlnaHQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X3JpZ2h0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodAorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBzaGlmdF9yaWdodF9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9yaWdodCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfcmlnaHQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBTaGlmdCwgVCBuLCBTaGlmdCBzID4KK3N0cnVjdCBzaGlmdF9yaWdodF93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuID4+IHMpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpzaGlmdF9yaWdodF93a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIFM6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgTjo6dmFsdWUKKyAgICAgICAgICAgICwgUzo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC90ZW1wbGF0ZV9hcml0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdGVtcGxhdGVfYXJpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMWRiYTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdGVtcGxhdGVfYXJpdHkuaHBwCkBAIC0wLDAgKzEsNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHlfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBtcGw6OmludF88IC0xID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsPHRydWU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IEY6OmFyaXR5CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHkKKyAgICA6IHRlbXBsYXRlX2FyaXR5X2ltcGw8IDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfcmViaW5kPEY+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxGPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHRlbXBsYXRlX2FyaXR5PGludD4KKyAgICA6IG1wbDo6aW50XzwgLTEgPgoreworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdGltZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZTI2YTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdGltZXMuaHBwCkBAIC0wLDAgKzEsMTQ4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC90aW1lcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IHRpbWVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgdGltZXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHRpbWVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgdGltZXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHRpbWVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgdGltZXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHRpbWVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgdGltZXMKKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgdGltZXMyPCBOMSxOMiA+CisgICAgICAgICwgdGltZXM8CisgICAgICAgICAgICAgIHRpbWVzMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCB0aW1lczIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgdGltZXNfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdGltZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0aW1lc190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgdGltZXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCB0aW1lcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IHRpbWVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICogbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGltZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OnRpbWVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC91bnBhY2tfYXJncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdW5wYWNrX2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZTc0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNjAvdW5wYWNrX2FyZ3MuaHBwCkBAIC0wLDAgKzEsMTA5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC91bnBhY2tfYXJncy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHNpemUpID4gc3RydWN0IHVucGFja19hcmdzX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHVucGFja19hcmdzX2ltcGw8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGFwcGx5MDwKKyAgICAgICAgICAgICAgRgorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHkxPAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTI8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTM8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTQ8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDw1PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHk1PAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncyw0ID46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IHVucGFja19hcmdzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGF1eDo6dW5wYWNrX2FyZ3NfaW1wbDwgc2l6ZTxBcmdzPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgRixBcmdzID4KKworICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9QQVNTX1RIUk9VR0hfTEFNQkRBX1NQRUMoMSwgdW5wYWNrX2FyZ3MpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRlZTkyMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3IuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8CisgICAgICAgICAgICAgIFQwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyPAorICAgICAgICAgICAgICBUMCwgVDEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX3ZlY3Rvcl9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfdmVjdG9yX2FyZzxuYT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAKKyAgICAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1CisgICAgLCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc192ZWN0b3JfYXJnPFQxPjo6dmFsdWUgKyBpc192ZWN0b3JfYXJnPFQyPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9hcmc8VDU+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQ3Pjo6dmFsdWUgKyBpc192ZWN0b3JfYXJnPFQ4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUOT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxMT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxMz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxNT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxNz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxOT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZlY3Rvcl9jaG9vc2VyPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3IKKyAgICA6IGF1eDo6dmVjdG9yX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZlY3Rvcl9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzYwL3ZlY3Rvcl9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3JfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U2NDViOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM2MC92ZWN0b3JfYy5ocHAKQEAgLTAsMCArMSw1MzQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvcl9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IwX2M8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMV9jPAorICAgICAgICAgICAgICBULCBUKEMwKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMikKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yN19jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMl9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxN19jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNykKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBDID4KK3N0cnVjdCBpc192ZWN0b3JfY19hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfdmVjdG9yX2NfYXJnPExPTkdfTUFYPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICAsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICAsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5LCBsb25nIEMyMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfY19jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX3ZlY3Rvcl9jX2FyZzxDMT46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMyPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMzPjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8QzU+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDNj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDNz46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEM4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEM5Pjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMxMT46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMxMj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMTM+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8QzE1Pjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMxNz46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMxOD46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMTk+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jX2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX2NfY291bnRfYXJnczwKKyAgICAgICAgICBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4gYXJnX251bV87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dmVjdG9yX2NfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2MKKyAgICA6IGF1eDo6dmVjdG9yX2NfaW1wbDwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dmVjdG9yX2NfaW1wbDwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hZHZhbmNlX2JhY2t3YXJkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hZHZhbmNlX2JhY2t3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTBjODI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FkdmFuY2VfYmFja3dhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9iYWNrd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2JhY2t3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FkdmFuY2VfZm9yd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYWR2YW5jZV9mb3J3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2E1YWZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FkdmFuY2VfZm9yd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2ZvcndhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfZm9yd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MThmMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FuZC5ocHAKQEAgLTAsMCArMSw3MSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sIENfID4gc3RydWN0IGFuZF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhbmRfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IGFuZF9pbXBsPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsdHJ1ZV8gPgorICAgIHsKKyAgICB9OworCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzwgdHJ1ZV8sdHJ1ZV8sdHJ1ZV8sdHJ1ZV8gPgorICAgICAgICA6IHRydWVfCisgICAgeworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gdHJ1ZV8sIHR5cGVuYW1lIFQ0ID0gdHJ1ZV8sIHR5cGVuYW1lIFQ1ID0gdHJ1ZV8KKyAgICA+CitzdHJ1Y3QgYW5kXworCisgICAgOiBhdXg6OmFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IFQyLFQzLFQ0LFQ1ID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFuZF8KKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigKKyAgICAgIDIKKyAgICAsIDUKKyAgICAsIGFuZF8KKyAgICApCisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYXBwbHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWYxYzcxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5LmhwcApAQCAtMCwwICsxLDE2MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTAKKworICAgIDogYXBwbHlfd3JhcDA8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDEKKyAgICAgICAgLCBhcHBseTAKKyAgICAgICAgLCAoRiApCisgICAgICAgICkKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHkwPGludD4KK3sKKyAgICB0eXBlZGVmIGludCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTEKKworICAgIDogYXBwbHlfd3JhcDE8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMgorICAgICAgICAsIGFwcGx5MQorICAgICAgICAsIChGLCBUMSkKKyAgICAgICAgKQorfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseTE8IGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTIKKworICAgIDogYXBwbHlfd3JhcDI8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBhcHBseTIKKyAgICAgICAgLCAoRiwgVDEsIFQyKQorICAgICAgICApCit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5MjwgaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHkzCisKKyAgICA6IGFwcGx5X3dyYXAzPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNAorICAgICAgICAsIGFwcGx5MworICAgICAgICAsIChGLCBUMSwgVDIsIFQzKQorICAgICAgICApCit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5MzwgaW50LGludCxpbnQsaW50ID4KK3sKKyAgICB0eXBlZGVmIGludCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQKKworICAgIDogYXBwbHlfd3JhcDQ8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFwcGx5NAorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseTQ8IGludCxpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTUKKworICAgIDogYXBwbHlfd3JhcDU8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDYKKyAgICAgICAgLCBhcHBseTUKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5NTwgaW50LGludCxpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcHBseV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYTlhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHkxOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTM7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk0OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcHBseV93cmFwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcHBseV93cmFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmQyZjA0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2FwcGx5X3dyYXAuaHBwCkBAIC0wLDAgKzEsMTM4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKworICAgICwgdHlwZW5hbWUgaGFzX2FwcGx5XyA9IHR5cGVuYW1lIGF1eDo6aGFzX2FwcGx5PEY+Ojp0eXBlCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDAKKworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgIAorICAgICAgICA+Ojp0eXBlIHR5cGU7CisKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHlfd3JhcDA8aW50PgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDEKKworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICBUMQorICAgICAgICA+Ojp0eXBlIHR5cGU7CisKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHlfd3JhcDE8IGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAyCisKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgVDEsIFQyCisgICAgICAgID46OnR5cGUgdHlwZTsKKworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV93cmFwMjwgaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMworCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgPjo6dHlwZSB0eXBlOworCit9OworCisvLy8gd29ya2Fyb3VuZCBmb3IgRVRJIGJ1ZwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X3dyYXAzPCBpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDQKKworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Ojp0eXBlIHR5cGU7CisKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBFVEkgYnVnCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXBwbHlfd3JhcDQ8IGludCxpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1CisKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID46OnR5cGUgdHlwZTsKKworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIEVUSSBidWcKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV93cmFwNTwgaW50LGludCxpbnQsaW50LGludCxpbnQgPgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYXJnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMTU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYXJnLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXJnLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwgLTEgPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IC0xKTsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUyIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDM+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMyk7CisgICAgdHlwZWRlZiBhcmc8ND4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU1IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsIGFyZykKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iYXNpY19iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iYXNpY19iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjY4MDIzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2Jhc2ljX2JpbmQuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9iYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCByZXNvbHZlX2FyZ19pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmVzb2x2ZV9hcmdfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAsIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnCisgICAgOiByZXNvbHZlX2FyZ19pbXBsPCBpc19iaW5kX3RlbXBsYXRlPFQ+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVTEsVTIsVTMsVTQsVTUgPgoreworfTsKKwordGVtcGxhdGU8IGludCBhcml0eV8gPiBzdHJ1Y3QgYmluZF9jaG9vc2VyOworCithdXg6Om5vX3RhZyBpc19iaW5kX2hlbHBlciguLi4pOwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBhdXg6Om5vX3RhZyBpc19iaW5kX2hlbHBlcihwcm90ZWN0PFQ+Kik7CisKK3RlbXBsYXRlPCBpbnQgTiA+CithdXg6Onllc190YWcgaXNfYmluZF9oZWxwZXIoYXJnPE4+Kik7CisKK3RlbXBsYXRlPCBib29sIGlzX3JlZl8gID0gdHJ1ZSA+CitzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2JpbmRfdGVtcGxhdGVfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgICBzaXplb2YoYXV4Ojppc19iaW5kX2hlbHBlcihzdGF0aWNfY2FzdDxUKj4oMCkpKQorICAgICAgICAgICAgICAgID09IHNpemVvZihhdXg6Onllc190YWcpCisgICAgICAgICAgICApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlCisgICAgOiBpc19iaW5kX3RlbXBsYXRlX2ltcGw8IDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcmVmZXJlbmNlX2ltcGw8VD46OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDA8Rj4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDE8IEYsVDEgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDI8IEYsVDEsVDIgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQzPCBGLFQxLFQyLFQzID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kNDwgRixUMSxUMixUMyxUNCA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzNiOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpbmQuaHBwCkBAIC0wLDAgKzEsNDMyIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgcmVzb2x2ZV9hcmdfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJlc29sdmVfYXJnX2ltcGw8dHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzCisgICAgICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgLCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworICAgIDogcmVzb2x2ZV9hcmdfaW1wbDwgaXNfYmluZF90ZW1wbGF0ZTxUPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULFUxLFUyLFUzLFU0LFU1ID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJnID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgQXJnIG5leHQ7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZ19pbXBsPCBhcmc8IC0xID4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmcgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PEFyZz46OnR5cGUgbmV4dDsKKyAgICAgICAgdHlwZWRlZiBBcmcgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFyZyA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZworICAgIDogcmVwbGFjZV91bm5hbWVkX2FyZ19pbXBsPFQ+Ojp0ZW1wbGF0ZSByZXN1bHRfPEFyZz4KK3sKK307CisKK3RlbXBsYXRlPCBpbnQgYXJpdHlfID4gc3RydWN0IGJpbmRfY2hvb3NlcjsKKworYXV4Ojpub190YWcgaXNfYmluZF9oZWxwZXIoLi4uKTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gYXV4Ojpub190YWcgaXNfYmluZF9oZWxwZXIocHJvdGVjdDxUPiopOworCit0ZW1wbGF0ZTwgaW50IE4gPgorYXV4Ojp5ZXNfdGFnIGlzX2JpbmRfaGVscGVyKGFyZzxOPiopOworCit0ZW1wbGF0ZTwgYm9vbCBpc19yZWZfICA9IHRydWUgPgorc3RydWN0IGlzX2JpbmRfdGVtcGxhdGVfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19iaW5kX3RlbXBsYXRlX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAgc2l6ZW9mKGF1eDo6aXNfYmluZF9oZWxwZXIoc3RhdGljX2Nhc3Q8VCo+KDApKSkKKyAgICAgICAgICAgICAgICA9PSBzaXplb2YoYXV4Ojp5ZXNfdGFnKQorICAgICAgICAgICAgKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZQorICAgIDogaXNfYmluZF90ZW1wbGF0ZV9pbXBsPCA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3JlZmVyZW5jZV9pbXBsPFQ+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxUPgoreworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMDxGPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMTwgRixUMSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQyPCBGLFQxLFQyID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDM8IEYsVDEsVDIsVDMgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDQsIGJpbmQzKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDQsIGJpbmQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDQsbjQgPiByNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6dHlwZSBhNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6bmV4dCBuNTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDUsbjUgPiByNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNTo6dHlwZSBhNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNTo6bmV4dCBuNjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE1LFUxLFUyLFUzLFU0LFU1ID4gdDU7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYmluZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpbmRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmQxYjZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTE0YzI1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpdGFuZC5ocHAKQEAgLTAsMCArMSwxNTEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdGFuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IGJpdGFuZF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0YW5kX3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGJpdGFuZF8yOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRhbmRfCisKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgYml0YW5kXzI8IE4xLE4yID4KKyAgICAgICAgLCBiaXRhbmRfPAorICAgICAgICAgICAgICBiaXRhbmRfMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworICAgID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEKKyAgICAsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdGFuZF8yCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIGJpdGFuZF9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBiaXRhbmRfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBiaXRhbmRfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGJpdGFuZF8yLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRhbmRfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgVCBuMSwgVCBuMiA+CitzdHJ1Y3QgYml0YW5kX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICYgbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0YW5kX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpiaXRhbmRfd2tuZDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgTjE6OnZhbHVlCisgICAgICAgICAgICAsIE4yOjp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZQorCisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI1MDBmZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaXRvci5ocHAKQEAgLTAsMCArMSwxNTEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgYml0b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0b3JfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGJpdG9yX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXRvcl90YWcKKyAgICA6IHRhZzwgVCxuYSA+Cit7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBiaXRvcl8yOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRvcl8KKworICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBiaXRvcl8yPCBOMSxOMiA+CisgICAgICAgICwgYml0b3JfPAorICAgICAgICAgICAgICBiaXRvcl8yPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCisgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXRvcl8yCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIGJpdG9yX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGJpdG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYml0b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGJpdG9yXzIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGJpdG9yX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xIHwgbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OmJpdG9yX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaXR4b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDllYjQ1YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9iaXR4b3IuaHBwCkBAIC0wLDAgKzEsMTUxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXR4b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBiaXR4b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXR4b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdHhvcl90YWcKKyAgICA6IHRhZzwgVCxuYSA+Cit7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBiaXR4b3JfMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0eG9yXworCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGlmXzwKKworICAgICAgICAgIGlzX25hPE4zPgorICAgICAgICAsIGJpdHhvcl8yPCBOMSxOMiA+CisgICAgICAgICwgYml0eG9yXzwKKyAgICAgICAgICAgICAgYml0eG9yXzI8IE4xLE4yID4KKyAgICAgICAgICAgICwgTjMsIE40LCBONQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlCisKKyAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXR4b3JfMgorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBiaXR4b3JfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYml0eG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYml0eG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBiaXR4b3JfMiwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0eG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGJpdHhvcl93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuMSBeIG4yKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPCBULHZhbHVlID4gdHlwZTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGJpdHhvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGF1eDo6Yml0eG9yX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9kZXF1ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZGVxdWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhN2UyYzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZGVxdWUuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kZXF1ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGRlcXVlX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTwKKyAgICAgICAgICAgICAgVDAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19kZXF1ZV9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfZGVxdWVfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMAorICAgICwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUKKyAgICAsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IGRlcXVlX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfZGVxdWVfYXJnPFQxPjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDM+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX2RlcXVlX2FyZzxUNT46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQ3Pjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDk+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDExPjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQxMz46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQxND46OnZhbHVlIAorICAgICAgICArIGlzX2RlcXVlX2FyZzxUMTU+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDE3Pjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQxOT46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBkZXF1ZV9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OmRlcXVlX2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmRlcXVlX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlCisgICAgOiBhdXg6OmRlcXVlX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmRlcXVlX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZGl2aWRlcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZGl2aWRlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE4Y2RhNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9kaXZpZGVzLmhwcApAQCAtMCwwICsxLDE1MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZGl2aWRlcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IGRpdmlkZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZGl2aWRlc190YWcKKyAgICA6IHRhZzwgVCxuYSA+Cit7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBkaXZpZGVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGl2aWRlcworCisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGlmXzwKKworICAgICAgICAgIGlzX25hPE4zPgorICAgICAgICAsIGRpdmlkZXMyPCBOMSxOMiA+CisgICAgICAgICwgZGl2aWRlczwKKyAgICAgICAgICAgICAgZGl2aWRlczI8IE4xLE4yID4KKyAgICAgICAgICAgICwgTjMsIE40LCBONQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlCisKKyAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBkaXZpZGVzMgorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBkaXZpZGVzX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBkaXZpZGVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBkaXZpZGVzMiwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgZGl2aWRlcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGRpdmlkZXNfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobjEgLyBuMikpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkaXZpZGVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpkaXZpZGVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YzYyZWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9lcXVhbF90by5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMV8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzEpOjp2YWx1ZQorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcyXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMik6OnZhbHVlCisgICAgPgorc3RydWN0IGVxdWFsX3RvX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZXF1YWxfdG9fdGFnCisgICAgOiB0YWc8IFQsbmEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG8KKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBlcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGVxdWFsX3RvKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA9PQorICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkKKyAgICAgICAgICAgICk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0Y2FjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI0NSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZm9sZF9jaHVuazwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBmb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGZvbGRfY2h1bms8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZm9sZF9jaHVuazwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBmb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBzdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgZm9sZF9jaHVuaworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBmb2xkX2ltcGw8CisgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICwgRmlyc3QKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBTdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gY2h1bmtfOworCisgICAgICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX3N0ZXA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICA+CitzdHJ1Y3QgZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIGZvbGRfbnVsbF9zdGVwPCBMYXN0LFN0YXRlID4KKyAgICAgICAgICAgICwgZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIGZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBjaHVua186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbAorICAgIDogZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2Z1bGxfbGFtYmRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9mdWxsX2xhbWJkYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2NThkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBUIHJlc3VsdF87CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK3RlbXBsYXRlPCBpbnQgTiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IGFyZzxOPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQwPAorICAgICAgICAgIEYKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDEKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MTwgdHJ1ZV8sVGFnLEYsTDEgPgoreworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgcXVvdGUxPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8VDE+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDE8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQxPCBGLFQxID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDI8IEYsVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MworeworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzPCB0cnVlXyxUYWcsRixMMSxMMixMMyA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBxdW90ZTM8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NAoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NDwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQgPgoreworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgcXVvdGU0PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NDwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNAorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIHR5cGVkZWYgbGFtYmRhPCBUNSxUYWcgPiBsNTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgICwgaXNfbGU1Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDU8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQsIGw1CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWwgY2FzZSBmb3IgJ3Byb3RlY3QnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IG1wbDo6cHJvdGVjdDxUPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxUPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWxpemF0aW9ucyBmb3IgdGhlIG1haW4gJ2JpbmQnIGZvcm0KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIE1XQ1cgOC4zKy9FREcgPCAzMDMsIGxlYWRzIHRvIGFtYmlndWl0eSBvbiBEaWdpdGFsIE1hcnMKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcxLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSA+CisgICAgICAgICwgVGFnMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTsKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mjxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMj4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBsYW1iZGEpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9ncmVhdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9ncmVhdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTQ1ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2dyZWF0ZXIuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgZ3JlYXRlcl9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlciwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcikKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9ncmVhdGVyX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmFhOTdiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2dyZWF0ZXJfZXF1YWwuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWwKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgZ3JlYXRlcl9lcXVhbF9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl9lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgZ3JlYXRlcl9lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcl9lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+PQorICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkKKyAgICAgICAgICAgICk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvaW5oZXJpdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvaW5oZXJpdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIzMjhmNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pbmhlcml0LmhwcApAQCAtMCwwICsxLDE2NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvaW5oZXJpdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIEMxLCBib29sIEMyID4KK3N0cnVjdCBpbmhlcml0Ml9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIERlcml2ZWQsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogVDEsIFQyCisgICAgeworICAgICAgICB0eXBlZGVmIERlcml2ZWQgdHlwZV87CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0Ml9pbXBsPCBmYWxzZSx0cnVlID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBUMQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBUMSB0eXBlXzsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQyX2ltcGw8IHRydWUsZmFsc2UgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBEZXJpdmVkLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IFQyCisgICAgeworICAgICAgICB0eXBlZGVmIFQyIHR5cGVfOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDJfaW1wbDwgdHJ1ZSx0cnVlID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVDEgdHlwZV87CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgID4KK3N0cnVjdCBpbmhlcml0MgorICAgIDogYXV4Ojppbmhlcml0Ml9pbXBsPAorICAgICAgICAgIGlzX2VtcHR5X2Jhc2U8VDE+Ojp2YWx1ZQorICAgICAgICAsIGlzX2VtcHR5X2Jhc2U8VDI+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBpbmhlcml0MjwgVDEsVDIgPixUMSwgVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW5oZXJpdDI6OnR5cGVfIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBpbmhlcml0MiwgKFQxLCBUMikpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgaW5oZXJpdDIpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0MworICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDI8CisgICAgICAgICAgICAgIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBpbmhlcml0MworICAgICAgICAsICggVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGluaGVyaXQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDQKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQzPAorICAgICAgICAgICAgICBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNAorICAgICAgICAsIGluaGVyaXQ0CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDQsIGluaGVyaXQ0KQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEsIHR5cGVuYW1lIFQ0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ1ID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDUKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQ0PAorICAgICAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBpbmhlcml0NQorICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNSwgaW5oZXJpdDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdAorICAgIDogaW5oZXJpdDU8IFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0PCBuYSxuYSxuYSxuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8CisKKyAgICAgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICAgICAsIHR5cGVuYW1lIFQzID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDQgPSBlbXB0eV9iYXNlCisgICAgICAgICwgdHlwZW5hbWUgVDUgPSBlbXB0eV9iYXNlCisKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgICAgICA6IGluaGVyaXQ8IFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICB7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX1RFTVBMQVRFX0FSSVRZKDUsIDUsIGluaGVyaXQpCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGEyODY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApAQCAtMCwwICsxLDEzMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAxLTIwMDIKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgU3RhdGUgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBTdGF0ZU9wLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSXRlcmF0b3JPcDo6dHlwZSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsRm9yd2FyZE9wLCBtcGw6Om5leHQ8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgUHJlZGljYXRlLFN0YXRlLEl0ZXJhdG9yID46OnR5cGUgbm90X2xhc3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKG5vdF9sYXN0KTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgSXRlcmF0b3IsU3RhdGUsQmFja3dhcmRPcCwgaWRlbnRpdHk8SXRlcmF0b3I+ID4gaW1wbF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGltcGxfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRQcmVkaWNhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9pbXBsCit7CisgcHJpdmF0ZToKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8IEl0ZXJhdG9yLFN0YXRlID4gZm9yd2FyZF9zdGVwMDsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9mb3J3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjpzdGF0ZSwgRm9yd2FyZE9wLCBGb3J3YXJkUHJlZGljYXRlID4gZm9yd2FyZF9zdGVwNDsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Om5vdF9sYXN0CisgICAgICAgICwgaXRlcl9mb2xkX2lmX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkUHJlZGljYXRlCisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgQmFja3dhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlIGJhY2t3YXJkX3N0ZXA0OworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMzsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDM6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMjo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAxOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMDsKKyAgICAKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAwOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXA0OjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFhNDVmZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyNDUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBpdGVyX2ZvbGRfY2h1bms7CisKK3RlbXBsYXRlPD4gc3RydWN0IGl0ZXJfZm9sZF9jaHVuazwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBpdGVyX2ZvbGRfY2h1bms8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlMSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGl0ZXJfZm9sZF9jaHVuazwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBpdGVyX2ZvbGRfY2h1bms8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMyxpdGVyMyA+Ojp0eXBlIHN0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlNCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBpdGVyX2ZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICwgRmlyc3QKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBTdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gY2h1bmtfOworCisgICAgICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICB0eXBlbmFtZSBpc19zYW1lPCBGaXJzdCxMYXN0ID46OnR5cGUKKyAgICAgICAgICAgICwgaXRlcl9mb2xkX251bGxfc3RlcDwgTGFzdCxTdGF0ZSA+CisgICAgICAgICAgICAsIGl0ZXJfZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfc3RlcAoreworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IGNodW5rXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbAorICAgIDogaXRlcl9mb2xkX2NodW5rPE4+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGFtYmRhX25vX2N0cHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xhbWJkYV9ub19jdHBzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmZjNjYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xhbWJkYV9ub19jdHBzLmhwcApAQCAtMCwwICsxLDIyOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJpdHkgPiBzdHJ1Y3QgbGFtYmRhX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB0eXBlZGVmIGlzX3BsYWNlaG9sZGVyPFQ+IGlzX2xlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc1LCBUYWcsIGZhbHNlXyA+IGw1OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw1Ojppc19sZSBpc19sZTU7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTUpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZSwgdHlwZW5hbWUgbDU6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgICwgdHlwZW5hbWUgUHJvdGVjdAorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICAvLy8gTWV0YWZ1bmN0aW9uIGZvcndhcmRpbmcgY29uZnVzZXMgTVNWQyA2LngKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dGVtcGxhdGVfYXJpdHk8VD46OnR5cGUgYXJpdHlfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfaW1wbDxhcml0eV8+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxUYWcsUHJvdGVjdCA+IGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6dHlwZSB0eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OmlzX2xlIGlzX2xlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMywgbGFtYmRhLCAoVCwgVGFnLCBQcm90ZWN0KSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMSwgMywgbGFtYmRhKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9sZXNzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzlhMDEwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xlc3MuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgbGVzc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3MKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbGVzc19pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBsZXNzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbGVzc190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzcywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9sZXNzX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmUyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzX2VxdWFsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX2VxdWFsX3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3NfZXF1YWwKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbGVzc19lcXVhbF9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBsZXNzX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzc19lcXVhbCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzc19lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA8PQorICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkKKyAgICAgICAgICAgICk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjMwNjJkMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9saXN0LmhwcApAQCAtMCwwICsxLDU1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGxpc3RfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxpc3QwPAorICAgICAgICAgICAgIAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxPAorICAgICAgICAgICAgICBUMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyPAorICAgICAgICAgICAgICBUMCwgVDEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3Nlcjw1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3Nlcjw4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDExPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTI8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTU8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTg8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDIwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX2xpc3RfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2xpc3RfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMAorICAgICwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUKKyAgICAsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IGxpc3RfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc19saXN0X2FyZzxUMT46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUMz46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUNT46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUNz46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUOT46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDExPjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUMTM+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQxND46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQxNT46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDE3Pjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUMTk+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBsaXN0X2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6bGlzdF9jb3VudF9hcmdzPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsaXN0X2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGxpc3QKKyAgICA6IGF1eDo6bGlzdF9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsaXN0X2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGlzdF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9saXN0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMGY5MmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvbGlzdF9jLmhwcApAQCAtMCwwICsxLDUzNCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QwX2M8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxX2M8CisgICAgICAgICAgICAgIFQsIEMwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0Ml9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTBfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTFfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTNfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTRfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTZfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTdfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTlfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjBfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgQyA+CitzdHJ1Y3QgaXNfbGlzdF9jX2FyZworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19saXN0X2NfYXJnPExPTkdfTUFYPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICAsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICAsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5LCBsb25nIEMyMAorICAgID4KK3N0cnVjdCBsaXN0X2NfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc19saXN0X2NfYXJnPEMxPjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMyPjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDMz46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDND46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzU+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEM3Pjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEM4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDOT46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEMxMT46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEMxMz46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEMxNT46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEMxNz46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEMxOT46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IGxpc3RfY19pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6Omxpc3RfY19jb3VudF9hcmdzPAorICAgICAgICAgIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsaXN0X2NfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jCisgICAgOiBhdXg6Omxpc3RfY19pbXBsPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsaXN0X2NfaW1wbDwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9tYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL21hcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA2NjYwMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9tYXAuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBtYXBfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbWFwMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE8CisgICAgICAgICAgICAgIFQwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAyPAorICAgICAgICAgICAgICBUMCwgVDEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxOTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAyMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX21hcF9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfbWFwX2FyZzxuYT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAKKyAgICAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1CisgICAgLCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMAorICAgID4KK3N0cnVjdCBtYXBfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc19tYXBfYXJnPFQxPjo6dmFsdWUgKyBpc19tYXBfYXJnPFQyPjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUMz46OnZhbHVlICsgaXNfbWFwX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDU+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQ3Pjo6dmFsdWUgKyBpc19tYXBfYXJnPFQ4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUOT46OnZhbHVlICsgaXNfbWFwX2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQxMT46OnZhbHVlICsgaXNfbWFwX2FyZzxUMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQxMz46OnZhbHVlICsgaXNfbWFwX2FyZzxUMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQxNT46OnZhbHVlICsgaXNfbWFwX2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQxNz46OnZhbHVlICsgaXNfbWFwX2FyZzxUMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQxOT46OnZhbHVlICsgaXNfbWFwX2FyZzxUMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbWFwX2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6bWFwX2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Om1hcF9jaG9vc2VyPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBtYXAKKyAgICA6IGF1eDo6bWFwX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Om1hcF9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL21pbnVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9taW51cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEwMjAyZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9taW51cy5ocHAKQEAgLTAsMCArMSwxNTAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21pbnVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgbWludXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBtaW51c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbWludXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG1pbnVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtaW51c190YWcKKyAgICA6IHRhZzwgVCxuYSA+Cit7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBtaW51czI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IG1pbnVzCisKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgbWludXMyPCBOMSxOMiA+CisgICAgICAgICwgbWludXM8CisgICAgICAgICAgICAgIG1pbnVzMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworICAgID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbWludXNfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbWludXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBtaW51c190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbWludXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBtaW51cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IG1pbnVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xIC0gbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWludXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6Om1pbnVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjhhYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL21vZHVsdXMuaHBwCkBAIC0wLDAgKzEsMTE1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtb2R1bHVzX3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1vZHVsdXMKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbW9kdWx1c19pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBtb2R1bHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbW9kdWx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbW9kdWx1cywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IG1vZHVsdXNfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobjEgJSBuMikpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtb2R1bHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4Ojptb2R1bHVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9ub3RfZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM4ZDY2MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9ub3RfZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsMTAyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ub3RfZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBub3RfZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG5vdF9lcXVhbF90b190YWcKKyAgICA6IHRhZzwgVCxuYSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG8KKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgbm90X2VxdWFsX3RvX2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIG5vdF9lcXVhbF90b190YWc8TjE+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIG5vdF9lcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbm90X2VxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBub3RfZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAhPQorICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkKKyAgICAgICAgICAgICk7CisgICAgICAgIHR5cGVkZWYgYm9vbF88dmFsdWU+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmVlYzllCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL29yLmhwcApAQCAtMCwwICsxLDcxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9vci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgYm9vbCBDXyA+IHN0cnVjdCBvcl9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogdHJ1ZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG9yX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogb3JfaW1wbDwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IFQyLFQzLFQ0LGZhbHNlXyA+CisgICAgeworICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCByZXN1bHRfPCBmYWxzZV8sZmFsc2VfLGZhbHNlXyxmYWxzZV8gPgorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgLCB0eXBlbmFtZSBUMyA9IGZhbHNlXywgdHlwZW5hbWUgVDQgPSBmYWxzZV8sIHR5cGVuYW1lIFQ1ID0gZmFsc2VfCisgICAgPgorc3RydWN0IG9yXworCisgICAgOiBhdXg6Om9yX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsVDUgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgb3JfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBvcl8KKyAgICApCisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvcGxhY2Vob2xkZXJzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9wbGFjZWhvbGRlcnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZDQ1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvcGxhY2Vob2xkZXJzLmhwcApAQCAtMCwwICsxLDEwNSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxLTIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPCAtMSA+IF87CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzsKK30KKworfX0KKworLy8vIGFndXJ0LCAxNy9tYXIvMDI6IG9uZSBtb3JlIHBsYWNlaG9sZGVyIGZvciB0aGUgbGFzdCAnYXBwbHkjJyAKKy8vLyBzcGVjaWFsaXphdGlvbgorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8MT4gXzE7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzE7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwyPiBfMjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8yKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMjsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDM+IF8zOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzMpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8zOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8ND4gXzQ7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNCkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzQ7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw1PiBfNTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF81KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDY+IF82OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzYpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol82OworfQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3BsdXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3BsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYzMzMTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvcGx1cy5ocHAKQEAgLTAsMCArMSwxNTAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3BsdXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBwbHVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgcGx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgcGx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHBsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHBsdXNfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHBsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHBsdXNfdGFnCisgICAgOiB0YWc8IFQsbmEgPgoreworfTsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgcGx1czI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHBsdXMKKworICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBwbHVzMjwgTjEsTjIgPgorICAgICAgICAsIHBsdXM8CisgICAgICAgICAgICAgIHBsdXMyPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCisgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgcGx1c19pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBwbHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgcGx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgcGx1czIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHBsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4xLCBUIG4yID4KK3N0cnVjdCBwbHVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICsgbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcGx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGF1eDo6cGx1c193a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCBOMTo6dmFsdWUKKyAgICAgICAgICAgICwgTjI6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvcXVvdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3F1b3RlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjU5OGNiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3F1b3RlLmhwcApAQCAtMCwwICsxLDExNiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcXVvdGUuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTwgYm9vbCA+IHN0cnVjdCBxdW90ZV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IFQKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHF1b3RlX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUxCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPCBhdXg6Omhhc190eXBlPCBGPFUxPiA+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEY8VTE+ID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUyCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIgPiA+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEY8IFUxLFUyID4gPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8IGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzID4gPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGPCBVMSxVMixVMyA+ID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMixVMyxVNCA+ID46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRjwgVTEsVTIsVTMsVTQgPiA+CisKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICAsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8IGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzLFU0LFU1ID4gPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGPCBVMSxVMixVMyxVNCxVNSA+ID4KKworICAgIHsKKyAgICB9OworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM2YzE3MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyOTUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTEgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuazw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IHJldmVyc2VfZm9sZF9jaHVuaworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgaXRlcjQKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfc3RlcDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8IEZpcnN0LExhc3QgPjo6dHlwZQorICAgICAgICAgICAgLCByZXZlcnNlX2ZvbGRfbnVsbF9zdGVwPCBMYXN0LFN0YXRlID4KKyAgICAgICAgICAgICwgcmV2ZXJzZV9mb2xkX3N0ZXA8IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9jaHVuazwgLTEgPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZT46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlCisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbAorICAgIDogcmV2ZXJzZV9mb2xkX2NodW5rPE4+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2NjNjg4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjk1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms7CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTIgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTMsaXRlcjMgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bmsKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgaXRlcjQKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGU0LGl0ZXIzID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIGlzX3NhbWU8IEZpcnN0LExhc3QgPjo6dHlwZQorICAgICAgICAgICAgLCByZXZlcnNlX2l0ZXJfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCByZXZlcnNlX2l0ZXJfZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KKyAgICAgICAgICAgID46OnR5cGUgcmVzXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCBGaXJzdAorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbAorICAgIDogcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NldC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvc2V0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTY0ODc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NldC5ocHAKQEAgLTAsMCArMSw1NTYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NldC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IHNldF9jaG9vc2VyOworCit9CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBzZXQwPAorICAgICAgICAgICAgIAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTwKKyAgICAgICAgICAgICAgVDAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDI8CisgICAgICAgICAgICAgIFQwLCBUMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3Nlcjw1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDU8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3Nlcjw4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDg8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDExPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTI8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDE0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTU8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDE3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTg8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDIwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfc2V0X2FyZworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19zZXRfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMAorICAgICwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUKKyAgICAsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IHNldF9jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX3NldF9hcmc8VDE+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfYXJnPFQzPjo6dmFsdWUgKyBpc19zZXRfYXJnPFQ0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUNT46OnZhbHVlICsgaXNfc2V0X2FyZzxUNj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDc+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfYXJnPFQ5Pjo6dmFsdWUgKyBpc19zZXRfYXJnPFQxMD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDExPjo6dmFsdWUgKyBpc19zZXRfYXJnPFQxMj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDEzPjo6dmFsdWUgKyBpc19zZXRfYXJnPFQxND46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDE1Pjo6dmFsdWUgKyBpc19zZXRfYXJnPFQxNj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDE3Pjo6dmFsdWUgKyBpc19zZXRfYXJnPFQxOD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDE5Pjo6dmFsdWUgKyBpc19zZXRfYXJnPFQyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBzZXRfaW1wbAoreworICAgIHR5cGVkZWYgYXV4OjpzZXRfY291bnRfYXJnczwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4gYXJnX251bV87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6c2V0X2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IHNldAorICAgIDogYXV4OjpzZXRfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6c2V0X2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvc2V0X2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NldF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWE5YjE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NldF9jLmhwcApAQCAtMCwwICsxLDUzNCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2V0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBzZXRfY19jaG9vc2VyOworCit9CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDBfYzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxX2M8CisgICAgICAgICAgICAgIFQsIEMwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDJfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDNfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDVfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDZfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDhfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDlfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTBfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDExPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEyX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTNfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDE0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE1X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTZfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDE3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE3X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE4X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTlfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDIwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIEMgPgorc3RydWN0IGlzX3NldF9jX2FyZworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19zZXRfY19hcmc8TE9OR19NQVg+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNSwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgICwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMiwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgICwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTksIGxvbmcgQzIwCisgICAgPgorc3RydWN0IHNldF9jX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfc2V0X2NfYXJnPEMxPjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzM+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDND46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDNT46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEM2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEM3Pjo6dmFsdWUgKyBpc19zZXRfY19hcmc8Qzg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8Qzk+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzExPjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEMxMz46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEMxND46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMTU+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzE3Pjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEMxOT46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEMyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3Qgc2V0X2NfaW1wbAoreworICAgIHR5cGVkZWYgYXV4OjpzZXRfY19jb3VudF9hcmdzPAorICAgICAgICAgIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpzZXRfY19jaG9vc2VyPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBzZXRfYworICAgIDogYXV4OjpzZXRfY19pbXBsPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpzZXRfY19pbXBsPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NoaWZ0X2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NoaWZ0X2xlZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlN2I2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvc2hpZnRfbGVmdC5ocHAKQEAgLTAsMCArMSwxMTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NoaWZ0X2xlZnQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCB0YWcxXyA+IHRhZzJfICkKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X2xlZnRfdGFnCisgICAgOiB0YWc8IFQsbmEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdAorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICBzaGlmdF9sZWZ0X2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICAgICAgLCBOMQorICAgICAgICAsIE4yCisgICAgICAgID46OnR5cGUgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9sZWZ0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9sZWZ0KQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgU2hpZnQsIFQgbiwgU2hpZnQgcyA+CitzdHJ1Y3Qgc2hpZnRfbGVmdF93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuIDw8IHMpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OnNoaWZ0X2xlZnRfd2tuZDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBTOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsIE46OnZhbHVlCisgICAgICAgICAgICAsIFM6OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlCisKKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvc2hpZnRfcmlnaHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NoaWZ0X3JpZ2h0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTFhYmM5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3NoaWZ0X3JpZ2h0LmhwcApAQCAtMCwwICsxLDExNCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2hpZnRfcmlnaHQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzFfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcxKTo6dmFsdWUKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgdGFnMl8pICA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKFRhZzIpOjp2YWx1ZQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggdGFnMV8gPiB0YWcyXyApCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X3JpZ2h0X3RhZworICAgIDogdGFnPCBULG5hID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHNoaWZ0X3JpZ2h0CisgICAgOiBhdXg6Om1zdmNfZXRpX2Jhc2U8IHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgIHNoaWZ0X3JpZ2h0X2ltcGw8CisgICAgICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfcmlnaHRfdGFnPE4yPjo6dHlwZQorICAgICAgICAgICAgPgorICAgICAgICAsIE4xCisgICAgICAgICwgTjIKKyAgICAgICAgPjo6dHlwZSA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHNoaWZ0X3JpZ2h0LCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9yaWdodCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFNoaWZ0LCBUIG4sIFNoaWZ0IHMgPgorc3RydWN0IHNoaWZ0X3JpZ2h0X3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4gPj4gcykpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OnNoaWZ0X3JpZ2h0X3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIE46OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgUzo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCBOOjp2YWx1ZQorICAgICAgICAgICAgLCBTOjp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZQorCisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3RlbXBsYXRlX2FyaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC90ZW1wbGF0ZV9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMxZGJhNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC90ZW1wbGF0ZV9hcml0eS5ocHAKQEAgLTAsMCArMSw0NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IG1wbDo6aW50XzwgLTEgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHRlbXBsYXRlX2FyaXR5X2ltcGw8dHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogRjo6YXJpdHkKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eQorICAgIDogdGVtcGxhdGVfYXJpdHlfaW1wbDwgOjpuZG5ib29zdDo6bXBsOjphdXg6Omhhc19yZWJpbmQ8Rj46OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPEY+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHk8aW50PgorICAgIDogbXBsOjppbnRfPCAtMSA+Cit7Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3RpbWVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC90aW1lcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJlMGU5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC90aW1lcy5ocHAKQEAgLTAsMCArMSwxNTAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3RpbWVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKworICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCB0YWcxXykgID0gQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoVGFnMSk6OnZhbHVlCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHRhZzJfKSAgPSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChUYWcyKTo6dmFsdWUKKyAgICA+CitzdHJ1Y3QgdGltZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIHRhZzFfID4gdGFnMl8gKQorICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCB0aW1lc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgdGltZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdGltZXNfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHRpbWVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0aW1lc190YWcKKyAgICA6IHRhZzwgVCxuYSA+Cit7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCB0aW1lczI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHRpbWVzCisKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgdGltZXMyPCBOMSxOMiA+CisgICAgICAgICwgdGltZXM8CisgICAgICAgICAgICAgIHRpbWVzMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworICAgID4KKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCB0aW1lczIKKyAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgdGltZXNfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdGltZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0aW1lc190YWc8TjI+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgICAgICwgTjEKKyAgICAgICAgLCBOMgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgdGltZXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCB0aW1lcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IHRpbWVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICogbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGltZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OnRpbWVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC91bnBhY2tfYXJncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvdW5wYWNrX2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZTc0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9tc3ZjNzAvdW5wYWNrX2FyZ3MuaHBwCkBAIC0wLDAgKzEsMTA5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC91bnBhY2tfYXJncy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIHNpemUpID4gc3RydWN0IHVucGFja19hcmdzX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHVucGFja19hcmdzX2ltcGw8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGFwcGx5MDwKKyAgICAgICAgICAgICAgRgorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHkxPAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTI8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTM8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTQ8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDw1PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHk1PAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncyw0ID46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IHVucGFja19hcmdzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGF1eDo6dW5wYWNrX2FyZ3NfaW1wbDwgc2l6ZTxBcmdzPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgRixBcmdzID4KKworICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9QQVNTX1RIUk9VR0hfTEFNQkRBX1NQRUMoMSwgdW5wYWNrX2FyZ3MpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC92ZWN0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRlZTkyMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC92ZWN0b3IuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8CisgICAgICAgICAgICAgIFQwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyPAorICAgICAgICAgICAgICBUMCwgVDEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX3ZlY3Rvcl9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfdmVjdG9yX2FyZzxuYT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBUMTAKKyAgICAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNCwgdHlwZW5hbWUgVDE1CisgICAgLCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTksIHR5cGVuYW1lIFQyMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc192ZWN0b3JfYXJnPFQxPjo6dmFsdWUgKyBpc192ZWN0b3JfYXJnPFQyPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9hcmc8VDU+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQ3Pjo6dmFsdWUgKyBpc192ZWN0b3JfYXJnPFQ4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUOT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxMT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxMz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxNT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxNz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQxOT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZlY3Rvcl9jaG9vc2VyPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3IKKyAgICA6IGF1eDo6dmVjdG9yX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZlY3Rvcl9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXN2YzcwL3ZlY3Rvcl9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC92ZWN0b3JfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U2NDViOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL21zdmM3MC92ZWN0b3JfYy5ocHAKQEAgLTAsMCArMSw1MzQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvcl9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IwX2M8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMV9jPAorICAgICAgICAgICAgICBULCBUKEMwKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMikKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yN19jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8OD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMl9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzX2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxN19jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNykKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5X2M8CisgICAgICAgICAgICAgIFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwyMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBDID4KK3N0cnVjdCBpc192ZWN0b3JfY19hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfdmVjdG9yX2NfYXJnPExPTkdfTUFYPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICAsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICAsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5LCBsb25nIEMyMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfY19jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX3ZlY3Rvcl9jX2FyZzxDMT46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMyPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMzPjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8QzU+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDNj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDNz46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEM4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEM5Pjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMxMT46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMxMj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMTM+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMTQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8QzE1Pjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMxNz46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMxOD46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMTk+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMjA+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jX2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX2NfY291bnRfYXJnczwKKyAgICAgICAgICBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4gYXJnX251bV87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dmVjdG9yX2NfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwID0gTE9OR19NQVgsIGxvbmcgQzEgPSBMT05HX01BWCwgbG9uZyBDMiA9IExPTkdfTUFYCisgICAgLCBsb25nIEMzID0gTE9OR19NQVgsIGxvbmcgQzQgPSBMT05HX01BWCwgbG9uZyBDNSA9IExPTkdfTUFYCisgICAgLCBsb25nIEM2ID0gTE9OR19NQVgsIGxvbmcgQzcgPSBMT05HX01BWCwgbG9uZyBDOCA9IExPTkdfTUFYCisgICAgLCBsb25nIEM5ID0gTE9OR19NQVgsIGxvbmcgQzEwID0gTE9OR19NQVgsIGxvbmcgQzExID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzEyID0gTE9OR19NQVgsIGxvbmcgQzEzID0gTE9OR19NQVgsIGxvbmcgQzE0ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE1ID0gTE9OR19NQVgsIGxvbmcgQzE2ID0gTE9OR19NQVgsIGxvbmcgQzE3ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzE4ID0gTE9OR19NQVgsIGxvbmcgQzE5ID0gTE9OR19NQVgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2MKKyAgICA6IGF1eDo6dmVjdG9yX2NfaW1wbDwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dmVjdG9yX2NfaW1wbDwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FkdmFuY2VfYmFja3dhcmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMGM4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FkdmFuY2VfYmFja3dhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9iYWNrd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2JhY2t3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hZHZhbmNlX2ZvcndhcmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYTVhZmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FkdmFuY2VfZm9yd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2ZvcndhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfZm9yd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0Yjg4ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FuZC5ocHAKQEAgLTAsMCArMSw2OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQ18sIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbAorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IGFuZF9pbXBsPCB0cnVlLFQxLFQyLFQzLFQ0ID4KKyAgICA6IGFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNAorICAgICAgICAsIHRydWVfCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhbmRfaW1wbDwKKyAgICAgICAgICB0cnVlCisgICAgICAgICwgdHJ1ZV8sIHRydWVfLCB0cnVlXywgdHJ1ZV8KKyAgICAgICAgPgorICAgIDogdHJ1ZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSB0cnVlXywgdHlwZW5hbWUgVDQgPSB0cnVlXywgdHlwZW5hbWUgVDUgPSB0cnVlXworICAgID4KK3N0cnVjdCBhbmRfCisKKyAgICA6IGF1eDo6YW5kX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBhbmRfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBhbmRfCisgICAgKQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FwcGx5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGIxY2QyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseS5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHkwCisKKyAgICA6IGFwcGx5X3dyYXAwPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgIAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAxCisgICAgICAgICwgYXBwbHkwCisgICAgICAgICwgKEYgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsbmEsbmEsbmEsbmEsbmEgPgorICAgIDogYXBwbHkwPEY+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5MQorCisgICAgOiBhcHBseV93cmFwMTwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAyCisgICAgICAgICwgYXBwbHkxCisgICAgICAgICwgKEYsIFQxKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLG5hLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTIKKworICAgIDogYXBwbHlfd3JhcDI8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBhcHBseTIKKyAgICAgICAgLCAoRiwgVDEsIFQyKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixuYSxuYSxuYSA+CisgICAgOiBhcHBseTI8IEYsVDEsVDIgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MworCisgICAgOiBhcHBseV93cmFwMzwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDQKKyAgICAgICAgLCBhcHBseTMKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLFQyLFQzLG5hLG5hID4KKyAgICA6IGFwcGx5MzwgRixUMSxUMixUMyA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5NAorCisgICAgOiBhcHBseV93cmFwNDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYXBwbHk0CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5PCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGFwcGx5NDwgRixUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTUKKworICAgIDogYXBwbHlfd3JhcDU8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDYKKyAgICAgICAgLCBhcHBseTUKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseQorICAgIDogYXBwbHk1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYXBwbHlfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2NjOTRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseV9md2QuaHBwCkBAIC0wLDAgKzEsNTIgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5X2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGFwcGx5OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHkwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5MTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHkzOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5NDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseV93cmFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDAzOTA3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9hcHBseV93cmFwLmhwcApAQCAtMCwwICsxLDQ1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICAwCisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorLy8vIHNpbmNlIHRoZSBkZWZhdWx0cyBhcmUgImxvc3QiLCB3ZSBoYXZlIHRvIHBhc3MgKnNvbWV0aGluZyogZXZlbiBmb3IgbnVsbGFyeQorLy8vIG1ldGFmdW5jdGlvbiBjbGFzc2VzCisgICAgICAgIG5hCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDEKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDIKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDMKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hLCBuYSwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgIAorICAgICAgICBuYSwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwwPAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgCisgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseV93cmFwMAorICAgIDogYXBwbHlfd3JhcF9pbXBsMDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6YXJpdHk8IEYsMCA+Ojp2YWx1ZQorICAgICAgICAsIEYKKyAgICAgICAKKyAgICAgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDEKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDIKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMTwKKyAgICAgICAgICAzCisgICAgICAgICwgRgorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxCisgICAgICAgICwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDQKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGwxPAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDEKKyAgICA6IGFwcGx5X3dyYXBfaW1wbDE8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5PCBGLDEgPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEKKyAgICAgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgMgorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMjwKKyAgICAgICAgICAzCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIKKworICAgICAgICAsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMjwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIKKworICAgICAgICAsIG5hLCBuYQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgNQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyCisKKyAgICAgICAgLCBuYSwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDIKKyAgICA6IGFwcGx5X3dyYXBfaW1wbDI8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5PCBGLDIgPjo6dmFsdWUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDM8CisgICAgICAgICAgMworICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMzwKKyAgICAgICAgICA0CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMworCisgICAgICAgICwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsMzwKKyAgICAgICAgICA1CisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMworCisgICAgICAgICwgbmEsIG5hCisKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAzCisgICAgOiBhcHBseV93cmFwX2ltcGwzPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiwzID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPjo6dHlwZQoreworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcF9pbXBsNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw0PAorICAgICAgICAgIDQKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgRjo6dGVtcGxhdGUgYXBwbHk8CisgICAgICAgICAgVDEsIFQyLCBUMywgVDQKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXBfaW1wbDQ8CisgICAgICAgICAgNQorICAgICAgICAsIEYKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBGOjp0ZW1wbGF0ZSBhcHBseTwKKyAgICAgICAgICBUMSwgVDIsIFQzLCBUNAorCisgICAgICAgICwgbmEKKworICAgICAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA0CisgICAgOiBhcHBseV93cmFwX2ltcGw0PAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiw0ID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID46OnR5cGUKK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw1OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseV93cmFwX2ltcGw1PAorICAgICAgICAgIDUKKyAgICAgICAgLCBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEY6OnRlbXBsYXRlIGFwcGx5PAorICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0LCBUNQorCisgICAgICAgID4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1CisgICAgOiBhcHBseV93cmFwX2ltcGw1PAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojphcml0eTwgRiw1ID46OnZhbHVlCisgICAgICAgICwgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Ojp0eXBlCit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FyZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2FyZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWExNTdjMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYXJnLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXJnLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwgLTEgPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IC0xKTsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUyIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDM+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMyk7CisgICAgdHlwZWRlZiBhcmc8ND4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU1IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsIGFyZykKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYmFzaWNfYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2Jhc2ljX2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYTU2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2Jhc2ljX2JpbmQuaHBwCkBAIC0wLDAgKzEsNDQwIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9iYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMDxGPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDA8Rj4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQ8IEYsbmEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDA8Rj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMgorICAgICwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDI8IEYsVDEsVDIgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDI8IEYsVDEsVDIgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLG5hLG5hLG5hID4KKyAgICA6IGJpbmQyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLG5hLG5hID4KKyAgICA6IGJpbmQzPCBGLFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBiaW5kNDwgRixUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZAorICAgIDogYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworLy8vIGlmXy9ldmFsX2lmIHNwZWNpYWxpemF0aW9ucwordGVtcGxhdGU8IHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gY2xhc3MgRiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBxdW90ZTM7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IGlmXzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM8CisgICAgICBxdW90ZTM8IGlmXyxUYWcgPgorICAgICwgVDEsIFQyLCBUMworICAgID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIG1wbDo6YXJnPDE+IG4xOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgICwgdDIsIHQzCisgICAgICAgICAgICA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gY2xhc3MgRiwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IHF1b3RlMzsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMgPiBzdHJ1Y3QgZXZhbF9pZjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM8CisgICAgICBxdW90ZTM8IGV2YWxfaWYsVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBldmFsX2lmPAorICAgICAgICAgICAgICB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgLCB0MiwgdDMKKyAgICAgICAgICAgID46OnR5cGUgZl87CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyY2RlNWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpbmQuaHBwCkBAIC0wLDAgKzEsNTYxIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgQXJnCisgICAgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmcKK3sKKyAgICB0eXBlZGVmIEFyZyBuZXh0OworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZzwgYXJnPCAtMSA+LCBBcmcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgQXJnOjpuZXh0IG5leHQ7CisgICAgdHlwZWRlZiBBcmcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixuYSxuYSxuYSA+CisgICAgOiBiaW5kMjwgRixUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBVMQorICAgICwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPCBGLFQxLFQyLFQzID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYmluZDM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ1LG41ID4gcjU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6OnR5cGUgYTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6Om5leHQgbjY7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQKKyAgICA6IGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKKy8vLyBpZl8vZXZhbF9pZiBzcGVjaWFsaXphdGlvbnMKK3RlbXBsYXRlPCB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgcXVvdGUzOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IHN0cnVjdCBpZl87CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBpZl8sVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICAsIHQyLCB0MworICAgICAgICAgICAgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZl86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBxdW90ZTM7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IGV2YWxfaWY7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBldmFsX2lmLFRhZyA+CisgICAgLCBUMSwgVDIsIFQzCisgICAgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgbXBsOjphcmc8MT4gbjE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZXZhbF9pZjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgICwgdDIsIHQzCisgICAgICAgICAgICA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpbmRfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYmluZF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMDQ2ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGJpbmQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYml0YW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGU4NTkzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXRhbmQuaHBwCkBAIC0wLDAgKzEsMTQ3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXRhbmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRhbmRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdGFuZF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0YW5kX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0YW5kX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRhbmRfCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IGJpdGFuZF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdGFuZF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0YW5kX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRhbmRfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRhbmRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICYgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzFhOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9iaXRvci5ocHAKQEAgLTAsMCArMSwxNDcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRvcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRvcl8KKyAgICA6IGJpdG9yXzwgYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXRvcl88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXRvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgfCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpdHhvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdmMGNlNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvYml0eG9yLmhwcApAQCAtMCwwICsxLDE0NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0eG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0eG9yX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXR4b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdHhvcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0eG9yXworICAgIDogYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXR4b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXR4b3JfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdHhvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0eG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0eG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICBeIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGVxdWUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9kZXF1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzMWY2NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGVxdWUuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kZXF1ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBkZXF1ZTsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjA8ICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IGRlcXVlCisgICAgOiB2ZWN0b3IyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZGl2aWRlcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2RpdmlkZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNTQxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2RpdmlkZXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kaXZpZGVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZGl2aWRlc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZGl2aWRlc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGRpdmlkZXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGRpdmlkZXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGRpdmlkZXMKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogZGl2aWRlc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGRpdmlkZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGRpdmlkZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC8gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDAyZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9lcXVhbF90by5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBlcXVhbF90b19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGVxdWFsX3RvCisKKyAgICA6IGVxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGVxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBlcXVhbF90bykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgID09IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTRjZDQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICA0CisgICAgICAgICwgRmlyc3QKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9mdWxsX2xhbWJkYS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTY1OGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBUIHJlc3VsdF87CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK3RlbXBsYXRlPCBpbnQgTiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IGFyZzxOPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQwPAorICAgICAgICAgIEYKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDEKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MTwgdHJ1ZV8sVGFnLEYsTDEgPgoreworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgcXVvdGUxPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8VDE+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDE8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQxPCBGLFQxID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDI8IEYsVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MworeworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzPCB0cnVlXyxUYWcsRixMMSxMMixMMyA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBxdW90ZTM8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NAoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NDwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQgPgoreworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgcXVvdGU0PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NDwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNAorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIHR5cGVkZWYgbGFtYmRhPCBUNSxUYWcgPiBsNTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgICwgaXNfbGU1Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDU8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQsIGw1CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWwgY2FzZSBmb3IgJ3Byb3RlY3QnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IG1wbDo6cHJvdGVjdDxUPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxUPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWxpemF0aW9ucyBmb3IgdGhlIG1haW4gJ2JpbmQnIGZvcm0KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIE1XQ1cgOC4zKy9FREcgPCAzMDMsIGxlYWRzIHRvIGFtYmlndWl0eSBvbiBEaWdpdGFsIE1hcnMKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcxLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSA+CisgICAgICAgICwgVGFnMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTsKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mjxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMj4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBsYW1iZGEpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZ3JlYXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2dyZWF0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNWZhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2dyZWF0ZXIuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2dyZWF0ZXIuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBncmVhdGVyX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBncmVhdGVyX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBncmVhdGVyX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZ3JlYXRlcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcgorCisgICAgOiBncmVhdGVyX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBncmVhdGVyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZ3JlYXRlcl9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5YTU4NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvZ3JlYXRlcl9lcXVhbC5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsCisKKyAgICA6IGdyZWF0ZXJfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXJfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXJfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPj0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaW5oZXJpdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmMzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaW5oZXJpdC5ocHAKQEAgLTAsMCArMSwxNDEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2luaGVyaXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgPgorc3RydWN0IGluaGVyaXQyCisgICAgOiBUMSwgVDIKK3sKKyAgICB0eXBlZGVmIGluaGVyaXQyIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBpbmhlcml0MiwgKFQxLCBUMikpCit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEgPgorc3RydWN0IGluaGVyaXQyPCBUMSxlbXB0eV9iYXNlID4KK3sKKyAgICB0eXBlZGVmIFQxIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoVDEsIGVtcHR5X2Jhc2UpKQorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQyID4KK3N0cnVjdCBpbmhlcml0MjwgZW1wdHlfYmFzZSxUMiA+Cit7CisgICAgdHlwZWRlZiBUMiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKGVtcHR5X2Jhc2UsIFQyKSkKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0MjwgZW1wdHlfYmFzZSxlbXB0eV9iYXNlID4KK3sKKyAgICB0eXBlZGVmIGVtcHR5X2Jhc2UgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChlbXB0eV9iYXNlLCBlbXB0eV9iYXNlKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBpbmhlcml0MikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQzCisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0MjwKKyAgICAgICAgICAgICAgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDMKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMworICAgICAgICAsIGluaGVyaXQzCisgICAgICAgICwgKCBUMSwgVDIsIFQzKQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMywgaW5oZXJpdDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NAorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDM8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgaW5oZXJpdDQKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNCwgaW5oZXJpdDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgICwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NQorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDQ8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDUKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGluaGVyaXQ1CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg1LCBpbmhlcml0NSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorICAgID4KK3N0cnVjdCBpbmhlcml0CisgICAgOiBpbmhlcml0NTwgVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQ8IG5hLG5hLG5hLG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwKKworICAgICAgICAgIHR5cGVuYW1lIFQxID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDIgPSBlbXB0eV9iYXNlCisgICAgICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKworICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgICAgIDogaW5oZXJpdDwgVDEsVDIsVDMsVDQsVDUgPgorICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0xBTUJEQSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfVEVNUExBVEVfQVJJVFkoNSwgNSwgaW5oZXJpdCkKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBhMjg2NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2lmX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTMzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yLCB0eXBlbmFtZSBTdGF0ZSA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFN0YXRlT3AsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvck9wOjp0eXBlIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBQcmVkaWNhdGUsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBub3RfbGFzdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQobm90X2xhc3QpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBJdGVyYXRvcixTdGF0ZSxGb3J3YXJkT3AsIG1wbDo6bmV4dDxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBQcmVkaWNhdGUsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBub3RfbGFzdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQobm90X2xhc3QpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBJdGVyYXRvcixTdGF0ZSxCYWNrd2FyZE9wLCBpZGVudGl0eTxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZFByZWRpY2F0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgQmFja3dhcmRQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ltcGwKK3sKKyBwcml2YXRlOgorICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwgSXRlcmF0b3IsU3RhdGUgPiBmb3J3YXJkX3N0ZXAwOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAzOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXA0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6bm90X2xhc3QKKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICAsIEZvcndhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBCYWNrd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgPgorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUgYmFja3dhcmRfc3RlcDQ7CisKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDQ6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAzOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMzo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAyOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDE6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAwOworICAgIAorCisgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDA6OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDQ6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMDhiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2l0ZXJfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDE4MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMyxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUzLGl0ZXIzID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgNAorICAgICAgICAsIEZpcnN0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIFN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgIDogaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xhbWJkYV9ub19jdHBzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmZjNjYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9sYW1iZGFfbm9fY3Rwcy5ocHAKQEAgLTAsMCArMSwyMjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX25vX2N0cHMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEFyaXR5ID4gc3RydWN0IGxhbWJkYV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgdHlwZWRlZiBpc19wbGFjZWhvbGRlcjxUPiBpc19sZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNSwgVGFnLCBmYWxzZV8gPiBsNTsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU1KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUsIHR5cGVuYW1lIGw1Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICAsIHR5cGVuYW1lIFByb3RlY3QKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgLy8vIE1ldGFmdW5jdGlvbiBmb3J3YXJkaW5nIGNvbmZ1c2VzIE1TVkMgNi54CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnRlbXBsYXRlX2FyaXR5PFQ+Ojp0eXBlIGFyaXR5XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX2ltcGw8YXJpdHlfPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVGFnLFByb3RlY3QgPiBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OnR5cGUgdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjppc19sZSBpc19sZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsIGxhbWJkYSwgKFQsIFRhZywgUHJvdGVjdCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDEsIDMsIGxhbWJkYSkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTM5Yjc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9sZXNzLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3MKKworICAgIDogbGVzc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzcywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGVzc19lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xlc3NfZXF1YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YzM0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbGVzc19lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbAorCisgICAgOiBsZXNzX2VxdWFsX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBsZXNzX2VxdWFsLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBsZXNzX2VxdWFsKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlIDw9IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xpc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjYzhjNDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xpc3QuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGxpc3Q7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QwPCAgPgoreworICAgIHR5cGVkZWYgbGlzdDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IGxpc3QKKyAgICA6IGxpc3QyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xpc3RfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L2xpc3RfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzZjM4ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbGlzdF9jLmhwcApAQCAtMCwwICsxLDMyOCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBsaXN0X2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MV9jPCBULEMwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxX2M8IFQsQzAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0Ml9jPCBULEMwLEMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyX2M8IFQsQzAsQzEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0M19jPCBULEMwLEMxLEMyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzX2M8IFQsQzAsQzEsQzIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0NF9jPCBULEMwLEMxLEMyLEMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0X2M8IFQsQzAsQzEsQzIsQzMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTVfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTZfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE3X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE4X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MThfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTlfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBsaXN0X2MKKyAgICA6IGxpc3QyMF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L21hcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L21hcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk3NGYyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbWFwLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbWFwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IG1hcDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAwPCAgPgoreworICAgIHR5cGVkZWYgbWFwMDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbWFwCisgICAgOiBtYXAyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9taW51cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU2YjU5MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbWludXMuaHBwCkBAIC0wLDAgKzEsMTQ2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9taW51cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG1pbnVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBtaW51c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbWludXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbWludXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtaW51c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWludXMKKyAgICA6IG1pbnVzPCBtaW51czwgbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogbWludXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBtaW51c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbWludXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBtaW51cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWludXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbW9kdWx1cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODljNjE3MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbW9kdWx1cy5ocHAKQEAgLTAsMCArMSwxMDEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21vZHVsdXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBtb2R1bHVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBtb2R1bHVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBtb2R1bHVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbW9kdWx1c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbW9kdWx1cworCisgICAgOiBtb2R1bHVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbW9kdWx1c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbW9kdWx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBtb2R1bHVzLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBtb2R1bHVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBtb2R1bHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAlIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbm90X2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvbm90X2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjhlMTAwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9ub3RfZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL25vdF9lcXVhbF90by5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG5vdF9lcXVhbF90b19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBub3RfZXF1YWxfdG9faW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBub3RfZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG5vdF9lcXVhbF90bworCisgICAgOiBub3RfZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG5vdF9lcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBub3RfZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIG5vdF9lcXVhbF90bykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICE9IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9vci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkyOTYwMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvb3IuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL29yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQ18sIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBvcl9pbXBsCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBvcl9pbXBsPCBmYWxzZSxUMSxUMixUMyxUNCA+CisgICAgOiBvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNAorICAgICAgICAsIGZhbHNlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgb3JfaW1wbDwKKyAgICAgICAgICBmYWxzZQorICAgICAgICAsIGZhbHNlXywgZmFsc2VfLCBmYWxzZV8sIGZhbHNlXworICAgICAgICA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSBmYWxzZV8sIHR5cGVuYW1lIFQ0ID0gZmFsc2VfLCB0eXBlbmFtZSBUNSA9IGZhbHNlXworICAgID4KK3N0cnVjdCBvcl8KKworICAgIDogYXV4Ojpvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgb3JfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBvcl8KKyAgICApCisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3BsYWNlaG9sZGVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNkNDUxNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvcGxhY2Vob2xkZXJzLmhwcApAQCAtMCwwICsxLDEwNSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxLTIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPCAtMSA+IF87CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzsKK30KKworfX0KKworLy8vIGFndXJ0LCAxNy9tYXIvMDI6IG9uZSBtb3JlIHBsYWNlaG9sZGVyIGZvciB0aGUgbGFzdCAnYXBwbHkjJyAKKy8vLyBzcGVjaWFsaXphdGlvbgorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8MT4gXzE7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzE7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwyPiBfMjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8yKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMjsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDM+IF8zOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzMpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8zOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8ND4gXzQ7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNCkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzQ7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw1PiBfNTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF81KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDY+IF82OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzYpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol82OworfQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9wbHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvcGx1cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUwM2UzZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvcGx1cy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3BsdXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBwbHVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBwbHVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBwbHVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgcGx1c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBwbHVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcGx1c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgcGx1cworICAgIDogcGx1czwgcGx1czwgcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBwbHVzPCBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBwbHVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgcGx1c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgcGx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgcGx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcGx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgKyBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3F1b3RlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvcXVvdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTc5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3F1b3RlLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcXVvdGUuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBib29sIGhhc190eXBlXyA+CitzdHJ1Y3QgcXVvdGVfaW1wbAorICAgIDogVAoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IHF1b3RlX2ltcGw8IFQsZmFsc2UgPgoreworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTEKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8CisgICAgICAgICAgICAgIEY8VTE+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8VTE+ID46OnZhbHVlCisgICAgICAgICAgICA+CisKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlMgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8CisgICAgICAgICAgICAgIEY8IFUxLFUyID4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIgPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8CisgICAgICAgICAgICAgIEY8IFUxLFUyLFUzID4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIsVTMgPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8CisgICAgICAgICAgICAgIEY8IFUxLFUyLFUzLFU0ID4KKyAgICAgICAgICAgICwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIsVTMsVTQgPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0CisgICAgICAgICwgdHlwZW5hbWUgUDUKKyAgICAgICAgPgorICAgICAgY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGU1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAgICAgLCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyxVNCxVNSA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzLFU0LFU1ID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3JldmVyc2VfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDNhZDc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyMzEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBmd2Rfc3RhdGUwIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTEgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUyIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGU0IGJrd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGxvbmcgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgaXRlcjQKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgZndkX3N0YXRlNAorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiByZXZlcnNlX2ZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGUKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2JmNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDIzMSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMCxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTAgYmt3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMSxpdGVyMSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUyIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMyxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTMsaXRlcjMgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlNCxpdGVyMyA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTMsaXRlcjMgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCBpdGVyNAorICAgICAgICAsIExhc3QKKyAgICAgICAgLCBmd2Rfc3RhdGU0CisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9jaHVuazsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlNCxpdGVyMyA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUzLGl0ZXIyID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCBGaXJzdAorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zZXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNGNhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NldC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NldC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCBzZXQ7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MDwgID4KK3sKKyAgICB0eXBlZGVmIHNldDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHNldAorICAgIDogc2V0MjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NldF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvc2V0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZjJmZGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NldF9jLmhwcApAQCAtMCwwICsxLDMyOCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2V0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHNldF9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxX2M8IFQsQzAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MV9jPCBULEMwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQyX2M8IFQsQzAsQzEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Ml9jPCBULEMwLEMxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQzX2M8IFQsQzAsQzEsQzIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0M19jPCBULEMwLEMxLEMyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ0X2M8IFQsQzAsQzEsQzIsQzMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NF9jPCBULEMwLEMxLEMyLEMzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQ5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDEzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE1X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTdfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCBzZXRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MThfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxOV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3Qgc2V0X2MKKyAgICA6IHNldDIwX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy9zaGlmdF9sZWZ0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvc2hpZnRfbGVmdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhkZjI5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvc2hpZnRfbGVmdC5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2hpZnRfbGVmdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X2xlZnRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHNoaWZ0X2xlZnRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBzaGlmdF9sZWZ0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0CisKKyAgICA6IHNoaWZ0X2xlZnRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9sZWZ0X3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHNoaWZ0X2xlZnQsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIHNoaWZ0X2xlZnQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPDwgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NoaWZ0X3JpZ2h0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvc2hpZnRfcmlnaHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MjZmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3NoaWZ0X3JpZ2h0LmhwcApAQCAtMCwwICsxLDk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zaGlmdF9yaWdodC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfcmlnaHRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBzaGlmdF9yaWdodF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHQKKworICAgIDogc2hpZnRfcmlnaHRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfcmlnaHRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgc2hpZnRfcmlnaHQsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIHNoaWZ0X3JpZ2h0KQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIE46OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlCisgICAgICAgICAgICAgICAgICA+PiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoUyk6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvdGVtcGxhdGVfYXJpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy90ZW1wbGF0ZV9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNiNDJhZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvdGVtcGxhdGVfYXJpdHkuaHBwCkBAIC0wLDAgKzEsMTEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3RpbWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDUxNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy90aW1lcy5ocHAKQEAgLTAsMCArMSwxNDYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3RpbWVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgdGltZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHRpbWVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCB0aW1lc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHRpbWVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHRpbWVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCB0aW1lc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRpbWVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCB0aW1lcworICAgIDogdGltZXM8IHRpbWVzPCB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiB0aW1lczwgdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiB0aW1lc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHRpbWVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSB0aW1lc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHRpbWVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCB0aW1lc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgKiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3VucGFja19hcmdzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvdW5wYWNrX2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljOTIwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3VucGFja19hcmdzLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC91bnBhY2tfYXJncy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBpbnQgc2l6ZSwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDAsRixBcmdzID4KKyAgICA6IGFwcGx5MDwKKyAgICAgICAgICBGCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAxLEYsQXJncyA+CisgICAgOiBhcHBseTE8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAyLEYsQXJncyA+CisgICAgOiBhcHBseTI8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMyxGLEFyZ3MgPgorICAgIDogYXBwbHkzPAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgNCxGLEFyZ3MgPgorICAgIDogYXBwbHk0PAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDUsRixBcmdzID4KKyAgICA6IGFwcGx5NTwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMyA+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncyw0ID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKworfQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3MKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYXV4Ojp1bnBhY2tfYXJnc19pbXBsPCBzaXplPEFyZ3M+Ojp2YWx1ZSxGLCBBcmdzID4KKworICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9QQVNTX1RIUk9VR0hfTEFNQkRBX1NQRUMoMSwgdW5wYWNrX2FyZ3MpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvdmVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL213Y3cvdmVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjY3NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy92ZWN0b3IuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjA8ICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCB2ZWN0b3IKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy92ZWN0b3JfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9td2N3L3ZlY3Rvcl9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmZiZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbXdjdy92ZWN0b3JfYy5ocHAKQEAgLTAsMCArMSwzMDkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvcl9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMV9jPCBULCBUKEMwKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxX2M8IFQsIFQoQzApID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IyX2M8IFQsIFQoQzApLCBUKEMxKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyX2M8IFQsIFQoQzApLCBUKEMxKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTNfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTZfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxN19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTlfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCkgPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYworICAgIDogdmVjdG9yMjBfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCksIFQoQzE5KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IyMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FkdmFuY2VfYmFja3dhcmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMGM4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FkdmFuY2VfYmFja3dhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9iYWNrd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2JhY2t3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hZHZhbmNlX2ZvcndhcmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYTVhZmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FkdmFuY2VfZm9yd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2ZvcndhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfZm9yd2FyZDsKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIGl0ZXIyIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfZm9yd2FyZDwoCisgICAgICAgICAgICAgICAgKE4gLSA0KSA8IDAKKyAgICAgICAgICAgICAgICAgICAgPyAwCisgICAgICAgICAgICAgICAgICAgIDogTiAtIDQKKyAgICAgICAgICAgICAgICAgICAgKT4KKyAgICAgICAgICAgICwgY2h1bmtfcmVzdWx0XworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZTRlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FuZC5ocHAKQEAgLTAsMCArMSw3MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sIENfID4gc3RydWN0IGFuZF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhbmRfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IGFuZF9pbXBsPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsdHJ1ZV8gPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFuZF9pbXBsPHRydWU+CisgICAgOjpyZXN1bHRfPCB0cnVlXyx0cnVlXyx0cnVlXyx0cnVlXyA+CisgICAgICAgIDogdHJ1ZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSB0cnVlXywgdHlwZW5hbWUgVDQgPSB0cnVlXywgdHlwZW5hbWUgVDUgPSB0cnVlXworICAgID4KK3N0cnVjdCBhbmRfCisKKyAgICA6IGF1eDo6YW5kX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgVDIsVDMsVDQsVDUgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYW5kXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgYW5kXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hcHBseS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM4NmM2ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMjY4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MAorCisgICAgOiBhcHBseV93cmFwMDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMQorICAgICAgICAsIGFwcGx5MAorICAgICAgICAsIChGICkKKyAgICAgICAgKQorfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkwPAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGFwcGx5MQorCisgICAgOiBhcHBseV93cmFwMTwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAyCisgICAgICAgICwgYXBwbHkxCisgICAgICAgICwgKEYsIFQxKQorICAgICAgICApCit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseTE8CisgICAgICAgICAgICAgIEYsIFQxCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBhcHBseTIKKworICAgIDogYXBwbHlfd3JhcDI8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDMKKyAgICAgICAgLCBhcHBseTIKKyAgICAgICAgLCAoRiwgVDEsIFQyKQorICAgICAgICApCit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseTI8CisgICAgICAgICAgICAgIEYsIFQxLCBUMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MworCisgICAgOiBhcHBseV93cmFwMzwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzCisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDQKKyAgICAgICAgLCBhcHBseTMKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMykKKyAgICAgICAgKQorfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhcHBseV9jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkzPAorICAgICAgICAgICAgICBGLCBUMSwgVDIsIFQzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGFwcGx5NAorCisgICAgOiBhcHBseV93cmFwNDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYXBwbHk0CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseTQ8CisgICAgICAgICAgICAgIEYsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBhcHBseTUKKworICAgIDogYXBwbHlfd3JhcDU8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDYKKyAgICAgICAgLCBhcHBseTUKKyAgICAgICAgLCAoRiwgVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFwcGx5X2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseTU8CisgICAgICAgICAgICAgIEYsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19hcHBseV9hcmcKK3sKKyAgICBzdGF0aWMgYm9vbCBjb25zdCB2YWx1ZSAgPSB0cnVlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2FwcGx5X2FyZzxuYT4KK3sKKyAgICBzdGF0aWMgYm9vbCBjb25zdCB2YWx1ZSAgPSBmYWxzZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5X2NvdW50X2FyZ3MKK3sKKyAgICBzdGF0aWMgaW50IGNvbnN0IHZhbHVlICA9IGlzX2FwcGx5X2FyZzxUMT46OnZhbHVlICsgaXNfYXBwbHlfYXJnPFQyPjo6dmFsdWUgKyBpc19hcHBseV9hcmc8VDM+Ojp2YWx1ZSArIGlzX2FwcGx5X2FyZzxUND46OnZhbHVlICsgaXNfYXBwbHlfYXJnPFQ1Pjo6dmFsdWU7CisKK307CisKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGFwcGx5CisgICAgOiBhdXg6OmFwcGx5X2Nob29zZXI8CisgICAgICAgICAgYXV4OjphcHBseV9jb3VudF9hcmdzPCBUMSxUMixUMyxUNCxUNSA+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBGLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUKK3sKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHlfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWJlOTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hcHBseV9md2QuaHBwCkBAIC0wLDAgKzEsNTAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FwcGx5X2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgQk9PU1RfQVVYX05UVFBfREVDTChpbnQsIGFyaXR5XykgPiBzdHJ1Y3QgYXBwbHlfY2hvb3NlcjsKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hcHBseV93cmFwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHlfd3JhcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVjYmQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYXBwbHlfd3JhcC5ocHAKQEAgLTAsMCArMSw3OCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisKKyAgICAsIHR5cGVuYW1lIGhhc19hcHBseV8gPSB0eXBlbmFtZSBhdXg6Omhhc19hcHBseTxGPjo6dHlwZQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAwCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCAgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAxCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PFQxPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMgorCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDMKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8IFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwNAorCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIsVDMsVDQgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwNQorCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hcmcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMTU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2FyZy5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMgorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FyZy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8IC0xID4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAtMSk7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUxIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMSk7CisgICAgdHlwZWRlZiBhcmc8Mj4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8Mj4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAyKTsKKyAgICB0eXBlZGVmIGFyZzwzPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMiB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwzPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDMpOworICAgIHR5cGVkZWYgYXJnPDQ+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUzIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDQ+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gNCk7CisgICAgdHlwZWRlZiBhcmc8NT4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTQgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8NT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA1KTsKKyAgICB0eXBlZGVmIGFyZzw2PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfTk9OVFlQRV9BUklUWV9TUEVDKDEsaW50LCBhcmcpCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2Jhc2ljX2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iYXNpY19iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZkMWU4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iYXNpY19iaW5kLmhwcApAQCAtMCwwICsxLDQ4NiBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMQorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYmFzaWNfYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgcmVzb2x2ZV9hcmdfaW1wbAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHJlc29sdmVfYXJnX2ltcGw8dHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzCisgICAgICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgLCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworICAgIDogcmVzb2x2ZV9hcmdfaW1wbDwgaXNfYmluZF90ZW1wbGF0ZTxUPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULFUxLFUyLFUzLFU0LFU1ID4KK3sKK307CisKK3RlbXBsYXRlPCBpbnQgYXJpdHlfID4gc3RydWN0IGJpbmRfY2hvb3NlcjsKKworYXV4Ojpub190YWcgaXNfYmluZF9oZWxwZXIoLi4uKTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gYXV4Ojpub190YWcgaXNfYmluZF9oZWxwZXIocHJvdGVjdDxUPiopOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK2F1eDo6eWVzX3RhZyBpc19iaW5kX2hlbHBlcihiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4qKTsKKwordGVtcGxhdGU8IGludCBOID4KK2F1eDo6eWVzX3RhZyBpc19iaW5kX2hlbHBlcihhcmc8Tj4qKTsKKwordGVtcGxhdGU8IGJvb2wgaXNfcmVmXyAgPSB0cnVlID4KK3N0cnVjdCBpc19iaW5kX3RlbXBsYXRlX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZV9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgIHNpemVvZihhdXg6OmlzX2JpbmRfaGVscGVyKHN0YXRpY19jYXN0PFQqPigwKSkpCisgICAgICAgICAgICAgICAgPT0gc2l6ZW9mKGF1eDo6eWVzX3RhZykKKyAgICAgICAgICAgICk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGlzX2JpbmRfdGVtcGxhdGUKKyAgICA6IGlzX2JpbmRfdGVtcGxhdGVfaW1wbDwgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19yZWZlcmVuY2VfaW1wbDxUPjo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYmluZDAKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMDxGPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJpbmRfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGJpbmQwPEY+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMTwgRixUMSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmluZF9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQyPCBGLFQxLFQyID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaW5kX2Nob29zZXI8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBiaW5kMjwgRixUMSxUMiA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQzPCBGLFQxLFQyLFQzID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaW5kX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQ0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaW5kX2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmluZF9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPiB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19iaW5kX2FyZworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19iaW5kX2FyZzxuYT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZF9jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX2JpbmRfYXJnPFQxPjo6dmFsdWUgKyBpc19iaW5kX2FyZzxUMj46OnZhbHVlIAorICAgICAgICArIGlzX2JpbmRfYXJnPFQzPjo6dmFsdWUgKyBpc19iaW5kX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX2JpbmRfYXJnPFQ1Pjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKworfQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kCisgICAgOiBhdXg6OmJpbmRfY2hvb3NlcjwKKyAgICAgICAgICBhdXg6OmJpbmRfY291bnRfYXJnczwgVDEsVDIsVDMsVDQsVDUgPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgRixUMSxUMixUMyxUNCxUNSA+Ojp0eXBlCit7Cit9OworCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoCisgICAgICA2CisgICAgLCBiaW5kCisgICAgKQorCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoCisgICAgICA2CisgICAgLCBiaW5kCisgICAgKQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA0YzY0ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYmluZC5ocHAKQEAgLTAsMCArMSw1OTAgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCByZXNvbHZlX2FyZ19pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmVzb2x2ZV9hcmdfaW1wbDx0cnVlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAsIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnCisgICAgOiByZXNvbHZlX2FyZ19pbXBsPCBpc19iaW5kX3RlbXBsYXRlPFQ+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVTEsVTIsVTMsVTQsVTUgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmdfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmcgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBBcmcgbmV4dDsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnX2ltcGw8IGFyZzwgLTEgPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8QXJnPjo6dHlwZSBuZXh0OworICAgICAgICB0eXBlZGVmIEFyZyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgQXJnID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnCisgICAgOiByZXBsYWNlX3VubmFtZWRfYXJnX2ltcGw8VD46OnRlbXBsYXRlIHJlc3VsdF88QXJnPgoreworfTsKKwordGVtcGxhdGU8IGludCBhcml0eV8gPiBzdHJ1Y3QgYmluZF9jaG9vc2VyOworCithdXg6Om5vX3RhZyBpc19iaW5kX2hlbHBlciguLi4pOwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBhdXg6Om5vX3RhZyBpc19iaW5kX2hlbHBlcihwcm90ZWN0PFQ+Kik7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorYXV4Ojp5ZXNfdGFnIGlzX2JpbmRfaGVscGVyKGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiopOworCit0ZW1wbGF0ZTwgaW50IE4gPgorYXV4Ojp5ZXNfdGFnIGlzX2JpbmRfaGVscGVyKGFyZzxOPiopOworCit0ZW1wbGF0ZTwgYm9vbCBpc19yZWZfICA9IHRydWUgPgorc3RydWN0IGlzX2JpbmRfdGVtcGxhdGVfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19iaW5kX3RlbXBsYXRlX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAgc2l6ZW9mKGF1eDo6aXNfYmluZF9oZWxwZXIoc3RhdGljX2Nhc3Q8VCo+KDApKSkKKyAgICAgICAgICAgICAgICA9PSBzaXplb2YoYXV4Ojp5ZXNfdGFnKQorICAgICAgICAgICAgKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfYmluZF90ZW1wbGF0ZQorICAgIDogaXNfYmluZF90ZW1wbGF0ZV9pbXBsPCA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3JlZmVyZW5jZV9pbXBsPFQ+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxUPgoreworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMDxGPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJpbmRfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGJpbmQwPEY+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihiaW5kMTwgRixUMSA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmluZF9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDI8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK2F1eDo6eWVzX3RhZworaXNfYmluZF9oZWxwZXIoYmluZDI8IEYsVDEsVDIgPiopOworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJpbmRfY2hvb3NlcjwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQzPCBGLFQxLFQyLFQzID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaW5kX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaW5kX2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNSxuNSA+IHI1OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI1Ojp0eXBlIGE1OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI1OjpuZXh0IG42OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZSwgdHlwZW5hbWUgdDU6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CithdXg6Onllc190YWcKK2lzX2JpbmRfaGVscGVyKGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4qKTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaW5kX2Nob29zZXI8NT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX2JpbmRfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2JpbmRfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfYmluZF9hcmc8VDE+Ojp2YWx1ZSArIGlzX2JpbmRfYXJnPFQyPjo6dmFsdWUgCisgICAgICAgICsgaXNfYmluZF9hcmc8VDM+Ojp2YWx1ZSArIGlzX2JpbmRfYXJnPFQ0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfYmluZF9hcmc8VDU+Ojp2YWx1ZQorICAgICAgICApOworCit9OworCit9CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQKKyAgICA6IGF1eDo6YmluZF9jaG9vc2VyPAorICAgICAgICAgIGF1eDo6YmluZF9jb3VudF9hcmdzPCBUMSxUMixUMyxUNCxUNSA+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBGLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUKK3sKK307CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygKKyAgICAgIDYKKyAgICAsIGJpbmQKKyAgICApCisKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygKKyAgICAgIDYKKyAgICAsIGJpbmQKKyAgICApCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2JpbmRfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYmluZF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMDQ2ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGJpbmQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0YW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2RmY2JjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaXRhbmQuaHBwCkBAIC0wLDAgKzEsMTM0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXRhbmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRhbmRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0YW5kX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBiaXRhbmRfMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0YW5kXworCisgICAgOiBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBiaXRhbmRfMjwgTjEsTjIgPgorICAgICAgICAsIGJpdGFuZF88CisgICAgICAgICAgICAgIGJpdGFuZF8yPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzIKKyAgICA6IGJpdGFuZF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdGFuZF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0YW5kX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGJpdGFuZF8yLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRhbmRfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRhbmRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICYgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2JpdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjYyMjFhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9iaXRvci5ocHAKQEAgLTAsMCArMSwxMzQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2JpdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdG9yX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRvcl9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBiaXRvcl8yOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRvcl8KKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgYml0b3JfMjwgTjEsTjIgPgorICAgICAgICAsIGJpdG9yXzwKKyAgICAgICAgICAgICAgYml0b3JfMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0b3JfMgorICAgIDogYml0b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXRvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgYml0b3JfMiwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBiaXRvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgfCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2JpdHhvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkMmEyNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvYml0eG9yLmhwcApAQCAtMCwwICsxLDEzNCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0eG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0eG9yX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXR4b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXR4b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdHhvcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdHhvcl8KKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgYml0eG9yXzI8IE4xLE4yID4KKyAgICAgICAgLCBiaXR4b3JfPAorICAgICAgICAgICAgICBiaXR4b3JfMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEKKyAgICAsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdHhvcl8yCisgICAgOiBiaXR4b3JfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXR4b3JfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdHhvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBiaXR4b3JfMiwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0eG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0eG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICBeIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZGVxdWUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9kZXF1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE3ZTJjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZGVxdWUuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9kZXF1ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IGRlcXVlX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTwKKyAgICAgICAgICAgICAgVDAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZGVxdWVfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkZXF1ZV9jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRlcXVlX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19kZXF1ZV9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfZGVxdWVfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMAorICAgICwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUKKyAgICAsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IGRlcXVlX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfZGVxdWVfYXJnPFQxPjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDM+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX2RlcXVlX2FyZzxUNT46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQ3Pjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDk+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDExPjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQxMz46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQxND46OnZhbHVlIAorICAgICAgICArIGlzX2RlcXVlX2FyZzxUMTU+Ojp2YWx1ZSArIGlzX2RlcXVlX2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19kZXF1ZV9hcmc8VDE3Pjo6dmFsdWUgKyBpc19kZXF1ZV9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfZGVxdWVfYXJnPFQxOT46OnZhbHVlICsgaXNfZGVxdWVfYXJnPFQyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBkZXF1ZV9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OmRlcXVlX2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmRlcXVlX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlCisgICAgOiBhdXg6OmRlcXVlX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmRlcXVlX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2RpdmlkZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9kaXZpZGVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDQwYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9kaXZpZGVzLmhwcApAQCAtMCwwICsxLDEzMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZGl2aWRlcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGRpdmlkZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGRpdmlkZXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGRpdmlkZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBkaXZpZGVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBkaXZpZGVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGl2aWRlcworCisgICAgOiBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBkaXZpZGVzMjwgTjEsTjIgPgorICAgICAgICAsIGRpdmlkZXM8CisgICAgICAgICAgICAgIGRpdmlkZXMyPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczIKKyAgICA6IGRpdmlkZXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBkaXZpZGVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBkaXZpZGVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGRpdmlkZXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBkaXZpZGVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBkaXZpZGVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAvIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI0NTZiYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBlcXVhbF90b19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGVxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBlcXVhbF90bworCisgICAgOiBlcXVhbF90b19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBlcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBlcXVhbF90bywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICA9PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRjYWNlNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI0NSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZm9sZF9jaHVuazwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIwIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBmb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGZvbGRfY2h1bms8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZm9sZF9jaHVuazwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBmb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBzdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgZm9sZF9jaHVuaworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBmb2xkX2ltcGw8CisgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICwgRmlyc3QKKyAgICAgICAgICAgICwgTGFzdAorICAgICAgICAgICAgLCBTdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gY2h1bmtfOworCisgICAgICAgIHR5cGVkZWYgZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX3N0ZXA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICA+CitzdHJ1Y3QgZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIGZvbGRfbnVsbF9zdGVwPCBMYXN0LFN0YXRlID4KKyAgICAgICAgICAgICwgZm9sZF9zdGVwPCBGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIGZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGU+Ojp0eXBlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBjaHVua186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbAorICAgIDogZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9mdWxsX2xhbWJkYS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTY1OGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBUIHJlc3VsdF87CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK3RlbXBsYXRlPCBpbnQgTiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IGFyZzxOPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQwPAorICAgICAgICAgIEYKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDEKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MTwgdHJ1ZV8sVGFnLEYsTDEgPgoreworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgcXVvdGUxPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8VDE+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDE8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQxPCBGLFQxID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDI8IEYsVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MworeworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzPCB0cnVlXyxUYWcsRixMMSxMMixMMyA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBxdW90ZTM8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NAoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NDwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQgPgoreworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgcXVvdGU0PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NDwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNAorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIHR5cGVkZWYgbGFtYmRhPCBUNSxUYWcgPiBsNTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgICwgaXNfbGU1Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDU8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQsIGw1CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWwgY2FzZSBmb3IgJ3Byb3RlY3QnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IG1wbDo6cHJvdGVjdDxUPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxUPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWxpemF0aW9ucyBmb3IgdGhlIG1haW4gJ2JpbmQnIGZvcm0KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIE1XQ1cgOC4zKy9FREcgPCAzMDMsIGxlYWRzIHRvIGFtYmlndWl0eSBvbiBEaWdpdGFsIE1hcnMKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcxLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSA+CisgICAgICAgICwgVGFnMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTsKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mjxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMj4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBsYW1iZGEpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZ3JlYXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2dyZWF0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNjgzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2dyZWF0ZXIuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2dyZWF0ZXIuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBncmVhdGVyX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBncmVhdGVyX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBncmVhdGVyX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZ3JlYXRlcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcgorCisgICAgOiBncmVhdGVyX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBncmVhdGVyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZ3JlYXRlcl9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY2NTRiMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvZ3JlYXRlcl9lcXVhbC5ocHAKQEAgLTAsMCArMSw5NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsCisKKyAgICA6IGdyZWF0ZXJfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXJfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXJfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPj0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvaW5oZXJpdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIzMjhmNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvaW5oZXJpdC5ocHAKQEAgLTAsMCArMSwxNjYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2luaGVyaXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCBDMSwgYm9vbCBDMiA+CitzdHJ1Y3QgaW5oZXJpdDJfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBEZXJpdmVkLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IFQxLCBUMgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBEZXJpdmVkIHR5cGVfOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDJfaW1wbDwgZmFsc2UsdHJ1ZSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIERlcml2ZWQsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogVDEKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVDEgdHlwZV87CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0Ml9pbXBsPCB0cnVlLGZhbHNlID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRGVyaXZlZCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBUMgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBUMiB0eXBlXzsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQyX2ltcGw8IHRydWUsdHJ1ZSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIERlcml2ZWQsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQxIHR5cGVfOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDIKKyAgICA6IGF1eDo6aW5oZXJpdDJfaW1wbDwKKyAgICAgICAgICBpc19lbXB0eV9iYXNlPFQxPjo6dmFsdWUKKyAgICAgICAgLCBpc19lbXB0eV9iYXNlPFQyPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzwgaW5oZXJpdDI8IFQxLFQyID4sVDEsIFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGluaGVyaXQyOjp0eXBlXyB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgaW5oZXJpdDIsIChUMSwgVDIpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDIsIGluaGVyaXQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDMKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQyPAorICAgICAgICAgICAgICBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUMworICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAzCisgICAgICAgICwgaW5oZXJpdDMKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygzLCBpbmhlcml0MykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hLCB0eXBlbmFtZSBUNCA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQ0CisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0MzwKKyAgICAgICAgICAgICAgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAsIFQ0CisgICAgICAgID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDQKKyAgICAgICAgLCBpbmhlcml0NAorICAgICAgICAsICggVDEsIFQyLCBUMywgVDQpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg0LCBpbmhlcml0NCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hLCB0eXBlbmFtZSBUNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQ1CisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0NDwKKyAgICAgICAgICAgICAgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgaW5oZXJpdDUKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDUsIGluaGVyaXQ1KQorCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDIgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUMyA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQ0ID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDUgPSBlbXB0eV9iYXNlCisgICAgPgorc3RydWN0IGluaGVyaXQKKyAgICA6IGluaGVyaXQ1PCBUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDwgbmEsbmEsbmEsbmEsbmEgPgoreworICAgIHRlbXBsYXRlPAorCisgICAgICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAgICAgLCB0eXBlbmFtZSBUMyA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQ0ID0gZW1wdHlfYmFzZQorICAgICAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBpbmhlcml0PCBUMSxUMixUMyxUNCxUNSA+CisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUNfTEFNQkRBKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfQVJJVFkoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWSg1LCA1LCBpbmhlcml0KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGEyODY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKQEAgLTAsMCArMSwxMzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMS0yMDAyCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2lmX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIFN0YXRlID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgU3RhdGVPcCxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yT3A6OnR5cGUgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEZvcndhcmRPcCwgbXBsOjpuZXh0PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEJhY2t3YXJkT3AsIGlkZW50aXR5PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkUHJlZGljYXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfaW1wbAoreworIHByaXZhdGU6CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPCBJdGVyYXRvcixTdGF0ZSA+IGZvcndhcmRfc3RlcDA7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0Ojpub3RfbGFzdAorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEJhY2t3YXJkUHJlZGljYXRlCisgICAgICAgICAgICA+CisgICAgICAgICwgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZSBiYWNrd2FyZF9zdGVwNDsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAzOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDI6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMTo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDA7CisgICAgCisKKyBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMDo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFhNDVmZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjQ1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBpdGVyX2ZvbGRfY2h1bms8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHN0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGl0ZXJfZm9sZF9jaHVuazwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgc3RhdGUyIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBpdGVyX2ZvbGRfY2h1bms8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHN0YXRlMyBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTMsaXRlcjMgPjo6dHlwZSBzdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICAgICA0CisgICAgICAgICAgICAsIEZpcnN0CisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgU3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IGNodW5rXzsKKworICAgICAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICA+IHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfc3RlcDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXRlcl9mb2xkX2NodW5rPCAtMSA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIGl0ZXJfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCBpdGVyX2ZvbGRfc3RlcDwgRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX3N0ZXAKK3sKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9jaHVuazwgLTEgPjo6dGVtcGxhdGUgcmVzdWx0XzwKKyAgICAgICAgICB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGwKKyAgICA6IGl0ZXJfZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xhbWJkYV9ub19jdHBzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmZjNjYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9sYW1iZGFfbm9fY3Rwcy5ocHAKQEAgLTAsMCArMSwyMjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX25vX2N0cHMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEFyaXR5ID4gc3RydWN0IGxhbWJkYV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgdHlwZWRlZiBpc19wbGFjZWhvbGRlcjxUPiBpc19sZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNSwgVGFnLCBmYWxzZV8gPiBsNTsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU1KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUsIHR5cGVuYW1lIGw1Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICAsIHR5cGVuYW1lIFByb3RlY3QKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgLy8vIE1ldGFmdW5jdGlvbiBmb3J3YXJkaW5nIGNvbmZ1c2VzIE1TVkMgNi54CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnRlbXBsYXRlX2FyaXR5PFQ+Ojp0eXBlIGFyaXR5XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX2ltcGw8YXJpdHlfPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVGFnLFByb3RlY3QgPiBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OnR5cGUgdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjppc19sZSBpc19sZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsIGxhbWJkYSwgKFQsIFRhZywgUHJvdGVjdCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDEsIDMsIGxhbWJkYSkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDYwY2NhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9sZXNzLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3MKKworICAgIDogbGVzc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzcywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbGVzc19lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xlc3NfZXF1YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYTFlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbGVzc19lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbAorCisgICAgOiBsZXNzX2VxdWFsX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBsZXNzX2VxdWFsLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBsZXNzX2VxdWFsKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlIDw9IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xpc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMDYyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL2xpc3QuaHBwCkBAIC0wLDAgKzEsNTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyOworCit9CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGlzdDA8CisgICAgICAgICAgICAgCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE8CisgICAgICAgICAgICAgIFQwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDI8CisgICAgICAgICAgICAgIFQwLCBUMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3NlcjwzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDU8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3Nlcjw2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDg8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY2hvb3Nlcjw5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDEyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDIwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfbGlzdF9hcmcKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfbGlzdF9hcmc8bmE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwCisgICAgLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNQorICAgICwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAKKyAgICA+CitzdHJ1Y3QgbGlzdF9jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX2xpc3RfYXJnPFQxPjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQzPjo6dmFsdWUgKyBpc19saXN0X2FyZzxUND46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQ1Pjo6dmFsdWUgKyBpc19saXN0X2FyZzxUNj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQ3Pjo6dmFsdWUgKyBpc19saXN0X2FyZzxUOD46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQ5Pjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMTA+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUMTE+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQxMj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQxMz46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9hcmc8VDE1Pjo6dmFsdWUgKyBpc19saXN0X2FyZzxUMTY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2FyZzxUMTc+Ojp2YWx1ZSArIGlzX2xpc3RfYXJnPFQxOD46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfYXJnPFQxOT46OnZhbHVlICsgaXNfbGlzdF9hcmc8VDIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IGxpc3RfaW1wbAoreworICAgIHR5cGVkZWYgYXV4OjpsaXN0X2NvdW50X2FyZ3M8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Omxpc3RfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbGlzdAorICAgIDogYXV4OjpsaXN0X2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Omxpc3RfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbGlzdF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbGlzdF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTBmOTJlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9saXN0X2MuaHBwCkBAIC0wLDAgKzEsNTM0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IGludCBOID4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjsKKworfQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDBfYzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDFfYzwKKyAgICAgICAgICAgICAgVCwgQzAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3NlcjwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDNfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDRfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3Nlcjw1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDZfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDdfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsaXN0X2NfY2hvb3Nlcjw4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDlfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDExPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyX2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxM19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxN19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGlzdF9jX2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4X2M8CisgICAgICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxpc3RfY19jaG9vc2VyPDIwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBDID4KK3N0cnVjdCBpc19saXN0X2NfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2xpc3RfY19hcmc8TE9OR19NQVg+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNSwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgICwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMiwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgICwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTksIGxvbmcgQzIwCisgICAgPgorc3RydWN0IGxpc3RfY19jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX2xpc3RfY19hcmc8QzE+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8QzI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEMzPjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEM0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbGlzdF9jX2FyZzxDNT46OnZhbHVlICsgaXNfbGlzdF9jX2FyZzxDNj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8Qzc+Ojp2YWx1ZSArIGlzX2xpc3RfY19hcmc8Qzg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19saXN0X2NfYXJnPEM5Pjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMxMD46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzExPjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMxMj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzEzPjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMxND46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzE1Pjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMxNj46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzE3Pjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMxOD46OnZhbHVlIAorICAgICAgICArIGlzX2xpc3RfY19hcmc8QzE5Pjo6dmFsdWUgKyBpc19saXN0X2NfYXJnPEMyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICA+CitzdHJ1Y3QgbGlzdF9jX2ltcGwKK3sKKyAgICB0eXBlZGVmIGF1eDo6bGlzdF9jX2NvdW50X2FyZ3M8CisgICAgICAgICAgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Omxpc3RfY19jaG9vc2VyPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBsaXN0X2MKKyAgICA6IGF1eDo6bGlzdF9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Omxpc3RfY19pbXBsPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNCwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9tYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9tYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNjY2MDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL21hcC5ocHAKQEAgLTAsMCArMSw1NTYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21hcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IG1hcF9jaG9vc2VyOworCit9CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBtYXAwPAorICAgICAgICAgICAgIAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTwKKyAgICAgICAgICAgICAgVDAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3NlcjwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDI8CisgICAgICAgICAgICAgIFQwLCBUMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNDwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3Nlcjw1PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDU8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNzwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYXBfY2hvb3Nlcjw4PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDg8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwOTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDEwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDExPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDExPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTI8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDEzPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDEzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTU8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE2PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFwX2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTg8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDE5PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IG1hcF9jaG9vc2VyPDIwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDIwPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfbWFwX2FyZworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19tYXBfYXJnPG5hPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSAgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNQorICAgICwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFQxMAorICAgICwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0LCB0eXBlbmFtZSBUMTUKKyAgICAsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOSwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IG1hcF9jb3VudF9hcmdzCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPQorICAgICAgICAgIGlzX21hcF9hcmc8VDE+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQzPjo6dmFsdWUgKyBpc19tYXBfYXJnPFQ0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfbWFwX2FyZzxUNT46OnZhbHVlICsgaXNfbWFwX2FyZzxUNj46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDc+Ojp2YWx1ZSArIGlzX21hcF9hcmc8VDg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19tYXBfYXJnPFQ5Pjo6dmFsdWUgKyBpc19tYXBfYXJnPFQxMD46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDExPjo6dmFsdWUgKyBpc19tYXBfYXJnPFQxMj46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDEzPjo6dmFsdWUgKyBpc19tYXBfYXJnPFQxND46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDE1Pjo6dmFsdWUgKyBpc19tYXBfYXJnPFQxNj46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDE3Pjo6dmFsdWUgKyBpc19tYXBfYXJnPFQxOD46OnZhbHVlIAorICAgICAgICArIGlzX21hcF9hcmc8VDE5Pjo6dmFsdWUgKyBpc19tYXBfYXJnPFQyMD46OnZhbHVlCisgICAgICAgICk7CisKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBtYXBfaW1wbAoreworICAgIHR5cGVkZWYgYXV4OjptYXBfY291bnRfYXJnczwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4gYXJnX251bV87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bWFwX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IG1hcAorICAgIDogYXV4OjptYXBfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bWFwX2ltcGw8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL21pbnVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbWludXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2MTUyMTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL21pbnVzLmhwcApAQCAtMCwwICsxLDEzMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbWludXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBtaW51c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbWludXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1pbnVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbWludXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBtaW51c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbWludXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1pbnVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWludXMKKworICAgIDogaWZfPAorCisgICAgICAgICAgaXNfbmE8TjM+CisgICAgICAgICwgbWludXMyPCBOMSxOMiA+CisgICAgICAgICwgbWludXM8CisgICAgICAgICAgICAgIG1pbnVzMjwgTjEsTjIgPgorICAgICAgICAgICAgLCBOMywgTjQsIE41CisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUKKworeworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgTjUgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xCisgICAgLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czIKKyAgICA6IG1pbnVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbWludXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1pbnVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIG1pbnVzMiwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgbWludXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IG1pbnVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAtIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbW9kdWx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL21vZHVsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzYzc1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL21vZHVsdXMuaHBwCkBAIC0wLDAgKzEsMTAxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1vZHVsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1vZHVsdXMKKworICAgIDogbW9kdWx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbW9kdWx1cywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbW9kdWx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL25vdF9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhjNGE0NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvbm90X2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDk0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ub3RfZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG8KKworICAgIDogbm90X2VxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbm90X2VxdWFsX3RvLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBub3RfZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAhPSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL29yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYjNhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL29yLmhwcApAQCAtMCwwICsxLDczIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9vci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgYm9vbCBDXyA+IHN0cnVjdCBvcl9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogdHJ1ZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IG9yX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogb3JfaW1wbDwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IFQyLFQzLFQ0LGZhbHNlXyA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgb3JfaW1wbDxmYWxzZT4KKyAgICA6OnJlc3VsdF88IGZhbHNlXyxmYWxzZV8sZmFsc2VfLGZhbHNlXyA+CisgICAgICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gZmFsc2VfLCB0eXBlbmFtZSBUNCA9IGZhbHNlXywgdHlwZW5hbWUgVDUgPSBmYWxzZV8KKyAgICA+CitzdHJ1Y3Qgb3JfCisKKyAgICA6IGF1eDo6b3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBUMixUMyxUNCxUNSA+CisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBvcl8KKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigKKyAgICAgIDIKKyAgICAsIDUKKyAgICAsIG9yXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcGxhY2Vob2xkZXJzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcGxhY2Vob2xkZXJzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Q0NTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9wbGFjZWhvbGRlcnMuaHBwCkBAIC0wLDAgKzEsMTA1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9wbGFjZWhvbGRlcnMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8IC0xID4gXzsKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfOworfQorCit9fQorCisvLy8gYWd1cnQsIDE3L21hci8wMjogb25lIG1vcmUgcGxhY2Vob2xkZXIgZm9yIHRoZSBsYXN0ICdhcHBseSMnIAorLy8vIHNwZWNpYWxpemF0aW9uCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwxPiBfMTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8xKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDI+IF8yOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzIpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8yOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mz4gXzM7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzM7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw0PiBfNDsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF80KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNDsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDU+IF81OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzUpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol81OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Nj4gXzY7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzY7Cit9CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3BsdXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9wbHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTY3NjM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9wbHVzLmhwcApAQCAtMCwwICsxLDEzMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcGx1cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHBsdXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHBsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHBsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IGludGVncmFsX2NfdGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBwbHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBwbHVzMjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgcGx1cworCisgICAgOiBpZl88CisKKyAgICAgICAgICBpc19uYTxOMz4KKyAgICAgICAgLCBwbHVzMjwgTjEsTjIgPgorICAgICAgICAsIHBsdXM8CisgICAgICAgICAgICAgIHBsdXMyPCBOMSxOMiA+CisgICAgICAgICAgICAsIE4zLCBONCwgTjUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZQorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czIKKyAgICA6IHBsdXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBwbHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBwbHVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIHBsdXMyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBwbHVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBwbHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICArIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcXVvdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9xdW90ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI1OThjYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcXVvdGUuaHBwCkBAIC0wLDAgKzEsMTE2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9xdW90ZS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPCBib29sID4gc3RydWN0IHF1b3RlX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogVAorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcXVvdGVfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTEKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8IGF1eDo6aGFzX3R5cGU8IEY8VTE+ID46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRjxVMT4gPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTIKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMiA+ID46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgRjwgVTEsVTIgPiA+CisKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTMKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIsVTMgPiA+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEY8IFUxLFUyLFUzID4gPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IHF1b3RlX2ltcGw8IGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzLFU0ID4gPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGPCBVMSxVMixVMyxVNCA+ID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAsIHR5cGVuYW1lIFA1CisgICAgICAgID4KKyAgICAgIGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgICAgICwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwgYXV4OjpoYXNfdHlwZTwgRjwgVTEsVTIsVTMsVTQsVTUgPiA+Ojp2YWx1ZSA+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEY8IFUxLFUyLFUzLFU0LFU1ID4gPgorCisgICAgeworICAgIH07Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNmMxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3JldmVyc2VfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDI5NSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rOworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUyIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rPDQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2NodW5rCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCBpdGVyNAorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGU0LCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9zdGVwOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9udWxsX3N0ZXAKK3sKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIHJldmVyc2VfZm9sZF9udWxsX3N0ZXA8IExhc3QsU3RhdGUgPgorICAgICAgICAgICAgLCByZXZlcnNlX2ZvbGRfc3RlcDwgRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+CisgICAgICAgICAgICA+Ojp0eXBlIHJlc187CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfc3RlcAoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2NodW5rPCAtMSA+Ojp0ZW1wbGF0ZSByZXN1bHRfPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBkZXJlZjxGaXJzdD46OnR5cGUKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsCisgICAgOiByZXZlcnNlX2ZvbGRfY2h1bms8Tj4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdjYzY4OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyOTUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8MD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazwyPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgZndkX3N0YXRlMyBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMCxpdGVyMCA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTIsaXRlcjIgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMyxpdGVyMyA+Ojp0eXBlIGZ3ZF9zdGF0ZTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBmd2Rfc3RhdGU0IGJrd2Rfc3RhdGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlNCxpdGVyMyA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgICAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuaworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsZndkX3N0YXRlMixpdGVyMiA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAgICAgLCBpdGVyNAorICAgICAgICAgICAgLCBMYXN0CisgICAgICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjpzdGF0ZSBia3dkX3N0YXRlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTIsaXRlcjEgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX3N0ZXA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8IC0xID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgaXNfc2FtZTwgRmlyc3QsTGFzdCA+Ojp0eXBlCisgICAgICAgICAgICAsIHJldmVyc2VfaXRlcl9mb2xkX251bGxfc3RlcDwgTGFzdCxTdGF0ZSA+CisgICAgICAgICAgICAsIHJldmVyc2VfaXRlcl9mb2xkX3N0ZXA8IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfc3RlcAoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9pdGVyX2ZvbGRfY2h1bms8IC0xID46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxTdGF0ZSxGaXJzdCA+Ojp0eXBlCisgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IG5lc3RlZF9zdGVwOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8CisgICAgICAgICAgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjpzdGF0ZQorICAgICAgICAsIEZpcnN0CisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsCisgICAgOiByZXZlcnNlX2l0ZXJfZm9sZF9jaHVuazxOPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3NldC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3NldC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk2NDg3OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2V0LmhwcApAQCAtMCwwICsxLDU1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvc2V0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3Qgc2V0X2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHNldDA8CisgICAgICAgICAgICAgCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxPAorICAgICAgICAgICAgICBUMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0ODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19zZXRfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3NldF9hcmc8bmE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwCisgICAgLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNQorICAgICwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAKKyAgICA+CitzdHJ1Y3Qgc2V0X2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfc2V0X2FyZzxUMT46OnZhbHVlICsgaXNfc2V0X2FyZzxUMj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDM+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfYXJnPFQ1Pjo6dmFsdWUgKyBpc19zZXRfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUNz46OnZhbHVlICsgaXNfc2V0X2FyZzxUOD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9hcmc8VDk+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTE+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTM+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTU+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTc+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2FyZzxUMTk+Ojp2YWx1ZSArIGlzX3NldF9hcmc8VDIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHNldF9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OnNldF9jb3VudF9hcmdzPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpzZXRfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3Qgc2V0CisgICAgOiBhdXg6OnNldF9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpzZXRfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2V0X2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zZXRfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlhOWIxOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2V0X2MuaHBwCkBAIC0wLDAgKzEsNTM0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zZXRfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IHNldF9jX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MF9jPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDFfYzwKKyAgICAgICAgICAgICAgVCwgQzAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Ml9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0M19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDRfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0NV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0Nl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDdfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzZXRfY19jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0OV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMF9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTFfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTJfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxM19jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTRfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTVfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNl9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTdfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MThfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2V0X2NfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOV9jPAorICAgICAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNldF9jX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MjBfYzwKKyAgICAgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgQyA+CitzdHJ1Y3QgaXNfc2V0X2NfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3NldF9jX2FyZzxMT05HX01BWD4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1LCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgLCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgLCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOSwgbG9uZyBDMjAKKyAgICA+CitzdHJ1Y3Qgc2V0X2NfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc19zZXRfY19hcmc8QzE+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMz46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEM0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEM1Pjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8Qzc+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDOD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDOT46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEMxMD46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMTE+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzEzPjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfc2V0X2NfYXJnPEMxNT46OnZhbHVlICsgaXNfc2V0X2NfYXJnPEMxNj46OnZhbHVlIAorICAgICAgICArIGlzX3NldF9jX2FyZzxDMTc+Ojp2YWx1ZSArIGlzX3NldF9jX2FyZzxDMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc19zZXRfY19hcmc8QzE5Pjo6dmFsdWUgKyBpc19zZXRfY19hcmc8QzIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBzZXRfY19pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OnNldF9jX2NvdW50X2FyZ3M8CisgICAgICAgICAgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnNldF9jX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHNldF9jCisgICAgOiBhdXg6OnNldF9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnNldF9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3NoaWZ0X2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zaGlmdF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDZjNTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zaGlmdF9sZWZ0LmhwcApAQCAtMCwwICsxLDk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zaGlmdF9sZWZ0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X2xlZnRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnQKKworICAgIDogc2hpZnRfbGVmdF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgc2hpZnRfbGVmdCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfbGVmdCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4sIHR5cGVuYW1lIFMgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIE46OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlCisgICAgICAgICAgICAgICAgICA8PCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoUyk6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2hpZnRfcmlnaHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy9zaGlmdF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg1ZWIwZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvc2hpZnRfcmlnaHQuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NoaWZ0X3JpZ2h0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X3JpZ2h0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodAorCisgICAgOiBzaGlmdF9yaWdodF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9yaWdodCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfcmlnaHQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTiwgdHlwZW5hbWUgUyA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgID4+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChTKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90ZW1wbGF0ZV9hcml0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3RlbXBsYXRlX2FyaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTA1NzhmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90ZW1wbGF0ZV9hcml0eS5ocHAKQEAgLTAsMCArMSw0MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IG1wbDo6aW50XzwgLTEgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHRlbXBsYXRlX2FyaXR5X2ltcGw8dHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogRjo6YXJpdHkKKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eQorICAgIDogdGVtcGxhdGVfYXJpdHlfaW1wbDwgOjpuZG5ib29zdDo6bXBsOjphdXg6Omhhc19yZWJpbmQ8Rj46OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPEY+Cit7Cit9OworCit9fX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3RpbWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2RhZmM5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy90aW1lcy5ocHAKQEAgLTAsMCArMSwxMzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3RpbWVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgdGltZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHRpbWVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCB0aW1lc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHRpbWVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdGltZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRpbWVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCB0aW1lczI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IHRpbWVzCisKKyAgICA6IGlmXzwKKworICAgICAgICAgIGlzX25hPE4zPgorICAgICAgICAsIHRpbWVzMjwgTjEsTjIgPgorICAgICAgICAsIHRpbWVzPAorICAgICAgICAgICAgICB0aW1lczI8IE4xLE4yID4KKyAgICAgICAgICAgICwgTjMsIE40LCBONQorICAgICAgICAgICAgPgorICAgICAgICA+Ojp0eXBlCisKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMQorICAgICwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgdGltZXMyCisgICAgOiB0aW1lc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHRpbWVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSB0aW1lc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCB0aW1lczIsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHRpbWVzKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKK3RlbXBsYXRlPD4KK3N0cnVjdCB0aW1lc19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgKiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3VucGFja19hcmdzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdW5wYWNrX2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZTc0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3VucGFja19hcmdzLmhwcApAQCAtMCwwICsxLDEwOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdW5wYWNrX2FyZ3MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBzaXplKSA+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHk7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB1bnBhY2tfYXJnc19pbXBsPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhcHBseTA8CisgICAgICAgICAgICAgIEYKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHVucGFja19hcmdzX2ltcGw8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGFwcGx5MTwKKyAgICAgICAgICAgICAgRgorICAgICAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHkyPAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHkzPAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXBwbHk0PAorICAgICAgICAgICAgICBGCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHVucGFja19hcmdzX2ltcGw8NT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGFwcGx5NTwKKyAgICAgICAgICAgICAgRgorICAgICAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywyID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMyA+Ojp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsNCA+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCB1bnBhY2tfYXJncworeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBhdXg6OnVucGFja19hcmdzX2ltcGw8IHNpemU8QXJncz46OnZhbHVlID4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8IEYsQXJncyA+CisKKyAgICB7CisgICAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfUEFTU19USFJPVUdIX0xBTUJEQV9TUEVDKDEsIHVucGFja19hcmdzKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRlZTkyMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yLmhwcApAQCAtMCwwICsxLDU1NiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCBpbnQgTiA+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwwPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8CisgICAgICAgICAgICAgCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPAorICAgICAgICAgICAgICBUMAorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwKKyAgICAgICAgICAgICAgVDAsIFQxCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IzPAorICAgICAgICAgICAgICBUMCwgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8ND4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8Nj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I2PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8OT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I5PAorICAgICAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxMj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMjwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTM8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTY8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY2hvb3NlcjwxOD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwKKyAgICAgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBUMTUsIFQxNiwgVDE3CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MTk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTk8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8CisgICAgICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc192ZWN0b3JfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3ZlY3Rvcl9hcmc8bmE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwCisgICAgLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQsIHR5cGVuYW1lIFQxNQorICAgICwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5LCB0eXBlbmFtZSBUMjAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2NvdW50X2FyZ3MKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9CisgICAgICAgICAgaXNfdmVjdG9yX2FyZzxUMT46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUMj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9hcmc8VDM+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDQ+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfYXJnPFQ1Pjo6dmFsdWUgKyBpc192ZWN0b3JfYXJnPFQ2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUNz46OnZhbHVlICsgaXNfdmVjdG9yX2FyZzxUOD46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9hcmc8VDk+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDEwPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMTE+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDEyPjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMTM+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMTU+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDE2Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMTc+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDE4Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2FyZzxUMTk+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9hcmc8VDIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl9jb3VudF9hcmdzPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPiBhcmdfbnVtXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2ZWN0b3JfY2hvb3NlcjwgYXJnX251bV86OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yCisgICAgOiBhdXg6OnZlY3Rvcl9pbXBsPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPjo6dHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2ZWN0b3JfaW1wbDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3JfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U2NDViOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yX2MuaHBwCkBAIC0wLDAgKzEsNTM0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3JfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgaW50IE4gPgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI7CisKK30KKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMF9jPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjFfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMl9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDM+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yM19jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3Nlcjw0PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjRfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCkKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDY+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNl9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3Nlcjw3PgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOCwgbG9uZyBDMTkKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjdfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNykKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB2ZWN0b3JfY19jaG9vc2VyPDk+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMF9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTFfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MTI+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTJfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxMz4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxM19jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MTQ+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTRfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MTU+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTVfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxNj4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNl9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MTc+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTdfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MTg+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMThfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdmVjdG9yX2NfY2hvb3NlcjwxOT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOV9jPAorICAgICAgICAgICAgICBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHZlY3Rvcl9jX2Nob29zZXI8MjA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjBfYzwKKyAgICAgICAgICAgICAgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpLCBUKEMxOCksIFQoQzE5KQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgQyA+CitzdHJ1Y3QgaXNfdmVjdG9yX2NfYXJnCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlICA9IHRydWUpOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3ZlY3Rvcl9jX2FyZzxMT05HX01BWD4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgID0gZmFsc2UpOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1LCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgLCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgLCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOSwgbG9uZyBDMjAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2NfY291bnRfYXJncworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0KKyAgICAgICAgICBpc192ZWN0b3JfY19hcmc8QzE+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMz46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEM0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEM1Pjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzY+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8Qzc+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDOD46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDOT46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMxMD46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMTE+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMTI+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8QzEzPjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzE0Pjo6dmFsdWUgCisgICAgICAgICsgaXNfdmVjdG9yX2NfYXJnPEMxNT46OnZhbHVlICsgaXNfdmVjdG9yX2NfYXJnPEMxNj46OnZhbHVlIAorICAgICAgICArIGlzX3ZlY3Rvcl9jX2FyZzxDMTc+Ojp2YWx1ZSArIGlzX3ZlY3Rvcl9jX2FyZzxDMTg+Ojp2YWx1ZSAKKyAgICAgICAgKyBpc192ZWN0b3JfY19hcmc8QzE5Pjo6dmFsdWUgKyBpc192ZWN0b3JfY19hcmc8QzIwPjo6dmFsdWUKKyAgICAgICAgKTsKKworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfY19pbXBsCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl9jX2NvdW50X2FyZ3M8CisgICAgICAgICAgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+IGFyZ19udW1fOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZlY3Rvcl9jX2Nob29zZXI8IGFyZ19udW1fOjp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHZlY3Rvcl9jCisgICAgOiBhdXg6OnZlY3Rvcl9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZlY3Rvcl9jX2ltcGw8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0LCBDMTUsIEMxNiwgQzE3LCBDMTgsIEMxOQorICAgICAgICA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYWR2YW5jZV9iYWNrd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUwYzgyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hZHZhbmNlX2JhY2t3YXJkLmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfYmFja3dhcmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgbG9uZyBOID4gc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9iYWNrd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9iYWNrd2FyZDw0PgorICAgICAgICAgICAgLCBJdGVyYXRvcgorICAgICAgICAgICAgPjo6dHlwZSBjaHVua19yZXN1bHRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2FkdmFuY2VfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNhNWFmZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hZHZhbmNlX2ZvcndhcmQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vYWR2YW5jZV9mb3J3YXJkLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgTiA+IHN0cnVjdCBhZHZhbmNlX2ZvcndhcmQ7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIGl0ZXIwIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgaXRlcjEgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiBpdGVyMiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIGl0ZXIzIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8ND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgICAgIHR5cGVkZWYgaXRlcjQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8ND4KKyAgICAgICAgICAgICwgSXRlcmF0b3IKKyAgICAgICAgICAgID46OnR5cGUgY2h1bmtfcmVzdWx0XzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2ZvcndhcmQ8KAorICAgICAgICAgICAgICAgIChOIC0gNCkgPCAwCisgICAgICAgICAgICAgICAgICAgID8gMAorICAgICAgICAgICAgICAgICAgICA6IE4gLSA0CisgICAgICAgICAgICAgICAgICAgICk+CisgICAgICAgICAgICAsIGNodW5rX3Jlc3VsdF8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2FuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRiODhkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hbmQuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2FuZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3QgYW5kX2ltcGwKKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBhbmRfaW1wbDwgdHJ1ZSxUMSxUMixUMyxUNCA+CisgICAgOiBhbmRfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCB0cnVlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYW5kX2ltcGw8CisgICAgICAgICAgdHJ1ZQorICAgICAgICAsIHRydWVfLCB0cnVlXywgdHJ1ZV8sIHRydWVfCisgICAgICAgID4KKyAgICA6IHRydWVfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gdHJ1ZV8sIHR5cGVuYW1lIFQ0ID0gdHJ1ZV8sIHR5cGVuYW1lIFQ1ID0gdHJ1ZV8KKyAgICA+CitzdHJ1Y3QgYW5kXworCisgICAgOiBhdXg6OmFuZF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYW5kXworICAgICAgICAsICggVDEsIFQyLCBUMywgVDQsIFQ1KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKAorICAgICAgMgorICAgICwgNQorICAgICwgYW5kXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YjFjZDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHkuaHBwCkBAIC0wLDAgKzEsMTY5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseS5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MAorCisgICAgOiBhcHBseV93cmFwMDwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMQorICAgICAgICAsIGFwcGx5MAorICAgICAgICAsIChGICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5PCBGLG5hLG5hLG5hLG5hLG5hID4KKyAgICA6IGFwcGx5MDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTEKKworICAgIDogYXBwbHlfd3JhcDE8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMgorICAgICAgICAsIGFwcGx5MQorICAgICAgICAsIChGLCBUMSkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBhcHBseTE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHkyCisKKyAgICA6IGFwcGx5X3dyYXAyPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICAzCisgICAgICAgICwgYXBwbHkyCisgICAgICAgICwgKEYsIFQxLCBUMikKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsbmEsbmEsbmEgPgorICAgIDogYXBwbHkyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTMKKworICAgIDogYXBwbHlfd3JhcDM8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgYXBwbHkzCisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMpCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxuYSxuYSA+CisgICAgOiBhcHBseTM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQKKworICAgIDogYXBwbHlfd3JhcDQ8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGFwcGx5NAorICAgICAgICAsIChGLCBUMSwgVDIsIFQzLCBUNCkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBhcHBseTQ8IEYsVDEsVDIsVDMsVDQgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHk1CisKKyAgICA6IGFwcGx5X3dyYXA1PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA2CisgICAgICAgICwgYXBwbHk1CisgICAgICAgICwgKEYsIFQxLCBUMiwgVDMsIFQ0LCBUNSkKKyAgICAgICAgKQorfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHkKKyAgICA6IGFwcGx5NTwgRixUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcHBseV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjY2M5NGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBhcHBseTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2FwcGx5X3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2FwcGx5X3dyYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjOTAyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXBwbHlfd3JhcC5ocHAKQEAgLTAsMCArMSw4NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisKKyAgICAsIHR5cGVuYW1lIGhhc19hcHBseV8gPSB0eXBlbmFtZSBhdXg6Omhhc19hcHBseTxGPjo6dHlwZQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAwCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYgPgorc3RydWN0IGFwcGx5X3dyYXAwPCBGLHRydWVfID4KKyAgICA6IEY6OmFwcGx5Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDEKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8VDE+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAyCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMworCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA0CisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1CisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXJnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9hcmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMTU3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYXJnLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXJnLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwgLTEgPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IC0xKTsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUyIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDM+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMyk7CisgICAgdHlwZWRlZiBhcmc8ND4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU1IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsIGFyZykKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iYXNpY19iaW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iYXNpY19iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzdmNTA1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2Jhc2ljX2JpbmQuaHBwCkBAIC0wLDAgKzEsMzY5IEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9iYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMDxGPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDA8Rj4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQ8IEYsbmEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDA8Rj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMgorICAgICwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDI8IEYsVDEsVDIgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDI8IEYsVDEsVDIgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLG5hLG5hLG5hID4KKyAgICA6IGJpbmQyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLG5hLG5hID4KKyAgICA6IGJpbmQzPCBGLFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBiaW5kNDwgRixUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZAorICAgIDogYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ODZkOGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYmluZC5ocHAKQEAgLTAsMCArMSw0NjYgQEAKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZworeworICAgIHR5cGVkZWYgQXJnIG5leHQ7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEFyZworICAgID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnPCBhcmc8IC0xID4sIEFyZyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBBcmc6Om5leHQgbmV4dDsKKyAgICB0eXBlZGVmIEFyZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAwPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDA8Rj4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQwPEY+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMSwgYmluZDApCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSwgYmluZDApCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kPCBGLG5hLG5hLG5hLG5hLG5hID4KKyAgICA6IGJpbmQwPEY+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQxCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzCisgICAgLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQxPCBGLFQxID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQxPCBGLFQxID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygyLCBiaW5kMSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygyLCBiaW5kMSkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLG5hLG5hLG5hLG5hID4KKyAgICA6IGJpbmQxPCBGLFQxID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMgorICAgICwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDI8IEYsVDEsVDIgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDI8IEYsVDEsVDIgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLG5hLG5hLG5hID4KKyAgICA6IGJpbmQyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMzwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFUxCisgICAgLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDM8IEYsVDEsVDIsVDMgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDQsIGJpbmQzKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDQsIGJpbmQzKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixUMyxuYSxuYSA+CisgICAgOiBiaW5kMzwgRixUMSxUMixUMyA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ0Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA0PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDUsIGJpbmQ0KQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDUsIGJpbmQ0KQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsVDMsVDQsbmEgPgorICAgIDogYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDUKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDQsbjQgPiByNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6dHlwZSBhNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNDo6bmV4dCBuNTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE0LFUxLFUyLFUzLFU0LFU1ID4gdDQ7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDUsbjUgPiByNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNTo6dHlwZSBhNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByNTo6bmV4dCBuNjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGE1LFUxLFUyLFUzLFU0LFU1ID4gdDU7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZAorICAgIDogYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpbmRfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaW5kX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEwNDZlZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaW5kX2Z3ZC5ocHAKQEAgLTAsMCArMSw1MiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZF9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBiaW5kOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYmluZDA7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGJpbmQyOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYml0YW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaXRhbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MGM3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYml0YW5kLmhwcApAQCAtMCwwICsxLDE1NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0YW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgYml0YW5kX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXRhbmRfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGJpdGFuZF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRhbmRfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdGFuZF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGJpdGFuZF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0YW5kXworICAgIDogYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXRhbmRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBiaXRhbmRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdGFuZF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRhbmRfCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgYml0YW5kXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGJpdGFuZF93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuMSAmIG4yKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPCBULHZhbHVlID4gdHlwZTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGF1eDo6Yml0YW5kX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYml0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMWQyNGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvYml0b3IuaHBwCkBAIC0wLDAgKzEsMTU3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXRvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGJpdG9yX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBiaXRvcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0b3JfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiaXRvcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiaXRvcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0b3JfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBiaXRvcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgYml0b3JfCisgICAgOiBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBiaXRvcl88IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IGJpdG9yXzwgYml0b3JfPCBiaXRvcl88IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXRvcl88IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogYml0b3JfPCBiaXRvcl88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBiaXRvcl88IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IGJpdG9yX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0b3JfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGJpdG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdG9yXykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGJpdG9yX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xIHwgbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0b3JfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OmJpdG9yX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaXR4b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2JpdHhvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJkYTg2OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9iaXR4b3IuaHBwCkBAIC0wLDAgKzEsMTU3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXR4b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXR4b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0eG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0eG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0eG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXR4b3JfCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIE41ICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zLCB0eXBlbmFtZSBONAorICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IGJpdHhvcl88IGJpdHhvcl88IGJpdHhvcl88IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXR4b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsTjMsbmEsbmEgPgorCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIG5hLCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yCisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IGJpdHhvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdHhvcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgYml0eG9yX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXR4b3JfKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgVCBuMSwgVCBuMiA+CitzdHJ1Y3QgYml0eG9yX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xIF4gbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYml0eG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpiaXR4b3Jfd2tuZDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgTjE6OnZhbHVlCisgICAgICAgICAgICAsIE4yOjp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZQorCisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2RlcXVlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9kZXF1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzMWY2NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9kZXF1ZS5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2RlcXVlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGRlcXVlOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3I3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgZGVxdWUKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2RpdmlkZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2RpdmlkZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViMjJhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZGl2aWRlcy5ocHAKQEAgLTAsMCArMSwxNTYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2RpdmlkZXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBkaXZpZGVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBkaXZpZGVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZGl2aWRlc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZGl2aWRlc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGl2aWRlcworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBkaXZpZGVzPCBkaXZpZGVzPCBkaXZpZGVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBkaXZpZGVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZGl2aWRlc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZGl2aWRlc190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBkaXZpZGVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgZGl2aWRlcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IGRpdmlkZXNfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobjEgLyBuMikpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkaXZpZGVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpkaXZpZGVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MDBiYTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsOTggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBlcXVhbF90b19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBlcXVhbF90b19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGVxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBlcXVhbF90bworCisgICAgOiBlcXVhbF90b19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBlcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBlcXVhbF90bywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID09CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0Y2Q0MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTIgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMiBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGwKK3sKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICA0CisgICAgICAgICwgRmlyc3QKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIGZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KKyAgICA6IGZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPEZvcndhcmRPcCxTdGF0ZSwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2Z1bGxfbGFtYmRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mdWxsX2xhbWJkYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2NThkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9mdWxsX2xhbWJkYS5ocHAKQEAgLTAsMCArMSw1NTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vZnVsbF9sYW1iZGEuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgVGFnCisgICAKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBUIHJlc3VsdF87CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgaXNfbGFtYmRhX2V4cHJlc3Npb24KKyAgICA6IGxhbWJkYTxUPjo6aXNfbGUKK3sKK307CisKK3RlbXBsYXRlPCBpbnQgTiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IGFyZzxOPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIHRydWVfIGlzX2xlOworICAgIHR5cGVkZWYgbXBsOjphcmc8Tj4gcmVzdWx0XzsgLy8gcXVhbGlmaWVkIGZvciB0aGUgc2FrZSBvZiBNSVBTcHJvIDcuNDEKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQwPEY+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQwPAorICAgICAgICAgIEYKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDEKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MTwgdHJ1ZV8sVGFnLEYsTDEgPgoreworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgcXVvdGUxPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8VDE+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDE8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQxPCBGLFQxID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDE8CisgICAgICAgICAgRgorICAgICAgICAsIFQxCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDIKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MjwgdHJ1ZV8sVGFnLEYsTDEsTDIgPgoreworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgcXVvdGUyPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDI8IEYsVDEsVDIgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MworeworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMworICAgID4KK3N0cnVjdCBsZV9yZXN1bHQzPCB0cnVlXyxUYWcsRixMMSxMMixMMyA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBxdW90ZTM8IEYsVGFnID4KKyAgICAgICAgLCB0eXBlbmFtZSBMMTo6cmVzdWx0XywgdHlwZW5hbWUgTDI6OnJlc3VsdF8sIHR5cGVuYW1lIEwzOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUsIGlzX2xlMzo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQzPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDM8IEYsVDEsVDIsVDMgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NAoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NDwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQgPgoreworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgcXVvdGU0PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMixUMyxUNCA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMyxUYWcgPiBsMzsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDQsVGFnID4gbDQ7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0NDwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzLCBsNAorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDQ8IEYsVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NQoreworICAgIHR5cGVkZWYgRjwKKyAgICAgICAgICB0eXBlbmFtZSBMMTo6dHlwZSwgdHlwZW5hbWUgTDI6OnR5cGUsIHR5cGVuYW1lIEwzOjp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgTDQ6OnR5cGUsIHR5cGVuYW1lIEw1Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzLCB0eXBlbmFtZSBMNCwgdHlwZW5hbWUgTDUKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0NTwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMsTDQsTDUgPgoreworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgcXVvdGU1PCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICAsIHR5cGVuYW1lIEw0OjpyZXN1bHRfLCB0eXBlbmFtZSBMNTo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQKKyAgICAgICAgLCB0eXBlbmFtZSBQNQorICAgICAgICA+CisgICAgICBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIHR5cGVkZWYgbGFtYmRhPCBUNSxUYWcgPiBsNTsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGw0Ojppc19sZSBpc19sZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlLCBpc19sZTQ6OnZhbHVlCisgICAgICAgICwgaXNfbGU1Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDU8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQsIGw1CisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICBGCisgICAgICAgICwgVDEsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWwgY2FzZSBmb3IgJ3Byb3RlY3QnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBsYW1iZGE8IG1wbDo6cHJvdGVjdDxUPiwgVGFnID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxUPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHNwZWNpYWxpemF0aW9ucyBmb3IgdGhlIG1haW4gJ2JpbmQnIGZvcm0KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgYmluZDwgRixUMSxUMixUMyxUNCxUNSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiByZXN1bHRfOworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworLy8vIHdvcmthcm91bmQgZm9yIE1XQ1cgOC4zKy9FREcgPCAzMDMsIGxlYWRzIHRvIGFtYmlndWl0eSBvbiBEaWdpdGFsIE1hcnMKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcxLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBsYW1iZGE8IEYsVGFnMSA+CisgICAgICAgICwgVGFnMgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IEYsVGFnMiA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUYWcxLFRhZzIgPiBsMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTsKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0Mjxpc19sZSwgVGFnMiwgbXBsOjpsYW1iZGEsIGwxLCBsMj4gbGVfcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBsYW1iZGEpCisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9ncmVhdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9ncmVhdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2UxYWUxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2dyZWF0ZXIuaHBwCkBAIC0wLDAgKzEsOTggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2dyZWF0ZXIuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBncmVhdGVyX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBncmVhdGVyX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBncmVhdGVyX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBncmVhdGVyX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZ3JlYXRlcl90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcgorCisgICAgOiBncmVhdGVyX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgZ3JlYXRlcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBncmVhdGVyLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID4KKyAgICAgICAgICAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApCisgICAgICAgICAgICApOworICAgICAgICB0eXBlZGVmIGJvb2xfPHZhbHVlPiB0eXBlOworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2dyZWF0ZXJfZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2dyZWF0ZXJfZXF1YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliZGZkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvZ3JlYXRlcl9lcXVhbC5ocHAKQEAgLTAsMCArMSw5OCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsCisKKyAgICA6IGdyZWF0ZXJfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsIGdyZWF0ZXJfZXF1YWwsIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGdyZWF0ZXJfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZ3JlYXRlcl9lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPj0KKyAgICAgICAgICAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApCisgICAgICAgICAgICApOworICAgICAgICB0eXBlZGVmIGJvb2xfPHZhbHVlPiB0eXBlOworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2luaGVyaXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2luaGVyaXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZjM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaW5oZXJpdC5ocHAKQEAgLTAsMCArMSwxNDEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2luaGVyaXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgPgorc3RydWN0IGluaGVyaXQyCisgICAgOiBUMSwgVDIKK3sKKyAgICB0eXBlZGVmIGluaGVyaXQyIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBpbmhlcml0MiwgKFQxLCBUMikpCit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEgPgorc3RydWN0IGluaGVyaXQyPCBUMSxlbXB0eV9iYXNlID4KK3sKKyAgICB0eXBlZGVmIFQxIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoVDEsIGVtcHR5X2Jhc2UpKQorfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQyID4KK3N0cnVjdCBpbmhlcml0MjwgZW1wdHlfYmFzZSxUMiA+Cit7CisgICAgdHlwZWRlZiBUMiB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKGVtcHR5X2Jhc2UsIFQyKSkKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbmhlcml0MjwgZW1wdHlfYmFzZSxlbXB0eV9iYXNlID4KK3sKKyAgICB0eXBlZGVmIGVtcHR5X2Jhc2UgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChlbXB0eV9iYXNlLCBlbXB0eV9iYXNlKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBpbmhlcml0MikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgPgorc3RydWN0IGluaGVyaXQzCisgICAgOiBpbmhlcml0MjwKKyAgICAgICAgICB0eXBlbmFtZSBpbmhlcml0MjwKKyAgICAgICAgICAgICAgVDEsIFQyCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDMKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgMworICAgICAgICAsIGluaGVyaXQzCisgICAgICAgICwgKCBUMSwgVDIsIFQzKQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMywgaW5oZXJpdDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NAorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDM8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNAorICAgICAgICA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA0CisgICAgICAgICwgaW5oZXJpdDQKKyAgICAgICAgLCAoIFQxLCBUMiwgVDMsIFQ0KQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNCwgaW5oZXJpdDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgICwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NQorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDQ8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDUKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIGluaGVyaXQ1CisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg1LCBpbmhlcml0NSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQyID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorICAgID4KK3N0cnVjdCBpbmhlcml0CisgICAgOiBpbmhlcml0NTwgVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQ8IG5hLG5hLG5hLG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwKKworICAgICAgICAgIHR5cGVuYW1lIFQxID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDIgPSBlbXB0eV9iYXNlCisgICAgICAgICwgdHlwZW5hbWUgVDMgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUNCA9IGVtcHR5X2Jhc2UKKyAgICAgICAgLCB0eXBlbmFtZSBUNSA9IGVtcHR5X2Jhc2UKKworICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgICAgIDogaW5oZXJpdDwgVDEsVDIsVDMsVDQsVDUgPgorICAgIHsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0xBTUJEQSg1LCBpbmhlcml0KQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfVEVNUExBVEVfQVJJVFkoNSwgNSwgaW5oZXJpdCkKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYTI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaXRlcl9mb2xkX2lmX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTMzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pZl9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yLCB0eXBlbmFtZSBTdGF0ZSA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX251bGxfc3RlcAoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlT3AKKyAgICAgICAgLCB0eXBlbmFtZSBJdGVyYXRvck9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFN0YXRlT3AsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvck9wOjp0eXBlIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBQcmVkaWNhdGUsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBub3RfbGFzdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQobm90X2xhc3QpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBJdGVyYXRvcixTdGF0ZSxGb3J3YXJkT3AsIG1wbDo6bmV4dDxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBQcmVkaWNhdGUsU3RhdGUsSXRlcmF0b3IgPjo6dHlwZSBub3RfbGFzdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQobm90X2xhc3QpOjp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBJdGVyYXRvcixTdGF0ZSxCYWNrd2FyZE9wLCBpZGVudGl0eTxJdGVyYXRvcj4gPiBpbXBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgaW1wbF86Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZFByZWRpY2F0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgQmFja3dhcmRQcmVkaWNhdGUKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmX2ltcGwKK3sKKyBwcml2YXRlOgorICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwgSXRlcmF0b3IsU3RhdGUgPiBmb3J3YXJkX3N0ZXAwOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDE6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAyOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXAzOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2ZvcndhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6aXRlcmF0b3IsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6OnN0YXRlLCBGb3J3YXJkT3AsIEZvcndhcmRQcmVkaWNhdGUgPiBmb3J3YXJkX3N0ZXA0OworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6bm90X2xhc3QKKyAgICAgICAgLCBpdGVyX2ZvbGRfaWZfaW1wbDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICAgICAsIEZvcndhcmRQcmVkaWNhdGUKKyAgICAgICAgICAgICwgQmFja3dhcmRPcAorICAgICAgICAgICAgLCBCYWNrd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgPgorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9udWxsX3N0ZXA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6Oml0ZXJhdG9yCisgICAgICAgICAgICAsIHR5cGVuYW1lIGZvcndhcmRfc3RlcDQ6OnN0YXRlCisgICAgICAgICAgICA+CisgICAgICAgID46OnR5cGUgYmFja3dhcmRfc3RlcDQ7CisKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDQ6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAzOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDI6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMzo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAyOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMTsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDE6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAwOworICAgIAorCisgcHVibGljOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDA6OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDQ6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzA4YjMwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2l0ZXJfZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDE4MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUxIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjEgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAyLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMiBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIyIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgMyxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMCxpdGVyMCA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTEsaXRlcjEgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUyLGl0ZXIyID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCA0LEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUzLGl0ZXIzID46OnR5cGUgc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGU0IHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjQgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbAoreworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgNAorICAgICAgICAsIEZpcnN0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIFN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAoIChOIC0gNCkgPCAwID8gMCA6IE4gLSA0ICkKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186Oml0ZXJhdG9yCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6c3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiByZXNfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjpzdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaW1wbDwgLTEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgorICAgIDogaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAtMSxMYXN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xhbWJkYV9ub19jdHBzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sYW1iZGFfbm9fY3Rwcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJmYzY2MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sYW1iZGFfbm9fY3Rwcy5ocHAKQEAgLTAsMCArMSwyMjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX25vX2N0cHMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQzEgPSBmYWxzZSwgYm9vbCBDMiA9IGZhbHNlLCBib29sIEMzID0gZmFsc2UsIGJvb2wgQzQgPSBmYWxzZQorICAgICwgYm9vbCBDNSA9IGZhbHNlCisgICAgPgorc3RydWN0IGxhbWJkYV9vcgorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsYW1iZGFfb3I8IGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlID4KKyAgICA6IGZhbHNlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEFyaXR5ID4gc3RydWN0IGxhbWJkYV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgdHlwZWRlZiBpc19wbGFjZWhvbGRlcjxUPiBpc19sZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwxOjppc19sZSBpc19sZTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlCisgICAgICAgICAgICA+IGlzX2xlOworCisgICAgICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEY6OnJlYmluZAorICAgICAgICAgICAgLCB0eXBlbmFtZSBsMTo6dHlwZSwgdHlwZW5hbWUgbDI6OnR5cGUsIHR5cGVuYW1lIGwzOjp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50Xzw0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzIsIFRhZywgZmFsc2VfID4gbDI7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmczLCBUYWcsIGZhbHNlXyA+IGwzOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNCwgVGFnLCBmYWxzZV8gPiBsNDsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUxKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMik6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTMpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU0KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnNSwgVGFnLCBmYWxzZV8gPiBsNTsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNTo6aXNfbGUgaXNfbGU1OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGU1KTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDQ6OnR5cGUsIHR5cGVuYW1lIGw1Ojp0eXBlCisgICAgICAgICAgICA+IGJpbmRfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICBpc19sZQorICAgICAgICAgICAgLCBpZl88IFByb3RlY3QsIG1wbDo6cHJvdGVjdDxiaW5kXz4sIGJpbmRfID4KKyAgICAgICAgICAgICwgaWRlbnRpdHk8Rj4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZV87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICAsIHR5cGVuYW1lIFByb3RlY3QKKyAgICA+CitzdHJ1Y3QgbGFtYmRhCit7CisgICAgLy8vIE1ldGFmdW5jdGlvbiBmb3J3YXJkaW5nIGNvbmZ1c2VzIE1TVkMgNi54CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnRlbXBsYXRlX2FyaXR5PFQ+Ojp0eXBlIGFyaXR5XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX2ltcGw8YXJpdHlfPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IFQsVGFnLFByb3RlY3QgPiBsXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OnR5cGUgdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxfOjppc19sZSBpc19sZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsIGxhbWJkYSwgKFQsIFRhZywgUHJvdGVjdCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDEsIDMsIGxhbWJkYSkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbGVzcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbGVzcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdmYWU3YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sZXNzLmhwcApAQCAtMCwwICsxLDk4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9sZXNzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbGVzc19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbGVzc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbGVzc19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGxlc3NfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbGVzc19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxlc3NfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGxlc3MKKworICAgIDogbGVzc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGxlc3NfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGxlc3NfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbGVzcywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sZXNzX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTA3N2ZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbGVzc19lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbAorCisgICAgOiBsZXNzX2VxdWFsX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBsZXNzX2VxdWFsLCAoTjEsIE4yKSkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBsZXNzX2VxdWFsKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxlc3NfZXF1YWxfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlIDw9CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9saXN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9saXN0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2M4YzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL2xpc3QuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IGxpc3Q7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QwPCAgPgoreworICAgIHR5cGVkZWYgbGlzdDA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0ODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IGxpc3QKKyAgICA6IGxpc3QyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbGlzdF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9saXN0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0M2YzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbGlzdF9jLmhwcApAQCAtMCwwICsxLDMyOCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBsaXN0X2M7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDBfYzxUPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MV9jPCBULEMwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxX2M8IFQsQzAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0Ml9jPCBULEMwLEMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyX2M8IFQsQzAsQzEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0M19jPCBULEMwLEMxLEMyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QzX2M8IFQsQzAsQzEsQzIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0NF9jPCBULEMwLEMxLEMyLEMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0X2M8IFQsQzAsQzEsQzIsQzMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDExX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTVfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNQorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTZfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNgorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE3X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE4X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MThfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0LCBsb25nIEMxNSwgbG9uZyBDMTYsIGxvbmcgQzE3LCBsb25nIEMxOAorICAgID4KK3N0cnVjdCBsaXN0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTlfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4LCBsb25nIEMxOQorICAgID4KK3N0cnVjdCBsaXN0X2MKKyAgICA6IGxpc3QyMF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbWFwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9tYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NzRmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbWFwLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbWFwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwID0gbmEsIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ0ID0gbmEsIHR5cGVuYW1lIFQ1ID0gbmEsIHR5cGVuYW1lIFQ2ID0gbmEsIHR5cGVuYW1lIFQ3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQ4ID0gbmEsIHR5cGVuYW1lIFQ5ID0gbmEsIHR5cGVuYW1lIFQxMCA9IG5hLCB0eXBlbmFtZSBUMTEgPSBuYQorICAgICwgdHlwZW5hbWUgVDEyID0gbmEsIHR5cGVuYW1lIFQxMyA9IG5hLCB0eXBlbmFtZSBUMTQgPSBuYQorICAgICwgdHlwZW5hbWUgVDE1ID0gbmEsIHR5cGVuYW1lIFQxNiA9IG5hLCB0eXBlbmFtZSBUMTcgPSBuYQorICAgICwgdHlwZW5hbWUgVDE4ID0gbmEsIHR5cGVuYW1lIFQxOSA9IG5hCisgICAgPgorc3RydWN0IG1hcDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAwPCAgPgoreworICAgIHR5cGVkZWYgbWFwMDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTxUMD4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAyPCBUMCxUMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA0PCBUMCxUMSxUMixUMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA1PCBUMCxUMSxUMixUMyxUNCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwNjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwNjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTY8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE3PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTk8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbWFwCisgICAgOiBtYXAyMDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIFQxOQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9taW51cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbWludXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhM2VkYTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvbWludXMuaHBwCkBAIC0wLDAgKzEsMTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9taW51cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG1pbnVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBtaW51c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbWludXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtaW51c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbWludXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtaW51c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWludXMKKyAgICA6IG1pbnVzPCBtaW51czwgbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogbWludXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBtaW51c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbWludXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBtaW51cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IG1pbnVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xIC0gbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWludXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6Om1pbnVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9tb2R1bHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDdmZTIyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL21vZHVsdXMuaHBwCkBAIC0wLDAgKzEsMTExIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tb2R1bHVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbW9kdWx1c19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbW9kdWx1c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgbW9kdWx1c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1vZHVsdXNfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG1vZHVsdXMKKworICAgIDogbW9kdWx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG1vZHVsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgbW9kdWx1cywgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IG1vZHVsdXNfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobjEgJSBuMikpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtb2R1bHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4Ojptb2R1bHVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9ub3RfZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlhMTlhYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9ub3RfZXF1YWxfdG8uaHBwCkBAIC0wLDAgKzEsOTggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL25vdF9lcXVhbF90by5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG5vdF9lcXVhbF90b19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBub3RfZXF1YWxfdG9faW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBub3RfZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IG5vdF9lcXVhbF90bworCisgICAgOiBub3RfZXF1YWxfdG9faW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIG5vdF9lcXVhbF90b190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBub3RfZXF1YWxfdG8sIChOMSwgTjIpKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIG5vdF9lcXVhbF90bykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICE9CisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKQorICAgICAgICAgICAgKTsKKyAgICAgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9vci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5Mjk2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvb3IuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL29yLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgQ18sIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBvcl9pbXBsCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0ID4KK3N0cnVjdCBvcl9pbXBsPCBmYWxzZSxUMSxUMixUMyxUNCA+CisgICAgOiBvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNAorICAgICAgICAsIGZhbHNlXworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgb3JfaW1wbDwKKyAgICAgICAgICBmYWxzZQorICAgICAgICAsIGZhbHNlXywgZmFsc2VfLCBmYWxzZV8sIGZhbHNlXworICAgICAgICA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgVDMgPSBmYWxzZV8sIHR5cGVuYW1lIFQ0ID0gZmFsc2VfLCB0eXBlbmFtZSBUNSA9IGZhbHNlXworICAgID4KK3N0cnVjdCBvcl8KKworICAgIDogYXV4Ojpvcl9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUMSk6OnZhbHVlCisgICAgICAgICwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgorCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgb3JfCisgICAgICAgICwgKCBUMSwgVDIsIFQzLCBUNCwgVDUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoCisgICAgICAyCisgICAgLCA1CisgICAgLCBvcl8KKyAgICApCisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGxhY2Vob2xkZXJzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9wbGFjZWhvbGRlcnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZDQ1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGxhY2Vob2xkZXJzLmhwcApAQCAtMCwwICsxLDEwNSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxLTIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPCAtMSA+IF87CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzsKK30KKworfX0KKworLy8vIGFndXJ0LCAxNy9tYXIvMDI6IG9uZSBtb3JlIHBsYWNlaG9sZGVyIGZvciB0aGUgbGFzdCAnYXBwbHkjJyAKKy8vLyBzcGVjaWFsaXphdGlvbgorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8MT4gXzE7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMSkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzE7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwyPiBfMjsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8yKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMjsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDM+IF8zOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzMpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8zOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8ND4gXzQ7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNCkKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzQ7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw1PiBfNTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF81KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDY+IF82OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzYpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol82OworfQorCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3BsdXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3BsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ZDg4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcGx1cy5ocHAKQEAgLTAsMCArMSwxNTYgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3BsdXMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBwbHVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBwbHVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBwbHVzX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgcGx1c19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBwbHVzX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcGx1c190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgcGx1cworICAgIDogcGx1czwgcGx1czwgcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+LCBOND4sIE41PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBwbHVzPCBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBwbHVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgcGx1c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgcGx1c190YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBwbHVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgcGx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IHBsdXNfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobjEgKyBuMikpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYzwgVCx2YWx1ZSA+IHR5cGU7Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwbHVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpwbHVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9xdW90ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcXVvdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNzdmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcXVvdGUuaHBwCkBAIC0wLDAgKzEsMTEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3F1b3RlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkM2FkNzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjMxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUzIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTQsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIGl0ZXI0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIGJrd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZT46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlCisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3JldmVyc2VfaXRlcl9mb2xkX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYmY1MDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyMzEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBmd2Rfc3RhdGUwIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgaXRlcjQKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgZndkX3N0YXRlNAorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgRmlyc3QKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zZXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3NldC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM0Y2ExMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zZXQuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zZXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3Qgc2V0OworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDA8ICA+Cit7CisgICAgdHlwZWRlZiBzZXQwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBzZXQxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBzZXQKKyAgICA6IHNldDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3NldF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zZXRfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVmMmZkZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zZXRfYy5ocHAKQEAgLTAsMCArMSwzMjggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NldF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBzZXRfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MV9jPCBULEMwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDFfYzwgVCxDMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0Ml9jPCBULEMwLEMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDJfYzwgVCxDMCxDMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0M19jPCBULEMwLEMxLEMyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDNfYzwgVCxDMCxDMSxDMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0NF9jPCBULEMwLEMxLEMyLEMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDRfYzwgVCxDMCxDMSxDMixDMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTZfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE3X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE4X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTlfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHNldF9jCisgICAgOiBzZXQyMF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zaGlmdF9sZWZ0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zaGlmdF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzA5M2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3NoaWZ0X2xlZnQuaHBwCkBAIC0wLDAgKzEsMTEwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zaGlmdF9sZWZ0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfbGVmdF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X2xlZnRfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IHNoaWZ0X2xlZnQKKworICAgIDogc2hpZnRfbGVmdF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHNoaWZ0X2xlZnRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMiwgc2hpZnRfbGVmdCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfbGVmdCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFNoaWZ0LCBUIG4sIFNoaWZ0IHMgPgorc3RydWN0IHNoaWZ0X2xlZnRfd2tuZAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChULCB2YWx1ZSAgPSAobiA8PCBzKSk7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPCBULHZhbHVlID4gdHlwZTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpzaGlmdF9sZWZ0X3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIE46OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgUzo6dmFsdWVfdHlwZQorICAgICAgICAgICAgLCBOOjp2YWx1ZQorICAgICAgICAgICAgLCBTOjp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZQorCisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3NoaWZ0X3JpZ2h0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zaGlmdF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRkNDEwMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC9zaGlmdF9yaWdodC5ocHAKQEAgLTAsMCArMSwxMTAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NoaWZ0X3JpZ2h0LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHNoaWZ0X3JpZ2h0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHNoaWZ0X3JpZ2h0X3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBzaGlmdF9yaWdodAorCisgICAgOiBzaGlmdF9yaWdodF9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHNoaWZ0X3JpZ2h0X3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBzaGlmdF9yaWdodCwgKE4xLCBOMikpCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgc2hpZnRfcmlnaHQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBTaGlmdCwgVCBuLCBTaGlmdCBzID4KK3N0cnVjdCBzaGlmdF9yaWdodF93a25kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKFQsIHZhbHVlICA9IChuID4+IHMpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogYXV4OjpzaGlmdF9yaWdodF93a25kPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIFM6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICwgTjo6dmFsdWUKKyAgICAgICAgICAgICwgUzo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC90ZW1wbGF0ZV9hcml0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdGVtcGxhdGVfYXJpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MDU3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdGVtcGxhdGVfYXJpdHkuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHlfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBtcGw6OmludF88IC0xID4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsPHRydWU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IEY6OmFyaXR5CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHkKKyAgICA6IHRlbXBsYXRlX2FyaXR5X2ltcGw8IDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfcmViaW5kPEY+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxGPgoreworfTsKKworfX19CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdGltZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyY2QxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdGltZXMuaHBwCkBAIC0wLDAgKzEsMTU2IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC90aW1lcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHRpbWVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCB0aW1lc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgdGltZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgdGltZXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0aW1lc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgdGltZXMKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBONSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogdGltZXM8IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCB0aW1lczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogdGltZXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSB0aW1lc190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgdGltZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgdGltZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCB0aW1lcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgbjEsIFQgbjIgPgorc3RydWN0IHRpbWVzX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgID0gKG4xICogbjIpKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2M8IFQsdmFsdWUgPiB0eXBlOworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGltZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6OnRpbWVzX3drbmQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsIE4xOjp2YWx1ZQorICAgICAgICAgICAgLCBOMjo6dmFsdWUKKyAgICAgICAgICAgID46OnR5cGUKKworICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL25vX3R0cC91bnBhY2tfYXJncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdW5wYWNrX2FyZ3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljOTIwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdW5wYWNrX2FyZ3MuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3VucGFja19hcmdzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGludCBzaXplLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMCxGLEFyZ3MgPgorICAgIDogYXBwbHkwPAorICAgICAgICAgIEYKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDEsRixBcmdzID4KKyAgICA6IGFwcGx5MTwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDIsRixBcmdzID4KKyAgICA6IGFwcGx5MjwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAzLEYsQXJncyA+CisgICAgOiBhcHBseTM8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCA0LEYsQXJncyA+CisgICAgOiBhcHBseTQ8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgNSxGLEFyZ3MgPgorICAgIDogYXBwbHk1PAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDQgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit9CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCB1bnBhY2tfYXJncworeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBhdXg6OnVucGFja19hcmdzX2ltcGw8IHNpemU8QXJncz46OnZhbHVlLEYsIEFyZ3MgPgorCisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX1BBU1NfVEhST1VHSF9MQU1CREFfU1BFQygxLCB1bnBhY2tfYXJncykKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdmVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjY3NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3ZlY3Rvci5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3I7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3RvcgorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9ub190dHAvdmVjdG9yX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3ZlY3Rvcl9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmZiZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fdHRwL3ZlY3Rvcl9jLmhwcApAQCAtMCwwICsxLDMwOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHZlY3Rvcl9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxX2M8IFQsIFQoQzApID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjFfYzwgVCwgVChDMCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTFfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTJfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMThfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jCisgICAgOiB2ZWN0b3IyMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpLCBUKEMxOSkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9iYWNrd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hZHZhbmNlX2JhY2t3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTBjODI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9iYWNrd2FyZC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9hZHZhbmNlX2JhY2t3YXJkLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGxvbmcgTiA+IHN0cnVjdCBhZHZhbmNlX2JhY2t3YXJkOwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8MD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgaXRlcjAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIGl0ZXIxIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2JhY2t3YXJkPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8Mz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgaXRlcjMgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQ8ND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICB0eXBlZGVmIGl0ZXI0IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IGFkdmFuY2VfYmFja3dhcmQKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGFkdmFuY2VfYmFja3dhcmQ8ND4KKyAgICAgICAgICAgICwgSXRlcmF0b3IKKyAgICAgICAgICAgID46OnR5cGUgY2h1bmtfcmVzdWx0XzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAxPAorICAgICAgICAgICAgICBhZHZhbmNlX2JhY2t3YXJkPCgKKyAgICAgICAgICAgICAgICAoTiAtIDQpIDwgMAorICAgICAgICAgICAgICAgICAgICA/IDAKKyAgICAgICAgICAgICAgICAgICAgOiBOIC0gNAorICAgICAgICAgICAgICAgICAgICApPgorICAgICAgICAgICAgLCBjaHVua19yZXN1bHRfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hZHZhbmNlX2ZvcndhcmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9mb3J3YXJkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2E1YWZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYWR2YW5jZV9mb3J3YXJkLmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2FkdmFuY2VfZm9yd2FyZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBsb25nIE4gPiBzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkOwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBpdGVyMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIGl0ZXIxIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhZHZhbmNlX2ZvcndhcmQ8Mj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgICAgIHR5cGVkZWYgaXRlcjIgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyYXRvciBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAgICAgdHlwZWRlZiBpdGVyMyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYWR2YW5jZV9mb3J3YXJkPDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgICAgICB0eXBlZGVmIGl0ZXI0IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IGFkdmFuY2VfZm9yd2FyZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9mb3J3YXJkPDQ+CisgICAgICAgICAgICAsIEl0ZXJhdG9yCisgICAgICAgICAgICA+Ojp0eXBlIGNodW5rX3Jlc3VsdF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgYWR2YW5jZV9mb3J3YXJkPCgKKyAgICAgICAgICAgICAgICAoTiAtIDQpIDwgMAorICAgICAgICAgICAgICAgICAgICA/IDAKKyAgICAgICAgICAgICAgICAgICAgOiBOIC0gNAorICAgICAgICAgICAgICAgICAgICApPgorICAgICAgICAgICAgLCBjaHVua19yZXN1bHRfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGE5MWVmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYW5kLmhwcApAQCAtMCwwICsxLDY0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hbmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCBDXywgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQgPgorc3RydWN0IGFuZF9pbXBsCisgICAgOiBmYWxzZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3QgYW5kX2ltcGw8IHRydWUsVDEsVDIsVDMsVDQgPgorICAgIDogYW5kX2ltcGw8CisgICAgICAgICAgQk9PU1RfTVBMX0FVWF9ORVNURURfVFlQRV9XS05EKFQxKTo6dmFsdWUKKyAgICAgICAgLCBUMiwgVDMsIFQ0CisgICAgICAgICwgdHJ1ZV8KKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGFuZF9pbXBsPAorICAgICAgICAgIHRydWUKKyAgICAgICAgLCB0cnVlXywgdHJ1ZV8sIHRydWVfLCB0cnVlXworICAgICAgICA+CisgICAgOiB0cnVlXworeworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDIpCisgICAgLCB0eXBlbmFtZSBUMyA9IHRydWVfLCB0eXBlbmFtZSBUNCA9IHRydWVfLCB0eXBlbmFtZSBUNSA9IHRydWVfCisgICAgPgorc3RydWN0IGFuZF8KKworICAgIDogYXV4OjphbmRfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KKworeworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigKKyAgICAgIDIKKyAgICAsIDUKKyAgICAsIGFuZF8KKyAgICApCisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcHBseS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcHBseS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIwZWM0NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2FwcGx5LmhwcApAQCAtMCwwICsxLDEzOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHkuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTAKKworICAgIDogYXBwbHlfd3JhcDA8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBhcHBseTwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBhcHBseTA8Rj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHkxCisKKyAgICA6IGFwcGx5X3dyYXAxPAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsbmEsbmEsbmEsbmEgPgorICAgIDogYXBwbHkxPCBGLFQxID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MgorCisgICAgOiBhcHBseV93cmFwMjwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsbmEsbmEsbmEgPgorICAgIDogYXBwbHkyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBhcHBseTMKKworICAgIDogYXBwbHlfd3JhcDM8CisgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPEY+Ojp0eXBlCisgICAgICAgICwgVDEsIFQyLCBUMworICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYXBwbHkzPCBGLFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk0CisKKyAgICA6IGFwcGx5X3dyYXA0PAorICAgICAgICAgIHR5cGVuYW1lIGxhbWJkYTxGPjo6dHlwZQorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYXBwbHk8IEYsVDEsVDIsVDMsVDQsbmEgPgorICAgIDogYXBwbHk0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NQorCisgICAgOiBhcHBseV93cmFwNTwKKyAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8Rj46OnR5cGUKKyAgICAgICAgLCBUMSwgVDIsIFQzLCBUNCwgVDUKKyAgICAgICAgPgoreworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYXBwbHkKKyAgICA6IGFwcGx5NTwgRixUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcHBseV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYXBwbHlfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2NjOTRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYXBwbHlfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hcHBseV9md2QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBhcHBseTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGFwcGx5MDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBhcHBseTE7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGFwcGx5MjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGFwcGx5MzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBhcHBseTQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGFwcGx5NTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYXBwbHlfd3JhcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcHBseV93cmFwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzkwMjAyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYXBwbHlfd3JhcC5ocHAKQEAgLTAsMCArMSw4NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisKKyAgICAsIHR5cGVuYW1lIGhhc19hcHBseV8gPSB0eXBlbmFtZSBhdXg6Omhhc19hcHBseTxGPjo6dHlwZQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAwCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYgPgorc3RydWN0IGFwcGx5X3dyYXAwPCBGLHRydWVfID4KKyAgICA6IEY6OmFwcGx5Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisKKyAgICA+CitzdHJ1Y3QgYXBwbHlfd3JhcDEKKworICAgIDogRjo6dGVtcGxhdGUgYXBwbHk8VDE+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXAyCisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKworICAgID4KK3N0cnVjdCBhcHBseV93cmFwMworCisgICAgOiBGOjp0ZW1wbGF0ZSBhcHBseTwgVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA0CisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorCisgICAgPgorc3RydWN0IGFwcGx5X3dyYXA1CisKKyAgICA6IEY6OnRlbXBsYXRlIGFwcGx5PCBUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9hcmcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYXJnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTE1N2MyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYXJnLmhwcApAQCAtMCwwICsxLDEyMyBAQAorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXJnLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwgLTEgPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IC0xKTsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTEgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8MT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAxKTsKKyAgICB0eXBlZGVmIGFyZzwyPiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVMSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzwyPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDIpOworICAgIHR5cGVkZWYgYXJnPDM+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFUyIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgYXJnPDM+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMyk7CisgICAgdHlwZWRlZiBhcmc8ND4gbmV4dDsKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0YWcpCisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdHlwZSkKKworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVTMgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9BU1NFUlRfTk9UX05BKHR5cGUpOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBhcmc8ND4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSA0KTsKKyAgICB0eXBlZGVmIGFyZzw1PiBuZXh0OworICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHRhZykKKyAgICBCT09TVF9NUExfQVVYX0FSR19UWVBFREVGKG5hLCB0eXBlKQorCisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBVNCB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0FTU0VSVF9OT1RfTkEodHlwZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGFyZzw1PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDUpOworICAgIHR5cGVkZWYgYXJnPDY+IG5leHQ7CisgICAgQk9PU1RfTVBMX0FVWF9BUkdfVFlQRURFRihuYSwgdGFnKQorICAgIEJPT1NUX01QTF9BVVhfQVJHX1RZUEVERUYobmEsIHR5cGUpCisKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIFU1IHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfQVNTRVJUX05PVF9OQSh0eXBlKTsKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FVWF9OT05UWVBFX0FSSVRZX1NQRUMoMSxpbnQsIGFyZykKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2Jhc2ljX2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmFzaWNfYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJhNTY1ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2Jhc2ljX2JpbmQuaHBwCkBAIC0wLDAgKzEsNDQwIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9iYXNpY19iaW5kLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PG1wbDo6YXJnPE4+LCBVMSwgVTIsIFUzLCBVNCwgVTU+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiwgVTEsIFUyLCBVMywgVTQsIFU1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQwCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IEYsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDA8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMDxGPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDA8Rj4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygxLCBiaW5kMCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLCBiaW5kMCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGCisgICAgPgorc3RydWN0IGJpbmQ8IEYsbmEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDA8Rj4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDEKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDE8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMKKyAgICAsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDE8IEYsVDEgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDE8IEYsVDEgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDIsIGJpbmQxKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsIGJpbmQxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsbmEsbmEsbmEsbmEgPgorICAgIDogYmluZDE8IEYsVDEgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDIKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAyPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMgorICAgICwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPAorICAgICAgYmluZDI8IEYsVDEsVDIgPiwgVTEsIFUyLCBVMywgVTQsIFU1CisgICAgPgoreworICAgIHR5cGVkZWYgYmluZDI8IEYsVDEsVDIgPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDMsIGJpbmQyKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsIGJpbmQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLG5hLG5hLG5hID4KKyAgICA6IGJpbmQyPCBGLFQxLFQyID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMworeworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXAzPAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVTEKKyAgICAsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMzwgRixUMSxUMixUMyA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMzwgRixUMSxUMixUMyA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNCwgYmluZDMpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNCwgYmluZDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLG5hLG5hID4KKyAgICA6IGJpbmQzPCBGLFQxLFQyLFQzID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgRixVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDQ8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNDwgRixUMSxUMixUMyxUNCA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNDwgRixUMSxUMixUMyxUNCA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNSwgYmluZDQpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNSwgYmluZDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixUMyxUNCxuYSA+CisgICAgOiBiaW5kNDwgRixUMSxUMixUMyxUNCA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBiaW5kNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBGLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDUsVTEsVTIsVTMsVTQsVTUgPiB0NTsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDQ6OnR5cGUsIHR5cGVuYW1lIHQ1Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg2LCBiaW5kNSkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg2LCBiaW5kNSkKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZAorICAgIDogYmluZDU8IEYsVDEsVDIsVDMsVDQsVDUgPgoreworfTsKKworLy8vIGlmXy9ldmFsX2lmIHNwZWNpYWxpemF0aW9ucwordGVtcGxhdGU8IHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gY2xhc3MgRiwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBxdW90ZTM7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IGlmXzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM8CisgICAgICBxdW90ZTM8IGlmXyxUYWcgPgorICAgICwgVDEsIFQyLCBUMworICAgID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIG1wbDo6YXJnPDE+IG4xOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgICwgdDIsIHQzCisgICAgICAgICAgICA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gY2xhc3MgRiwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IHF1b3RlMzsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMgPiBzdHJ1Y3QgZXZhbF9pZjsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDM8CisgICAgICBxdW90ZTM8IGV2YWxfaWYsVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IFQxLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBUMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgVDMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBldmFsX2lmPAorICAgICAgICAgICAgICB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgLCB0MiwgdDMKKyAgICAgICAgICAgID46OnR5cGUgZl87CisKKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vYmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJjZGU1YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpbmQuaHBwCkBAIC0wLDAgKzEsNTYxIEBACisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYmluZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmcKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgQXJnCisgICAgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmcKK3sKKyAgICB0eXBlZGVmIEFyZyBuZXh0OworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBBcmcKKyAgICA+CitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZzwgYXJnPCAtMSA+LCBBcmcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgQXJnOjpuZXh0IG5leHQ7CisgICAgdHlwZWRlZiBBcmcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4sIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0LCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBhcmc8Tj4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTxtcGw6OmFyZzxOPiwgVTEsIFUyLCBVMywgVTQsIFU1Pjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgLCB0eXBlbmFtZSBVNQorICAgID4KK3N0cnVjdCByZXNvbHZlX2JpbmRfYXJnPCBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4sIFUxLCBVMiwgVTMsIFU0LCBVNSA+Cit7CisgICAgdHlwZWRlZiBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQwPEY+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMDxGPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PCBmXyxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9BUklUWV9TUEVDKDEsIGJpbmQwKQorQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsIGJpbmQwKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixuYSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMDxGPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMworICAgICwgdHlwZW5hbWUgVTQsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kMTwgRixUMSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kMTwgRixUMSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoMiwgYmluZDEpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMiwgYmluZDEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxuYSxuYSxuYSxuYSA+CisgICAgOiBiaW5kMTwgRixUMSA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBiaW5kMgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwMjwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIKKyAgICAsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQyPCBGLFQxLFQyID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPCBGLFQxLFQyID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQygzLCBiaW5kMikKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLCBiaW5kMikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDwgRixUMSxUMixuYSxuYSxuYSA+CisgICAgOiBiaW5kMjwgRixUMSxUMiA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgYmluZDMKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSA9IG5hLCB0eXBlbmFtZSBVMiA9IG5hLCB0eXBlbmFtZSBVMyA9IG5hCisgICAgICAgICwgdHlwZW5hbWUgVTQgPSBuYSwgdHlwZW5hbWUgVTUgPSBuYQorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisgICAgeworICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgRiwgbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEwLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgZl87CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDEsbjEgPiByMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6dHlwZSBhMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMTo6bmV4dCBuMjsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGExLFUxLFUyLFUzLFU0LFU1ID4gdDE7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDIsbjIgPiByMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6dHlwZSBhMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMjo6bmV4dCBuMzsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEyLFUxLFUyLFUzLFU0LFU1ID4gdDI7CisgICAgICAgIC8vLworICAgICAgICB0eXBlZGVmIGF1eDo6cmVwbGFjZV91bm5hbWVkX2FyZzwgVDMsbjMgPiByMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6dHlwZSBhMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMzo6bmV4dCBuNDsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlc29sdmVfYmluZF9hcmc8IGEzLFUxLFUyLFUzLFU0LFU1ID4gdDM7CisgICAgICAgIC8vLworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDM8CisgICAgICAgICAgICAgIGZfCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQxOjp0eXBlLCB0eXBlbmFtZSB0Mjo6dHlwZSwgdHlwZW5hbWUgdDM6OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBVMQorICAgICwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQzPCBGLFQxLFQyLFQzID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg0LCBiaW5kMykKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg0LCBiaW5kMykKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQ8IEYsVDEsVDIsVDMsbmEsbmEgPgorICAgIDogYmluZDM8IEYsVDEsVDIsVDMgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNAoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBGLCBtcGw6OmFyZzwxPiA+IHIwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjp0eXBlIGEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIwOjpuZXh0IG4xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTAsVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUNCxuNCA+IHI0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0Ojp0eXBlIGE0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHI0OjpuZXh0IG41OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTQsVTEsVTIsVTMsVTQsVTUgPiB0NDsKKyAgICAgICAgLy8vCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNDwKKyAgICAgICAgICAgICAgZl8KKyAgICAgICAgICAgICwgdHlwZW5hbWUgdDE6OnR5cGUsIHR5cGVuYW1lIHQyOjp0eXBlLCB0eXBlbmFtZSB0Mzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSB0NDo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNCwgdHlwZW5hbWUgVTUKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwKKyAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4sIFUxLCBVMiwgVTMsIFU0LCBVNQorICAgID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4gZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseV93cmFwNTwgZl8sVTEsVTIsVTMsVTQsVTUgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyg1LCBiaW5kNCkKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyg1LCBiaW5kNCkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kPCBGLFQxLFQyLFQzLFQ0LG5hID4KKyAgICA6IGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQ1Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsIG1wbDo6YXJnPDE+ID4gcjA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6OnR5cGUgYTA7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjA6Om5leHQgbjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMCxVMSxVMixVMyxVNCxVNSA+Ojp0eXBlIGZfOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ0LG40ID4gcjQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6OnR5cGUgYTQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjQ6Om5leHQgbjU7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNCxVMSxVMixVMyxVNCxVNSA+IHQ0OworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQ1LG41ID4gcjU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6OnR5cGUgYTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjU6Om5leHQgbjY7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhNSxVMSxVMixVMyxVNCxVNSA+IHQ1OworICAgICAgICAvLy8KKyAgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5X3dyYXA1PAorICAgICAgICAgICAgICBmXworICAgICAgICAgICAgLCB0eXBlbmFtZSB0MTo6dHlwZSwgdHlwZW5hbWUgdDI6OnR5cGUsIHR5cGVuYW1lIHQzOjp0eXBlCisgICAgICAgICAgICAsIHR5cGVuYW1lIHQ0Ojp0eXBlLCB0eXBlbmFtZSB0NTo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyLCB0eXBlbmFtZSBVMywgdHlwZW5hbWUgVTQKKyAgICAsIHR5cGVuYW1lIFU1CisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+LCBVMSwgVTIsIFUzLCBVNCwgVTUKKyAgICA+Cit7CisgICAgdHlwZWRlZiBiaW5kNTwgRixUMSxUMixUMyxUNCxUNSA+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHlfd3JhcDU8IGZfLFUxLFUyLFUzLFU0LFU1ID46OnR5cGUgdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoNiwgYmluZDUpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoNiwgYmluZDUpCisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGJpbmQKKyAgICA6IGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKK307CisKKy8vLyBpZl8vZXZhbF9pZiBzcGVjaWFsaXphdGlvbnMKK3RlbXBsYXRlPCB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgcXVvdGUzOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IHN0cnVjdCBpZl87CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBpZl8sVGFnID4KKyAgICAsIFQxLCBUMiwgVDMKKyAgICA+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgVTEgPSBuYSwgdHlwZW5hbWUgVTIgPSBuYSwgdHlwZW5hbWUgVTMgPSBuYQorICAgICAgICAsIHR5cGVuYW1lIFU0ID0gbmEsIHR5cGVuYW1lIFU1ID0gbmEKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBtcGw6OmFyZzwxPiBuMTsKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQxLG4xID4gcjE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6OnR5cGUgYTE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjE6Om5leHQgbjI7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMSxVMSxVMixVMyxVNCxVNSA+IHQxOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQyLG4yID4gcjI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6OnR5cGUgYTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjI6Om5leHQgbjM7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMixVMSxVMixVMyxVNCxVNSA+IHQyOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IFQzLG4zID4gcjM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6OnR5cGUgYTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcjM6Om5leHQgbjQ7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBhMyxVMSxVMixVMyxVNCxVNSA+IHQzOworICAgICAgICAvLy8KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIHR5cGVuYW1lIHQxOjp0eXBlCisgICAgICAgICAgICAsIHQyLCB0MworICAgICAgICAgICAgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZl86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMyA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBxdW90ZTM7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IGV2YWxfaWY7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGJpbmQzPAorICAgICAgcXVvdGUzPCBldmFsX2lmLFRhZyA+CisgICAgLCBUMSwgVDIsIFQzCisgICAgPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxID0gbmEsIHR5cGVuYW1lIFUyID0gbmEsIHR5cGVuYW1lIFUzID0gbmEKKyAgICAgICAgLCB0eXBlbmFtZSBVNCA9IG5hLCB0eXBlbmFtZSBVNSA9IG5hCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgbXBsOjphcmc8MT4gbjE7CisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMSxuMSA+IHIxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjp0eXBlIGExOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIxOjpuZXh0IG4yOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTEsVTEsVTIsVTMsVTQsVTUgPiB0MTsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMixuMiA+IHIyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjp0eXBlIGEyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIyOjpuZXh0IG4zOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTIsVTEsVTIsVTMsVTQsVTUgPiB0MjsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBUMyxuMyA+IHIzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjp0eXBlIGEzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHIzOjpuZXh0IG40OworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzwgYTMsVTEsVTIsVTMsVTQsVTUgPiB0MzsKKyAgICAgICAgLy8vCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZXZhbF9pZjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgdDE6OnR5cGUKKyAgICAgICAgICAgICwgdDIsIHQzCisgICAgICAgICAgICA+Ojp0eXBlIGZfOworCisgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaW5kX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaW5kX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEwNDZlZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpbmRfZndkLmhwcApAQCAtMCwwICsxLDUyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hCisgICAgPgorc3RydWN0IGJpbmQ7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCBiaW5kMDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBiaW5kMTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgYmluZDI7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBiaW5kMzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBiaW5kNDsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgYmluZDU7CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaXRhbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNTc1ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaXRhbmQuaHBwCkBAIC0wLDAgKzEsMTQyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXRhbmQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRhbmRfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdGFuZF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0YW5kX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0YW5kX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdGFuZF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0YW5kX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0YW5kX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXRhbmRfCisgICAgOiBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBiaXRhbmRfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdGFuZF88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0YW5kXzwgYml0YW5kXzwgYml0YW5kXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdGFuZF8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXRhbmRfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdGFuZF88IGJpdGFuZF88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0YW5kXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0YW5kX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0YW5kX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRhbmRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0YW5kXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdGFuZF8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdGFuZF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ0ODExYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdG9yLmhwcApAQCAtMCwwICsxLDE0MiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBKYWFwIFN1dGVyIDIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYml0b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXRvcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgYml0b3JfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGJpdG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0b3JfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0b3JfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgLCB0eXBlbmFtZSBOMyA9IG5hLCB0eXBlbmFtZSBONCA9IG5hLCB0eXBlbmFtZSBONSA9IG5hCisgICAgPgorc3RydWN0IGJpdG9yXworICAgIDogYml0b3JfPCBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdG9yXzwgTjEsTjIsTjMsTjQsbmEgPgorCisgICAgOiBiaXRvcl88IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4sIE40PgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0b3JfCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdG9yXzwgYml0b3JfPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0b3JfPCBOMSxOMixuYSxuYSxuYSA+CisgICAgOiBiaXRvcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGJpdG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXRvcl90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCBiaXRvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBiaXRvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdG9yX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICB8IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2JpdHhvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaXR4b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MDM1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9iaXR4b3IuaHBwCkBAIC0wLDAgKzEsMTQyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9iaXR4b3IuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBiaXR4b3JfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGJpdHhvcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgYml0eG9yX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgYml0eG9yX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGJpdHhvcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYml0eG9yX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYml0eG9yX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBiaXR4b3JfCisgICAgOiBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBiaXR4b3JfPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGJpdHhvcl88IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogYml0eG9yXzwgYml0eG9yXzwgYml0eG9yXzwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGJpdHhvcl8KKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBiaXR4b3JfPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGJpdHhvcl88IGJpdHhvcl88IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgYml0eG9yXzwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogYml0eG9yX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgYml0eG9yX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBiaXR4b3JfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgYml0eG9yXworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGJpdHhvcl8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGJpdHhvcl9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgXiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9kZXF1ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9kZXF1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzMWY2NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2RlcXVlLmhwcApAQCAtMCwwICsxLDMyMyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZGVxdWUuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgZGVxdWU7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IwPCAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMzwgVDAsVDEsVDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNjwgVDAsVDEsVDIsVDMsVDQsVDUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBkZXF1ZTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IGRlcXVlPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxODwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgZGVxdWU8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBkZXF1ZQorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9kaXZpZGVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2RpdmlkZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkM2QyNGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9kaXZpZGVzLmhwcApAQCAtMCwwICsxLDE0MSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZGl2aWRlcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGRpdmlkZXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGRpdmlkZXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGRpdmlkZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBkaXZpZGVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGRpdmlkZXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGRpdmlkZXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBkaXZpZGVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBkaXZpZGVzCisgICAgOiBkaXZpZGVzPCBkaXZpZGVzPCBkaXZpZGVzPCBkaXZpZGVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IGRpdmlkZXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogZGl2aWRlczwgZGl2aWRlczwgZGl2aWRlczwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIGRpdmlkZXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBkaXZpZGVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IGRpdmlkZXM8IGRpdmlkZXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgZGl2aWRlczwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogZGl2aWRlc19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGRpdmlkZXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgZGl2aWRlcworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIGRpdmlkZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IGRpdmlkZXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC8gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5NmM2OWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9lcXVhbF90by5ocHAKQEAgLTAsMCArMSw5MiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBlcXVhbF90b19pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZXF1YWxfdG9faW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGVxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGVxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgZXF1YWxfdG9fdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGVxdWFsX3RvCisKKyAgICA6IGVxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgZXF1YWxfdG9fdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGVxdWFsX3RvX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZXF1YWxfdG9faW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICA9PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTRjZDQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZm9sZF9pbXBsLmhwcApAQCAtMCwwICsxLDE4MCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9mb2xkX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCisvLy8gZm9yd2FyZCBkZWNsYXJhdGlvbgorCit0ZW1wbGF0ZTwKKyAgICAgIGludCBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlMSBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCBmb2xkX2ltcGw8IDIsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUyIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgMyxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUzIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIHN0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBzdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIHN0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBzdGF0ZTMsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIHN0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHN0YXRlNCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBmb2xkX2ltcGw8CisgICAgICAgICAgNAorICAgICAgICAsIEZpcnN0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIFN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gY2h1bmtfOworCisgICAgdHlwZWRlZiBmb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjppdGVyYXRvcgorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBjaHVua186OnN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gcmVzXzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZXNfOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgOiBmb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZT46OnR5cGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2Z1bGxfbGFtYmRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2Z1bGxfbGFtYmRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTY1OGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZnVsbF9sYW1iZGEuaHBwCkBAIC0wLDAgKzEsNTU0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2Z1bGxfbGFtYmRhLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICBib29sIEMxID0gZmFsc2UsIGJvb2wgQzIgPSBmYWxzZSwgYm9vbCBDMyA9IGZhbHNlLCBib29sIEM0ID0gZmFsc2UKKyAgICAsIGJvb2wgQzUgPSBmYWxzZQorICAgID4KK3N0cnVjdCBsYW1iZGFfb3IKKyAgICA6IHRydWVfCit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGFtYmRhX29yPCBmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSA+CisgICAgOiBmYWxzZV8KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgCisgICAgPgorc3RydWN0IGxhbWJkYQoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgVCByZXN1bHRfOworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGlzX2xhbWJkYV9leHByZXNzaW9uCisgICAgOiBsYW1iZGE8VD46OmlzX2xlCit7Cit9OworCit0ZW1wbGF0ZTwgaW50IE4sIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgbGFtYmRhPCBhcmc8Tj4sIFRhZyA+Cit7CisgICAgdHlwZWRlZiB0cnVlXyBpc19sZTsKKyAgICB0eXBlZGVmIG1wbDo6YXJnPE4+IHJlc3VsdF87IC8vIHF1YWxpZmllZCBmb3IgdGhlIHNha2Ugb2YgTUlQU3BybyA3LjQxCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMDxGPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kMDwKKyAgICAgICAgICBGCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMQorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQxCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDE8IHRydWVfLFRhZyxGLEwxID4KK3sKKyAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgIHF1b3RlMTwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0PHJlc3VsdF8+IHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPFQxPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQxPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMQorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBiaW5kMTwgRixUMSA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsKKyAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgIEYKKyAgICAgICAgLCBUMQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMgorICAgID4KK3N0cnVjdCBsZV9yZXN1bHQyCit7CisgICAgdHlwZWRlZiBGPAorICAgICAgICAgIHR5cGVuYW1lIEwxOjp0eXBlLCB0eXBlbmFtZSBMMjo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDI8IHRydWVfLFRhZyxGLEwxLEwyID4KK3sKKyAgICB0eXBlZGVmIGJpbmQyPAorICAgICAgICAgIHF1b3RlMjwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgICwgdHlwZW5hbWUgVGFnCisgICAgPgorc3RydWN0IGxhbWJkYTwKKyAgICAgICAgICBGPCBUMSxUMiA+CisgICAgICAgICwgVGFnCisgICAgICAgCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDEsVGFnID4gbDE7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQyLFRhZyA+IGwyOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgIGlzX2xlMTo6dmFsdWUsIGlzX2xlMjo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQyPAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMgorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQyPCBGLFQxLFQyID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDI8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMgorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIElzTEUsIHR5cGVuYW1lIFRhZworICAgICwgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBMMSwgdHlwZW5hbWUgTDIsIHR5cGVuYW1lIEwzCisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDMKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMKKyAgICA+CitzdHJ1Y3QgbGVfcmVzdWx0MzwgdHJ1ZV8sVGFnLEYsTDEsTDIsTDMgPgoreworICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgcXVvdGUzPCBGLFRhZyA+CisgICAgICAgICwgdHlwZW5hbWUgTDE6OnJlc3VsdF8sIHR5cGVuYW1lIEwyOjpyZXN1bHRfLCB0eXBlbmFtZSBMMzo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyLFQzID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgIAorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmxhbWJkYV9vcjwKKyAgICAgICAgICBpc19sZTE6OnZhbHVlLCBpc19sZTI6OnZhbHVlLCBpc19sZTM6OnZhbHVlCisgICAgICAgID46OnR5cGUgaXNfbGU7CisKKyAgICB0eXBlZGVmIGF1eDo6bGVfcmVzdWx0MzwKKyAgICAgICAgICBpc19sZSwgVGFnLCBGLCBsMSwgbDIsIGwzCisgICAgICAgID4gbGVfcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6cmVzdWx0XyByZXN1bHRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGVfcmVzdWx0Xzo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQzPCBGLFQxLFQyLFQzID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDM8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMKKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiByZXN1bHRfIHR5cGU7Cit9OworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBJc0xFLCB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDQKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIEw0Ojp0eXBlCisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcKKyAgICAsIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIEwxLCB0eXBlbmFtZSBMMiwgdHlwZW5hbWUgTDMsIHR5cGVuYW1lIEw0CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDQ8IHRydWVfLFRhZyxGLEwxLEwyLEwzLEw0ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgIHF1b3RlNDwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6cmVzdWx0XworICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIG1wbDo6cHJvdGVjdDxyZXN1bHRfPiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgRjwgVDEsVDIsVDMsVDQgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQxLFRhZyA+IGwxOworICAgIHR5cGVkZWYgbGFtYmRhPCBUMixUYWcgPiBsMjsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDMsVGFnID4gbDM7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQ0LFRhZyA+IGw0OworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMzo6aXNfbGUgaXNfbGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDQ6OmlzX2xlIGlzX2xlNDsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZSwgaXNfbGU0Ojp2YWx1ZQorICAgICAgICA+Ojp0eXBlIGlzX2xlOworCisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDQ8CisgICAgICAgICAgaXNfbGUsIFRhZywgRiwgbDEsIGwyLCBsMywgbDQKKyAgICAgICAgPiBsZV9yZXN1bHRfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ0PCBGLFQxLFQyLFQzLFQ0ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDQ8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgID4gcmVzdWx0XzsKKworICAgIHR5cGVkZWYgcmVzdWx0XyB0eXBlOworfTsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXNMRSwgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQsIHR5cGVuYW1lIEw1CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDUKK3sKKyAgICB0eXBlZGVmIEY8CisgICAgICAgICAgdHlwZW5hbWUgTDE6OnR5cGUsIHR5cGVuYW1lIEwyOjp0eXBlLCB0eXBlbmFtZSBMMzo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIEw0Ojp0eXBlLCB0eXBlbmFtZSBMNTo6dHlwZQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnCisgICAgLCB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1ID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgTDEsIHR5cGVuYW1lIEwyLCB0eXBlbmFtZSBMMywgdHlwZW5hbWUgTDQsIHR5cGVuYW1lIEw1CisgICAgPgorc3RydWN0IGxlX3Jlc3VsdDU8IHRydWVfLFRhZyxGLEwxLEwyLEwzLEw0LEw1ID4KK3sKKyAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgIHF1b3RlNTwgRixUYWcgPgorICAgICAgICAsIHR5cGVuYW1lIEwxOjpyZXN1bHRfLCB0eXBlbmFtZSBMMjo6cmVzdWx0XywgdHlwZW5hbWUgTDM6OnJlc3VsdF8KKyAgICAgICAgLCB0eXBlbmFtZSBMNDo6cmVzdWx0XywgdHlwZW5hbWUgTDU6OnJlc3VsdF8KKyAgICAgICAgPiByZXN1bHRfOworCisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8cmVzdWx0Xz4gdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0CisgICAgICAgICwgdHlwZW5hbWUgUDUKKyAgICAgICAgPgorICAgICAgY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIEY8IFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBUMSxUYWcgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDIsVGFnID4gbDI7CisgICAgdHlwZWRlZiBsYW1iZGE8IFQzLFRhZyA+IGwzOworICAgIHR5cGVkZWYgbGFtYmRhPCBUNCxUYWcgPiBsNDsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVDUsVGFnID4gbDU7CisgICAgCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDI6OmlzX2xlIGlzX2xlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbDU6OmlzX2xlIGlzX2xlNTsKKyAgICAKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgaXNfbGUxOjp2YWx1ZSwgaXNfbGUyOjp2YWx1ZSwgaXNfbGUzOjp2YWx1ZSwgaXNfbGU0Ojp2YWx1ZQorICAgICAgICAsIGlzX2xlNTo6dmFsdWUKKyAgICAgICAgPjo6dHlwZSBpc19sZTsKKworICAgIHR5cGVkZWYgYXV4OjpsZV9yZXN1bHQ1PAorICAgICAgICAgIGlzX2xlLCBUYWcsIEYsIGwxLCBsMiwgbDMsIGw0LCBsNQorICAgICAgICA+IGxlX3Jlc3VsdF87CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnJlc3VsdF8gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxlX3Jlc3VsdF86OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ1PCBGLFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgLCBUYWcKKyAgICAgICAKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOworICAgIHR5cGVkZWYgYmluZDU8CisgICAgICAgICAgRgorICAgICAgICAsIFQxLCBUMiwgVDMsIFQ0LCBUNQorICAgICAgICA+IHJlc3VsdF87CisKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKKy8vLyBzcGVjaWFsIGNhc2UgZm9yICdwcm90ZWN0JwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgbGFtYmRhPCBtcGw6OnByb3RlY3Q8VD4sIFRhZyA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBtcGw6OnByb3RlY3Q8VD4gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKKy8vLyBzcGVjaWFsaXphdGlvbnMgZm9yIHRoZSBtYWluICdiaW5kJyBmb3JtCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgLCB0eXBlbmFtZSBUYWcKKyAgICA+CitzdHJ1Y3QgbGFtYmRhPAorICAgICAgICAgIGJpbmQ8IEYsVDEsVDIsVDMsVDQsVDUgPgorICAgICAgICAsIFRhZworICAgICAgIAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7CisgICAgdHlwZWRlZiBiaW5kPCBGLFQxLFQyLFQzLFQ0LFQ1ID4gcmVzdWx0XzsKKyAgICB0eXBlZGVmIHJlc3VsdF8gdHlwZTsKK307CisKKy8vLyB3b3JrYXJvdW5kIGZvciBNV0NXIDguMysvRURHIDwgMzAzLCBsZWFkcyB0byBhbWJpZ3VpdHkgb24gRGlnaXRhbCBNYXJzCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnMSwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsYW1iZGE8CisgICAgICAgICAgbGFtYmRhPCBGLFRhZzEgPgorICAgICAgICAsIFRhZzIKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGFtYmRhPCBGLFRhZzIgPiBsMTsKKyAgICB0eXBlZGVmIGxhbWJkYTwgVGFnMSxUYWcyID4gbDI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGU7CisgICAgdHlwZWRlZiBhdXg6OmxlX3Jlc3VsdDI8aXNfbGUsIFRhZzIsIG1wbDo6bGFtYmRhLCBsMSwgbDI+IGxlX3Jlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjpyZXN1bHRfIHJlc3VsdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsZV9yZXN1bHRfOjp0eXBlIHR5cGU7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgbGFtYmRhKQorCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2dyZWF0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyODM1ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyLmhwcApAQCAtMCwwICsxLDkyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ncmVhdGVyLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgZ3JlYXRlcl9pbXBsCisgICAgOiBpZl9jPAorICAgICAgICAgICggQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzEpCisgICAgICAgICAgICAgID4gQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChpbnQsIFRhZzIpCisgICAgICAgICAgICApCisKKyAgICAgICAgLCBhdXg6OmNhc3QybmRfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgZ3JlYXRlcl9pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IGdyZWF0ZXJfaW1wbDwgbmEsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZ3JlYXRlcl9pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGdyZWF0ZXJfdGFnCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjIpCisgICAgPgorc3RydWN0IGdyZWF0ZXIKKworICAgIDogZ3JlYXRlcl9pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGdyZWF0ZXJfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBncmVhdGVyKQorCit9fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGdyZWF0ZXJfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGJvb2xfPCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlID4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZ3JlYXRlcl9lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ncmVhdGVyX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjdkNWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vZ3JlYXRlcl9lcXVhbC5ocHAKQEAgLTAsMCArMSw5MiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGdyZWF0ZXJfZXF1YWxfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBncmVhdGVyX2VxdWFsX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBncmVhdGVyX2VxdWFsCisKKyAgICA6IGdyZWF0ZXJfZXF1YWxfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBncmVhdGVyX2VxdWFsX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgZ3JlYXRlcl9lcXVhbCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBncmVhdGVyX2VxdWFsX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSA+PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pbmhlcml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2luaGVyaXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjNzkxNGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pbmhlcml0LmhwcApAQCAtMCwwICsxLDEyNSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvaW5oZXJpdC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDIKKyAgICA6IFQxLCBUMgoreworICAgIHR5cGVkZWYgaW5oZXJpdDIgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSA+CitzdHJ1Y3QgaW5oZXJpdDI8IFQxLGVtcHR5X2Jhc2UgPgoreworICAgIHR5cGVkZWYgVDEgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMiwgaW5oZXJpdDIsIChUMSwgZW1wdHlfYmFzZSkpCit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDIgPgorc3RydWN0IGluaGVyaXQyPCBlbXB0eV9iYXNlLFQyID4KK3sKKyAgICB0eXBlZGVmIFQyIHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsIGluaGVyaXQyLCAoZW1wdHlfYmFzZSwgVDIpKQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGluaGVyaXQyPCBlbXB0eV9iYXNlLGVtcHR5X2Jhc2UgPgoreworICAgIHR5cGVkZWYgZW1wdHlfYmFzZSB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLCBpbmhlcml0MiwgKGVtcHR5X2Jhc2UsIGVtcHR5X2Jhc2UpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDIsIGluaGVyaXQyKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gbmEsIHR5cGVuYW1lIFQyID0gbmEsIHR5cGVuYW1lIFQzID0gbmEKKyAgICA+CitzdHJ1Y3QgaW5oZXJpdDMKKyAgICA6IGluaGVyaXQyPAorICAgICAgICAgIHR5cGVuYW1lIGluaGVyaXQyPAorICAgICAgICAgICAgICBUMSwgVDIKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUMworICAgICAgICA+Cit7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMywgaW5oZXJpdDMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NAorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDM8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgLCBUNAorICAgICAgICA+Cit7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoNCwgaW5oZXJpdDQpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYSwgdHlwZW5hbWUgVDQgPSBuYQorICAgICwgdHlwZW5hbWUgVDUgPSBuYQorICAgID4KK3N0cnVjdCBpbmhlcml0NQorICAgIDogaW5oZXJpdDI8CisgICAgICAgICAgdHlwZW5hbWUgaW5oZXJpdDQ8CisgICAgICAgICAgICAgIFQxLCBUMiwgVDMsIFQ0CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICwgVDUKKyAgICAgICAgPgoreworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDUsIGluaGVyaXQ1KQorCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxID0gZW1wdHlfYmFzZSwgdHlwZW5hbWUgVDIgPSBlbXB0eV9iYXNlCisgICAgLCB0eXBlbmFtZSBUMyA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQ0ID0gZW1wdHlfYmFzZQorICAgICwgdHlwZW5hbWUgVDUgPSBlbXB0eV9iYXNlCisgICAgPgorc3RydWN0IGluaGVyaXQKKyAgICA6IGluaGVyaXQ1PCBUMSxUMixUMyxUNCxUNSA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaW5oZXJpdDwgbmEsbmEsbmEsbmEsbmEgPgoreworICAgIHRlbXBsYXRlPAorCisgICAgICAgICAgdHlwZW5hbWUgVDEgPSBlbXB0eV9iYXNlLCB0eXBlbmFtZSBUMiA9IGVtcHR5X2Jhc2UKKyAgICAgICAgLCB0eXBlbmFtZSBUMyA9IGVtcHR5X2Jhc2UsIHR5cGVuYW1lIFQ0ID0gZW1wdHlfYmFzZQorICAgICAgICAsIHR5cGVuYW1lIFQ1ID0gZW1wdHlfYmFzZQorCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBpbmhlcml0PCBUMSxUMixUMyxUNCxUNSA+CisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUNfTEFNQkRBKDUsIGluaGVyaXQpCitCT09TVF9NUExfQVVYX05BX1NQRUNfQVJJVFkoNSwgaW5oZXJpdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWSg1LCA1LCBpbmhlcml0KQorfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vaXRlcl9mb2xkX2lmX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vaXRlcl9mb2xkX2lmX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYTI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9pdGVyX2ZvbGRfaWZfaW1wbC5ocHAKQEAgLTAsMCArMSwxMzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMS0yMDAyCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2lmX2ltcGwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIFN0YXRlID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwCit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIEl0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9zdGVwX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBJdGVyYXRvcgorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGVPcAorICAgICAgICAsIHR5cGVuYW1lIEl0ZXJhdG9yT3AKKyAgICAgICAgPgorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgU3RhdGVPcCxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIHN0YXRlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEl0ZXJhdG9yT3A6OnR5cGUgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfc3RlcF9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBTdGF0ZU9wCisgICAgICAgICwgdHlwZW5hbWUgSXRlcmF0b3JPcAorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEZvcndhcmRPcCwgbXBsOjpuZXh0PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFByZWRpY2F0ZSxTdGF0ZSxJdGVyYXRvciA+Ojp0eXBlIG5vdF9sYXN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkX2lmX3N0ZXBfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChub3RfbGFzdCk6OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88IEl0ZXJhdG9yLFN0YXRlLEJhY2t3YXJkT3AsIGlkZW50aXR5PEl0ZXJhdG9yPiA+IGltcGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpbXBsXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yCisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkUHJlZGljYXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZFByZWRpY2F0ZQorICAgID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfaW1wbAoreworIHByaXZhdGU6CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfbnVsbF9zdGVwPCBJdGVyYXRvcixTdGF0ZSA+IGZvcndhcmRfc3RlcDA7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAwOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMDo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDE7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMTo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDI7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAyOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfZm9yd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAzOjppdGVyYXRvciwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMzo6c3RhdGUsIEZvcndhcmRPcCwgRm9yd2FyZFByZWRpY2F0ZSA+IGZvcndhcmRfc3RlcDQ7CisgICAgCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0Ojpub3RfbGFzdAorICAgICAgICAsIGl0ZXJfZm9sZF9pZl9pbXBsPAorICAgICAgICAgICAgICB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjppdGVyYXRvcgorICAgICAgICAgICAgLCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXA0OjpzdGF0ZQorICAgICAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgICAgICwgRm9yd2FyZFByZWRpY2F0ZQorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEJhY2t3YXJkUHJlZGljYXRlCisgICAgICAgICAgICA+CisgICAgICAgICwgaXRlcl9mb2xkX2lmX251bGxfc3RlcDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6aXRlcmF0b3IKKyAgICAgICAgICAgICwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwNDo6c3RhdGUKKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZSBiYWNrd2FyZF9zdGVwNDsKKworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDM6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDM7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaWZfYmFja3dhcmRfc3RlcDwgdHlwZW5hbWUgZm9yd2FyZF9zdGVwMjo6aXRlcmF0b3IsIHR5cGVuYW1lIGJhY2t3YXJkX3N0ZXAzOjpzdGF0ZSwgQmFja3dhcmRPcCwgQmFja3dhcmRQcmVkaWNhdGUgPiBiYWNrd2FyZF9zdGVwMjsKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pZl9iYWNrd2FyZF9zdGVwPCB0eXBlbmFtZSBmb3J3YXJkX3N0ZXAxOjppdGVyYXRvciwgdHlwZW5hbWUgYmFja3dhcmRfc3RlcDI6OnN0YXRlLCBCYWNrd2FyZE9wLCBCYWNrd2FyZFByZWRpY2F0ZSA+IGJhY2t3YXJkX3N0ZXAxOworICAgIHR5cGVkZWYgaXRlcl9mb2xkX2lmX2JhY2t3YXJkX3N0ZXA8IHR5cGVuYW1lIGZvcndhcmRfc3RlcDA6Oml0ZXJhdG9yLCB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMTo6c3RhdGUsIEJhY2t3YXJkT3AsIEJhY2t3YXJkUHJlZGljYXRlID4gYmFja3dhcmRfc3RlcDA7CisgICAgCisKKyBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwMDo6c3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYWNrd2FyZF9zdGVwNDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2l0ZXJfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzA4YjMwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vaXRlcl9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBpbnQgTgorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiBzdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDEsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTEgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDIsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgc3RhdGUyIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUwLGl0ZXIwID46OnR5cGUgc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMSxpdGVyMSA+Ojp0eXBlIHN0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTIsaXRlcjIgPjo6dHlwZSBzdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTMgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMyBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTAsaXRlcjAgPjo6dHlwZSBzdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3Asc3RhdGUxLGl0ZXIxID46OnR5cGUgc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLHN0YXRlMixpdGVyMiA+Ojp0eXBlIHN0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxzdGF0ZTMsaXRlcjMgPjo6dHlwZSBzdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjM+Ojp0eXBlIGl0ZXI0OworICAgIAorCisgICAgdHlwZWRlZiBzdGF0ZTQgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgaW50IE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICA0CisgICAgICAgICwgRmlyc3QKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBjaHVua187CisKKyAgICB0eXBlZGVmIGl0ZXJfZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIHR5cGVuYW1lIGNodW5rXzo6aXRlcmF0b3IKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgY2h1bmtfOjpzdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+IHJlc187CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc186OnN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEZvcndhcmRPcCA+CisgICAgOiBpdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICAtMQorICAgICAgICAsIHR5cGVuYW1lIG1wbDo6bmV4dDxGaXJzdD46OnR5cGUKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsU3RhdGUsRmlyc3QgPjo6dHlwZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworfTsKKworfX19CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sYW1iZGFfbm9fY3Rwcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sYW1iZGFfbm9fY3Rwcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU3YTE2NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xhbWJkYV9ub19jdHBzLmhwcApAQCAtMCwwICsxLDIyOCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfbm9fY3Rwcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDMSA9IGZhbHNlLCBib29sIEMyID0gZmFsc2UsIGJvb2wgQzMgPSBmYWxzZSwgYm9vbCBDNCA9IGZhbHNlCisgICAgLCBib29sIEM1ID0gZmFsc2UKKyAgICA+CitzdHJ1Y3QgbGFtYmRhX29yCisgICAgOiB0cnVlXworeworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxhbWJkYV9vcjwgZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UgPgorICAgIDogZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgQXJpdHkgPiBzdHJ1Y3QgbGFtYmRhX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB0eXBlZGVmIGlzX3BsYWNlaG9sZGVyPFQ+IGlzX2xlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsYW1iZGFfaW1wbDwgaW50XzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIFRhZywgdHlwZW5hbWUgUHJvdGVjdCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMSwgVGFnLCBmYWxzZV8gPiBsMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDE6OmlzX2xlIGlzX2xlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMjo6aXNfbGUgaXNfbGUyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwzOjppc19sZSBpc19sZTM7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUKKyAgICAgICAgICAgID4gaXNfbGU7CisKKyAgICAgICAgdHlwZWRlZiBiaW5kMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgRjo6cmViaW5kCisgICAgICAgICAgICAsIHR5cGVuYW1lIGwxOjp0eXBlLCB0eXBlbmFtZSBsMjo6dHlwZSwgdHlwZW5hbWUgbDM6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGxhbWJkYV9pbXBsPCBpbnRfPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVGFnLCB0eXBlbmFtZSBQcm90ZWN0ID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcxLCBUYWcsIGZhbHNlXyA+IGwxOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMiwgVGFnLCBmYWxzZV8gPiBsMjsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzMsIFRhZywgZmFsc2VfID4gbDM7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc0LCBUYWcsIGZhbHNlXyA+IGw0OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICAKKworICAgICAgICB0eXBlZGVmIGF1eDo6bGFtYmRhX29yPAorICAgICAgICAgICAgICBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTEpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUyKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMyk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTQpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZQorICAgICAgICAgICAgPiBiaW5kXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzwKKyAgICAgICAgICAgICAgaXNfbGUKKyAgICAgICAgICAgICwgaWZfPCBQcm90ZWN0LCBtcGw6OnByb3RlY3Q8YmluZF8+LCBiaW5kXyA+CisgICAgICAgICAgICAsIGlkZW50aXR5PEY+CisgICAgICAgICAgICA+Ojp0eXBlIHR5cGVfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZV86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgbGFtYmRhX2ltcGw8IGludF88NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBUYWcsIHR5cGVuYW1lIFByb3RlY3QgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzEsIFRhZywgZmFsc2VfID4gbDE7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmcyLCBUYWcsIGZhbHNlXyA+IGwyOworICAgICAgICB0eXBlZGVmIGxhbWJkYTwgdHlwZW5hbWUgRjo6YXJnMywgVGFnLCBmYWxzZV8gPiBsMzsKKyAgICAgICAgdHlwZWRlZiBsYW1iZGE8IHR5cGVuYW1lIEY6OmFyZzQsIFRhZywgZmFsc2VfID4gbDQ7CisgICAgICAgIHR5cGVkZWYgbGFtYmRhPCB0eXBlbmFtZSBGOjphcmc1LCBUYWcsIGZhbHNlXyA+IGw1OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsMTo6aXNfbGUgaXNfbGUxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGwyOjppc19sZSBpc19sZTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbDM6OmlzX2xlIGlzX2xlMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBsNDo6aXNfbGUgaXNfbGU0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGw1Ojppc19sZSBpc19sZTU7CisgICAgICAgIAorCisgICAgICAgIHR5cGVkZWYgYXV4OjpsYW1iZGFfb3I8CisgICAgICAgICAgICAgIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlMSk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTIpOjp2YWx1ZSwgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoaXNfbGUzKTo6dmFsdWUsIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKGlzX2xlNCk6OnZhbHVlLCBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChpc19sZTUpOjp2YWx1ZQorICAgICAgICAgICAgPiBpc19sZTsKKworICAgICAgICB0eXBlZGVmIGJpbmQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBGOjpyZWJpbmQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgbDE6OnR5cGUsIHR5cGVuYW1lIGwyOjp0eXBlLCB0eXBlbmFtZSBsMzo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBsNDo6dHlwZSwgdHlwZW5hbWUgbDU6OnR5cGUKKyAgICAgICAgICAgID4gYmluZF87CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZl88CisgICAgICAgICAgICAgIGlzX2xlCisgICAgICAgICAgICAsIGlmXzwgUHJvdGVjdCwgbXBsOjpwcm90ZWN0PGJpbmRfPiwgYmluZF8gPgorICAgICAgICAgICAgLCBpZGVudGl0eTxGPgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlXzsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVfOjp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIFRhZworICAgICwgdHlwZW5hbWUgUHJvdGVjdAorICAgID4KK3N0cnVjdCBsYW1iZGEKK3sKKyAgICAvLy8gTWV0YWZ1bmN0aW9uIGZvcndhcmRpbmcgY29uZnVzZXMgTVNWQyA2LngKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dGVtcGxhdGVfYXJpdHk8VD46OnR5cGUgYXJpdHlfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpsYW1iZGFfaW1wbDxhcml0eV8+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzwgVCxUYWcsUHJvdGVjdCA+IGxfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBsXzo6dHlwZSB0eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbF86OmlzX2xlIGlzX2xlOworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigxLCAzLCBsYW1iZGEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgID4KK3N0cnVjdCBpc19sYW1iZGFfZXhwcmVzc2lvbgorICAgIDogbGFtYmRhPFQ+Ojppc19sZQoreworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGVzcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9sZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWJlY2UxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGVzcy5ocHAKQEAgLTAsMCArMSw5MiBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGVzcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IGxlc3NfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IGxlc3NfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IGxlc3NfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBsZXNzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGxlc3NfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBsZXNzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBsZXNzCisKKyAgICA6IGxlc3NfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBsZXNzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBsZXNzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbGVzcykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZXNzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSA+IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlICkgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xlc3NfZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGVzc19lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE4ZGQ2YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xlc3NfZXF1YWwuaHBwCkBAIC0wLDAgKzEsOTIgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBsZXNzX2VxdWFsX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBsZXNzX2VxdWFsX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBsZXNzX2VxdWFsX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbGVzc19lcXVhbF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3QgbGVzc19lcXVhbAorCisgICAgOiBsZXNzX2VxdWFsX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbGVzc19lcXVhbF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIGxlc3NfZXF1YWwpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbGVzc19lcXVhbF9pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogYm9vbF88ICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUgPD0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUgKSA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2M4YzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdC5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbGlzdDsKKwordGVtcGxhdGU8CisgICAgIAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDA8ICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MDwgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE8VDA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyPCBUMCxUMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MzwgVDAsVDEsVDIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q0PCBUMCxUMSxUMixUMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q1PCBUMCxUMSxUMixUMyxUNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0NjwgVDAsVDEsVDIsVDMsVDQsVDUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q3PCBUMCxUMSxUMixUMyxUNCxUNSxUNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3Q4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3Q5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0OTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDggPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMgorICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMworICAgID4KK3N0cnVjdCBsaXN0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IGxpc3Q8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE1PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE2PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBsaXN0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE3PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbGlzdDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE4PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgbGlzdDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IGxpc3QxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbGlzdAorICAgIDogbGlzdDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QyMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3RfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0M2YzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0X2MuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0X2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IGxpc3RfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxX2M8IFQsQzAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDFfYzwgVCxDMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QyX2M8IFQsQzAsQzEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDJfYzwgVCxDMCxDMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QzX2M8IFQsQzAsQzEsQzIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDNfYzwgVCxDMCxDMSxDMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q0X2M8IFQsQzAsQzEsQzIsQzMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDRfYzwgVCxDMCxDMSxDMixDMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q1X2M8IFQsQzAsQzEsQzIsQzMsQzQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q3X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3Q5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDE0X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogbGlzdDE1X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxNV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxNl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MTdfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3QgbGlzdF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBsaXN0MThfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGxpc3QxOF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IGxpc3RfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IGxpc3QxOV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBsaXN0MTlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IGxpc3RfYworICAgIDogbGlzdDIwX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBDMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbGlzdDIwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL21hcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9tYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NzRmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9tYXAuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9tYXAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3QgbWFwOworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDA8ICA+Cit7CisgICAgdHlwZWRlZiBtYXAwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXA5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXA5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXAxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IG1hcDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgbWFwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBtYXAxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogbWFwMTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IG1hcDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBtYXA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBtYXAxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBtYXAKKyAgICA6IG1hcDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1hcDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbWludXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OTFkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9taW51cy5ocHAKQEAgLTAsMCArMSwxNDEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL21pbnVzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFRhZzEKKyAgICAsIHR5cGVuYW1lIFRhZzIKKyAgICA+CitzdHJ1Y3QgbWludXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1pbnVzX2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBtaW51c19pbXBsPCBUYWcyLFRhZzIgPixUYWcxLCBUYWcyID4KKyAgICAgICAgPjo6dHlwZQoreworfTsKKworLy8vIGZvciBEaWdpdGFsIE1hcnMgQysrL2NvbXBpbGVycyB3aXRoIG5vIENUUFMvVFRQIHN1cHBvcnQKK3RlbXBsYXRlPD4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1pbnVzX2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBtaW51c19pbXBsPCBUYWcsbmEgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IG1pbnVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBtaW51cworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgbWludXM8IE4xLE4yID4sIE4zPiwgTjQ+LCBONT4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMywgdHlwZW5hbWUgTjQKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBtaW51czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBONCwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMKKyAgICA+CitzdHJ1Y3QgbWludXM8IE4xLE4yLE4zLG5hLG5hID4KKworICAgIDogbWludXM8IG1pbnVzPCBOMSxOMiA+LCBOMz4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIG1pbnVzCisgICAgICAgICwgKCBOMSwgTjIsIE4zLCBuYSwgbmEgKQorICAgICAgICApCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMgorICAgID4KK3N0cnVjdCBtaW51czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogbWludXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBtaW51c190YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgbWludXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgbWludXMKKyAgICAgICAgLCAoIE4xLCBOMiwgbmEsIG5hLCBuYSApCisgICAgICAgICkKKworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCA1LCBtaW51cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWludXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgIC0gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbW9kdWx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDIzYzU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbW9kdWx1cy5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbW9kdWx1cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IG1vZHVsdXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IG1vZHVsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBtb2R1bHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1vZHVsdXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG1vZHVsdXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBtb2R1bHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBtb2R1bHVzCisKKyAgICA6IG1vZHVsdXNfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBtb2R1bHVzX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBtb2R1bHVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgMiwgbW9kdWx1cykKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbW9kdWx1c19pbXBsPCBpbnRlZ3JhbF9jX3RhZyxpbnRlZ3JhbF9jX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiA+IHN0cnVjdCBhcHBseQorCisgICAgICAgIDogaW50ZWdyYWxfYzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgYXV4OjpsYXJnZXN0X2ludDwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIE4xOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgLCB0eXBlbmFtZSBOMjo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgJSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9ub3RfZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbm90X2VxdWFsX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2U2MzRkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbm90X2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDkyIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9ub3RfZXF1YWxfdG8uaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG9faW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IG5vdF9lcXVhbF90b19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgbm90X2VxdWFsX3RvX2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IG5vdF9lcXVhbF90b19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgbm90X2VxdWFsX3RvX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgID4KK3N0cnVjdCBub3RfZXF1YWxfdG8KKworICAgIDogbm90X2VxdWFsX3RvX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgbm90X2VxdWFsX3RvX3RhZzxOMT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBub3RfZXF1YWxfdG9fdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBub3RfZXF1YWxfdG8pCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgbm90X2VxdWFsX3RvX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBib29sXzwgKCBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjEpOjp2YWx1ZSAhPSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTjIpOjp2YWx1ZSApID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9vci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9vci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM1NzY1ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL29yLmhwcApAQCAtMCwwICsxLDY0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9vci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIENfLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3Qgb3JfaW1wbAorICAgIDogdHJ1ZV8KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCA+CitzdHJ1Y3Qgb3JfaW1wbDwgZmFsc2UsVDEsVDIsVDMsVDQgPgorICAgIDogb3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQKKyAgICAgICAgLCBmYWxzZV8KKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IG9yX2ltcGw8CisgICAgICAgICAgZmFsc2UKKyAgICAgICAgLCBmYWxzZV8sIGZhbHNlXywgZmFsc2VfLCBmYWxzZV8KKyAgICAgICAgPgorICAgIDogZmFsc2VfCit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICAsIHR5cGVuYW1lIFQzID0gZmFsc2VfLCB0eXBlbmFtZSBUNCA9IGZhbHNlXywgdHlwZW5hbWUgVDUgPSBmYWxzZV8KKyAgICA+CitzdHJ1Y3Qgb3JfCisKKyAgICA6IGF1eDo6b3JfaW1wbDwKKyAgICAgICAgICBCT09TVF9NUExfQVVYX05FU1RFRF9UWVBFX1dLTkQoVDEpOjp2YWx1ZQorICAgICAgICAsIFQyLCBUMywgVDQsIFQ1CisgICAgICAgID4KKworeworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigKKyAgICAgIDIKKyAgICAsIDUKKyAgICAsIG9yXworICAgICkKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9wbGFjZWhvbGRlcnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZDQ1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9wbGFjZWhvbGRlcnMuaHBwCkBAIC0wLDAgKzEsMTA1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEtMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9wbGFjZWhvbGRlcnMuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8IC0xID4gXzsKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfOworfQorCit9fQorCisvLy8gYWd1cnQsIDE3L21hci8wMjogb25lIG1vcmUgcGxhY2Vob2xkZXIgZm9yIHRoZSBsYXN0ICdhcHBseSMnIAorLy8vIHNwZWNpYWxpemF0aW9uCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwxPiBfMTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF8xKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfMTsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDI+IF8yOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzIpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol8yOworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Mz4gXzM7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfMykKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzM7Cit9CisKK319CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzw0PiBfNDsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKF80KQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfNDsKK30KKworfX0KK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3R5cGVkZWYgYXJnPDU+IF81OworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK0JPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0woXzUpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6Ol81OworfQorCit9fQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgordHlwZWRlZiBhcmc8Nj4gXzY7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfNikKKworbmFtZXNwYWNlIHBsYWNlaG9sZGVycyB7Cit1c2luZyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6XzY7Cit9CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9wbHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3BsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYTE5MWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9wbHVzLmhwcApAQCAtMCwwICsxLDE0MSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvcGx1cy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHBsdXNfaW1wbAorICAgIDogaWZfYzwKKyAgICAgICAgICAoIEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcxKQorICAgICAgICAgICAgICA+IEJPT1NUX01QTF9BVVhfTkVTVEVEX1ZBTFVFX1dLTkQoaW50LCBUYWcyKQorICAgICAgICAgICAgKQorCisgICAgICAgICwgYXV4OjpjYXN0Mm5kX2ltcGw8IHBsdXNfaW1wbDwgVGFnMSxUYWcxID4sVGFnMSwgVGFnMiA+CisgICAgICAgICwgYXV4OjpjYXN0MXN0X2ltcGw8IHBsdXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBwbHVzX2ltcGw8IG5hLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHBsdXNfaW1wbDwgbmEsVGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHBsdXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBwbHVzX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4yKQorICAgICwgdHlwZW5hbWUgTjMgPSBuYSwgdHlwZW5hbWUgTjQgPSBuYSwgdHlwZW5hbWUgTjUgPSBuYQorICAgID4KK3N0cnVjdCBwbHVzCisgICAgOiBwbHVzPCBwbHVzPCBwbHVzPCBwbHVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHBsdXM8IE4xLE4yLE4zLE40LG5hID4KKworICAgIDogcGx1czwgcGx1czwgcGx1czwgTjEsTjIgPiwgTjM+LCBOND4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHBsdXMKKyAgICAgICAgLCAoIE4xLCBOMiwgTjMsIE40LCBuYSApCisgICAgICAgICkKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yLCB0eXBlbmFtZSBOMworICAgID4KK3N0cnVjdCBwbHVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHBsdXM8IHBsdXM8IE4xLE4yID4sIE4zPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgcGx1czwgTjEsTjIsbmEsbmEsbmEgPgorICAgIDogcGx1c19pbXBsPAorICAgICAgICAgIHR5cGVuYW1lIHBsdXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHBsdXNfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygKKyAgICAgICAgICA1CisgICAgICAgICwgcGx1cworICAgICAgICAsICggTjEsIE4yLCBuYSwgbmEsIG5hICkKKyAgICAgICAgKQorCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDUsIHBsdXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHBsdXNfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIgPiBzdHJ1Y3QgYXBwbHkKKworICAgICAgICA6IGludGVncmFsX2M8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGF1eDo6bGFyZ2VzdF9pbnQ8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBOMTo6dmFsdWVfdHlwZQorICAgICAgICAgICAgICAgICwgdHlwZW5hbWUgTjI6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4xKTo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICsgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4yKTo6dmFsdWUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICA+CisgICAgeworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcXVvdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcXVvdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTc5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9xdW90ZS5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3F1b3RlLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgYm9vbCBoYXNfdHlwZV8gPgorc3RydWN0IHF1b3RlX2ltcGwKKyAgICA6IFQKK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBxdW90ZV9pbXBsPCBULGZhbHNlID4KK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAxID4gY2xhc3MgRgorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICA+CitzdHJ1Y3QgcXVvdGUxCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPFUxPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPFUxPiA+Ojp2YWx1ZQorICAgICAgICAgICAgPgorCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTIKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMiA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMyA+IGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlMworeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBxdW90ZTQKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIsIHR5cGVuYW1lIFUzLCB0eXBlbmFtZSBVNAorICAgICAgICA+CisgICAgc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBxdW90ZV9pbXBsPAorICAgICAgICAgICAgICBGPCBVMSxVMixVMyxVNCA+CisgICAgICAgICAgICAsIGF1eDo6aGFzX3R5cGU8IEY8IFUxLFUyLFUzLFU0ID4gPjo6dmFsdWUKKyAgICAgICAgICAgID4KKworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNAorICAgICAgICAsIHR5cGVuYW1lIFA1CisgICAgICAgID4KKyAgICAgIGNsYXNzIEYKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgPgorc3RydWN0IHF1b3RlNQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiwgdHlwZW5hbWUgVTMsIHR5cGVuYW1lIFU0CisgICAgICAgICwgdHlwZW5hbWUgVTUKKyAgICAgICAgPgorICAgIHN0cnVjdCBhcHBseQorCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgVTEsVTIsVTMsVTQsVTUgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBVMSxVMixVMyxVNCxVNSA+ID46OnZhbHVlCisgICAgICAgICAgICA+CisKKyAgICB7CisgICAgfTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3JldmVyc2VfZm9sZF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3JldmVyc2VfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDNhZDc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjMxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3JldmVyc2VfZm9sZF9pbXBsLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAwLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgZndkX3N0YXRlMCBia3dkX3N0YXRlMDsKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjAgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAxLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUxIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIxIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsPCAzLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTAsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjA+Ojp0eXBlIGl0ZXIxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjE+Ojp0eXBlIGl0ZXIyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBGb3J3YXJkT3AsIGZ3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIyPjo6dHlwZSA+Ojp0eXBlIGZ3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8aXRlcjI+Ojp0eXBlIGl0ZXIzOworICAgIAorCisgICAgdHlwZWRlZiBmd2Rfc3RhdGUzIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXIzIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgNCxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUwLCB0eXBlbmFtZSBkZXJlZjxpdGVyMD46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUxLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIyPjo6dHlwZSBpdGVyMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLCBmd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMz46OnR5cGUgPjo6dHlwZSBmd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIzPjo6dHlwZSBpdGVyNDsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlNCBia3dkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTQsIHR5cGVuYW1lIGRlcmVmPGl0ZXIzPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUzOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUyLCB0eXBlbmFtZSBkZXJlZjxpdGVyMT46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTEsIHR5cGVuYW1lIGRlcmVmPGl0ZXIwPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIAorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIGl0ZXI0IGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICBsb25nIE4KKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMCwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjE+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMiwgdHlwZW5hbWUgZGVyZWY8aXRlcjI+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCwgZndkX3N0YXRlMywgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHJldmVyc2VfZm9sZF9pbXBsPAorICAgICAgICAgICggKE4gLSA0KSA8IDAgPyAwIDogTiAtIDQgKQorICAgICAgICAsIGl0ZXI0CisgICAgICAgICwgTGFzdAorICAgICAgICAsIGZ3ZF9zdGF0ZTQKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX2NodW5rOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIGJrd2Rfc3RhdGU0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlNCwgdHlwZW5hbWUgZGVyZWY8aXRlcjM+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsIGJrd2Rfc3RhdGUzLCB0eXBlbmFtZSBkZXJlZjxpdGVyMj46OnR5cGUgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCwgYmt3ZF9zdGF0ZTIsIHR5cGVuYW1lIGRlcmVmPGl0ZXIxPjo6dHlwZSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLCBia3dkX3N0YXRlMSwgdHlwZW5hbWUgZGVyZWY8aXRlcjA+Ojp0eXBlID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX2NodW5rOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9mb2xkX2ltcGw8IC0xLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3AgPgoreworICAgIHR5cGVkZWYgcmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjxGb3J3YXJkT3AsU3RhdGUsIHR5cGVuYW1lIGRlcmVmPEZpcnN0Pjo6dHlwZT46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgZGVyZWY8Rmlyc3Q+Ojp0eXBlCisgICAgICAgID46OnR5cGUgc3RhdGU7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9zdGVwOjppdGVyYXRvciBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGRfaW1wbDwgLTEsTGFzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIFN0YXRlIHN0YXRlOworICAgIHR5cGVkZWYgTGFzdCBpdGVyYXRvcjsKK307CisKK319fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9yZXZlcnNlX2l0ZXJfZm9sZF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2JmNTA4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAKQEAgLTAsMCArMSwyMzEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKKy8vLyBmb3J3YXJkIGRlY2xhcmF0aW9uCisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDAsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiBmd2Rfc3RhdGUwIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMSBia3dkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMSxpdGVyMCA+Ojp0eXBlIGJrd2Rfc3RhdGUwOworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyMSBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9pdGVyX2ZvbGRfaW1wbDwgMixGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgIHR5cGVkZWYgU3RhdGUgZndkX3N0YXRlMDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTAsaXRlcjAgPjo6dHlwZSBmd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIwPjo6dHlwZSBpdGVyMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLGZ3ZF9zdGF0ZTEsaXRlcjEgPjo6dHlwZSBmd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpuZXh0PGl0ZXIxPjo6dHlwZSBpdGVyMjsKKyAgICAKKworICAgIHR5cGVkZWYgZndkX3N0YXRlMiBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDMsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTMgYmt3ZF9zdGF0ZTM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTMsaXRlcjIgPjo6dHlwZSBia3dkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMixpdGVyMSA+Ojp0eXBlIGJrd2Rfc3RhdGUxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUxLGl0ZXIwID46OnR5cGUgYmt3ZF9zdGF0ZTA7CisgICAgCisKKyAgICB0eXBlZGVmIGJrd2Rfc3RhdGUwIHN0YXRlOworICAgIHR5cGVkZWYgaXRlcjMgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IDQsRmlyc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIGZ3ZF9zdGF0ZTQgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiBpdGVyNCBpdGVyYXRvcjsKK307CisKK3RlbXBsYXRlPAorICAgICAgbG9uZyBOCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsCit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUwLGl0ZXIwID46OnR5cGUgZndkX3N0YXRlMTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMD46OnR5cGUgaXRlcjE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUxLGl0ZXIxID46OnR5cGUgZndkX3N0YXRlMjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMT46OnR5cGUgaXRlcjI7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUyLGl0ZXIyID46OnR5cGUgZndkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMj46OnR5cGUgaXRlcjM7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEZvcndhcmRPcCxmd2Rfc3RhdGUzLGl0ZXIzID46OnR5cGUgZndkX3N0YXRlNDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxpdGVyMz46OnR5cGUgaXRlcjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgKCAoTiAtIDQpIDwgMCA/IDAgOiBOIC0gNCApCisgICAgICAgICwgaXRlcjQKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgZndkX3N0YXRlNAorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5lc3RlZF9jaHVuazo6c3RhdGUgYmt3ZF9zdGF0ZTQ7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTQsaXRlcjMgPjo6dHlwZSBia3dkX3N0YXRlMzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgQmFja3dhcmRPcCxia3dkX3N0YXRlMyxpdGVyMiA+Ojp0eXBlIGJrd2Rfc3RhdGUyOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPCBCYWNrd2FyZE9wLGJrd2Rfc3RhdGUyLGl0ZXIxID46OnR5cGUgYmt3ZF9zdGF0ZTE7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IEJhY2t3YXJkT3AsYmt3ZF9zdGF0ZTEsaXRlcjAgPjo6dHlwZSBia3dkX3N0YXRlMDsKKyAgICAKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4KK3N0cnVjdCByZXZlcnNlX2l0ZXJfZm9sZF9pbXBsPCAtMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wID4KK3sKKyAgICB0eXBlZGVmIHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8CisgICAgICAgICAgLTEKKyAgICAgICAgLCB0eXBlbmFtZSBtcGw6Om5leHQ8Rmlyc3Q+Ojp0eXBlCisgICAgICAgICwgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIGFwcGx5MjwgRm9yd2FyZE9wLFN0YXRlLEZpcnN0ID46OnR5cGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID4gbmVzdGVkX3N0ZXA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwKKyAgICAgICAgICBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6OnN0YXRlCisgICAgICAgICwgRmlyc3QKKyAgICAgICAgPjo6dHlwZSBzdGF0ZTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmVzdGVkX3N0ZXA6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPgorc3RydWN0IHJldmVyc2VfaXRlcl9mb2xkX2ltcGw8IC0xLExhc3QsTGFzdCxTdGF0ZSxCYWNrd2FyZE9wLEZvcndhcmRPcCA+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCit9fX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3NldC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNGNhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zZXQuaHBwCkBAIC0wLDAgKzEsMzIzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zZXQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAgPSBuYSwgdHlwZW5hbWUgVDEgPSBuYSwgdHlwZW5hbWUgVDIgPSBuYSwgdHlwZW5hbWUgVDMgPSBuYQorICAgICwgdHlwZW5hbWUgVDQgPSBuYSwgdHlwZW5hbWUgVDUgPSBuYSwgdHlwZW5hbWUgVDYgPSBuYSwgdHlwZW5hbWUgVDcgPSBuYQorICAgICwgdHlwZW5hbWUgVDggPSBuYSwgdHlwZW5hbWUgVDkgPSBuYSwgdHlwZW5hbWUgVDEwID0gbmEsIHR5cGVuYW1lIFQxMSA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTIgPSBuYSwgdHlwZW5hbWUgVDEzID0gbmEsIHR5cGVuYW1lIFQxNCA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTUgPSBuYSwgdHlwZW5hbWUgVDE2ID0gbmEsIHR5cGVuYW1lIFQxNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUMTggPSBuYSwgdHlwZW5hbWUgVDE5ID0gbmEKKyAgICA+CitzdHJ1Y3Qgc2V0OworCit0ZW1wbGF0ZTwKKyAgICAgCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDA8ICA+Cit7CisgICAgdHlwZWRlZiBzZXQwPCAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxPFQwPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTxUMD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDI8IFQwLFQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDI8IFQwLFQxID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQzPCBUMCxUMSxUMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQzPCBUMCxUMSxUMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDQ8IFQwLFQxLFQyLFQzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDQ8IFQwLFQxLFQyLFQzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDU8IFQwLFQxLFQyLFQzLFQ0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDU8IFQwLFQxLFQyLFQzLFQ0ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ2PCBUMCxUMSxUMixUMyxUNCxUNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQ5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHNldDwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3Qgc2V0PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNCwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBuYSwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiBzZXQxNjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogc2V0MTc8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNworICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHNldDE4PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOAorICAgID4KK3N0cnVjdCBzZXQ8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBuYQorICAgICAgICA+CisgICAgOiBzZXQxOTwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID46OnR5cGUgdHlwZTsKK307CisKKy8vLyBwcmltYXJ5IHRlbXBsYXRlIChub3QgYSBzcGVjaWFsaXphdGlvbiEpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgID4KK3N0cnVjdCBzZXQKKyAgICA6IHNldDIwPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOCwgVDE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vc2V0X2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vc2V0X2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZjJmZGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zZXRfYy5ocHAKQEAgLTAsMCArMSwzMjggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NldF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAgPSBMT05HX01BWCwgbG9uZyBDMSA9IExPTkdfTUFYLCBsb25nIEMyID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzMgPSBMT05HX01BWCwgbG9uZyBDNCA9IExPTkdfTUFYLCBsb25nIEM1ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzYgPSBMT05HX01BWCwgbG9uZyBDNyA9IExPTkdfTUFYLCBsb25nIEM4ID0gTE9OR19NQVgKKyAgICAsIGxvbmcgQzkgPSBMT05HX01BWCwgbG9uZyBDMTAgPSBMT05HX01BWCwgbG9uZyBDMTEgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTIgPSBMT05HX01BWCwgbG9uZyBDMTMgPSBMT05HX01BWCwgbG9uZyBDMTQgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTUgPSBMT05HX01BWCwgbG9uZyBDMTYgPSBMT05HX01BWCwgbG9uZyBDMTcgPSBMT05HX01BWAorICAgICwgbG9uZyBDMTggPSBMT05HX01BWCwgbG9uZyBDMTkgPSBMT05HX01BWAorICAgID4KK3N0cnVjdCBzZXRfYzsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDBfYzxUPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MF9jPFQ+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MV9jPCBULEMwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDFfYzwgVCxDMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0Ml9jPCBULEMwLEMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDJfYzwgVCxDMCxDMSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0M19jPCBULEMwLEMxLEMyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDNfYzwgVCxDMCxDMSxDMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0NF9jPCBULEMwLEMxLEMyLEMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDRfYzwgVCxDMCxDMSxDMixDMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0NV9jPCBULEMwLEMxLEMyLEMzLEM0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDVfYzwgVCxDMCxDMSxDMixDMyxDNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0OF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzkKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTBfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxMl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTNfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMworICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTRfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDE0X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOSwgbG9uZyBDMTAsIGxvbmcgQzExLCBsb25nIEMxMgorICAgICwgbG9uZyBDMTMsIGxvbmcgQzE0CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiBzZXQxNV9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxNV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTZfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE3X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcKKyAgICA+CitzdHJ1Y3Qgc2V0X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHNldDE4X2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXQxOF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3LCBsb25nIEM4LCBsb25nIEM5LCBsb25nIEMxMCwgbG9uZyBDMTEsIGxvbmcgQzEyCisgICAgLCBsb25nIEMxMywgbG9uZyBDMTQsIGxvbmcgQzE1LCBsb25nIEMxNiwgbG9uZyBDMTcsIGxvbmcgQzE4CisgICAgPgorc3RydWN0IHNldF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogc2V0MTlfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBDMTgKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2V0MTlfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHNldF9jCisgICAgOiBzZXQyMF9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBDMTcsIEMxOCwgQzE5CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNldDIwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID46OnR5cGUgdHlwZTsKK307CisKK319CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3NoaWZ0X2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vc2hpZnRfbGVmdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM3ZDNiMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3NoaWZ0X2xlZnQuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgSmFhcCBTdXRlciAyMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3NoaWZ0X2xlZnQuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnMQorICAgICwgdHlwZW5hbWUgVGFnMgorICAgID4KK3N0cnVjdCBzaGlmdF9sZWZ0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzEsVGFnMSA+LFRhZzEsIFRhZzIgPgorICAgICAgICAsIGF1eDo6Y2FzdDFzdF9pbXBsPCBzaGlmdF9sZWZ0X2ltcGw8IFRhZzIsVGFnMiA+LFRhZzEsIFRhZzIgPgorICAgICAgICA+Ojp0eXBlCit7Cit9OworCisvLy8gZm9yIERpZ2l0YWwgTWFycyBDKysvY29tcGlsZXJzIHdpdGggbm8gQ1RQUy9UVFAgc3VwcG9ydAordGVtcGxhdGU8PiBzdHJ1Y3Qgc2hpZnRfbGVmdF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IG5hLFRhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9sZWZ0X2ltcGw8IFRhZyxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgc2hpZnRfbGVmdF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfbGVmdAorCisgICAgOiBzaGlmdF9sZWZ0X2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgc2hpZnRfbGVmdF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfbGVmdF90YWc8TjI+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PCBOMSxOMiA+Ojp0eXBlCit7Cit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMyKDIsIDIsIHNoaWZ0X2xlZnQpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHNoaWZ0X2xlZnRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPDwgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zaGlmdF9yaWdodC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9zaGlmdF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFhODMwMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3NoaWZ0X3JpZ2h0LmhwcApAQCAtMCwwICsxLDk3IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8gQ29weXJpZ2h0IEphYXAgU3V0ZXIgMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9zaGlmdF9yaWdodC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHNoaWZ0X3JpZ2h0X2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCBzaGlmdF9yaWdodF9pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgc2hpZnRfcmlnaHRfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBzaGlmdF9yaWdodF9pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBzaGlmdF9yaWdodF90YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICA+CitzdHJ1Y3Qgc2hpZnRfcmlnaHQKKworICAgIDogc2hpZnRfcmlnaHRfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBzaGlmdF9yaWdodF90YWc8TjE+Ojp0eXBlCisgICAgICAgICwgdHlwZW5hbWUgc2hpZnRfcmlnaHRfdGFnPE4yPjo6dHlwZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTwgTjEsTjIgPjo6dHlwZQoreworfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDMigyLCAyLCBzaGlmdF9yaWdodCkKKworfX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2hpZnRfcmlnaHRfaW1wbDwgaW50ZWdyYWxfY190YWcsaW50ZWdyYWxfY190YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOLCB0eXBlbmFtZSBTID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAsICggQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgICAgICAgPj4gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFMpOjp2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi90ZW1wbGF0ZV9hcml0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi90ZW1wbGF0ZV9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNiNDJhZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3RlbXBsYXRlX2FyaXR5LmhwcApAQCAtMCwwICsxLDExIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5LmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3RpbWVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3RpbWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGUxNmFhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdGltZXMuaHBwCkBAIC0wLDAgKzEsMTQxIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC90aW1lcy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUYWcxCisgICAgLCB0eXBlbmFtZSBUYWcyCisgICAgPgorc3RydWN0IHRpbWVzX2ltcGwKKyAgICA6IGlmX2M8CisgICAgICAgICAgKCBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMSkKKyAgICAgICAgICAgICAgPiBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGludCwgVGFnMikKKyAgICAgICAgICAgICkKKworICAgICAgICAsIGF1eDo6Y2FzdDJuZF9pbXBsPCB0aW1lc19pbXBsPCBUYWcxLFRhZzEgPixUYWcxLCBUYWcyID4KKyAgICAgICAgLCBhdXg6OmNhc3Qxc3RfaW1wbDwgdGltZXNfaW1wbDwgVGFnMixUYWcyID4sVGFnMSwgVGFnMiA+CisgICAgICAgID46OnR5cGUKK3sKK307CisKKy8vLyBmb3IgRGlnaXRhbCBNYXJzIEMrKy9jb21waWxlcnMgd2l0aCBubyBDVFBTL1RUUCBzdXBwb3J0Cit0ZW1wbGF0ZTw+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxuYSA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUxLCB0eXBlbmFtZSBVMiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBhcHBseSB0eXBlOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSAgPSAwKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCB0aW1lc19pbXBsPCBuYSxUYWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVMSwgdHlwZW5hbWUgVTIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXBwbHkgdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgID0gMCk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgdGltZXNfaW1wbDwgVGFnLG5hID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVTEsIHR5cGVuYW1lIFUyID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGFwcGx5IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlICA9IDApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0aW1lc190YWcKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnRhZyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKE4xKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShOMikKKyAgICAsIHR5cGVuYW1lIE4zID0gbmEsIHR5cGVuYW1lIE40ID0gbmEsIHR5cGVuYW1lIE41ID0gbmEKKyAgICA+CitzdHJ1Y3QgdGltZXMKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IHRpbWVzPCBOMSxOMiA+LCBOMz4sIE40PiwgTjU+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIE4xLCB0eXBlbmFtZSBOMiwgdHlwZW5hbWUgTjMsIHR5cGVuYW1lIE40CisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixOMyxONCxuYSA+CisKKyAgICA6IHRpbWVzPCB0aW1lczwgdGltZXM8IE4xLE4yID4sIE4zPiwgTjQ+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgTjQsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIsIHR5cGVuYW1lIE4zCisgICAgPgorc3RydWN0IHRpbWVzPCBOMSxOMixOMyxuYSxuYSA+CisKKyAgICA6IHRpbWVzPCB0aW1lczwgTjEsTjIgPiwgTjM+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKAorICAgICAgICAgIDUKKyAgICAgICAgLCB0aW1lcworICAgICAgICAsICggTjEsIE4yLCBOMywgbmEsIG5hICkKKyAgICAgICAgKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBOMSwgdHlwZW5hbWUgTjIKKyAgICA+CitzdHJ1Y3QgdGltZXM8IE4xLE4yLG5hLG5hLG5hID4KKyAgICA6IHRpbWVzX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgdGltZXNfdGFnPE4xPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIHRpbWVzX3RhZzxOMj46OnR5cGUKKyAgICAgICAgPjo6dGVtcGxhdGUgYXBwbHk8IE4xLE4yID46OnR5cGUKK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoCisgICAgICAgICAgNQorICAgICAgICAsIHRpbWVzCisgICAgICAgICwgKCBOMSwgTjIsIG5hLCBuYSwgbmEgKQorICAgICAgICApCisKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQzIoMiwgNSwgdGltZXMpCisKK319CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgewordGVtcGxhdGU8Pgorc3RydWN0IHRpbWVzX2ltcGw8IGludGVncmFsX2NfdGFnLGludGVncmFsX2NfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTjEsIHR5cGVuYW1lIE4yID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBpbnRlZ3JhbF9jPAorICAgICAgICAgICAgICB0eXBlbmFtZSBhdXg6Omxhcmdlc3RfaW50PAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgTjE6OnZhbHVlX3R5cGUKKyAgICAgICAgICAgICAgICAsIHR5cGVuYW1lIE4yOjp2YWx1ZV90eXBlCisgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgLCAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMSk6OnZhbHVlCisgICAgICAgICAgICAgICAgICAqIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOMik6OnZhbHVlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3VucGFja19hcmdzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3VucGFja19hcmdzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzkyMDRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdW5wYWNrX2FyZ3MuaHBwCkBAIC0wLDAgKzEsOTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3VucGFja19hcmdzLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGludCBzaXplLCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgMCxGLEFyZ3MgPgorICAgIDogYXBwbHkwPAorICAgICAgICAgIEYKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDEsRixBcmdzID4KKyAgICA6IGFwcGx5MTwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUKKyAgICAgICAgPgoreworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEFyZ3MgPgorc3RydWN0IHVucGFja19hcmdzX2ltcGw8IDIsRixBcmdzID4KKyAgICA6IGFwcGx5MjwKKyAgICAgICAgICBGCisgICAgICAgICwgdHlwZW5hbWUgYXRfYzwgQXJncywwID46OnR5cGUsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMSA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCAzLEYsQXJncyA+CisgICAgOiBhcHBseTM8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlCisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCB0eXBlbmFtZSBBcmdzID4KK3N0cnVjdCB1bnBhY2tfYXJnc19pbXBsPCA0LEYsQXJncyA+CisgICAgOiBhcHBseTQ8CisgICAgICAgICAgRgorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMCA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDEgPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGF0X2M8IEFyZ3MsMiA+Ojp0eXBlLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDMgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgQXJncyA+CitzdHJ1Y3QgdW5wYWNrX2FyZ3NfaW1wbDwgNSxGLEFyZ3MgPgorICAgIDogYXBwbHk1PAorICAgICAgICAgIEYKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDAgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywxID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDIgPjo6dHlwZSwgdHlwZW5hbWUgYXRfYzwgQXJncywzID46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBhdF9jPCBBcmdzLDQgPjo6dHlwZQorICAgICAgICA+Cit7Cit9OworCit9CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRgorICAgID4KK3N0cnVjdCB1bnBhY2tfYXJncworeworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmdzID4gc3RydWN0IGFwcGx5CisKKyAgICAgICAgOiBhdXg6OnVucGFja19hcmdzX2ltcGw8IHNpemU8QXJncz46OnZhbHVlLEYsIEFyZ3MgPgorCisgICAgeworICAgIH07Cit9OworCitCT09TVF9NUExfQVVYX1BBU1NfVEhST1VHSF9MQU1CREFfU1BFQygxLCB1bnBhY2tfYXJncykKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY2NzU4OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3Rvci5ocHAKQEAgLTAsMCArMSwzMjMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCA9IG5hLCB0eXBlbmFtZSBUMSA9IG5hLCB0eXBlbmFtZSBUMiA9IG5hLCB0eXBlbmFtZSBUMyA9IG5hCisgICAgLCB0eXBlbmFtZSBUNCA9IG5hLCB0eXBlbmFtZSBUNSA9IG5hLCB0eXBlbmFtZSBUNiA9IG5hLCB0eXBlbmFtZSBUNyA9IG5hCisgICAgLCB0eXBlbmFtZSBUOCA9IG5hLCB0eXBlbmFtZSBUOSA9IG5hLCB0eXBlbmFtZSBUMTAgPSBuYSwgdHlwZW5hbWUgVDExID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxMiA9IG5hLCB0eXBlbmFtZSBUMTMgPSBuYSwgdHlwZW5hbWUgVDE0ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxNSA9IG5hLCB0eXBlbmFtZSBUMTYgPSBuYSwgdHlwZW5hbWUgVDE3ID0gbmEKKyAgICAsIHR5cGVuYW1lIFQxOCA9IG5hLCB0eXBlbmFtZSBUMTkgPSBuYQorICAgID4KK3N0cnVjdCB2ZWN0b3I7CisKK3RlbXBsYXRlPAorICAgICAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMDwgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjA8ICA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE8VDA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxPFQwPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMjwgVDAsVDEgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjwgVDAsVDEgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjM8IFQwLFQxLFQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjM8IFQwLFQxLFQyID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3Rvcjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBuYSwgbmEsIG5hLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEwPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIG5hLCBuYSwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMQorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBuYSwgbmEsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBuYSwgbmEsIG5hCisgICAgICAgICwgbmEsIG5hLCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEzPCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMiA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yPAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIG5hLCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCB2ZWN0b3I8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0LCBuYQorICAgICAgICAsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIG5hLCBuYSwgbmEsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgbmEsIG5hLCBuYQorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2ID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBuYSwgbmEKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTg8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNworICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjwKKyAgICAgICAgICBUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwLCBUMTEsIFQxMiwgVDEzLCBUMTQKKyAgICAgICAgLCBUMTUsIFQxNiwgVDE3LCBUMTgsIG5hCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE5PAorICAgICAgICAgIFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTAsIFQxMSwgVDEyLCBUMTMsIFQxNAorICAgICAgICAsIFQxNSwgVDE2LCBUMTcsIFQxOAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTggPjo6dHlwZSB0eXBlOworfTsKKworLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3RvcgorICAgIDogdmVjdG9yMjA8CisgICAgICAgICAgVDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMCwgVDExLCBUMTIsIFQxMywgVDE0CisgICAgICAgICwgVDE1LCBUMTYsIFQxNywgVDE4LCBUMTkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+Ojp0eXBlIHR5cGU7Cit9OworCit9fQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3JfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3JfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJmYmRiNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3Rvcl9jLmhwcApAQCAtMCwwICsxLDMwOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCA9IExPTkdfTUFYLCBsb25nIEMxID0gTE9OR19NQVgsIGxvbmcgQzIgPSBMT05HX01BWAorICAgICwgbG9uZyBDMyA9IExPTkdfTUFYLCBsb25nIEM0ID0gTE9OR19NQVgsIGxvbmcgQzUgPSBMT05HX01BWAorICAgICwgbG9uZyBDNiA9IExPTkdfTUFYLCBsb25nIEM3ID0gTE9OR19NQVgsIGxvbmcgQzggPSBMT05HX01BWAorICAgICwgbG9uZyBDOSA9IExPTkdfTUFYLCBsb25nIEMxMCA9IExPTkdfTUFYLCBsb25nIEMxMSA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxMiA9IExPTkdfTUFYLCBsb25nIEMxMyA9IExPTkdfTUFYLCBsb25nIEMxNCA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxNSA9IExPTkdfTUFYLCBsb25nIEMxNiA9IExPTkdfTUFYLCBsb25nIEMxNyA9IExPTkdfTUFYCisgICAgLCBsb25nIEMxOCA9IExPTkdfTUFYLCBsb25nIEMxOSA9IExPTkdfTUFYCisgICAgPgorc3RydWN0IHZlY3Rvcl9jOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMF9jPFQ+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IwX2M8VD46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxX2M8IFQsIFQoQzApID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjFfYzwgVCwgVChDMCkgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjJfYzwgVCwgVChDMCksIFQoQzEpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IzX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMykgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I2X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNgorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNikgPjo6dHlwZSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBsb25nIEMwLCBsb25nIEMxLCBsb25nIEMyLCBsb25nIEMzLCBsb25nIEM0LCBsb25nIEM1CisgICAgLCBsb25nIEM2LCBsb25nIEM3CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjhfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3I5X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVCwgbG9uZyBDMCwgbG9uZyBDMSwgbG9uZyBDMiwgbG9uZyBDMywgbG9uZyBDNCwgbG9uZyBDNQorICAgICwgbG9uZyBDNiwgbG9uZyBDNywgbG9uZyBDOCwgbG9uZyBDOQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICAsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjExX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTFfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMQorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTJfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjEyX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIExPTkdfTUFYCisgICAgICAgICwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxM19jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzCisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE0X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTRfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNAorICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMTVfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE1X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYLCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxNl9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2CisgICAgPgorc3RydWN0IHZlY3Rvcl9jPAorICAgICAgICAgIFQsIEMwLCBDMSwgQzIsIEMzLCBDNCwgQzUsIEM2LCBDNywgQzgsIEM5LCBDMTAsIEMxMSwgQzEyLCBDMTMsIEMxNAorICAgICAgICAsIEMxNSwgQzE2LCBMT05HX01BWCwgTE9OR19NQVgsIExPTkdfTUFYCisgICAgICAgID4KKyAgICA6IHZlY3RvcjE3X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNikgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdmVjdG9yMTdfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNworICAgID4KK3N0cnVjdCB2ZWN0b3JfYzwKKyAgICAgICAgICBULCBDMCwgQzEsIEMyLCBDMywgQzQsIEM1LCBDNiwgQzcsIEM4LCBDOSwgQzEwLCBDMTEsIEMxMiwgQzEzLCBDMTQKKyAgICAgICAgLCBDMTUsIEMxNiwgQzE3LCBMT05HX01BWCwgTE9OR19NQVgKKyAgICAgICAgPgorICAgIDogdmVjdG9yMThfYzwgVCwgVChDMCksIFQoQzEpLCBUKEMyKSwgVChDMyksIFQoQzQpLCBUKEM1KSwgVChDNiksIFQoQzcpLCBUKEM4KSwgVChDOSksIFQoQzEwKSwgVChDMTEpLCBUKEMxMiksIFQoQzEzKSwgVChDMTQpLCBUKEMxNSksIFQoQzE2KSwgVChDMTcpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjE4X2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yX2M8CisgICAgICAgICAgVCwgQzAsIEMxLCBDMiwgQzMsIEM0LCBDNSwgQzYsIEM3LCBDOCwgQzksIEMxMCwgQzExLCBDMTIsIEMxMywgQzE0CisgICAgICAgICwgQzE1LCBDMTYsIEMxNywgQzE4LCBMT05HX01BWAorICAgICAgICA+CisgICAgOiB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB2ZWN0b3IxOV9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSA+Ojp0eXBlIHR5cGU7Cit9OworCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQsIGxvbmcgQzAsIGxvbmcgQzEsIGxvbmcgQzIsIGxvbmcgQzMsIGxvbmcgQzQsIGxvbmcgQzUKKyAgICAsIGxvbmcgQzYsIGxvbmcgQzcsIGxvbmcgQzgsIGxvbmcgQzksIGxvbmcgQzEwLCBsb25nIEMxMSwgbG9uZyBDMTIKKyAgICAsIGxvbmcgQzEzLCBsb25nIEMxNCwgbG9uZyBDMTUsIGxvbmcgQzE2LCBsb25nIEMxNywgbG9uZyBDMTgsIGxvbmcgQzE5CisgICAgPgorc3RydWN0IHZlY3Rvcl9jCisgICAgOiB2ZWN0b3IyMF9jPCBULCBUKEMwKSwgVChDMSksIFQoQzIpLCBUKEMzKSwgVChDNCksIFQoQzUpLCBUKEM2KSwgVChDNyksIFQoQzgpLCBUKEM5KSwgVChDMTApLCBUKEMxMSksIFQoQzEyKSwgVChDMTMpLCBUKEMxNCksIFQoQzE1KSwgVChDMTYpLCBUKEMxNyksIFQoQzE4KSwgVChDMTkpID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHZlY3RvcjIwX2M8IFQsIFQoQzApLCBUKEMxKSwgVChDMiksIFQoQzMpLCBUKEM0KSwgVChDNSksIFQoQzYpLCBUKEM3KSwgVChDOCksIFQoQzkpLCBUKEMxMCksIFQoQzExKSwgVChDMTIpLCBUKEMxMyksIFQoQzE0KSwgVChDMTUpLCBUKEMxNiksIFQoQzE3KSwgVChDMTgpLCBUKEMxOSkgPjo6dHlwZSB0eXBlOworfTsKKworfX0KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvYWRkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2FkZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ1YWJjNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2FkZC5ocHAKQEAgLTAsMCArMSw2NSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX0FERF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfQUREX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYWRkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX09XTl9QUF9QUklNSVRJVkVTKQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3R1cGxlLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fUFBfTUFDUk9fRVhQQU5TSU9OKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BREQoaSxqKSBcCisgICAgQk9PU1RfTVBMX1BQX0FERF9ERUxBWShpLGopIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FERF9ERUxBWShpLGopIFwKKyAgICBCT09TVF9QUF9DQVQoQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fIyNpLEJPT1NUX01QTF9QUF9BRERfIyNqKSBcCisgICAgLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FERChpLGopIFwKKyAgICBCT09TVF9NUExfUFBfQUREX0RFTEFZKGksaikgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQUREX0RFTEFZKGksaikgXAorICAgIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXyMjaSBCT09TVF9NUExfUFBfQUREXyMjaiBcCisgICAgLyoqLworI2VuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FERF8wICgwLDEsMiwzLDQsNSw2LDcsOCw5LDEwKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQUREXzEgKDEsMiwzLDQsNSw2LDcsOCw5LDEwLDApCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BRERfMiAoMiwzLDQsNSw2LDcsOCw5LDEwLDAsMCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FERF8zICgzLDQsNSw2LDcsOCw5LDEwLDAsMCwwKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQUREXzQgKDQsNSw2LDcsOCw5LDEwLDAsMCwwLDApCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BRERfNSAoNSw2LDcsOCw5LDEwLDAsMCwwLDAsMCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FERF82ICg2LDcsOCw5LDEwLDAsMCwwLDAsMCwwKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQUREXzcgKDcsOCw5LDEwLDAsMCwwLDAsMCwwLDApCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BRERfOCAoOCw5LDEwLDAsMCwwLDAsMCwwLDAsMCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FERF85ICg5LDEwLDAsMCwwLDAsMCwwLDAsMCwwKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQUREXzEwICgxMCwwLDAsMCwwLDAsMCwwLDAsMCwwKQorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvYWRkLmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQUREKGksaikgXAorICAgIEJPT1NUX1BQX0FERChpLGopIFwKKyAgICAvKiovCisgICAgCisjZW5kaWYgCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9BRERfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZGVmX3BhcmFtc190YWlsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2IzMWYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZGVmX3BhcmFtc190YWlsLmhwcApAQCAtMCwwICsxLDEwNSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX0RFRl9QQVJBTVNfVEFJTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfREVGX1BBUkFNU19UQUlMX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZGVmX3BhcmFtc190YWlsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2R0cC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2lkZW50aXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW1wdHkuaHBwPgorCisvLyBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMKDEsVCx2YWx1ZSk6ICwgVDEgPSB2YWx1ZSwgLi4sIFRuID0gdmFsdWUKKy8vIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUwoMixULHZhbHVlKTogLCBUMiA9IHZhbHVlLCAuLiwgVG4gPSB2YWx1ZQorLy8gQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTChuLFQsdmFsdWUpOiA8bm90aGluZz4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fT1dOX1BQX1BSSU1JVElWRVMpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZmlsdGVyX3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3N1Yi5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9JTVBMKGksIHBhcmFtLCB2YWx1ZV9mdW5jKSBcCisgICAgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9ERUxBWV8xKCBcCisgICAgICAgICAgaSBcCisgICAgICAgICwgQk9PU1RfTVBMX1BQX1NVQihCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZLGkpIFwKKyAgICAgICAgLCBwYXJhbSBcCisgICAgICAgICwgdmFsdWVfZnVuYyBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0RFTEFZXzEoaSwgbiwgcGFyYW0sIHZhbHVlX2Z1bmMpIFwKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0RFTEFZXzIoaSxuLHBhcmFtLHZhbHVlX2Z1bmMpIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9ERUxBWV8yKGksIG4sIHBhcmFtLCB2YWx1ZV9mdW5jKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQU5EKGksbikpIFwKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXyMjaShuLHBhcmFtLHZhbHVlX2Z1bmMpIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF8wKGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocCMjMSB2KCkscCMjMiB2KCkscCMjMyB2KCkscCMjNCB2KCkscCMjNSB2KCkscCMjNiB2KCkscCMjNyB2KCkscCMjOCB2KCkscCMjOSB2KCkpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfMShpLHAsdikgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzIgdigpLHAjIzMgdigpLHAjIzQgdigpLHAjIzUgdigpLHAjIzYgdigpLHAjIzcgdigpLHAjIzggdigpLHAjIzkgdigpLHAxKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzIoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyMzIHYoKSxwIyM0IHYoKSxwIyM1IHYoKSxwIyM2IHYoKSxwIyM3IHYoKSxwIyM4IHYoKSxwIyM5IHYoKSxwMSxwMikKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF8zKGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocCMjNCB2KCkscCMjNSB2KCkscCMjNiB2KCkscCMjNyB2KCkscCMjOCB2KCkscCMjOSB2KCkscDEscDIscDMpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfNChpLHAsdikgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzUgdigpLHAjIzYgdigpLHAjIzcgdigpLHAjIzggdigpLHAjIzkgdigpLHAxLHAyLHAzLHA0KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzUoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyM2IHYoKSxwIyM3IHYoKSxwIyM4IHYoKSxwIyM5IHYoKSxwMSxwMixwMyxwNCxwNSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF82KGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocCMjNyB2KCkscCMjOCB2KCkscCMjOSB2KCkscDEscDIscDMscDQscDUscDYpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfNyhpLHAsdikgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzggdigpLHAjIzkgdigpLHAxLHAyLHAzLHA0LHA1LHA2LHA3KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzgoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyM5IHYoKSxwMSxwMixwMyxwNCxwNSxwNixwNyxwOCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF85KGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocDEscDIscDMscDQscDUscDYscDcscDgscDkpCisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL3N1Yi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BVVhfVEFJTF9QQVJBTV9GVU5DKHVudXNlZCwgaSwgb3ApIFwKKyAgICAsIEJPT1NUX1BQX0NBVCggXAorICAgICAgICAgIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMSwgb3ApIFwKKyAgICAgICAgLCBCT09TVF9QUF9BRERfRCgxLCBpLCBCT09TVF9QUF9JTkMoQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAwLCBvcCkpKSBcCisgICAgICAgICkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBvcCkoKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfSU1QTChpLCBwYXJhbSwgdmFsdWVfZnVuYykgXAorICAgIEJPT1NUX1BQX1JFUEVBVCggXAorICAgICAgICAgIEJPT1NUX1BQX1NVQl9EKDEsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIGkpIFwKKyAgICAgICAgLCBCT09TVF9NUExfUFBfQVVYX1RBSUxfUEFSQU1fRlVOQyBcCisgICAgICAgICwgKGksIHBhcmFtLCB2YWx1ZV9mdW5jKSBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUworCisjZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUwoaSwgcGFyYW0sIHZhbHVlKSBcCisgICAgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9JTVBMKGksIHBhcmFtLCBCT09TVF9QUF9JREVOVElUWSg9dmFsdWUpKSBcCisgICAgLyoqLworCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX05FU1RFRF9ERUZfUEFSQU1TX1RBSUwoaSwgcGFyYW0sIHZhbHVlKSBcCisgICAgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9JTVBMKGksIHBhcmFtLCBCT09TVF9QUF9JREVOVElUWSg9dmFsdWUpKSBcCisgICAgLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX05FU1RFRF9ERUZfUEFSQU1TX1RBSUwoaSwgcGFyYW0sIHZhbHVlKSBcCisgICAgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9JTVBMKGksIHBhcmFtLCBCT09TVF9QUF9FTVBUWSkgXAorICAgIC8qKi8KKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfREVGX1BBUkFNU19UQUlMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZGVmYXVsdF9wYXJhbXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZGVmYXVsdF9wYXJhbXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MmQ2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHAKQEAgLTAsMCArMSw2NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX0RFRkFVTFRfUEFSQU1TX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9ERUZBVUxUX1BBUkFNU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGRlZmF1bHRfcGFyYW1zLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisKKy8vIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUygwLFQsaW50KTogPG5vdGhpbmc+CisvLyBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVMoMSxULGludCk6IFQxID0gaW50CisvLyBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVMoMixULGludCk6IFQxID0gaW50LCBUMiA9IGludAorLy8gQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TKG4sVCxpbnQpOiBUMSA9IGludCwgVDIgPSBpbnQsIC4uLCBUbiA9IGludAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUykKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyhuLHAsdikgXAorICAgIEJPT1NUX1BQX0NBVChCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfLG4pKHAsdikgXAorICAgIC8qKi8KKyAgICAKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TXzAocCx2KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfMShwLHYpIHAjIzE9dgorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfMihwLHYpIHAjIzE9dixwIyMyPXYKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TXzMocCx2KSBwIyMxPXYscCMjMj12LHAjIzM9dgorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfNChwLHYpIHAjIzE9dixwIyMyPXYscCMjMz12LHAjIzQ9dgorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfNShwLHYpIHAjIzE9dixwIyMyPXYscCMjMz12LHAjIzQ9dixwIyM1PXYKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TXzYocCx2KSBwIyMxPXYscCMjMj12LHAjIzM9dixwIyM0PXYscCMjNT12LHAjIzY9dgorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfNyhwLHYpIHAjIzE9dixwIyMyPXYscCMjMz12LHAjIzQ9dixwIyM1PXYscCMjNj12LHAjIzc9dgorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVNfOChwLHYpIHAjIzE9dixwIyMyPXYscCMjMz12LHAjIzQ9dixwIyM1PXYscCMjNj12LHAjIzc9dixwIyM4PXYKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TXzkocCx2KSBwIyMxPXYscCMjMj12LHAjIzM9dixwIyM0PXYscCMjNT12LHAjIzY9dixwIyM3PXYscCMjOD12LHAjIzk9dgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FVWF9ERUZBVUxUX1BBUkFNX0ZVTkModW51c2VkLCBpLCBwdikgXAorICAgIEJPT1NUX1BQX0NPTU1BX0lGKGkpIFwKKyAgICBCT09TVF9QUF9DQVQoIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwwLHB2KSwgQk9PU1RfUFBfSU5DKGkpICkgXAorICAgICAgICA9IEJPT1NUX1BQX1RVUExFX0VMRU0oMiwxLHB2KSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyhuLCBwYXJhbSwgdmFsdWUpIFwKKyAgICBCT09TVF9QUF9SRVBFQVQoIFwKKyAgICAgICAgICBuIFwKKyAgICAgICAgLCBCT09TVF9NUExfUFBfQVVYX0RFRkFVTFRfUEFSQU1fRlVOQyBcCisgICAgICAgICwgKHBhcmFtLHZhbHVlKSBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9ERUZBVUxUX1BBUkFNU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE2NjBiOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwCkBAIC0wLDAgKzEsNjIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9FTlVNX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9FTlVNX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZW51bS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9wcmVwcm9jZXNzb3IuaHBwPgorCisvLyBCT09TVF9NUExfUFBfRU5VTSgwLGludCk6IDxub3RoaW5nPgorLy8gQk9PU1RfTVBMX1BQX0VOVU0oMSxpbnQpOiBpbnQKKy8vIEJPT1NUX01QTF9QUF9FTlVNKDIsaW50KTogaW50LCBpbnQKKy8vIEJPT1NUX01QTF9QUF9FTlVNKG4saW50KTogaW50LCBpbnQsIC4uLCBpbnQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fT1dOX1BQX1BSSU1JVElWRVMpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTShuLCBwYXJhbSkgXAorICAgIEJPT1NUX1BQX0NBVChCT09TVF9NUExfUFBfRU5VTV8sbikocGFyYW0pIFwKKyAgICAvKiovCisgICAgCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzAocCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VOVU1fMShwKSBwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzIocCkgcCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzMocCkgcCxwLHAKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VOVU1fNChwKSBwLHAscCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzUocCkgcCxwLHAscCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzYocCkgcCxwLHAscCxwLHAKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VOVU1fNyhwKSBwLHAscCxwLHAscCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzgocCkgcCxwLHAscCxwLHAscCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzkocCkgcCxwLHAscCxwLHAscCxwLHAKKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FVWF9FTlVNX0ZVTkModW51c2VkLCBpLCBwYXJhbSkgXAorICAgIEJPT1NUX1BQX0NPTU1BX0lGKGkpIHBhcmFtIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VOVU0obiwgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9SRVBFQVQoIFwKKyAgICAgICAgICBuIFwKKyAgICAgICAgLCBCT09TVF9NUExfUFBfQVVYX0VOVU1fRlVOQyBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfRU5VTV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2V4dF9wYXJhbXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZXh0X3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YwMWIxYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2V4dF9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsNzggQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9FWFRfUEFSQU1TX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9FWFRfUEFSQU1TX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZXh0X3BhcmFtcy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9wcmVwcm9jZXNzb3IuaHBwPgorCisvLyBCT09TVF9NUExfUFBfRVhUX1BBUkFNUygyLDIsVCk6IDxub3RoaW5nPgorLy8gQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVMoMiwzLFQpOiBUMgorLy8gQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVMoMiw0LFQpOiBUMiwgVDMKKy8vIEJPT1NUX01QTF9QUF9FWFRfUEFSQU1TKDIsbixUKTogVDIsIFQzLCAuLiwgVG4tMQorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUykKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9maWx0ZXJfcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3Ivc3ViLmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNUyhpLGoscCkgXAorICAgIEJPT1NUX01QTF9QUF9FWFRfUEFSQU1TX0RFTEFZXzEoaSxCT09TVF9NUExfUFBfU1VCKGosaSkscCkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU19ERUxBWV8xKGksbixwKSBcCisgICAgQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVNfREVMQVlfMihpLG4scCkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU19ERUxBWV8yKGksbixwKSBcCisgICAgQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVNfIyNpKG4scCkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU18xKGkscCkgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzEscCMjMixwIyMzLHAjIzQscCMjNSxwIyM2LHAjIzcscCMjOCxwIyM5KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU18yKGkscCkgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzIscCMjMyxwIyM0LHAjIzUscCMjNixwIyM3LHAjIzgscCMjOSxwMSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVNfMyhpLHApIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyMzLHAjIzQscCMjNSxwIyM2LHAjIzcscCMjOCxwIyM5LHAxLHAyKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU180KGkscCkgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzQscCMjNSxwIyM2LHAjIzcscCMjOCxwIyM5LHAxLHAyLHAzKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU181KGkscCkgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzUscCMjNixwIyM3LHAjIzgscCMjOSxwMSxwMixwMyxwNCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVNfNihpLHApIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyM2LHAjIzcscCMjOCxwIyM5LHAxLHAyLHAzLHA0LHA1KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU183KGkscCkgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzcscCMjOCxwIyM5LHAxLHAyLHAzLHA0LHA1LHA2KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRVhUX1BBUkFNU184KGkscCkgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzgscCMjOSxwMSxwMixwMyxwNCxwNSxwNixwNykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVNfOShpLHApIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyM5LHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4KQorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvYWRkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BVVhfRVhUX1BBUkFNX0ZVTkModW51c2VkLCBpLCBvcCkgXAorICAgIEJPT1NUX1BQX0NPTU1BX0lGKGkpIFwKKyAgICBCT09TVF9QUF9DQVQoIFwKKyAgICAgICAgICBCT09TVF9QUF9UVVBMRV9FTEVNKDIsMSxvcCkgXAorICAgICAgICAsIEJPT1NUX1BQX0FERF9EKDEsIGksIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwwLG9wKSkgXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VYVF9QQVJBTVMoaSwgaiwgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9SRVBFQVQoIFwKKyAgICAgICAgICBCT09TVF9QUF9TVUJfRCgxLGosaSkgXAorICAgICAgICAsIEJPT1NUX01QTF9QUF9BVVhfRVhUX1BBUkFNX0ZVTkMgXAorICAgICAgICAsIChpLHBhcmFtKSBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9FWFRfUEFSQU1TX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZmlsdGVyX3BhcmFtcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9maWx0ZXJfcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWZkOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZmlsdGVyX3BhcmFtcy5ocHAKQEAgLTAsMCArMSwyOCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX0ZJTFRFUl9QQVJBTVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX0ZJTFRFUl9QQVJBTVNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBmaWx0ZXJfcGFyYW1zLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzAocDEscDIscDMscDQscDUscDYscDcscDgscDkpIAorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18xKHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMQorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18yKHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMgorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18zKHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMworI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU180KHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMyxwNAorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU181KHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMyxwNCxwNQorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU182KHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMyxwNCxwNSxwNgorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU183KHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMyxwNCxwNSxwNixwNworI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU184KHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMyxwNCxwNSxwNixwNyxwOAorI2RlZmluZSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU185KHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5KSBwMSxwMixwMyxwNCxwNSxwNixwNyxwOCxwOQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfRklMVEVSX1BBUkFNU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYTQzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsNjUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9QQVJBTVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1BBUkFNU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHBhcmFtcy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9wcmVwcm9jZXNzb3IuaHBwPgorCisvLyBCT09TVF9NUExfUFBfUEFSQU1TKDAsVCk6IDxub3RoaW5nPgorLy8gQk9PU1RfTVBMX1BQX1BBUkFNUygxLFQpOiBUMQorLy8gQk9PU1RfTVBMX1BQX1BBUkFNUygyLFQpOiBUMSwgVDIKKy8vIEJPT1NUX01QTF9QUF9QQVJBTVMobixUKTogVDEsIFQyLCAuLiwgVG4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fT1dOX1BQX1BSSU1JVElWRVMpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TKG4scCkgXAorICAgIEJPT1NUX1BQX0NBVChCT09TVF9NUExfUFBfUEFSQU1TXyxuKShwKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfMChwKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TXzEocCkgcCMjMQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TXzIocCkgcCMjMSxwIyMyCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfMyhwKSBwIyMxLHAjIzIscCMjMworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TXzQocCkgcCMjMSxwIyMyLHAjIzMscCMjNAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TXzUocCkgcCMjMSxwIyMyLHAjIzMscCMjNCxwIyM1CisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfNihwKSBwIyMxLHAjIzIscCMjMyxwIyM0LHAjIzUscCMjNgorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TXzcocCkgcCMjMSxwIyMyLHAjIzMscCMjNCxwIyM1LHAjIzYscCMjNworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TXzgocCkgcCMjMSxwIyMyLHAjIzMscCMjNCxwIyM1LHAjIzYscCMjNyxwIyM4CisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfOShwKSBwIyMxLHAjIzIscCMjMyxwIyM0LHAjIzUscCMjNixwIyM3LHAjIzgscCMjOQorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfQVVYX1BBUkFNX0ZVTkModW51c2VkLCBpLCBwYXJhbSkgXAorICAgIEJPT1NUX1BQX0NPTU1BX0lGKGkpIFwKKyAgICBCT09TVF9QUF9DQVQocGFyYW0sIEJPT1NUX1BQX0lOQyhpKSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfUEFSQU1TKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfUkVQRUFUKCBcCisgICAgICAgICAgbiBcCisgICAgICAgICwgQk9PU1RfTVBMX1BQX0FVWF9QQVJBTV9GVU5DIFwKKyAgICAgICAgLCBwYXJhbSBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworI2VuZGlmIAorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfUEFSQU1TX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFydGlhbF9zcGVjX3BhcmFtcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJ0aWFsX3NwZWNfcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjEzMjM1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFydGlhbF9zcGVjX3BhcmFtcy5ocHAKQEAgLTAsMCArMSwzMiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1BBUlRJQUxfU1BFQ19QQVJBTVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1BBUlRJQUxfU1BFQ19QQVJBTVNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwYXJ0aWFsX3NwZWNfcGFyYW1zLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9zdWIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1BBUlRJQUxfU1BFQ19QQVJBTVMobiwgcGFyYW0sIGRlZikgXAorQk9PU1RfTVBMX1BQX1BBUkFNUyhuLCBwYXJhbSkgXAorQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfTVBMX1BQX1NVQihCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZLG4pKSBcCitCT09TVF9NUExfUFBfRU5VTSggXAorICAgICAgQk9PU1RfTVBMX1BQX1NVQihCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZLG4pIFwKKyAgICAsIGRlZiBcCisgICAgKSBcCisvKiovCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9QQVJUSUFMX1NQRUNfUEFSQU1TX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcmFuZ2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcmFuZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5N2M5ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9yYW5nZS5ocHAKQEAgLTAsMCArMSwyMyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1JBTkdFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9SQU5HRV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHJhbmdlLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zdWJzZXEuaHBwPgorCisjZGVmaW5lIEJPT1NUX01QTF9QUF9SQU5HRShmaXJzdCwgbGVuZ3RoKSBcCisgICAgQk9PU1RfUFBfU0VRX1NVQlNFUSgoMCkoMSkoMikoMykoNCkoNSkoNikoNykoOCkoOSksIGZpcnN0LCBsZW5ndGgpIFwKKy8qKi8KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1JBTkdFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIzNjEzNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHAKQEAgLTAsMCArMSw1MSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1JFUEVBVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfUkVQRUFUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcmVwZWF0LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX09XTl9QUF9QUklNSVRJVkVTKQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVChuLGYscGFyYW0pIFwKKyAgICBCT09TVF9QUF9DQVQoQk9PU1RfTVBMX1BQX1JFUEVBVF8sbikoZixwYXJhbSkgXAorICAgIC8qKi8KKyAgICAKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF8wKGYscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF8xKGYscCkgZigwLDAscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF8yKGYscCkgZigwLDAscCkgZigwLDEscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF8zKGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF80KGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkgZigwLDMscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF81KGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkgZigwLDMscCkgZigwLDQscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF82KGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkgZigwLDMscCkgZigwLDQscCkgZigwLDUscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF83KGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkgZigwLDMscCkgZigwLDQscCkgZigwLDUscCkgZigwLDYscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF84KGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkgZigwLDMscCkgZigwLDQscCkgZigwLDUscCkgZigwLDYscCkgZigwLDcscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF85KGYscCkgZigwLDAscCkgZigwLDEscCkgZigwLDIscCkgZigwLDMscCkgZigwLDQscCkgZigwLDUscCkgZigwLDYscCkgZigwLDcscCkgZigwLDgscCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF8xMChmLHApIGYoMCwwLHApIGYoMCwxLHApIGYoMCwyLHApIGYoMCwzLHApIGYoMCw0LHApIGYoMCw1LHApIGYoMCw2LHApIGYoMCw3LHApIGYoMCw4LHApIGYoMCw5LHApCisKKyNlbHNlIAorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVChuLGYscGFyYW0pIFwKKyAgICBCT09TVF9QUF9SRVBFQVQobixmLHBhcmFtKSBcCisgICAgLyoqLworCisjZW5kaWYgCisKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1JFUEVBVF9JREVOVElUWV9GVU5DKHVudXNlZDEsIHVudXNlZDIsIHgpIHgKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1JFUEVBVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3N1Yi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9zdWIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YmE1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9zdWIuaHBwCkBAIC0wLDAgKzEsNjUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9TVUJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1NVQl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHN1Yi5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9wcmVwcm9jZXNzb3IuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUykKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci90dXBsZS5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfQlJPS0VOX1BQX01BQ1JPX0VYUEFOU0lPTikKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCKGksaikgXAorICAgIEJPT1NUX01QTF9QUF9TVUJfREVMQVkoaSxqKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfREVMQVkoaSxqKSBcCisgICAgQk9PU1RfUFBfQ0FUKEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXyMjaSxCT09TVF9NUExfUFBfU1VCXyMjaikgXAorICAgIC8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUIoaSxqKSBcCisgICAgQk9PU1RfTVBMX1BQX1NVQl9ERUxBWShpLGopIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl9ERUxBWShpLGopIFwKKyAgICBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV8jI2kgQk9PU1RfTVBMX1BQX1NVQl8jI2ogXAorICAgIC8qKi8KKyNlbmRpZgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfMCAoMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl8xICgwLDAsMSwyLDMsNCw1LDYsNyw4LDkpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfMiAoMCwwLDAsMSwyLDMsNCw1LDYsNyw4KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzMgKDAsMCwwLDAsMSwyLDMsNCw1LDYsNykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl80ICgwLDAsMCwwLDAsMSwyLDMsNCw1LDYpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfNSAoMCwwLDAsMCwwLDAsMSwyLDMsNCw1KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzYgKDAsMCwwLDAsMCwwLDAsMSwyLDMsNCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl83ICgwLDAsMCwwLDAsMCwwLDAsMSwyLDMpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfOCAoMCwwLDAsMCwwLDAsMCwwLDAsMSwyKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzkgKDAsMCwwLDAsMCwwLDAsMCwwLDAsMSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl8xMCAoMCwwLDAsMCwwLDAsMCwwLDAsMCwwKQorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvc3ViLmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCKGksaikgXAorICAgIEJPT1NUX1BQX1NVQihpLGopIFwKKyAgICAvKiovCisgICAgCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1NVQl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3R1cGxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3R1cGxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDU5NDA3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvdHVwbGUuaHBwCkBAIC0wLDAgKzEsMjkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9UVVBMRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfVFVQTEVfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB0dXBsZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV8wKGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTAKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fMShlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGUxCisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzIoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlMgorI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV8zKGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTMKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fNChlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGU0CisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzUoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlNQorI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV82KGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTYKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fNyhlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGU3CisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzgoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlOAorI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV85KGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTkKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fMTAoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlMTAKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1RVUExFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wdXNoX2JhY2tfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3B1c2hfYmFja19pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjIzNGFkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wdXNoX2JhY2tfaW1wbC5ocHAKQEAgLTAsMCArMSw3MCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFVTSF9CQUNLX0lNUExfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfUFVTSF9CQUNLX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwOAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwdXNoX2JhY2tfaW1wbC5ocHAgNTU2NzkgMjAwOS0wOC0yMCAwNzo1MDoxNlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA5LTA4LTIwIDAwOjUwOjE2IC0wNzAwIChUaHUsIDIwIEF1ZyAyMDA5KSAkCisvLyAkUmV2aXNpb246IDU1Njc5ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2JhY2tfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9oYXNfdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdHJhaXRzX2xhbWJkYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZm9yd2FyZGluZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3N0cnVjdCBoYXNfcHVzaF9iYWNrX2FyZyB7fTsKKworLy8gYWd1cnQgMDUvZmViLzA0OiBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uOyB0aGUgc3R1YiBkZWZpbml0aW9uIGlzIG5lZWRlZCAKKy8vIHRvIGVuYWJsZSB0aGUgZGVmYXVsdCAnaGFzX3B1c2hfYmFjaycgaW1wbGVtZW50YXRpb24gYmVsb3cKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IHB1c2hfYmFja19pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICAvLyBzaG91bGQgYmUgaW5zdGFudGlhdGVkIG9ubHkgaW4gdGhlIGNvbnRleHQgb2YgJ2hhc19wdXNoX2JhY2tfaW1wbCc7CisgICAgICAgIC8vIGlmIHlvdSd2ZSBnb3QgYW4gYXNzZXJ0IGhlcmUsIHlvdSBhcmUgcmVxdWVzdGluZyBhICdwdXNoX2JhY2snIAorICAgICAgICAvLyBzcGVjaWFsaXphdGlvbiB0aGF0IGRvZXNuJ3QgZXhpc3QuCisgICAgICAgIEJPT1NUX01QTF9BU1NFUlRfTVNHKAorICAgICAgICAgICAgICAoIG5kbmJvb3N0Ojppc19zYW1lPCBULCBoYXNfcHVzaF9iYWNrX2FyZyA+Ojp2YWx1ZSApCisgICAgICAgICAgICAsIFJFUVVFU1RFRF9QVVNIX0JBQ0tfU1BFQ0lBTElaQVRJT05fRk9SX1NFUVVFTkNFX0RPRVNfTk9UX0VYSVNUCisgICAgICAgICAgICAsICggU2VxdWVuY2UgKQorICAgICAgICAgICAgKTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgaGFzX3B1c2hfYmFja19pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcSA+IHN0cnVjdCBhcHBseQorI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX0ZPUldBUkRJTkcpCisgICAgICAgIDogYXV4OjpoYXNfdHlwZTwgcHVzaF9iYWNrPCBTZXEsIGhhc19wdXNoX2JhY2tfYXJnID4gPgorICAgIHsKKyNlbHNlCisgICAgeworICAgICAgICB0eXBlZGVmIGF1eDo6aGFzX3R5cGU8IHB1c2hfYmFjazwgU2VxLCBoYXNfcHVzaF9iYWNrX2FyZyA+ID4gdHlwZTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gCisgICAgICAgICAgICAgIChhdXg6Omhhc190eXBlPCBwdXNoX2JhY2s8IFNlcSwgaGFzX3B1c2hfYmFja19hcmcgPiA+Ojp2YWx1ZSkKKyAgICAgICAgICAgICk7CisjZW5kaWYKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FMR09SSVRNX1RSQUlUU19MQU1CREFfU1BFQygyLCBwdXNoX2JhY2tfaW1wbCkKK0JPT1NUX01QTF9BTEdPUklUTV9UUkFJVFNfTEFNQkRBX1NQRUMoMSwgaGFzX3B1c2hfYmFja19pbXBsKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9QVVNIX0JBQ0tfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9mcm9udF9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9mcm9udF9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWY1M2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9wdXNoX2Zyb250X2ltcGwuaHBwCkBAIC0wLDAgKzEsNzEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1BVU0hfRlJPTlRfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QVVNIX0ZST05UX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwOAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwdXNoX2Zyb250X2ltcGwuaHBwIDU1Njc5IDIwMDktMDgtMjAgMDc6NTA6MTZaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOS0wOC0yMCAwMDo1MDoxNiAtMDcwMCAoVGh1LCAyMCBBdWcgMjAwOSkgJAorLy8gJFJldmlzaW9uOiA1NTY3OSAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcHVzaF9mcm9udF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2hhc190eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90cmFpdHNfbGFtYmRhX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9mb3J3YXJkaW5nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworc3RydWN0IGhhc19wdXNoX2Zyb250X2FyZyB7fTsKKworLy8gYWd1cnQgMDUvZmViLzA0OiBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uOyB0aGUgc3R1YiBkZWZpbml0aW9uIGlzIG5lZWRlZCAKKy8vIHRvIGVuYWJsZSB0aGUgZGVmYXVsdCAnaGFzX3B1c2hfZnJvbnQnIGltcGxlbWVudGF0aW9uIGJlbG93CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgLy8gc2hvdWxkIGJlIGluc3RhbnRpYXRlZCBvbmx5IGluIHRoZSBjb250ZXh0IG9mICdoYXNfcHVzaF9mcm9udF9pbXBsJzsKKyAgICAgICAgLy8gaWYgeW91J3ZlIGdvdCBhbiBhc3NlcnQgaGVyZSwgeW91IGFyZSByZXF1ZXN0aW5nIGEgJ3B1c2hfZnJvbnQnIAorICAgICAgICAvLyBzcGVjaWFsaXphdGlvbiB0aGF0IGRvZXNuJ3QgZXhpc3QuCisgICAgICAgIEJPT1NUX01QTF9BU1NFUlRfTVNHKAorICAgICAgICAgICAgICAoIG5kbmJvb3N0Ojppc19zYW1lPCBULCBoYXNfcHVzaF9mcm9udF9hcmcgPjo6dmFsdWUgKQorICAgICAgICAgICAgLCBSRVFVRVNURURfUFVTSF9GUk9OVF9TUEVDSUFMSVpBVElPTl9GT1JfU0VRVUVOQ0VfRE9FU19OT1RfRVhJU1QKKyAgICAgICAgICAgICwgKCBTZXF1ZW5jZSApCisgICAgICAgICAgICApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBoYXNfcHVzaF9mcm9udF9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcSA+IHN0cnVjdCBhcHBseQorI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX0ZPUldBUkRJTkcpCisgICAgICAgIDogYXV4OjpoYXNfdHlwZTwgcHVzaF9mcm9udDwgU2VxLCBoYXNfcHVzaF9mcm9udF9hcmcgPiA+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYXV4OjpoYXNfdHlwZTwgcHVzaF9mcm9udDwgU2VxLCBoYXNfcHVzaF9mcm9udF9hcmcgPiA+IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgICAgICAgICAoYXV4OjpoYXNfdHlwZTwgcHVzaF9mcm9udDwgU2VxLCBoYXNfcHVzaF9mcm9udF9hcmcgPiA+Ojp2YWx1ZSkKKyAgICAgICAgICAgICk7CisjZW5kaWYKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FMR09SSVRNX1RSQUlUU19MQU1CREFfU1BFQygyLCBwdXNoX2Zyb250X2ltcGwpCitCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDKDEsIGhhc19wdXNoX2Zyb250X2ltcGwpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BVU0hfRlJPTlRfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2ZvbGRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y1ZTg1OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCkBAIC0wLDAgKzEsNDQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1JFVkVSU0VfRk9MRF9JTVBMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1JFVkVSU0VfRk9MRF9JTVBMX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcmV2ZXJzZV9mb2xkX2ltcGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0X3ByaW9yLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvZGVyZWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19OT05UWVBFX1RFTVBMQVRFX1BBUlRJQUxfU1BFQykKKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjICAgZW5kaWYKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgcmV2ZXJzZV9mb2xkX2ltcGwuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9GT0xEX0lNUExfT1AoaXRlcikgdHlwZW5hbWUgZGVyZWY8aXRlcj46OnR5cGUKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FX1BSRUZJWCByZXZlcnNlX2ZvbGQKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2ZvbGRfaW1wbF9ib2R5LmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1JFVkVSU0VfRk9MRF9JTVBMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9yZXZlcnNlX2ZvbGRfaW1wbF9ib2R5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGxfYm9keS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM4ZTYzZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGxfYm9keS5ocHAKQEAgLTAsMCArMSw0MTIgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTiEKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHJldmVyc2VfZm9sZF9pbXBsX2JvZHkuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL3Vucm9sbGluZy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVjLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworLy8gbG9jYWwgbWFjcm9zLCAjdW5kZWYtaW5lZCBhdCB0aGUgZW5kIG9mIHRoZSBoZWFkZXIKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfSVRFUl9GT0xEX0ZPUldBUkRfU1RFUCh1bnVzZWQsIG5fLCB1bnVzZWQyKSBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhcHBseTI8IFwKKyAgICAgICAgICBGb3J3YXJkT3AgXAorICAgICAgICAsIEJPT1NUX1BQX0NBVChmd2Rfc3RhdGUsbl8pIFwKKyAgICAgICAgLCBBVVg3NzgwNzZfRk9MRF9JTVBMX09QKEJPT1NUX1BQX0NBVChpdGVyLG5fKSkgXAorICAgICAgICA+Ojp0eXBlIEJPT1NUX1BQX0NBVChmd2Rfc3RhdGUsQk9PU1RfUFBfSU5DKG5fKSk7IFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bmV4dDxCT09TVF9QUF9DQVQoaXRlcixuXyk+Ojp0eXBlIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKGl0ZXIsQk9PU1RfUFBfSU5DKG5fKSk7IFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lURVJfRk9MRF9CQUNLV0FSRF9TVEVQX0ZVTkMobl8pIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFwcGx5MjwgXAorICAgICAgICAgIEJhY2t3YXJkT3AgXAorICAgICAgICAsIEJPT1NUX1BQX0NBVChia3dkX3N0YXRlLG5fKSBcCisgICAgICAgICwgQVVYNzc4MDc2X0ZPTERfSU1QTF9PUChCT09TVF9QUF9DQVQoaXRlcixCT09TVF9QUF9ERUMobl8pKSkgXAorICAgICAgICA+Ojp0eXBlIEJPT1NUX1BQX0NBVChia3dkX3N0YXRlLEJPT1NUX1BQX0RFQyhuXykpOyBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9JVEVSX0ZPTERfQkFDS1dBUkRfU1RFUCh1bnVzZWQsIG5fLCBqKSBcCisgICAgQVVYNzc4MDc2X0lURVJfRk9MRF9CQUNLV0FSRF9TVEVQX0ZVTkMoIFwKKyAgICAgICAgICBCT09TVF9QUF9TVUJfRCgxLGosbl8pIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9GSVJTVF9CQUNLV0FSRF9TVEFURV9UWVBFREVGKG5fKSBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6OnN0YXRlIEJPT1NUX1BQX0NBVChia3dkX3N0YXRlLG5fKTsKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FIFwKKyAgICBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FX1BSRUZJWCxfaW1wbCkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfRk9MRF9DSFVOS19OQU1FIFwKKyAgICBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FX1BSRUZJWCxfY2h1bmspIFwKKyAgICAvKiovCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8vIGZvcndhcmQgZGVjbGFyYXRpb24KK3RlbXBsYXRlPAorICAgICAgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgTikKKyAgICAsIHR5cGVuYW1lIEZpcnN0CisgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgLCB0eXBlbmFtZSBTdGF0ZQorICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgPiAKK3N0cnVjdCBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUU7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19OT05UWVBFX1RFTVBMQVRFX1BBUlRJQUxfU1BFQykKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgwLCBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HLCA8bmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGxfYm9keS5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisvLyBpbXBsZW1lbnRhdGlvbiBmb3IgTiB0aGF0IGV4Y2VlZHMgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORwordGVtcGxhdGU8CisgICAgICBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBOKQorICAgICwgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRQoreworICAgIHR5cGVkZWYgRmlyc3QgaXRlcjA7CisgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworCisgICAgQk9PU1RfTVBMX1BQX1JFUEVBVCgKKyAgICAgICAgICBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICwgQVVYNzc4MDc2X0lURVJfRk9MRF9GT1JXQVJEX1NURVAKKyAgICAgICAgLCB1bnVzZWQKKyAgICAgICAgKQorCisgICAgdHlwZWRlZiBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUU8CisgICAgICAgICAgKCAoTiAtIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcpIDwgMCA/IDAgOiBOIC0gQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORyApCisgICAgICAgICwgQk9PU1RfUFBfQ0FUKGl0ZXIsQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORykKKyAgICAgICAgLCBMYXN0CisgICAgICAgICwgQk9PU1RfUFBfQ0FUKGZ3ZF9zdGF0ZSxCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HKQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisgICAgICAgIAorICAgIEFVWDc3ODA3Nl9GSVJTVF9CQUNLV0FSRF9TVEFURV9UWVBFREVGKEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcpCisKKyAgICBCT09TVF9NUExfUFBfUkVQRUFUKAorICAgICAgICAgIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcKKyAgICAgICAgLCBBVVg3NzgwNzZfSVRFUl9GT0xEX0JBQ0tXQVJEX1NURVAKKyAgICAgICAgLCBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICkKKworICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworfTsKKworLy8gZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gZm9yIHNlcXVlbmNlcyBvZiB1bmtub3duIHNpemUKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRTwtMSxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wPgoreworICAgIHR5cGVkZWYgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FPAorICAgICAgICAgIC0xCisgICAgICAgICwgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLEFVWDc3ODA3Nl9GT0xEX0lNUExfT1AoRmlyc3QpPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCBBVVg3NzgwNzZfRk9MRF9JTVBMX09QKEZpcnN0KQorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRTwtMSxMYXN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3A+Cit7CisgICAgdHlwZWRlZiBTdGF0ZSBzdGF0ZTsKKyAgICB0eXBlZGVmIExhc3QgaXRlcmF0b3I7Cit9OworCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBOKSA+CitzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfQ0hVTktfTkFNRTsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgwLCBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HLCA8bmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGxfYm9keS5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisvLyBpbXBsZW1lbnRhdGlvbiBmb3IgTiB0aGF0IGV4Y2VlZHMgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pID4gCitzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfQ0hVTktfTkFNRQoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEZpcnN0CisgICAgICAgICwgdHlwZW5hbWUgTGFzdAorICAgICAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgQmFja3dhcmRPcAorICAgICAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgICAgICA+IAorICAgIHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEZpcnN0IGl0ZXIwOworICAgICAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisKKyAgICAgICAgQk9PU1RfTVBMX1BQX1JFUEVBVCgKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORworICAgICAgICAgICAgLCBBVVg3NzgwNzZfSVRFUl9GT0xEX0ZPUldBUkRfU1RFUAorICAgICAgICAgICAgLCB1bnVzZWQKKyAgICAgICAgICAgICkKKworICAgICAgICB0eXBlZGVmIEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRTwKKyAgICAgICAgICAgICAgKCAoTiAtIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcpIDwgMCA/IDAgOiBOIC0gQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORyApCisgICAgICAgICAgICAsIEJPT1NUX1BQX0NBVChpdGVyLEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcpCisgICAgICAgICAgICAsIExhc3QKKyAgICAgICAgICAgICwgQk9PU1RfUFBfQ0FUKGZ3ZF9zdGF0ZSxCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HKQorICAgICAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICAgICAgPiBuZXN0ZWRfY2h1bms7CisgICAgICAgICAgICAKKyAgICAgICAgQVVYNzc4MDc2X0ZJUlNUX0JBQ0tXQVJEX1NUQVRFX1RZUEVERUYoQk9PU1RfTVBMX0xJTUlUX1VOUk9MTElORykKKworICAgICAgICBCT09TVF9NUExfUFBfUkVQRUFUKAorICAgICAgICAgICAgICBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICAgICAsIEFVWDc3ODA3Nl9JVEVSX0ZPTERfQkFDS1dBUkRfU1RFUAorICAgICAgICAgICAgLCBCT09TVF9NUExfTElNSVRfVU5ST0xMSU5HCisgICAgICAgICAgICApCisKKyAgICAgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfY2h1bms6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgIH07Cit9OworCisvLyBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBmb3Igc2VxdWVuY2VzIG9mIHVua25vd24gc2l6ZQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4gCitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9GT0xEX0lNUExfTkFNRV9QUkVGSVgsX3N0ZXApOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9udWxsX3N0ZXApCit7CisgICAgdHlwZWRlZiBMYXN0IGl0ZXJhdG9yOworICAgIHR5cGVkZWYgU3RhdGUgc3RhdGU7Cit9OworCit0ZW1wbGF0ZTw+IAorc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUU8LTE+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4gCisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaWZfPAorICAgICAgICAgICAgICB0eXBlbmFtZSBpc19zYW1lPEZpcnN0LExhc3Q+Ojp0eXBlCisgICAgICAgICAgICAsIEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9udWxsX3N0ZXApPExhc3QsU3RhdGU+CisgICAgICAgICAgICAsIEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9zdGVwKTxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wPgorICAgICAgICAgICAgPjo6dHlwZSByZXNfOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6c3RhdGUgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzXzo6aXRlcmF0b3IgaXRlcmF0b3I7CisgICAgfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzYwX0VUSV9CVUcpCisgICAgLy8vIEVUSSB3b3JrYXJvdW5kCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcmVzdWx0XzxpbnQsaW50LGludCxpbnQsaW50PgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBpbnQgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgaW50IGl0ZXJhdG9yOworICAgIH07CisjZW5kaWYKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+IAorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYLF9zdGVwKQoreworICAgIHR5cGVkZWYgQVVYNzc4MDc2X0ZPTERfQ0hVTktfTkFNRTwtMT46OnRlbXBsYXRlIHJlc3VsdF88CisgICAgICAgICAgdHlwZW5hbWUgbXBsOjpuZXh0PEZpcnN0Pjo6dHlwZQorICAgICAgICAsIExhc3QKKyAgICAgICAgLCB0eXBlbmFtZSBhcHBseTI8Rm9yd2FyZE9wLFN0YXRlLEFVWDc3ODA3Nl9GT0xEX0lNUExfT1AoRmlyc3QpPjo6dHlwZQorICAgICAgICAsIEJhY2t3YXJkT3AKKyAgICAgICAgLCBGb3J3YXJkT3AKKyAgICAgICAgPiBuZXN0ZWRfc3RlcDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkyPAorICAgICAgICAgIEJhY2t3YXJkT3AKKyAgICAgICAgLCB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6c3RhdGUKKyAgICAgICAgLCBBVVg3NzgwNzZfRk9MRF9JTVBMX09QKEZpcnN0KQorICAgICAgICA+Ojp0eXBlIHN0YXRlOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXN0ZWRfc3RlcDo6aXRlcmF0b3IgaXRlcmF0b3I7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pCisgICAgLCB0eXBlbmFtZSBGaXJzdAorICAgICwgdHlwZW5hbWUgTGFzdAorICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAsIHR5cGVuYW1lIEJhY2t3YXJkT3AKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcAorICAgID4gCitzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FCisgICAgOiBBVVg3NzgwNzZfRk9MRF9DSFVOS19OQU1FPE4+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxGaXJzdCxMYXN0LFN0YXRlLEJhY2t3YXJkT3AsRm9yd2FyZE9wPgoreworfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfX19CisKKyMgICB1bmRlZiBBVVg3NzgwNzZfRklSU1RfQkFDS1dBUkRfU1RBVEVfVFlQRURFRgorIyAgIHVuZGVmIEFVWDc3ODA3Nl9JVEVSX0ZPTERfQkFDS1dBUkRfU1RFUAorIyAgIHVuZGVmIEFVWDc3ODA3Nl9JVEVSX0ZPTERfQkFDS1dBUkRfU1RFUF9GVU5DCisjICAgdW5kZWYgQVVYNzc4MDc2X0lURVJfRk9MRF9GT1JXQVJEX1NURVAKKworI3VuZGVmIEFVWDc3ODA3Nl9GT0xEX0lNUExfT1AKKyN1bmRlZiBBVVg3NzgwNzZfRk9MRF9JTVBMX05BTUVfUFJFRklYCisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorCisjICAgZGVmaW5lIG5fIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTk9OVFlQRV9URU1QTEFURV9QQVJUSUFMX1NQRUMpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAsIHR5cGVuYW1lIExhc3QKKyAgICAsIHR5cGVuYW1lIFN0YXRlCisgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgLCB0eXBlbmFtZSBGb3J3YXJkT3AKKyAgICA+CitzdHJ1Y3QgQVVYNzc4MDc2X0ZPTERfSU1QTF9OQU1FPG5fLEZpcnN0LExhc3QsU3RhdGUsQmFja3dhcmRPcCxGb3J3YXJkT3A+Cit7CisgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICB0eXBlZGVmIFN0YXRlIGZ3ZF9zdGF0ZTA7CisKKyAgICBCT09TVF9NUExfUFBfUkVQRUFUKAorICAgICAgICAgIG5fCisgICAgICAgICwgQVVYNzc4MDc2X0lURVJfRk9MRF9GT1JXQVJEX1NURVAKKyAgICAgICAgLCB1bnVzZWQKKyAgICAgICAgKQorCisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoZndkX3N0YXRlLG5fKSBCT09TVF9QUF9DQVQoYmt3ZF9zdGF0ZSxuXyk7CisKKyAgICBCT09TVF9NUExfUFBfUkVQRUFUKAorICAgICAgICAgIG5fCisgICAgICAgICwgQVVYNzc4MDc2X0lURVJfRk9MRF9CQUNLV0FSRF9TVEVQCisgICAgICAgICwgbl8KKyAgICAgICAgKQorCisgICAgdHlwZWRlZiBia3dkX3N0YXRlMCBzdGF0ZTsKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLG5fKSBpdGVyYXRvcjsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlPD4gc3RydWN0IEFVWDc3ODA3Nl9GT0xEX0NIVU5LX05BTUU8bl8+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgRmlyc3QKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0CisgICAgICAgICwgdHlwZW5hbWUgU3RhdGUKKyAgICAgICAgLCB0eXBlbmFtZSBCYWNrd2FyZE9wCisgICAgICAgICwgdHlwZW5hbWUgRm9yd2FyZE9wCisgICAgICAgID4KKyAgICBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBGaXJzdCBpdGVyMDsKKyAgICAgICAgdHlwZWRlZiBTdGF0ZSBmd2Rfc3RhdGUwOworCisgICAgICAgIEJPT1NUX01QTF9QUF9SRVBFQVQoCisgICAgICAgICAgICAgIG5fCisgICAgICAgICAgICAsIEFVWDc3ODA3Nl9JVEVSX0ZPTERfRk9SV0FSRF9TVEVQCisgICAgICAgICAgICAsIHVudXNlZAorICAgICAgICAgICAgKQorCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGZ3ZF9zdGF0ZSxuXykgQk9PU1RfUFBfQ0FUKGJrd2Rfc3RhdGUsbl8pOworCisgICAgICAgIEJPT1NUX01QTF9QUF9SRVBFQVQoCisgICAgICAgICAgICAgIG5fCisgICAgICAgICAgICAsIEFVWDc3ODA3Nl9JVEVSX0ZPTERfQkFDS1dBUkRfU1RFUAorICAgICAgICAgICAgLCBuXworICAgICAgICAgICAgKQorCisgICAgICAgIHR5cGVkZWYgYmt3ZF9zdGF0ZTAgc3RhdGU7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGl0ZXIsbl8pIGl0ZXJhdG9yOworICAgIH07CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKQorICAgIC8vLyBFVEkgd29ya2Fyb3VuZAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHJlc3VsdF88aW50LGludCxpbnQsaW50LGludD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHN0YXRlOworICAgICAgICB0eXBlZGVmIGludCBpdGVyYXRvcjsKKyAgICB9OworI2VuZGlmCit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjICAgdW5kZWYgbl8KKworI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9zZXF1ZW5jZV93cmFwcGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vc2VxdWVuY2Vfd3JhcHBlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVjOGYwOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vc2VxdWVuY2Vfd3JhcHBlci5ocHAKQEAgLTAsMCArMSwyOTIgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDgKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogc2VxdWVuY2Vfd3JhcHBlci5ocHAgNDkyNzEgMjAwOC0xMC0xMSAwNjo0NjowMFogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjQ2OjAwIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjcxICQKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvc3ViLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zX3dpdGhfYV9kZWZhdWx0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICB1bmRlZiBMT05HX01BWAorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgIWRlZmluZWQoQVVYNzc4MDc2X1NFUVVFTkNFX0JBU0VfTkFNRSkKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX0JBU0VfTkFNRSBBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChBVVg3NzgwNzZfU0VRVUVOQ0VfSU5URUdSQUxfV1JBUFBFUikKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfUEFSQU1fTkFNRSBUCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9URU1QTEFURV9QQVJBTSB0eXBlbmFtZSBUCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9ERUZBVUxUIG5hCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX05BTUVfTihuKSBcCisgICAgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9TRVFVRU5DRV9CQVNFX05BTUUsbikgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfUEFSQU1TKCkgXAorICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TKCBcCisgICAgICAgICAgQVVYNzc4MDc2X1NFUVVFTkNFX0xJTUlUIFwKKyAgICAgICAgLCBBVVg3NzgwNzZfU0VRVUVOQ0VfVEVNUExBVEVfUEFSQU0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX0FSR1MoKSBcCisgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVMoIFwKKyAgICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfTElNSVQgXAorICAgICAgICAsIFQgXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX0RFRkFVTFRfUEFSQU1TKCkgXAorICAgICBCT09TVF9QUF9FTlVNX1BBUkFNU19XSVRIX0FfREVGQVVMVCggXAorICAgICAgICAgIEFVWDc3ODA3Nl9TRVFVRU5DRV9MSU1JVCBcCisgICAgICAgICwgQVVYNzc4MDc2X1NFUVVFTkNFX1RFTVBMQVRFX1BBUkFNIFwKKyAgICAgICAgLCBBVVg3NzgwNzZfU0VRVUVOQ0VfREVGQVVMVCBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9QQVJBTVMobikgXAorICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIEFVWDc3ODA3Nl9TRVFVRU5DRV9URU1QTEFURV9QQVJBTSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9BUkdTKG4pIFwKKyAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBUKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9OX1BBUlRJQUxfU1BFQ19BUkdTKG4pIFwKKyAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBUKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYobikgXAorICAgIEJPT1NUX1BQX0VOVU0oIFwKKyAgICAgICAgICBCT09TVF9QUF9TVUJfRCgxLEFVWDc3ODA3Nl9TRVFVRU5DRV9MSU1JVCxuKSBcCisgICAgICAgICwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIgXAorICAgICAgICAsIEFVWDc3ODA3Nl9TRVFVRU5DRV9ERUZBVUxUIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjZWxzZSAvLyBBVVg3NzgwNzZfU0VRVUVOQ0VfSU5URUdSQUxfV1JBUFBFUgorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9QQVJBTV9OQU1FIEMKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX1RFTVBMQVRFX1BBUkFNIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIEMpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9ERUZBVUxUIExPTkdfTUFYCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX1BBUkFNUygpIFwKKyAgICB0eXBlbmFtZSBULCBCT09TVF9QUF9FTlVNX1BBUkFNUyggXAorICAgICAgICAgIEFVWDc3ODA3Nl9TRVFVRU5DRV9MSU1JVCBcCisgICAgICAgICwgQVVYNzc4MDc2X1NFUVVFTkNFX1RFTVBMQVRFX1BBUkFNIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9BUkdTKCkgXAorICAgIFQsIEJPT1NUX1BQX0VOVU1fUEFSQU1TKCBcCisgICAgICAgICAgQVVYNzc4MDc2X1NFUVVFTkNFX0xJTUlUIFwKKyAgICAgICAgLCBDIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9ERUZBVUxUX1BBUkFNUygpIFwKKyAgICB0eXBlbmFtZSBULCBcCisgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVNfV0lUSF9BX0RFRkFVTFQoIFwKKyAgICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfTElNSVQgXAorICAgICAgICAsIEFVWDc3ODA3Nl9TRVFVRU5DRV9URU1QTEFURV9QQVJBTSBcCisgICAgICAgICwgQVVYNzc4MDc2X1NFUVVFTkNFX0RFRkFVTFQgXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX05fUEFSQU1TKG4pIFwKKyAgICB0eXBlbmFtZSBUIEJPT1NUX1BQX0NPTU1BX0lGKG4pIFwKKyAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBBVVg3NzgwNzZfU0VRVUVOQ0VfVEVNUExBVEVfUEFSQU0pIFwKKyAgICAvKiovCisKKyMgICBpZiAhZGVmaW5lZChBVVg3NzgwNzZfU0VRVUVOQ0VfQ09OVkVSVF9DTl9UTykKKyMgICAgICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9DT05WRVJUX0NOX1RPKHosbixUQVJHRVQpIEJPT1NUX1BQX0NBVChDLG4pCisjICAgZW5kaWYKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9BUkdTKG4pIFwKKyAgICBUIEJPT1NUX1BQX0NPTU1BX0lGKG4pIFwKKyAgICBCT09TVF9QUF9FTlVNKG4sQVVYNzc4MDc2X1NFUVVFTkNFX0NPTlZFUlRfQ05fVE8sVCkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9QQVJUSUFMX1NQRUNfQVJHUyhuKSBcCisgICAgVCwgQk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgQykgXAorICAgIEJPT1NUX1BQX0NPTU1BX0lGKG4pIFwKKyAgICBCT09TVF9QUF9FTlVNKCBcCisgICAgICAgICAgQk9PU1RfUFBfU1VCX0QoMSxBVVg3NzgwNzZfU0VRVUVOQ0VfTElNSVQsbikgXAorICAgICAgICAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yIFwKKyAgICAgICAgLCBBVVg3NzgwNzZfU0VRVUVOQ0VfREVGQVVMVCBcCisgICAgICAgICkgXAorICAgIC8qKi8KKworI2VuZGlmIC8vIEFVWDc3ODA3Nl9TRVFVRU5DRV9JTlRFR1JBTF9XUkFQUEVSCisKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisvLyBmb3J3YXJkIGRlY2xhcmF0aW9uCit0ZW1wbGF0ZTwKKyAgICAgIEFVWDc3ODA3Nl9TRVFVRU5DRV9ERUZBVUxUX1BBUkFNUygpCisgICAgPgorc3RydWN0IEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FOworI2Vsc2UKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPiAKK3N0cnVjdCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X1NFUVVFTkNFX05BTUUsX2Nob29zZXIpOworfQorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMCwgQVVYNzc4MDc2X1NFUVVFTkNFX0xJTUlULCA8bmRuYm9vc3QvbXBsL2F1eF8vc2VxdWVuY2Vfd3JhcHBlci5ocHA+KSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisvLyByZWFsIEMrKyB2ZXJzaW9uIGlzIGFscmVhZHkgdGFrZW4gY2FyZSBvZgorI2lmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworbmFtZXNwYWNlIGF1eCB7CisvLyA/Pz9fY291bnRfYXJncworI2RlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19QUkVGSVggICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRQorI2RlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19ERUZBVUxUICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfREVGQVVMVAorI2RlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19QQVJBTV9OQU1FICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfUEFSQU1fTkFNRQorI2RlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19URU1QTEFURV9QQVJBTSBBVVg3NzgwNzZfU0VRVUVOQ0VfVEVNUExBVEVfUEFSQU0KKyNkZWZpbmUgQVVYNzc4MDc2X0NPVU5UX0FSR1NfQVJJVFkgICAgICAgICAgQVVYNzc4MDc2X1NFUVVFTkNFX0xJTUlUCisjZGVmaW5lIEFVWDc3ODA3Nl9DT1VOVF9BUkdTX1VTRV9TVEFOREFSRF9QUF9QUklNSVRJVkVTCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY291bnRfYXJncy5ocHA+CisKK3RlbXBsYXRlPAorICAgICAgQVVYNzc4MDc2X1NFUVVFTkNFX1BBUkFNUygpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRSxfaW1wbCkKK3sKKyAgICB0eXBlZGVmIGF1eDo6Qk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FLF9jb3VudF9hcmdzKTwKKyAgICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhBVVg3NzgwNzZfU0VRVUVOQ0VfTElNSVQsIEFVWDc3ODA3Nl9TRVFVRU5DRV9QQVJBTV9OQU1FKQorICAgICAgICA+IGFyZ19udW1fOworICAgIAorICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjpCT09TVF9QUF9DQVQoQVVYNzc4MDc2X1NFUVVFTkNFX05BTUUsX2Nob29zZXIpPCBhcmdfbnVtXzo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88IEFVWDc3ODA3Nl9TRVFVRU5DRV9BUkdTKCkgPjo6dHlwZSB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgQVVYNzc4MDc2X1NFUVVFTkNFX0RFRkFVTFRfUEFSQU1TKCkKKyAgICA+CitzdHJ1Y3QgQVVYNzc4MDc2X1NFUVVFTkNFX05BTUUKKyAgICA6IGF1eDo6Qk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FLF9pbXBsKTwKKyAgICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfQVJHUygpCisgICAgICAgID46OnR5cGUKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6Qk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FLF9pbXBsKTwKKyAgICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfQVJHUygpCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyMgICB1bmRlZiBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9QQVJUSUFMX1NQRUNfQVJHUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9OX0FSR1MKKyMgICB1bmRlZiBBVVg3NzgwNzZfU0VRVUVOQ0VfQ09OVkVSVF9DTl9UTworIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9OX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9ERUZBVUxUX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9BUkdTCisjICAgdW5kZWYgQVVYNzc4MDc2X1NFUVVFTkNFX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FX04KKyMgICB1bmRlZiBBVVg3NzgwNzZfU0VRVUVOQ0VfREVGQVVMVAorIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9URU1QTEFURV9QQVJBTQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9QQVJBTV9OQU1FCisjICAgdW5kZWYgQVVYNzc4MDc2X1NFUVVFTkNFX0xJTUlUCisjICAgdW5kZWYgQVVYNzc4MDc2X1NFUVVFTkNFX0JBU0VfTkFNRQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FCisjICAgdW5kZWYgQVVYNzc4MDc2X1NFUVVFTkNFX0lOVEVHUkFMX1dSQVBQRVIKKworfX0KKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworI2lmIGlfID09IEFVWDc3ODA3Nl9TRVFVRU5DRV9MSU1JVAorCisvLy8gcHJpbWFyeSB0ZW1wbGF0ZSAobm90IGEgc3BlY2lhbGl6YXRpb24hKQordGVtcGxhdGU8CisgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9QQVJBTVMoaV8pCisgICAgPgorc3RydWN0IEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FCisgICAgOiBBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRV9OKGlfKTwgQVVYNzc4MDc2X1NFUVVFTkNFX05fQVJHUyhpXykgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgQVVYNzc4MDc2X1NFUVVFTkNFX05BTUVfTihpXyk8IEFVWDc3ODA3Nl9TRVFVRU5DRV9OX0FSR1MoaV8pID46OnR5cGUgdHlwZTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlPAorICAgICAgQVVYNzc4MDc2X1NFUVVFTkNFX05fUEFSQU1TKGlfKQorICAgID4KK3N0cnVjdCBBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRTwgQVVYNzc4MDc2X1NFUVVFTkNFX05fUEFSVElBTF9TUEVDX0FSR1MoaV8pID4KKyAgICA6IEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FX04oaV8pPCBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9BUkdTKGlfKSA+Cit7CisjaWYgaV8gPiAwIHx8IGRlZmluZWQoQVVYNzc4MDc2X1NFUVVFTkNFX0lOVEVHUkFMX1dSQVBQRVIpCisgICAgdHlwZWRlZiB0eXBlbmFtZSBBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRV9OKGlfKTwgQVVYNzc4MDc2X1NFUVVFTkNFX05fQVJHUyhpXykgPjo6dHlwZSB0eXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FX04oaV8pPCBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9BUkdTKGlfKSA+Ojp0eXBlIHR5cGU7CisjZW5kaWYKK307CisKKyNlbmRpZiAvLyBpXyA9PSBBVVg3NzgwNzZfU0VRVUVOQ0VfTElNSVQKKworIyAgIGVsc2UKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBCT09TVF9QUF9DQVQoQVVYNzc4MDc2X1NFUVVFTkNFX05BTUUsX2Nob29zZXIpPGlfPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIEFVWDc3ODA3Nl9TRVFVRU5DRV9QQVJBTVMoKQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisjaWYgaV8gPiAwIHx8IGRlZmluZWQoQVVYNzc4MDc2X1NFUVVFTkNFX0lOVEVHUkFMX1dSQVBQRVIpCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQVVYNzc4MDc2X1NFUVVFTkNFX05BTUVfTihpXyk8CisgICAgICAgICAgICAgIEFVWDc3ODA3Nl9TRVFVRU5DRV9OX0FSR1MoaV8pCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisjZWxzZQorICAgICAgICB0eXBlZGVmIEFVWDc3ODA3Nl9TRVFVRU5DRV9OQU1FX04oaV8pPAorICAgICAgICAgICAgICBBVVg3NzgwNzZfU0VRVUVOQ0VfTl9BUkdTKGlfKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworI2VuZGlmCisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCisjICAgZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjdW5kZWYgaV8KKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vc2l6ZV9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vc2l6ZV9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjQ2N2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9zaXplX2ltcGwuaHBwCkBAIC0wLDAgKzEsNTIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1NJWkVfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9TSVpFX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBzaXplX2ltcGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iZWdpbl9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9kaXN0YW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdHJhaXRzX2xhbWJkYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9uOyBjb25yZXRlIHNlcXVlbmNlcyBtaWdodCBvdmVycmlkZSBpdCBieSAKKy8vIHNwZWNpYWxpemluZyBlaXRoZXIgdGhlICdzaXplX2ltcGwnIG9yIHRoZSBwcmltYXJ5ICdzaXplJyB0ZW1wbGF0ZQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4KK3N0cnVjdCBzaXplX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU2MSkpCisgICAgICAgIDogZGlzdGFuY2U8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGJlZ2luPFNlcXVlbmNlPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBlbmQ8U2VxdWVuY2U+Ojp0eXBlCisgICAgICAgICAgICA+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGlzdGFuY2U8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGJlZ2luPFNlcXVlbmNlPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBlbmQ8U2VxdWVuY2U+Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisjZW5kaWYKKyAgICB9OworfTsKKworQk9PU1RfTVBMX0FMR09SSVRNX1RSQUlUU19MQU1CREFfU1BFQygxLCBzaXplX2ltcGwpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1NJWkVfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy9zdGF0aWNfY2FzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWViZDI2NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogc3RhdGljX2Nhc3QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTYxKSkgXAorIHx8IEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorIHx8IEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgPD0gMHgzMDAxKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKFQsIGV4cHIpIChUKShleHByKQorI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChULCBleHByKSBzdGF0aWNfY2FzdDxUPihleHByKQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2E4Mzk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eS5ocHAKQEAgLTAsMCArMSwxODkgQEAKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdGVtcGxhdGVfYXJpdHkuaHBwIDYxNTg0IDIwMTAtMDQtMjYgMTg6NDg6MjZaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAxMC0wNC0yNiAxMTo0ODoyNiAtMDcwMCAoTW9uLCAyNiBBcHIgMjAxMCkgJAorLy8gJFJldmlzaW9uOiA2MTU4NCAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaW50LmhwcD4KKyMgICBpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQpCisjICAgaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0VYVEVOREVEX1RFTVBMQVRFX1BBUkFNRVRFUlNfTUFUQ0hJTkcpCisjICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3R5cGVfd3JhcHBlci5ocHA+CisjICAgZW5kaWYKKyMgICBlbHNlCisjICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2hhc19yZWJpbmQuaHBwPgorIyAgIGVuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIHRlbXBsYXRlX2FyaXR5LmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKyMgICBpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9yYW5nZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9sZF9sZWZ0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQVJJVFkgQk9PU1RfUFBfSU5DKEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkpCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPiBzdHJ1Y3QgYXJpdHlfdGFnCit7CisgICAgdHlwZWRlZiBjaGFyICgmdHlwZSlbTiArIDFdOworfTsKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfTUFYX0FSSVRZX09QKHVudXNlZCwgc3RhdGUsIGlfKSBcCisgICAgKCBCT09TVF9QUF9DQVQoQyxpXykgPiAwID8gQk9PU1RfUFBfQ0FUKEMsaV8pIDogc3RhdGUgKSBcCisvKiovCisKK3RlbXBsYXRlPAorICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhBVVg3NzgwNzZfQVJJVFksIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgQykpCisgICAgPgorc3RydWN0IG1heF9hcml0eQoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gCisgICAgICAgICAgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVCgKKyAgICAgICAgICAgICAgQVVYNzc4MDc2X01BWF9BUklUWV9PUAorICAgICAgICAgICAgLCAtMQorICAgICAgICAgICAgLCBCT09TVF9NUExfUFBfUkFOR0UoMSwgQVVYNzc4MDc2X0FSSVRZKQorICAgICAgICAgICAgKQorICAgICAgICApOworfTsKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9NQVhfQVJJVFlfT1AKKworYXJpdHlfdGFnPDA+Ojp0eXBlIGFyaXR5X2hlbHBlciguLi4pOworCisjICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMgKDEsIEFVWDc3ODA3Nl9BUklUWSkKKyMgICBkZWZpbmUgQk9PU1RfUFBfRklMRU5BTUVfMSA8bmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAKKyAgICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6bXBsOjphdXg6OmFyaXR5X2hlbHBlcih0eXBlX3dyYXBwZXI8Rj4oKSxhcml0eV90YWc8Tj4oKSkpIC0gMQorICAgICAgICApOworfTsKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfVEVNUExBVEVfQVJJVFlfSU1QTF9JTlZPQ0FUSU9OKHVudXNlZCwgaV8sIEYpIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihpXykgdGVtcGxhdGVfYXJpdHlfaW1wbDxGLEJPT1NUX1BQX0lOQyhpXyk+Ojp2YWx1ZSBcCisvKiovCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eQoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gKAorICAgICAgICAgIG1heF9hcml0eTwgQk9PU1RfTVBMX1BQX1JFUEVBVCgKKyAgICAgICAgICAgICAgQVVYNzc4MDc2X0FSSVRZCisgICAgICAgICAgICAsIEFVWDc3ODA3Nl9URU1QTEFURV9BUklUWV9JTVBMX0lOVk9DQVRJT04KKyAgICAgICAgICAgICwgRgorICAgICAgICAgICAgKSA+Ojp2YWx1ZQorICAgICAgICApKTsKKyAgICAgICAgCisgICAgdHlwZWRlZiBtcGw6OmludF88dmFsdWU+IHR5cGU7Cit9OworCisjICAgdW5kZWYgQVVYNzc4MDc2X1RFTVBMQVRFX0FSSVRZX0lNUExfSU5WT0NBVElPTgorCisjICAgdW5kZWYgQVVYNzc4MDc2X0FSSVRZCisKK319fQorCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19FWFRFTkRFRF9URU1QTEFURV9QQVJBTUVURVJTX01BVENISU5HCisjICAgZWxzZSAvLyBCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sID4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IG1wbDo6aW50XzwtMT4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eV9pbXBsPHRydWU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgcmVzdWx0XworICAgICAgICA6IEY6OmFyaXR5CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHkKKyAgICA6IHRlbXBsYXRlX2FyaXR5X2ltcGw8IDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfcmViaW5kPEY+Ojp2YWx1ZSA+CisgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxGPgoreworfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHk8aW50PgorICAgIDogbXBsOjppbnRfPC0xPgoreworfTsKKyNlbmRpZgorCit9fX0KKworIyAgIGVuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVAorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBpXyBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpXywgdHlwZW5hbWUgUCkgPiBjbGFzcyBGCisgICAgLCBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3R5cGVuYW1lIGFyaXR5X3RhZzxpXz46OnR5cGUKK2FyaXR5X2hlbHBlcih0eXBlX3dyYXBwZXI8IEY8Qk9PU1RfTVBMX1BQX1BBUkFNUyhpXywgVCk+ID4sIGFyaXR5X3RhZzxpXz4pOworCisjdW5kZWYgaV8KKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWQyZjE2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eV9md2QuaHBwCkBAIC0wLDAgKzEsMjMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB0ZW1wbGF0ZV9hcml0eV9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIEYgPiBzdHJ1Y3QgdGVtcGxhdGVfYXJpdHk7CisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9URU1QTEFURV9BUklUWV9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3RyYWl0c19sYW1iZGFfc3BlYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3RyYWl0c19sYW1iZGFfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNhYjQxZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vdHJhaXRzX2xhbWJkYV9zcGVjLmhwcApAQCAtMCwwICsxLDYzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9UUkFJVFNfTEFNQkRBX1NQRUNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfVFJBSVRTX0xBTUJEQV9TUEVDX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDgKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdHJhaXRzX2xhbWJkYV9zcGVjLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZ19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92b2lkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDX0lNUEwoaSwgdHJhaXQpIC8qKi8KKworI2VsaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FMR09SSVRNX1RSQUlUU19MQU1CREFfU1BFQ19JTVBMKGksIHRyYWl0KSBcCit0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdDx2b2lkXz4gXAoreyBcCisgICAgdGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSwgdHlwZW5hbWUgVCkgPiBzdHJ1Y3QgYXBwbHkgXAorICAgIHsgXAorICAgIH07IFwKK307IFwKKy8qKi8KKworI2Vsc2UKKworIyAgIGRlZmluZSBCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDX0lNUEwoaSwgdHJhaXQpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0PHZvaWRfPiBcCit7IFwKKyAgICB0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCB0eXBlbmFtZSBUKSA+IHN0cnVjdCBhcHBseSBcCisgICAgeyBcCisgICAgfTsgXAorfTsgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQ8aW50PiBcCit7IFwKKyAgICB0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCB0eXBlbmFtZSBUKSA+IHN0cnVjdCBhcHBseSBcCisgICAgeyBcCisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7IFwKKyAgICB9OyBcCit9OyBcCisvKiovCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQKKworCisjZGVmaW5lIEJPT1NUX01QTF9BTEdPUklUTV9UUkFJVFNfTEFNQkRBX1NQRUMoaSwgdHJhaXQpIFwKKyAgICBCT09TVF9NUExfQUxHT1JJVE1fVFJBSVRTX0xBTUJEQV9TUEVDX0lNUEwoaSwgdHJhaXQpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdDxub25fc2VxdWVuY2VfdGFnPiB7fTsgXAorLyoqLworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9UUkFJVFNfTEFNQkRBX1NQRUNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3R5cGVfd3JhcHBlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3R5cGVfd3JhcHBlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTExMzljMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2F1eF8vdHlwZV93cmFwcGVyLmhwcApAQCAtMCwwICsxLDQ3IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9UWVBFX1dSQVBQRVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfVFlQRV9XUkFQUEVSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAwLTIwMDMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdHlwZV93cmFwcGVyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHR5cGVfd3JhcHBlcgoreworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisvLyBhZ3VydCAwOC9tYXkvMDM6IGEgY29tcGxpY2F0ZWQgd2F5IHRvIGV4dHJhY3QgdGhlIHdyYXBwZWQgdHlwZTsgbmVlZCBpdCAKKy8vIG1vc3RseSBmb3IgdGhlIHNha2Ugb2YgR0NDICgzLjIueCksIHdoaWNoIElDRXMgaWYgeW91IHRyeSB0byBleHRyYWN0IHRoZSAKKy8vIG5lc3RlZCAndHlwZScgZnJvbSAndHlwZV93cmFwcGVyPFQ+JyB3aGVuIHRoZSBsYXR0ZXIgd2FzIHRoZSByZXN1bHQgb2YgYQorLy8gJ3R5cGVvZicgZXhwcmVzc2lvbgordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3Qgd3JhcHBlZF90eXBlOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB3cmFwcGVkX3R5cGU8IHR5cGVfd3JhcHBlcjxUPiA+Cit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworI2Vsc2UKK3RlbXBsYXRlPCB0eXBlbmFtZSBXID4gc3RydWN0IHdyYXBwZWRfdHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVzo6dHlwZSB0eXBlOworfTsKKyNlbmRpZgorCit9fX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfVFlQRV9XUkFQUEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy91bndyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy91bndyYXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiNzU1YjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3Vud3JhcC5ocHAKQEAgLTAsMCArMSw0NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfVU5XUkFQX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1VOV1JBUF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQgMjAwMSwgMjAwMgorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdW53cmFwLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitpbmxpbmUKK0YmIHVud3JhcChGJiBmLCBsb25nKQoreworICAgIHJldHVybiBmOworfQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+CitpbmxpbmUKK0YmCit1bndyYXAocmVmZXJlbmNlX3dyYXBwZXI8Rj4mIGYsIGludCkKK3sKKyAgICByZXR1cm4gZjsKK30KKwordGVtcGxhdGU8IHR5cGVuYW1lIEYgPgoraW5saW5lCitGJgordW53cmFwKHJlZmVyZW5jZV93cmFwcGVyPEY+IGNvbnN0JiBmLCBpbnQpCit7CisgICAgcmV0dXJuIGY7Cit9CisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9VTldSQVBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjhmY2NhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcApAQCAtMCwwICsxLDg5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB2YWx1ZV93a25kLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JDQ19JTlRFR1JBTF9DT05TVEFOVFMpIFwKKyAgICB8fCBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBDXyA+IHN0cnVjdCB2YWx1ZV93a25kCisgICAgOiBDXworeworfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzYwX0VUSV9CVUcpCit0ZW1wbGF0ZTw+IHN0cnVjdCB2YWx1ZV93a25kPGludD4KKyAgICA6IGludF88MT4KK3sKKyAgICB1c2luZyBpbnRfPDE+Ojp2YWx1ZTsKK307CisjZW5kaWYKK319fQorCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfNjBfRVRJX0JVRykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKEMpIFwKKyAgICA6OkJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjphdXg6OnZhbHVlX3drbmQ8IEMgPiBcCisvKiovCisjICAgIGRlZmluZSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChDKSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoQykKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChDKSBDCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKEMpIFwKKyAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6dmFsdWVfd2tuZDwgQyA+IFwKKy8qKi8KKyNlbmRpZgorCisjZWxzZSAvLyBCT09TVF9NUExfQ0ZHX0JDQ19JTlRFR1JBTF9DT05TVEFOVFMKKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoQykgQworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX01TVkNfVkFMVUVfV0tORChDKSBDCisKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChULCBDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChULCBDOjp2YWx1ZSkgXAorLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9ORVNURURfVkFMVUVfV0tORChULCBDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKEMpOjp2YWx1ZSBcCisvKiovCisjZW5kaWYKKworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHZhbHVlX3R5cGVfd2tuZAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dmFsdWVfdHlwZSB0eXBlOworfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCit0ZW1wbGF0ZTw+IHN0cnVjdCB2YWx1ZV90eXBlX3drbmQ8aW50PgoreworICAgIHR5cGVkZWYgaW50IHR5cGU7Cit9OworI2VuZGlmCisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNmQyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9hdXhfL3llc19uby5ocHAKQEAgLTAsMCArMSw1OCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfWUVTX05PX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1lFU19OT19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHllc19uby5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2FycmF5cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7CisKK3R5cGVkZWYgY2hhciAoJm5vX3RhZylbMV07Cit0eXBlZGVmIGNoYXIgKCZ5ZXNfdGFnKVsyXTsKKwordGVtcGxhdGU8IGJvb2wgQ18gPiBzdHJ1Y3QgeWVzX25vX3RhZworeworICAgIHR5cGVkZWYgbm9fdGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCB5ZXNfbm9fdGFnPHRydWU+Cit7CisgICAgdHlwZWRlZiB5ZXNfdGFnIHR5cGU7Cit9OworCisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBuKSA+IHN0cnVjdCB3ZWlnaHRlZF90YWcKK3sKKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgdHlwZWRlZiBjaGFyICgmdHlwZSlbbl07CisjZWxzZQorICAgIGNoYXIgYnVmW25dOworICAgIHR5cGVkZWYgd2VpZ2h0ZWRfdGFnIHR5cGU7CisjZW5kaWYKK307CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fREVQRU5ERU5UX0FSUkFZX1RZUEVTKQordGVtcGxhdGU8PiBzdHJ1Y3Qgd2VpZ2h0ZWRfdGFnPDA+Cit7CisgICAgdHlwZWRlZiBjaGFyICgmdHlwZSlbMV07Cit9OworI2VuZGlmCisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9ZRVNfTk9fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9iYWNrX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9iYWNrX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI0OTYzYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2JhY2tfZndkLmhwcApAQCAtMCwwICsxLDI0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0JBQ0tfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQkFDS19GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBiYWNrX2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgYmFja19pbXBsOwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGJhY2s7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQkFDS19GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9iYWNrX2luc2VydGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2JhY2tfaW5zZXJ0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0Yzc3OWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9iYWNrX2luc2VydGVyLmhwcApAQCAtMCwwICsxLDM0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0JBQ0tfSU5TRVJURVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9CQUNLX0lOU0VSVEVSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAzLTIwMDQKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAzLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYmFja19pbnNlcnRlci5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2JhY2suaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnNlcnRlci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBTZXF1ZW5jZQorICAgID4KK3N0cnVjdCBiYWNrX2luc2VydGVyCisgICAgOiBpbnNlcnRlcjwgU2VxdWVuY2UscHVzaF9iYWNrPD4gPgoreworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9CQUNLX0lOU0VSVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2JlZ2luX2VuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkwOThmYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2JlZ2luX2VuZC5ocHAKQEAgLTAsMCArMSw1NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9CRUdJTl9FTkRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9CRUdJTl9FTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBiZWdpbl9lbmQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYmVnaW5fZW5kX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9zZXF1ZW5jZV90YWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKy8vIGFndXJ0LCAxMy9zZXAvMDI6IHN3aXRjaGVkIGZyb20gaW5oZXJpdGFuY2UgdG8gdHlwZWRlZjsgTVNWQyBpcyBtb3JlCisvLyBoYXBweSB0aGlzIHdheSAobGVzcyBFVEktcmVsYXRlZCBlcnJvcnMpLCBhbmQgaXQgZG9lc24ndCBhZmZlY3QgCisvLyBhbnl0aGluZyBlbHNlCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgPgorc3RydWN0IGJlZ2luCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZXF1ZW5jZV90YWc8U2VxdWVuY2U+Ojp0eXBlIHRhZ187CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiZWdpbl9pbXBsPCB0YWdfID4KKyAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgU2VxdWVuY2UgPjo6dHlwZSB0eXBlOworCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGJlZ2luLChTZXF1ZW5jZSkpCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgPgorc3RydWN0IGVuZAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2VxdWVuY2VfdGFnPFNlcXVlbmNlPjo6dHlwZSB0YWdfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgZW5kX2ltcGw8IHRhZ18gPgorICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PCBTZXF1ZW5jZSA+Ojp0eXBlIHR5cGU7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsZW5kLChTZXF1ZW5jZSkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgYmVnaW4pCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgZW5kKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0JFR0lOX0VORF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2JlZ2luX2VuZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYmVnaW5fZW5kX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2JlZ2luX2VuZF9md2QuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQkVHSU5fRU5EX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0JFR0lOX0VORF9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBiZWdpbl9lbmRfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBiZWdpbl9pbXBsOwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBlbmRfaW1wbDsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGJlZ2luOwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGVuZDsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9CRUdJTl9FTkRfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYmluZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9iaW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzA4MzRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYmluZC5ocHAKQEAgLTAsMCArMSw1NTEgQEAKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9NUExfQklORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0JJTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYmluZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JpbmRfZndkLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3Byb3RlY3QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseV93cmFwLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYXJpdHlfc3BlYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdHlwZV93cmFwcGVyLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwPgorIyAgIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBlbmRpZiAKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2JpbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1VOTkFNRURfUExBQ0VIT0xERVJfU1VQUE9SVCkKKyMgICAgICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGJhc2ljX2JpbmQuaHBwCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgYmluZC5ocHAKKyMgICBlbmRpZgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZl9wYXJhbXNfdGFpbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcnRpYWxfc3BlY19wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9leHRfcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2FkZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2RtY19hbWJpZ3VvdXNfY3Rwcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9kdHAuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKy8vIGxvY2FsIG1hY3JvcywgI3VuZGVmLWluZWQgYXQgdGhlIGVuZCBvZiB0aGUgaGVhZGVyCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9BUFBMWSBcCisgICAgQk9PU1RfUFBfQ0FUKGFwcGx5X3dyYXAsQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSkgXAorICAgIC8qKi8KKworIyAgIGlmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19ETUNfQU1CSUdVT1VTX0NUUFMpCisjICAgICAgIGRlZmluZSBBVVg3NzgwNzZfRE1DX1BBUkFNKCkgLCBpbnQgZHVtbXlfCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgQVVYNzc4MDc2X0RNQ19QQVJBTSgpCisjICAgZW5kaWYKKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQklORF9QQVJBTVMocGFyYW0pIFwKKyAgICBCT09TVF9NUExfUFBfUEFSQU1TKCBcCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0JJTkRfREVGQVVMVF9QQVJBTVMocGFyYW0sIHZhbHVlKSBcCisgICAgQk9PU1RfTVBMX1BQX0RFRkFVTFRfUEFSQU1TKCBcCisgICAgICAgICAgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSBcCisgICAgICAgICwgcGFyYW0gXAorICAgICAgICAsIHZhbHVlIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYobikgQk9PU1RfTVBMX1BQX1BBUkFNUyhuLCBwYXJhbSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfQklORF9OX1NQRUNfUEFSQU1TKG4sIHBhcmFtLCBkZWYpIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihuKSBcCisgICAgQk9PU1RfTVBMX1BQX1BBUlRJQUxfU1BFQ19QQVJBTVMobiwgcGFyYW0sIGRlZikgXAorICAgIC8qKi8KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9CSU5EX05FU1RFRF9ERUZBVUxUX1BBUkFNUyhwYXJhbSwgdmFsdWUpIFwKKyAgICBBVVg3NzgwNzZfQklORF9ERUZBVUxUX1BBUkFNUyhwYXJhbSwgdmFsdWUpIFwKKyAgICAvKiovCisjZWxzZQorIyAgIGRlZmluZSBBVVg3NzgwNzZfQklORF9ORVNURURfREVGQVVMVF9QQVJBTVMocGFyYW0sIHZhbHVlKSBcCisgICAgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKHBhcmFtKSBcCisgICAgLyoqLworI2VuZGlmCisKK25hbWVzcGFjZSBhdXggeworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBULCBBVVg3NzgwNzZfQklORF9QQVJBTVModHlwZW5hbWUgVSkKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworeworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fVU5OQU1FRF9QTEFDRUhPTERFUl9TVVBQT1JUKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIEFyZworICAgID4KK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnCit7CisgICAgdHlwZWRlZiBBcmcgbmV4dDsKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQXJnCisgICAgPgorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmc8IGFyZzwtMT4sQXJnID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEFyZzo6bmV4dCBuZXh0OworICAgIHR5cGVkZWYgQXJnIHR5cGU7Cit9OworCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19VTk5BTUVEX1BMQUNFSE9MREVSX1NVUFBPUlQKKwordGVtcGxhdGU8CisgICAgICBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pLCBBVVg3NzgwNzZfQklORF9QQVJBTVModHlwZW5hbWUgVSkKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZzwgYXJnPE4+LEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBBVVg3NzgwNzZfQVBQTFk8bXBsOjphcmc8Tj4sIEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKT46OnR5cGUgdHlwZTsKK307CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0JJTkRfVEVNUExBVEUpCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYsIEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyh0eXBlbmFtZSBUKSwgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKHR5cGVuYW1lIFUpCisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8IGJpbmQ8RixBVVg3NzgwNzZfQklORF9QQVJBTVMoVCk+LEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKSA+Cit7CisgICAgdHlwZWRlZiBiaW5kPEYsQVVYNzc4MDc2X0JJTkRfUEFSQU1TKFQpPiBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEFVWDc3ODA3Nl9BUFBMWTxmXywgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKFUpPjo6dHlwZSB0eXBlOworfTsKKyNlbmRpZgorCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKy8vIGFndXJ0LCAxNS9qYW4vMDI6IGl0J3Mgbm90IGEgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIGZ1bmN0aW9uIGNsYXNzLCBhbmQgCisvLyBNU1ZDNi41IGhhcyBwcm9ibGVtcyB3aXRoICdhcHBseScgbmFtZSBoZXJlICh0aGUgY29kZSBjb21waWxlcywgYnV0IGRvZXNuJ3QKKy8vIHdvcmspLCBzbyBJIHdlbnQgd2l0aCB0aGUgJ3Jlc3VsdF8nIGhlcmUsIGFuZCBpbiBhbGwgb3RoZXIgc2ltaWxhciBjYXNlcwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IHJlc29sdmVfYXJnX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKHR5cGVuYW1lIFUpID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+IAorc3RydWN0IHJlc29sdmVfYXJnX2ltcGw8dHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKHR5cGVuYW1lIFUpID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQVVYNzc4MDc2X0FQUExZPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAsIEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCisvLyBmb3IgJ3Jlc29sdmVfYmluZF9hcmcnCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlOworCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBULCBBVVg3NzgwNzZfQklORF9QQVJBTVModHlwZW5hbWUgVSkKKyAgICA+CitzdHJ1Y3QgcmVzb2x2ZV9iaW5kX2FyZworICAgIDogcmVzb2x2ZV9hcmdfaW1wbDwgaXNfYmluZF90ZW1wbGF0ZTxUPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBULEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKSA+Cit7Cit9OworCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19VTk5BTUVEX1BMQUNFSE9MREVSX1NVUFBPUlQpCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gCitzdHJ1Y3QgcmVwbGFjZV91bm5hbWVkX2FyZ19pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEFyZyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIEFyZyBuZXh0OworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiAKK3N0cnVjdCByZXBsYWNlX3VubmFtZWRfYXJnX2ltcGw8IGFyZzwtMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBBcmcgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PEFyZz46OnR5cGUgbmV4dDsKKyAgICAgICAgdHlwZWRlZiBBcmcgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFyZyA+IAorc3RydWN0IHJlcGxhY2VfdW5uYW1lZF9hcmcKKyAgICA6IHJlcGxhY2VfdW5uYW1lZF9hcmdfaW1wbDxUPjo6dGVtcGxhdGUgcmVzdWx0XzxBcmc+Cit7Cit9OworCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19VTk5BTUVEX1BMQUNFSE9MREVSX1NVUFBPUlQKKworLy8gYWd1cnQsIDEwL21hci8wMjogdGhlIGZvcndhcmQgZGVjbGFyYXRpb24gaGFzIHRvIGFwcGVhciBiZWZvcmUgYW55IG9mCisvLyAnaXNfYmluZF9oZWxwZXInIG92ZXJsb2Fkcywgb3RoZXJ3aXNlIE1TVkM2LjUgaXNzdWVzIGFuIElDRSBvbiBpdAordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgYXJpdHlfKSA+IHN0cnVjdCBiaW5kX2Nob29zZXI7CisKK2F1eDo6bm9fdGFnIGlzX2JpbmRfaGVscGVyKC4uLik7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IGF1eDo6bm9fdGFnIGlzX2JpbmRfaGVscGVyKHByb3RlY3Q8VD4qKTsKKworLy8gb3ZlcmxvYWQgZm9yICJtYWluIiBmb3JtCisvLyBhZ3VydCwgMTUvbWFyLzAyOiBNU1ZDIDYuNSBmYWlscyB0byBwcm9wZXJseSByZXNvbHZlIHRoZSBvdmVybG9hZCAKKy8vIGluIGNhc2UgaWYgd2UgdXNlICdhdXg6OnR5cGVfd3JhcHBlcjwgYmluZDwuLi4+ID4nIGhlcmUsIGFuZCBhbGwgCisvLyAnYmluZCcgaW5zdGFudGlhdGlvbnMgZm9ybSBhIGNvbXBsZXRlIHR5cGUgYW55d2F5CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19CSU5EX1RFTVBMQVRFKQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCBBVVg3NzgwNzZfQklORF9QQVJBTVModHlwZW5hbWUgVCkKKyAgICA+CithdXg6Onllc190YWcgaXNfYmluZF9oZWxwZXIoYmluZDxGLEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhUKT4qKTsKKyNlbmRpZgorCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKSA+CithdXg6Onllc190YWcgaXNfYmluZF9oZWxwZXIoYXJnPE4+Kik7CisKK3RlbXBsYXRlPCBib29sIGlzX3JlZl8gPSB0cnVlID4KK3N0cnVjdCBpc19iaW5kX3RlbXBsYXRlX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19iaW5kX3RlbXBsYXRlX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gCisgICAgICAgICAgICAgIHNpemVvZihhdXg6OmlzX2JpbmRfaGVscGVyKHN0YXRpY19jYXN0PFQqPigwKSkpIAorICAgICAgICAgICAgICAgID09IHNpemVvZihhdXg6Onllc190YWcpCisgICAgICAgICAgICApOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19iaW5kX3RlbXBsYXRlCisgICAgOiBpc19iaW5kX3RlbXBsYXRlX2ltcGw8IDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcmVmZXJlbmNlX2ltcGw8VD46OnZhbHVlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBhdXgKKworCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDAsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIDxuZG5ib29zdC9tcGwvYmluZC5ocHA+KSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fVEVNUExBVEVfVEVNUExBVEVfUEFSQU1FVEVSUykKKy8vLyBpZl8vZXZhbF9pZiBzcGVjaWFsaXphdGlvbnMKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NQRUNfTkFNRSBpZl8KKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xICgzLCgzLCAzLCA8bmRuYm9vc3QvbXBsL2JpbmQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfRE1DX0FNQklHVU9VU19DVFBTKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfU1BFQ19OQU1FIGV2YWxfaWYKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xICgzLCgzLCAzLCA8bmRuYm9vc3QvbXBsL2JpbmQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKyNlbmRpZgorI2VuZGlmCisKKy8vIHJlYWwgQysrIHZlcnNpb24gaXMgYWxyZWFkeSB0YWtlbiBjYXJlIG9mCisjaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19CSU5EX1RFTVBMQVRFKQorCituYW1lc3BhY2UgYXV4IHsKKy8vIGFwcGx5X2NvdW50X2FyZ3MKKyNkZWZpbmUgQVVYNzc4MDc2X0NPVU5UX0FSR1NfUFJFRklYIGJpbmQKKyNkZWZpbmUgQVVYNzc4MDc2X0NPVU5UX0FSR1NfREVGQVVMVCBuYQorI2RlZmluZSBBVVg3NzgwNzZfQ09VTlRfQVJHU19BUklUWSBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY291bnRfYXJncy5ocHA+Cit9CisKKy8vIGJpbmQKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiwgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKHR5cGVuYW1lIFQpIEFVWDc3ODA3Nl9ETUNfUEFSQU0oKQorICAgID4KK3N0cnVjdCBiaW5kCisgICAgOiBhdXg6OmJpbmRfY2hvb3NlcjwKKyAgICAgICAgICBhdXg6OmJpbmRfY291bnRfYXJnczxBVVg3NzgwNzZfQklORF9QQVJBTVMoVCk+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPCBGLEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhUKSA+Ojp0eXBlCit7Cit9OworCitCT09TVF9NUExfQVVYX0FSSVRZX1NQRUMoCisgICAgICBCT09TVF9QUF9JTkMoQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSkKKyAgICAsIGJpbmQKKyAgICApCisKK0JPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygKKyAgICAgIEJPT1NUX1BQX0lOQyhCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZKQorICAgICwgYmluZAorICAgICkKKworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjICAgdW5kZWYgQVVYNzc4MDc2X0JJTkRfTkVTVEVEX0RFRkFVTFRfUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0JJTkRfTl9TUEVDX1BBUkFNUworIyAgIHVuZGVmIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0JJTkRfREVGQVVMVF9QQVJBTVMKKyMgICB1bmRlZiBBVVg3NzgwNzZfQklORF9QQVJBTVMKKyMgICB1bmRlZiBBVVg3NzgwNzZfRE1DX1BBUkFNCisjICAgdW5kZWYgQVVYNzc4MDc2X0FQUExZCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX0JJTkRfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbiwgZGVwdGggPT0gMQorCisvLyBGb3IgZ2NjIDQuNCBjb21wYXRhYmlsaXR5LCB3ZSBtdXN0IGluY2x1ZGUgdGhlCisvLyBCT09TVF9QUF9JVEVSQVRJT05fREVQVEggdGVzdCBpbnNpZGUgYW4gI2Vsc2UgY2xhdXNlLgorI2Vsc2UgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCisjaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgPT0gMQorCisjICAgZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCisjaWYgZGVmaW5lZChBVVg3NzgwNzZfU1BFQ19OQU1FKQorCisvLyBsYXp5IG1ldGFmdW5jdGlvbiBzcGVjaWFsaXphdGlvbgordGVtcGxhdGU8IHRlbXBsYXRlPCBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCB0eXBlbmFtZSBUKSA+IGNsYXNzIEYsIHR5cGVuYW1lIFRhZyA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKHF1b3RlLGlfKTsKKwordGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpID4gc3RydWN0IEFVWDc3ODA3Nl9TUEVDX05BTUU7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVGFnIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoYmluZCxpXyk8IAorICAgICAgQk9PU1RfUFBfQ0FUKHF1b3RlLGlfKTxBVVg3NzgwNzZfU1BFQ19OQU1FLFRhZz4KKyAgICBBVVg3NzgwNzZfQklORF9OX1BBUkFNUyhpXyxUKQorICAgID4KK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICBBVVg3NzgwNzZfQklORF9ORVNURURfREVGQVVMVF9QQVJBTVModHlwZW5hbWUgVSwgbmEpCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisgICAgICAgIHR5cGVkZWYgbXBsOjphcmc8MT4gbjE7CisjICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzIgKDMsKDEsIGlfLCA8bmRuYm9vc3QvbXBsL2JpbmQuaHBwPikpCisjICAgICAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBVVg3NzgwNzZfU1BFQ19OQU1FPAorICAgICAgICAgICAgICB0eXBlbmFtZSB0MTo6dHlwZQorICAgICAgICAgICAgLCBCT09TVF9NUExfUFBfRVhUX1BBUkFNUygyLCBCT09TVF9QUF9JTkMoaV8pLCB0KQorICAgICAgICAgICAgPjo6dHlwZSBmXzsKKworICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZl86OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworI3VuZGVmIEFVWDc3ODA3Nl9TUEVDX05BTUUKKworI2Vsc2UgLy8gQVVYNzc4MDc2X1NQRUNfTkFNRQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpIEFVWDc3ODA3Nl9ETUNfUEFSQU0oKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoYmluZCxpXykKK3sKKyAgICB0ZW1wbGF0ZTwKKyAgICAgICAgICBBVVg3NzgwNzZfQklORF9ORVNURURfREVGQVVMVF9QQVJBTVModHlwZW5hbWUgVSwgbmEpCisgICAgICAgID4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgIHByaXZhdGU6CisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19VTk5BTUVEX1BMQUNFSE9MREVSX1NVUFBPUlQpCisKKyAgICAgICAgdHlwZWRlZiBhdXg6OnJlcGxhY2VfdW5uYW1lZF9hcmc8IEYsbXBsOjphcmc8MT4gPiByMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6dHlwZSBhMDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByMDo6bmV4dCBuMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnJlc29sdmVfYmluZF9hcmc8YTAsQVVYNzc4MDc2X0JJTkRfUEFSQU1TKFUpPjo6dHlwZSBmXzsKKyAgICAgICAgLy8vCisjICAgZWxzZQorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzxGLEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKT46OnR5cGUgZl87CisKKyMgICBlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1VOTkFNRURfUExBQ0VIT0xERVJfU1VQUE9SVAorCisjICAgaWYgaV8gPiAwCisjICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzIgKDMsKDEsIGlfLCA8bmRuYm9vc3QvbXBsL2JpbmQuaHBwPikpCisjICAgICAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisjICAgZW5kaWYKKworICAgICBwdWJsaWM6CisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0FSRyh1bnVzZWQsIGlfLCB0KSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIFwKKyAgICB0eXBlbmFtZSBCT09TVF9QUF9DQVQodCxCT09TVF9QUF9JTkMoaV8pKTo6dHlwZSBcCisvKiovCisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9QUF9DQVQoYXBwbHlfd3JhcCxpXyk8CisgICAgICAgICAgICAgIGZfIAorICAgICAgICAgICAgQk9PU1RfUFBfQ09NTUFfSUYoaV8pIEJPT1NUX01QTF9QUF9SRVBFQVQoaV8sIEFVWDc3ODA3Nl9BUkcsIHQpCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyMgICB1bmRlZiBBVVg3NzgwNzZfQVJHCisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggeworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLCB0eXBlbmFtZSBUKSwgQVVYNzc4MDc2X0JJTkRfUEFSQU1TKHR5cGVuYW1lIFUpCisgICAgPgorc3RydWN0IHJlc29sdmVfYmluZF9hcmc8CisgICAgICBCT09TVF9QUF9DQVQoYmluZCxpXyk8RiBBVVg3NzgwNzZfQklORF9OX1BBUkFNUyhpXyxUKT4sQVVYNzc4MDc2X0JJTkRfUEFSQU1TKFUpCisgICAgPgoreworICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGJpbmQsaV8pPEYgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sVCk+IGZfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgQVVYNzc4MDc2X0FQUExZPGZfLCBBVVg3NzgwNzZfQklORF9QQVJBTVMoVSk+Ojp0eXBlIHR5cGU7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpCisgICAgPgorYXV4Ojp5ZXNfdGFnCitpc19iaW5kX2hlbHBlcihCT09TVF9QUF9DQVQoYmluZCxpXyk8RiBBVVg3NzgwNzZfQklORF9OX1BBUkFNUyhpXyxUKT4qKTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfQVJJVFlfU1BFQyhCT09TVF9QUF9JTkMoaV8pLCBCT09TVF9QUF9DQVQoYmluZCxpXykpCitCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoQk9PU1RfUFBfSU5DKGlfKSwgQk9PU1RfUFBfQ0FUKGJpbmQsaV8pKQorCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19CSU5EX1RFTVBMQVRFKQorIyAgIGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisgICAgCisjaWYgaV8gPT0gQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWQorLy8vIHByaW1hcnkgdGVtcGxhdGUgKG5vdCBhIHNwZWNpYWxpemF0aW9uISkKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgRiBBVVg3NzgwNzZfQklORF9OX1BBUkFNUyhpXywgdHlwZW5hbWUgVCkgQVVYNzc4MDc2X0RNQ19QQVJBTSgpCisgICAgPgorc3RydWN0IGJpbmQKKyAgICA6IEJPT1NUX1BQX0NBVChiaW5kLGlfKTxGIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLFQpID4KK3sKK307CisjZWxzZQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLCB0eXBlbmFtZSBUKSBBVVg3NzgwNzZfRE1DX1BBUkFNKCkKKyAgICA+CitzdHJ1Y3QgYmluZDwgRiBBVVg3NzgwNzZfQklORF9OX1NQRUNfUEFSQU1TKGlfLCBULCBuYSkgPgorICAgIDogQk9PU1RfUFBfQ0FUKGJpbmQsaV8pPEYgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sVCkgPgoreworfTsKKyNlbmRpZgorCisjICAgZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmluZF9jaG9vc2VyPGlfPgoreworICAgIHRlbXBsYXRlPAorICAgICAgICAgIHR5cGVuYW1lIEYsIEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyh0eXBlbmFtZSBUKQorICAgICAgICA+CisgICAgc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGJpbmQsaV8pPCBGIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKGlfLFQpID4gdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKKyMgICBlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19CSU5EX1RFTVBMQVRFCisKKyNlbmRpZiAvLyBBVVg3NzgwNzZfU1BFQ19OQU1FCisKKyMgICB1bmRlZiBpXworCisvLy8vLyBpdGVyYXRpb24sIGRlcHRoID09IDIKKworI2VsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgPT0gMgorCisjICAgZGVmaW5lIGpfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigyKQorIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fVU5OQU1FRF9QTEFDRUhPTERFUl9TVVBQT1JUKQorCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXBsYWNlX3VubmFtZWRfYXJnPCBCT09TVF9QUF9DQVQoVCxqXyksQk9PU1RfUFBfQ0FUKG4sal8pID4gQk9PU1RfUFBfQ0FUKHIsal8pOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX1BQX0NBVChyLGpfKTo6dHlwZSBCT09TVF9QUF9DQVQoYSxqXyk7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfUFBfQ0FUKHIsal8pOjpuZXh0IEJPT1NUX1BQX0NBVChuLEJPT1NUX1BQX0lOQyhqXykpOworICAgICAgICB0eXBlZGVmIGF1eDo6cmVzb2x2ZV9iaW5kX2FyZzxCT09TVF9QUF9DQVQoYSxqXyksIEFVWDc3ODA3Nl9CSU5EX1BBUkFNUyhVKT4gQk9PU1RfUFBfQ0FUKHQsal8pOworICAgICAgICAvLy8KKyMgICBlbHNlCisgICAgICAgIHR5cGVkZWYgYXV4OjpyZXNvbHZlX2JpbmRfYXJnPCBCT09TVF9QUF9DQVQoVCxqXyksQVVYNzc4MDc2X0JJTkRfUEFSQU1TKFUpPiBCT09TVF9QUF9DQVQodCxqXyk7CisKKyMgICBlbmRpZgorIyAgIHVuZGVmIGpfCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKQorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYmluZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYmluZF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MzdlM2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9iaW5kX2Z3ZC5ocHAKQEAgLTAsMCArMSw5OSBAQAorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX01QTF9CSU5EX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0JJTkRfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYmluZF9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2JpbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGJpbmRfZndkLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZhdWx0X3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2RtY19hbWJpZ3VvdXNfY3Rwcy5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKy8vIGxvY2FsIG1hY3JvcywgI3VuZGVmLWluZWQgYXQgdGhlIGVuZCBvZiB0aGUgaGVhZGVyCisKKyMgICBpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRE1DX0FNQklHVU9VU19DVFBTKQorIyAgICAgICBkZWZpbmUgQVVYNzc4MDc2X0RNQ19QQVJBTSgpICwgaW50IGR1bW15XyA9IDAKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBBVVg3NzgwNzZfRE1DX1BBUkFNKCkKKyMgICBlbmRpZgorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9CSU5EX0RFRkFVTFRfUEFSQU1TKHBhcmFtLCB2YWx1ZSkgXAorICAgIEJPT1NUX01QTF9QUF9ERUZBVUxUX1BBUkFNUyggXAorICAgICAgICAgIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgLCB2YWx1ZSBcCisgICAgICAgICkgXAorICAgIEFVWDc3ODA3Nl9ETUNfUEFSQU0oKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYobikgQk9PU1RfTVBMX1BQX1BBUkFNUyhuLCBwYXJhbSkgXAorICAgIEFVWDc3ODA3Nl9ETUNfUEFSQU0oKSBcCisgICAgLyoqLworCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19CSU5EX1RFTVBMQVRFKQordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBGLCBBVVg3NzgwNzZfQklORF9ERUZBVUxUX1BBUkFNUyh0eXBlbmFtZSBULCBuYSkKKyAgICA+CitzdHJ1Y3QgYmluZDsKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDAsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIDxuZG5ib29zdC9tcGwvYmluZF9md2QuaHBwPikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9CSU5EX05fUEFSQU1TCisjICAgdW5kZWYgQVVYNzc4MDc2X0JJTkRfREVGQVVMVF9QQVJBTVMKKyMgICB1bmRlZiBBVVg3NzgwNzZfRE1DX1BBUkFNCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9CSU5EX0ZXRF9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEYgQVVYNzc4MDc2X0JJTkRfTl9QQVJBTVMoaV8sIHR5cGVuYW1lIFQpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChiaW5kLGlfKTsKKworI3VuZGVmIGlfCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9ib29sLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Jvb2wuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MGJiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9ib29sLmhwcApAQCAtMCwwICsxLDM5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0JPT0xfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9CT09MX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYm9vbC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludGVncmFsX2NfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgorCit0ZW1wbGF0ZTwgYm9vbCBDXyA+IHN0cnVjdCBib29sXworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IENfKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2NfdGFnIHRhZzsKKyAgICB0eXBlZGVmIGJvb2xfIHR5cGU7CisgICAgdHlwZWRlZiBib29sIHZhbHVlX3R5cGU7CisgICAgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIHRoaXMtPnZhbHVlOyB9Cit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04pCit0ZW1wbGF0ZTwgYm9vbCBDXyA+Citib29sIGNvbnN0IGJvb2xfPENfPjo6dmFsdWU7CisjZW5kaWYKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKKworI2VuZGlmIC8vIEJPT1NUX01QTF9CT09MX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvYm9vbF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvYm9vbF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMGI3OTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9ib29sX2Z3ZC5ocHAKQEAgLTAsMCArMSwzMyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9CT09MX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0JPT0xfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYm9vbF9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKwordGVtcGxhdGU8IGJvb2wgQ18gPiBzdHJ1Y3QgYm9vbF87CisKKy8vIHNob3JjdXRzCit0eXBlZGVmIGJvb2xfPHRydWU+IHRydWVfOwordHlwZWRlZiBib29sXzxmYWxzZT4gZmFsc2VfOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0woYm9vbF8pCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0wodHJ1ZV8pCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0woZmFsc2VfKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0JPT0xfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvY2xlYXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvY2xlYXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZmYzMDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9jbGVhci5ocHAKQEAgLTAsMCArMSwzOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9DTEVBUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0NMRUFSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogY2xlYXIuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvY2xlYXJfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jbGVhcl9pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgPgorc3RydWN0IGNsZWFyCisgICAgOiBjbGVhcl9pbXBsPCB0eXBlbmFtZSBzZXF1ZW5jZV90YWc8U2VxdWVuY2U+Ojp0eXBlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgU2VxdWVuY2UgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxjbGVhciwoU2VxdWVuY2UpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDEsIGNsZWFyKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NMRUFSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvY2xlYXJfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2NsZWFyX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM3MTk5ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2NsZWFyX2Z3ZC5ocHAKQEAgLTAsMCArMSwyNCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9DTEVBUl9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9DTEVBUl9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBjbGVhcl9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGNsZWFyX2ltcGw7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiBzdHJ1Y3QgY2xlYXI7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0xFQVJfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29tcGFyaXNvbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9jb21wYXJpc29uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTdlYTVmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29tcGFyaXNvbi5ocHAKQEAgLTAsMCArMSwyNCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9DT01QQVJJU09OX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQ09NUEFSSVNPTl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGNvbXBhcmlzb24uaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZXF1YWxfdG8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3RfZXF1YWxfdG8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sZXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZ3JlYXRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xlc3NfZXF1YWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ncmVhdGVyX2VxdWFsLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DT01QQVJJU09OX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29udGFpbnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29udGFpbnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNDE4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9jb250YWlucy5ocHAKQEAgLTAsMCArMSw0MSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9DT05UQUlOU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0NPTlRBSU5TX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgRXJpYyBGcmllZG1hbiAyMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGNvbnRhaW5zLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2NvbnRhaW5zX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29udGFpbnNfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFNlcXVlbmNlKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUKQorICAgID4KK3N0cnVjdCBjb250YWlucworICAgIDogY29udGFpbnNfaW1wbDwgdHlwZW5hbWUgc2VxdWVuY2VfdGFnPFNlcXVlbmNlPjo6dHlwZSA+CisgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8IFNlcXVlbmNlLFQgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMixjb250YWlucywoU2VxdWVuY2UsVCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgY29udGFpbnMpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ09OVEFJTlNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9jb250YWluc19md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29udGFpbnNfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzU5MzZjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29udGFpbnNfZndkLmhwcApAQCAtMCwwICsxLDI1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0NPTlRBSU5TX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0NPTlRBSU5TX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEVyaWMgRnJpZWRtYW4gMjAwMgorLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBjb250YWluc19md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGNvbnRhaW5zX2ltcGw7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgY29udGFpbnM7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ09OVEFJTlNfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29weS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9jb3B5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTdlZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvY29weS5ocHAKQEAgLTAsMCArMSw1OCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9DT1BZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQ09QWV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMy0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGNvcHkuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZm9sZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3JldmVyc2VfZm9sZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5zZXJ0ZXJfYWxnb3JpdGhtLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFNlcXVlbmNlCisgICAgLCB0eXBlbmFtZSBJbnNlcnRlcgorICAgID4KK3N0cnVjdCBjb3B5X2ltcGwKKyAgICA6IGZvbGQ8IAorICAgICAgICAgIFNlcXVlbmNlCisgICAgICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXI6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXI6Om9wZXJhdGlvbgorICAgICAgICA+Cit7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFNlcXVlbmNlCisgICAgLCB0eXBlbmFtZSBJbnNlcnRlcgorICAgID4KK3N0cnVjdCByZXZlcnNlX2NvcHlfaW1wbAorICAgIDogcmV2ZXJzZV9mb2xkPAorICAgICAgICAgIFNlcXVlbmNlCisgICAgICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXI6OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXI6Om9wZXJhdGlvbgorICAgICAgICA+Cit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworQk9PU1RfTVBMX0FVWF9JTlNFUlRFUl9BTEdPUklUSE1fREVGKDIsIGNvcHkpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ09QWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2RlcmVmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2RlcmVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzA2MWY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZGVyZWYuaHBwCkBAIC0wLDAgKzEsNDEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfREVSRUZfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9ERVJFRl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGRlcmVmLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbXN2Y190eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oSXRlcmF0b3IpCisgICAgPgorc3RydWN0IGRlcmVmCit7CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzcwX0VUSV9CVUcpCisgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyYXRvcjo6dHlwZSB0eXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bXN2Y190eXBlPEl0ZXJhdG9yPjo6dHlwZSB0eXBlOworI2VuZGlmCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGRlcmVmLChJdGVyYXRvcikpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgZGVyZWYpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfREVSRUZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9kaXN0YW5jZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9kaXN0YW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YxZWY0YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Rpc3RhbmNlLmhwcApAQCAtMCwwICsxLDc4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0RJU1RBTkNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfRElTVEFOQ0VfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBkaXN0YW5jZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9kaXN0YW5jZV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pdGVyX2ZvbGQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pdGVyYXRvcl9yYW5nZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xvbmcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXBwbHlfd3JhcC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19ldGlfYmFzZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdmFsdWVfd2tuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ZvcndhcmRpbmcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBmb3J3YXJkL2JpZGlyZWN0aW9uYWwgaXRlcmF0b3JzCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IGRpc3RhbmNlX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgRmlyc3QsIHR5cGVuYW1lIExhc3QgPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9GT1JXQVJESU5HKQorICAgICAgICA6IGF1eDo6bXN2Y19ldGlfYmFzZTwgdHlwZW5hbWUgaXRlcl9mb2xkPAorICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGaXJzdCxMYXN0PgorICAgICAgICAgICAgLCBtcGw6OmxvbmdfPDA+CisgICAgICAgICAgICAsIG5leHQ8PgorICAgICAgICAgICAgPjo6dHlwZSA+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcl9mb2xkPAorICAgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZTxGaXJzdCxMYXN0PgorICAgICAgICAgICAgLCBtcGw6OmxvbmdfPDA+CisgICAgICAgICAgICAsIG5leHQ8PgorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgICAgICAKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGxvbmcsIHZhbHVlID0KKyAgICAgICAgICAgICAgKGl0ZXJfZm9sZDwKKyAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlPEZpcnN0LExhc3Q+CisgICAgICAgICAgICAgICAgLCBtcGw6OmxvbmdfPDA+CisgICAgICAgICAgICAgICAgLCBuZXh0PD4KKyAgICAgICAgICAgICAgICA+Ojp0eXBlOjp2YWx1ZSkKKyAgICAgICAgICAgICk7CisjZW5kaWYKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKEZpcnN0KQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShMYXN0KQorICAgID4KK3N0cnVjdCBkaXN0YW5jZQorICAgIDogZGlzdGFuY2VfaW1wbDwgdHlwZW5hbWUgdGFnPEZpcnN0Pjo6dHlwZSA+CisgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8Rmlyc3QsIExhc3Q+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLCBkaXN0YW5jZSwgKEZpcnN0LCBMYXN0KSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBkaXN0YW5jZSkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9ESVNUQU5DRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Rpc3RhbmNlX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9kaXN0YW5jZV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwOGQ2ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9kaXN0YW5jZV9md2QuaHBwCkBAIC0wLDAgKzEsMjggQEAKKworI2lmbmRlZiBCT09TVF9NUExfRElTVEFOQ0VfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfRElTVEFOQ0VfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZGlzdGFuY2VfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29tbW9uX25hbWVfd2tuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitCT09TVF9NUExfQVVYX0NPTU1PTl9OQU1FX1dLTkQoZGlzdGFuY2UpCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZGlzdGFuY2VfaW1wbDsKK3RlbXBsYXRlPCB0eXBlbmFtZSBGaXJzdCwgdHlwZW5hbWUgTGFzdCA+IHN0cnVjdCBkaXN0YW5jZTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9ESVNUQU5DRV9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9lbXB0eV9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZW1wdHlfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmEyMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZW1wdHlfZndkLmhwcApAQCAtMCwwICsxLDI0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0VNUFRZX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0VNUFRZX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGVtcHR5X2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgZW1wdHlfaW1wbDsKK3RlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSA+IHN0cnVjdCBlbXB0eTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9FTVBUWV9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9lcXVhbF90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQwMWYwYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0VRVUFMX1RPX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfRVFVQUxfVE9fSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBlcXVhbF90by5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2RlZmluZSBBVVg3NzgwNzZfT1BfTkFNRSBlcXVhbF90bworI2RlZmluZSBBVVg3NzgwNzZfT1BfVE9LRU4gPT0KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb21wYXJpc29uX29wLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9FUVVBTF9UT19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZXZhbF9pZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk0MDJhYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwCkBAIC0wLDAgKzEsNzEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfRVZBTF9JRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0VWQUxfSUZfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBldmFsX2lmLmhwcCA2MTkyMSAyMDEwLTA1LTExIDIxOjMzOjI0WiBuZWlsZ3JvdmVzICQKKy8vICREYXRlOiAyMDEwLTA1LTExIDE0OjMzOjI0IC0wNzAwIChUdWUsIDExIE1heSAyMDEwKSAkCisvLyAkUmV2aXNpb246IDYxOTIxICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oQykKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oRjEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKEYyKQorICAgID4KK3N0cnVjdCBldmFsX2lmCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSBcCisgICAgIHx8ICggQk9PU1RfV09SS0FST1VORChCT09TVF9NUExfQ0ZHX0dDQywgPj0gMHgwMzAwKSBcCisgICAgICAgICYmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVBMX0NGR19HQ0MsIEJPT1NUX1RFU1RFRF9BVCgweDAzMDQpKSBcCisgICAgICAgICkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmXzxDLEYxLEYyPjo6dHlwZSBmXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGZfOjp0eXBlIHR5cGU7CisjZWxzZQorICAgIDogaWZfPEMsRjEsRjI+Ojp0eXBlCit7CisjZW5kaWYKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsZXZhbF9pZiwoQyxGMSxGMikpCit9OworCisvLyAoYWxtb3N0KSBjb3B5ICYgcGFzdGUgaW4gb3JkZXIgdG8gc2F2ZSBvbmUgbW9yZSAKKy8vIHJlY3Vyc2l2ZWx5IG5lc3RlZCB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIHRvIHVzZXIKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDCisgICAgLCB0eXBlbmFtZSBGMQorICAgICwgdHlwZW5hbWUgRjIKKyAgICA+CitzdHJ1Y3QgZXZhbF9pZl9jCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSBcCisgICAgIHx8ICggQk9PU1RfV09SS0FST1VORChCT09TVF9NUExfQ0ZHX0dDQywgPj0gMHgwMzAwKSBcCisgICAgICAgICYmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVBMX0NGR19HQ0MsIEJPT1NUX1RFU1RFRF9BVCgweDAzMDQpKSBcCisgICAgICAgICkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGlmX2M8QyxGMSxGMj46OnR5cGUgZl87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBmXzo6dHlwZSB0eXBlOworI2Vsc2UKKyAgICA6IGlmX2M8QyxGMSxGMj46OnR5cGUKK3sKKyNlbmRpZgorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGV2YWxfaWYpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfRVZBTF9JRl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ZpbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZmluZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhMmMwOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ZpbmQuaHBwCkBAIC0wLDAgKzEsMzggQEAKKworI2lmbmRlZiBCT09TVF9NUExfRklORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0ZJTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBmaW5kLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ZpbmRfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9zYW1lX2FzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgPgorc3RydWN0IGZpbmQKKyAgICA6IGZpbmRfaWY8IFNlcXVlbmNlLHNhbWVfYXM8VD4gPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMixmaW5kLChTZXF1ZW5jZSxUKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBmaW5kKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0ZJTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9maW5kX2lmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ZpbmRfaWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkOTFiZWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9maW5kX2lmLmhwcApAQCAtMCwwICsxLDUwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0ZJTkRfSUZfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9GSU5EX0lGX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZmluZF9pZi5ocHAgNDkyNzQgMjAwOC0xMC0xMSAwNzoyMjowNVogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTExIDAwOjIyOjA1IC0wNzAwIChTYXQsIDExIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5Mjc0ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2ZpbmRfaWZfcHJlZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FyZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2l0ZXJfZm9sZF9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29tbW9uX25hbWVfd2tuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9DT01NT05fTkFNRV9XS05EKGZpbmRfaWYpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oUHJlZGljYXRlKQorICAgID4KK3N0cnVjdCBmaW5kX2lmCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBpdGVyX2ZvbGRfaWY8CisgICAgICAgICAgU2VxdWVuY2UKKyAgICAgICAgLCB2b2lkCisgICAgICAgICwgbXBsOjphcmc8MT4gLy8gaWdub3JlCisgICAgICAgICwgcHJvdGVjdDwgYXV4OjpmaW5kX2lmX3ByZWQ8UHJlZGljYXRlPiA+CisgICAgICAgID46OnR5cGUgcmVzdWx0XzsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2Vjb25kPHJlc3VsdF8+Ojp0eXBlIHR5cGU7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsZmluZF9pZiwoU2VxdWVuY2UsUHJlZGljYXRlKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLGZpbmRfaWYpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfRklORF9JRl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ZvbGQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZm9sZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIxNGI3OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ZvbGQuaHBwCkBAIC0wLDAgKzEsNDggQEAKKworI2lmbmRlZiBCT09TVF9NUExfRk9MRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0ZPTERfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBmb2xkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JlZ2luX2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL08xX3NpemUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2ZvbGRfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFNlcXVlbmNlKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTdGF0ZSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oRm9yd2FyZE9wKQorICAgID4KK3N0cnVjdCBmb2xkCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OmZvbGRfaW1wbDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6Ok8xX3NpemU8U2VxdWVuY2U+Ojp2YWx1ZQorICAgICAgICAsIHR5cGVuYW1lIGJlZ2luPFNlcXVlbmNlPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGVuZDxTZXF1ZW5jZT46OnR5cGUKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIEZvcndhcmRPcAorICAgICAgICA+OjpzdGF0ZSB0eXBlOworCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLGZvbGQsKFNlcXVlbmNlLFN0YXRlLEZvcndhcmRPcCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMywgZm9sZCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9GT0xEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvZm9yX2VhY2guaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZm9yX2VhY2guaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5OGRjNWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9mb3JfZWFjaC5ocHAKQEAgLTAsMCArMSwxMTYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfRk9SX0VBQ0hfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9GT1JfRUFDSF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA4CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGZvcl9lYWNoLmhwcCA1NTY0OCAyMDA5LTA4LTE4IDA1OjE2OjUzWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDktMDgtMTcgMjI6MTY6NTMgLTA3MDAgKE1vbiwgMTcgQXVnIDIwMDkpICQKKy8vICRSZXZpc2lvbjogNTU2NDggJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lzX3NlcXVlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXBwbHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dF9wcmlvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2RlcmVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3Vud3JhcC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L3ZhbHVlX2luaXQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCBib29sIGRvbmUgPSB0cnVlID4KK3N0cnVjdCBmb3JfZWFjaF9pbXBsCit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0SXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBUcmFuc2Zvcm1GdW5jCisgICAgICAgICwgdHlwZW5hbWUgRgorICAgICAgICA+CisgICAgc3RhdGljIHZvaWQgZXhlY3V0ZSgKKyAgICAgICAgICBJdGVyYXRvcioKKyAgICAgICAgLCBMYXN0SXRlcmF0b3IqCisgICAgICAgICwgVHJhbnNmb3JtRnVuYyoKKyAgICAgICAgLCBGCisgICAgICAgICkKKyAgICB7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZvcl9lYWNoX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8CisgICAgICAgICAgdHlwZW5hbWUgSXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBMYXN0SXRlcmF0b3IKKyAgICAgICAgLCB0eXBlbmFtZSBUcmFuc2Zvcm1GdW5jCisgICAgICAgICwgdHlwZW5hbWUgRgorICAgICAgICA+CisgICAgc3RhdGljIHZvaWQgZXhlY3V0ZSgKKyAgICAgICAgICBJdGVyYXRvcioKKyAgICAgICAgLCBMYXN0SXRlcmF0b3IqCisgICAgICAgICwgVHJhbnNmb3JtRnVuYyogCisgICAgICAgICwgRiBmCisgICAgICAgICkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGVyZWY8SXRlcmF0b3I+Ojp0eXBlIGl0ZW07CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXBwbHkxPFRyYW5zZm9ybUZ1bmMsaXRlbT46OnR5cGUgYXJnOworICAgIAorICAgICAgICAvLyBkd2EgMjAwMi85LzEwIC0tIG1ha2Ugc3VyZSBub3QgdG8gaW52b2tlIHVuZGVmaW5lZCBiZWhhdmlvcgorICAgICAgICAvLyB3aGVuIHdlIHBhc3MgYXJnLgorICAgICAgICB2YWx1ZV9pbml0aWFsaXplZDxhcmc+IHg7CisgICAgICAgIGF1eDo6dW53cmFwKGYsIDApKG5kbmJvb3N0OjpnZXQoeCkpOworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8SXRlcmF0b3I+Ojp0eXBlIGl0ZXI7CisgICAgICAgIGZvcl9lYWNoX2ltcGw8bmRuYm9vc3Q6OmlzX3NhbWU8aXRlcixMYXN0SXRlcmF0b3I+Ojp2YWx1ZT4KKyAgICAgICAgICAgIDo6ZXhlY3V0ZSggc3RhdGljX2Nhc3Q8aXRlcio+KDApLCBzdGF0aWNfY2FzdDxMYXN0SXRlcmF0b3IqPigwKSwgc3RhdGljX2Nhc3Q8VHJhbnNmb3JtRnVuYyo+KDApLCBmKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKworLy8gYWd1cnQsIDE3L21hci8wMjogcG9pbnRlciBkZWZhdWx0IHBhcmFtZXRlcnMgYXJlIG5lY2Vzc2FyeSB0byB3b3JrYXJvdW5kIAorLy8gTVNWQyA2LjUgZnVuY3Rpb24gdGVtcGxhdGUgc2lnbmF0dXJlJ3MgbWFuZ2xpbmcgYnVnCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFNlcXVlbmNlCisgICAgLCB0eXBlbmFtZSBUcmFuc2Zvcm1PcAorICAgICwgdHlwZW5hbWUgRgorICAgID4KK2lubGluZQordm9pZCBmb3JfZWFjaChGIGYsIFNlcXVlbmNlKiA9IDAsIFRyYW5zZm9ybU9wKiA9IDApCit7CisgICAgQk9PU1RfTVBMX0FTU0VSVCgoIGlzX3NlcXVlbmNlPFNlcXVlbmNlPiApKTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmVnaW48U2VxdWVuY2U+Ojp0eXBlIGZpcnN0OworICAgIHR5cGVkZWYgdHlwZW5hbWUgZW5kPFNlcXVlbmNlPjo6dHlwZSBsYXN0OworCisgICAgYXV4Ojpmb3JfZWFjaF9pbXBsPCBuZG5ib29zdDo6aXNfc2FtZTxmaXJzdCxsYXN0Pjo6dmFsdWUgPgorICAgICAgICA6OmV4ZWN1dGUoc3RhdGljX2Nhc3Q8Zmlyc3QqPigwKSwgc3RhdGljX2Nhc3Q8bGFzdCo+KDApLCBzdGF0aWNfY2FzdDxUcmFuc2Zvcm1PcCo+KDApLCBmKTsKK30KKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBTZXF1ZW5jZQorICAgICwgdHlwZW5hbWUgRgorICAgID4KK2lubGluZQordm9pZCBmb3JfZWFjaChGIGYsIFNlcXVlbmNlKiA9IDApCit7CisgICAgZm9yX2VhY2g8U2VxdWVuY2UsIGlkZW50aXR5PD4gPihmKTsKK30KKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9GT1JfRUFDSF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Zyb250X2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9mcm9udF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZTIyOWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9mcm9udF9md2QuaHBwCkBAIC0wLDAgKzEsMjQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfRlJPTlRfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfRlJPTlRfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZnJvbnRfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBmcm9udF9pbXBsOwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IGZyb250OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0ZST05UX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Zyb250X2luc2VydGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2Zyb250X2luc2VydGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDc2ZDFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZnJvbnRfaW5zZXJ0ZXIuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfRlJPTlRfSU5TRVJURVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9GUk9OVF9JTlNFUlRFUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMy0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMy0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGZyb250X2luc2VydGVyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3B1c2hfZnJvbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnNlcnRlci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFNlcXVlbmNlCisgICAgPgorc3RydWN0IGZyb250X2luc2VydGVyCisgICAgOiBpbnNlcnRlcjwgU2VxdWVuY2UscHVzaF9mcm9udDw+ID4KK3sKK307CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfRlJPTlRfSU5TRVJURVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9ncmVhdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2dyZWF0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZjVkYjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9ncmVhdGVyLmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0dSRUFURVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9HUkVBVEVSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZ3JlYXRlci5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2RlZmluZSBBVVg3NzgwNzZfT1BfTkFNRSBncmVhdGVyCisjZGVmaW5lIEFVWDc3ODA3Nl9PUF9UT0tFTiA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29tcGFyaXNvbl9vcC5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfR1JFQVRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2dyZWF0ZXJfZXF1YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvZ3JlYXRlcl9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU3NmUwMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2dyZWF0ZXJfZXF1YWwuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfR1JFQVRFUl9FUVVBTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0dSRUFURVJfRVFVQUxfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBncmVhdGVyX2VxdWFsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjZGVmaW5lIEFVWDc3ODA3Nl9PUF9OQU1FIGdyZWF0ZXJfZXF1YWwKKyNkZWZpbmUgQVVYNzc4MDc2X09QX1RPS0VOID49CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29tcGFyaXNvbl9vcC5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfR1JFQVRFUl9FUVVBTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2hhc194eHguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaGFzX3h4eC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdkNDkxZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2hhc194eHguaHBwCkBAIC0wLDAgKzEsNjQwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0hBU19YWFhfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9IQVNfWFhYX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDYKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLTIwMDMKKy8vIENvcHlyaWdodCBEYW5pZWwgV2Fsa2VyIDIwMDcKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaGFzX3h4eC5ocHAgNjQxNDYgMjAxMC0wNy0xOSAwMDo0NjozMVogZGp3YWxrZXIgJAorLy8gJERhdGU6IDIwMTAtMDctMTggMTc6NDY6MzEgLTA3MDAgKFN1biwgMTggSnVsIDIwMTApICQKKy8vICRSZXZpc2lvbjogNjQxNDYgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3R5cGVfd3JhcHBlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaGFzX3h4eC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmNfdHlwZW5hbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZWxlbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3RyYWlsaW5nX3BhcmFtcy5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU5MCkgKQorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHA+CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fSEFTX1hYWCkKKworIyAgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkKKworLy8gYWd1cnQsIDExL3NlcC8wMjogTVNWQy1zcGVjaWZpYyB2ZXJzaW9uICg8IDcuMSksIGJhc2VkIG9uIGEgVVNFTkVUIAorLy8gbmV3c2dyb3VwJ3MgcG9zdGluZyBieSBKb2huIE1hZHNlbiAoY29tcC5sYW5nLmMrKy5tb2RlcmF0ZWQsIAorLy8gMTk5OS0xMS0xMiAxOToxNzowNiBHTVQpOyB0aGUgY29kZSBpcyBfbm90XyBzdGFuZGFyZC1jb25mb3JtaW5nLCBidXQgCisvLyBpdCB3b3JrcyB3YXkgbW9yZSByZWxpYWJseSB0aGFuIHRoZSBTRklOQUUtYmFzZWQgaW1wbGVtZW50YXRpb24KKworLy8gTW9kaWZpZWQgZHdhIDgvT2N0LzAyIHRvIGhhbmRsZSByZWZlcmVuY2UgdHlwZXMuCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCitzdHJ1Y3QgaGFzX3h4eF90YWc7CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDEzMDApCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVSA+IHN0cnVjdCBtc3ZjX2luY29tcGxldGVfYXJyYXkKK3sKKyAgICB0eXBlZGVmIGNoYXIgKCZ0eXBlKVtzaXplb2YoVSkgKyAxXTsKK307CisjZW5kaWYKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IG1zdmNfaXNfaW5jb21wbGV0ZQoreworICAgIC8vIE1TVkMgaXMgY2FwYWJsZSBvZiBzb21lIGtpbmRzIG9mIFNGSU5BRS4gIElmIFUgaXMgYW4gaW5jb21wbGV0ZQorICAgIC8vIHR5cGUsIGl0IHdvbid0IHBpY2sgdGhlIHNlY29uZCBvdmVybG9hZAorICAgIHN0YXRpYyBjaGFyIHRlc3RlciguLi4pOworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzAwKQorICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVID4KKyAgICBzdGF0aWMgdHlwZW5hbWUgbXN2Y19pbmNvbXBsZXRlX2FycmF5PFU+Ojp0eXBlIHRlc3Rlcih0eXBlX3dyYXBwZXI8VT4pOworI2Vsc2UKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVSA+CisgICAgc3RhdGljIGNoYXIgKCYgdGVzdGVyKHR5cGVfd3JhcHBlcjxVPikgKVtzaXplb2YoVSkrMV07CisjZW5kaWYgCisgICAgCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gCisgICAgICAgICAgc2l6ZW9mKHRlc3Rlcih0eXBlX3dyYXBwZXI8VD4oKSkpID09IDEKKyAgICAgICAgKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtc3ZjX2lzX2luY29tcGxldGU8aW50PgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKK319fQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfWFhYX1RSQUlUX05BTUVEX0RFRl8odHJhaXQsIG5hbWUsIGRlZmF1bHRfKSBcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgbmFtZSA9IDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfeHh4X3RhZyA+IFwKK3N0cnVjdCBCT09TVF9QUF9DQVQodHJhaXQsX2ltcGwpIDogVCBcCit7IFwKKyAgICBzdGF0aWMgbmRuYm9vc3Q6Om1wbDo6YXV4Ojpub190YWcgXAorICAgIHRlc3Qodm9pZCgqKSg6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3h4eF90YWcpKTsgXAorICAgIFwKKyAgICBzdGF0aWMgbmRuYm9vc3Q6Om1wbDo6YXV4Ojp5ZXNfdGFnIHRlc3QoLi4uKTsgXAorICAgIFwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBcCisgICAgICAgICAgc2l6ZW9mKHRlc3Qoc3RhdGljX2Nhc3Q8dm9pZCgqKShuYW1lKT4oMCkpKSBcCisgICAgICAgICAgICAhPSBzaXplb2YobmRuYm9vc3Q6Om1wbDo6YXV4Ojpub190YWcpIFwKKyAgICAgICAgKTsgXAorICAgIHR5cGVkZWYgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88dmFsdWU+IHR5cGU7IFwKK307IFwKK1wKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBmYWxsYmFja18gPSBuZG5ib29zdDo6bXBsOjpib29sXzxkZWZhdWx0Xz4gPiBcCitzdHJ1Y3QgdHJhaXQgXAorICAgIDogbmRuYm9vc3Q6Om1wbDo6aWZfYzwgXAorICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmF1eDo6bXN2Y19pc19pbmNvbXBsZXRlPFQ+Ojp2YWx1ZSBcCisgICAgICAgICwgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88ZmFsc2U+IFwKKyAgICAgICAgLCBCT09TVF9QUF9DQVQodHJhaXQsX2ltcGwpPFQ+IFwKKyAgICAgICAgPjo6dHlwZSBcCit7IFwKK307IFwKK1wKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCB2b2lkKSBcCitCT09TVF9NUExfQVVYX0hBU19YWFhfVFJBSVRfU1BFQyh0cmFpdCwgYm9vbCkgXAorQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIGNoYXIpIFwKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCBzaWduZWQgY2hhcikgXAorQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIHVuc2lnbmVkIGNoYXIpIFwKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCBzaWduZWQgc2hvcnQpIFwKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCB1bnNpZ25lZCBzaG9ydCkgXAorQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIHNpZ25lZCBpbnQpIFwKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCB1bnNpZ25lZCBpbnQpIFwKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCBzaWduZWQgbG9uZykgXAorQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIHVuc2lnbmVkIGxvbmcpIFwKK0JPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCBmbG9hdCkgXAorQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIGRvdWJsZSkgXAorQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIGxvbmcgZG91YmxlKSBcCisvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9IQVNfWFhYX1RSQUlUX1NQRUModHJhaXQsIFQpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0PFQ+IFwKK3sgXAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsgXAorICAgIHR5cGVkZWYgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88ZmFsc2U+IHR5cGU7IFwKK307IFwKKy8qKi8KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UKQorIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYodHJhaXQsIG5hbWUsIHVudXNlZCkgXAorICAgIEJPT1NUX01QTF9IQVNfWFhYX1RSQUlUX05BTUVEX0RFRl8odHJhaXQsIG5hbWUsIHVudXNlZCkgXAorICAgIEJPT1NUX01QTF9BVVhfSEFTX1hYWF9UUkFJVF9TUEVDKHRyYWl0LCB3Y2hhcl90KSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYodHJhaXQsIG5hbWUsIHVudXNlZCkgXAorICAgIEJPT1NUX01QTF9IQVNfWFhYX1RSQUlUX05BTUVEX0RFRl8odHJhaXQsIG5hbWUsIHVudXNlZCkgXAorLyoqLworI2VuZGlmCisKKworLy8gU0ZJTkFFLWJhc2VkIGltcGxlbWVudGF0aW9ucyBiZWxvdyBhcmUgZGVyaXZlZCBmcm9tIGEgVVNFTkVUIG5ld3Nncm91cCdzIAorLy8gcG9zdGluZyBieSBSYW5pIFNoYXJvbmkgKGNvbXAubGFuZy5jKysubW9kZXJhdGVkLCAyMDAyLTAzLTE3IDA3OjQ1OjA5IFBTVCkKKworIyAgIGVsaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCBCT09TVF9URVNURURfQVQoMTQwMCkpIFwKKyAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgPD0gNzAwKQorCisvLyBNU1ZDIDcuMSsgJiBWQUNQUAorCisvLyBhZ3VydCwgMTUvanVuLzA1OiByZXBsYWNlIG92ZXJsb2FkLWJhc2VkIFNGSU5BRSBpbXBsZW1lbnRhdGlvbiB3aXRoIFNGSU5BRQorLy8gYXBwbGllZCB0byBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHRvIGZpeCBzb21lIGFwcGFyZW50bHkgcmFuZG9tIGZhaWx1cmVzIAorLy8gKHRoYW5rcyB0byBEYW5pZWwgV2FsbGluIGZvciByZXNlYXJjaGluZyB0aGlzISkKKworIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYodHJhaXQsIG5hbWUsIGRlZmF1bHRfKSBcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IFwKK3N0cnVjdCBCT09TVF9QUF9DQVQodHJhaXQsIF9tc3ZjX3NmaW5hZV9oZWxwZXIpIFwKK3sgXAorICAgIHR5cGVkZWYgdm9pZCB0eXBlOyBcCit9O1wKK1wKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBVID0gdm9pZCA+IFwKK3N0cnVjdCBCT09TVF9QUF9DQVQodHJhaXQsX2ltcGxfKSBcCit7IFwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7IFwKKyAgICB0eXBlZGVmIG5kbmJvb3N0OjptcGw6OmJvb2xfPHZhbHVlPiB0eXBlOyBcCit9OyBcCitcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IFwKK3N0cnVjdCBCT09TVF9QUF9DQVQodHJhaXQsX2ltcGxfKTwgXAorICAgICAgVCBcCisgICAgLCB0eXBlbmFtZSBCT09TVF9QUF9DQVQodHJhaXQsIF9tc3ZjX3NmaW5hZV9oZWxwZXIpPCB0eXBlbmFtZSBUOjpuYW1lID46OnR5cGUgXAorICAgID4gXAoreyBcCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IFwKKyAgICB0eXBlZGVmIG5kbmJvb3N0OjptcGw6OmJvb2xfPHZhbHVlPiB0eXBlOyBcCit9OyBcCitcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgZmFsbGJhY2tfID0gbmRuYm9vc3Q6Om1wbDo6Ym9vbF88ZGVmYXVsdF8+ID4gXAorc3RydWN0IHRyYWl0IFwKKyAgICA6IEJPT1NUX1BQX0NBVCh0cmFpdCxfaW1wbF8pPFQ+IFwKK3sgXAorfTsgXAorLyoqLworCisjICAgZWxpZiBCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU5MCkgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfWFhYX1RSQUlUX05BTUVEX0JDQl9ERUYodHJhaXQsIHRyYWl0X3Rlc3RlciwgbmFtZSwgZGVmYXVsdF8pIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBib29sIElTX0NMQVNTID4gXAorc3RydWN0IHRyYWl0X3Rlc3RlciBcCit7IFwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoIGJvb2wsICB2YWx1ZSA9IGZhbHNlICk7IFwKK307IFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gXAorc3RydWN0IHRyYWl0X3Rlc3RlcjwgVCwgdHJ1ZSA+IFwKK3sgXAorICAgIHN0cnVjdCB0cmFpdF90ZXN0ZXJfaW1wbCBcCisgICAgeyBcCisgICAgICAgIHRlbXBsYXRlIDwgY2xhc3MgVSA+IFwKKyAgICAgICAgc3RhdGljIGludCAgcmVzb2x2ZSggbmRuYm9vc3Q6Om1wbDo6YXV4Ojp0eXBlX3dyYXBwZXI8VT4gY29uc3Qgdm9sYXRpbGUgKiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG5kbmJvb3N0OjptcGw6OmF1eDo6dHlwZV93cmFwcGVyPHR5cGVuYW1lIFU6Om5hbWUgPiogPSAwICk7IFwKKyAgICAgICAgc3RhdGljIGNoYXIgcmVzb2x2ZSggLi4uICk7IFwKKyAgICB9OyBcCisgICAgdHlwZWRlZiBuZG5ib29zdDo6bXBsOjphdXg6OnR5cGVfd3JhcHBlcjxUPiB0XzsgXAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCggYm9vbCwgdmFsdWUgPSAoIHNpemVvZiggdHJhaXRfdGVzdGVyX2ltcGw6OnJlc29sdmUoIHN0YXRpY19jYXN0PCB0XyAqID4oMCkgKSApID09IHNpemVvZihpbnQpICkgKTsgXAorfTsgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIGZhbGxiYWNrXyA9IG5kbmJvb3N0OjptcGw6OmJvb2xfPGRlZmF1bHRfPiA+IFwKK3N0cnVjdCB0cmFpdCAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKCBib29sLCB2YWx1ZSA9ICh0cmFpdF90ZXN0ZXI8IFQsIG5kbmJvb3N0Ojppc19jbGFzczwgVCA+Ojp2YWx1ZSA+Ojp2YWx1ZSkgKTsgICAgIFwKKyAgICB0eXBlZGVmIG5kbmJvb3N0OjptcGw6OmJvb2xfPCB0cmFpdDwgVCwgZmFsbGJhY2tfID46OnZhbHVlID4gdHlwZTsgXAorfTsKKworIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYodHJhaXQsIG5hbWUsIGRlZmF1bHRfKSBcCisgICAgQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfTkFNRURfQkNCX0RFRiggdHJhaXQgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIEJPT1NUX1BQX0NBVCh0cmFpdCxfdGVzdGVyKSAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBuYW1lICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBkZWZhdWx0XyApIFwKKy8qKi8KKworIyAgIGVsc2UgLy8gb3RoZXIgU0ZJTkFFLWNhcGFibGUgY29tcGlsZXJzCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfTkFNRURfREVGKHRyYWl0LCBuYW1lLCBkZWZhdWx0XykgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIGZhbGxiYWNrXyA9IG5kbmJvb3N0OjptcGw6OmJvb2xfPGRlZmF1bHRfPiA+IFwKK3N0cnVjdCB0cmFpdCBcCit7IFwKKyAgICBzdHJ1Y3QgZ2NjXzNfMl93a25kIFwKKyAgICB7IFwKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUgPiBcCisgICAgICAgIHN0YXRpYyBuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcgdGVzdCggXAorICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjphdXg6OnR5cGVfd3JhcHBlcjxVPiBjb25zdCB2b2xhdGlsZSogXAorICAgICAgICAgICAgLCBuZG5ib29zdDo6bXBsOjphdXg6OnR5cGVfd3JhcHBlcjxCT09TVF9NU1ZDX1RZUEVOQU1FIFU6Om5hbWU+KiA9IDAgXAorICAgICAgICAgICAgKTsgXAorICAgIFwKKyAgICAgICAgc3RhdGljIG5kbmJvb3N0OjptcGw6OmF1eDo6bm9fdGFnIHRlc3QoLi4uKTsgXAorICAgIH07IFwKKyAgICBcCisgICAgdHlwZWRlZiBuZG5ib29zdDo6bXBsOjphdXg6OnR5cGVfd3JhcHBlcjxUPiB0XzsgXAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IFwKKyAgICAgICAgICBzaXplb2YoZ2NjXzNfMl93a25kOjp0ZXN0KHN0YXRpY19jYXN0PHRfKj4oMCkpKSBcCisgICAgICAgICAgICA9PSBzaXplb2YobmRuYm9vc3Q6Om1wbDo6YXV4Ojp5ZXNfdGFnKSBcCisgICAgICAgICk7IFwKKyAgICB0eXBlZGVmIG5kbmJvb3N0OjptcGw6OmJvb2xfPHZhbHVlPiB0eXBlOyBcCit9OyBcCisvKiovCisKKyMgICBlbmRpZiAvLyBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApCisKKworI2Vsc2UgLy8gQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYCisKKy8vIHBsYWNlaG9sZGVyIGltcGxlbWVudGF0aW9uCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfTkFNRURfREVGKHRyYWl0LCBuYW1lLCBkZWZhdWx0XykgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIGZhbGxiYWNrXyA9IG5kbmJvb3N0OjptcGw6OmJvb2xfPGRlZmF1bHRfPiA+IFwKK3N0cnVjdCB0cmFpdCBcCit7IFwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxsYmFja186OnZhbHVlKTsgXAorICAgIHR5cGVkZWYgZmFsbGJhY2tfIHR5cGU7IFwKK307IFwKKy8qKi8KKworI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTVBMX0hBU19YWFhfVFJBSVRfREVGKG5hbWUpIFwKKyAgICBCT09TVF9NUExfSEFTX1hYWF9UUkFJVF9OQU1FRF9ERUYoQk9PU1RfUFBfQ0FUKGhhc18sbmFtZSksIG5hbWUsIGZhbHNlKSBcCisvKiovCisKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fSEFTX1hYWF9URU1QTEFURSkKKworLy8gQ3JlYXRlIGEgYm9vbGVhbiBNZXRhZnVuY3Rpb24gdG8gZGV0ZWN0IGEgbmVzdGVkIHRlbXBsYXRlCisvLyBtZW1iZXIuIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgb24gYSBVU0VORVQgbmV3c2dyb3VwJ3MKKy8vIHBvc3RpbmcgYnkgQWxla3NleSBHdXJ0b3ZveSAoY29tcC5sYW5nLmMrKy5tb2RlcmF0ZWQsIDIwMDItMDMtMTkpLAorLy8gUmFuaSBTaGFyb25pJ3MgVVNFTkVUIHBvc3RpbmcgY2l0ZWQgYWJvdmUsIHRoZSBub24tdGVtcGxhdGUgaGFzX3h4eAorLy8gaW1wbGVtZW50YXRpb25zIGFib3ZlLCBhbmQgZGlzY3Vzc2lvbiBvbiB0aGUgQm9vc3QgbWFpbGluZyBsaXN0LgorCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0hBU19YWFhfTk9fV1JBUFBFRF9UWVBFUykKKyMgICAgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTQwMCkKKyMgICAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfWFhYX05PX1dSQVBQRURfVFlQRVMgMQorIyAgICAgZW5kaWYKKyMgICBlbmRpZgorCisjICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0hBU19YWFhfTk9fRVhQTElDSVRfVEVTVF9GVU5DVElPTikKKyMgICAgIGlmIChkZWZpbmVkKEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUykpCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX1hYWF9OT19FWFBMSUNJVF9URVNUX0ZVTkNUSU9OIDEKKyMgICAgIGVuZGlmCisjICAgZW5kaWYKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX01QTF9IQVNfWFhYX05FRURTX1RFTVBMQVRFX1NGSU5BRSkKKyMgICAgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTQwMCkKKyMgICAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfWFhYX05FRURTX1RFTVBMQVRFX1NGSU5BRSAxCisjICAgICBlbmRpZgorIyAgIGVuZGlmCisKKy8vIE5PVEU6IE1hbnkgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gbWFjcm9zIHRha2UgYSBCb29zdC5QcmVwcm9jZXNzb3IKKy8vIGFycmF5IGFyZ3VtZW50IGNhbGxlZCBhcmdzIHdoaWNoIGlzIG9mIHRoZSBmb2xsb3dpbmcgZm9ybS4KKy8vICAgICAgICAgICAoIDQsICggdHJhaXQsIG5hbWUsIG1heF9hcml0eSwgZGVmYXVsdF8gKSApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9OQU1FKGFyZ3MpIFwKKyAgICAgIEJPT1NUX1BQX0NBVChCT09TVF9QUF9BUlJBWV9FTEVNKDAsIGFyZ3MpICwgX2ludHJvc3BlY3QpIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9TVUJTVElUVVRFX05BTUUoYXJncywgbikgXAorICAgICAgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVChCT09TVF9QUF9BUlJBWV9FTEVNKDAsIGFyZ3MpICwgX3N1YnN0aXR1dGUpLCBuKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fVEVTVF9OQU1FKGFyZ3MpIFwKKyAgICAgIEJPT1NUX1BQX0NBVChCT09TVF9QUF9BUlJBWV9FTEVNKDAsIGFyZ3MpICwgX3Rlc3QpIFwKKyAgICAvKiovCisKKy8vIFRoYW5rcyB0byBHdWlsbGF1bWUgTWVscXVpb25kIGZvciBwb2ludGluZyBvdXQgdGhlIG5lZWQgZm9yIHRoZQorLy8gInN1YnN0aXR1dGUiIHRlbXBsYXRlIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBvdmVybG9hZGVkIHRlc3QKKy8vIGZ1bmN0aW9ucyB0byBnZXQgU0ZJTkFFIHRvIHdvcmsgZm9yIG1lbWJlciB0ZW1wbGF0ZXMgd2l0aCB0aGUKKy8vIGNvcnJlY3QgbmFtZSBidXQgZGlmZmVyZW50IG51bWJlciBvZiBhcmd1bWVudHMuCisjICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX01VTFRJX1NVQlNUSVRVVEUoeiwgbiwgYXJncykgXAorICAgICAgdGVtcGxhdGU8IFwKKyAgICAgICAgICB0ZW1wbGF0ZTwgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfSU5DKG4pLCB0eXBlbmFtZSBWKSA+IGNsYXNzIFYgXAorICAgICAgID4gXAorICAgICAgc3RydWN0IEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fU1VCU1RJVFVURV9OQU1FKGFyZ3MsIG4pIHsgXAorICAgICAgfTsgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9TVUJTVElUVVRFKGFyZ3MsIHN1YnN0aXR1dGVfbWFjcm8pIFwKKyAgICAgIEJPT1NUX1BQX1JFUEVBVCggXAorICAgICAgICAgIEJPT1NUX1BQX0FSUkFZX0VMRU0oMiwgYXJncykgXAorICAgICAgICAsIEJPT1NUX01QTF9IQVNfTUVNQkVSX01VTFRJX1NVQlNUSVRVVEUgXAorICAgICAgICAsIGFyZ3MgXAorICAgICAgKSBcCisgICAgLyoqLworCisjICAgaWYgIUJPT1NUX01QTF9IQVNfWFhYX05PX0VYUExJQ0lUX1RFU1RfRlVOQ1RJT04KKyMgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9SRUpFQ1QoYXJncywgbWVtYmVyX21hY3JvKSBcCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWID4gXAorICAgICAgICBzdGF0aWMgbmRuYm9vc3Q6Om1wbDo6YXV4Ojpub190YWcgXAorICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1RFU1RfTkFNRShhcmdzKSguLi4pOyBcCisgICAgICAvKiovCisjICAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX1JFSkVDVChhcmdzLCBtZW1iZXJfbWFjcm8pIFwKKyAgICAgICAgc3RhdGljIG5kbmJvb3N0OjptcGw6OmF1eDo6bm9fdGFnIFwKKyAgICAgICAgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9URVNUX05BTUUoYXJncykoLi4uKTsgXAorICAgICAgLyoqLworIyAgIGVuZGlmCisKKyMgICBpZiAhQk9PU1RfTVBMX0hBU19YWFhfTk9fV1JBUFBFRF9UWVBFUworIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX01VTFRJX0FDQ0VQVCh6LCBuLCBhcmdzKSBcCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWID4gXAorICAgICAgICBzdGF0aWMgbmRuYm9vc3Q6Om1wbDo6YXV4Ojp5ZXNfdGFnIFwKKyAgICAgICAgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9URVNUX05BTUUoYXJncykoIFwKKyAgICAgICAgICAgIG5kbmJvb3N0OjptcGw6OmF1eDo6dHlwZV93cmFwcGVyPCBWID4gY29uc3Qgdm9sYXRpbGUqIFwKKyAgICAgICAgICAsIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fU1VCU1RJVFVURV9OQU1FKGFyZ3MsIG4pIDwgXAorICAgICAgICAgICAgICAgIFY6OnRlbXBsYXRlIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgYXJncykgXAorICAgICAgICAgICAgPiogPSAwIFwKKyAgICAgICAgKTsgXAorICAgICAgLyoqLworIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0FDQ0VQVChhcmdzLCBtZW1iZXJfbWFjcm8pIFwKKyAgICAgICAgQk9PU1RfUFBfUkVQRUFUKCBcCisgICAgICAgICAgICBCT09TVF9QUF9BUlJBWV9FTEVNKDIsIGFyZ3MpIFwKKyAgICAgICAgICAsIEJPT1NUX01QTF9IQVNfTUVNQkVSX01VTFRJX0FDQ0VQVCBcCisgICAgICAgICAgLCBhcmdzIFwKKyAgICAgICAgKSBcCisgICAgICAvKiovCisjICAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0FDQ0VQVChhcmdzLCBtZW1iZXJfbWFjcm8pIFwKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFYgPiBcCisgICAgICAgIHN0YXRpYyBuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcgXAorICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1RFU1RfTkFNRShhcmdzKSggXAorICAgICAgICAgICAgViBjb25zdCB2b2xhdGlsZSogXAorICAgICAgICAgICwgbWVtYmVyX21hY3JvKGFyZ3MsIFYsIFQpKiA9IDAgXAorICAgICAgICApOyBcCisgICAgICAvKiovCisjICAgZW5kaWYKKworIyAgIGlmICFCT09TVF9NUExfSEFTX1hYWF9OT19FWFBMSUNJVF9URVNUX0ZVTkNUSU9OCisjICAgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19NRU1CRVJfVEVTVChhcmdzKSBcCisgICAgICAgICAgc2l6ZW9mKEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fVEVTVF9OQU1FKGFyZ3MpPCBVID4oMCkpIFwKKyAgICAgICAgICAgICAgPT0gc2l6ZW9mKG5kbmJvb3N0OjptcGw6OmF1eDo6eWVzX3RhZykgXAorICAgICAgLyoqLworIyAgIGVsc2UKKyMgICAgIGlmICFCT09TVF9NUExfSEFTX1hYWF9OT19XUkFQUEVEX1RZUEVTCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9URVNUKGFyZ3MpIFwKKyAgICAgICAgICBzaXplb2YoIFwKKyAgICAgICAgICAgICAgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9URVNUX05BTUUoYXJncykoIFwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PCBuZG5ib29zdDo6bXBsOjphdXg6OnR5cGVfd3JhcHBlcjwgVSA+KiA+KDApIFwKKyAgICAgICAgICAgICAgKSBcCisgICAgICAgICAgKSA9PSBzaXplb2YobmRuYm9vc3Q6Om1wbDo6YXV4Ojp5ZXNfdGFnKSBcCisgICAgICAgIC8qKi8KKyMgICAgIGVsc2UKKyMgICAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX1RFU1QoYXJncykgXAorICAgICAgICAgIHNpemVvZiggXAorICAgICAgICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1RFU1RfTkFNRShhcmdzKSggXAorICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8IFUqID4oMCkgXAorICAgICAgICAgICAgICApIFwKKyAgICAgICAgICApID09IHNpemVvZihuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcpIFwKKyAgICAgICAgLyoqLworIyAgICAgZW5kaWYKKyMgICBlbmRpZgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1QoIFwKKyAgICAgICAgICAgICAgIGFyZ3MsIHN1YnN0aXR1dGVfbWFjcm8sIG1lbWJlcl9tYWNybyBcCisgICAgICAgICAgICkgXAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUgPiBcCisgICAgICBzdHJ1Y3QgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9OQU1FKGFyZ3MpIHsgXAorICAgICAgICAgIEJPT1NUX01QTF9IQVNfTUVNQkVSX1NVQlNUSVRVVEUoYXJncywgc3Vic3RpdHV0ZV9tYWNybykgXAorICAgICAgICAgIEJPT1NUX01QTF9IQVNfTUVNQkVSX1JFSkVDVChhcmdzLCBtZW1iZXJfbWFjcm8pIFwKKyAgICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9BQ0NFUFQoYXJncywgbWVtYmVyX21hY3JvKSBcCisgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKCBcCisgICAgICAgICAgICAgIGJvb2wsIHZhbHVlID0gQk9PU1RfTVBMX0hBU19NRU1CRVJfVEVTVChhcmdzKSBcCisgICAgICAgICAgKTsgXAorICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6Om1wbDo6Ym9vbF88IHZhbHVlID4gdHlwZTsgXAorICAgICAgfTsgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9JTVBMRU1FTlRBVElPTiggXAorICAgICAgICAgICAgICAgYXJncywgaW50cm9zcGVjdF9tYWNybywgc3Vic3RpdHV0ZV9tYWNybywgbWVtYmVyX21hY3JvIFwKKyAgICAgICAgICAgKSBcCisgICAgICB0ZW1wbGF0ZTwgXAorICAgICAgICAgIHR5cGVuYW1lIFQgXAorICAgICAgICAsIHR5cGVuYW1lIGZhbGxiYWNrXyBcCisgICAgICAgICAgICAgID0gbmRuYm9vc3Q6Om1wbDo6Ym9vbF88IEJPT1NUX1BQX0FSUkFZX0VMRU0oMywgYXJncykgPiBcCisgICAgICA+IFwKKyAgICAgIGNsYXNzIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgYXJncykgeyBcCisgICAgICAgICAgaW50cm9zcGVjdF9tYWNybyhhcmdzLCBzdWJzdGl0dXRlX21hY3JvLCBtZW1iZXJfbWFjcm8pIFwKKyAgICAgIHB1YmxpYzogXAorICAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlIFwKKyAgICAgICAgICAgICAgPSBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX05BTUUoYXJncyk8IFQgPjo6dmFsdWU7IFwKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fTkFNRShhcmdzKTwgXAorICAgICAgICAgICAgICBUIFwKKyAgICAgICAgICA+Ojp0eXBlIHR5cGU7IFwKKyAgICAgIH07IFwKKyAgICAvKiovCisKKy8vIEJPT1NUX01QTF9IQVNfTUVNQkVSX1dJVEhfRlVOQ1RJT05fU0ZJTkFFIGV4cGFuZHMgdG8gdGhlIGZ1bGwKKy8vIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbi1iYXNlZCBtZXRhZnVuY3Rpb24uIENvbXBpbGUgd2l0aCAtRQorLy8gdG8gc2VlIHRoZSBwcmVwcm9jZXNzb3Igb3V0cHV0IGZvciB0aGlzIG1hY3JvLgorIyAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9XSVRIX0ZVTkNUSU9OX1NGSU5BRSggXAorICAgICAgICAgICAgICAgYXJncywgc3Vic3RpdHV0ZV9tYWNybywgbWVtYmVyX21hY3JvIFwKKyAgICAgICAgICAgKSBcCisgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTVBMRU1FTlRBVElPTiggXAorICAgICAgICAgIGFyZ3MgXAorICAgICAgICAsIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1QgXAorICAgICAgICAsIHN1YnN0aXR1dGVfbWFjcm8gXAorICAgICAgICAsIG1lbWJlcl9tYWNybyBcCisgICAgICApIFwKKyAgICAvKiovCisKKyMgICBpZiBCT09TVF9NUExfSEFTX1hYWF9ORUVEU19URU1QTEFURV9TRklOQUUKKworIyAgICAgaWYgIWRlZmluZWQoQk9PU1RfTVBMX0hBU19YWFhfTkVFRFNfTkFNRVNQQUNFX0xFVkVMX1NVQlNUSVRVVEUpCisjICAgICAgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTQwMCkKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19YWFhfTkVFRFNfTkFNRVNQQUNFX0xFVkVMX1NVQlNUSVRVVEUgMQorIyAgICAgICBlbmRpZgorIyAgICAgZW5kaWYKKworIyAgICAgaWYgIUJPT1NUX01QTF9IQVNfWFhYX05FRURTX05BTUVTUEFDRV9MRVZFTF9TVUJTVElUVVRFCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1NVQlNUSVRVVEVfTkFNRV9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgICAgICAgIGFyZ3MsIG4gXAorICAgICAgICAgICAgICAgKSBcCisgICAgICAgICAgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9TVUJTVElUVVRFX05BTUUoYXJncywgbikgXAorICAgICAgICAvKiovCisjICAgICBlbHNlCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1NVQlNUSVRVVEVfTkFNRV9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgICAgICAgIGFyZ3MsIG4gXAorICAgICAgICAgICAgICAgKSBcCisgICAgICAgICAgQk9PU1RfUFBfQ0FUKCBcCisgICAgICAgICAgICAgIGJvb3N0X21wbF9oYXNfeHh4XyBcCisgICAgICAgICAgICAsIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fU1VCU1RJVFVURV9OQU1FKGFyZ3MsIG4pIFwKKyAgICAgICAgICApIFwKKyAgICAgICAgLyoqLworIyAgICAgZW5kaWYKKworIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fU1VCU1RJVFVURV9UQUdfTkFNRSggXAorICAgICAgICAgICAgICAgICBhcmdzIFwKKyAgICAgICAgICAgICApIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKCBcCisgICAgICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1NVQlNUSVRVVEVfTkFNRV9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgICAgIGFyZ3MsIDAgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICAgLCBfdGFnIFwKKyAgICAgICAgKSBcCisgICAgICAvKiovCisKKyMgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9NVUxUSV9TVUJTVElUVVRFX1dJVEhfVEVNUExBVEVfU0ZJTkFFKCBcCisgICAgICAgICAgICAgICAgIHosIG4sIGFyZ3MgXAorICAgICAgICAgICAgICkgXAorICAgICAgICB0ZW1wbGF0ZTwgXAorICAgICAgICAgICAgIHRlbXBsYXRlPCBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JTkMobiksIHR5cGVuYW1lIFUpID4gY2xhc3MgVSBcCisgICAgICAgID4gXAorICAgICAgICBzdHJ1Y3QgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9TVUJTVElUVVRFX05BTUVfV0lUSF9URU1QTEFURV9TRklOQUUoIFwKKyAgICAgICAgICAgICAgICBhcmdzLCBuIFwKKyAgICAgICAgICAgICAgICkgeyBcCisgICAgICAgICAgICB0eXBlZGVmIFwKKyAgICAgICAgICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1NVQlNUSVRVVEVfVEFHX05BTUUoYXJncykgXAorICAgICAgICAgICAgICAgIHR5cGU7IFwKKyAgICAgICAgfTsgXAorICAgICAgLyoqLworCisjICAgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19NRU1CRVJfU1VCU1RJVFVURV9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgICAgICBhcmdzLCBzdWJzdGl0dXRlX21hY3JvIFwKKyAgICAgICAgICAgICApIFwKKyAgICAgICAgdHlwZWRlZiB2b2lkIFwKKyAgICAgICAgICAgIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fU1VCU1RJVFVURV9UQUdfTkFNRShhcmdzKTsgXAorICAgICAgICBCT09TVF9QUF9SRVBFQVQoIFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0FSUkFZX0VMRU0oMiwgYXJncykgXAorICAgICAgICAgICwgQk9PU1RfTVBMX0hBU19NRU1CRVJfTVVMVElfU1VCU1RJVFVURV9XSVRIX1RFTVBMQVRFX1NGSU5BRSBcCisgICAgICAgICAgLCBhcmdzIFwKKyAgICAgICAgKSBcCisgICAgICAvKiovCisKKyMgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX01FTUJFUl9SRUpFQ1RfV0lUSF9URU1QTEFURV9TRklOQUUoIFwKKyAgICAgICAgICAgICAgICAgYXJncywgbWVtYmVyX21hY3JvIFwKKyAgICAgICAgICAgICApIFwKKyAgICAgICAgdGVtcGxhdGU8IFwKKyAgICAgICAgICAgIHR5cGVuYW1lIFUgXAorICAgICAgICAgICwgdHlwZW5hbWUgViBcCisgICAgICAgICAgICAgICAgPSBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1NVQlNUSVRVVEVfVEFHX05BTUUoYXJncykgXAorICAgICAgICA+IFwKKyAgICAgICAgc3RydWN0IEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fVEVTVF9OQU1FKGFyZ3MpIHsgXAorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOyBcCisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjptcGw6OmJvb2xfPCB2YWx1ZSA+IHR5cGU7IFwKKyAgICAgICAgfTsgXAorICAgICAgLyoqLworCisjICAgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19NRU1CRVJfTVVMVElfQUNDRVBUX1dJVEhfVEVNUExBVEVfU0ZJTkFFKCBcCisgICAgICAgICAgICAgICAgIHosIG4sIGFyZ3MgXAorICAgICAgICAgICAgICkgXAorICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVSA+IFwKKyAgICAgICAgc3RydWN0IEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RJT05fVEVTVF9OQU1FKGFyZ3MpPCBcCisgICAgICAgICAgICBVIFwKKyAgICAgICAgICAsIHR5cGVuYW1lIFwKKyAgICAgICAgICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9JTlRST1NQRUNUSU9OX1NVQlNUSVRVVEVfTkFNRV9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgICAgICAgICBhcmdzLCBuIFwKKyAgICAgICAgICAgICAgICApPCBcCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX01TVkNfVFlQRU5BTUUgVTo6Qk9PU1RfUFBfQVJSQVlfRUxFTSgxLCBhcmdzKTwgPiBcCisgICAgICAgICAgICAgICAgPjo6dHlwZSBcCisgICAgICAgID4geyBcCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgXAorICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6bXBsOjpib29sXzwgdmFsdWUgPiB0eXBlOyBcCisgICAgICAgIH07IFwKKyAgICAgIC8qKi8KKworIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0FDQ0VQVF9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgICAgICBhcmdzLCBtZW1iZXJfbWFjcm8gXAorICAgICAgICAgICAgICkgXAorICAgICAgICBCT09TVF9QUF9SRVBFQVQoIFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0FSUkFZX0VMRU0oMiwgYXJncykgXAorICAgICAgICAgICwgQk9PU1RfTVBMX0hBU19NRU1CRVJfTVVMVElfQUNDRVBUX1dJVEhfVEVNUExBVEVfU0ZJTkFFIFwKKyAgICAgICAgICAsIGFyZ3MgXAorICAgICAgICApIFwKKyAgICAgIC8qKi8KKworIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX0lOVFJPU1BFQ1RfV0lUSF9URU1QTEFURV9TRklOQUUoIFwKKyAgICAgICAgICAgICAgICAgYXJncywgc3Vic3RpdHV0ZV9tYWNybywgbWVtYmVyX21hY3JvIFwKKyAgICAgICAgICAgICApIFwKKyAgICAgICAgQk9PU1RfTVBMX0hBU19NRU1CRVJfUkVKRUNUX1dJVEhfVEVNUExBVEVfU0ZJTkFFKGFyZ3MsIG1lbWJlcl9tYWNybykgXAorICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9BQ0NFUFRfV0lUSF9URU1QTEFURV9TRklOQUUoYXJncywgbWVtYmVyX21hY3JvKSBcCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBVID4gXAorICAgICAgICBzdHJ1Y3QgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9OQU1FKGFyZ3MpIFwKKyAgICAgICAgICAgIDogQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVElPTl9URVNUX05BTUUoYXJncyk8IFUgPiB7IFwKKyAgICAgICAgfTsgXAorICAgICAgLyoqLworIAorLy8gQk9PU1RfTVBMX0hBU19NRU1CRVJfV0lUSF9URU1QTEFURV9TRklOQUUgZXhwYW5kcyB0byB0aGUgZnVsbAorLy8gaW1wbGVtZW50YXRpb24gb2YgdGhlIHRlbXBsYXRlLWJhc2VkIG1ldGFmdW5jdGlvbi4gQ29tcGlsZSB3aXRoIC1FCisvLyB0byBzZWUgdGhlIHByZXByb2Nlc3NvciBvdXRwdXQgZm9yIHRoaXMgbWFjcm8uCisvLworLy8gTm90ZSB0aGF0IGlmIEJPT1NUX01QTF9IQVNfWFhYX05FRURTX05BTUVTUEFDRV9MRVZFTF9TVUJTVElUVVRFIGlzCisvLyBkZWZpbmVkIEJPT1NUX01QTF9IQVNfTUVNQkVSX1NVQlNUSVRVVEVfV0lUSF9URU1QTEFURV9TRklOQUUgbmVlZHMKKy8vIHRvIGJlIGV4cGFuZGVkIGF0IG5hbWVzcGFjZSBsZXZlbCBiZWZvcmUKKy8vIEJPT1NUX01QTF9IQVNfTUVNQkVSX1dJVEhfVEVNUExBVEVfU0ZJTkFFIGNhbiBiZSB1c2VkLgorIyAgICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfTUVNQkVSX1dJVEhfVEVNUExBVEVfU0ZJTkFFKCBcCisgICAgICAgICAgICAgICAgIGFyZ3MsIHN1YnN0aXR1dGVfbWFjcm8sIG1lbWJlcl9tYWNybyBcCisgICAgICAgICAgICAgKSBcCisgICAgICAgIEJPT1NUX01QTF9IQVNfTUVNQkVSX1NVQlNUSVRVVEVfV0lUSF9URU1QTEFURV9TRklOQUUoIFwKKyAgICAgICAgICAgIGFyZ3MsIHN1YnN0aXR1dGVfbWFjcm8gXAorICAgICAgICApIFwKKyAgICAgICAgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU1QTEVNRU5UQVRJT04oIFwKKyAgICAgICAgICAgIGFyZ3MgXAorICAgICAgICAgICwgQk9PU1RfTVBMX0hBU19NRU1CRVJfSU5UUk9TUEVDVF9XSVRIX1RFTVBMQVRFX1NGSU5BRSBcCisgICAgICAgICAgLCBzdWJzdGl0dXRlX21hY3JvIFwKKyAgICAgICAgICAsIG1lbWJlcl9tYWNybyBcCisgICAgICAgICkgXAorICAgICAgLyoqLworCisjICAgZW5kaWYgLy8gQk9PU1RfTVBMX0hBU19YWFhfTkVFRFNfVEVNUExBVEVfU0ZJTkFFCisKKy8vIE5vdGU6IEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRoZSBwYXJhbWV0ZXIgYW5kIGFjY2VzcyBtYWNyb3MKKy8vIGFyZSBubyBsb25nZXIgZXhwYW5kZWQuCisjICAgaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTQwMCkKKyMgICAgIGRlZmluZSBCT09TVF9NUExfSEFTX1hYWF9URU1QTEFURV9OQU1FRF9ERUYodHJhaXQsIG5hbWUsIGRlZmF1bHRfKSBcCisgICAgICAgIEJPT1NUX01QTF9IQVNfTUVNQkVSX1dJVEhfRlVOQ1RJT05fU0ZJTkFFKCBcCisgICAgICAgICAgICAoIDQsICggdHJhaXQsIG5hbWUsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIGRlZmF1bHRfICkgKSBcCisgICAgICAgICAgLCBCT09TVF9NUExfSEFTX01FTUJFUl9URU1QTEFURV9TVUJTVElUVVRFX1BBUkFNRVRFUiBcCisgICAgICAgICAgLCBCT09TVF9NUExfSEFTX01FTUJFUl9URU1QTEFURV9BQ0NFU1MgXAorICAgICAgICApIFwKKyAgICAgIC8qKi8KKyMgICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19YWFhfVEVNUExBVEVfTkFNRURfREVGKHRyYWl0LCBuYW1lLCBkZWZhdWx0XykgXAorICAgICAgICBCT09TVF9NUExfSEFTX01FTUJFUl9XSVRIX1RFTVBMQVRFX1NGSU5BRSggXAorICAgICAgICAgICAgKCA0LCAoIHRyYWl0LCBuYW1lLCBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZLCBkZWZhdWx0XyApICkgXAorICAgICAgICAgICwgQk9PU1RfTVBMX0hBU19NRU1CRVJfVEVNUExBVEVfU1VCU1RJVFVURV9QQVJBTUVURVIgXAorICAgICAgICAgICwgQk9PU1RfTVBMX0hBU19NRU1CRVJfVEVNUExBVEVfQUNDRVNTIFwKKyAgICAgICAgKSBcCisgICAgICAvKiovCisjICAgZW5kaWYKKworI2Vsc2UgLy8gQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYX1RFTVBMQVRFCisKKy8vIHBsYWNlaG9sZGVyIGltcGxlbWVudGF0aW9uCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0hBU19YWFhfVEVNUExBVEVfTkFNRURfREVGKHRyYWl0LCBuYW1lLCBkZWZhdWx0XykgXAorICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgXAorICAgICAgICAgICAgICAsIHR5cGVuYW1lIGZhbGxiYWNrXyA9IG5kbmJvb3N0OjptcGw6OmJvb2xfPCBkZWZhdWx0XyA+ID4gXAorICAgICAgc3RydWN0IHRyYWl0IHsgXAorICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbGxiYWNrXzo6dmFsdWUpOyBcCisgICAgICAgICAgdHlwZWRlZiBmYWxsYmFja18gdHlwZTsgXAorICAgICAgfTsgXAorICAgIC8qKi8KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fSEFTX1hYWF9URU1QTEFURQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9IQVNfWFhYX1RFTVBMQVRFX0RFRihuYW1lKSBcCisgICAgICBCT09TVF9NUExfSEFTX1hYWF9URU1QTEFURV9OQU1FRF9ERUYoIFwKKyAgICAgICAgICBCT09TVF9QUF9DQVQoaGFzXywgbmFtZSksIG5hbWUsIGZhbHNlIFwKKyAgICAgICkgXAorICAgIC8qKi8KKworI2VuZGlmIC8vIEJPT1NUX01QTF9IQVNfWFhYX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MzkxZGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pZGVudGl0eS5ocHAKQEAgLTAsMCArMSw0NSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JREVOVElUWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lERU5USVRZX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaWRlbnRpdHkuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVCkKKyAgICA+CitzdHJ1Y3QgaWRlbnRpdHkKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsIGlkZW50aXR5LCAoVCkpCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVCkKKyAgICA+CitzdHJ1Y3QgbWFrZV9pZGVudGl0eQoreworICAgIHR5cGVkZWYgaWRlbnRpdHk8VD4gdHlwZTsKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsIG1ha2VfaWRlbnRpdHksIChUKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19OT19FVEkoMSwgaWRlbnRpdHkpCitCT09TVF9NUExfQVVYX05BX1NQRUNfTk9fRVRJKDEsIG1ha2VfaWRlbnRpdHkpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSURFTlRJVFlfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9pZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE5YjRhOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2lmLmhwcApAQCAtMCwwICsxLDEzNSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lGX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaWYuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9zdGF0aWNfY2FzdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQworICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGlmX2MKK3sKKyAgICB0eXBlZGVmIFQxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBpZl9jPGZhbHNlLFQxLFQyPgoreworICAgIHR5cGVkZWYgVDIgdHlwZTsKK307CisKKy8vIGFndXJ0LCAwNS9zZXAvMDQ6IG5vbmRlc2NyaXB0aXZlIHBhcmFtZXRlciBuYW1lcyBmb3IgdGhlIHNha2Ugb2YgRGlnaXRhbE1hcnMKKy8vIChhbmQgcG9zc2libHkgTVdDVyA8IDguMCk7IHNlZSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC5saWIuYm9vc3QuZGV2ZWwvMTA4OTU5Cit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMykKKyAgICA+CitzdHJ1Y3QgaWZfCit7CisgcHJpdmF0ZToKKyAgICAvLyBhZ3VydCwgMDIvamFuLzAzOiB0d28tc3RlcCAndHlwZScgZGVmaW5pdGlvbiBmb3IgdGhlIHNha2Ugb2YgYUNDIAorICAgIHR5cGVkZWYgaWZfYzwKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfQkNDX0lOVEVHUkFMX0NPTlNUQU5UUykKKyAgICAgICAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoVDEpOjp2YWx1ZQorI2Vsc2UKKyAgICAgICAgICBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKGJvb2wsIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChUMSk6OnZhbHVlKQorI2VuZGlmCisgICAgICAgICwgVDIKKyAgICAgICAgLCBUMworICAgICAgICA+IGFsbW9zdF90eXBlXzsKKyAKKyBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhbG1vc3RfdHlwZV86OnR5cGUgdHlwZTsKKyAgICAKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsaWZfLChUMSxUMixUMykpCit9OworCisjZWxzZQorCisvLyBubyBwYXJ0aWFsIGNsYXNzIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCBDID4KK3N0cnVjdCBpZl9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQxIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpZl9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsgCisgICAgICAgIHR5cGVkZWYgVDIgdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDXworICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGlmX2MKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6aWZfaW1wbDwgQ18gPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88VDEsVDI+Ojp0eXBlIHR5cGU7Cit9OworCisvLyAoYWxtb3N0KSBjb3B5ICYgcGFzdGUgaW4gb3JkZXIgdG8gc2F2ZSBvbmUgbW9yZSAKKy8vIHJlY3Vyc2l2ZWx5IG5lc3RlZCB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIHRvIHVzZXIKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShDXykKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgID4KK3N0cnVjdCBpZl8KK3sKKyAgICBlbnVtIHsgbXN2Y193a25kXyA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKENfKTo6dmFsdWUgfTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjppZl9pbXBsPCBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKGJvb2wsIG1zdmNfd2tuZF8pID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFQxLFQyPjo6dHlwZSB0eXBlOworCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLGlmXywoQ18sVDEsVDIpKQorfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGlmXykKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9JRl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2luc2VydGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2luc2VydGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2E1NGJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaW5zZXJ0ZXIuaHBwCkBAIC0wLDAgKzEsMzIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSU5TRVJURVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JTlNFUlRFUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMy0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMy0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGluc2VydGVyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBTZXF1ZW5jZQorICAgICwgdHlwZW5hbWUgT3BlcmF0aW9uCisgICAgPgorc3RydWN0IGluc2VydGVyCit7CisgICAgdHlwZWRlZiBTZXF1ZW5jZSAgICBzdGF0ZTsKKyAgICB0eXBlZGVmIE9wZXJhdGlvbiAgIG9wZXJhdGlvbjsKK307CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSU5TRVJURVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9pbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTBlZTZlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaW50LmhwcApAQCAtMCwwICsxLDIyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0lOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lOVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGludC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRfZndkLmhwcD4KKworI2RlZmluZSBBVVhfV1JBUFBFUl9WQUxVRV9UWVBFIGludAorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2ludGVncmFsX3dyYXBwZXIuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0lOVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaW50X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdiNDJlMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludF9md2QuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSU5UX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lOVF9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpbnRfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPiBzdHJ1Y3QgaW50XzsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChpbnRfKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0lOVF9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludGVncmFsX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NmZlZGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcApAQCAtMCwwICsxLDUxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0lOVEVHUkFMX0NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JTlRFR1JBTF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDYKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW50ZWdyYWxfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19IUF9hQ0MsIDw9IDUzODAwKQorLy8gdGhlIHR5cGUgb2Ygbm9uLXR5cGUgdGVtcGxhdGUgYXJndW1lbnRzIG1heSBub3QgZGVwZW5kIG9uIHRlbXBsYXRlIGFyZ3VtZW50cworIyAgIGRlZmluZSBBVVhfV1JBUFBFUl9QQVJBTVMoTikgdHlwZW5hbWUgVCwgbG9uZyBOCisjZWxzZQorIyAgIGRlZmluZSBBVVhfV1JBUFBFUl9QQVJBTVMoTikgdHlwZW5hbWUgVCwgVCBOCisjZW5kaWYKKworI2RlZmluZSBBVVhfV1JBUFBFUl9OQU1FIGludGVncmFsX2MKKyNkZWZpbmUgQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSBUCisjZGVmaW5lIEFVWF9XUkFQUEVSX0lOU1QodmFsdWUpIEFVWF9XUkFQUEVSX05BTUU8IFQsIHZhbHVlID4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcD4KKworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPD0gMHg1NTEpCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisvLyAnYm9vbCcgY29uc3RhbnQgZG9lc24ndCBoYXZlICduZXh0Jy8ncHJpb3InIG1lbWJlcnMKK3RlbXBsYXRlPCBib29sIEMgPgorc3RydWN0IGludGVncmFsX2M8Ym9vbCwgQz4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBDKTsKKyAgICB0eXBlZGVmIGludGVncmFsX2NfdGFnIHRhZzsKKyAgICB0eXBlZGVmIGludGVncmFsX2MgdHlwZTsKKyAgICB0eXBlZGVmIGJvb2wgdmFsdWVfdHlwZTsKKyAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gdGhpcy0+dmFsdWU7IH0KK307CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfSU5URUdSQUxfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludGVncmFsX2NfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludGVncmFsX2NfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWQ0YjZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaW50ZWdyYWxfY19md2QuaHBwCkBAIC0wLDAgKzEsMzIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSU5URUdSQUxfQ19GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JTlRFR1JBTF9DX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA2CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGludGVncmFsX2NfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2FkbF9iYXJyaWVyLmhwcD4KKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0hQX2FDQywgPD0gNTM4MDApCisvLyB0aGUgdHlwZSBvZiBub24tdHlwZSB0ZW1wbGF0ZSBhcmd1bWVudHMgbWF5IG5vdCBkZXBlbmQgb24gdGVtcGxhdGUgYXJndW1lbnRzCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgbG9uZyBOID4gc3RydWN0IGludGVncmFsX2M7CisjZWxzZQordGVtcGxhdGU8IHR5cGVuYW1lIFQsIFQgTiA+IHN0cnVjdCBpbnRlZ3JhbF9jOworI2VuZGlmCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0woaW50ZWdyYWxfYykKKworI2VuZGlmIC8vIEJPT1NUX01QTF9JTlRFR1JBTF9DX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludGVncmFsX2NfdGFnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2ludGVncmFsX2NfdGFnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGM4M2FjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaW50ZWdyYWxfY190YWcuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSU5URUdSQUxfQ19UQUdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JTlRFR1JBTF9DX1RBR19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpbnRlZ3JhbF9jX3RhZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCitzdHJ1Y3QgaW50ZWdyYWxfY190YWcgeyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9IDApOyB9OworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChpbnRlZ3JhbF9jX3RhZykKKworI2VuZGlmIC8vIEJPT1NUX01QTF9JTlRFR1JBTF9DX1RBR19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2lzX3BsYWNlaG9sZGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2lzX3BsYWNlaG9sZGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTI5ODkxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXNfcGxhY2Vob2xkZXIuaHBwCkBAIC0wLDAgKzEsNjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSVNfUExBQ0VIT0xERVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JU19QTEFDRUhPTERFUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGlzX3BsYWNlaG9sZGVyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FyZ19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3R5cGVfd3JhcHBlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX3BsYWNlaG9sZGVyCisgICAgOiBib29sXzxmYWxzZT4KK3sKK307CisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pID4KK3N0cnVjdCBpc19wbGFjZWhvbGRlcjwgYXJnPE4+ID4KKyAgICA6IGJvb2xfPHRydWU+Cit7Cit9OworCisjZWxzZQorCituYW1lc3BhY2UgYXV4IHsKKworYXV4Ojpub190YWcgaXNfcGxhY2Vob2xkZXJfaGVscGVyKC4uLik7CisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pID4KK2F1eDo6eWVzX3RhZyBpc19wbGFjZWhvbGRlcl9oZWxwZXIoYXV4Ojp0eXBlX3dyYXBwZXI8IGFyZzxOPiA+Kik7CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfcGxhY2Vob2xkZXIKK3sKKyAgICBzdGF0aWMgYXV4Ojp0eXBlX3dyYXBwZXI8VD4qIGdldCgpOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgICAgIHNpemVvZihhdXg6OmlzX3BsYWNlaG9sZGVyX2hlbHBlcihnZXQoKSkpID09IHNpemVvZihhdXg6Onllc190YWcpCisgICAgICAgICk7CisgICAgCisgICAgdHlwZWRlZiBib29sXzx2YWx1ZT4gdHlwZTsKK307CisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSVNfUExBQ0VIT0xERVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9pc19zZXF1ZW5jZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pc19zZXF1ZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE5MmRhNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2lzX3NlcXVlbmNlLmhwcApAQCAtMCwwICsxLDExMiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JU19TRVFVRU5DRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lTX1NFUVVFTkNFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaXNfc2VxdWVuY2UuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbm90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdm9pZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaGFzX3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaGFzX2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2lzX2NsYXNzLmhwcD4KKyNlbGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMwMCkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkKKworbmFtZXNwYWNlIGF1eCB7CisKKy8vIGFndXJ0LCAxMS9qdW4vMDM6IAorLy8gTVNWQyA2LjUvNy4wIGZhaWxzIGlmICdoYXNfYmVnaW4nIGlzIGluc3RhbnRpYXRlZCBvbiBhIGNsYXNzIHR5cGUgdGhhdCBoYXMgYQorLy8gJ2JlZ2luJyBtZW1iZXIgdGhhdCBkb2Vzbid0IG5hbWUgYSB0eXBlOyBlLmcuICdoYXNfYmVnaW48IHN0ZDo6dmVjdG9yPGludD4gPicKKy8vIHdvdWxkIGZhaWw7IHJlcXVpcmluZyAnVCcgdG8gaGF2ZSBfYm90aF8gJ3RhZycgYW5kICdiZWdpbicgbWVtYmVycyB3b3JrYXJvdW5kcworLy8gdGhlIGlzc3VlIGZvciBtb3N0IHJlYWwtd29ybGQgY2FzZXMKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGlzX3NlcXVlbmNlX2ltcGwKKyAgICA6IGFuZF88CisgICAgICAgICAgaWRlbnRpdHk8IGF1eDo6aGFzX3RhZzxUPiA+CisgICAgICAgICwgaWRlbnRpdHk8IGF1eDo6aGFzX2JlZ2luPFQ+ID4KKyAgICAgICAgPgoreworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisgICAgICAgIAordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgPgorc3RydWN0IGlzX3NlcXVlbmNlCisgICAgOiBpZl88CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgICAgICAgYXV4Ojptc3ZjX2lzX2NsYXNzPFQ+IAorI2Vsc2UKKyAgICAgICAgICBuZG5ib29zdDo6aXNfY2xhc3M8VD4gCisjZW5kaWYKKyAgICAgICAgLCBhdXg6OmlzX3NlcXVlbmNlX2ltcGw8VD4KKyAgICAgICAgLCBib29sXzxmYWxzZT4KKyAgICAgICAgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSwgaXNfc2VxdWVuY2UsIChUKSkKK307CisKKyNlbGlmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVCkKKyAgICA+CitzdHJ1Y3QgaXNfc2VxdWVuY2UKKyAgICA6IGJvb2xfPGZhbHNlPgoreworfTsKKworI2Vsc2UKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgPgorc3RydWN0IGlzX3NlcXVlbmNlCisgICAgOiBub3RfPCBpc19zYW1lPCB0eXBlbmFtZSBiZWdpbjxUPjo6dHlwZSwgdm9pZF8gPiA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLCBpc19zZXF1ZW5jZSwgKFQpKQorfTsKKworI2VuZGlmIC8vIEJPT1NUX01TVkMKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzYwX0VUSV9CVUcpCit0ZW1wbGF0ZTw+IHN0cnVjdCBpc19zZXF1ZW5jZTxpbnQ+CisgICAgOiBib29sXzxmYWxzZT4KK3sKK307CisjZW5kaWYKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDX05PX0VUSSgxLCBpc19zZXF1ZW5jZSkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9JU19TRVFVRU5DRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2l0ZXJfZm9sZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pdGVyX2ZvbGQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYmFhNmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pdGVyX2ZvbGQuaHBwCkBAIC0wLDAgKzEsNDkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSVRFUl9GT0xEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfSVRFUl9GT0xEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAxLTIwMDIKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaXRlcl9mb2xkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JlZ2luX2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL08xX3NpemUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sYW1iZGEuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2l0ZXJfZm9sZF9pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFN0YXRlKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShGb3J3YXJkT3ApCisgICAgPgorc3RydWN0IGl0ZXJfZm9sZAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjppdGVyX2ZvbGRfaW1wbDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjptcGw6Ok8xX3NpemU8U2VxdWVuY2U+Ojp2YWx1ZQorICAgICAgICAsIHR5cGVuYW1lIGJlZ2luPFNlcXVlbmNlPjo6dHlwZQorICAgICAgICAsIHR5cGVuYW1lIGVuZDxTZXF1ZW5jZT46OnR5cGUKKyAgICAgICAgLCBTdGF0ZQorICAgICAgICAsIHR5cGVuYW1lIGxhbWJkYTxGb3J3YXJkT3A+Ojp0eXBlCisgICAgICAgID46OnN0YXRlIHR5cGU7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsaXRlcl9mb2xkLChTZXF1ZW5jZSxTdGF0ZSxGb3J3YXJkT3ApKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGl0ZXJfZm9sZCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9JVEVSX0ZPTERfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9pdGVyX2ZvbGRfaWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXRlcl9mb2xkX2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzczNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXRlcl9mb2xkX2lmLmhwcApAQCAtMCwwICsxLDExNyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JVEVSX0ZPTERfSUZfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JVEVSX0ZPTERfSUZfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDMtMjAwNAorLy8gQ29weXJpZ2h0IEVyaWMgRnJpZWRtYW4gMjAwMworLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpdGVyX2ZvbGRfaWYuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbG9naWNhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Fsd2F5cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3BhaXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hcHBseS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaXRlcl9mb2xkX2lmX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZm9yd2FyZGluZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFByZWRpY2F0ZSwgdHlwZW5hbWUgTGFzdEl0ZXJhdG9yID4KK3N0cnVjdCBpdGVyX2ZvbGRfaWZfcHJlZAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTdGF0ZSwgdHlwZW5hbWUgSXRlcmF0b3IgPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9GT1JXQVJESU5HKQorICAgICAgICA6IGFuZF88CisgICAgICAgICAgICAgIG5vdF88IGlzX3NhbWU8SXRlcmF0b3IsTGFzdEl0ZXJhdG9yPiA+CisgICAgICAgICAgICAsIGFwcGx5MTxQcmVkaWNhdGUsSXRlcmF0b3I+CisgICAgICAgICAgICA+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgICAgIHR5cGVkZWYgYW5kXzwKKyAgICAgICAgICAgICAgbm90XzwgaXNfc2FtZTxJdGVyYXRvcixMYXN0SXRlcmF0b3I+ID4KKyAgICAgICAgICAgICwgYXBwbHkxPFByZWRpY2F0ZSxJdGVyYXRvcj4KKyAgICAgICAgICAgID4gdHlwZTsKKyNlbmRpZgorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBhdXgKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFNlcXVlbmNlKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTdGF0ZSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oRm9yd2FyZE9wKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShGb3J3YXJkUHJlZGljYXRlKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShCYWNrd2FyZE9wKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShCYWNrd2FyZFByZWRpY2F0ZSkKKyAgICA+CitzdHJ1Y3QgaXRlcl9mb2xkX2lmCit7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJlZ2luPFNlcXVlbmNlPjo6dHlwZSBmaXJzdF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBlbmQ8U2VxdWVuY2U+Ojp0eXBlIGxhc3RfOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBldmFsX2lmPAorICAgICAgICAgIGlzX25hPEJhY2t3YXJkUHJlZGljYXRlPgorICAgICAgICAsIGlmXzwgaXNfbmE8QmFja3dhcmRPcD4sIGFsd2F5czxmYWxzZV8+LCBhbHdheXM8dHJ1ZV8+ID4KKyAgICAgICAgLCBpZGVudGl0eTxCYWNrd2FyZFByZWRpY2F0ZT4KKyAgICAgICAgPjo6dHlwZSBiYWNrd2FyZF9wcmVkXzsKKworLy8gY3dwcm84IGRvZXNuJ3QgbGlrZSAnY3V0LW9mZicgdHlwZSBoZXJlICh1c2UgdHlwZWRlZiBpbnN0ZWFkKQorI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIEJPT1NUX1RFU1RFRF9BVCgweDMwMDMpKSAmJiAhQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNjAwKSkKKyAgICBzdHJ1Y3QgcmVzdWx0XyA6CisjZWxzZQorICAgIHR5cGVkZWYKKyNlbmRpZgorICAgICAgICBhdXg6Oml0ZXJfZm9sZF9pZl9pbXBsPAorICAgICAgICAgIGZpcnN0XworICAgICAgICAsIFN0YXRlCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgICwgcHJvdGVjdDwgYXV4OjppdGVyX2ZvbGRfaWZfcHJlZDwgRm9yd2FyZFByZWRpY2F0ZSxsYXN0XyA+ID4KKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgYmFja3dhcmRfcHJlZF8KKyAgICAgICAgPgorI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIEJPT1NUX1RFU1RFRF9BVCgweDMwMDMpKSAmJiAhQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNjAwKSkKKyAgICB7IH07CisjZWxzZQorICAgIHJlc3VsdF87CisjZW5kaWYKKworcHVibGljOgorCisgICAgdHlwZWRlZiBwYWlyPAorICAgICAgICAgIHR5cGVuYW1lIHJlc3VsdF86OnN0YXRlCisgICAgICAgICwgdHlwZW5hbWUgcmVzdWx0Xzo6aXRlcmF0b3IKKyAgICAgICAgPiB0eXBlOworCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICA2CisgICAgICAgICwgaXRlcl9mb2xkX2lmCisgICAgICAgICwgKFNlcXVlbmNlLFN0YXRlLEZvcndhcmRPcCxGb3J3YXJkUHJlZGljYXRlLEJhY2t3YXJkT3AsQmFja3dhcmRQcmVkaWNhdGUpCisgICAgICAgICkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQyg2LCBpdGVyX2ZvbGRfaWYpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSVRFUl9GT0xEX0lGX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXRlcmF0b3JfcmFuZ2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXRlcmF0b3JfcmFuZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNmRkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pdGVyYXRvcl9yYW5nZS5ocHAKQEAgLTAsMCArMSw0MiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JVEVSQVRPUl9SQU5HRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lURVJBVE9SX1JBTkdFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaXRlcmF0b3JfcmFuZ2UuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitzdHJ1Y3QgaXRlcmF0b3JfcmFuZ2VfdGFnOworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oRmlyc3QpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKExhc3QpCisgICAgPgorc3RydWN0IGl0ZXJhdG9yX3JhbmdlCit7CisgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZV90YWcgdGFnOworICAgIHR5cGVkZWYgaXRlcmF0b3JfcmFuZ2UgdHlwZTsKKyAgICB0eXBlZGVmIEZpcnN0IGJlZ2luOworICAgIHR5cGVkZWYgTGFzdCBlbmQ7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsaXRlcmF0b3JfcmFuZ2UsKEZpcnN0LExhc3QpKQorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDIsIGl0ZXJhdG9yX3JhbmdlKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0lURVJBVE9SX1JBTkdFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXRlcmF0b3JfdGFncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9pdGVyYXRvcl90YWdzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDBmOTIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvaXRlcmF0b3JfdGFncy5ocHAKQEAgLTAsMCArMSwyNyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JVEVSQVRPUl9UQUdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9JVEVSQVRPUl9UQUdfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpdGVyYXRvcl90YWdzLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCitzdHJ1Y3QgZm9yd2FyZF9pdGVyYXRvcl90YWcgICAgICAgOiBpbnRfPDA+IHsgdHlwZWRlZiBmb3J3YXJkX2l0ZXJhdG9yX3RhZyB0eXBlOyB9Oworc3RydWN0IGJpZGlyZWN0aW9uYWxfaXRlcmF0b3JfdGFnIDogaW50XzwxPiB7IHR5cGVkZWYgYmlkaXJlY3Rpb25hbF9pdGVyYXRvcl90YWcgdHlwZTsgfTsKK3N0cnVjdCByYW5kb21fYWNjZXNzX2l0ZXJhdG9yX3RhZyA6IGludF88Mj4geyB0eXBlZGVmIHJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnIHR5cGU7IH07CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSVRFUkFUT1JfVEFHX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGFtYmRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xhbWJkYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE0MzUxNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xhbWJkYS5ocHAKQEAgLTAsMCArMSwyOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MQU1CREFfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MQU1CREFfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsYW1iZGEuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGFtYmRhX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JpbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2Z1bGxfbGFtYmRhLmhwcD4KKyNlbHNlCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX25vX2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19JTVBMSUNJVF9NRVRBRlVOQ1RJT05TCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9MQU1CREFfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9sYW1iZGFfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xhbWJkYV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZjNlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9sYW1iZGFfZndkLmhwcApAQCAtMCwwICsxLDU3IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xBTUJEQV9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MQU1CREFfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92b2lkX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmEuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX2FyaXR5X3BhcmFtLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eV9md2QuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgVCA9IG5hCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNKAorICAgICAgICAgIHR5cGVuYW1lIEFyaXR5ID0gaW50XzwgYXV4Ojp0ZW1wbGF0ZV9hcml0eTxUPjo6dmFsdWUgPgorICAgICAgICApCisgICAgPgorc3RydWN0IGxhbWJkYTsKKworfX0KKworI2Vsc2UgLy8gQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBUID0gbmEKKyAgICAsIHR5cGVuYW1lIFRhZyA9IHZvaWRfCisgICAgLCB0eXBlbmFtZSBQcm90ZWN0ID0gdHJ1ZV8KKyAgICA+IAorc3RydWN0IGxhbWJkYTsKKworfX0KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfTEFNQkRBX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGVzcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIwNDNhOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xlc3MuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTEVTU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xFU1NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsZXNzLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjZGVmaW5lIEFVWDc3ODA3Nl9PUF9OQU1FIGxlc3MKKyNkZWZpbmUgQVVYNzc4MDc2X09QX1RPS0VOIDwKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb21wYXJpc29uX29wLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MRVNTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGVzc19lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmQ3YTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGVzc19lcXVhbC5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MRVNTX0VRVUFMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTEVTU19FUVVBTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxlc3NfZXF1YWwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNkZWZpbmUgQVVYNzc4MDc2X09QX05BTUUgbGVzc19lcXVhbAorI2RlZmluZSBBVVg3NzgwNzZfT1BfVE9LRU4gPD0KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb21wYXJpc29uX29wLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MRVNTX0VRVUFMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRhNzBhYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpbWl0cy9hcml0eS5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSU1JVFNfQVJJVFlfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSU1JVFNfQVJJVFlfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhcml0eS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkpCisjICAgZGVmaW5lIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkgNQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfTElNSVRTX0FSSVRZX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGltaXRzL2xpc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGltaXRzL2xpc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZTczODcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saW1pdHMvbGlzdC5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSU1JVFNfTElTVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJTUlUU19MSVNUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGlzdC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9MSU1JVF9MSVNUX1NJWkUpCisjICAgZGVmaW5lIEJPT1NUX01QTF9MSU1JVF9MSVNUX1NJWkUgMjAKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJTUlUU19MSVNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGltaXRzL3Vucm9sbGluZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saW1pdHMvdW5yb2xsaW5nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTE0ZjBhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGltaXRzL3Vucm9sbGluZy5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSU1JVFNfVU5ST0xMSU5HX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElNSVRTX1VOUk9MTElOR19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHVucm9sbGluZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcpCisjICAgZGVmaW5lIEJPT1NUX01QTF9MSU1JVF9VTlJPTExJTkcgNAorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfTElNSVRTX1VOUk9MTElOR19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpbWl0cy92ZWN0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGltaXRzL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRlMzgxMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpbWl0cy92ZWN0b3IuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElNSVRTX1ZFQ1RPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJTUlUU19WRUNUT1JfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB2ZWN0b3IuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfTElNSVRfVkVDVE9SX1NJWkUpCisjICAgZGVmaW5lIEJPT1NUX01QTF9MSU1JVF9WRUNUT1JfU0laRSAyMAorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfTElNSVRTX1ZFQ1RPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlNmFkNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QuaHBwCkBAIC0wLDAgKzEsNTcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL2xpc3QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcD4KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zdHJpbmdpemUuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTkVFRFNfVE9LRU5fUEFTVElOR19PUF9GT1JfVE9LRU5TX0pVWFRBUE9TSU5HKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfTElTVF9IRUFERVIgXAorICAgIEJPT1NUX1BQX0NBVChsaXN0LEJPT1NUX01QTF9MSU1JVF9MSVNUX1NJWkUpLmhwcCBcCisgICAgLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0xJU1RfSEVBREVSIFwKKyAgICBCT09TVF9QUF9DQVQobGlzdCxCT09TVF9NUExfTElNSVRfTElTVF9TSVpFKSMjLmhwcCBcCisgICAgLyoqLworI2VuZGlmCisKKyMgICBpbmNsdWRlIEJPT1NUX1BQX1NUUklOR0laRShib29zdC9tcGwvbGlzdC9BVVg3NzgwNzZfTElTVF9IRUFERVIpCisjICAgdW5kZWYgQVVYNzc4MDc2X0xJU1RfSEVBREVSCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGxpc3QuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpbWl0cy9saXN0LmhwcD4KKworIyAgIGRlZmluZSBBVVg3NzgwNzZfU0VRVUVOQ0VfTkFNRSBsaXN0CisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9MSU1JVCBCT09TVF9NUExfTElNSVRfTElTVF9TSVpFCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vc2VxdWVuY2Vfd3JhcHBlci5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vTzFfc2l6ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vTzFfc2l6ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVmZGEyMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9PMV9zaXplLmhwcApAQCAtMCwwICsxLDMzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfQVVYX08xX1NJWkVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0FVWF9PMV9TSVpFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogTzFfc2l6ZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9PMV9zaXplX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy90YWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4OjpsaXN0X3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIExpc3QgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBMaXN0OjpzaXplCisgICAgeworICAgIH07Cit9OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfQVVYX08xX1NJWkVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vYmVnaW5fZW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9iZWdpbl9lbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjM2U3ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vYmVnaW5fZW5kLmhwcApAQCAtMCwwICsxLDQ0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfQVVYX0JFR0lOX0VORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfQVVYX0JFR0lOX0VORF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGJlZ2luX2VuZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iZWdpbl9lbmRfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVtLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiZWdpbl9pbXBsPCBhdXg6Omxpc3RfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTGlzdCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBsX2l0ZXI8dHlwZW5hbWUgTGlzdDo6dHlwZT4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVuZF9pbXBsPCBhdXg6Omxpc3RfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbF9pdGVyPGxfZW5kPiB0eXBlOworICAgIH07Cit9OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfQVVYX0JFR0lOX0VORF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9jbGVhci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vY2xlYXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1Y2Y1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vY2xlYXIuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9BVVhfQ0xFQVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0FVWF9DTEVBUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGNsZWFyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2NsZWFyX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3RhZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4OjpsaXN0X3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIExpc3QgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbF9lbmQgdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9DTEVBUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9lbXB0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vZW1wdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MGVmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vZW1wdHkuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9BVVhfRU1QVFlfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0FVWF9FTVBUWV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGVtcHR5LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2VtcHR5X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL25vdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy90YWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6bGlzdF90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBMaXN0ID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbm90Xzx0eXBlbmFtZSBMaXN0OjpzaXplPgorICAgIHsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9FTVBUWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9mcm9udC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vZnJvbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjYjQzYWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vZnJvbnQuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9BVVhfRlJPTlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0FVWF9GUk9OVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGZyb250LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Zyb250X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy90YWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6bGlzdF90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBMaXN0ID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIExpc3Q6Oml0ZW0gdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9GUk9OVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTVkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsMzUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA2CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGluY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OIQorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3N0cmluZ2l6ZS5ocHA+CisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0hFQURFUiBcCisgICAgYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgXAorLyoqLworCisjaWYgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNzAwKSkKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lOQ0xVREVfU1RSSU5HIEJPT1NUX1BQX1NUUklOR0laRShib29zdC9tcGwvbGlzdC9BVVg3NzgwNzZfSEVBREVSKQorIyAgIGluY2x1ZGUgQVVYNzc4MDc2X0lOQ0xVREVfU1RSSU5HCisjICAgdW5kZWYgQVVYNzc4MDc2X0lOQ0xVREVfU1RSSU5HCisjZWxzZQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfU1RSSU5HSVpFKGJvb3N0L21wbC9saXN0L0FVWDc3ODA3Nl9IRUFERVIpCisjZW5kaWYKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9IRUFERVIKKworI3VuZGVmIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vaXRlbS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vaXRlbS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA0ODAwNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVtLmhwcApAQCAtMCwwICsxLDU1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfQVVYX05PREVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0FVWF9OT0RFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaXRlbS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgU2l6ZQorICAgICwgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgTmV4dAorICAgID4KK3N0cnVjdCBsX2l0ZW0KK3sKKy8vIGFndXJ0LCAxNy9qdWwvMDM6IHRvIGZhY2lsaXRhdGUgdGhlIGRlZmljaWVudCAnaXNfc2VxdWVuY2UnIGltcGxlbWVudGF0aW9uIAorI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkKKyAgICB0eXBlZGVmIGludCBiZWdpbjsKKyNlbmRpZgorICAgIHR5cGVkZWYgYXV4OjpsaXN0X3RhZyB0YWc7CisgICAgdHlwZWRlZiBsX2l0ZW0gdHlwZTsKKworICAgIHR5cGVkZWYgU2l6ZSBzaXplOworICAgIHR5cGVkZWYgVCBpdGVtOworICAgIHR5cGVkZWYgTmV4dCBuZXh0OworfTsKKworc3RydWN0IGxfZW5kCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKQorICAgIHR5cGVkZWYgaW50IGJlZ2luOworI2VuZGlmCisgICAgdHlwZWRlZiBhdXg6Omxpc3RfdGFnIHRhZzsKKyAgICB0eXBlZGVmIGxfZW5kIHR5cGU7CisgICAgdHlwZWRlZiBsb25nXzwwPiBzaXplOworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9OT0RFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL2l0ZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkyZjc3OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSw3NiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0FVWF9JVEVSQVRPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfQVVYX0lURVJBVE9SX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaXRlcmF0b3IuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaXRlcmF0b3JfdGFncy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL25leHRfcHJpb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9kZXJlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgTm9kZSA+CitzdHJ1Y3QgbF9pdGVyCit7CisgICAgdHlwZWRlZiBhdXg6OmxfaXRlcl90YWcgdGFnOworICAgIHR5cGVkZWYgZm9yd2FyZF9pdGVyYXRvcl90YWcgY2F0ZWdvcnk7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgTm9kZSA+CitzdHJ1Y3QgZGVyZWY8IGxfaXRlcjxOb2RlPiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBOb2RlOjppdGVtIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgTm9kZSA+CitzdHJ1Y3QgbmV4dDwgbF9pdGVyPE5vZGU+ID4KK3sKKyAgICB0eXBlZGVmIGxfaXRlcjwgdHlwZW5hbWUgTm9kZTo6bmV4dCA+IHR5cGU7Cit9OworCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBOb2RlID4KK3N0cnVjdCBsX2l0ZXIKK3sKKyAgICB0eXBlZGVmIGF1eDo6bF9pdGVyX3RhZyB0YWc7CisgICAgdHlwZWRlZiBmb3J3YXJkX2l0ZXJhdG9yX3RhZyBjYXRlZ29yeTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIE5vZGU6Oml0ZW0gdHlwZTsKKyAgICB0eXBlZGVmIGxfaXRlcjwgdHlwZW5hbWUgbXBsOjpuZXh0PE5vZGU+Ojp0eXBlID4gbmV4dDsKK307CisKKyNlbmRpZgorCisKK3RlbXBsYXRlPD4gc3RydWN0IGxfaXRlcjxsX2VuZD4KK3sKKyAgICB0eXBlZGVmIGF1eDo6bF9pdGVyX3RhZyB0YWc7CisgICAgdHlwZWRlZiBmb3J3YXJkX2l0ZXJhdG9yX3RhZyBjYXRlZ29yeTsKKyNpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisgICAgdHlwZWRlZiBuYSB0eXBlOworICAgIHR5cGVkZWYgbF9pdGVyIG5leHQ7CisjZW5kaWYKK307CisKK0JPT1NUX01QTF9BVVhfUEFTU19USFJPVUdIX0xBTUJEQV9TUEVDKDEsIGxfaXRlcikKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9JVEVSQVRPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9udW1iZXJlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1MmMzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWQuaHBwCkBAIC0wLDAgKzEsNjggQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMC0yMDAyCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbnVtYmVyZWQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiBkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjZGVmaW5lIGkgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKKyNpZiBpID09IDEKKwordGVtcGxhdGU8CisgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhpLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBsaXN0MQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDE+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsX2VuZAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MSB0eXBlOworfTsKKworI2Vsc2UKKworIyAgIGRlZmluZSBNUExfQVVYX0xJU1RfVEFJTChsaXN0LCBpLCBUKSBcCisgICAgQk9PU1RfUFBfQ0FUKGxpc3QsQk9PU1RfUFBfREVDKGkpKTwgXAorICAgICAgQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNUyhpLCBUKSBcCisgICAgPiBcCisgICAgLyoqLworICAgIAordGVtcGxhdGU8CisgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhpLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQobGlzdCxpKQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPGk+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBNUExfQVVYX0xJU1RfVEFJTChsaXN0LGksVCkKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGxpc3QsaSkgdHlwZTsKK307CisKKyMgICB1bmRlZiBNUExfQVVYX0xJU1RfVEFJTAorCisjZW5kaWYgLy8gaSA9PSAxCisKKyN1bmRlZiBpCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9udW1iZXJlZF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9udW1iZXJlZF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTI2NDQwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL251bWJlcmVkX2MuaHBwCkBAIC0wLDAgKzEsNzEgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbnVtYmVyZWRfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmIGRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9zaGlmdGVkX3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyNkZWZpbmUgaSBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKworI2lmIGkgPT0gMQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIEJPT1NUX1BQX0VOVU1fUEFSQU1TKGksIFQgQykKKyAgICA+CitzdHJ1Y3QgbGlzdDFfYworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDE+CisgICAgICAgICwgaW50ZWdyYWxfYzxULEMwPgorICAgICAgICAsIGxfZW5kCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKKyNlbHNlCisKKyMgICBkZWZpbmUgTVBMX0FVWF9MSVNUX0NfVEFJTChsaXN0LCBpLCBDKSBcCisgICAgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVChsaXN0LEJPT1NUX1BQX0RFQyhpKSksX2MpPFQsIFwKKyAgICAgIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVMoaSwgQykgXAorICAgID4gXAorICAgIC8qKi8KKyAgICAKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgQk9PU1RfUFBfRU5VTV9QQVJBTVMoaSwgVCBDKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKGxpc3QsaSksX2MpCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188aT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPFQsQzA+CisgICAgICAgICwgTVBMX0FVWF9MSVNUX0NfVEFJTChsaXN0LGksQykKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVChsaXN0LGkpLF9jKSB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworIyAgIHVuZGVmIE1QTF9BVVhfTElTVF9DX1RBSUwKKworI2VuZGlmIC8vIGkgPT0gMQorCisjdW5kZWYgaQorCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcG9wX2Zyb250LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wb3BfZnJvbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YzJkYWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcG9wX2Zyb250LmhwcApAQCAtMCwwICsxLDM0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfQVVYX1BPUF9GUk9OVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfQVVYX1BPUF9GUk9OVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHBvcF9mcm9udC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wb3BfZnJvbnRfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dF9wcmlvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy90YWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6Omxpc3RfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgTGlzdCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om5leHQ8TGlzdD46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9QT1BfRlJPTlRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QxMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QxMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU4ZWRiMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDEwLmhwcApAQCAtMCwwICsxLDE0OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdC9saXN0MTAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAKKyAgICA+CitzdHJ1Y3QgbGlzdDEKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwxPgorICAgICAgICAsIFQwCisgICAgICAgICwgbF9lbmQKKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDEgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxCisgICAgPgorc3RydWN0IGxpc3QyCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mj4KKyAgICAgICAgLCBUMAorICAgICAgICAsIGxpc3QxPFQxPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGxpc3QzCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mz4KKyAgICAgICAgLCBUMAorICAgICAgICAsIGxpc3QyPCBUMSxUMiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IGxpc3Q0CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188ND4KKyAgICAgICAgLCBUMAorICAgICAgICAsIGxpc3QzPCBUMSxUMixUMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgID4KK3N0cnVjdCBsaXN0NQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDU+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDwgVDEsVDIsVDMsVDQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0NSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1CisgICAgPgorc3RydWN0IGxpc3Q2CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Nj4KKyAgICAgICAgLCBUMAorICAgICAgICAsIGxpc3Q1PCBUMSxUMixUMyxUNCxUNSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q2IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IGxpc3Q3CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Nz4KKyAgICAgICAgLCBUMAorICAgICAgICAsIGxpc3Q2PCBUMSxUMixUMyxUNCxUNSxUNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q3IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCBsaXN0OAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDg+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NzwgVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0OCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IGxpc3Q5CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188OT4KKyAgICAgICAgLCBUMAorICAgICAgICAsIGxpc3Q4PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IGxpc3QxMAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDEwPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDk8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDEwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MTBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QxMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmMwNTgyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MTBfYy5ocHAKQEAgLTAsMCArMSwxNjQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QvbGlzdDEwX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMAorICAgID4KK3N0cnVjdCBsaXN0MV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsX2VuZAorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEKKyAgICA+CitzdHJ1Y3QgbGlzdDJfYworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDFfYzwgVCxDMSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMgorICAgID4KK3N0cnVjdCBsaXN0M19jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mz4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0Ml9jPCBULEMxLEMyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzCisgICAgPgorc3RydWN0IGxpc3Q0X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzw0PgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzAgPgorICAgICAgICAsIGxpc3QzX2M8IFQsQzEsQzIsQzMgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0NF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQKKyAgICA+CitzdHJ1Y3QgbGlzdDVfYworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDU+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDRfYzwgVCxDMSxDMixDMyxDNCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNQorICAgID4KK3N0cnVjdCBsaXN0Nl9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Nj4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0NV9jPCBULEMxLEMyLEMzLEM0LEM1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDZfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2CisgICAgPgorc3RydWN0IGxpc3Q3X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzw3PgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzAgPgorICAgICAgICAsIGxpc3Q2X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0N19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcKKyAgICA+CitzdHJ1Y3QgbGlzdDhfYworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDg+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDdfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOAorICAgID4KK3N0cnVjdCBsaXN0OV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188OT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0OF9jPCBULEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDlfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5CisgICAgPgorc3RydWN0IGxpc3QxMF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDlfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MjAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MjAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiNjQyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QyMC5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QvbGlzdDIwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAKKyAgICA+CitzdHJ1Y3QgbGlzdDExCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTE+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTA8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxMSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgbGlzdDEyCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTI+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTE8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MTIgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgbGlzdDEzCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTM+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTI8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDEzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgbGlzdDE0CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTQ+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTM8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxNCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgbGlzdDE1CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTU+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTQ8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MTUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUKKyAgICA+CitzdHJ1Y3QgbGlzdDE2CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTY+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTU8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDE2IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYKKyAgICA+CitzdHJ1Y3QgbGlzdDE3CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTc+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTY8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxNyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgbGlzdDE4CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTg+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTc8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MTggdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgbGlzdDE5CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTk+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTg8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDE5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgbGlzdDIwCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MjA+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0MTk8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyMCB0eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDIwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MjBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMzNGRlZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDIwX2MuaHBwCkBAIC0wLDAgKzEsMTczIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0L2xpc3QyMF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgPgorc3RydWN0IGxpc3QxMV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTE+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDEwX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDExX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExCisgICAgPgorc3RydWN0IGxpc3QxMl9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTI+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDExX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxMl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIKKyAgICA+CitzdHJ1Y3QgbGlzdDEzX2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwxMz4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MTJfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxM19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzCisgICAgPgorc3RydWN0IGxpc3QxNF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTQ+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDEzX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDE0X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0CisgICAgPgorc3RydWN0IGxpc3QxNV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTU+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDE0X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxNV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUKKyAgICA+CitzdHJ1Y3QgbGlzdDE2X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwxNj4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MTVfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2CisgICAgPgorc3RydWN0IGxpc3QxN19jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTc+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDE2X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDE3X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3CisgICAgPgorc3RydWN0IGxpc3QxOF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MTg+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDE3X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxOF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgKKyAgICA+CitzdHJ1Y3QgbGlzdDE5X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwxOT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MThfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QxOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5CisgICAgPgorc3RydWN0IGxpc3QyMF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MjA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDE5X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDIwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QzMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QzMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNkY2FjNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDMwLmhwcApAQCAtMCwwICsxLDE4OSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvbGlzdC9saXN0MzAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IGxpc3QyMQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDIxPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDIwPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDIxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxCisgICAgPgorc3RydWN0IGxpc3QyMgorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDIyPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDIxPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyMiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyCisgICAgPgorc3RydWN0IGxpc3QyMworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDIzPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDIyPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MjMgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzCisgICAgPgorc3RydWN0IGxpc3QyNAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI0PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDIzPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDI0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgPgorc3RydWN0IGxpc3QyNQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI1PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDI0PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyNSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1CisgICAgPgorc3RydWN0IGxpc3QyNgorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI2PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDI1PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MjYgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2CisgICAgPgorc3RydWN0IGxpc3QyNworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI3PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDI2PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDI3IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3CisgICAgPgorc3RydWN0IGxpc3QyOAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI4PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDI3PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyOCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4CisgICAgPgorc3RydWN0IGxpc3QyOQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDI5PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDI4PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjggPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MjkgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgPgorc3RydWN0IGxpc3QzMAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDMwPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDI5PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDMwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MzBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3QzMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzk4MTUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0MzBfYy5ocHAKQEAgLTAsMCArMSwxODMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QvbGlzdDMwX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgPgorc3RydWN0IGxpc3QyMV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MjE+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDIwX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyMV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEKKyAgICA+CitzdHJ1Y3QgbGlzdDIyX2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwyMj4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MjFfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyMl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyCisgICAgPgorc3RydWN0IGxpc3QyM19jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MjM+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDIyX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDIzX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzCisgICAgPgorc3RydWN0IGxpc3QyNF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MjQ+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDIzX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQKKyAgICA+CitzdHJ1Y3QgbGlzdDI1X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwyNT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MjRfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyNV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1CisgICAgPgorc3RydWN0IGxpc3QyNl9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MjY+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDI1X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDI2X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2CisgICAgPgorc3RydWN0IGxpc3QyN19jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mjc+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDI2X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcKKyAgICA+CitzdHJ1Y3QgbGlzdDI4X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwyOD4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MjdfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QyOF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4CisgICAgPgorc3RydWN0IGxpc3QyOV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mjk+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDI4X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDI5X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5CisgICAgPgorc3RydWN0IGxpc3QzMF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MzA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDI5X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NDAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NDAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMGFlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3Q0MC5ocHAKQEAgLTAsMCArMSwyMDkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QvbGlzdDQwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwCisgICAgPgorc3RydWN0IGxpc3QzMQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDMxPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDMwPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzMSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxCisgICAgPgorc3RydWN0IGxpc3QzMgorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDMyPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDMxPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MzIgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyCisgICAgPgorc3RydWN0IGxpc3QzMworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDMzPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDMyPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDMzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzCisgICAgPgorc3RydWN0IGxpc3QzNAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDM0PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDMzPCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzNCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgPgorc3RydWN0IGxpc3QzNQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDM1PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDM0PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyxUMzQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MzUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1CisgICAgPgorc3RydWN0IGxpc3QzNgorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDM2PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDM1PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyxUMzQsVDM1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDM2IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2CisgICAgPgorc3RydWN0IGxpc3QzNworICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDM3PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDM2PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyxUMzQsVDM1LFQzNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzNyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3CisgICAgPgorc3RydWN0IGxpc3QzOAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDM4PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDM3PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyxUMzQsVDM1LFQzNixUMzcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0MzggdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4CisgICAgPgorc3RydWN0IGxpc3QzOQorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDM5PgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDM4PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyxUMzQsVDM1LFQzNixUMzcsVDM4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDM5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgPgorc3RydWN0IGxpc3Q0MAorICAgIDogbF9pdGVtPAorICAgICAgICAgIGxvbmdfPDQwPgorICAgICAgICAsIFQwCisgICAgICAgICwgbGlzdDM5PCBUMSxUMixUMyxUNCxUNSxUNixUNyxUOCxUOSxUMTAsVDExLFQxMixUMTMsVDE0LFQxNSxUMTYsVDE3LFQxOCxUMTksVDIwLFQyMSxUMjIsVDIzLFQyNCxUMjUsVDI2LFQyNyxUMjgsVDI5LFQzMCxUMzEsVDMyLFQzMyxUMzQsVDM1LFQzNixUMzcsVDM4LFQzOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0MCB0eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDQwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NDBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlZDY0OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDQwX2MuaHBwCkBAIC0wLDAgKzEsMTkzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0L2xpc3Q0MF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICA+CitzdHJ1Y3QgbGlzdDMxX2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwzMT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MzBfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzMV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxCisgICAgPgorc3RydWN0IGxpc3QzMl9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MzI+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDMxX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDMyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyCisgICAgPgorc3RydWN0IGxpc3QzM19jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MzM+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDMyX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzM19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMKKyAgICA+CitzdHJ1Y3QgbGlzdDM0X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwzND4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MzNfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0CisgICAgPgorc3RydWN0IGxpc3QzNV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MzU+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDM0X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDM1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1CisgICAgPgorc3RydWN0IGxpc3QzNl9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188MzY+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDM1X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYKKyAgICA+CitzdHJ1Y3QgbGlzdDM3X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzwzNz4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MzZfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3CisgICAgPgorc3RydWN0IGxpc3QzOF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mzg+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDM3X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDM4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4CisgICAgPgorc3RydWN0IGxpc3QzOV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188Mzk+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDM4X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3QzOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzkKKyAgICA+CitzdHJ1Y3QgbGlzdDQwX2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzw0MD4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0MzlfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNixDMzcsQzM4LEMzOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0MF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NTAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NTAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViOGZkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL2xpc3Q1MC5ocHAKQEAgLTAsMCArMSwyMjkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL2xpc3QvbGlzdDUwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAKKyAgICA+CitzdHJ1Y3QgbGlzdDQxCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDE+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDA8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0MSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEKKyAgICA+CitzdHJ1Y3QgbGlzdDQyCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDI+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDE8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0NDIgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIKKyAgICA+CitzdHJ1Y3QgbGlzdDQzCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDM+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDI8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDQzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMKKyAgICA+CitzdHJ1Y3QgbGlzdDQ0CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDQ+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDM8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0NCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICA+CitzdHJ1Y3QgbGlzdDQ1CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDU+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDQ8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0NDUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUKKyAgICA+CitzdHJ1Y3QgbGlzdDQ2CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDY+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDU8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDQ2IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgICwgdHlwZW5hbWUgVDQ1LCB0eXBlbmFtZSBUNDYKKyAgICA+CitzdHJ1Y3QgbGlzdDQ3CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDc+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDY8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0NyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcKKyAgICA+CitzdHJ1Y3QgbGlzdDQ4CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDg+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDc8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NixUNDcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBsaXN0NDggdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUsIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgKKyAgICA+CitzdHJ1Y3QgbGlzdDQ5CisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDk+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDg8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NixUNDcsVDQ4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDQ5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgICwgdHlwZW5hbWUgVDQ1LCB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4LCB0eXBlbmFtZSBUNDkKKyAgICA+CitzdHJ1Y3QgbGlzdDUwCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NTA+CisgICAgICAgICwgVDAKKyAgICAgICAgLCBsaXN0NDk8IFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NixUNDcsVDQ4LFQ0OSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q1MCB0eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDUwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi9saXN0NTBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBmNjE5ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vbGlzdDUwX2MuaHBwCkBAIC0wLDAgKzEsMjAzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC9saXN0L2xpc3Q1MF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgPgorc3RydWN0IGxpc3Q0MV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDE+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQwX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDQxX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxCisgICAgPgorc3RydWN0IGxpc3Q0Ml9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDI+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQxX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0Ml9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIKKyAgICA+CitzdHJ1Y3QgbGlzdDQzX2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzw0Mz4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0NDJfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNixDMzcsQzM4LEMzOSxDNDAsQzQxLEM0MiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0M19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzCisgICAgPgorc3RydWN0IGxpc3Q0NF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDQ+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQzX2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDQ0X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0CisgICAgPgorc3RydWN0IGxpc3Q0NV9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDU+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQ0X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzLEM0NCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0NV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUKKyAgICA+CitzdHJ1Y3QgbGlzdDQ2X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzw0Nj4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0NDVfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNixDMzcsQzM4LEMzOSxDNDAsQzQxLEM0MixDNDMsQzQ0LEM0NSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0Nl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2CisgICAgPgorc3RydWN0IGxpc3Q0N19jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDc+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQ2X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzLEM0NCxDNDUsQzQ2ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDQ3X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NSwgVCBDNDYsIFQgQzQ3CisgICAgPgorc3RydWN0IGxpc3Q0OF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NDg+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQ3X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzLEM0NCxDNDUsQzQ2LEM0NyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0OF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2LCBUIEM0NywgVCBDNDgKKyAgICA+CitzdHJ1Y3QgbGlzdDQ5X2MKKyAgICA6IGxfaXRlbTwKKyAgICAgICAgICBsb25nXzw0OT4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMwID4KKyAgICAgICAgLCBsaXN0NDhfYzwgVCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNixDMzcsQzM4LEMzOSxDNDAsQzQxLEM0MixDNDMsQzQ0LEM0NSxDNDYsQzQ3LEM0OCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIGxpc3Q0OV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2LCBUIEM0NywgVCBDNDgsIFQgQzQ5CisgICAgPgorc3RydWN0IGxpc3Q1MF9jCisgICAgOiBsX2l0ZW08CisgICAgICAgICAgbG9uZ188NTA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgbGlzdDQ5X2M8IFQsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzLEM0NCxDNDUsQzQ2LEM0NyxDNDgsQzQ5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgbGlzdDUwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHVzaF9iYWNrLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wdXNoX2JhY2suaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxYzJmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHVzaF9iYWNrLmhwcApAQCAtMCwwICsxLDM2IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfQVVYX1BVU0hfQkFDS19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfQVVYX1BVU0hfQkFDS19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHB1c2hfYmFjay5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2JhY2tfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy90YWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBoYXNfcHVzaF9iYWNrX2ltcGw7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBoYXNfcHVzaF9iYWNrX2ltcGw8IGF1eDo6bGlzdF90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTZXEgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfTElTVF9BVVhfUFVTSF9CQUNLX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3B1c2hfZnJvbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3B1c2hfZnJvbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGVkOGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vcHVzaF9mcm9udC5ocHAKQEAgLTAsMCArMSwzOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0FVWF9QVVNIX0ZST05UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9BVVhfUFVTSF9GUk9OVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHB1c2hfZnJvbnQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcHVzaF9mcm9udF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2l0ZW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vdGFnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6bGlzdF90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBMaXN0LCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIGxfaXRlbTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbmV4dDx0eXBlbmFtZSBMaXN0OjpzaXplPjo6dHlwZQorICAgICAgICAgICAgLCBUCisgICAgICAgICAgICAsIHR5cGVuYW1lIExpc3Q6OnR5cGUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9QVVNIX0ZST05UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3NpemUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3NpemUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODE1ODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vc2l6ZS5ocHAKQEAgLTAsMCArMSwzMyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0FVWF9TSVpFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9BVVhfU0laRV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHNpemUuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vdGFnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6bGlzdF90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBMaXN0ID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogTGlzdDo6c2l6ZQorICAgIHsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0FVWF9TSVpFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3RhZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2F1eF8vdGFnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzIyYTgxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9hdXhfL3RhZy5ocHAKQEAgLTAsMCArMSwyNCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0FVWF9UQUdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0FVWF9UQUdfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB0YWcuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworc3RydWN0IGxpc3RfdGFnOworc3RydWN0IGxfaXRlcl90YWc7CisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfQVVYX1RBR19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NkODhlNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDAuaHBwCkBAIC0wLDAgKzEsNDIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9MSVNUMF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfTElTVDBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0MC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wdXNoX2Zyb250LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL3BvcF9mcm9udC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9wdXNoX2JhY2suaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vZnJvbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vY2xlYXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vTzFfc2l6ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9zaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2VtcHR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2JlZ2luX2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pdGVtLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBEdW1teSA9IG5hID4gc3RydWN0IGxpc3QwOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBsaXN0MDxuYT4KKyAgICA6IGxfZW5kCit7CisgICAgdHlwZWRlZiBsX2VuZCB0eXBlOworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0xJU1QwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgyNDM2YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDBfYy5ocHAKQEAgLTAsMCArMSwzMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0xJU1QwX0NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0xJU1QwX0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0MF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvbGlzdDAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGxpc3QwX2MKKyAgICA6IGxfZW5kCit7CisgICAgdHlwZWRlZiBsX2VuZCB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0xJU1QwX0NfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3QxMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3QxMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc4Y2YzMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDEwLmhwcApAQCAtMCwwICsxLDQzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfTElTVDEwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9MSVNUMTBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0MTAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2xpc3QwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgbGlzdDEwLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgxLCAxMCwgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0xJU1QxMF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDEwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MTBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZmM2Q4OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDEwX2MuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9MSVNUMTBfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfTElTVDEwX0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0MTBfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvbGlzdDBfYy5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGxpc3QxMF9jLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgxLCAxMCwgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWRfYy5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfTElTVDEwX0NfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3QyMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3QyMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlkZDgyMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDIwLmhwcApAQCAtMCwwICsxLDQzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfTElTVDIwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9MSVNUMjBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0MjAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2xpc3QxMC5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGxpc3QyMC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMTEsIDIwLCA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9udW1iZXJlZC5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfTElTVDIwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MjBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3QyMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWIyMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MjBfYy5ocHAKQEAgLTAsMCArMSw0MyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0xJU1QyMF9DX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9MSVNUMjBfQ19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxpc3QyMF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9saXN0MTBfYy5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGxpc3QyMF9jLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgxMSwgMjAsIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL251bWJlcmVkX2MuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0xJU1QyMF9DX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MzAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYWRlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3QzMC5ocHAKQEAgLTAsMCArMSw0MyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0xJU1QzMF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfTElTVDMwX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGlzdDMwLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9saXN0MjAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiBsaXN0MzAuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDIxLCAzMCwgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0xJU1QzMF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDMwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0MzBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY5YWEzYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDMwX2MuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9MSVNUMzBfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJU1RfTElTVDMwX0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0MzBfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvbGlzdDIwX2MuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiBsaXN0MzBfYy5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMjEsIDMwLCA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9udW1iZXJlZF9jLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfTElTVF9MSVNUMzBfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDQwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDQwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2M0NTExCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0NDAuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTElTVF9MSVNUNDBfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0xJU1Q0MF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxpc3Q0MC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvbGlzdDMwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgbGlzdDQwLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgzMSwgNDAsIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL251bWJlcmVkLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfTElTVF9MSVNUNDBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3Q0MF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDQwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZWEyMWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3Q0MF9jLmhwcApAQCAtMCwwICsxLDQzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfTElTVDQwX0NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MSVNUX0xJU1Q0MF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGlzdDQwX2MuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2xpc3QzMF9jLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgbGlzdDQwX2MuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDMxLCA0MCwgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vbnVtYmVyZWRfYy5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfTElTVDQwX0NfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3Q1MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3Q1MC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg1MGM1YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xpc3QvbGlzdDUwLmhwcApAQCAtMCwwICsxLDQzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJU1RfTElTVDUwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9MSVNUNTBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsaXN0NTAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2xpc3Q0MC5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGxpc3Q1MC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoNDEsIDUwLCA8bmRuYm9vc3QvbXBsL2xpc3QvYXV4Xy9udW1iZXJlZC5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xJU1RfTElTVDUwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0NTBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9saXN0L2xpc3Q1MF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjE0MmY4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbGlzdC9saXN0NTBfYy5ocHAKQEAgLTAsMCArMSw0MyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MSVNUX0xJU1Q1MF9DX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTElTVF9MSVNUNTBfQ19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxpc3Q1MF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGlzdC9saXN0NDBfYy5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIGxpc3Q1MF9jLmhwcAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saXN0L2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCg0MSwgNTAsIDxuZG5ib29zdC9tcGwvbGlzdC9hdXhfL251bWJlcmVkX2MuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSVNUX0xJU1Q1MF9DX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbG9naWNhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9sb2dpY2FsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDY3ODlmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbG9naWNhbC5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MT0dJQ0FMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTE9HSUNBTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxvZ2ljYWwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3QuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xPR0lDQUxfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9sb25nLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xvbmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NDUxNDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9sb25nLmhwcApAQCAtMCwwICsxLDIyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xPTkdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MT05HX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbG9uZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nX2Z3ZC5ocHA+CisKKyNkZWZpbmUgQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSBsb25nCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaW50ZWdyYWxfd3JhcHBlci5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfTE9OR19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xvbmdfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL2xvbmdfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjQ3YmMzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbG9uZ19md2QuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTE9OR19GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9MT05HX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxvbmdfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pID4gc3RydWN0IGxvbmdfOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9ERUNMKGxvbmdfKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xPTkdfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbWludXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiNGI1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9taW51cy5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9NSU5VU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX01JTlVTX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbWludXMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNkZWZpbmUgQVVYNzc4MDc2X09QX05BTUUgbWludXMKKyNkZWZpbmUgQVVYNzc4MDc2X09QX1RPS0VOIC0KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hcml0aG1ldGljX29wLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9NSU5VU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL211bHRpcGxpZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbXVsdGlwbGllcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg1NTcwOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL211bHRpcGxpZXMuaHBwCkBAIC0wLDAgKzEsNTMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTVVMVElQTElFU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX01VTFRJUExJRVNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBtdWx0aXBsaWVzLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3RpbWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZmF1bHRfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKKy8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaGVhZGVyLCBkZXByZWNhdGVkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKyMgICBkZWZpbmUgQVVYNzc4MDc2X09QX0FSSVRZIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFkKKyNlbHNlCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9PUF9BUklUWSAyCisjZW5kaWYKKwordGVtcGxhdGU8CisgICAgICBCT09TVF9NUExfUFBfREVGQVVMVF9QQVJBTVMoQVVYNzc4MDc2X09QX0FSSVRZLCB0eXBlbmFtZSBOLCBuYSkKKyAgICA+CitzdHJ1Y3QgbXVsdGlwbGllcworICAgIDogdGltZXM8IEJPT1NUX01QTF9QUF9QQVJBTVMoQVVYNzc4MDc2X09QX0FSSVRZLCBOKSA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgKKyAgICAgICAgICBBVVg3NzgwNzZfT1BfQVJJVFkKKyAgICAgICAgLCBtdWx0aXBsaWVzCisgICAgICAgICwgKCBCT09TVF9NUExfUFBfUEFSQU1TKEFVWDc3ODA3Nl9PUF9BUklUWSwgTikgKQorICAgICAgICApCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoQVVYNzc4MDc2X09QX0FSSVRZLCBtdWx0aXBsaWVzKQorCisjdW5kZWYgQVVYNzc4MDc2X09QX0FSSVRZCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfTVVMVElQTElFU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25lZ2F0ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9uZWdhdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ZTU1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9uZWdhdGUuaHBwCkBAIC0wLDAgKzEsODEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTkVHQVRFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTkVHQVRFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbmVnYXRlLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludGVncmFsX2MuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL21zdmNfZXRpX2Jhc2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvaW50ZWdyYWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBuZWdhdGVfaW1wbDsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgbmVnYXRlX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVDo6dGFnIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oTikKKyAgICA+CitzdHJ1Y3QgbmVnYXRlCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCisgICAgOiBuZWdhdGVfaW1wbDwKKyAgICAgICAgICB0eXBlbmFtZSBuZWdhdGVfdGFnPE4+Ojp0eXBlCisgICAgICAgID46OnRlbXBsYXRlIGFwcGx5PE4+Ojp0eXBlCisjZWxzZQorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPCB0eXBlbmFtZSBhcHBseV93cmFwMTwKKyAgICAgICAgICBuZWdhdGVfaW1wbDwgdHlwZW5hbWUgbmVnYXRlX3RhZzxOPjo6dHlwZSA+CisgICAgICAgICwgTgorICAgICAgICA+Ojp0eXBlID46OnR5cGUKKyNlbmRpZgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSwgbmVnYXRlLCAoTikpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgbmVnYXRlKQorCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX1ZBTFVFX0FSSVRITUVUSUMpCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBUIG4gPiBzdHJ1Y3QgbmVnYXRlX3drbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoVCwgdmFsdWUgPSAtbik7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jPFQsdmFsdWU+IHR5cGU7Cit9OworfQorI2VuZGlmCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBuZWdhdGVfaW1wbDxpbnRlZ3JhbF9jX3RhZz4KK3sKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTkVTVEVEX1ZBTFVFX0FSSVRITUVUSUMpCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBhdXg6Om5lZ2F0ZV93a25kPCB0eXBlbmFtZSBOOjp2YWx1ZV90eXBlLCBOOjp2YWx1ZSA+CisjZWxzZQorICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogaW50ZWdyYWxfYzwgdHlwZW5hbWUgTjo6dmFsdWVfdHlwZSwgKC1OOjp2YWx1ZSkgPgorI2VuZGlmICAgIAorICAgIHsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9ORUdBVEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9uZXh0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25leHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhOWYwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9uZXh0LmhwcApAQCAtMCwwICsxLDE5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX05FWFRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9ORVhUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG5leHQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dF9wcmlvci5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfTkVYVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25leHRfcHJpb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvbmV4dF9wcmlvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg5MzUzMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25leHRfcHJpb3IuaHBwCkBAIC0wLDAgKzEsNDkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTkVYVF9QUklPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX05FWFRfUFJJT1JfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBuZXh0X3ByaW9yLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29tbW9uX25hbWVfd2tuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworQk9PU1RfTVBMX0FVWF9DT01NT05fTkFNRV9XS05EKG5leHQpCitCT09TVF9NUExfQVVYX0NPTU1PTl9OQU1FX1dLTkQocHJpb3IpCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUKQorICAgID4KK3N0cnVjdCBuZXh0Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjpuZXh0IHR5cGU7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLG5leHQsKFQpKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgPgorc3RydWN0IHByaW9yCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjpwcmlvciB0eXBlOworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxwcmlvciwoVCkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgbmV4dCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLCBwcmlvcikKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9ORVhUX1BSSU9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbm90LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25vdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmMzZjFhYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25vdC5ocHAKQEAgLTAsMCArMSw1MSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9OT1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9OT1RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBub3QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uZXN0ZWRfdHlwZV93a25kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIENfKSA+IC8vICdsb25nJyBpcyBpbnRlbnRpb25hbCBoZXJlCitzdHJ1Y3Qgbm90X2ltcGwKKyAgICA6IGJvb2xfPCFDXz4KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUKQorICAgID4KK3N0cnVjdCBub3RfCisgICAgOiBhdXg6Om5vdF9pbXBsPAorICAgICAgICAgIEJPT1NUX01QTF9BVVhfTkVTVEVEX1RZUEVfV0tORChUKTo6dmFsdWUKKyAgICAgICAgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxub3RfLChUKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLG5vdF8pCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfTk9UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvbm90X2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY5OGJmNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL25vdF9lcXVhbF90by5ocHAKQEAgLTAsMCArMSwyMSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9OT1RfRVFVQUxfVE9fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9OT1RfRVFVQUxfVE9fSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBub3RfZXF1YWxfdG8uaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNkZWZpbmUgQVVYNzc4MDc2X09QX05BTUUgbm90X2VxdWFsX3RvCisjZGVmaW5lIEFVWDc3ODA3Nl9PUF9UT0tFTiAhPQorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbXBhcmlzb25fb3AuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX05PVF9FUVVBTF9UT19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL251bWVyaWNfY2FzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9udW1lcmljX2Nhc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwM2JmNzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9udW1lcmljX2Nhc3QuaHBwCkBAIC0wLDAgKzEsNDEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfTlVNRVJJQ19DQVNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTlVNRVJJQ19DQVNUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAzLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG51bWVyaWNfY2FzdC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKy8vIGFndXJ0IDIxL3NlcC8wNDogcG9ydGFiaWxpdHkgbWFjcm8gZm9yIHRoZSBzYWtlIG9mIE1TVkMgNi54LTcuMDsKKy8vIHJlc29sdmVzIGNvbmZsaWN0cyB3aXRoICduZG5ib29zdDo6bnVtZXJpY19jYXN0JyBmdW5jdGlvbiB0ZW1wbGF0ZS4KKy8vIHVzZSBpdCBpbiB5b3VyIG93biBjb2RlIF9vbmx5XyBpZiB5b3UgY2FyZSBhYm91dCBjb21wYXRpYmlsaXR5IHdpdGgKKy8vIHRoZXNlIG91dGRhdGVkIGNvbXBpbGVycyEKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDApIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NzApICkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OVU1FUklDX0NBU1QgbnVtZXJpY19jYXN0XworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OVU1FUklDX0NBU1QgbnVtZXJpY19jYXN0CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKy8vIG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb247IHRoZSBkZWZpbml0aW9uIGlzIG5lZWRlZCB0byBtYWtlIE1TVkMgaGFwcHkKKwordGVtcGxhdGU8IHR5cGVuYW1lIFNvdXJjZVRhZywgdHlwZW5hbWUgVGFyZ2V0VGFnID4gc3RydWN0IEJPT1NUX01QTF9BVVhfTlVNRVJJQ19DQVNUCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHk7Cit9OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX05VTUVSSUNfQ0FTVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL29yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTExNmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvb3IuaHBwCkBAIC0wLDAgKzEsNjEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfT1JfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9PUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG9yLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmVzdGVkX3R5cGVfd2tuZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKworLy8gYWd1cnQsIDE5L21heS8wNDogd29ya2Fyb3VuZCBhIGNvbmZsaWN0IHdpdGggPGlzbzY0Ni5oPiBoZWFkZXIncyAKKy8vICdvcicgYW5kICdhbmQnIG1hY3Jvcywgc2VlIGh0dHA6Ly90aW55dXJsLmNvbS8zZXQ2OTsgJ2RlZmluZWQob3IpJworLy8gaGFzIHRvIGJlIGNoZWNrZWQgaW4gYSBzZXBhcmF0ZSBjb25kaXRpb24sIG90aGVyd2lzZSBHQ0MgY29tcGxhaW5zIAorLy8gYWJvdXQgJ29yJyBiZWluZyBhbiBhbHRlcm5hdGl2ZSB0b2tlbgorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjaWZuZGVmIF9fR0NDWE1MX18KKyNpZiBkZWZpbmVkKG9yKQorIyAgIHByYWdtYSBwdXNoX21hY3JvKCJvciIpCisjICAgdW5kZWYgb3IKKyMgICBkZWZpbmUgb3IoeCkKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiBvci5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAKKyNpZm5kZWYgX19HQ0NYTUxfXworI2lmIGRlZmluZWQob3IpCisjICAgcHJhZ21hIHBvcF9tYWNybygib3IiKQorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisjZWxzZQorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9PUF9OQU1FIG9yXworIyAgIGRlZmluZSBBVVg3NzgwNzZfT1BfVkFMVUUxIHRydWUKKyMgICBkZWZpbmUgQVVYNzc4MDc2X09QX1ZBTFVFMiBmYWxzZQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xvZ2ljYWxfb3AuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmIC8vIEJPT1NUX01QTF9PUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BhaXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcGFpci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU4YzBiZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BhaXIuaHBwCkBAIC0wLDAgKzEsNzAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfUEFJUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1BBSVJfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwYWlyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbXN2Y19ldGlfYmFzZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9ldGkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQxKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMikKKyAgICA+CitzdHJ1Y3QgcGFpcgoreworICAgIHR5cGVkZWYgcGFpciB0eXBlOworICAgIHR5cGVkZWYgVDEgZmlyc3Q7CisgICAgdHlwZWRlZiBUMiBzZWNvbmQ7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIscGFpciwoVDEsVDIpKQorfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFApCisgICAgPgorc3RydWN0IGZpcnN0Cit7CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzcwX0VUSV9CVUcpCisgICAgdHlwZWRlZiB0eXBlbmFtZSBQOjpmaXJzdCB0eXBlOworI2Vsc2UKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6bXN2Y19ldGlfYmFzZTxQPjo6Zmlyc3QgdHlwZTsKKyNlbmRpZgorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxmaXJzdCwoUCkpCit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oUCkKKyAgICA+CitzdHJ1Y3Qgc2Vjb25kCit7CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzcwX0VUSV9CVUcpCisgICAgdHlwZWRlZiB0eXBlbmFtZSBQOjpzZWNvbmQgdHlwZTsKKyNlbHNlCisgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6Om1zdmNfZXRpX2Jhc2U8UD46OnNlY29uZCB0eXBlOworI2VuZGlmCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHNlY29uZCwoUCkpCit9OworCisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19OT19FVEkoMiwgcGFpcikKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLCBmaXJzdCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLCBzZWNvbmQpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfUEFJUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BsYWNlaG9sZGVycy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wbGFjZWhvbGRlcnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZjhlMDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wbGFjZWhvbGRlcnMuaHBwCkBAIC0wLDAgKzEsMTAwIEBACisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKyNpZm5kZWYgQk9PU1RfTVBMX1BMQUNFSE9MREVSU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1BMQUNFSE9MREVSU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLyBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS0yMDAzCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHBsYWNlaG9sZGVycy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXJnLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisKKyMgICBpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0FETF9CQVJSSUVSX05BTUVTUEFDRSkKKyMgICAgICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQVJHX0FETF9CQVJSSUVSX0RFQ0wodHlwZSkgXAorICAgICAgICB1c2luZyA6OkJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjp0eXBlOyBcCisgICAgICAgIC8qKi8KKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FSR19BRExfQkFSUklFUl9ERUNMKHR5cGUpIC8qKi8KKyMgICBlbmRpZgorCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIHBsYWNlaG9sZGVycy5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworLy8gd2F0Y2ggb3V0IGZvciBHTlUgZ2V0dGV4dCB1c2Vycywgd2hvICNkZWZpbmUgXyh4KQorI2lmICFkZWZpbmVkKF8pIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19VTk5BTUVEX1BMQUNFSE9MREVSX1NVUFBPUlQpCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCit0eXBlZGVmIGFyZzwtMT4gXzsKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyAKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChfKQorCituYW1lc3BhY2UgcGxhY2Vob2xkZXJzIHsKK3VzaW5nIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjpfOworfQorCit9fQorI2VuZGlmCisKKy8vLyBhZ3VydCwgMTcvbWFyLzAyOiBvbmUgbW9yZSBwbGFjZWhvbGRlciBmb3IgdGhlIGxhc3QgJ2FwcGx5IycgCisvLy8gc3BlY2lhbGl6YXRpb24KKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMSwgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSArIDEsIDxuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcD4pKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisjZW5kaWYgLy8gQk9PU1RfTVBMX1BMQUNFSE9MREVSU19IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKK3R5cGVkZWYgYXJnPGlfPiBCT09TVF9QUF9DQVQoXyxpXyk7CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyAKKworQk9PU1RfTVBMX0FVWF9BUkdfQURMX0JBUlJJRVJfREVDTChCT09TVF9QUF9DQVQoXyxpXykpCisKK25hbWVzcGFjZSBwbGFjZWhvbGRlcnMgewordXNpbmcgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6OkJPT1NUX1BQX0NBVChfLGlfKTsKK30KKworfX0KKworI3VuZGVmIGlfCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9wbHVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BsdXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjZTUzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wbHVzLmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1BMVVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9QTFVTX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcGx1cy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2RlZmluZSBBVVg3NzgwNzZfT1BfTkFNRSBwbHVzCisjZGVmaW5lIEFVWDc3ODA3Nl9PUF9UT0tFTiArCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vYXJpdGhtZXRpY19vcC5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfUExVU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BvcF9iYWNrX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wb3BfYmFja19md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMjI3OGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wb3BfYmFja19md2QuaHBwCkBAIC0wLDAgKzEsMjQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfUE9QX0JBQ0tfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfUE9QX0JBQ0tfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcG9wX2JhY2tfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBwb3BfYmFja19pbXBsOwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IHBvcF9iYWNrOworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1BPUF9CQUNLX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BvcF9mcm9udF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcG9wX2Zyb250X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y1YWIyYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3BvcF9mcm9udF9md2QuaHBwCkBAIC0wLDAgKzEsMjQgQEAKKworI2lmbmRlZiBCT09TVF9NUExfUE9QX0ZST05UX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1BPUF9GUk9OVF9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwb3BfZnJvbnRfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFRhZyA+IHN0cnVjdCBwb3BfZnJvbnRfaW1wbDsKK3RlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSA+IHN0cnVjdCBwb3BfZnJvbnQ7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfUE9QX0ZST05UX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ByaW9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ByaW9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2FlNGU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcHJpb3IuaHBwCkBAIC0wLDAgKzEsMTkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfUFJJT1JfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9QUklPUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwcmlvci5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0X3ByaW9yLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9QUklPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3Byb3RlY3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcHJvdGVjdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmY2NhMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3Byb3RlY3QuaHBwCkBAIC0wLDAgKzEsNTUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfUFJPVEVDVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1BST1RFQ1RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHJvdGVjdC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2FyaXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgLCBpbnQgbm90X2xlXyA9IDAKKyAgICA+CitzdHJ1Y3QgcHJvdGVjdCA6IFQKK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPT0gMjM4KQorICAgIHR5cGVkZWYgbXBsOjpwcm90ZWN0IHR5cGU7CisjZWxzZQorICAgIHR5cGVkZWYgcHJvdGVjdCB0eXBlOworI2VuZGlmCit9OworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykKK25hbWVzcGFjZSBhdXggeyAKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChpbnQsIE4pLCB0eXBlbmFtZSBUID4KK3N0cnVjdCBhcml0eTwgcHJvdGVjdDxUPiwgTiA+IAorICAgIDogYXJpdHk8VCxOPgoreyAKK307Cit9IC8vIG5hbWVzcGFjZSBhdXgKKyNlbmRpZgorCitCT09TVF9NUExfQVVYX05BX1NQRUNfTUFJTigxLCBwcm90ZWN0KQorI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWSgxLCAxLCBwcm90ZWN0KQorI2VuZGlmCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfUFJPVEVDVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3B1c2hfYmFjay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2JhY2suaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhOThkYWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2JhY2suaHBwCkBAIC0wLDAgKzEsNTMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfUFVTSF9CQUNLX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfUFVTSF9CQUNLX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHVzaF9iYWNrLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3B1c2hfYmFja19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3B1c2hfYmFja19pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgPgorc3RydWN0IHB1c2hfYmFjaworICAgIDogcHVzaF9iYWNrX2ltcGw8IHR5cGVuYW1lIHNlcXVlbmNlX3RhZzxTZXF1ZW5jZT46OnR5cGUgPgorICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PCBTZXF1ZW5jZSxUID4KK3sKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIscHVzaF9iYWNrLChTZXF1ZW5jZSxUKSkKK307CisKKwordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICA+CitzdHJ1Y3QgaGFzX3B1c2hfYmFjaworICAgIDogaGFzX3B1c2hfYmFja19pbXBsPCB0eXBlbmFtZSBzZXF1ZW5jZV90YWc8U2VxdWVuY2U+Ojp0eXBlID4KKyAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgU2VxdWVuY2UgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxoYXNfcHVzaF9iYWNrLChTZXF1ZW5jZSkpCit9OworCisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygyLCBwdXNoX2JhY2spCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgaGFzX3B1c2hfYmFjaykKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9QVVNIX0JBQ0tfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2JhY2tfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3B1c2hfYmFja19md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5OTYwN2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2JhY2tfZndkLmhwcApAQCAtMCwwICsxLDI0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1BVU0hfQkFDS19GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9QVVNIX0JBQ0tfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHVzaF9iYWNrX2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcHVzaF9iYWNrOworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1BVU0hfQkFDS19GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2Zyb250LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3B1c2hfZnJvbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwODI0OGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2Zyb250LmhwcApAQCAtMCwwICsxLDUyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1BVU0hfRlJPTlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9QVVNIX0ZST05UX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHVzaF9mcm9udC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2Zyb250X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHVzaF9mcm9udF9pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQpCisgICAgPgorc3RydWN0IHB1c2hfZnJvbnQKKyAgICA6IHB1c2hfZnJvbnRfaW1wbDwgdHlwZW5hbWUgc2VxdWVuY2VfdGFnPFNlcXVlbmNlPjo6dHlwZSA+CisgICAgICAgIDo6dGVtcGxhdGUgYXBwbHk8IFNlcXVlbmNlLFQgPgoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMixwdXNoX2Zyb250LChTZXF1ZW5jZSxUKSkKK307CisKKwordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICA+CitzdHJ1Y3QgaGFzX3B1c2hfZnJvbnQKKyAgICA6IGhhc19wdXNoX2Zyb250X2ltcGw8IHR5cGVuYW1lIHNlcXVlbmNlX3RhZzxTZXF1ZW5jZT46OnR5cGUgPgorICAgICAgICA6OnRlbXBsYXRlIGFwcGx5PCBTZXF1ZW5jZSA+Cit7CisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLGhhc19wdXNoX2Zyb250LChTZXF1ZW5jZSkpCit9OworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMiwgcHVzaF9mcm9udCkKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLCBoYXNfcHVzaF9mcm9udCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9QVVNIX0ZST05UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvcHVzaF9mcm9udF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcHVzaF9mcm9udF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNjJmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9wdXNoX2Zyb250X2Z3ZC5ocHAKQEAgLTAsMCArMSwyNCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9QVVNIX0ZST05UX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1BVU0hfRlJPTlRfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHVzaF9mcm9udF9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVGFnID4gc3RydWN0IHB1c2hfZnJvbnRfaW1wbDsKK3RlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSwgdHlwZW5hbWUgVCA+IHN0cnVjdCBwdXNoX2Zyb250OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1BVU0hfRlJPTlRfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvcXVvdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcXVvdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxNTllMTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9xdW90ZS5ocHAKQEAgLTAsMCArMSwxNTEgQEAKKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9NUExfUVVPVEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9RVU9URV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA4CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHF1b3RlLmhwcCA0OTI3MiAyMDA4LTEwLTExIDA2OjUwOjQ2WiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6NTA6NDYgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNzIgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdm9pZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaGFzX3R5cGUuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvYmNjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19URU1QTEFURV9URU1QTEFURV9QQVJBTUVURVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19CQ0M1OTBfV09SS0FST1VORFMpCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fUVVPVEVfVEVNUExBVEUKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19JTVBMSUNJVF9NRVRBRlVOQ1RJT05TKSBcCisgICAgJiYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0hBU19YWFgpCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fSU1QTElDSVRfTUVUQUZVTkNUSU9OUworI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiBxdW90ZS5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19RVU9URV9URU1QTEFURSkKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgYm9vbCBoYXNfdHlwZV8gPgorc3RydWN0IHF1b3RlX2ltcGwKKy8vIEdDQyBoYXMgYSBwcm9ibGVtIHdpdGggbWV0YWZ1bmN0aW9uIGZvcndhcmRpbmcgd2hlbiBUIGlzIGEKKy8vIHNwZWNpYWxpemF0aW9uIG9mIGEgdGVtcGxhdGUgY2FsbGVkICd0eXBlJy4KKyMgaWYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgQk9PU1RfVEVTVEVEX0FUKDQpKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfTUlOT1JfXywgQk9PU1RfVEVTVEVEX0FUKDApKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfUEFUQ0hMRVZFTF9fLCBCT09TVF9URVNURURfQVQoMikpCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0eXBlIHR5cGU7Cit9OworIyBlbHNlIAorICAgIDogVAoreworfTsKKyMgZW5kaWYgCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBxdW90ZV9pbXBsPFQsZmFsc2U+Cit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK3RlbXBsYXRlPCBib29sID4gc3RydWN0IHF1b3RlX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogVAorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgcXVvdGVfaW1wbDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworfTsKKworI2VuZGlmIAorCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDEsIEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksIDxuZG5ib29zdC9tcGwvcXVvdGUuaHBwPikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUVVPVEVfVEVNUExBVEUKKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZiAvLyBCT09TVF9NUExfUVVPVEVfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBpXyBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKwordGVtcGxhdGU8CisgICAgICB0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpXywgdHlwZW5hbWUgUCkgPiBjbGFzcyBGCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQocXVvdGUsaV8pCit7CisgICAgdGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaV8sIHR5cGVuYW1lIFUpID4gc3RydWN0IGFwcGx5CisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JDQzU5MF9XT1JLQVJPVU5EUykKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpXywgVSkgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCBVKSA+ID46OnZhbHVlCisgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgfTsKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisgICAgICAgIDogcXVvdGVfaW1wbDwKKyAgICAgICAgICAgICAgRjwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpXywgVSkgPgorICAgICAgICAgICAgLCBhdXg6Omhhc190eXBlPCBGPCBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCBVKSA+ID46OnZhbHVlCisgICAgICAgICAgICA+CisgICAgeworICAgIH07CisjZWxzZQorICAgICAgICA6IHF1b3RlX2ltcGw8IGF1eDo6aGFzX3R5cGU8IEY8IEJPT1NUX01QTF9QUF9QQVJBTVMoaV8sIFUpID4gPjo6dmFsdWUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPCBGPCBCT09TVF9NUExfUFBfUEFSQU1TKGlfLCBVKSA+ID4KKyAgICB7CisgICAgfTsKKyNlbmRpZgorfTsKKworI3VuZGVmIGlfCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9yZW1vdmVfaWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcmVtb3ZlX2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjBhMDFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvcmVtb3ZlX2lmLmhwcApAQCAtMCwwICsxLDgzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1JFTU9WRV9JRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1JFTU9WRV9JRl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMy0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHJlbW92ZV9pZi5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9mb2xkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcmV2ZXJzZV9mb2xkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZXZhbF9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcHJvdGVjdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2xhbWJkYS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FwcGx5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbnNlcnRlcl9hbGdvcml0aG0uaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworbmFtZXNwYWNlIGF1eCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBQcmVkLCB0eXBlbmFtZSBJbnNlcnRPcCA+IHN0cnVjdCByZW1vdmVfaWZfaGVscGVyCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlLCB0eXBlbmFtZSBVID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGV2YWxfaWY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIGFwcGx5MTxQcmVkLFU+Ojp0eXBlCisgICAgICAgICAgICAsIGlkZW50aXR5PFNlcXVlbmNlPgorICAgICAgICAgICAgLCBhcHBseTI8SW5zZXJ0T3AsU2VxdWVuY2UsVT4KKyAgICAgICAgICAgID46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBTZXF1ZW5jZQorICAgICwgdHlwZW5hbWUgUHJlZGljYXRlCisgICAgLCB0eXBlbmFtZSBJbnNlcnRlcgorICAgID4KK3N0cnVjdCByZW1vdmVfaWZfaW1wbAorICAgIDogZm9sZDwKKyAgICAgICAgICBTZXF1ZW5jZQorICAgICAgICAsIHR5cGVuYW1lIEluc2VydGVyOjpzdGF0ZQorICAgICAgICAsIHByb3RlY3Q8IGF1eDo6cmVtb3ZlX2lmX2hlbHBlcjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgbGFtYmRhPFByZWRpY2F0ZT46OnR5cGUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXI6Om9wZXJhdGlvbgorICAgICAgICAgICAgPiA+CisgICAgICAgID4KK3sKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgU2VxdWVuY2UKKyAgICAsIHR5cGVuYW1lIFByZWRpY2F0ZQorICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXIKKyAgICA+CitzdHJ1Y3QgcmV2ZXJzZV9yZW1vdmVfaWZfaW1wbAorICAgIDogcmV2ZXJzZV9mb2xkPAorICAgICAgICAgIFNlcXVlbmNlCisgICAgICAgICwgdHlwZW5hbWUgSW5zZXJ0ZXI6OnN0YXRlCisgICAgICAgICwgcHJvdGVjdDwgYXV4OjpyZW1vdmVfaWZfaGVscGVyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBsYW1iZGE8UHJlZGljYXRlPjo6dHlwZQorICAgICAgICAgICAgLCB0eXBlbmFtZSBJbnNlcnRlcjo6b3BlcmF0aW9uCisgICAgICAgICAgICA+ID4KKyAgICAgICAgPgoreworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK0JPT1NUX01QTF9BVVhfSU5TRVJURVJfQUxHT1JJVEhNX0RFRigzLCByZW1vdmVfaWYpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfUkVNT1ZFX0lGX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvcmV2ZXJzZV9mb2xkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3JldmVyc2VfZm9sZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ1ZDlkOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3JldmVyc2VfZm9sZC5ocHAKQEAgLTAsMCArMSw1MCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9SRVZFUlNFX0ZPTERfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9SRVZFUlNFX0ZPTERfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8gQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDEtMjAwMgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiByZXZlcnNlX2ZvbGQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYmVnaW5fZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvTzFfc2l6ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FyZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcmV2ZXJzZV9mb2xkX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFNlcXVlbmNlKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTdGF0ZSkKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oQmFja3dhcmRPcCkKKyAgICAsIHR5cGVuYW1lIEZvcndhcmRPcCA9IGFyZzwxPgorICAgID4KK3N0cnVjdCByZXZlcnNlX2ZvbGQKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6cmV2ZXJzZV9mb2xkX2ltcGw8CisgICAgICAgICAgOjpuZG5ib29zdDo6bXBsOjpPMV9zaXplPFNlcXVlbmNlPjo6dmFsdWUKKyAgICAgICAgLCB0eXBlbmFtZSBiZWdpbjxTZXF1ZW5jZT46OnR5cGUKKyAgICAgICAgLCB0eXBlbmFtZSBlbmQ8U2VxdWVuY2U+Ojp0eXBlCisgICAgICAgICwgU3RhdGUKKyAgICAgICAgLCBCYWNrd2FyZE9wCisgICAgICAgICwgRm9yd2FyZE9wCisgICAgICAgID46OnN0YXRlIHR5cGU7CisKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMscmV2ZXJzZV9mb2xkLChTZXF1ZW5jZSxTdGF0ZSxCYWNrd2FyZE9wKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygzLCByZXZlcnNlX2ZvbGQpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfUkVWRVJTRV9GT0xEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvc2FtZV9hcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9zYW1lX2FzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzczNmIwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvc2FtZV9hcy5ocHAKQEAgLTAsMCArMSw1NSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9TQU1FX0FTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfU0FNRV9BU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHNhbWVfYXMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbm90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ZvcndhcmRpbmcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEgPgorc3RydWN0IHNhbWVfYXMKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9GT1JXQVJESU5HKQorICAgICAgICA6IGlzX3NhbWU8VDEsVDI+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaXNfc2FtZTxUMSxUMj46OnR5cGUgdHlwZTsKKyNlbmRpZgorICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEgPgorc3RydWN0IG5vdF9zYW1lX2FzCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQyID4gc3RydWN0IGFwcGx5CisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ORVNURURfRk9SV0FSRElORykKKyAgICAgICAgOiBub3RfPCBpc19zYW1lPFQxLFQyPiA+CisgICAgeworI2Vsc2UKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbm90XzwgaXNfc2FtZTxUMSxUMj4gPjo6dHlwZSB0eXBlOworI2VuZGlmCisgICAgfTsKK307CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfU0FNRV9BU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9zZXF1ZW5jZV90YWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5YTcxOTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9zZXF1ZW5jZV90YWcuaHBwCkBAIC0wLDAgKzEsMTI0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1NFUVVFTkNFX1RBR19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1NFUVVFTkNFX1RBR19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHNlcXVlbmNlX3RhZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9zZXF1ZW5jZV90YWdfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9oYXNfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9oYXNfYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2lzX21zdmNfZXRpX2FyZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisvLyBhZ3VydCwgMjcvbm92LzAyOiBoYXZlIHRvIHVzZSBhIHNpbXBsaXN0aWMgJ3NlcXVlbmNlX3RhZycgaW1wbGVtZW50YXRpb24KKy8vIG9uIE1TVkMgdG8gYXZvaWQgZHJlYWRmdWwgImludGVybmFsIHN0cnVjdHVyZSBvdmVyZmxvdyIgZXJyb3IKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19IQVNfWFhYKQorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgPgorc3RydWN0IHNlcXVlbmNlX3RhZworeworICAgIHR5cGVkZWYgdHlwZW5hbWUgU2VxdWVuY2U6OnRhZyB0eXBlOworfTsKKworI2VsaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzAwKQorCisvLyBhZ3VydCwgMDcvZmViLzAzOiB3b3JrYXJvdW5kIGZvciB3aGF0IHNlZW1zIHRvIGJlIE1TVkMgNy4wLXNwZWNpZmljIEVUSSBpc3N1ZQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgPgorc3RydWN0IHNlcXVlbmNlX3RhZ19pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgU2VxdWVuY2U6OnRhZyB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2VxdWVuY2VfdGFnX2ltcGw8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgaW50IHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oU2VxdWVuY2UpCisgICAgPgorc3RydWN0IHNlcXVlbmNlX3RhZworICAgIDogYXV4OjpzZXF1ZW5jZV90YWdfaW1wbDwgIWF1eDo6aXNfbXN2Y19ldGlfYXJnPFNlcXVlbmNlPjo6dmFsdWUgPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88U2VxdWVuY2U+Cit7Cit9OworCisjZWxzZQorCituYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IGJvb2wgaGFzX3RhZ18sIGJvb2wgaGFzX2JlZ2luXyA+CitzdHJ1Y3Qgc2VxdWVuY2VfdGFnX2ltcGwKK3sKKyAgICAvLyBhZ3VydCAyNC9ub3YvMDI6IE1TVkMgNi41IGdldHMgY29uZnVzZWQgaW4gJ3NlcXVlbmNlX3RhZ19pbXBsPHRydWU+JyAKKyAgICAvLyBzcGVjaWFsaXphdGlvbiBiZWxvdywgaWYgd2UgbmFtZSBpdCAncmVzdWx0XycgaGVyZQorICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSA+IHN0cnVjdCByZXN1bHQyXzsKK307CisKKyMgICBkZWZpbmUgQVVYX0NMQVNTX1NFUVVFTkNFX1RBR19TUEVDKGhhc190YWcsIGhhc19iZWdpbiwgcmVzdWx0X3R5cGUpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHNlcXVlbmNlX3RhZ19pbXBsPGhhc190YWcsaGFzX2JlZ2luPiBcCit7IFwKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxdWVuY2UgPiBzdHJ1Y3QgcmVzdWx0Ml8gXAorICAgIHsgXAorICAgICAgICB0eXBlZGVmIHJlc3VsdF90eXBlIHR5cGU7IFwKKyAgICB9OyBcCit9OyBcCisvKiovCisKK0FVWF9DTEFTU19TRVFVRU5DRV9UQUdfU1BFQyh0cnVlLCB0cnVlLCB0eXBlbmFtZSBTZXF1ZW5jZTo6dGFnKQorQVVYX0NMQVNTX1NFUVVFTkNFX1RBR19TUEVDKHRydWUsIGZhbHNlLCB0eXBlbmFtZSBTZXF1ZW5jZTo6dGFnKQorQVVYX0NMQVNTX1NFUVVFTkNFX1RBR19TUEVDKGZhbHNlLCB0cnVlLCBuZXN0ZWRfYmVnaW5fZW5kX3RhZykKK0FVWF9DTEFTU19TRVFVRU5DRV9UQUdfU1BFQyhmYWxzZSwgZmFsc2UsIG5vbl9zZXF1ZW5jZV90YWcpCisKKyMgICB1bmRlZiBBVVhfQ0xBU1NfU0VRVUVOQ0VfVEFHX1NQRUMKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICA+CitzdHJ1Y3Qgc2VxdWVuY2VfdGFnCisgICAgOiBhdXg6OnNlcXVlbmNlX3RhZ19pbXBsPAorICAgICAgICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4OjpoYXNfdGFnPFNlcXVlbmNlPjo6dmFsdWUKKyAgICAgICAgLCA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX2JlZ2luPFNlcXVlbmNlPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0Ml88U2VxdWVuY2U+Cit7Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTVNWQworCitCT09TVF9NUExfQVVYX05BX1NQRUMoMSwgc2VxdWVuY2VfdGFnKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1NFUVVFTkNFX1RBR19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZ19md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE0MGE2ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NlcXVlbmNlX3RhZ19md2QuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfU0VRVUVOQ0VfVEFHX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1NFUVVFTkNFX1RBR19GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBzZXF1ZW5jZV90YWdfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworc3RydWN0IG5lc3RlZF9iZWdpbl9lbmRfdGFnOworc3RydWN0IG5vbl9zZXF1ZW5jZV90YWc7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBTZXF1ZW5jZSA+IHN0cnVjdCBzZXF1ZW5jZV90YWc7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfU0VRVUVOQ0VfVEFHX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NpemUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvc2l6ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUzOGNjMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NpemUuaHBwCkBAIC0wLDAgKzEsNDIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfU0laRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1NJWkVfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBzaXplLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3NpemVfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2VxdWVuY2VfdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9zaXplX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9tc3ZjX2V0aV9iYXNlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShTZXF1ZW5jZSkKKyAgICA+CitzdHJ1Y3Qgc2l6ZQorICAgIDogYXV4Ojptc3ZjX2V0aV9iYXNlPAorICAgICAgICB0eXBlbmFtZSBzaXplX2ltcGw8IHR5cGVuYW1lIHNlcXVlbmNlX3RhZzxTZXF1ZW5jZT46OnR5cGUgPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSBhcHBseTwgU2VxdWVuY2UgPjo6dHlwZQorICAgICAgPjo6dHlwZQoreworICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSwgc2l6ZSwgKFNlcXVlbmNlKSkKK307CisKK0JPT1NUX01QTF9BVVhfTkFfU1BFQygxLCBzaXplKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1NJWkVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9zaXplX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9zaXplX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg0MDgyYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NpemVfZndkLmhwcApAQCAtMCwwICsxLDI0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1NJWkVfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfU0laRV9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBzaXplX2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBzdHJ1Y3Qgc2l6ZV9pbXBsOwordGVtcGxhdGU8IHR5cGVuYW1lIFNlcXVlbmNlID4gc3RydWN0IHNpemU7CisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfU0laRV9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9zaXplX3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvc2l6ZV90LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODJmMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvc2l6ZV90LmhwcApAQCAtMCwwICsxLDI1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1NJWkVfVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1NJWkVfVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHNpemVfdC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9zaXplX3RfZndkLmhwcD4KKworI2RlZmluZSBBVVhfV1JBUFBFUl9WQUxVRV9UWVBFIHN0ZDo6c2l6ZV90CisjZGVmaW5lIEFVWF9XUkFQUEVSX05BTUUgc2l6ZV90CisjZGVmaW5lIEFVWF9XUkFQUEVSX1BBUkFNUyhOKSBzdGQ6OnNpemVfdCBOCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9TSVpFX1RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC9zaXplX3RfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3NpemVfdF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2ZDhhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC9zaXplX3RfZndkLmhwcApAQCAtMCwwICsxLDI4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1NJWkVfVF9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9TSVpFX1RfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogc2l6ZV90X2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2FkbF9iYXJyaWVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPiAvLyBtYWtlIHN1cmUgJ3NpemVfdCcgaXMgcGxhY2VkIGludG8gJ3N0ZCcKKyNpbmNsdWRlIDxjc3RkZGVmPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKK3RlbXBsYXRlPCBzdGQ6OnNpemVfdCBOID4gc3RydWN0IHNpemVfdDsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChzaXplX3QpCisKKyNlbmRpZiAvLyBCT09TVF9NUExfU0laRV9UX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3RhZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC90YWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YjlmYjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC90YWcuaHBwCkBAIC0wLDAgKzEsNTIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVEFHX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVEFHX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHRhZy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdm9pZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vaGFzX3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRhZ19pbXBsCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0YWcgdHlwZTsKK307Cit9CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWZhdWx0ID0gdm9pZF8gPiBzdHJ1Y3QgdGFnCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDX0VUSV9CVUcpCisgICAgOiBpZl88IAorICAgICAgICAgIGF1eDo6aGFzX3RhZzxUPgorICAgICAgICAsIGF1eDo6dGFnX2ltcGw8VD4KKyAgICAgICAgLCBEZWZhdWx0CisgICAgICAgID46OnR5cGUKK3sKKyNlbHNlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBldmFsX2lmPCAKKyAgICAgICAgICBhdXg6Omhhc190YWc8VD4KKyAgICAgICAgLCBhdXg6OnRhZ19pbXBsPFQ+CisgICAgICAgICwgRGVmYXVsdAorICAgICAgICA+Ojp0eXBlIHR5cGU7CisKKyNlbmRpZgorfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9UQUdfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC90aW1lcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC90aW1lcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA5ODRiYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3RpbWVzLmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1RJTUVTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVElNRVNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB0aW1lcy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2RlZmluZSBBVVg3NzgwNzZfT1BfTkFNRSB0aW1lcworI2RlZmluZSBBVVg3NzgwNzZfT1BfVE9LRU4gKgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2FyaXRobWV0aWNfb3AuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1RJTUVTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA5ZDczMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci5ocHAKQEAgLTAsMCArMSw1NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB2ZWN0b3IuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9saW1pdHMvdmVjdG9yLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9uYS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc3RyaW5naXplLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX05FRURTX1RPS0VOX1BBU1RJTkdfT1BfRk9SX1RPS0VOU19KVVhUQVBPU0lORykKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1ZFQ1RPUl9IRUFERVIgXAorICAgIEJPT1NUX1BQX0NBVCh2ZWN0b3IsIEJPT1NUX01QTF9MSU1JVF9WRUNUT1JfU0laRSkuaHBwIFwKKyAgICAvKiovCisjZWxzZQorIyAgIGRlZmluZSBBVVg3NzgwNzZfVkVDVE9SX0hFQURFUiBcCisgICAgQk9PU1RfUFBfQ0FUKHZlY3RvciwgQk9PU1RfTVBMX0xJTUlUX1ZFQ1RPUl9TSVpFKSMjLmhwcCBcCisgICAgLyoqLworI2VuZGlmCisKKyMgICBpbmNsdWRlIEJPT1NUX1BQX1NUUklOR0laRShib29zdC9tcGwvdmVjdG9yL0FVWDc3ODA3Nl9WRUNUT1JfSEVBREVSKQorIyAgIHVuZGVmIEFVWDc3ODA3Nl9WRUNUT1JfSEVBREVSCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIHZlY3Rvci5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9pbmNsdWRlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvbGltaXRzL3ZlY3Rvci5ocHA+CisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1NFUVVFTkNFX05BTUUgdmVjdG9yCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9TRVFVRU5DRV9MSU1JVCBCT09TVF9NUExfTElNSVRfVkVDVE9SX1NJWkUKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9zZXF1ZW5jZV93cmFwcGVyLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vTzFfc2l6ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9PMV9zaXplLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzlhZGU5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vTzFfc2l6ZS5ocHAKQEAgLTAsMCArMSw1NiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfQVVYX08xX1NJWkVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfQVVYX08xX1NJWkVfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBPMV9zaXplLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL08xX3NpemVfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbWludXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9sb25nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IFZlY3Rvcjo6c2l6ZQorICAgIHsKKyAgICB9OworfTsKKworI2Vsc2UKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK3RlbXBsYXRlPCBsb25nIE4gPgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPE4+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbXBsOjpsb25nXzxOPgorICAgIHsKKyAgICB9OworfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfTzFfU0laRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2F0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2F0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWY3ZDVlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYXQuaHBwCkBAIC0wLDAgKzEsMTE2IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfQVRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfQVVYX0FUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYXQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXRfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbG9uZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vdHlwZV93cmFwcGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIGxvbmcgbl8gPgorc3RydWN0IHZfYXRfaW1wbAoreworICAgIHR5cGVkZWYgbG9uZ188IChWZWN0b3I6Omxvd2VyX2JvdW5kXzo6dmFsdWUgKyBuXykgPiBpbmRleF87CisgICAgdHlwZWRlZiBfX3R5cGVvZl9fKCBWZWN0b3I6Oml0ZW1fKGluZGV4XygpKSApIHR5cGU7Cit9OworCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIGxvbmcgbl8gPgorc3RydWN0IHZfYXQKKyAgICA6IGF1eDo6d3JhcHBlZF90eXBlPCB0eXBlbmFtZSB2X2F0X2ltcGw8VmVjdG9yLG5fPjo6dHlwZSA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogdl9hdDwKKyAgICAgICAgICAgICAgVmVjdG9yCisgICAgICAgICAgICAsIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgID4KKyAgICB7CisgICAgfTsKK307CisKKyNlbHNlCisKKyMgICBpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19OT05UWVBFX1RFTVBMQVRFX1BBUlRJQUxfU1BFQykKKwordGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgbl8pID4gc3RydWN0IHZfYXQ7CisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBuXykgPgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxuXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyNpZiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCisgICAgICAgIDogdl9hdDwKKyAgICAgICAgICAgICAgVmVjdG9yCisgICAgICAgICAgICAsIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWUKKyAgICAgICAgICAgID4KKyAgICB7CisjZWxzZQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB2X2F0PAorICAgICAgICAgICAgICBWZWN0b3IKKyAgICAgICAgICAgICwgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworI2VuZGlmCisgICAgfTsKK307CisKKyMgICBlbHNlCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgbl8pID4gc3RydWN0IHZfYXRfaW1wbAoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWID4gc3RydWN0IHJlc3VsdF87Cit9OworCisvLyB0byB3b3JrIGFyb3VuZCBFVEksIGV0Yy4KK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwtMT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHZvaWRfIHR5cGU7CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGF1eAorCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgbl8pID4KK3N0cnVjdCB2X2F0CisgICAgOiBhdXg6OnZfYXRfaW1wbDxuXz46OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKKyMgICBlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfQVVYX0FUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYmFjay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9iYWNrLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTUyYzYyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYmFjay5ocHAKQEAgLTAsMCArMSw1OSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfQVVYX0JBQ0tfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfQVVYX0JBQ0tfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBiYWNrLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JhY2tfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dF9wcmlvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IHZfYXQ8CisgICAgICAgICAgICAgIFZlY3RvcgorICAgICAgICAgICAgLCBwcmlvcjx0eXBlbmFtZSBWZWN0b3I6OnNpemU+Ojp0eXBlOjp2YWx1ZQorICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworI2Vsc2UKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK3RlbXBsYXRlPCBsb25nIG5fID4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxuXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfQVVYX0JBQ0tfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9iZWdpbl9lbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYmVnaW5fZW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzQ1NTAzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vYmVnaW5fZW5kLmhwcApAQCAtMCwwICsxLDQ5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfQkVHSU5fRU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX0FVWF9CRUdJTl9FTkRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBiZWdpbl9lbmQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTKQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2JlZ2luX2VuZF9md2QuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9pdGVyYXRvci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmVnaW5faW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZfaXRlcjxWZWN0b3IsMD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVuZF9pbXBsPCBhdXg6OnZlY3Rvcl90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdl9pdGVyPFZlY3RvcixWZWN0b3I6OnNpemU6OnZhbHVlPiB0eXBlOworICAgIH07Cit9OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0FVWF9CRUdJTl9FTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9jbGVhci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9jbGVhci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIwOTk0MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2NsZWFyLmhwcApAQCAtMCwwICsxLDU1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfQ0xFQVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfQVVYX0NMRUFSX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogY2xlYXIuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvY2xlYXJfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdmVjdG9yMC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTKQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCisjZWxzZQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPE4+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0FVWF9DTEVBUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2VtcHR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2VtcHR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzhhZjk0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vZW1wdHkuaHBwCkBAIC0wLDAgKzEsNjggQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX0FVWF9FTVBUWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfRU1QVFlfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBlbXB0eS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9lbXB0eV9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBpc19zYW1lPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Omxvd2VyX2JvdW5kXworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6OnVwcGVyX2JvdW5kXworICAgICAgICAgICAgPgorICAgIHsKKyAgICB9OworfTsKKworI2Vsc2UKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IHRydWVfCisgICAgeworICAgIH07Cit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKwordGVtcGxhdGU8IGxvbmcgTiA+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPE4+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0FVWF9FTVBUWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2Zyb250LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2Zyb250LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzA1ZDNkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vZnJvbnQuaHBwCkBAIC0wLDAgKzEsNTYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX0FVWF9GUk9OVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfRlJPTlRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwOAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBmcm9udC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9mcm9udF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9hdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiB2X2F0PFZlY3RvciwwPgorICAgIHsKKyAgICB9OworfTsKKworI2Vsc2UKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK3RlbXBsYXRlPCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBuXykgPgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxuXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0FVWF9GUk9OVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGZhNThhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwCkBAIC0wLDAgKzEsNTUgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDYKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3N0cmluZ2l6ZS5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUykKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0lOQ0xVREVfRElSIHR5cGVvZl9iYXNlZAorI2VsaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICB8fCBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fTk9OVFlQRV9URU1QTEFURV9QQVJUSUFMX1NQRUMpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9JTkNMVURFX0RJUiBub19jdHBzCisjZWxzZQorIyAgIGRlZmluZSBBVVg3NzgwNzZfSU5DTFVERV9ESVIgcGxhaW4KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTkVFRFNfVE9LRU5fUEFTVElOR19PUF9GT1JfVE9LRU5TX0pVWFRBUE9TSU5HKQorIyAgIGRlZmluZSBBVVg3NzgwNzZfSEVBREVSIFwKKyAgICBBVVg3NzgwNzZfSU5DTFVERV9ESVIvQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgXAorLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQVVYNzc4MDc2X0hFQURFUiBcCisgICAgQk9PU1RfUFBfQ0FUKEFVWDc3ODA3Nl9JTkNMVURFX0RJUiwvKSMjQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgXAorLyoqLworI2VuZGlmCisKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgQk9PU1RfVEVTVEVEX0FUKDcwMCkpCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9JTkNMVURFX1NUUklORyBCT09TVF9QUF9TVFJJTkdJWkUoYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9BVVg3NzgwNzZfSEVBREVSKQorIyAgIGluY2x1ZGUgQVVYNzc4MDc2X0lOQ0xVREVfU1RSSU5HCisjICAgdW5kZWYgQVVYNzc4MDc2X0lOQ0xVREVfU1RSSU5HCisjZWxzZQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfU1RSSU5HSVpFKGJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvQVVYNzc4MDc2X0hFQURFUikKKyNlbmRpZgorCisjICAgdW5kZWYgQVVYNzc4MDc2X0hFQURFUgorIyAgIHVuZGVmIEFVWDc3ODA3Nl9JTkNMVURFX0RJUgorCisjdW5kZWYgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaXRlbS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UzODg1YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZW0uaHBwCkBAIC0wLDAgKzEsMTAzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfSVRFTV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfSVRFTV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGl0ZW0uaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbG9uZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9uZXh0X3ByaW9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90eXBlX3dyYXBwZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90eXBlb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUykKKwordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgVAorICAgICwgdHlwZW5hbWUgQmFzZQorICAgICwgaW50IGF0X2Zyb250ID0gMAorICAgID4KK3N0cnVjdCB2X2l0ZW0KKyAgICA6IEJhc2UKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEJhc2U6OnVwcGVyX2JvdW5kXyBpbmRleF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZXh0PGluZGV4Xz46OnR5cGUgdXBwZXJfYm91bmRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDx0eXBlbmFtZSBCYXNlOjpzaXplPjo6dHlwZSBzaXplOworICAgIHR5cGVkZWYgQmFzZSBiYXNlOworICAgIHR5cGVkZWYgdl9pdGVtIHR5cGU7CisKKyAgICAvLyBhZ3VydCAxMC9zZXAvMDQ6IE1XQ1cgPD0gOS4zIHdvcmthcm91bmQgaGVyZSBhbmQgYmVsb3c7IHRoZSBjb21waWxlcgorICAgIC8vIGJyZWFrcyBpZiB1c2luZyBkZWNsYXJhdGlvbiBjb21lcyBfYmVmb3JlXyB0aGUgbmV3IG92ZXJsb2FkCisgICAgc3RhdGljIGF1eDo6dHlwZV93cmFwcGVyPFQ+IGl0ZW1fKGluZGV4Xyk7CisgICAgdXNpbmcgQmFzZTo6aXRlbV87Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIHR5cGVuYW1lIEJhc2UKKyAgICA+CitzdHJ1Y3Qgdl9pdGVtPFQsQmFzZSwxPgorICAgIDogQmFzZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgcHJpb3I8dHlwZW5hbWUgQmFzZTo6bG93ZXJfYm91bmRfPjo6dHlwZSBpbmRleF87CisgICAgdHlwZWRlZiBpbmRleF8gbG93ZXJfYm91bmRfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDx0eXBlbmFtZSBCYXNlOjpzaXplPjo6dHlwZSBzaXplOworICAgIHR5cGVkZWYgQmFzZSBiYXNlOworICAgIHR5cGVkZWYgdl9pdGVtIHR5cGU7CisKKyAgICBzdGF0aWMgYXV4Ojp0eXBlX3dyYXBwZXI8VD4gaXRlbV8oaW5kZXhfKTsKKyAgICB1c2luZyBCYXNlOjppdGVtXzsKK307CisKKy8vICJlcmFzdXJlIiBpdGVtCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBCYXNlCisgICAgLCBpbnQgYXRfZnJvbnQKKyAgICA+CitzdHJ1Y3Qgdl9tYXNrCisgICAgOiBCYXNlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjx0eXBlbmFtZSBCYXNlOjp1cHBlcl9ib3VuZF8+Ojp0eXBlIGluZGV4XzsKKyAgICB0eXBlZGVmIGluZGV4XyB1cHBlcl9ib3VuZF87CisgICAgdHlwZWRlZiB0eXBlbmFtZSBwcmlvcjx0eXBlbmFtZSBCYXNlOjpzaXplPjo6dHlwZSBzaXplOworICAgIHR5cGVkZWYgQmFzZSBiYXNlOworICAgIHR5cGVkZWYgdl9tYXNrIHR5cGU7CisKKyAgICBzdGF0aWMgYXV4Ojp0eXBlX3dyYXBwZXI8dm9pZF8+IGl0ZW1fKGluZGV4Xyk7CisgICAgdXNpbmcgQmFzZTo6aXRlbV87Cit9OworCit0ZW1wbGF0ZTwgCisgICAgICB0eXBlbmFtZSBCYXNlCisgICAgPgorc3RydWN0IHZfbWFzazxCYXNlLDE+CisgICAgOiBCYXNlCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBCYXNlOjpsb3dlcl9ib3VuZF8gaW5kZXhfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmV4dDxpbmRleF8+Ojp0eXBlIGxvd2VyX2JvdW5kXzsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHByaW9yPHR5cGVuYW1lIEJhc2U6OnNpemU+Ojp0eXBlIHNpemU7CisgICAgdHlwZWRlZiBCYXNlIGJhc2U7CisgICAgdHlwZWRlZiB2X21hc2sgdHlwZTsKKworICAgIHN0YXRpYyBhdXg6OnR5cGVfd3JhcHBlcjx2b2lkXz4gaXRlbV8oaW5kZXhfKTsKKyAgICB1c2luZyBCYXNlOjppdGVtXzsKK307CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfQVVYX0lURU1fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9pdGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE3OTE1YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZXJhdG9yLmhwcApAQCAtMCwwICsxLDEzMCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfVkVDVE9SX0lURVJBVE9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1ZFQ1RPUl9JVEVSQVRPUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGl0ZXJhdG9yLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaXRlcmF0b3JfdGFncy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3BsdXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9taW51cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2FkdmFuY2VfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZGlzdGFuY2VfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ByaW9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFZlY3RvcgorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgbl8pCisgICAgPgorc3RydWN0IHZfaXRlcgoreworICAgIHR5cGVkZWYgYXV4Ojp2X2l0ZXJfdGFnIHRhZzsKKyAgICB0eXBlZGVmIHJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnIGNhdGVnb3J5OworICAgIHR5cGVkZWYgdHlwZW5hbWUgdl9hdDxWZWN0b3Isbl8+Ojp0eXBlIHR5cGU7CisKKyAgICB0eXBlZGVmIFZlY3RvciB2ZWN0b3JfOworICAgIHR5cGVkZWYgbXBsOjpsb25nXzxuXz4gcG9zOworCisjaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorICAgIGVudW0geyAKKyAgICAgICAgICBuZXh0XyA9IG5fICsgMQorICAgICAgICAsIHByaW9yXyA9IG5fIC0gMQorICAgICAgICAsIHBvc18gPSBuXworICAgIH07CisgICAgCisgICAgdHlwZWRlZiB2X2l0ZXI8VmVjdG9yLG5leHRfPiBuZXh0OworICAgIHR5cGVkZWYgdl9pdGVyPFZlY3Rvcixwcmlvcl8+IHByaW9yOworI2VuZGlmCisKK307CisKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVmVjdG9yCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBuXykKKyAgICA+CitzdHJ1Y3QgbmV4dDwgdl9pdGVyPFZlY3RvcixuXz4gPgoreworICAgIHR5cGVkZWYgdl9pdGVyPFZlY3Rvciwobl8gKyAxKT4gdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVmVjdG9yCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBuXykKKyAgICA+CitzdHJ1Y3QgcHJpb3I8IHZfaXRlcjxWZWN0b3Isbl8+ID4KK3sKKyAgICB0eXBlZGVmIHZfaXRlcjxWZWN0b3IsKG5fIC0gMSk+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFZlY3RvcgorICAgICwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0wobG9uZywgbl8pCisgICAgLCB0eXBlbmFtZSBEaXN0YW5jZQorICAgID4KK3N0cnVjdCBhZHZhbmNlPCB2X2l0ZXI8VmVjdG9yLG5fPixEaXN0YW5jZT4KK3sKKyAgICB0eXBlZGVmIHZfaXRlcjwKKyAgICAgICAgICBWZWN0b3IKKyAgICAgICAgLCAobl8gKyBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKGxvbmcsIERpc3RhbmNlKSkKKyAgICAgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgVmVjdG9yCisgICAgLCBCT09TVF9NUExfQVVYX05UVFBfREVDTChsb25nLCBuXykKKyAgICAsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIG1fKQorICAgID4gCitzdHJ1Y3QgZGlzdGFuY2U8IHZfaXRlcjxWZWN0b3Isbl8+LCB2X2l0ZXI8VmVjdG9yLG1fPiA+CisgICAgOiBtcGw6OmxvbmdfPChtXyAtIG5fKT4KK3sKK307CisKKyNlbHNlIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKwordGVtcGxhdGU8PiBzdHJ1Y3QgYWR2YW5jZV9pbXBsPGF1eDo6dl9pdGVyX3RhZz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIGVudW0geyBwb3NfID0gSXRlcmF0b3I6OnBvc18sIG5fID0gTjo6dmFsdWUgfTsKKyAgICAgICAgdHlwZWRlZiB2X2l0ZXI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIEl0ZXJhdG9yOjp2ZWN0b3JfCisgICAgICAgICAgICAsIChwb3NfICsgbl8pCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGRpc3RhbmNlX2ltcGw8YXV4Ojp2X2l0ZXJfdGFnPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyMSwgdHlwZW5hbWUgSXRlcjIgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIGVudW0geyBwb3MxXyA9IEl0ZXIxOjpwb3NfLCBwb3MyXyA9IEl0ZXIyOjpwb3NfIH07CisgICAgICAgIHR5cGVkZWYgbG9uZ188KCBwb3MyXyAtIHBvczFfICk+IHR5cGU7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChsb25nLCB2YWx1ZSA9ICggcG9zMl8gLSBwb3MxXyApKTsKKyAgICB9OworfTsKKworI2VuZGlmCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1ZFQ1RPUl9JVEVSQVRPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGViYzUwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vbnVtYmVyZWQuaHBwCkBAIC0wLDAgKzEsMjE4IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworI2lmIGRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbnVtYmVyZWQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjZGVmaW5lIGlfIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1ZFQ1RPUl9UQUlMKHZlY3RvciwgaV8sIFQpIFwKKyAgICBCT09TVF9QUF9DQVQodmVjdG9yLGlfKTwgXAorICAgICAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TKGlfLCBUKSBcCisgICAgICAgID4gXAorICAgIC8qKi8KKworI2lmIGlfID4gMAordGVtcGxhdGU8CisgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhpXywgdHlwZW5hbWUgVCkKKyAgICA+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKHZlY3RvcixpXykKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBCT09TVF9QUF9DQVQoVCxCT09TVF9QUF9ERUMoaV8pKQorICAgICAgICAsIEFVWDc3ODA3Nl9WRUNUT1JfVEFJTCh2ZWN0b3IsQk9PU1RfUFBfREVDKGlfKSxUKQorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQodmVjdG9yLGlfKSB0eXBlOworfTsKKyNlbmRpZgorCisjICAgdW5kZWYgQVVYNzc4MDc2X1ZFQ1RPUl9UQUlMCisKKyNlbHNlIC8vICJicnV0ZSBmb3JjZSIgaW1wbGVtZW50YXRpb24KKworIyAgIGlmIGlfID4gMAorCit0ZW1wbGF0ZTwKKyAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TKGlfLCB0eXBlbmFtZSBUKQorICAgID4KK3N0cnVjdCBCT09TVF9QUF9DQVQodmVjdG9yLGlfKQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPGlfPiB0YWc7CisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQodmVjdG9yLGlfKSB0eXBlOworCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9WRUNUT1JfSVRFTSh1bnVzZWQsIGlfLCB1bnVzZWQyKSBcCisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoVCxpXykgQk9PU1RfUFBfQ0FUKGl0ZW0saV8pOyBcCisgICAgLyoqLworCisgICAgQk9PU1RfUFBfUkVQRUFUKGlfLCBBVVg3NzgwNzZfVkVDVE9SX0lURU0sIHVudXNlZCkKKyMgICB1bmRlZiBBVVg3NzgwNzZfVkVDVE9SX0lURU0KKyAgICB0eXBlZGVmIHZvaWRfIEJPT1NUX1BQX0NBVChpdGVtLGlfKTsKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChULEJPT1NUX1BQX0RFQyhpXykpIGJhY2s7CisKKyAgICAvLyBCb3JsYW5kIGZvcmNlcyB1cyB0byB1c2UgJ3R5cGUnIGhlcmUgKGluc3RlYWQgb2YgdGhlIGNsYXNzIG5hbWUpCisgICAgdHlwZWRlZiB2X2l0ZXI8dHlwZSwwPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjx0eXBlLGlfPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Qk9PU1RfUFBfREVDKGlfKT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKHZlY3RvcixpXyk8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfREVDKGlfKSkKKyAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfREVDKGlfKSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtKQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxpXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKHZlY3RvcixCT09TVF9QUF9ERUMoaV8pKTwKKyAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNUyhpXywgdHlwZW5hbWUgVmVjdG9yOjppdGVtKQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPEJPT1NUX1BQX0RFQyhpXyk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVCh2ZWN0b3IsaV8pPAorICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9ERUMoaV8pLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0pCisgICAgICAgICAgICAgIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0RFQyhpXykpCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxpXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKHZlY3RvcixCT09TVF9QUF9ERUMoaV8pKTwKKyAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfREVDKGlfKSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtKQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCisjICAgZW5kaWYgLy8gaV8gPiAwCisKKyMgICBpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19OT05UWVBFX1RFTVBMQVRFX1BBUlRJQUxfU1BFQykKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8VixpXz4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6OkJPT1NUX1BQX0NBVChpdGVtLGlfKSB0eXBlOworfTsKKworIyAgIGVsc2UKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8aV8+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86OkJPT1NUX1BQX0NBVChpdGVtLGlfKSB0eXBlOworICAgIH07Cit9OworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPGlfPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKKyNpZiBpXyA+IDAKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8aV8+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPGlfPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxpXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisjZW5kaWYKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPGlfPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPGlfPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPGlfPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxpXz4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxpXz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKKyMgICBlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMKKworI3VuZGVmIGlfCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vbnVtYmVyZWRfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdhNmRiOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkX2MuaHBwCkBAIC0wLDAgKzEsNzcgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisjaWYgZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBudW1iZXJlZF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9zaGlmdGVkX3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworI2RlZmluZSBpXyBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTKQorCisjICAgZGVmaW5lIEFVWDc3ODA3Nl9WRUNUT1JfVEFJTCh2ZWN0b3IsIGlfLCBDKSBcCisgICAgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVCh2ZWN0b3IsaV8pLF9jKTxUIFwKKyAgICAgICAgICBCT09TVF9QUF9DT01NQV9JRihpXykgQk9PU1RfUFBfRU5VTV9QQVJBTVMoaV8sIEMpIFwKKyAgICAgICAgPiBcCisgICAgLyoqLworCisjaWYgaV8gPiAwCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIEJPT1NUX1BQX0VOVU1fUEFSQU1TKGlfLCBUIEMpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQodmVjdG9yLGlfKSxfYykKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPFQsQk9PU1RfUFBfQ0FUKEMsQk9PU1RfUFBfREVDKGlfKSk+CisgICAgICAgICwgQVVYNzc4MDc2X1ZFQ1RPUl9UQUlMKHZlY3RvcixCT09TVF9QUF9ERUMoaV8pLEMpCisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQodmVjdG9yLGlfKSxfYykgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisjZW5kaWYKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9WRUNUT1JfVEFJTAorCisjZWxzZSAvLyAiYnJ1dGUgZm9yY2UiIGltcGxlbWVudGF0aW9uCisKKyMgICBkZWZpbmUgQVVYNzc4MDc2X1ZFQ1RPUl9DX1BBUkFNX0ZVTkModW51c2VkLCBpXywgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihpXykgXAorICAgIGludGVncmFsX2M8VCxCT09TVF9QUF9DQVQocGFyYW0saV8pPiBcCisgICAgLyoqLworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIEJPT1NUX1BQX0VOVU1fUEFSQU1TKGlfLCBUIEMpCisgICAgPgorc3RydWN0IEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQodmVjdG9yLGlfKSxfYykKKyAgICA6IEJPT1NUX1BQX0NBVCh2ZWN0b3IsaV8pPCBCT09TVF9QUF9SRVBFQVQoaV8sQVVYNzc4MDc2X1ZFQ1RPUl9DX1BBUkFNX0ZVTkMsQykgPgoreworICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVCh2ZWN0b3IsaV8pLF9jKSB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworIyAgIHVuZGVmIEFVWDc3ODA3Nl9WRUNUT1JfQ19QQVJBTV9GVU5DCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMKKworI3VuZGVmIGlfCisKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3BvcF9iYWNrLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3BvcF9iYWNrLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODBiZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2JhY2suaHBwCkBAIC0wLDAgKzEsNDAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX0FVWF9QT1BfQkFDS19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfUE9QX0JBQ0tfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwb3BfYmFjay5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wb3BfYmFja19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90eXBlb2YuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaXRlbS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZfbWFzazxWZWN0b3IsMD4gdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfUE9QX0JBQ0tfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wb3BfZnJvbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2Zyb250LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTdlN2E4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2Zyb250LmhwcApAQCAtMCwwICsxLDQwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfUE9QX0ZST05UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX0FVWF9QT1BfRlJPTlRfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwb3BfZnJvbnQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcG9wX2Zyb250X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUykKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9pdGVtLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZfbWFzazxWZWN0b3IsMT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfUE9QX0ZST05UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMTAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMTAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MzAwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IxMC5ocHAKQEAgLTAsMCArMSwxNTI4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MD4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MD4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCB2ZWN0b3IxCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTsKKyAgICB0eXBlZGVmIFQwIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDEgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPAorICAgICAgICAgICAgIAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxPAorICAgICAgICAgICAgIAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDwKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8MT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTEgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MT4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCB2ZWN0b3IyCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTI7CisgICAgdHlwZWRlZiBUMSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0yIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDI+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mj4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mj4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IHZlY3RvcjMKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwzPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IzIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zOworICAgIHR5cGVkZWYgVDIgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMyB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwzPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQ+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDsKKyAgICB0eXBlZGVmIFQzIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDQgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDw0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtNCB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw0PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHZlY3RvcjUKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw1PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I1IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNTsKKyAgICB0eXBlZGVmIFQ0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDUgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDw1PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtNSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw1PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNQorICAgID4KK3N0cnVjdCB2ZWN0b3I2Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Nj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNjsKKyAgICB0eXBlZGVmIFQ1IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDYgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNjwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDY+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW02IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDY+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nj4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nj4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNgorICAgID4KK3N0cnVjdCB2ZWN0b3I3Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Nz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNyB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW03OworICAgIHR5cGVkZWYgVDYgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I3PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8Nz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTcgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188Nz4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCB2ZWN0b3I4Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8OD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yOCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTg7CisgICAgdHlwZWRlZiBUNyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw4ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDg+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW04IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDg+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OD4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OD4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4CisgICAgPgorc3RydWN0IHZlY3RvcjkKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw5PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I5IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW05OworICAgIHR5cGVkZWYgVDggYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsOSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I5PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDw5PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtOSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw5PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTAKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxMD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTAgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTA7CisgICAgdHlwZWRlZiBUOSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwxMCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yOTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwxMD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTEwIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MTA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTA+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEwPiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjEwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMTBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI1YzkzZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjEwX2MuaHBwCkBAIC0wLDAgKzEsMTQ5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTBfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwCisgICAgPgorc3RydWN0IHZlY3RvcjFfYworICAgIDogdmVjdG9yMTwgaW50ZWdyYWxfYzwgVCxDMCA+ID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxCisgICAgPgorc3RydWN0IHZlY3RvcjJfYworICAgIDogdmVjdG9yMjwgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4gPgoreworICAgIHR5cGVkZWYgdmVjdG9yMl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yM19jCisgICAgOiB2ZWN0b3IzPCBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+ID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzCisgICAgPgorc3RydWN0IHZlY3RvcjRfYworICAgIDogdmVjdG9yNDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMz4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNV9jCisgICAgOiB2ZWN0b3I1PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNQorICAgID4KK3N0cnVjdCB2ZWN0b3I2X2MKKyAgICA6IHZlY3RvcjY8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yN19jCisgICAgOiB2ZWN0b3I3PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDNj4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOF9jCisgICAgOiB2ZWN0b3I4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yOF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOV9jCisgICAgOiB2ZWN0b3I5PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I5X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOQorICAgID4KK3N0cnVjdCB2ZWN0b3IxMF9jCisgICAgOiB2ZWN0b3IxMDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMjAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMjAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNTY5MDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IyMC5ocHAKQEAgLTAsMCArMSwxODA0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCB2ZWN0b3IxMQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDExPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxMSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTAgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTEgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjExPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDExPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwxMT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTExIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDExPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MTE+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTE+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDExPiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDExPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTIKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxMj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTIgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwxMiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjExPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDExPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDEyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMTIgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwxMj4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMj4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTI+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHZlY3RvcjEzCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MTM+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjEzIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTEzOworICAgIHR5cGVkZWYgVDEyIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDEzID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDEzPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMTMgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwxMz4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTM+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTQKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxND4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTQgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTE0OworICAgIHR5cGVkZWYgVDEzIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDE0ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDE0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMTQgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwxND4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxND4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgID4KK3N0cnVjdCB2ZWN0b3IxNQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDE1PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxNSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTE1OworICAgIHR5cGVkZWYgVDE0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDE1ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwxNT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTE1IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MTU+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTU+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNQorICAgID4KK3N0cnVjdCB2ZWN0b3IxNgoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDE2PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxNiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwxNiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTY8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8MTY+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0xNiB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDE2PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE2PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNj4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCB2ZWN0b3IxNworeworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDE3PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxNyB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTYgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTcgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE3PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwxNz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTE3IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MTc+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTc+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE3PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTgKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxOD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTggdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxNyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwxOCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDE4PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMTggdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwxOD4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOD4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTg+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjE5Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MTk+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjE5IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTE5OworICAgIHR5cGVkZWYgVDE4IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDE5ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxOTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDE5PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMTkgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwxOT4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTk+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjAKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyMD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjAgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTIwOworICAgIHR5cGVkZWYgVDE5IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDIwID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDIwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMjAgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwyMD4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMD4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMjBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IyMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODE0Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMjBfYy5ocHAKQEAgLTAsMCArMSwxOTUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgPgorc3RydWN0IHZlY3RvcjExX2MKKyAgICA6IHZlY3RvcjExPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMTA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjExX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExCisgICAgPgorc3RydWN0IHZlY3RvcjEyX2MKKyAgICA6IHZlY3RvcjEyPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxMl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTNfYworICAgIDogdmVjdG9yMTM8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjEzX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTRfYworICAgIDogdmVjdG9yMTQ8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMTM+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE0X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0CisgICAgPgorc3RydWN0IHZlY3RvcjE1X2MKKyAgICA6IHZlY3RvcjE1PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTVfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1CisgICAgPgorc3RydWN0IHZlY3RvcjE2X2MKKyAgICA6IHZlY3RvcjE2PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTZfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNgorICAgID4KK3N0cnVjdCB2ZWN0b3IxN19jCisgICAgOiB2ZWN0b3IxNzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMTY+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE3X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3CisgICAgPgorc3RydWN0IHZlY3RvcjE4X2MKKyAgICA6IHZlY3RvcjE4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOAorICAgID4KK3N0cnVjdCB2ZWN0b3IxOV9jCisgICAgOiB2ZWN0b3IxOTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5CisgICAgPgorc3RydWN0IHZlY3RvcjIwX2MKKyAgICA6IHZlY3RvcjIwPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMTk+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjIwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IzMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3IzMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JiYzllMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjMwLmhwcApAQCAtMCwwICsxLDIxMjQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjEKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyMT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjEgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyMSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjE8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8MjE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0yMSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDIxPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIxPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjIKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyMj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjIgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjEgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMjIgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIyPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDIyPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMjIgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwyMj4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMj4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjI+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjMKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyMz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjMgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTIzOworICAgIHR5cGVkZWYgVDIyIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDIzID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8MjM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0yMyB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDIzPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIzPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMz4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzCisgICAgPgorc3RydWN0IHZlY3RvcjI0Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MjQ+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjI0IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjMgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMjQgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI0PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwyND4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTI0IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MjQ+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjQ+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI0PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgID4KK3N0cnVjdCB2ZWN0b3IyNQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDI1PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IyNSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyNSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjU8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwyNT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTI1IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MjU+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI1PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1CisgICAgPgorc3RydWN0IHZlY3RvcjI2Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MjY+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjI2IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyNiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjY8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwyNj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTI2IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MjY+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjY+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjcKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyNz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjcgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyNiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyNyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjc8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8Mjc+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0yNyB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDI3PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI3PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjgKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyOD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjggdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjcgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMjggPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI4PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDI4PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMjggdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwyOD4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOD4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjg+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjkKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyOT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjkgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTI5OworICAgIHR5cGVkZWYgVDI4IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDI5ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyOTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8Mjk+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0yOSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDI5PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI5PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOT4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgPgorc3RydWN0IHZlY3RvcjMwCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MzA+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjMwIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMzA7CisgICAgdHlwZWRlZiBUMjkgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMzAgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMwPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyOTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzMD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTMwIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MzA+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzA+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMwPiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjMwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yMzBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IxMDQ0NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjMwX2MuaHBwCkBAIC0wLDAgKzEsMjM4IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzBfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjFfYworICAgIDogdmVjdG9yMjE8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjIxX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMQorICAgID4KK3N0cnVjdCB2ZWN0b3IyMl9jCisgICAgOiB2ZWN0b3IyMjwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjJfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMgorICAgID4KK3N0cnVjdCB2ZWN0b3IyM19jCisgICAgOiB2ZWN0b3IyMzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4sIGludGVncmFsX2M8VAorICAgICAgICAsIEMyMj4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjRfYworICAgIDogdmVjdG9yMjQ8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjVfYworICAgIDogdmVjdG9yMjU8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyNV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1CisgICAgPgorc3RydWN0IHZlY3RvcjI2X2MKKyAgICA6IHZlY3RvcjI2PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4sIGludGVncmFsX2M8VAorICAgICAgICAsIEMyNT4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjZfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjdfYworICAgIDogdmVjdG9yMjc8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjdfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3CisgICAgPgorc3RydWN0IHZlY3RvcjI4X2MKKyAgICA6IHZlY3RvcjI4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjI4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjlfYworICAgIDogdmVjdG9yMjk8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4sIGludGVncmFsX2M8VAorICAgICAgICAsIEMyOD4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjlfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzBfYworICAgIDogdmVjdG9yMzA8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I0MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I0MC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJjZmU3OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjQwLmhwcApAQCAtMCwwICsxLDI0NDQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMAorICAgID4KK3N0cnVjdCB2ZWN0b3IzMQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDMxPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IzMSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzMSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzE8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzMT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTMxIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MzE+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMxPiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxCisgICAgPgorc3RydWN0IHZlY3RvcjMyCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MzI+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjMyIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzMiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzMj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTMyIHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MzI+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzI+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzMKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwzMz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMzMgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzMiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzMyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzM8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8MzM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0zMyB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDMzPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMzPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzQKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwzND4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMzQgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzMgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMzQgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM0PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDM0PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtMzQgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzwzND4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzND4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzQ+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzUKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwzNT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMzUgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTM1OworICAgIHR5cGVkZWYgVDM0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDM1ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8MzU+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0zNSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDM1PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM1PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNT4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1CisgICAgPgorc3RydWN0IHZlY3RvcjM2Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MzY+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjM2IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzUgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMzYgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM2PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzNj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTM2IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188MzY+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzY+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM2PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNgorICAgID4KK3N0cnVjdCB2ZWN0b3IzNworeworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDM3PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IzNyB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzNiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzNyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzc8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzNz4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTM3IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188Mzc+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM3PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3CisgICAgPgorc3RydWN0IHZlY3RvcjM4Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mzg+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjM4IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzNyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzOCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDwzOD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTM4IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188Mzg+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzg+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzkKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwzOT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMzkgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQzOCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzOSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzk8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8Mzk+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW0zOSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDM5PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM5PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDAKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw0MD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNDAgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgdHlwZWRlZiBUMzkgaXRlbTM5OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDA7CisgICAgdHlwZWRlZiBUMzkgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDAgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQwPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDQwPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtNDAgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw0MD4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDA+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yNDBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I0MF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWQ2MmQzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL25vX2N0cHMvdmVjdG9yNDBfYy5ocHAKQEAgLTAsMCArMSwyODEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzFfYworICAgIDogdmVjdG9yMzE8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMxX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzJfYworICAgIDogdmVjdG9yMzI8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMzE+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyCisgICAgPgorc3RydWN0IHZlY3RvcjMzX2MKKyAgICA6IHZlY3RvcjMzPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzCisgICAgPgorc3RydWN0IHZlY3RvcjM0X2MKKyAgICA6IHZlY3RvcjM0PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzRfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNAorICAgID4KK3N0cnVjdCB2ZWN0b3IzNV9jCisgICAgOiB2ZWN0b3IzNTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMzQ+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1CisgICAgPgorc3RydWN0IHZlY3RvcjM2X2MKKyAgICA6IHZlY3RvcjM2PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM2X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNgorICAgID4KK3N0cnVjdCB2ZWN0b3IzN19jCisgICAgOiB2ZWN0b3IzNzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3CisgICAgPgorc3RydWN0IHZlY3RvcjM4X2MKKyAgICA6IHZlY3RvcjM4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMzc+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4CisgICAgPgorc3RydWN0IHZlY3RvcjM5X2MKKyAgICA6IHZlY3RvcjM5PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDBfYworICAgIDogdmVjdG9yNDA8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I1MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I1MC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZjYTc3ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjUwLmhwcApAQCAtMCwwICsxLDI3NjQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwCisgICAgPgorc3RydWN0IHZlY3RvcjQxCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8NDE+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQxIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIHR5cGVkZWYgVDM5IGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQ0MCBpdGVtNDA7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0MSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDE8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDQxPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtNDEgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw0MT4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MT4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDE+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MQorICAgID4KK3N0cnVjdCB2ZWN0b3I0MgoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQyPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0MiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTQyOworICAgIHR5cGVkZWYgVDQxIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDQyID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MjwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8NDI+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW00MiB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDQyPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQyPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mj4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDMKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw0Mz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNDMgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgdHlwZWRlZiBUMzkgaXRlbTM5OworICAgIHR5cGVkZWYgVDQwIGl0ZW00MDsKKyAgICB0eXBlZGVmIFQ0MSBpdGVtNDE7CisgICAgdHlwZWRlZiBUNDIgaXRlbTQyOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDM7CisgICAgdHlwZWRlZiBUNDIgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDMgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQzPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8NDM+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW00MyB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDQzPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mz4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MworICAgID4KK3N0cnVjdCB2ZWN0b3I0NAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0NCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDQ7CisgICAgdHlwZWRlZiBUNDMgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDQgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ0PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8NDQ+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW00NCB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDQ0PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgPgorc3RydWN0IHZlY3RvcjQ1Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8NDU+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQ1IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIHR5cGVkZWYgVDM5IGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQ0MCBpdGVtNDA7CisgICAgdHlwZWRlZiBUNDEgaXRlbTQxOworICAgIHR5cGVkZWYgVDQyIGl0ZW00MjsKKyAgICB0eXBlZGVmIFQ0MyBpdGVtNDM7CisgICAgdHlwZWRlZiBUNDQgaXRlbTQ0OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDU7CisgICAgdHlwZWRlZiBUNDQgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDUgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ1PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDQ1PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtNDUgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0NT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw0NT4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0NT4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgICwgdHlwZW5hbWUgVDQ1CisgICAgPgorc3RydWN0IHZlY3RvcjQ2Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8NDY+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQ2IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIHR5cGVkZWYgVDM5IGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQ0MCBpdGVtNDA7CisgICAgdHlwZWRlZiBUNDEgaXRlbTQxOworICAgIHR5cGVkZWYgVDQyIGl0ZW00MjsKKyAgICB0eXBlZGVmIFQ0MyBpdGVtNDM7CisgICAgdHlwZWRlZiBUNDQgaXRlbTQ0OworICAgIHR5cGVkZWYgVDQ1IGl0ZW00NTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTQ2OworICAgIHR5cGVkZWYgVDQ1IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDQ2ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NjwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCituYW1lc3BhY2UgYXV4IHsKK3RlbXBsYXRlPD4gc3RydWN0IHZfYXRfaW1wbDw0Nj4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWXzo6aXRlbTQ2IHR5cGU7CisgICAgfTsKK307CisKK30KKwordGVtcGxhdGU8Pgorc3RydWN0IGF0X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXywgdHlwZW5hbWUgTiA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhdXg6OnZfYXRfaW1wbDxCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoTik6OnZhbHVlPgorICAgICAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFZfPjo6dHlwZSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBiYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjpiYWNrIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBlbXB0eV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogZmFsc2VfCisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgICAgIDogbG9uZ188NDY+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgTzFfc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDY+ID4KKyAgICA6IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ2PiA+Cit7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgY2xlYXJfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPD4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2CisgICAgPgorc3RydWN0IHZlY3RvcjQ3Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8NDc+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQ3IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIHR5cGVkZWYgVDM5IGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQ0MCBpdGVtNDA7CisgICAgdHlwZWRlZiBUNDEgaXRlbTQxOworICAgIHR5cGVkZWYgVDQyIGl0ZW00MjsKKyAgICB0eXBlZGVmIFQ0MyBpdGVtNDM7CisgICAgdHlwZWRlZiBUNDQgaXRlbTQ0OworICAgIHR5cGVkZWYgVDQ1IGl0ZW00NTsKKyAgICB0eXBlZGVmIFQ0NiBpdGVtNDY7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00NzsKKyAgICB0eXBlZGVmIFQ0NiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0NyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDc8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK25hbWVzcGFjZSBhdXggewordGVtcGxhdGU8PiBzdHJ1Y3Qgdl9hdF9pbXBsPDQ3PgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWXyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZfOjppdGVtNDcgdHlwZTsKKyAgICB9OworfTsKKworfQorCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYXRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfLCB0eXBlbmFtZSBOID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6dl9hdF9pbXBsPEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChOKTo6dmFsdWU+CisgICAgICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88Vl8+Ojp0eXBlIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGJhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBWZWN0b3I6OmJhY2sgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGVtcHR5X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBmYWxzZV8KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICAgICAgOiBsb25nXzw0Nz4KKyAgICB7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nz4gPgorICAgIDogc2l6ZV9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDc+ID4KK3sKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBjbGVhcl9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8PiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgICwgdHlwZW5hbWUgVDQ1LCB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NworICAgID4KK3N0cnVjdCB2ZWN0b3I0OAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQ4PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0OCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIHR5cGVkZWYgVDQ0IGl0ZW00NDsKKyAgICB0eXBlZGVmIFQ0NSBpdGVtNDU7CisgICAgdHlwZWRlZiBUNDYgaXRlbTQ2OworICAgIHR5cGVkZWYgVDQ3IGl0ZW00NzsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTQ4OworICAgIHR5cGVkZWYgVDQ3IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDQ4ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0ODwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8NDg+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW00OCB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDQ4PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ4PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OD4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUsIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDkKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw0OT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNDkgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgdHlwZWRlZiBUMzkgaXRlbTM5OworICAgIHR5cGVkZWYgVDQwIGl0ZW00MDsKKyAgICB0eXBlZGVmIFQ0MSBpdGVtNDE7CisgICAgdHlwZWRlZiBUNDIgaXRlbTQyOworICAgIHR5cGVkZWYgVDQzIGl0ZW00MzsKKyAgICB0eXBlZGVmIFQ0NCBpdGVtNDQ7CisgICAgdHlwZWRlZiBUNDUgaXRlbTQ1OworICAgIHR5cGVkZWYgVDQ2IGl0ZW00NjsKKyAgICB0eXBlZGVmIFQ0NyBpdGVtNDc7CisgICAgdHlwZWRlZiBUNDggaXRlbTQ4OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDk7CisgICAgdHlwZWRlZiBUNDggYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDkgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ5PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ4CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0OTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8NDk+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW00OSB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDQ5PgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OT4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUsIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OQorICAgID4KK3N0cnVjdCB2ZWN0b3I1MAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDUwPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I1MCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIHR5cGVkZWYgVDQ0IGl0ZW00NDsKKyAgICB0eXBlZGVmIFQ0NSBpdGVtNDU7CisgICAgdHlwZWRlZiBUNDYgaXRlbTQ2OworICAgIHR5cGVkZWYgVDQ3IGl0ZW00NzsKKyAgICB0eXBlZGVmIFQ0OCBpdGVtNDg7CisgICAgdHlwZWRlZiBUNDkgaXRlbTQ5OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNTA7CisgICAgdHlwZWRlZiBUNDkgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNTAgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjUwPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00OAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I1MDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00OAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKworbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCB2X2F0X2ltcGw8NTA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZfID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVl86Oml0ZW01MCB0eXBlOworICAgIH07Cit9OworCit9CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBhdF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVl8sIHR5cGVuYW1lIE4gPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4Ojp2X2F0X2ltcGw8Qk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKE4pOjp2YWx1ZT4KKyAgICAgICAgICAgIDo6dGVtcGxhdGUgcmVzdWx0XzxWXz46OnR5cGUgdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGZyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFZlY3Rvcjo6YmFjayB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgZW1wdHlfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDUwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGZhbHNlXworICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDUwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgICAgICA6IGxvbmdfPDUwPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDUwPiA+CisgICAgOiBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGNsZWFyX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMDw+IHR5cGU7CisgICAgfTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I1MF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9ub19jdHBzL3ZlY3RvcjUwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNWE2MzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvbm9fY3Rwcy92ZWN0b3I1MF9jLmhwcApAQCAtMCwwICsxLDMyNSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjUwX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDFfYworICAgIDogdmVjdG9yNDE8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDNDA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQxX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxCisgICAgPgorc3RydWN0IHZlY3RvcjQyX2MKKyAgICA6IHZlY3RvcjQyPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDJfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEsIFQgQzQyCisgICAgPgorc3RydWN0IHZlY3RvcjQzX2MKKyAgICA6IHZlY3RvcjQzPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4sIGludGVncmFsX2M8IFQsQzQyID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEsIFQgQzQyLCBUIEM0MworICAgID4KK3N0cnVjdCB2ZWN0b3I0NF9jCisgICAgOiB2ZWN0b3I0NDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+LCBpbnRlZ3JhbF9jPCBULEM0MiA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDNDM+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ0X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0CisgICAgPgorc3RydWN0IHZlY3RvcjQ1X2MKKyAgICA6IHZlY3RvcjQ1PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4sIGludGVncmFsX2M8IFQsQzQyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MyA+LCBpbnRlZ3JhbF9jPCBULEM0NCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NQorICAgID4KK3N0cnVjdCB2ZWN0b3I0Nl9jCisgICAgOiB2ZWN0b3I0NjwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+LCBpbnRlZ3JhbF9jPCBULEM0MiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDMgPiwgaW50ZWdyYWxfYzwgVCxDNDQgPiwgaW50ZWdyYWxfYzwgVCxDNDUgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0Nl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2CisgICAgPgorc3RydWN0IHZlY3RvcjQ3X2MKKyAgICA6IHZlY3RvcjQ3PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4sIGludGVncmFsX2M8IFQsQzQyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MyA+LCBpbnRlZ3JhbF9jPCBULEM0NCA+LCBpbnRlZ3JhbF9jPCBULEM0NSA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDNDY+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ3X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NSwgVCBDNDYsIFQgQzQ3CisgICAgPgorc3RydWN0IHZlY3RvcjQ4X2MKKyAgICA6IHZlY3RvcjQ4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4sIGludGVncmFsX2M8IFQsQzQyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MyA+LCBpbnRlZ3JhbF9jPCBULEM0NCA+LCBpbnRlZ3JhbF9jPCBULEM0NSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDYgPiwgaW50ZWdyYWxfYzwgVCxDNDcgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0OF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2LCBUIEM0NywgVCBDNDgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDlfYworICAgIDogdmVjdG9yNDk8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDAgPiwgaW50ZWdyYWxfYzwgVCxDNDEgPiwgaW50ZWdyYWxfYzwgVCxDNDIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQzID4sIGludGVncmFsX2M8IFQsQzQ0ID4sIGludGVncmFsX2M8IFQsQzQ1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0NiA+LCBpbnRlZ3JhbF9jPCBULEM0NyA+LCBpbnRlZ3JhbF9jPCBULEM0OCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ5X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NSwgVCBDNDYsIFQgQzQ3LCBUIEM0OCwgVCBDNDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNTBfYworICAgIDogdmVjdG9yNTA8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDAgPiwgaW50ZWdyYWxfYzwgVCxDNDEgPiwgaW50ZWdyYWxfYzwgVCxDNDIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQzID4sIGludGVncmFsX2M8IFQsQzQ0ID4sIGludGVncmFsX2M8IFQsQzQ1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0NiA+LCBpbnRlZ3JhbF9jPCBULEM0NyA+LCBpbnRlZ3JhbF9jPCBULEM0OCA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDNDk+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjUwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMTAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjEwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWZlMzJiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjEwLmhwcApAQCAtMCwwICsxLDgyOSBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjEwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0wIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwCisgICAgPgorc3RydWN0IHZlY3RvcjEKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0xOworICAgIHR5cGVkZWYgVDAgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjA8CisgICAgICAgICAgICAgCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE8CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IwPAorICAgICAgICAgICAgIAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCB2ZWN0b3IyCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTI7CisgICAgdHlwZWRlZiBUMSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCB2ZWN0b3IzCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMyB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMzsKKyAgICB0eXBlZGVmIFQyIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDMgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMworICAgID4KK3N0cnVjdCB2ZWN0b3I0Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8ND4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00OworICAgIHR5cGVkZWYgVDMgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgPgorc3RydWN0IHZlY3RvcjUKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw1PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I1IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNTsKKyAgICB0eXBlZGVmIFQ0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDUgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViw1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNgoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDY+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjYgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTY7CisgICAgdHlwZWRlZiBUNSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw2ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjY8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViw2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHZlY3RvcjcKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw3PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I3IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTc7CisgICAgdHlwZWRlZiBUNiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw3ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjc8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViw3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNworICAgID4KK3N0cnVjdCB2ZWN0b3I4Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8OD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yOCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTg7CisgICAgdHlwZWRlZiBUNyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw4ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTggdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOAorICAgID4KK3N0cnVjdCB2ZWN0b3I5Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8OT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yOSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtOTsKKyAgICB0eXBlZGVmIFQ4IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDkgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yOTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3Rvcjg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsOSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgID4KK3N0cnVjdCB2ZWN0b3IxMAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDEwPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxMCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQ5IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDEwID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEwPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8OT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yOTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDEwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMCB0eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IxMF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IxMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjVjOTNmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjEwX2MuaHBwCkBAIC0wLDAgKzEsMTQ5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTBfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwCisgICAgPgorc3RydWN0IHZlY3RvcjFfYworICAgIDogdmVjdG9yMTwgaW50ZWdyYWxfYzwgVCxDMCA+ID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxCisgICAgPgorc3RydWN0IHZlY3RvcjJfYworICAgIDogdmVjdG9yMjwgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4gPgoreworICAgIHR5cGVkZWYgdmVjdG9yMl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yM19jCisgICAgOiB2ZWN0b3IzPCBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+ID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzCisgICAgPgorc3RydWN0IHZlY3RvcjRfYworICAgIDogdmVjdG9yNDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMz4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNV9jCisgICAgOiB2ZWN0b3I1PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNQorICAgID4KK3N0cnVjdCB2ZWN0b3I2X2MKKyAgICA6IHZlY3RvcjY8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yN19jCisgICAgOiB2ZWN0b3I3PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDNj4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOF9jCisgICAgOiB2ZWN0b3I4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yOF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOV9jCisgICAgOiB2ZWN0b3I5PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I5X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOQorICAgID4KK3N0cnVjdCB2ZWN0b3IxMF9jCisgICAgOiB2ZWN0b3IxMDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjIwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IyMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ5MjA5ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IyMC5ocHAKQEAgLTAsMCArMSwxMTQ0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMAorICAgID4KK3N0cnVjdCB2ZWN0b3IxMQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDExPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxMSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTAgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTEgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjExPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDExPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwxMSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTEgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IHZlY3RvcjEyCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MTI+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjEyIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTEgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTIgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEyPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwxMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTIgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTMKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxMz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTMgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTIgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTMgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEzPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMTMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTQKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxND4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTQgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTE0OworICAgIHR5cGVkZWYgVDEzIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDE0ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDEzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjEzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDE0ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTUKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxNT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTUgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwxNSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTU8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMTUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE1IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjE2Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MTY+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjE2IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTE2OworICAgIHR5cGVkZWYgVDE1IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDE2ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNjwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwxNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTYgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNgorICAgID4KK3N0cnVjdCB2ZWN0b3IxNworeworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDE3PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IxNyB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTYgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTcgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE3PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwxNyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjE4Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MTg+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjE4IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTcgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTggPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE4PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwxOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTggdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTkKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwxOT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMTkgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMTk7CisgICAgdHlwZWRlZiBUMTggYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMTkgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MTg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE5PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IxOTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMTg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMTkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjAKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyMD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjAgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTIwOworICAgIHR5cGVkZWYgVDE5IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDIwID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDE5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwxOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjE5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDIwID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yMCB0eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IyMF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IyMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODE0Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjIwX2MuaHBwCkBAIC0wLDAgKzEsMTk1IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjBfYy5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgID4KK3N0cnVjdCB2ZWN0b3IxMV9jCisgICAgOiB2ZWN0b3IxMTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzEwPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxMV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMQorICAgID4KK3N0cnVjdCB2ZWN0b3IxMl9jCisgICAgOiB2ZWN0b3IxMjwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTJfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyCisgICAgPgorc3RydWN0IHZlY3RvcjEzX2MKKyAgICA6IHZlY3RvcjEzPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxM19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzCisgICAgPgorc3RydWN0IHZlY3RvcjE0X2MKKyAgICA6IHZlY3RvcjE0PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzEzPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNAorICAgID4KK3N0cnVjdCB2ZWN0b3IxNV9jCisgICAgOiB2ZWN0b3IxNTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNQorICAgID4KK3N0cnVjdCB2ZWN0b3IxNl9jCisgICAgOiB2ZWN0b3IxNjwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE2X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTdfYworICAgIDogdmVjdG9yMTc8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzE2PiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNworICAgID4KK3N0cnVjdCB2ZWN0b3IxOF9jCisgICAgOiB2ZWN0b3IxODwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxOF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTlfYworICAgIDogdmVjdG9yMTk8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTlfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOQorICAgID4KK3N0cnVjdCB2ZWN0b3IyMF9jCisgICAgOiB2ZWN0b3IyMDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzE5PiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjMwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IzMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg4ZjVjYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3IzMC5ocHAKQEAgLTAsMCArMSwxNDY0IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IHZlY3RvcjIxCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MjE+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjIxIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjAgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMjEgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIxPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDIxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yMSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMQorICAgID4KK3N0cnVjdCB2ZWN0b3IyMgoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDIyPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IyMiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyMiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMjIgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIyIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjMKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyMz4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjMgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTIzOworICAgIHR5cGVkZWYgVDIyIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDIzID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyMzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMjMgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMworICAgID4KK3N0cnVjdCB2ZWN0b3IyNAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDI0PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IyNCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTI0OworICAgIHR5cGVkZWYgVDIzIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDI0ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDIzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjIzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMjQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgPgorc3RydWN0IHZlY3RvcjI1Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MjU+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjI1IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTI1OworICAgIHR5cGVkZWYgVDI0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDI1ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDI1ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1CisgICAgPgorc3RydWN0IHZlY3RvcjI2Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MjY+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjI2IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyNiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjY8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwyNiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjYgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2CisgICAgPgorc3RydWN0IHZlY3RvcjI3Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mjc+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjI3IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjYgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMjcgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI3PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MjY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjY8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDI3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNworICAgID4KK3N0cnVjdCB2ZWN0b3IyOAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDI4PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IyOCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyNyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwyOCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMjggPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI4IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjkKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwyOT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMjkgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTI5OworICAgIHR5cGVkZWYgVDI4IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDI5ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IyOTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwyOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMjkgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgID4KK3N0cnVjdCB2ZWN0b3IzMAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDMwPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IzMCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTMwOworICAgIHR5cGVkZWYgVDI5IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDMwID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDI5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMDwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMjk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mjk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzA+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjI5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMzAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjMwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjMwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMTA0NDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yMzBfYy5ocHAKQEAgLTAsMCArMSwyMzggQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgID4KK3N0cnVjdCB2ZWN0b3IyMV9jCisgICAgOiB2ZWN0b3IyMTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxCisgICAgPgorc3RydWN0IHZlY3RvcjIyX2MKKyAgICA6IHZlY3RvcjIyPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyMl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyCisgICAgPgorc3RydWN0IHZlY3RvcjIzX2MKKyAgICA6IHZlY3RvcjIzPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzIyPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyM19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMworICAgID4KK3N0cnVjdCB2ZWN0b3IyNF9jCisgICAgOiB2ZWN0b3IyNDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjI0X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNAorICAgID4KK3N0cnVjdCB2ZWN0b3IyNV9jCisgICAgOiB2ZWN0b3IyNTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjI1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjZfYworICAgIDogdmVjdG9yMjY8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzI1PiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNgorICAgID4KK3N0cnVjdCB2ZWN0b3IyN19jCisgICAgOiB2ZWN0b3IyNzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjhfYworICAgIDogdmVjdG9yMjg8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjhfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOAorICAgID4KK3N0cnVjdCB2ZWN0b3IyOV9jCisgICAgOiB2ZWN0b3IyOTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzI4PiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOQorICAgID4KK3N0cnVjdCB2ZWN0b3IzMF9jCisgICAgOiB2ZWN0b3IzMDwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzBfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC9wbGFpbi92ZWN0b3I0MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNDAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3Yzc1M2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNDAuaHBwCkBAIC0wLDAgKzEsMTc4NCBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjQwLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwCisgICAgPgorc3RydWN0IHZlY3RvcjMxCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MzE+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjMxIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTMxOworICAgIHR5cGVkZWYgVDMwIGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDMxID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzE8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDMxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxCisgICAgPgorc3RydWN0IHZlY3RvcjMyCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MzI+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjMyIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzMiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDMyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwzMiA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzIgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyCisgICAgPgorc3RydWN0IHZlY3RvcjMzCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8MzM+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjMzIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzIgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMzMgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMzPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMyPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjMzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzI8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDMzID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMworICAgID4KK3N0cnVjdCB2ZWN0b3IzNAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDM0PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IzNCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzMyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzNCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzQ8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzMz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzMzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMzQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzUKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwzNT4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMzUgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTM1OworICAgIHR5cGVkZWYgVDM0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDM1ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzQ8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzQ+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMzUgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM1IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNQorICAgID4KK3N0cnVjdCB2ZWN0b3IzNgoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDM2PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IzNiB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTM2OworICAgIHR5cGVkZWYgVDM1IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDM2ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNjwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8MzY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsMzYgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM2IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2CisgICAgPgorc3RydWN0IHZlY3RvcjM3Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mzc+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjM3IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTM3OworICAgIHR5cGVkZWYgVDM2IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDM3ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNzwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzc8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDM3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zNyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3CisgICAgPgorc3RydWN0IHZlY3RvcjM4Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mzg+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjM4IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzNyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwzOCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzNz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDM4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzNzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViwzOCA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzggdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4CisgICAgPgorc3RydWN0IHZlY3RvcjM5Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8Mzk+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjM5IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMzk7CisgICAgdHlwZWRlZiBUMzggYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMzkgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM5PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM4PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8Mzg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjM5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzg8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDM5ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zOSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgID4KK3N0cnVjdCB2ZWN0b3I0MAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQwPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0MCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00MDsKKyAgICB0eXBlZGVmIFQzOSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0MCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDA8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yMzk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzwzOT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDA8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3IzOTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsNDAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjQwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjQwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDYyZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNDBfYy5ocHAKQEAgLTAsMCArMSwyODEgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzFfYworICAgIDogdmVjdG9yMzE8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMxX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzJfYworICAgIDogdmVjdG9yMzI8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMzE+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyCisgICAgPgorc3RydWN0IHZlY3RvcjMzX2MKKyAgICA6IHZlY3RvcjMzPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzCisgICAgPgorc3RydWN0IHZlY3RvcjM0X2MKKyAgICA6IHZlY3RvcjM0PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzRfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNAorICAgID4KK3N0cnVjdCB2ZWN0b3IzNV9jCisgICAgOiB2ZWN0b3IzNTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMzQ+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1CisgICAgPgorc3RydWN0IHZlY3RvcjM2X2MKKyAgICA6IHZlY3RvcjM2PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM2X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNgorICAgID4KK3N0cnVjdCB2ZWN0b3IzN19jCisgICAgOiB2ZWN0b3IzNzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3CisgICAgPgorc3RydWN0IHZlY3RvcjM4X2MKKyAgICA6IHZlY3RvcjM4PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+LCBpbnRlZ3JhbF9jPFQKKyAgICAgICAgLCBDMzc+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4CisgICAgPgorc3RydWN0IHZlY3RvcjM5X2MKKyAgICA6IHZlY3RvcjM5PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDBfYworICAgIDogdmVjdG9yNDA8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQwX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNTAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjUwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmQyYzNhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjUwLmhwcApAQCAtMCwwICsxLDIxMDQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwCisgICAgPgorc3RydWN0IHZlY3RvcjQxCit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8NDE+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQxIHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIHR5cGVkZWYgVDM5IGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQ0MCBpdGVtNDA7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0MSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDE8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDE+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQwPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQwPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDQxID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDIKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw0Mj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNDIgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgdHlwZWRlZiBUMzkgaXRlbTM5OworICAgIHR5cGVkZWYgVDQwIGl0ZW00MDsKKyAgICB0eXBlZGVmIFQ0MSBpdGVtNDE7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00MjsKKyAgICB0eXBlZGVmIFQ0MSBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0MiA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0MT4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDI8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQxPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQxPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQyPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDQyID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MgorICAgID4KK3N0cnVjdCB2ZWN0b3I0MworeworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQzPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0MyB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00MzsKKyAgICB0eXBlZGVmIFQ0MiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0MyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Mj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDM8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDI+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQzPAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0MjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViw0MyA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDMgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MworICAgID4KK3N0cnVjdCB2ZWN0b3I0NAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0NCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDQ7CisgICAgdHlwZWRlZiBUNDMgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDQgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDM+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ0PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQzPiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0ND4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDM8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsNDQgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgID4KK3N0cnVjdCB2ZWN0b3I0NQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQ1PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0NSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIHR5cGVkZWYgVDQ0IGl0ZW00NDsKKyAgICAKKworICAgIHR5cGVkZWYgdm9pZF8gaXRlbTQ1OworICAgIHR5cGVkZWYgVDQ0IGJhY2s7CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsMCA+IGJlZ2luOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDQ1ID4gZW5kOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NTwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ1PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ0PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NTwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ0PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViw0NSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDUgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDYKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw0Nj4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNDYgdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgdHlwZWRlZiBUMzkgaXRlbTM5OworICAgIHR5cGVkZWYgVDQwIGl0ZW00MDsKKyAgICB0eXBlZGVmIFQ0MSBpdGVtNDE7CisgICAgdHlwZWRlZiBUNDIgaXRlbTQyOworICAgIHR5cGVkZWYgVDQzIGl0ZW00MzsKKyAgICB0eXBlZGVmIFQ0NCBpdGVtNDQ7CisgICAgdHlwZWRlZiBUNDUgaXRlbTQ1OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNDY7CisgICAgdHlwZWRlZiBUNDUgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNDYgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ2PAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDY+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ1PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDU+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDU8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDQ2ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00NiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2CisgICAgPgorc3RydWN0IHZlY3RvcjQ3Cit7CisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWc8NDc+IHRhZzsKKyAgICB0eXBlZGVmIHZlY3RvcjQ3IHR5cGU7CisgICAgdHlwZWRlZiBUMCBpdGVtMDsKKyAgICB0eXBlZGVmIFQxIGl0ZW0xOworICAgIHR5cGVkZWYgVDIgaXRlbTI7CisgICAgdHlwZWRlZiBUMyBpdGVtMzsKKyAgICB0eXBlZGVmIFQ0IGl0ZW00OworICAgIHR5cGVkZWYgVDUgaXRlbTU7CisgICAgdHlwZWRlZiBUNiBpdGVtNjsKKyAgICB0eXBlZGVmIFQ3IGl0ZW03OworICAgIHR5cGVkZWYgVDggaXRlbTg7CisgICAgdHlwZWRlZiBUOSBpdGVtOTsKKyAgICB0eXBlZGVmIFQxMCBpdGVtMTA7CisgICAgdHlwZWRlZiBUMTEgaXRlbTExOworICAgIHR5cGVkZWYgVDEyIGl0ZW0xMjsKKyAgICB0eXBlZGVmIFQxMyBpdGVtMTM7CisgICAgdHlwZWRlZiBUMTQgaXRlbTE0OworICAgIHR5cGVkZWYgVDE1IGl0ZW0xNTsKKyAgICB0eXBlZGVmIFQxNiBpdGVtMTY7CisgICAgdHlwZWRlZiBUMTcgaXRlbTE3OworICAgIHR5cGVkZWYgVDE4IGl0ZW0xODsKKyAgICB0eXBlZGVmIFQxOSBpdGVtMTk7CisgICAgdHlwZWRlZiBUMjAgaXRlbTIwOworICAgIHR5cGVkZWYgVDIxIGl0ZW0yMTsKKyAgICB0eXBlZGVmIFQyMiBpdGVtMjI7CisgICAgdHlwZWRlZiBUMjMgaXRlbTIzOworICAgIHR5cGVkZWYgVDI0IGl0ZW0yNDsKKyAgICB0eXBlZGVmIFQyNSBpdGVtMjU7CisgICAgdHlwZWRlZiBUMjYgaXRlbTI2OworICAgIHR5cGVkZWYgVDI3IGl0ZW0yNzsKKyAgICB0eXBlZGVmIFQyOCBpdGVtMjg7CisgICAgdHlwZWRlZiBUMjkgaXRlbTI5OworICAgIHR5cGVkZWYgVDMwIGl0ZW0zMDsKKyAgICB0eXBlZGVmIFQzMSBpdGVtMzE7CisgICAgdHlwZWRlZiBUMzIgaXRlbTMyOworICAgIHR5cGVkZWYgVDMzIGl0ZW0zMzsKKyAgICB0eXBlZGVmIFQzNCBpdGVtMzQ7CisgICAgdHlwZWRlZiBUMzUgaXRlbTM1OworICAgIHR5cGVkZWYgVDM2IGl0ZW0zNjsKKyAgICB0eXBlZGVmIFQzNyBpdGVtMzc7CisgICAgdHlwZWRlZiBUMzggaXRlbTM4OworICAgIHR5cGVkZWYgVDM5IGl0ZW0zOTsKKyAgICB0eXBlZGVmIFQ0MCBpdGVtNDA7CisgICAgdHlwZWRlZiBUNDEgaXRlbTQxOworICAgIHR5cGVkZWYgVDQyIGl0ZW00MjsKKyAgICB0eXBlZGVmIFQ0MyBpdGVtNDM7CisgICAgdHlwZWRlZiBUNDQgaXRlbTQ0OworICAgIHR5cGVkZWYgVDQ1IGl0ZW00NTsKKyAgICB0eXBlZGVmIFQ0NiBpdGVtNDY7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00NzsKKyAgICB0eXBlZGVmIFQ0NiBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0NyA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nj4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDc8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDc+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ2PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ2PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NjwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDQ3ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00NyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDgKK3sKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzw0OD4gdGFnOworICAgIHR5cGVkZWYgdmVjdG9yNDggdHlwZTsKKyAgICB0eXBlZGVmIFQwIGl0ZW0wOworICAgIHR5cGVkZWYgVDEgaXRlbTE7CisgICAgdHlwZWRlZiBUMiBpdGVtMjsKKyAgICB0eXBlZGVmIFQzIGl0ZW0zOworICAgIHR5cGVkZWYgVDQgaXRlbTQ7CisgICAgdHlwZWRlZiBUNSBpdGVtNTsKKyAgICB0eXBlZGVmIFQ2IGl0ZW02OworICAgIHR5cGVkZWYgVDcgaXRlbTc7CisgICAgdHlwZWRlZiBUOCBpdGVtODsKKyAgICB0eXBlZGVmIFQ5IGl0ZW05OworICAgIHR5cGVkZWYgVDEwIGl0ZW0xMDsKKyAgICB0eXBlZGVmIFQxMSBpdGVtMTE7CisgICAgdHlwZWRlZiBUMTIgaXRlbTEyOworICAgIHR5cGVkZWYgVDEzIGl0ZW0xMzsKKyAgICB0eXBlZGVmIFQxNCBpdGVtMTQ7CisgICAgdHlwZWRlZiBUMTUgaXRlbTE1OworICAgIHR5cGVkZWYgVDE2IGl0ZW0xNjsKKyAgICB0eXBlZGVmIFQxNyBpdGVtMTc7CisgICAgdHlwZWRlZiBUMTggaXRlbTE4OworICAgIHR5cGVkZWYgVDE5IGl0ZW0xOTsKKyAgICB0eXBlZGVmIFQyMCBpdGVtMjA7CisgICAgdHlwZWRlZiBUMjEgaXRlbTIxOworICAgIHR5cGVkZWYgVDIyIGl0ZW0yMjsKKyAgICB0eXBlZGVmIFQyMyBpdGVtMjM7CisgICAgdHlwZWRlZiBUMjQgaXRlbTI0OworICAgIHR5cGVkZWYgVDI1IGl0ZW0yNTsKKyAgICB0eXBlZGVmIFQyNiBpdGVtMjY7CisgICAgdHlwZWRlZiBUMjcgaXRlbTI3OworICAgIHR5cGVkZWYgVDI4IGl0ZW0yODsKKyAgICB0eXBlZGVmIFQyOSBpdGVtMjk7CisgICAgdHlwZWRlZiBUMzAgaXRlbTMwOworICAgIHR5cGVkZWYgVDMxIGl0ZW0zMTsKKyAgICB0eXBlZGVmIFQzMiBpdGVtMzI7CisgICAgdHlwZWRlZiBUMzMgaXRlbTMzOworICAgIHR5cGVkZWYgVDM0IGl0ZW0zNDsKKyAgICB0eXBlZGVmIFQzNSBpdGVtMzU7CisgICAgdHlwZWRlZiBUMzYgaXRlbTM2OworICAgIHR5cGVkZWYgVDM3IGl0ZW0zNzsKKyAgICB0eXBlZGVmIFQzOCBpdGVtMzg7CisgICAgdHlwZWRlZiBUMzkgaXRlbTM5OworICAgIHR5cGVkZWYgVDQwIGl0ZW00MDsKKyAgICB0eXBlZGVmIFQ0MSBpdGVtNDE7CisgICAgdHlwZWRlZiBUNDIgaXRlbTQyOworICAgIHR5cGVkZWYgVDQzIGl0ZW00MzsKKyAgICB0eXBlZGVmIFQ0NCBpdGVtNDQ7CisgICAgdHlwZWRlZiBUNDUgaXRlbTQ1OworICAgIHR5cGVkZWYgVDQ2IGl0ZW00NjsKKyAgICB0eXBlZGVmIFQ0NyBpdGVtNDc7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00ODsKKyAgICB0eXBlZGVmIFQ0NyBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0OCA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0Nz4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDg8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ3PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ3CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ3PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0ODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ4PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0NzwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBWID4KK3N0cnVjdCB2X2F0PCBWLDQ4ID4KK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00OCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OAorICAgID4KK3N0cnVjdCB2ZWN0b3I0OQoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I0OSB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIHR5cGVkZWYgVDQ0IGl0ZW00NDsKKyAgICB0eXBlZGVmIFQ0NSBpdGVtNDU7CisgICAgdHlwZWRlZiBUNDYgaXRlbTQ2OworICAgIHR5cGVkZWYgVDQ3IGl0ZW00NzsKKyAgICB0eXBlZGVmIFQ0OCBpdGVtNDg7CisgICAgCisKKyAgICB0eXBlZGVmIHZvaWRfIGl0ZW00OTsKKyAgICB0eXBlZGVmIFQ0OCBiYWNrOworICAgIHR5cGVkZWYgdl9pdGVyPCB0eXBlLDAgPiBiZWdpbjsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSw0OSA+IGVuZDsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw0OD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDk8CisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgICAgLAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ3CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwb3BfZnJvbnRfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0ODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDg+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjQ5PAorICAgICAgICAgICAgICB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0wLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW03CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTExCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ3CisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgVAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I0ODwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgViA+CitzdHJ1Y3Qgdl9hdDwgViw0OSA+Cit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDkgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUsIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3LCB0eXBlbmFtZSBUNDgsIHR5cGVuYW1lIFQ0OQorICAgID4KK3N0cnVjdCB2ZWN0b3I1MAoreworICAgIHR5cGVkZWYgYXV4Ojp2ZWN0b3JfdGFnPDUwPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3I1MCB0eXBlOworICAgIHR5cGVkZWYgVDAgaXRlbTA7CisgICAgdHlwZWRlZiBUMSBpdGVtMTsKKyAgICB0eXBlZGVmIFQyIGl0ZW0yOworICAgIHR5cGVkZWYgVDMgaXRlbTM7CisgICAgdHlwZWRlZiBUNCBpdGVtNDsKKyAgICB0eXBlZGVmIFQ1IGl0ZW01OworICAgIHR5cGVkZWYgVDYgaXRlbTY7CisgICAgdHlwZWRlZiBUNyBpdGVtNzsKKyAgICB0eXBlZGVmIFQ4IGl0ZW04OworICAgIHR5cGVkZWYgVDkgaXRlbTk7CisgICAgdHlwZWRlZiBUMTAgaXRlbTEwOworICAgIHR5cGVkZWYgVDExIGl0ZW0xMTsKKyAgICB0eXBlZGVmIFQxMiBpdGVtMTI7CisgICAgdHlwZWRlZiBUMTMgaXRlbTEzOworICAgIHR5cGVkZWYgVDE0IGl0ZW0xNDsKKyAgICB0eXBlZGVmIFQxNSBpdGVtMTU7CisgICAgdHlwZWRlZiBUMTYgaXRlbTE2OworICAgIHR5cGVkZWYgVDE3IGl0ZW0xNzsKKyAgICB0eXBlZGVmIFQxOCBpdGVtMTg7CisgICAgdHlwZWRlZiBUMTkgaXRlbTE5OworICAgIHR5cGVkZWYgVDIwIGl0ZW0yMDsKKyAgICB0eXBlZGVmIFQyMSBpdGVtMjE7CisgICAgdHlwZWRlZiBUMjIgaXRlbTIyOworICAgIHR5cGVkZWYgVDIzIGl0ZW0yMzsKKyAgICB0eXBlZGVmIFQyNCBpdGVtMjQ7CisgICAgdHlwZWRlZiBUMjUgaXRlbTI1OworICAgIHR5cGVkZWYgVDI2IGl0ZW0yNjsKKyAgICB0eXBlZGVmIFQyNyBpdGVtMjc7CisgICAgdHlwZWRlZiBUMjggaXRlbTI4OworICAgIHR5cGVkZWYgVDI5IGl0ZW0yOTsKKyAgICB0eXBlZGVmIFQzMCBpdGVtMzA7CisgICAgdHlwZWRlZiBUMzEgaXRlbTMxOworICAgIHR5cGVkZWYgVDMyIGl0ZW0zMjsKKyAgICB0eXBlZGVmIFQzMyBpdGVtMzM7CisgICAgdHlwZWRlZiBUMzQgaXRlbTM0OworICAgIHR5cGVkZWYgVDM1IGl0ZW0zNTsKKyAgICB0eXBlZGVmIFQzNiBpdGVtMzY7CisgICAgdHlwZWRlZiBUMzcgaXRlbTM3OworICAgIHR5cGVkZWYgVDM4IGl0ZW0zODsKKyAgICB0eXBlZGVmIFQzOSBpdGVtMzk7CisgICAgdHlwZWRlZiBUNDAgaXRlbTQwOworICAgIHR5cGVkZWYgVDQxIGl0ZW00MTsKKyAgICB0eXBlZGVmIFQ0MiBpdGVtNDI7CisgICAgdHlwZWRlZiBUNDMgaXRlbTQzOworICAgIHR5cGVkZWYgVDQ0IGl0ZW00NDsKKyAgICB0eXBlZGVmIFQ0NSBpdGVtNDU7CisgICAgdHlwZWRlZiBUNDYgaXRlbTQ2OworICAgIHR5cGVkZWYgVDQ3IGl0ZW00NzsKKyAgICB0eXBlZGVmIFQ0OCBpdGVtNDg7CisgICAgdHlwZWRlZiBUNDkgaXRlbTQ5OworICAgIAorCisgICAgdHlwZWRlZiB2b2lkXyBpdGVtNTA7CisgICAgdHlwZWRlZiBUNDkgYmFjazsKKyAgICB0eXBlZGVmIHZfaXRlcjwgdHlwZSwwID4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8IHR5cGUsNTAgPiBlbmQ7Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcHVzaF9mcm9udF9pbXBsPCBhdXg6OnZlY3Rvcl90YWc8NDk+ID4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVmVjdG9yLCB0eXBlbmFtZSBUID4gc3RydWN0IGFwcGx5CisgICAgeworICAgICAgICB0eXBlZGVmIHZlY3RvcjUwPAorICAgICAgICAgICAgICBUCisgICAgICAgICAgICAgICwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00OAorICAgICAgICAgICAgPiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgcG9wX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW02CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjIKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI0CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjgKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjksIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMwCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMgorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMywgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzQKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM2CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDAKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQyCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NAorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NSwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDYKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ4CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ5CisgICAgICAgICAgICA+IHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2JhY2tfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnPDQ5PiA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2ZWN0b3I1MDwKKyAgICAgICAgICAgICAgdHlwZW5hbWUgVmVjdG9yOjppdGVtMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW04LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW05CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00OAorICAgICAgICAgICAgICAsCisgICAgICAgICAgICAgIFQKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHBvcF9iYWNrX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzw1MD4gPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdmVjdG9yNDk8CisgICAgICAgICAgICAgIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW01CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xMCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTEzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0xNiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMTgsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTE5CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTIwLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yMiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjMKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjQsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI1CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTI2LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yNworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0yOCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMjkKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMxCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTMyLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zMworICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zNCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzUKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtMzYsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM3CisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTM4LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW0zOQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00MCwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDEKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDIsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQzCisgICAgICAgICAgICAsIHR5cGVuYW1lIFZlY3Rvcjo6aXRlbTQ0LCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NQorICAgICAgICAgICAgLCB0eXBlbmFtZSBWZWN0b3I6Oml0ZW00NiwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDcKKyAgICAgICAgICAgICwgdHlwZW5hbWUgVmVjdG9yOjppdGVtNDgKKyAgICAgICAgICAgID4gdHlwZTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFYgPgorc3RydWN0IHZfYXQ8IFYsNTAgPgoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTUwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjUwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3BsYWluL3ZlY3RvcjUwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNWE2MzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvcGxhaW4vdmVjdG9yNTBfYy5ocHAKQEAgLTAsMCArMSwzMjUgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgPgorc3RydWN0IHZlY3RvcjQxX2MKKyAgICA6IHZlY3RvcjQxPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzQwPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0MV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MQorICAgID4KK3N0cnVjdCB2ZWN0b3I0Ml9jCisgICAgOiB2ZWN0b3I0MjwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MgorICAgID4KK3N0cnVjdCB2ZWN0b3I0M19jCisgICAgOiB2ZWN0b3I0MzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+LCBpbnRlZ3JhbF9jPCBULEM0MiA+IAorID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQzX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDRfYworICAgIDogdmVjdG9yNDQ8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDAgPiwgaW50ZWdyYWxfYzwgVCxDNDEgPiwgaW50ZWdyYWxfYzwgVCxDNDIgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzQzPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0NF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NAorICAgID4KK3N0cnVjdCB2ZWN0b3I0NV9jCisgICAgOiB2ZWN0b3I0NTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+LCBpbnRlZ3JhbF9jPCBULEM0MiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDMgPiwgaW50ZWdyYWxfYzwgVCxDNDQgPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0NV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDZfYworICAgIDogdmVjdG9yNDY8CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+LCBpbnRlZ3JhbF9jPCBULEMxID4sIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMgPiwgaW50ZWdyYWxfYzwgVCxDNCA+LCBpbnRlZ3JhbF9jPCBULEM1ID4sIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzcgPiwgaW50ZWdyYWxfYzwgVCxDOCA+LCBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMCA+LCBpbnRlZ3JhbF9jPCBULEMxMSA+LCBpbnRlZ3JhbF9jPCBULEMxMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTMgPiwgaW50ZWdyYWxfYzwgVCxDMTQgPiwgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE2ID4sIGludGVncmFsX2M8IFQsQzE3ID4sIGludGVncmFsX2M8IFQsQzE4ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxOSA+LCBpbnRlZ3JhbF9jPCBULEMyMCA+LCBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjIgPiwgaW50ZWdyYWxfYzwgVCxDMjMgPiwgaW50ZWdyYWxfYzwgVCxDMjQgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI1ID4sIGludGVncmFsX2M8IFQsQzI2ID4sIGludGVncmFsX2M8IFQsQzI3ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyOCA+LCBpbnRlZ3JhbF9jPCBULEMyOSA+LCBpbnRlZ3JhbF9jPCBULEMzMCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzEgPiwgaW50ZWdyYWxfYzwgVCxDMzIgPiwgaW50ZWdyYWxfYzwgVCxDMzMgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM0ID4sIGludGVncmFsX2M8IFQsQzM1ID4sIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNyA+LCBpbnRlZ3JhbF9jPCBULEMzOCA+LCBpbnRlZ3JhbF9jPCBULEMzOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDAgPiwgaW50ZWdyYWxfYzwgVCxDNDEgPiwgaW50ZWdyYWxfYzwgVCxDNDIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQzID4sIGludGVncmFsX2M8IFQsQzQ0ID4sIGludGVncmFsX2M8IFQsQzQ1ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDZfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEsIFQgQzQyLCBUIEM0MywgVCBDNDQsIFQgQzQ1LCBUIEM0NgorICAgID4KK3N0cnVjdCB2ZWN0b3I0N19jCisgICAgOiB2ZWN0b3I0NzwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+LCBpbnRlZ3JhbF9jPCBULEM0MiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDMgPiwgaW50ZWdyYWxfYzwgVCxDNDQgPiwgaW50ZWdyYWxfYzwgVCxDNDUgPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzQ2PiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0N19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2LCBUIEM0NworICAgID4KK3N0cnVjdCB2ZWN0b3I0OF9jCisgICAgOiB2ZWN0b3I0ODwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMwID4sIGludGVncmFsX2M8IFQsQzEgPiwgaW50ZWdyYWxfYzwgVCxDMiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMyA+LCBpbnRlZ3JhbF9jPCBULEM0ID4sIGludGVncmFsX2M8IFQsQzUgPiwgaW50ZWdyYWxfYzwgVCxDNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNyA+LCBpbnRlZ3JhbF9jPCBULEM4ID4sIGludGVncmFsX2M8IFQsQzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEwID4sIGludGVncmFsX2M8IFQsQzExID4sIGludGVncmFsX2M8IFQsQzEyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxMyA+LCBpbnRlZ3JhbF9jPCBULEMxNCA+LCBpbnRlZ3JhbF9jPCBULEMxNSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTYgPiwgaW50ZWdyYWxfYzwgVCxDMTcgPiwgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzE5ID4sIGludGVncmFsX2M8IFQsQzIwID4sIGludGVncmFsX2M8IFQsQzIxID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyMiA+LCBpbnRlZ3JhbF9jPCBULEMyMyA+LCBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjUgPiwgaW50ZWdyYWxfYzwgVCxDMjYgPiwgaW50ZWdyYWxfYzwgVCxDMjcgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzI4ID4sIGludGVncmFsX2M8IFQsQzI5ID4sIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzMSA+LCBpbnRlZ3JhbF9jPCBULEMzMiA+LCBpbnRlZ3JhbF9jPCBULEMzMyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzQgPiwgaW50ZWdyYWxfYzwgVCxDMzUgPiwgaW50ZWdyYWxfYzwgVCxDMzYgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzM3ID4sIGludGVncmFsX2M8IFQsQzM4ID4sIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MCA+LCBpbnRlZ3JhbF9jPCBULEM0MSA+LCBpbnRlZ3JhbF9jPCBULEM0MiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDMgPiwgaW50ZWdyYWxfYzwgVCxDNDQgPiwgaW50ZWdyYWxfYzwgVCxDNDUgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQ2ID4sIGludGVncmFsX2M8IFQsQzQ3ID4gCisgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDhfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEsIFQgQzQyLCBUIEM0MywgVCBDNDQsIFQgQzQ1LCBUIEM0NiwgVCBDNDcsIFQgQzQ4CisgICAgPgorc3RydWN0IHZlY3RvcjQ5X2MKKyAgICA6IHZlY3RvcjQ5PAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4sIGludGVncmFsX2M8IFQsQzQyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MyA+LCBpbnRlZ3JhbF9jPCBULEM0NCA+LCBpbnRlZ3JhbF9jPCBULEM0NSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDYgPiwgaW50ZWdyYWxfYzwgVCxDNDcgPiwgaW50ZWdyYWxfYzwgVCxDNDggPiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0OV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzksIFQgQzQwCisgICAgLCBUIEM0MSwgVCBDNDIsIFQgQzQzLCBUIEM0NCwgVCBDNDUsIFQgQzQ2LCBUIEM0NywgVCBDNDgsIFQgQzQ5CisgICAgPgorc3RydWN0IHZlY3RvcjUwX2MKKyAgICA6IHZlY3RvcjUwPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzAgPiwgaW50ZWdyYWxfYzwgVCxDMSA+LCBpbnRlZ3JhbF9jPCBULEMyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzID4sIGludGVncmFsX2M8IFQsQzQgPiwgaW50ZWdyYWxfYzwgVCxDNSA+LCBpbnRlZ3JhbF9jPCBULEM2ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM3ID4sIGludGVncmFsX2M8IFQsQzggPiwgaW50ZWdyYWxfYzwgVCxDOSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTAgPiwgaW50ZWdyYWxfYzwgVCxDMTEgPiwgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzEzID4sIGludGVncmFsX2M8IFQsQzE0ID4sIGludGVncmFsX2M8IFQsQzE1ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMxNiA+LCBpbnRlZ3JhbF9jPCBULEMxNyA+LCBpbnRlZ3JhbF9jPCBULEMxOCA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMTkgPiwgaW50ZWdyYWxfYzwgVCxDMjAgPiwgaW50ZWdyYWxfYzwgVCxDMjEgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzIyID4sIGludGVncmFsX2M8IFQsQzIzID4sIGludGVncmFsX2M8IFQsQzI0ID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMyNSA+LCBpbnRlZ3JhbF9jPCBULEMyNiA+LCBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMjggPiwgaW50ZWdyYWxfYzwgVCxDMjkgPiwgaW50ZWdyYWxfYzwgVCxDMzAgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzMxID4sIGludGVncmFsX2M8IFQsQzMyID4sIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEMzNCA+LCBpbnRlZ3JhbF9jPCBULEMzNSA+LCBpbnRlZ3JhbF9jPCBULEMzNiA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDMzcgPiwgaW50ZWdyYWxfYzwgVCxDMzggPiwgaW50ZWdyYWxfYzwgVCxDMzkgPgorICAgICAgICAsIGludGVncmFsX2M8IFQsQzQwID4sIGludGVncmFsX2M8IFQsQzQxID4sIGludGVncmFsX2M8IFQsQzQyID4KKyAgICAgICAgLCBpbnRlZ3JhbF9jPCBULEM0MyA+LCBpbnRlZ3JhbF9jPCBULEM0NCA+LCBpbnRlZ3JhbF9jPCBULEM0NSA+CisgICAgICAgICwgaW50ZWdyYWxfYzwgVCxDNDYgPiwgaW50ZWdyYWxfYzwgVCxDNDcgPiwgaW50ZWdyYWxfYzwgVCxDNDggPiwgaW50ZWdyYWxfYzxUCisgICAgICAgICwgQzQ5PiAKKyA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I1MF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IxMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjEwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGY0YTIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IxMC5ocHAKQEAgLTAsMCArMSwxMzkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMAorICAgID4KK3N0cnVjdCB2ZWN0b3IxCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDAKKyAgICAgICAgLCB2ZWN0b3IwPCAgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMQorICAgID4KK3N0cnVjdCB2ZWN0b3IyCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDEKKyAgICAgICAgLCB2ZWN0b3IxPFQwPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMworICAgIDogdl9pdGVtPAorICAgICAgICAgIFQyCisgICAgICAgICwgdmVjdG9yMjwgVDAsVDEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzCisgICAgPgorc3RydWN0IHZlY3RvcjQKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMworICAgICAgICAsIHZlY3RvcjM8IFQwLFQxLFQyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNQorICAgIDogdl9pdGVtPAorICAgICAgICAgIFQ0CisgICAgICAgICwgdmVjdG9yNDwgVDAsVDEsVDIsVDMgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I1IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNgorICAgIDogdl9pdGVtPAorICAgICAgICAgIFQ1CisgICAgICAgICwgdmVjdG9yNTwgVDAsVDEsVDIsVDMsVDQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I2IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2CisgICAgPgorc3RydWN0IHZlY3RvcjcKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUNgorICAgICAgICAsIHZlY3RvcjY8IFQwLFQxLFQyLFQzLFQ0LFQ1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOAorICAgIDogdl9pdGVtPAorICAgICAgICAgIFQ3CisgICAgICAgICwgdmVjdG9yNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I4IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yOQorICAgIDogdl9pdGVtPAorICAgICAgICAgIFQ4CisgICAgICAgICwgdmVjdG9yODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I5IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgPgorc3RydWN0IHZlY3RvcjEwCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDkKKyAgICAgICAgLCB2ZWN0b3I5PCBUMCxUMSxUMixUMyxUNCxUNSxUNixUNyxUOCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjEwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IxMF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMTBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBhMTgyMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMTBfYy5ocHAKQEAgLTAsMCArMSwxNTQgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMV9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMCA+CisgICAgICAgICwgdmVjdG9yMF9jPFQ+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxCisgICAgPgorc3RydWN0IHZlY3RvcjJfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzEgPgorICAgICAgICAsIHZlY3RvcjFfYzwgVCxDMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjJfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyCisgICAgPgorc3RydWN0IHZlY3RvcjNfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzIgPgorICAgICAgICAsIHZlY3RvcjJfYzwgVCxDMCxDMSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjNfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzCisgICAgPgorc3RydWN0IHZlY3RvcjRfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzMgPgorICAgICAgICAsIHZlY3RvcjNfYzwgVCxDMCxDMSxDMiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjRfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0CisgICAgPgorc3RydWN0IHZlY3RvcjVfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQgPgorICAgICAgICAsIHZlY3RvcjRfYzwgVCxDMCxDMSxDMixDMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjVfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1CisgICAgPgorc3RydWN0IHZlY3RvcjZfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzUgPgorICAgICAgICAsIHZlY3RvcjVfYzwgVCxDMCxDMSxDMixDMyxDNCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjZfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2CisgICAgPgorc3RydWN0IHZlY3RvcjdfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzYgPgorICAgICAgICAsIHZlY3RvcjZfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjdfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3CisgICAgPgorc3RydWN0IHZlY3RvcjhfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzcgPgorICAgICAgICAsIHZlY3RvcjdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjhfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4CisgICAgPgorc3RydWN0IHZlY3RvcjlfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzggPgorICAgICAgICAsIHZlY3RvcjhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjlfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5CisgICAgPgorc3RydWN0IHZlY3RvcjEwX2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEM5ID4KKyAgICAgICAgLCB2ZWN0b3I5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzggPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IyMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjIwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTM0ZjMwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IyMC5ocHAKQEAgLTAsMCArMSwxNTkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwCisgICAgPgorc3RydWN0IHZlY3RvcjExCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDEwCisgICAgICAgICwgdmVjdG9yMTA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTEgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExCisgICAgPgorc3RydWN0IHZlY3RvcjEyCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDExCisgICAgICAgICwgdmVjdG9yMTE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjEyIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyCisgICAgPgorc3RydWN0IHZlY3RvcjEzCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDEyCisgICAgICAgICwgdmVjdG9yMTI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxMyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzCisgICAgPgorc3RydWN0IHZlY3RvcjE0CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDEzCisgICAgICAgICwgdmVjdG9yMTM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgPgorc3RydWN0IHZlY3RvcjE1CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDE0CisgICAgICAgICwgdmVjdG9yMTQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE1IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1CisgICAgPgorc3RydWN0IHZlY3RvcjE2CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDE1CisgICAgICAgICwgdmVjdG9yMTU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxNiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2CisgICAgPgorc3RydWN0IHZlY3RvcjE3CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDE2CisgICAgICAgICwgdmVjdG9yMTY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3CisgICAgPgorc3RydWN0IHZlY3RvcjE4CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDE3CisgICAgICAgICwgdmVjdG9yMTc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE4IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4CisgICAgPgorc3RydWN0IHZlY3RvcjE5CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDE4CisgICAgICAgICwgdmVjdG9yMTg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IxOSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgPgorc3RydWN0IHZlY3RvcjIwCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDE5CisgICAgICAgICwgdmVjdG9yMTk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjAgdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjIwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IyMF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTFlNzhlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IyMF9jLmhwcApAQCAtMCwwICsxLDE2MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjIwX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTFfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzEwID4KKyAgICAgICAgLCB2ZWN0b3IxMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTJfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzExID4KKyAgICAgICAgLCB2ZWN0b3IxMV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjEyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMgorICAgID4KK3N0cnVjdCB2ZWN0b3IxM19jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMTIgPgorICAgICAgICAsIHZlY3RvcjEyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjEzX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTRfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzEzID4KKyAgICAgICAgLCB2ZWN0b3IxM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTRfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTVfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzE0ID4KKyAgICAgICAgLCB2ZWN0b3IxNF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNQorICAgID4KK3N0cnVjdCB2ZWN0b3IxNl9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMTUgPgorICAgICAgICAsIHZlY3RvcjE1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE2X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMTdfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzE2ID4KKyAgICAgICAgLCB2ZWN0b3IxNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMTdfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMThfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzE3ID4KKyAgICAgICAgLCB2ZWN0b3IxN19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOAorICAgID4KK3N0cnVjdCB2ZWN0b3IxOV9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMTggPgorICAgICAgICAsIHZlY3RvcjE4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjE5X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMjBfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzE5ID4KKyAgICAgICAgLCB2ZWN0b3IxOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjBfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMzAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IzMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc2ZDVkZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMzAuaHBwCkBAIC0wLDAgKzEsMTc5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwCisgICAgPgorc3RydWN0IHZlY3RvcjIxCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDIwCisgICAgICAgICwgdmVjdG9yMjA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjIxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxCisgICAgPgorc3RydWN0IHZlY3RvcjIyCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDIxCisgICAgICAgICwgdmVjdG9yMjE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyMiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyCisgICAgPgorc3RydWN0IHZlY3RvcjIzCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDIyCisgICAgICAgICwgdmVjdG9yMjI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjMgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzCisgICAgPgorc3RydWN0IHZlY3RvcjI0CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDIzCisgICAgICAgICwgdmVjdG9yMjM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjI0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgPgorc3RydWN0IHZlY3RvcjI1CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDI0CisgICAgICAgICwgdmVjdG9yMjQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyNSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1CisgICAgPgorc3RydWN0IHZlY3RvcjI2CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDI1CisgICAgICAgICwgdmVjdG9yMjU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjYgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2CisgICAgPgorc3RydWN0IHZlY3RvcjI3CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDI2CisgICAgICAgICwgdmVjdG9yMjY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjI3IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3CisgICAgPgorc3RydWN0IHZlY3RvcjI4CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDI3CisgICAgICAgICwgdmVjdG9yMjc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyOCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4CisgICAgPgorc3RydWN0IHZlY3RvcjI5CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDI4CisgICAgICAgICwgdmVjdG9yMjg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjkgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgPgorc3RydWN0IHZlY3RvcjMwCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDI5CisgICAgICAgICwgdmVjdG9yMjk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3IzMF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMzBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdmYTIzNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yMzBfYy5ocHAKQEAgLTAsMCArMSwxNzMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgID4KK3N0cnVjdCB2ZWN0b3IyMV9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjAgPgorICAgICAgICAsIHZlY3RvcjIwX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxCisgICAgPgorc3RydWN0IHZlY3RvcjIyX2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMyMSA+CisgICAgICAgICwgdmVjdG9yMjFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjJfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMgorICAgID4KK3N0cnVjdCB2ZWN0b3IyM19jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjIgPgorICAgICAgICAsIHZlY3RvcjIyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyM19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMworICAgID4KK3N0cnVjdCB2ZWN0b3IyNF9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjMgPgorICAgICAgICAsIHZlY3RvcjIzX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjRfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0CisgICAgPgorc3RydWN0IHZlY3RvcjI1X2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMyNCA+CisgICAgICAgICwgdmVjdG9yMjRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjVfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNQorICAgID4KK3N0cnVjdCB2ZWN0b3IyNl9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjUgPgorICAgICAgICAsIHZlY3RvcjI1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNgorICAgID4KK3N0cnVjdCB2ZWN0b3IyN19jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjYgPgorICAgICAgICAsIHZlY3RvcjI2X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjdfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3CisgICAgPgorc3RydWN0IHZlY3RvcjI4X2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMyNyA+CisgICAgICAgICwgdmVjdG9yMjdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMjhfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOAorICAgID4KK3N0cnVjdCB2ZWN0b3IyOV9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjggPgorICAgICAgICAsIHZlY3RvcjI4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IyOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOQorICAgID4KK3N0cnVjdCB2ZWN0b3IzMF9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDMjkgPgorICAgICAgICAsIHZlY3RvcjI5X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzBfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNDAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3I0MC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ExNDIzNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNDAuaHBwCkBAIC0wLDAgKzEsMTk5IEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworLy8gUHJlcHJvY2Vzc2VkIHZlcnNpb24gb2YgIm5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDAuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzEKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzAKKyAgICAgICAgLCB2ZWN0b3IzMDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzIKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzEKKyAgICAgICAgLCB2ZWN0b3IzMTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzMiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzMKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzIKKyAgICAgICAgLCB2ZWN0b3IzMjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzMgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzQKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzMKKyAgICAgICAgLCB2ZWN0b3IzMzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM0IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzUKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzQKKyAgICAgICAgLCB2ZWN0b3IzNDwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMixUMzMgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzNSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzYKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzUKKyAgICAgICAgLCB2ZWN0b3IzNTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMixUMzMsVDM0ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzYgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzcKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzYKKyAgICAgICAgLCB2ZWN0b3IzNjwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMixUMzMsVDM0LFQzNSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM3IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzgKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzcKKyAgICAgICAgLCB2ZWN0b3IzNzwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMixUMzMsVDM0LFQzNSxUMzYgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzOCB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzkKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzgKKyAgICAgICAgLCB2ZWN0b3IzODwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMixUMzMsVDM0LFQzNSxUMzYsVDM3ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yMzkgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDAKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBUMzkKKyAgICAgICAgLCB2ZWN0b3IzOTwgVDAsVDEsVDIsVDMsVDQsVDUsVDYsVDcsVDgsVDksVDEwLFQxMSxUMTIsVDEzLFQxNCxUMTUsVDE2LFQxNyxUMTgsVDE5LFQyMCxUMjEsVDIyLFQyMyxUMjQsVDI1LFQyNixUMjcsVDI4LFQyOSxUMzAsVDMxLFQzMixUMzMsVDM0LFQzNSxUMzYsVDM3LFQzOCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQwIHR5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3I0MF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNDBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE3NDhhOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ByZXByb2Nlc3NlZC90eXBlb2ZfYmFzZWQvdmVjdG9yNDBfYy5ocHAKQEAgLTAsMCArMSwxODMgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MF9jLmhwcCIgaGVhZGVyCisvLyAtLSBETyBOT1QgbW9kaWZ5IGJ5IGhhbmQhCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzFfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzMwID4KKyAgICAgICAgLCB2ZWN0b3IzMF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjkgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzMV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxCisgICAgPgorc3RydWN0IHZlY3RvcjMyX2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMzMSA+CisgICAgICAgICwgdmVjdG9yMzFfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjMyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyCisgICAgPgorc3RydWN0IHZlY3RvcjMzX2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMzMiA+CisgICAgICAgICwgdmVjdG9yMzJfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzM19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzRfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzMzID4KKyAgICAgICAgLCB2ZWN0b3IzM19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzNF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0CisgICAgPgorc3RydWN0IHZlY3RvcjM1X2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMzNCA+CisgICAgICAgICwgdmVjdG9yMzRfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1CisgICAgPgorc3RydWN0IHZlY3RvcjM2X2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMzNSA+CisgICAgICAgICwgdmVjdG9yMzVfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzNl9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yMzdfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzM2ID4KKyAgICAgICAgLCB2ZWN0b3IzNl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzN19jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3CisgICAgPgorc3RydWN0IHZlY3RvcjM4X2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMzNyA+CisgICAgICAgICwgdmVjdG9yMzdfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjM4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4CisgICAgPgorc3RydWN0IHZlY3RvcjM5X2MKKyAgICA6IHZfaXRlbTwKKyAgICAgICAgICBpbnRlZ3JhbF9jPCBULEMzOCA+CisgICAgICAgICwgdmVjdG9yMzhfYzwgVCxDMCxDMSxDMixDMyxDNCxDNSxDNixDNyxDOCxDOSxDMTAsQzExLEMxMixDMTMsQzE0LEMxNSxDMTYsQzE3LEMxOCxDMTksQzIwLEMyMSxDMjIsQzIzLEMyNCxDMjUsQzI2LEMyNyxDMjgsQzI5LEMzMCxDMzEsQzMyLEMzMyxDMzQsQzM1LEMzNixDMzcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3IzOV9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQKKyAgICAsIFQgQzAsIFQgQzEsIFQgQzIsIFQgQzMsIFQgQzQsIFQgQzUsIFQgQzYsIFQgQzcsIFQgQzgsIFQgQzksIFQgQzEwCisgICAgLCBUIEMxMSwgVCBDMTIsIFQgQzEzLCBUIEMxNCwgVCBDMTUsIFQgQzE2LCBUIEMxNywgVCBDMTgsIFQgQzE5LCBUIEMyMAorICAgICwgVCBDMjEsIFQgQzIyLCBUIEMyMywgVCBDMjQsIFQgQzI1LCBUIEMyNiwgVCBDMjcsIFQgQzI4LCBUIEMyOSwgVCBDMzAKKyAgICAsIFQgQzMxLCBUIEMzMiwgVCBDMzMsIFQgQzM0LCBUIEMzNSwgVCBDMzYsIFQgQzM3LCBUIEMzOCwgVCBDMzkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDBfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzM5ID4KKyAgICAgICAgLCB2ZWN0b3IzOV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzggPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0MF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3I1MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjUwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjZhZTY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3I1MC5ocHAKQEAgLTAsMCArMSwyMTkgQEAKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisvLyBQcmVwcm9jZXNzZWQgdmVyc2lvbiBvZiAibmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MC5ocHAiIGhlYWRlcgorLy8gLS0gRE8gTk9UIG1vZGlmeSBieSBoYW5kIQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwCisgICAgPgorc3RydWN0IHZlY3RvcjQxCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQwCisgICAgICAgICwgdmVjdG9yNDA8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDEgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxCisgICAgPgorc3RydWN0IHZlY3RvcjQyCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQxCisgICAgICAgICwgdmVjdG9yNDE8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQyIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyCisgICAgPgorc3RydWN0IHZlY3RvcjQzCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQyCisgICAgICAgICwgdmVjdG9yNDI8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0MyB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzCisgICAgPgorc3RydWN0IHZlY3RvcjQ0CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQzCisgICAgICAgICwgdmVjdG9yNDM8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDQgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgPgorc3RydWN0IHZlY3RvcjQ1CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQ0CisgICAgICAgICwgdmVjdG9yNDQ8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ1IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgICwgdHlwZW5hbWUgVDQ1CisgICAgPgorc3RydWN0IHZlY3RvcjQ2CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQ1CisgICAgICAgICwgdmVjdG9yNDU8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0NiB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2CisgICAgPgorc3RydWN0IHZlY3RvcjQ3CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQ2CisgICAgICAgICwgdmVjdG9yNDY8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDcgdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0CisgICAgLCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDkKKyAgICAsIHR5cGVuYW1lIFQxMCwgdHlwZW5hbWUgVDExLCB0eXBlbmFtZSBUMTIsIHR5cGVuYW1lIFQxMywgdHlwZW5hbWUgVDE0CisgICAgLCB0eXBlbmFtZSBUMTUsIHR5cGVuYW1lIFQxNiwgdHlwZW5hbWUgVDE3LCB0eXBlbmFtZSBUMTgsIHR5cGVuYW1lIFQxOQorICAgICwgdHlwZW5hbWUgVDIwLCB0eXBlbmFtZSBUMjEsIHR5cGVuYW1lIFQyMiwgdHlwZW5hbWUgVDIzLCB0eXBlbmFtZSBUMjQKKyAgICAsIHR5cGVuYW1lIFQyNSwgdHlwZW5hbWUgVDI2LCB0eXBlbmFtZSBUMjcsIHR5cGVuYW1lIFQyOCwgdHlwZW5hbWUgVDI5CisgICAgLCB0eXBlbmFtZSBUMzAsIHR5cGVuYW1lIFQzMSwgdHlwZW5hbWUgVDMyLCB0eXBlbmFtZSBUMzMsIHR5cGVuYW1lIFQzNAorICAgICwgdHlwZW5hbWUgVDM1LCB0eXBlbmFtZSBUMzYsIHR5cGVuYW1lIFQzNywgdHlwZW5hbWUgVDM4LCB0eXBlbmFtZSBUMzkKKyAgICAsIHR5cGVuYW1lIFQ0MCwgdHlwZW5hbWUgVDQxLCB0eXBlbmFtZSBUNDIsIHR5cGVuYW1lIFQ0MywgdHlwZW5hbWUgVDQ0CisgICAgLCB0eXBlbmFtZSBUNDUsIHR5cGVuYW1lIFQ0NiwgdHlwZW5hbWUgVDQ3CisgICAgPgorc3RydWN0IHZlY3RvcjQ4CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQ3CisgICAgICAgICwgdmVjdG9yNDc8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ4IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNAorICAgICwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5CisgICAgLCB0eXBlbmFtZSBUMTAsIHR5cGVuYW1lIFQxMSwgdHlwZW5hbWUgVDEyLCB0eXBlbmFtZSBUMTMsIHR5cGVuYW1lIFQxNAorICAgICwgdHlwZW5hbWUgVDE1LCB0eXBlbmFtZSBUMTYsIHR5cGVuYW1lIFQxNywgdHlwZW5hbWUgVDE4LCB0eXBlbmFtZSBUMTkKKyAgICAsIHR5cGVuYW1lIFQyMCwgdHlwZW5hbWUgVDIxLCB0eXBlbmFtZSBUMjIsIHR5cGVuYW1lIFQyMywgdHlwZW5hbWUgVDI0CisgICAgLCB0eXBlbmFtZSBUMjUsIHR5cGVuYW1lIFQyNiwgdHlwZW5hbWUgVDI3LCB0eXBlbmFtZSBUMjgsIHR5cGVuYW1lIFQyOQorICAgICwgdHlwZW5hbWUgVDMwLCB0eXBlbmFtZSBUMzEsIHR5cGVuYW1lIFQzMiwgdHlwZW5hbWUgVDMzLCB0eXBlbmFtZSBUMzQKKyAgICAsIHR5cGVuYW1lIFQzNSwgdHlwZW5hbWUgVDM2LCB0eXBlbmFtZSBUMzcsIHR5cGVuYW1lIFQzOCwgdHlwZW5hbWUgVDM5CisgICAgLCB0eXBlbmFtZSBUNDAsIHR5cGVuYW1lIFQ0MSwgdHlwZW5hbWUgVDQyLCB0eXBlbmFtZSBUNDMsIHR5cGVuYW1lIFQ0NAorICAgICwgdHlwZW5hbWUgVDQ1LCB0eXBlbmFtZSBUNDYsIHR5cGVuYW1lIFQ0NywgdHlwZW5hbWUgVDQ4CisgICAgPgorc3RydWN0IHZlY3RvcjQ5CisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQ4CisgICAgICAgICwgdmVjdG9yNDg8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NixUNDcgPgorICAgICAgICA+Cit7CisgICAgdHlwZWRlZiB2ZWN0b3I0OSB0eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMCwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQKKyAgICAsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOQorICAgICwgdHlwZW5hbWUgVDEwLCB0eXBlbmFtZSBUMTEsIHR5cGVuYW1lIFQxMiwgdHlwZW5hbWUgVDEzLCB0eXBlbmFtZSBUMTQKKyAgICAsIHR5cGVuYW1lIFQxNSwgdHlwZW5hbWUgVDE2LCB0eXBlbmFtZSBUMTcsIHR5cGVuYW1lIFQxOCwgdHlwZW5hbWUgVDE5CisgICAgLCB0eXBlbmFtZSBUMjAsIHR5cGVuYW1lIFQyMSwgdHlwZW5hbWUgVDIyLCB0eXBlbmFtZSBUMjMsIHR5cGVuYW1lIFQyNAorICAgICwgdHlwZW5hbWUgVDI1LCB0eXBlbmFtZSBUMjYsIHR5cGVuYW1lIFQyNywgdHlwZW5hbWUgVDI4LCB0eXBlbmFtZSBUMjkKKyAgICAsIHR5cGVuYW1lIFQzMCwgdHlwZW5hbWUgVDMxLCB0eXBlbmFtZSBUMzIsIHR5cGVuYW1lIFQzMywgdHlwZW5hbWUgVDM0CisgICAgLCB0eXBlbmFtZSBUMzUsIHR5cGVuYW1lIFQzNiwgdHlwZW5hbWUgVDM3LCB0eXBlbmFtZSBUMzgsIHR5cGVuYW1lIFQzOQorICAgICwgdHlwZW5hbWUgVDQwLCB0eXBlbmFtZSBUNDEsIHR5cGVuYW1lIFQ0MiwgdHlwZW5hbWUgVDQzLCB0eXBlbmFtZSBUNDQKKyAgICAsIHR5cGVuYW1lIFQ0NSwgdHlwZW5hbWUgVDQ2LCB0eXBlbmFtZSBUNDcsIHR5cGVuYW1lIFQ0OCwgdHlwZW5hbWUgVDQ5CisgICAgPgorc3RydWN0IHZlY3RvcjUwCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgVDQ5CisgICAgICAgICwgdmVjdG9yNDk8IFQwLFQxLFQyLFQzLFQ0LFQ1LFQ2LFQ3LFQ4LFQ5LFQxMCxUMTEsVDEyLFQxMyxUMTQsVDE1LFQxNixUMTcsVDE4LFQxOSxUMjAsVDIxLFQyMixUMjMsVDI0LFQyNSxUMjYsVDI3LFQyOCxUMjksVDMwLFQzMSxUMzIsVDMzLFQzNCxUMzUsVDM2LFQzNyxUMzgsVDM5LFQ0MCxUNDEsVDQyLFQ0MyxUNDQsVDQ1LFQ0NixUNDcsVDQ4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNTAgdHlwZTsKK307CisKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wcmVwcm9jZXNzZWQvdHlwZW9mX2Jhc2VkL3ZlY3RvcjUwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3I1MF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjljNmExCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHJlcHJvY2Vzc2VkL3R5cGVvZl9iYXNlZC92ZWN0b3I1MF9jLmhwcApAQCAtMCwwICsxLDE5MyBAQAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKy8vIFByZXByb2Nlc3NlZCB2ZXJzaW9uIG9mICJuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjUwX2MuaHBwIiBoZWFkZXIKKy8vIC0tIERPIE5PVCBtb2RpZnkgYnkgaGFuZCEKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDFfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQwID4KKyAgICAgICAgLCB2ZWN0b3I0MF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDFfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDJfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQxID4KKyAgICAgICAgLCB2ZWN0b3I0MV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5LEM0MCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQyX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MgorICAgID4KK3N0cnVjdCB2ZWN0b3I0M19jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDNDIgPgorICAgICAgICAsIHZlY3RvcjQyX2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQzX2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDRfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQzID4KKyAgICAgICAgLCB2ZWN0b3I0M19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5LEM0MCxDNDEsQzQyID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDRfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEsIFQgQzQyLCBUIEM0MywgVCBDNDQKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDVfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQ0ID4KKyAgICAgICAgLCB2ZWN0b3I0NF9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5LEM0MCxDNDEsQzQyLEM0MyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ1X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NQorICAgID4KK3N0cnVjdCB2ZWN0b3I0Nl9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDNDUgPgorICAgICAgICAsIHZlY3RvcjQ1X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzLEM0NCA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ2X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NSwgVCBDNDYKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDdfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQ2ID4KKyAgICAgICAgLCB2ZWN0b3I0Nl9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5LEM0MCxDNDEsQzQyLEM0MyxDNDQsQzQ1ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNDdfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKwordGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUCisgICAgLCBUIEMwLCBUIEMxLCBUIEMyLCBUIEMzLCBUIEM0LCBUIEM1LCBUIEM2LCBUIEM3LCBUIEM4LCBUIEM5LCBUIEMxMAorICAgICwgVCBDMTEsIFQgQzEyLCBUIEMxMywgVCBDMTQsIFQgQzE1LCBUIEMxNiwgVCBDMTcsIFQgQzE4LCBUIEMxOSwgVCBDMjAKKyAgICAsIFQgQzIxLCBUIEMyMiwgVCBDMjMsIFQgQzI0LCBUIEMyNSwgVCBDMjYsIFQgQzI3LCBUIEMyOCwgVCBDMjksIFQgQzMwCisgICAgLCBUIEMzMSwgVCBDMzIsIFQgQzMzLCBUIEMzNCwgVCBDMzUsIFQgQzM2LCBUIEMzNywgVCBDMzgsIFQgQzM5LCBUIEM0MAorICAgICwgVCBDNDEsIFQgQzQyLCBUIEM0MywgVCBDNDQsIFQgQzQ1LCBUIEM0NiwgVCBDNDcKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNDhfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQ3ID4KKyAgICAgICAgLCB2ZWN0b3I0N19jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5LEM0MCxDNDEsQzQyLEM0MyxDNDQsQzQ1LEM0NiA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ4X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NSwgVCBDNDYsIFQgQzQ3LCBUIEM0OAorICAgID4KK3N0cnVjdCB2ZWN0b3I0OV9jCisgICAgOiB2X2l0ZW08CisgICAgICAgICAgaW50ZWdyYWxfYzwgVCxDNDggPgorICAgICAgICAsIHZlY3RvcjQ4X2M8IFQsQzAsQzEsQzIsQzMsQzQsQzUsQzYsQzcsQzgsQzksQzEwLEMxMSxDMTIsQzEzLEMxNCxDMTUsQzE2LEMxNyxDMTgsQzE5LEMyMCxDMjEsQzIyLEMyMyxDMjQsQzI1LEMyNixDMjcsQzI4LEMyOSxDMzAsQzMxLEMzMixDMzMsQzM0LEMzNSxDMzYsQzM3LEMzOCxDMzksQzQwLEM0MSxDNDIsQzQzLEM0NCxDNDUsQzQ2LEM0NyA+CisgICAgICAgID4KK3sKKyAgICB0eXBlZGVmIHZlY3RvcjQ5X2MgdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKK307CisKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgVAorICAgICwgVCBDMCwgVCBDMSwgVCBDMiwgVCBDMywgVCBDNCwgVCBDNSwgVCBDNiwgVCBDNywgVCBDOCwgVCBDOSwgVCBDMTAKKyAgICAsIFQgQzExLCBUIEMxMiwgVCBDMTMsIFQgQzE0LCBUIEMxNSwgVCBDMTYsIFQgQzE3LCBUIEMxOCwgVCBDMTksIFQgQzIwCisgICAgLCBUIEMyMSwgVCBDMjIsIFQgQzIzLCBUIEMyNCwgVCBDMjUsIFQgQzI2LCBUIEMyNywgVCBDMjgsIFQgQzI5LCBUIEMzMAorICAgICwgVCBDMzEsIFQgQzMyLCBUIEMzMywgVCBDMzQsIFQgQzM1LCBUIEMzNiwgVCBDMzcsIFQgQzM4LCBUIEMzOSwgVCBDNDAKKyAgICAsIFQgQzQxLCBUIEM0MiwgVCBDNDMsIFQgQzQ0LCBUIEM0NSwgVCBDNDYsIFQgQzQ3LCBUIEM0OCwgVCBDNDkKKyAgICA+CitzdHJ1Y3QgdmVjdG9yNTBfYworICAgIDogdl9pdGVtPAorICAgICAgICAgIGludGVncmFsX2M8IFQsQzQ5ID4KKyAgICAgICAgLCB2ZWN0b3I0OV9jPCBULEMwLEMxLEMyLEMzLEM0LEM1LEM2LEM3LEM4LEM5LEMxMCxDMTEsQzEyLEMxMyxDMTQsQzE1LEMxNixDMTcsQzE4LEMxOSxDMjAsQzIxLEMyMixDMjMsQzI0LEMyNSxDMjYsQzI3LEMyOCxDMjksQzMwLEMzMSxDMzIsQzMzLEMzNCxDMzUsQzM2LEMzNyxDMzgsQzM5LEM0MCxDNDEsQzQyLEM0MyxDNDQsQzQ1LEM0NixDNDcsQzQ4ID4KKyAgICAgICAgPgoreworICAgIHR5cGVkZWYgdmVjdG9yNTBfYyB0eXBlOworICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworfTsKKworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3B1c2hfYmFjay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wdXNoX2JhY2suaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNzIyYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wdXNoX2JhY2suaHBwCkBAIC0wLDAgKzEsNDAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX0FVWF9QVVNIX0JBQ0tfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfQVVYX1BVU0hfQkFDS19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHB1c2hfYmFjay5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2JhY2tfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTKQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZW0uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy90YWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8Pgorc3RydWN0IHB1c2hfYmFja19pbXBsPCBhdXg6OnZlY3Rvcl90YWcgPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBWZWN0b3IsIHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdl9pdGVtPFQsVmVjdG9yLDA+IHR5cGU7CisgICAgfTsKK307CisKK319CisKKyNlbmRpZiAKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfQVVYX1BVU0hfQkFDS19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3B1c2hfZnJvbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHVzaF9mcm9udC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIwMDE3NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3B1c2hfZnJvbnQuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX0FVWF9QVVNIX0ZST05UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX0FVWF9QVVNIX0ZST05UX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcHVzaF9mcm9udC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wdXNoX2Zyb250X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUykKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9pdGVtLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBwdXNoX2Zyb250X2ltcGw8IGF1eDo6dmVjdG9yX3RhZyA+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFZlY3RvciwgdHlwZW5hbWUgVCA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB2X2l0ZW08VCxWZWN0b3IsMT4gdHlwZTsKKyAgICB9OworfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUworCisjZW5kaWYgLy8gQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfUFVTSF9GUk9OVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3NpemUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vc2l6ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM5NzQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3NpemUuaHBwCkBAIC0wLDAgKzEsNDkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX0FVWF9TSVpFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX0FVWF9TSVpFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogc2l6ZS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9zaXplX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL08xX3NpemUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy90YWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90eXBlb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfVFlQRU9GX0JBU0VEX1NFUVVFTkNFUykKKwordGVtcGxhdGU8Pgorc3RydWN0IHNpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KKyAgICA6IE8xX3NpemVfaW1wbDwgYXV4Ojp2ZWN0b3JfdGFnID4KK3sKK307CisKKyNlbHNlCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCit0ZW1wbGF0ZTwgbG9uZyBOID4KK3N0cnVjdCBzaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxOPiA+CisgICAgOiBPMV9zaXplX2ltcGw8IGF1eDo6dmVjdG9yX3RhZzxOPiA+Cit7Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0FVWF9TSVpFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU3NjQ1NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHAKQEAgLTAsMCArMSwzMiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfQVVYX1RBR19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfVEFHX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdGFnLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCitzdHJ1Y3Qgdl9pdGVyX3RhZzsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19UWVBFT0ZfQkFTRURfU0VRVUVOQ0VTKQorc3RydWN0IHZlY3Rvcl90YWc7CisjZWxzZQordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIE4pID4gc3RydWN0IHZlY3Rvcl90YWc7CisjZW5kaWYKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX0FVWF9UQUdfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy92ZWN0b3IwLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3ZlY3RvcjAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NDA1OGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy92ZWN0b3IwLmhwcApAQCAtMCwwICsxLDUyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfVkVDVE9SMF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9BVVhfVkVDVE9SMF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHZlY3RvcjAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbG9uZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy90eXBlX3dyYXBwZXIuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdGFnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdHlwZW9mLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBEdW1teSA9IG5hID4gc3RydWN0IHZlY3RvcjA7CisKK3RlbXBsYXRlPD4gc3RydWN0IHZlY3RvcjA8bmE+Cit7CisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX1RZUEVPRl9CQVNFRF9TRVFVRU5DRVMpCisgICAgdHlwZWRlZiBhdXg6OnZlY3Rvcl90YWcgdGFnOworICAgIHR5cGVkZWYgdmVjdG9yMCAgICAgICAgIHR5cGU7CisgICAgdHlwZWRlZiBsb25nXzwzMjc2OD4gICAgbG93ZXJfYm91bmRfOworICAgIHR5cGVkZWYgbG93ZXJfYm91bmRfICAgIHVwcGVyX2JvdW5kXzsKKyAgICB0eXBlZGVmIGxvbmdfPDA+ICAgICAgICBzaXplOworCisgICAgc3RhdGljIGF1eDo6dHlwZV93cmFwcGVyPHZvaWRfPiBpdGVtXyguLi4pOworI2Vsc2UKKyAgICB0eXBlZGVmIGF1eDo6dmVjdG9yX3RhZzwwPiB0YWc7CisgICAgdHlwZWRlZiB2ZWN0b3IwIHR5cGU7CisgICAgdHlwZWRlZiB2b2lkXyBpdGVtMDsKKyAgICAKKyAgICB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IwPD4sMD4gYmVnaW47CisgICAgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMDw+LDA+IGVuZDsKKyNlbmRpZgorfTsKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfQVVYX1ZFQ1RPUjBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIzZjVkMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IwLmhwcApAQCAtMCwwICsxLDM0IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjBfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB2ZWN0b3IwLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vZnJvbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9wdXNoX2Zyb250LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2Zyb250LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcHVzaF9iYWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vcG9wX2JhY2suaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9iYWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vY2xlYXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvYXV4Xy9PMV9zaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vc2l6ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2VtcHR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaXRlbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vdmVjdG9yMC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2JlZ2luX2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL3RhZy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMF9jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMjg0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMF9jLmhwcApAQCAtMCwwICsxLDMxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IwX0NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yMF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaW50ZWdyYWxfYy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB2ZWN0b3IwX2MKKyAgICA6IHZlY3RvcjA8PgoreworICAgIHR5cGVkZWYgdmVjdG9yMF9jIHR5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7Cit9OworCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IwX0NfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjEwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWM5MzdhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjEwLmhwcApAQCAtMCwwICsxLDQ1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IxMF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IxMF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHZlY3RvcjEwLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiB2ZWN0b3IxMC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMCwgMTAsIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vbnVtYmVyZWQuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMTBfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTBfYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTBfYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhlZmI2MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMF9jLmhwcApAQCAtMCwwICsxLDQ2IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IxMF9DX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjEwX0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB2ZWN0b3IxMF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjBfYy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMC5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy91c2VfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUkVQUk9DRVNTRURfSEVBREVSIHZlY3RvcjEwX2MuaHBwCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL2luY2x1ZGVfcHJlcHJvY2Vzc2VkLmhwcD4KKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy90eXBlb2YuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCisjICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsKDEsIDEwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkX2MuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMTBfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlNTQyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwCkBAIC0wLDAgKzEsNDUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjIwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjIwX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yMjAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMTAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiB2ZWN0b3IyMC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMTEsIDIwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjIwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjIwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjIwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlOGQ1OTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjBfYy5ocHAKQEAgLTAsMCArMSw0NiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMjBfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IyMF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yMjBfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IxMF9jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjIwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgdmVjdG9yMjBfYy5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMTEsIDIwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkX2MuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMjBfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OTgxNTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwCkBAIC0wLDAgKzEsNDUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjMwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjMwX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yMzAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMjAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiB2ZWN0b3IzMC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMjEsIDMwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjMwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjMwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjMwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYzkzMDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzBfYy5ocHAKQEAgLTAsMCArMSw0NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMzBfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1IzMF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yMzBfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IyMF9jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjMwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgdmVjdG9yMzBfYy5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKworIyAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCgyMSwgMzAsIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vbnVtYmVyZWRfYy5ocHA+KSkKKyMgICBpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCit9fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19VU0VfUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SMzBfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5MmQwYTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDAuaHBwCkBAIC0wLDAgKzEsNDUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjQwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjQwX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yNDAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yMzAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiB2ZWN0b3I0MC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMzEsIDQwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjQwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjQwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjQwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwOTY5ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDBfYy5ocHAKQEAgLTAsMCArMSw0NiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SNDBfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1I0MF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yNDBfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IzMF9jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjQwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgdmVjdG9yNDBfYy5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoMzEsIDQwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkX2MuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SNDBfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I1MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNTAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5OGU5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNTAuaHBwCkBAIC0wLDAgKzEsNDUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjUwX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjUwX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yNTAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNDAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9jb25maWcvdXNlX3ByZXByb2Nlc3NlZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFJFUFJPQ0VTU0VEX0hFQURFUiB2ZWN0b3I1MC5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoNDEsIDUwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkLmhwcD4pKQorIyAgIGluY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKK319CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX1BSRVBST0NFU1NFRF9IRUFERVJTCisKKyNlbmRpZiAvLyBCT09TVF9NUExfVkVDVE9SX1ZFQ1RPUjUwX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjUwX2MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjUwX2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMDU3YmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92ZWN0b3IvdmVjdG9yNTBfYy5ocHAKQEAgLTAsMCArMSw0NiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SNTBfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZFQ1RPUl9WRUNUT1I1MF9DX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdmVjdG9yNTBfYy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3I0MF9jLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjUwLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3VzZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUykgXAorICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BSRVBST0NFU1NFRF9IRUFERVIgdmVjdG9yNTBfYy5ocHAKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL2F1eF8vaW5jbHVkZV9wcmVwcm9jZXNzZWQuaHBwPgorCisjZWxzZQorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R5cGVvZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywoNDEsIDUwLCA8bmRuYm9vc3QvbXBsL3ZlY3Rvci9hdXhfL251bWJlcmVkX2MuaHBwPikpCisjICAgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9DRkdfTk9fUFJFUFJPQ0VTU0VEX0hFQURFUlMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WRUNUT1JfVkVDVE9SNTBfQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZvaWQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdm9pZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVjN2FlZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbXBsL3ZvaWQuaHBwCkBAIC0wLDAgKzEsNzYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVk9JRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZPSURfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiB2b2lkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZvaWRfZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgorCisvLyAgW0pERyBGZWItNC0yMDAzXSBtYWRlIHZvaWRfIGEgY29tcGxldGUgdHlwZSB0byBhbGxvdyBpdCB0byBiZQorLy8gIGluc3RhbnRpYXRlZCBzbyB0aGF0IGl0IGNhbiBiZSBwYXNzZWQgaW4gYXMgYW4gb2JqZWN0IHRoYXQgY2FuIGJlCisvLyAgdXNlZCB0byBzZWxlY3QgYW4gb3ZlcmxvYWRlZCBmdW5jdGlvbi4gUG9zc2libGUgdXNlIGluY2x1ZGVzIHNpZ25hbGluZworLy8gIGEgemVybyBhcml0eSBmdW5jdG9yIGV2YWx1YXRpb24gY2FsbC4KK3N0cnVjdCB2b2lkXyB7IHR5cGVkZWYgdm9pZF8gdHlwZTsgfTsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc192b2lkXworICAgIDogZmFsc2VfCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgdXNpbmcgZmFsc2VfOjp2YWx1ZTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX3ZvaWRfPHZvaWRfPgorICAgIDogdHJ1ZV8KK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICB1c2luZyB0cnVlXzo6dmFsdWU7CisjZW5kaWYKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19ub3Rfdm9pZF8KKyAgICA6IHRydWVfCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgdXNpbmcgdHJ1ZV86OnZhbHVlOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgaXNfbm90X3ZvaWRfPHZvaWRfPgorICAgIDogZmFsc2VfCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgdXNpbmcgZmFsc2VfOjp2YWx1ZTsKKyNlbmRpZgorfTsKKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDEsIGlzX3ZvaWRfKQorQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDEsIGlzX25vdF92b2lkXykKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9WT0lEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9tcGwvdm9pZF9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9tcGwvdm9pZF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNDkzZDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L21wbC92b2lkX2Z3ZC5ocHAKQEAgLTAsMCArMSwyNiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9WT0lEX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1ZPSURfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdm9pZF9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKworc3RydWN0IHZvaWRfOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9ERUNMKHZvaWRfKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX1ZPSURfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9uZXh0X3ByaW9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbmV4dF9wcmlvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUwMGZmMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbmV4dF9wcmlvci5ocHAKQEAgLTAsMCArMSw1MSBAQAorLy8gIEJvb3N0IG5leHRfcHJpb3IuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zIGFuZCBEYW5pZWwgV2Fsa2VyIDE5OTktMjAwMy4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyAgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5IGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAgUmV2aXNpb24gSGlzdG9yeQorLy8gIDEzIERlYyAyMDAzICBBZGRlZCBuZXh0KHgsIG4pIGFuZCBwcmlvcih4LCBuKSAoRGFuaWVsIFdhbGtlcikKKworI2lmbmRlZiBCT09TVF9ORVhUX1BSSU9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9ORVhUX1BSSU9SX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8aXRlcmF0b3I+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKy8vICBIZWxwZXIgZnVuY3Rpb25zIGZvciBjbGFzc2VzIGxpa2UgYmlkaXJlY3Rpb25hbCBpdGVyYXRvcnMgbm90IHN1cHBvcnRpbmcKKy8vICBvcGVyYXRvcisgYW5kIG9wZXJhdG9yLQorLy8KKy8vICBVc2FnZToKKy8vICAgIGNvbnN0IHN0ZDo6bGlzdDxUPjo6aXRlcmF0b3IgcCA9IGdldF9zb21lX2l0ZXJhdG9yKCk7CisvLyAgICBjb25zdCBzdGQ6Omxpc3Q8VD46Oml0ZXJhdG9yIHByZXYgPSBuZG5ib29zdDo6cHJpb3IocCk7CisvLyAgICBjb25zdCBzdGQ6Omxpc3Q8VD46Oml0ZXJhdG9yIG5leHQgPSBuZG5ib29zdDo6bmV4dChwcmV2LCAyKTsKKworLy8gIENvbnRyaWJ1dGVkIGJ5IERhdmUgQWJyYWhhbXMKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgVCBuZXh0KFQgeCkgeyByZXR1cm4gKyt4OyB9CisKK3RlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBEaXN0YW5jZT4KK2lubGluZSBUIG5leHQoVCB4LCBEaXN0YW5jZSBuKQoreworICAgIHN0ZDo6YWR2YW5jZSh4LCBuKTsKKyAgICByZXR1cm4geDsKK30KKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgVCBwcmlvcihUIHgpIHsgcmV0dXJuIC0teDsgfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgRGlzdGFuY2U+CitpbmxpbmUgVCBwcmlvcihUIHgsIERpc3RhbmNlIG4pCit7CisgICAgc3RkOjphZHZhbmNlKHgsIC1uKTsKKyAgICByZXR1cm4geDsKK30KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyBCT09TVF9ORVhUX1BSSU9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9ub25fdHlwZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L25vbl90eXBlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBkNmYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9ub25fdHlwZS5ocHAKQEAgLTAsMCArMSwyNyBAQAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgICAgICAgICAoQykgQ29weXJpZ2h0IEdlbm5hcm8gUHJvdGEgMjAwMy4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfTk9OX1RZUEVfSFBQX0dQXzIwMDMwNDE3CisjZGVmaW5lIEJPT1NUX05PTl9UWVBFX0hQUF9HUF8yMDAzMDQxNworCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyAgLy8gSnVzdCBhIHNpbXBsZSAiZW52ZWxvcGUiIGZvciBub24tdHlwZSB0ZW1wbGF0ZSBwYXJhbWV0ZXJzLiBVc2VmdWwKKyAgLy8gdG8gd29yayBhcm91bmQgc29tZSBNU1ZDIGRlZmljaWVuY2llcy4KKworIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBUIG4+Cisgc3RydWN0IG5vbl90eXBlIHsgfTsKKworCit9CisKKworI2VuZGlmIC8vIGluY2x1ZGUgZ3VhcmQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvbm9uY29weWFibGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9ub25jb3B5YWJsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM0YmVlYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvbm9uY29weWFibGUuaHBwCkBAIC0wLDAgKzEsNDggQEAKKy8vICBCb29zdCBub25jb3B5YWJsZS5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMTk5OS0yMDAzLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QKKy8vICBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkgZm9yIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfTk9OQ09QWUFCTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX05PTkNPUFlBQkxFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gIFByaXZhdGUgY29weSBjb25zdHJ1Y3RvciBhbmQgY29weSBhc3NpZ25tZW50IGVuc3VyZSBjbGFzc2VzIGRlcml2ZWQgZnJvbQorLy8gIGNsYXNzIG5vbmNvcHlhYmxlIGNhbm5vdCBiZSBjb3BpZWQuCisKKy8vICBDb250cmlidXRlZCBieSBEYXZlIEFicmFoYW1zCisKK25hbWVzcGFjZSBub25jb3B5YWJsZV8gIC8vIHByb3RlY3Rpb24gZnJvbSB1bmludGVuZGVkIEFETAoreworICBjbGFzcyBub25jb3B5YWJsZQorICB7CisgICBwcm90ZWN0ZWQ6CisjaWZuZGVmIEJPT1NUX05PX0RFRkFVTFRFRF9GVU5DVElPTlMKKyAgICBCT09TVF9DT05TVEVYUFIgbm9uY29weWFibGUoKSA9IGRlZmF1bHQ7CisgICAgfm5vbmNvcHlhYmxlKCkgPSBkZWZhdWx0OworI2Vsc2UKKyAgICBub25jb3B5YWJsZSgpIHt9CisgICAgICB+bm9uY29weWFibGUoKSB7fQorI2VuZGlmCisjaWZuZGVmIEJPT1NUX05PX0RFTEVURURfRlVOQ1RJT05TCisgICAgICAgIG5vbmNvcHlhYmxlKCBjb25zdCBub25jb3B5YWJsZSYgKSA9IGRlbGV0ZTsKKyAgICAgICAgbm9uY29weWFibGUmIG9wZXJhdG9yPSggY29uc3Qgbm9uY29weWFibGUmICkgPSBkZWxldGU7CisjZWxzZQorICAgIHByaXZhdGU6ICAvLyBlbXBoYXNpemUgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGFyZSBwcml2YXRlCisgICAgICBub25jb3B5YWJsZSggY29uc3Qgbm9uY29weWFibGUmICk7CisgICAgICBub25jb3B5YWJsZSYgb3BlcmF0b3I9KCBjb25zdCBub25jb3B5YWJsZSYgKTsKKyNlbmRpZgorICB9OworfQorCit0eXBlZGVmIG5vbmNvcHlhYmxlXzo6bm9uY29weWFibGUgbm9uY29weWFibGU7CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfTk9OQ09QWUFCTEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L25vbmUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9ub25lLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGMzMmM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9ub25lLmhwcApAQCAtMCwwICsxLDI4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDMsIEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9vcHRpb25hbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLyBZb3UgYXJlIHdlbGNvbWUgdG8gY29udGFjdCB0aGUgYXV0aG9yIGF0OgorLy8gIGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLworI2lmbmRlZiBCT09TVF9OT05FXzE3U0VQMjAwM19IUFAKKyNkZWZpbmUgQk9PU1RfTk9ORV8xN1NFUDIwMDNfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9ub25lX3QuaHBwIgorCisvLyBOT1RFOiBCb3JsYW5kIHVzZXJzIGhhdmUgdG8gaW5jbHVkZSB0aGlzIGhlYWRlciBvdXRzaWRlIGFueSBwcmVjb21waWxlZCBoZWFkZXJzCisvLyAoYmNjPD01LjY0IGNhbm5vdCBpbmNsdWRlIGluc3RhbmNlIGRhdGEgaW4gYSBwcmVjb21waWxlZCBoZWFkZXIpCisvLyAgLS0gKiBUbyBiZSB2ZXJpZmllZCwgbm93IHRoYXQgdGhlcmUncyBubyB1bm5hbWVkIG5hbWVzcGFjZQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitub25lX3QgY29uc3Qgbm9uZSA9IChzdGF0aWNfY2FzdDxub25lX3Q+KDApKSA7CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L25vbmVfdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L25vbmVfdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFmMzAwNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvbm9uZV90LmhwcApAQCAtMCwwICsxLDI0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDMsIEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsLgorLy8KKy8vIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL29wdGlvbmFsIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vIFlvdSBhcmUgd2VsY29tZSB0byBjb250YWN0IHRoZSBhdXRob3IgYXQ6CisvLyAgZmVybmFuZG9fY2FjY2lvbGFAaG90bWFpbC5jb20KKy8vCisjaWZuZGVmIEJPT1NUX05PTkVfVF8xN1NFUDIwMDNfSFBQCisjZGVmaW5lIEJPT1NUX05PTkVfVF8xN1NFUDIwMDNfSFBQCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeyBzdHJ1Y3Qgbm9uZV9oZWxwZXJ7fTsgfQorCit0eXBlZGVmIGludCBkZXRhaWw6Om5vbmVfaGVscGVyOjoqbm9uZV90IDsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2JvdW5kcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9ib3VuZHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTJhYjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9ib3VuZHMuaHBwCkBAIC0wLDAgKzEsMjQgQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0JPVU5EU18xMk5PVjIwMDJfSFBQCisjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9CT1VORFNfMTJOT1YyMDAyX0hQUAorCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9ib3VuZHMuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbnVtZXJpYyAKK3sKKwordGVtcGxhdGU8Y2xhc3MgTj4KK3N0cnVjdCBib3VuZHMgOiBib3VuZHNkZXRhaWw6OmdldF9pbXBsPE4+Ojp0eXBlCit7fSA7CisKK30gfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6Om51bWVyaWMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jYXN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2Nhc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNTQyZWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jYXN0LmhwcApAQCAtMCwwICsxLDYxIEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKy8vCisvLyAgUmV2aXNpb24gSGlzdG9yeQorLy8KKy8vICAgIDE5IE5vdiAyMDAxIFN5bnRhdGljIGNoYW5nZXMgYXMgc3VnZ2VzdGVkIGJ5IERhcmluIEFkbGVyIChGZXJuYW5kbyBDYWNjaW9sYSkKKy8vICAgIDA4IE5vdiAyMDAxIEZpeGVzIHRvIGFjY29tbW9kYXRlIE1TVkMgKEZlcm5hbmRvIENhY2Npb2xhKQorLy8gICAgMDQgTm92IDIwMDEgRml4ZXMgdG8gYWNjb21tb2RhdGUgZ2NjMi45MiAoRmVybmFuZG8gQ2FjY2lvbGEpCisvLyAgICAzMCBPY3QgMjAwMSBTb21lIGZpeGVzIHN1Z2dlc3RlZCBieSBEYXJ5bGUgV2Fsa2VyIChGZXJuYW5kbyBDYWNjaW9sYSkKKy8vICAgIDI1IE9jdCAyMDAxIEluaXRpYWwgYm9vc3RpZmljYXRpb24gKEZlcm5hbmRvIENhY2Npb2xhKQorLy8gICAgMjMgSmFuIDIwMDQgSW5pdGFsIGFkZCB0byBjdnMgKHBvc3QgcmV2aWV3KXMKKy8vICAgIDIyIEp1biAyMDExIEFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpYWxpemluZyBjYXN0IHBvbGljaWVzIHZpYSBudW1lcmljX2Nhc3RfdHJhaXRzIChCcmFuZG9uIEtvaG4pLgorLy8KKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NBU1RfMjVPQ1QyMDAxX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fQ0FTVF8yNU9DVDIwMDFfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU4MikpCisKKyMgIGluY2x1ZGU8bmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9vbGRfbnVtZXJpY19jYXN0LmhwcD4KKworI2Vsc2UKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJ0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPiAKKyAgICBpbmxpbmUgVGFyZ2V0IG51bWVyaWNfY2FzdCggU291cmNlIGFyZyApCisgICAgeworICAgICAgICB0eXBlZGVmIG51bWVyaWM6OmNvbnZlcnNpb25fdHJhaXRzPFRhcmdldCwgU291cmNlPiAgIGNvbnZfdHJhaXRzOworICAgICAgICB0eXBlZGVmIG51bWVyaWM6Om51bWVyaWNfY2FzdF90cmFpdHM8VGFyZ2V0LCBTb3VyY2U+IGNhc3RfdHJhaXRzOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZXJ0ZXIKKyAgICAgICAgICAgIDwKKyAgICAgICAgICAgICAgICBUYXJnZXQsCisgICAgICAgICAgICAgICAgU291cmNlLCAKKyAgICAgICAgICAgICAgICBjb252X3RyYWl0cywKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBjYXN0X3RyYWl0czo6b3ZlcmZsb3dfcG9saWN5LCAKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBjYXN0X3RyYWl0czo6cm91bmRpbmdfcG9saWN5LCAKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6bnVtZXJpYzo6cmF3X2NvbnZlcnRlcjwgY29udl90cmFpdHMgPiwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBjYXN0X3RyYWl0czo6cmFuZ2VfY2hlY2tpbmdfcG9saWN5CisgICAgICAgICAgICA+IGNvbnZlcnRlcjsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRlcjo6Y29udmVydChhcmcpOworICAgIH0KKyAgICAKKyAgICB1c2luZyBudW1lcmljOjpiYWRfbnVtZXJpY19jYXN0OworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVyc2lvbl90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVyc2lvbl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2OGFjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJzaW9uX3RyYWl0cy5ocHAKQEAgLTAsMCArMSwzOSBAQAorLy8gIChjKSBDb3B5cmlnaHQgRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwgMjAwMC0yMDA0CisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vICBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBsaWJyYXJ5IGhvbWUgcGFnZSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL251bWVyaWMvY29udmVyc2lvbgorLy8KKy8vIENvbnRhY3QgdGhlIGF1dGhvciBhdDogZmVybmFuZG9fY2FjY2lvbGFAaG90bWFpbC5jb20KKy8vIAorI2lmbmRlZiBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fQ09OVkVSU0lPTl9UUkFJVFNfRkxDXzEyTk9WMjAwMl9IUFAKKyNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NPTlZFUlNJT05fVFJBSVRTX0ZMQ18xMk5PVjIwMDJfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2NvbnZlcnNpb25fdHJhaXRzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvY29uZmlnLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMKK3sKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUz4KK3N0cnVjdCBjb252ZXJzaW9uX3RyYWl0cyAKKyAgICA6IGNvbnZkZXRhaWw6OmdldF9jb252ZXJzaW9uX3RyYWl0czxULFM+Ojp0eXBlIAoreworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGNvbnZkZXRhaWw6OmdldF9jb252ZXJzaW9uX3RyYWl0czxULFM+Ojp0eXBlIGJhc2VfOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzZV86OnRhcmdldF90eXBlICAgICB0YXJnZXRfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhc2VfOjpzb3VyY2VfdHlwZSAgICAgc291cmNlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNlXzo6cmVzdWx0X3R5cGUgICAgIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzZV86OmFyZ3VtZW50X3R5cGUgICBhcmd1bWVudF90eXBlOworI2VuZGlmCit9IDsKKworfSB9IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6bnVtZXJpYworCisjZW5kaWYKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2NvbnZlcnRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJ0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlNDA2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJ0ZXIuaHBwCkBAIC0wLDAgKzEsNjggQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NPTlZFUlRFUl9GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fQ09OVkVSVEVSX0ZMQ18xMk5PVjIwMDJfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVyc2lvbl90cmFpdHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJ0ZXJfcG9saWNpZXMuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9jb252ZXJ0ZXIuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbnVtZXJpYyAKK3sKKwordGVtcGxhdGU8Y2xhc3MgVCwKKyAgICAgICAgIGNsYXNzIFMsCisgICAgICAgICBjbGFzcyBUcmFpdHMgICAgICAgICAgID0gY29udmVyc2lvbl90cmFpdHM8VCxTPiwKKyAgICAgICAgIGNsYXNzIE92ZXJmbG93SGFuZGxlciAgPSBkZWZfb3ZlcmZsb3dfaGFuZGxlciwKKyAgICAgICAgIGNsYXNzIEZsb2F0MkludFJvdW5kZXIgPSBUcnVuYzwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBUcmFpdHM6OnNvdXJjZV90eXBlPiAgLAorICAgICAgICAgY2xhc3MgUmF3Q29udmVydGVyICAgICA9IHJhd19jb252ZXJ0ZXI8VHJhaXRzPiwKKyAgICAgICAgIGNsYXNzIFVzZXJSYW5nZUNoZWNrZXIgPSBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlcgorICAgICAgICA+CitzdHJ1Y3QgY29udmVydGVyIDogY29udmRldGFpbDo6Z2V0X2NvbnZlcnRlcl9pbXBsPFRyYWl0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcmZsb3dIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdDJJbnRSb3VuZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJSYW5nZUNoZWNrZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCit7CisgIHR5cGVkZWYgVHJhaXRzIHRyYWl0cyA7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpyZXN1bHRfdHlwZSAgIHJlc3VsdF90eXBlICAgOworCisgIHJlc3VsdF90eXBlIG9wZXJhdG9yKCkgKCBhcmd1bWVudF90eXBlIHMgKSBjb25zdCB7IHJldHVybiB0aGlzLT5jb252ZXJ0KHMpIDsgfQorfSA7CisKKworCit0ZW1wbGF0ZTxjbGFzcyBTLAorICAgICAgICAgY2xhc3MgT3ZlcmZsb3dIYW5kbGVyICA9IGRlZl9vdmVyZmxvd19oYW5kbGVyLAorICAgICAgICAgY2xhc3MgRmxvYXQySW50Um91bmRlciA9IFRydW5jPFM+ICAsCisgICAgICAgICBjbGFzcyBVc2VyUmFuZ2VDaGVja2VyID0gVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIKKyAgICAgICAgPgorc3RydWN0IG1ha2VfY29udmVydGVyX2Zyb20KK3sKKyAgdGVtcGxhdGU8Y2xhc3MgVCwKKyAgICAgICAgICAgY2xhc3MgVHJhaXRzICAgICAgID0gY29udmVyc2lvbl90cmFpdHM8VCxTPiwKKyAgICAgICAgICAgY2xhc3MgUmF3Q29udmVydGVyID0gcmF3X2NvbnZlcnRlcjxUcmFpdHM+CisgICAgICAgICAgPiAKKyAgc3RydWN0IHRvCisgIHsKKyAgICB0eXBlZGVmIGNvbnZlcnRlcjxULFMsVHJhaXRzLE92ZXJmbG93SGFuZGxlcixGbG9hdDJJbnRSb3VuZGVyLFJhd0NvbnZlcnRlcixVc2VyUmFuZ2VDaGVja2VyPiB0eXBlIDsKKyAgfSA7CisKK30gOworCit9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2NvbnZlcnRlcl9wb2xpY2llcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJ0ZXJfcG9saWNpZXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkMDIwOTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJ0ZXJfcG9saWNpZXMuaHBwCkBAIC0wLDAgKzEsMTk0IEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NPTlZFUlRFUl9QT0xJQ0lFU19GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fQ09OVkVSVEVSX1BPTElDSUVTX0ZMQ18xMk5PVjIwMDJfSFBQCisKKyNpbmNsdWRlIDx0eXBlaW5mbz4gLy8gZm9yIHN0ZDo6YmFkX2Nhc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvY21hdGguaHBwPiAvLyBmb3Igc3RkOjpmbG9vciBhbmQgc3RkOjpjZWlsCisjaW5jbHVkZSA8bmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcml0aG1ldGljLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9pZi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbXBsL2ludGVncmFsX2MuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbnVtZXJpYworeworCit0ZW1wbGF0ZTxjbGFzcyBTPgorc3RydWN0IFRydW5jCit7CisgIHR5cGVkZWYgUyBzb3VyY2VfdHlwZSA7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwgaXNfYXJpdGhtZXRpYzxTPixTLFMgY29uc3QmPjo6dHlwZSBhcmd1bWVudF90eXBlIDsKKworICBzdGF0aWMgc291cmNlX3R5cGUgbmVhcmJ5aW50ICggYXJndW1lbnRfdHlwZSBzICkKKyAgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX1NURENfTkFNRVNQQUNFKQorICAgIHVzaW5nIHN0ZDo6Zmxvb3IgOworICAgIHVzaW5nIHN0ZDo6Y2VpbCAgOworI2VuZGlmCisKKyAgICByZXR1cm4gcyA8IHN0YXRpY19jYXN0PFM+KDApID8gY2VpbChzKSA6IGZsb29yKHMpIDsKKyAgfQorCisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPCBzdGQ6OmZsb2F0X3JvdW5kX3N0eWxlLCBzdGQ6OnJvdW5kX3Rvd2FyZF96ZXJvPiByb3VuZF9zdHlsZSA7Cit9IDsKKworCisKK3RlbXBsYXRlPGNsYXNzIFM+CitzdHJ1Y3QgRmxvb3IKK3sKKyAgdHlwZWRlZiBTIHNvdXJjZV90eXBlIDsKKworICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPCBpc19hcml0aG1ldGljPFM+LFMsUyBjb25zdCY+Ojp0eXBlIGFyZ3VtZW50X3R5cGUgOworCisgIHN0YXRpYyBzb3VyY2VfdHlwZSBuZWFyYnlpbnQgKCBhcmd1bWVudF90eXBlIHMgKQorICB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UpCisgICAgdXNpbmcgc3RkOjpmbG9vciA7CisjZW5kaWYKKworICAgIHJldHVybiBmbG9vcihzKSA7CisgIH0KKworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzwgc3RkOjpmbG9hdF9yb3VuZF9zdHlsZSwgc3RkOjpyb3VuZF90b3dhcmRfbmVnX2luZmluaXR5PiByb3VuZF9zdHlsZSA7Cit9IDsKKwordGVtcGxhdGU8Y2xhc3MgUz4KK3N0cnVjdCBDZWlsCit7CisgIHR5cGVkZWYgUyBzb3VyY2VfdHlwZSA7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwgaXNfYXJpdGhtZXRpYzxTPixTLFMgY29uc3QmPjo6dHlwZSBhcmd1bWVudF90eXBlIDsKKworICBzdGF0aWMgc291cmNlX3R5cGUgbmVhcmJ5aW50ICggYXJndW1lbnRfdHlwZSBzICkKKyAgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX1NURENfTkFNRVNQQUNFKQorICAgIHVzaW5nIHN0ZDo6Y2VpbCA7CisjZW5kaWYKKworICAgIHJldHVybiBjZWlsKHMpIDsKKyAgfQorCisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPCBzdGQ6OmZsb2F0X3JvdW5kX3N0eWxlLCBzdGQ6OnJvdW5kX3Rvd2FyZF9pbmZpbml0eT4gcm91bmRfc3R5bGUgOworfSA7CisKK3RlbXBsYXRlPGNsYXNzIFM+CitzdHJ1Y3QgUm91bmRFdmVuCit7CisgIHR5cGVkZWYgUyBzb3VyY2VfdHlwZSA7CisKKyAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwgaXNfYXJpdGhtZXRpYzxTPixTLFMgY29uc3QmPjo6dHlwZSBhcmd1bWVudF90eXBlIDsKKworICBzdGF0aWMgc291cmNlX3R5cGUgbmVhcmJ5aW50ICggYXJndW1lbnRfdHlwZSBzICkKKyAgeworICAgIC8vIEFsZ29yaXRobSBjb250cmlidXRlZCBieSBHdWlsbGF1bWUgTWVscXVpb25kCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19TVERDX05BTUVTUEFDRSkKKyAgICB1c2luZyBzdGQ6OmZsb29yIDsKKyAgICB1c2luZyBzdGQ6OmNlaWwgIDsKKyNlbmRpZgorCisgICAgLy8gb25seSB3b3JrcyBpbnNpZGUgdGhlIHJhbmdlIG5vdCBhdCB0aGUgYm91bmRhcmllcworICAgIFMgcHJldiA9IGZsb29yKHMpOworICAgIFMgbmV4dCA9IGNlaWwocyk7CisKKyAgICBTIHJ0ID0gKHMgLSBwcmV2KSAtIChuZXh0IC0gcyk7IC8vIHJlbWFpbmRlciB0eXBlCisKKyAgICBTIGNvbnN0IHplcm8oMC4wKTsKKyAgICBTIGNvbnN0IHR3bygyLjApOworCisgICAgaWYgKCBydCA8IHplcm8gKQorICAgICAgcmV0dXJuIHByZXY7CisgICAgZWxzZSBpZiAoIHJ0ID4gemVybyApCisgICAgICByZXR1cm4gbmV4dDsKKyAgICBlbHNlCisgICAgeworICAgICAgYm9vbCBpc19wcmV2X2V2ZW4gPSB0d28gKiBmbG9vcihwcmV2IC8gdHdvKSA9PSBwcmV2IDsKKyAgICAgIHJldHVybiAoIGlzX3ByZXZfZXZlbiA/IHByZXYgOiBuZXh0ICkgOworICAgIH0KKyAgfQorCisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPCBzdGQ6OmZsb2F0X3JvdW5kX3N0eWxlLCBzdGQ6OnJvdW5kX3RvX25lYXJlc3Q+IHJvdW5kX3N0eWxlIDsKK30gOworCisKK2VudW0gcmFuZ2VfY2hlY2tfcmVzdWx0Cit7CisgIGNJblJhbmdlICAgICA9IDAgLAorICBjTmVnT3ZlcmZsb3cgPSAxICwKKyAgY1Bvc092ZXJmbG93ID0gMgorfSA7CisKK2NsYXNzIGJhZF9udW1lcmljX2Nhc3QgOiBwdWJsaWMgc3RkOjpiYWRfY2FzdAoreworICBwdWJsaWM6CisKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKiB3aGF0KCkgY29uc3QgdGhyb3coKQorICAgICAgeyAgcmV0dXJuICJiYWQgbnVtZXJpYyBjb252ZXJzaW9uOiBvdmVyZmxvdyI7IH0KK307CisKK2NsYXNzIG5lZ2F0aXZlX292ZXJmbG93IDogcHVibGljIGJhZF9udW1lcmljX2Nhc3QKK3sKKyAgcHVibGljOgorCisgICAgdmlydHVhbCBjb25zdCBjaGFyICogd2hhdCgpIGNvbnN0IHRocm93KCkKKyAgICAgIHsgIHJldHVybiAiYmFkIG51bWVyaWMgY29udmVyc2lvbjogbmVnYXRpdmUgb3ZlcmZsb3ciOyB9Cit9OworY2xhc3MgcG9zaXRpdmVfb3ZlcmZsb3cgOiBwdWJsaWMgYmFkX251bWVyaWNfY2FzdAoreworICBwdWJsaWM6CisKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKiB3aGF0KCkgY29uc3QgdGhyb3coKQorICAgICAgeyByZXR1cm4gImJhZCBudW1lcmljIGNvbnZlcnNpb246IHBvc2l0aXZlIG92ZXJmbG93IjsgfQorfTsKKworc3RydWN0IGRlZl9vdmVyZmxvd19oYW5kbGVyCit7CisgIHZvaWQgb3BlcmF0b3IoKSAoIHJhbmdlX2NoZWNrX3Jlc3VsdCByICkgLy8gdGhyb3cobmVnYXRpdmVfb3ZlcmZsb3cscG9zaXRpdmVfb3ZlcmZsb3cpCisgIHsKKyNpZm5kZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworICAgIGlmICggciA9PSBjTmVnT3ZlcmZsb3cgKQorICAgICAgdGhyb3cgbmVnYXRpdmVfb3ZlcmZsb3coKSA7CisgICAgZWxzZSBpZiAoIHIgPT0gY1Bvc092ZXJmbG93ICkKKyAgICAgICAgICAgdGhyb3cgcG9zaXRpdmVfb3ZlcmZsb3coKSA7CisjZWxzZQorICAgIGlmICggciA9PSBjTmVnT3ZlcmZsb3cgKQorICAgICAgOjpuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKG5lZ2F0aXZlX292ZXJmbG93KCkpIDsKKyAgICBlbHNlIGlmICggciA9PSBjUG9zT3ZlcmZsb3cgKQorICAgICAgICAgICA6Om5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24ocG9zaXRpdmVfb3ZlcmZsb3coKSkgOworI2VuZGlmCisgIH0KK30gOworCitzdHJ1Y3Qgc2lsZW50X292ZXJmbG93X2hhbmRsZXIKK3sKKyAgdm9pZCBvcGVyYXRvcigpICggcmFuZ2VfY2hlY2tfcmVzdWx0ICkge30gLy8gdGhyb3coKQorfSA7CisKK3RlbXBsYXRlPGNsYXNzIFRyYWl0cz4KK3N0cnVjdCByYXdfY29udmVydGVyCit7CisgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpyZXN1bHRfdHlwZSAgIHJlc3VsdF90eXBlICAgOworICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6YXJndW1lbnRfdHlwZSBhcmd1bWVudF90eXBlIDsKKworICBzdGF0aWMgcmVzdWx0X3R5cGUgbG93X2xldmVsX2NvbnZlcnQgKCBhcmd1bWVudF90eXBlIHMgKSB7IHJldHVybiBzdGF0aWNfY2FzdDxyZXN1bHRfdHlwZT4ocykgOyB9Cit9IDsKKworc3RydWN0IFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHt9IDsKKworfSB9IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6bnVtZXJpYworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9ib3VuZHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2JvdW5kcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRlZmZhZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9ib3VuZHMuaHBwCkBAIC0wLDAgKzEsNTggQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0JPVU5EU19ERVRBSUxfRkxDXzEyTk9WMjAwMl9IUFAKKyNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0JPVU5EU19ERVRBSUxfRkxDXzEyTk9WMjAwMl9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L2xpbWl0cy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvY29uZmlnLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaWYuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbnVtZXJpYyB7IG5hbWVzcGFjZSBib3VuZHNkZXRhaWwKK3sKKyAgdGVtcGxhdGU8Y2xhc3MgTj4KKyAgY2xhc3MgSW50ZWdyYWwKKyAgeworICAgICAgdHlwZWRlZiBzdGQ6Om51bWVyaWNfbGltaXRzPE4+IGxpbWl0cyA7CisKKyAgICBwdWJsaWMgOgorICAgIAorICAgICAgc3RhdGljIE4gbG93ZXN0ICAoKSB7IHJldHVybiBsaW1pdHM6Om1pbiBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKTsgfQorICAgICAgc3RhdGljIE4gaGlnaGVzdCAoKSB7IHJldHVybiBsaW1pdHM6Om1heCBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKTsgfQorICAgICAgc3RhdGljIE4gc21hbGxlc3QoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxOPigxKTsgfQorICB9IDsKKworICB0ZW1wbGF0ZTxjbGFzcyBOPgorICBjbGFzcyBGbG9hdAorICB7CisgICAgICB0eXBlZGVmIHN0ZDo6bnVtZXJpY19saW1pdHM8Tj4gbGltaXRzIDsKKworICAgIHB1YmxpYyA6CisgICAgCisgICAgICBzdGF0aWMgTiBsb3dlc3QgICgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE4+KC1saW1pdHM6Om1heCBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKSkgOyB9CisgICAgICBzdGF0aWMgTiBoaWdoZXN0ICgpIHsgcmV0dXJuIGxpbWl0czo6bWF4IEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpOyB9CisgICAgICBzdGF0aWMgTiBzbWFsbGVzdCgpIHsgcmV0dXJuIGxpbWl0czo6bWluIEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpOyB9CisgIH0gOworCisgIHRlbXBsYXRlPGNsYXNzIE4+CisgIHN0cnVjdCBnZXRfaW1wbAorICB7CisgICAgdHlwZWRlZiBtcGw6OmJvb2xfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8Tj46OmlzX2ludGVnZXIgPiBpc19pbnQgOworCisgICAgdHlwZWRlZiBJbnRlZ3JhbDxOPiBpbXBsX2ludCAgIDsKKyAgICB0eXBlZGVmIEZsb2F0ICAgPE4+IGltcGxfZmxvYXQgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzxpc19pbnQsaW1wbF9pbnQsaW1wbF9mbG9hdD46OnR5cGUgdHlwZSA7CisgIH0gOworCit9IH0gfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6Om51bWVyaWM6OmJvdW5kc2RldGFpbC4KKworI2VuZGlmCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9jb252ZXJzaW9uX3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvY29udmVyc2lvbl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1YzdkODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvY29udmVyc2lvbl90cmFpdHMuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0RFVEFJTF9DT05WRVJTSU9OX1RSQUlUU19GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fREVUQUlMX0NPTlZFUlNJT05fVFJBSVRTX0ZMQ18xMk5PVjIwMDJfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcml0aG1ldGljLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9tZXRhLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2ludF9mbG9hdF9taXh0dXJlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3NpZ25fbWl4dHVyZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC91ZHRfYnVpbHRpbl9taXh0dXJlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2lzX3N1YnJhbmdlZC5ocHAiCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBudW1lcmljIHsgbmFtZXNwYWNlIGNvbnZkZXRhaWwKK3sKKyAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIC8vIEltcGxlbWVudGF0aW9uIG9mIHRoZSBDb252ZXJzaW9uIFRyYWl0cyBmb3IgVCAhPSBTCisgIC8vCisgIC8vIFRoaXMgaXMgYSBWSVNJQkxFIGJhc2UgY2xhc3Mgb2YgdGhlIHVzZXItbGV2ZWwgY29udmVyc2lvbl90cmFpdHM8PiBjbGFzcy4KKyAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIHRlbXBsYXRlPGNsYXNzIFQsY2xhc3MgUz4KKyAgc3RydWN0IG5vbl90cml2aWFsX3RyYWl0c19pbXBsCisgIHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGdldF9pbnRfZmxvYXRfbWl4dHVyZSAgIDxULFM+Ojp0eXBlIGludF9mbG9hdF9taXh0dXJlIDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGdldF9zaWduX21peHR1cmUgICAgICAgIDxULFM+Ojp0eXBlIHNpZ25fbWl4dHVyZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBnZXRfdWR0X2J1aWx0aW5fbWl4dHVyZSA8VCxTPjo6dHlwZSB1ZHRfYnVpbHRpbl9taXh0dXJlIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgZ2V0X2lzX3N1YnJhbmdlZDxULFM+Ojp0eXBlIHN1YnJhbmdlZCA7CisKKyAgICB0eXBlZGVmIG1wbDo6ZmFsc2VfIHRyaXZpYWwgOworCisgICAgdHlwZWRlZiBUIHRhcmdldF90eXBlIDsKKyAgICB0eXBlZGVmIFMgc291cmNlX3R5cGUgOworICAgIHR5cGVkZWYgVCByZXN1bHRfdHlwZSA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPCBpc19hcml0aG1ldGljPFM+LCBTLCBTIGNvbnN0Jj46OnR5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPHN1YnJhbmdlZCxTLFQ+Ojp0eXBlIHN1cGVydHlwZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzxzdWJyYW5nZWQsVCxTPjo6dHlwZSBzdWJ0eXBlICAgOworICB9IDsKKworICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgdGhlIENvbnZlcnNpb24gVHJhaXRzIGZvciBUID09IFMKKyAgLy8KKyAgLy8gVGhpcyBpcyBhIFZJU0lCTEUgYmFzZSBjbGFzcyBvZiB0aGUgdXNlci1sZXZlbCBjb252ZXJzaW9uX3RyYWl0czw+IGNsYXNzLgorICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgdGVtcGxhdGU8Y2xhc3MgTj4KKyAgc3RydWN0IHRyaXZpYWxfdHJhaXRzX2ltcGwKKyAgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgZ2V0X2ludF9mbG9hdF9taXh0dXJlICA8TixOPjo6dHlwZSBpbnRfZmxvYXRfbWl4dHVyZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBnZXRfc2lnbl9taXh0dXJlICAgICAgIDxOLE4+Ojp0eXBlIHNpZ25fbWl4dHVyZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBnZXRfdWR0X2J1aWx0aW5fbWl4dHVyZTxOLE4+Ojp0eXBlIHVkdF9idWlsdGluX21peHR1cmUgOworCisgICAgdHlwZWRlZiBtcGw6OmZhbHNlXyBzdWJyYW5nZWQgOworICAgIHR5cGVkZWYgbXBsOjp0cnVlXyAgdHJpdmlhbCA7CisKKyAgICB0eXBlZGVmIE4gICAgICAgIHRhcmdldF90eXBlIDsKKyAgICB0eXBlZGVmIE4gICAgICAgIHNvdXJjZV90eXBlIDsKKyAgICB0eXBlZGVmIE4gY29uc3QmIHJlc3VsdF90eXBlIDsKKyAgICB0eXBlZGVmIE4gY29uc3QmIGFyZ3VtZW50X3R5cGUgOworCisgICAgdHlwZWRlZiBOIHN1cGVydHlwZSA7CisgICAgdHlwZWRlZiBOIHN1YnR5cGUgIDsKKworICB9IDsKKworICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgLy8gVG9wIGxldmVsIGltcGxlbWVudGF0aW9uIHNlbGVjdG9yLgorICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUz4KKyAgc3RydWN0IGdldF9jb252ZXJzaW9uX3RyYWl0cworICB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUgdGFyZ2V0X3R5cGUgOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX2N2PFM+Ojp0eXBlIHNvdXJjZV90eXBlIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgaXNfc2FtZTx0YXJnZXRfdHlwZSxzb3VyY2VfdHlwZT46OnR5cGUgaXNfdHJpdmlhbCA7CisKKyAgICB0eXBlZGVmIHRyaXZpYWxfdHJhaXRzX2ltcGwgICAgPHRhcmdldF90eXBlPiAgICAgICAgICAgICB0cml2aWFsX2ltcCA7CisgICAgdHlwZWRlZiBub25fdHJpdmlhbF90cmFpdHNfaW1wbDx0YXJnZXRfdHlwZSxzb3VyY2VfdHlwZT4gbm9uX3RyaXZpYWxfaW1wIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88aXNfdHJpdmlhbCx0cml2aWFsX2ltcCxub25fdHJpdmlhbF9pbXA+Ojp0eXBlIHR5cGUgOworICB9IDsKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZGV0YWlsCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9jb252ZXJ0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2NvbnZlcnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEzYTVjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9jb252ZXJ0ZXIuaHBwCkBAIC0wLDAgKzEsNjAyIEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0RFVEFJTF9DT05WRVJURVJfRkxDXzEyTk9WMjAwMl9IUFAKKyNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0RFVEFJTF9DT05WRVJURVJfRkxDXzEyTk9WMjAwMl9IUFAKKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL21ldGEuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvY29udmVyc2lvbl90cmFpdHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9ib3VuZHMuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaW50ZWdyYWxfYy5ocHAiCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBudW1lcmljIHsgbmFtZXNwYWNlIGNvbnZkZXRhaWwKK3sKKyAgLy8gSW50ZWdyYWwgQ29uc3RhbnRzIHJlcHJlc2VudGluZyByb3VuZGluZyBtb2RlcworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxzdGQ6OmZsb2F0X3JvdW5kX3N0eWxlLCBzdGQ6OnJvdW5kX3Rvd2FyZF96ZXJvPiAgICAgICAgIHJvdW5kMnplcm9fYyA7CisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6ZmxvYXRfcm91bmRfc3R5bGUsIHN0ZDo6cm91bmRfdG9fbmVhcmVzdD4gICAgICAgICAgcm91bmQybmVhcmVzdF9jIDsKKyAgdHlwZWRlZiBtcGw6OmludGVncmFsX2M8c3RkOjpmbG9hdF9yb3VuZF9zdHlsZSwgc3RkOjpyb3VuZF90b3dhcmRfaW5maW5pdHk+ICAgICByb3VuZDJpbmZfYyA7CisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHN0ZDo6ZmxvYXRfcm91bmRfc3R5bGUsIHN0ZDo6cm91bmRfdG93YXJkX25lZ19pbmZpbml0eT4gcm91bmQybmVnX2luZl9jIDsKKworICAvLyBNZXRhZnVuY3Rpb246CisgIC8vCisgIC8vICAgZm9yX3JvdW5kX3N0eWxlPFJvdW5kU3R5bGUsUm91bmRUb1plcm8sUm91bmRUb05lYXJlc3QsUm91bmRUb0luZixSb3VuZFRvTmVnSW5mPjo6dHlwZQorICAvLworICAvLyB7Um91bmRTdHlsZX0gSW50ZWdyYWwgQ29uc3RhbnQgc3BlY2lmeWluZyBhIHJvdW5kIHN0eWxlIGFzIGRlY2xhcmVkIGFib3ZlLgorICAvLyB7Um91bmRUb1plcm8sUm91bmRUb05lYXJlc3QsUm91bmRUb0luZixSb3VuZFRvTmVnSW5mfSBhcmJpdHJhcnkgdHlwZXMuCisgIC8vCisgIC8vIFNlbGVjdHMgb25lIG9mIHRoZSA0IHR5cGVzIGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgUm91bmRTdHlsZS4KKyAgLy8KKyAgdGVtcGxhdGU8Y2xhc3MgUm91bmRTdHlsZSxjbGFzcyBSb3VuZFRvWmVybyxjbGFzcyBSb3VuZFRvTmVhcmVzdCxjbGFzcyBSb3VuZFRvSW5mLGNsYXNzIFJvdW5kVG9OZWdJbmY+CisgIHN0cnVjdCBmb3Jfcm91bmRfc3R5bGUKKyAgeworICAgIHR5cGVkZWYgY3Rfc3dpdGNoNDxSb3VuZFN0eWxlCisgICAgICAgICAgICAgICAgICAgICAgICwgcm91bmQyemVyb19jLCByb3VuZDJuZWFyZXN0X2MsIHJvdW5kMmluZl9jIC8vIHJvdW5kMm5lZ19pbmZfYworICAgICAgICAgICAgICAgICAgICAgICAsIFJvdW5kVG9aZXJvICwgUm91bmRUb05lYXJlc3QgLCBSb3VuZFRvSW5mICwgUm91bmRUb05lZ0luZgorICAgICAgICAgICAgICAgICAgICAgID4gc2VsZWN0b3IgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3Rvcjo6dHlwZSB0eXBlIDsKKyAgfSA7CisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2UgQ2hlY2tpbmcgTG9naWMuCisvLworLy8gVGhlIHJhbmdlIGNoZWNraW5nIGxvZ2ljIGlzIGJ1aWx0IHVwIGJ5IGNvbWJpbmluZyAxIG9yIDIgcHJlZGljYXRlcy4KKy8vIEVhY2ggcHJlZGljYXRlIGlzIGVuY2Fwc3VsYXRlZCBpbiBhIHRlbXBsYXRlIGNsYXNzIGFuZCBleHBvc2VzCisvLyB0aGUgc3RhdGljIG1lbWJlciBmdW5jdGlvbiAnYXBwbHknLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisgIC8vIEJlY2F1c2UgYSBwYXJ0aWN1bGFyIGxvZ2ljIGNhbiBjb21iaW5lIGVpdGhlciAxIG9yIHR3byBwcmVkaWNhdGVzLCB0aGUgZm9sbG93aW5nCisgIC8vIHRhZ3MgYXJlIHVzZWQgdG8gYWxsb3cgdGhlIHByZWRpY2F0ZSBhcHBsaWVyIHRvIHJlY2VpdmUgMiBwcmVkcywgYnV0IG9wdGltaXplIGF3YXkKKyAgLy8gb25lIG9mIHRoZW0gaWYgaXQgaXMgJ25vbi1hcHBsaWNhYmxlJworICBzdHJ1Y3Qgbm9uX2FwcGxpY2FibGUgeyB0eXBlZGVmIG1wbDo6ZmFsc2VfIGRvX2FwcGx5IDsgfSA7CisgIHN0cnVjdCBhcHBsaWNhYmxlICAgICB7IHR5cGVkZWYgbXBsOjp0cnVlXyAgZG9fYXBwbHkgOyB9IDsKKworCisgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgLy8KKyAgLy8gICAgICAgICAgICAgICAgICAgICAgUmFuZ2UgQ2hlY2tpbmcgTG9naWMgaW1wbGVtZW50YXRpb25zLgorICAvLworICAvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMsIGNvbGxlY3RpdmVsbHkgbmFtZWQgJ1ByZWRpY2F0ZXMnLCBhcmUgaW5zdGFudGlhdGVkIHdpdGhpbgorICAvLyB0aGUgY29ycmVzcG9uZGluZyByYW5nZSBjaGVja2Vycy4KKyAgLy8gVGhlaXIgc3RhdGljIG1lbWJlciBmdW5jdGlvbiAnYXBwbHknIGlzIGNhbGxlZCB0byBwZXJmb3JtIHRoZSBhY3R1YWwgcmFuZ2UgY2hlY2tpbmcgbG9naWMuCisgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHMgPCBMb3dlc3QoVCkgPyBjTmVnT3ZlcmZsb3cgOiBjSW5SYW5nZQorICAgIC8vCisgICAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICAgIHN0cnVjdCBMVF9Mb1QgOiBhcHBsaWNhYmxlCisgICAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnRhcmdldF90eXBlIFQgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlIFMgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICAgIHN0YXRpYyByYW5nZV9jaGVja19yZXN1bHQgYXBwbHkgKCBhcmd1bWVudF90eXBlIHMgKQorICAgICAgeworICAgICAgICByZXR1cm4gcyA8IHN0YXRpY19jYXN0PFM+KGJvdW5kczxUPjo6bG93ZXN0KCkpID8gY05lZ092ZXJmbG93IDogY0luUmFuZ2UgOworICAgICAgfQorICAgIH0gOworCisgICAgLy8gcyA8IDAgPyBjTmVnT3ZlcmZsb3cgOiBjSW5SYW5nZQorICAgIC8vCisgICAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICAgIHN0cnVjdCBMVF9aZXJvIDogYXBwbGljYWJsZQorICAgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpzb3VyY2VfdHlwZSBTIDsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjphcmd1bWVudF90eXBlIGFyZ3VtZW50X3R5cGUgOworCisgICAgICBzdGF0aWMgcmFuZ2VfY2hlY2tfcmVzdWx0IGFwcGx5ICggYXJndW1lbnRfdHlwZSBzICkKKyAgICAgIHsKKyAgICAgICAgcmV0dXJuIHMgPCBzdGF0aWNfY2FzdDxTPigwKSA/IGNOZWdPdmVyZmxvdyA6IGNJblJhbmdlIDsKKyAgICAgIH0KKyAgICB9IDsKKworICAgIC8vIHMgPD0gTG93ZXN0KFQpLTEgPyBjTmVnT3ZlcmZsb3cgOiBjSW5SYW5nZQorICAgIC8vCisgICAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICAgIHN0cnVjdCBMRV9QcmV2TG9UIDogYXBwbGljYWJsZQorICAgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjp0YXJnZXRfdHlwZSBUIDsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpzb3VyY2VfdHlwZSBTIDsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjphcmd1bWVudF90eXBlIGFyZ3VtZW50X3R5cGUgOworCisgICAgICBzdGF0aWMgcmFuZ2VfY2hlY2tfcmVzdWx0IGFwcGx5ICggYXJndW1lbnRfdHlwZSBzICkKKyAgICAgIHsKKyAgICAgICAgcmV0dXJuIHMgPD0gc3RhdGljX2Nhc3Q8Uz4oYm91bmRzPFQ+Ojpsb3dlc3QoKSkgLSBzdGF0aWNfY2FzdDxTPigxLjApCisgICAgICAgICAgICAgICAgID8gY05lZ092ZXJmbG93IDogY0luUmFuZ2UgOworICAgICAgfQorICAgIH0gOworCisgICAgLy8gcyA8IExvd2VzdChUKS0wLjUgPyBjTmVnT3ZlcmZsb3cgOiBjSW5SYW5nZQorICAgIC8vCisgICAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICAgIHN0cnVjdCBMVF9IYWxmUHJldkxvVCA6IGFwcGxpY2FibGUKKyAgICB7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6dGFyZ2V0X3R5cGUgVCA7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6c291cmNlX3R5cGUgUyA7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6YXJndW1lbnRfdHlwZSBhcmd1bWVudF90eXBlIDsKKworICAgICAgc3RhdGljIHJhbmdlX2NoZWNrX3Jlc3VsdCBhcHBseSAoIGFyZ3VtZW50X3R5cGUgcyApCisgICAgICB7CisgICAgICAgIHJldHVybiBzIDwgc3RhdGljX2Nhc3Q8Uz4oYm91bmRzPFQ+Ojpsb3dlc3QoKSkgLSBzdGF0aWNfY2FzdDxTPigwLjUpCisgICAgICAgICAgICAgICAgID8gY05lZ092ZXJmbG93IDogY0luUmFuZ2UgOworICAgICAgfQorICAgIH0gOworCisgICAgLy8gcyA+IEhpZ2hlc3QoVCkgPyBjUG9zT3ZlcmZsb3cgOiBjSW5SYW5nZQorICAgIC8vCisgICAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICAgIHN0cnVjdCBHVF9IaVQgOiBhcHBsaWNhYmxlCisgICAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnRhcmdldF90eXBlIFQgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlIFMgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICAgIHN0YXRpYyByYW5nZV9jaGVja19yZXN1bHQgYXBwbHkgKCBhcmd1bWVudF90eXBlIHMgKQorICAgICAgeworICAgICAgICByZXR1cm4gcyA+IHN0YXRpY19jYXN0PFM+KGJvdW5kczxUPjo6aGlnaGVzdCgpKQorICAgICAgICAgICAgICAgICA/IGNQb3NPdmVyZmxvdyA6IGNJblJhbmdlIDsKKyAgICAgIH0KKyAgICB9IDsKKworICAgIC8vIHMgPj0gTG93ZXN0KFQpICsgMSA/IGNQb3NPdmVyZmxvdyA6IGNJblJhbmdlCisgICAgLy8KKyAgICB0ZW1wbGF0ZTxjbGFzcyBUcmFpdHM+CisgICAgc3RydWN0IEdFX1N1Y2NIaVQgOiBhcHBsaWNhYmxlCisgICAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnRhcmdldF90eXBlIFQgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlIFMgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICAgIHN0YXRpYyByYW5nZV9jaGVja19yZXN1bHQgYXBwbHkgKCBhcmd1bWVudF90eXBlIHMgKQorICAgICAgeworICAgICAgICByZXR1cm4gcyA+PSBzdGF0aWNfY2FzdDxTPihib3VuZHM8VD46OmhpZ2hlc3QoKSkgKyBzdGF0aWNfY2FzdDxTPigxLjApCisgICAgICAgICAgICAgICAgID8gY1Bvc092ZXJmbG93IDogY0luUmFuZ2UgOworICAgICAgfQorICAgIH0gOworCisgICAgLy8gcyA+PSBMb3dlc3QoVCkgKyAwLjUgPyBjUG9zZ092ZXJmbG93IDogY0luUmFuZ2UKKyAgICAvLworICAgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cz4KKyAgICBzdHJ1Y3QgR1RfSGFsZlN1Y2NIaVQgOiBhcHBsaWNhYmxlCisgICAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnRhcmdldF90eXBlIFQgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlIFMgOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICAgIHN0YXRpYyByYW5nZV9jaGVja19yZXN1bHQgYXBwbHkgKCBhcmd1bWVudF90eXBlIHMgKQorICAgICAgeworICAgICAgICByZXR1cm4gcyA+PSBzdGF0aWNfY2FzdDxTPihib3VuZHM8VD46OmhpZ2hlc3QoKSkgKyBzdGF0aWNfY2FzdDxTPigwLjUpCisgICAgICAgICAgICAgICAgID8gY1Bvc092ZXJmbG93IDogY0luUmFuZ2UgOworICAgICAgfQorICAgIH0gOworCisKKyAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAvLworICAvLyBQcmVkaWNhdGUgQ29tYmluZXIuCisgIC8vCisgIC8vIFRoaXMgaGVscGVyIGNsYXNzZXMgYXJlIHVzZWQgdG8gcG9zc2libHkgY29tYmluZSB0aGUgcmFuZ2UgY2hlY2tpbmcgbG9naWMKKyAgLy8gaW5kaXZpZHVhbGx5IHBlcmZvcm1lZCBieSB0aGUgcHJlZGljYXRlcworICAvLworICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworICAgIC8vIEFwcGxpZXMgYm90aCBwcmVkaWNhdGVzOiBmaXJzdCAnUHJlZEEnLCBhbmQgaWYgaXQgZXF1YWxzICdjSW5SYW5nZScsICdQcmVkQicKKyAgICB0ZW1wbGF0ZTxjbGFzcyBQcmVkQSwgY2xhc3MgUHJlZEI+CisgICAgc3RydWN0IGFwcGx5Qm90aAorICAgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgUHJlZEE6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICAgIHN0YXRpYyByYW5nZV9jaGVja19yZXN1bHQgYXBwbHkgKCBhcmd1bWVudF90eXBlIHMgKQorICAgICAgeworICAgICAgICByYW5nZV9jaGVja19yZXN1bHQgciA9IFByZWRBOjphcHBseShzKSA7CisgICAgICAgIGlmICggciA9PSBjSW5SYW5nZSApCisgICAgICAgICAgciA9IFByZWRCOjphcHBseShzKTsKKyAgICAgICAgcmV0dXJuIHIgOworICAgICAgfQorICAgIH0gOworCisgICAgdGVtcGxhdGU8Y2xhc3MgUHJlZEEsIGNsYXNzIFByZWRCPgorICAgIHN0cnVjdCBjb21iaW5lCisgICAgeworICAgICAgdHlwZWRlZiBhcHBseUJvdGg8UHJlZEEsUHJlZEI+IEJvdGggOworICAgICAgdHlwZWRlZiB2b2lkICAgICAgICAgICAgICAgICAgIE5Ob25lIDsgLy8gJ05vbmUnIGlzIGRlZmluZWQgYXMgYSBtYWNybyBpbiAoL3Vzci9YMTFSNi9pbmNsdWRlL1gxMS9YLmgpCisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgUHJlZEE6OmRvX2FwcGx5IGRvX2FwcGx5QSA7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIFByZWRCOjpkb19hcHBseSBkb19hcHBseUIgOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZvcl9ib3RoPGRvX2FwcGx5QSwgZG9fYXBwbHlCLCBCb3RoLCBQcmVkQSwgUHJlZEIsIE5Ob25lPjo6dHlwZSB0eXBlIDsKKyAgICB9IDsKKworCisKKworCisKKworCisKKworCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYW5nZSBDaGVja2VyIGNsYXNzZXMuCisvLworLy8gVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSBWSVNJQkxFIGJhc2UgY2xhc3NlcyBvZiB0aGUgdXNlci1sZXZlbCBjb252ZXJ0ZXI8PiBjbGFzcy4KKy8vIFRoZXkgc3VwcGx5IHRoZSBvcHRpbWl6ZWQgJ291dF9vZl9yYW5nZSgpJyBhbmQgJ3ZhbGlkYXRlX3JhbmdlKCknIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb25zCisvLyB2aXNpYmxlIGluIHRoZSB1c2VyIGludGVyZmFjZS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgLy8gRHVtbXkgcmFuZ2UgY2hlY2tlci4KKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICBzdHJ1Y3QgZHVtbXlfcmFuZ2VfY2hlY2tlcgorICB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisKKyAgICBzdGF0aWMgcmFuZ2VfY2hlY2tfcmVzdWx0IG91dF9vZl9yYW5nZSAoIGFyZ3VtZW50X3R5cGUgKSB7IHJldHVybiBjSW5SYW5nZSA7IH0KKyAgICBzdGF0aWMgdm9pZCB2YWxpZGF0ZV9yYW5nZSAoIGFyZ3VtZW50X3R5cGUgKSB7fQorICB9IDsKKworICAvLyBHZW5lcmljIHJhbmdlIGNoZWNrZXIuCisgIC8vCisgIC8vIEFsbCB0aGUgcmFuZ2UgY2hlY2tpbmcgbG9naWMgZm9yIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2Ygc291cmNlIGFuZCB0YXJnZXQKKyAgLy8gY2FuIGJlIGFycmFuZ2VkIGluIHRlcm1zIG9mIG9uZSBvciB0d28gcHJlZGljYXRlcywgd2hpY2ggdGVzdCBvdmVyZmxvdyBvbiBib3RoIG5lZy9wb3MgJ3NpZGVzJworICAvLyBvZiB0aGUgcmFuZ2VzLgorICAvLworICAvLyBUaGVzZSBwcmVkaWNhdGVzIGFyZSBnaXZlbiBoZXJlIGFzIElzTmVnT3ZlcmZsb3cgYW5kIElzUG9zT3ZlcmZsb3cuCisgIC8vCisgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cywgY2xhc3MgSXNOZWdPdmVyZmxvdywgY2xhc3MgSXNQb3NPdmVyZmxvdywgY2xhc3MgT3ZlcmZsb3dIYW5kbGVyPgorICBzdHJ1Y3QgZ2VuZXJpY19yYW5nZV9jaGVja2VyCisgIHsKKyAgICB0eXBlZGVmIE92ZXJmbG93SGFuZGxlciBvdmVyZmxvd19oYW5kbGVyIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjphcmd1bWVudF90eXBlIGFyZ3VtZW50X3R5cGUgOworCisgICAgc3RhdGljIHJhbmdlX2NoZWNrX3Jlc3VsdCBvdXRfb2ZfcmFuZ2UgKCBhcmd1bWVudF90eXBlIHMgKQorICAgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgY29tYmluZTxJc05lZ092ZXJmbG93LElzUG9zT3ZlcmZsb3c+Ojp0eXBlIFByZWRpY2F0ZSA7CisKKyAgICAgIHJldHVybiBQcmVkaWNhdGU6OmFwcGx5KHMpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHZhbGlkYXRlX3JhbmdlICggYXJndW1lbnRfdHlwZSBzICkKKyAgICAgIHsgT3ZlcmZsb3dIYW5kbGVyKCkoIG91dF9vZl9yYW5nZShzKSApIDsgfQorICB9IDsKKworCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyBTZWxlY3RvcnMgZm9yIHRoZSBvcHRpbWl6ZWQgUmFuZ2UgQ2hlY2tlciBjbGFzcy4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzLGNsYXNzIE92ZXJmbG93SGFuZGxlcj4KKyAgc3RydWN0IEdldFJDX1NpZzJTaWdfb3JfVW5zaWcyVW5zaWcKKyAgeworICAgIHR5cGVkZWYgZHVtbXlfcmFuZ2VfY2hlY2tlcjxUcmFpdHM+IER1bW15IDsKKworICAgIHR5cGVkZWYgTFRfTG9UPFRyYWl0cz4gUHJlZDEgOworICAgIHR5cGVkZWYgR1RfSGlUPFRyYWl0cz4gUHJlZDIgOworCisgICAgdHlwZWRlZiBnZW5lcmljX3JhbmdlX2NoZWNrZXI8VHJhaXRzLFByZWQxLFByZWQyLE92ZXJmbG93SGFuZGxlcj4gTm9ybWFsIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpzdWJyYW5nZWQgc3VicmFuZ2VkIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88c3VicmFuZ2VkLE5vcm1hbCxEdW1teT46OnR5cGUgdHlwZSA7CisgIH0gOworCisgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cywgY2xhc3MgT3ZlcmZsb3dIYW5kbGVyPgorICBzdHJ1Y3QgR2V0UkNfU2lnMlVuc2lnCisgIHsKKyAgICB0eXBlZGVmIExUX1plcm88VHJhaXRzPiBQcmVkMSA7CisgICAgdHlwZWRlZiBHVF9IaVQgPFRyYWl0cz4gUHJlZDIgOworCisgICAgdHlwZWRlZiBnZW5lcmljX3JhbmdlX2NoZWNrZXI8VHJhaXRzLFByZWQxLFByZWQyLE92ZXJmbG93SGFuZGxlcj4gQ2hvaWNlQSA7CisKKyAgICB0eXBlZGVmIGdlbmVyaWNfcmFuZ2VfY2hlY2tlcjxUcmFpdHMsUHJlZDEsbm9uX2FwcGxpY2FibGUsT3ZlcmZsb3dIYW5kbGVyPiBDaG9pY2VCIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjp0YXJnZXRfdHlwZSBUIDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6c291cmNlX3R5cGUgUyA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHN1YnJhbmdlZF9VbnNpZzJTaWc8UyxUPjo6dHlwZSBvcG9zaXRlX3N1YnJhbmdlZCA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bm90XzxvcG9zaXRlX3N1YnJhbmdlZD46OnR5cGUgcG9zaXRpdmVseV9zdWJyYW5nZWQgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzxwb3NpdGl2ZWx5X3N1YnJhbmdlZCxDaG9pY2VBLENob2ljZUI+Ojp0eXBlIHR5cGUgOworICB9IDsKKworICB0ZW1wbGF0ZTxjbGFzcyBUcmFpdHMsIGNsYXNzIE92ZXJmbG93SGFuZGxlcj4KKyAgc3RydWN0IEdldFJDX1Vuc2lnMlNpZworICB7CisgICAgdHlwZWRlZiBHVF9IaVQ8VHJhaXRzPiBQcmVkMSA7CisKKyAgICB0eXBlZGVmIGdlbmVyaWNfcmFuZ2VfY2hlY2tlcjxUcmFpdHMsbm9uX2FwcGxpY2FibGUsUHJlZDEsT3ZlcmZsb3dIYW5kbGVyPiB0eXBlIDsKKyAgfSA7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzLGNsYXNzIE92ZXJmbG93SGFuZGxlcj4KKyAgc3RydWN0IEdldFJDX0ludDJJbnQKKyAgeworICAgIHR5cGVkZWYgR2V0UkNfU2lnMlNpZ19vcl9VbnNpZzJVbnNpZzxUcmFpdHMsT3ZlcmZsb3dIYW5kbGVyPiBTaWcyU2lnUSAgICAgOworICAgIHR5cGVkZWYgR2V0UkNfU2lnMlVuc2lnICAgICAgICAgICAgIDxUcmFpdHMsT3ZlcmZsb3dIYW5kbGVyPiBTaWcyVW5zaWdRICAgOworICAgIHR5cGVkZWYgR2V0UkNfVW5zaWcyU2lnICAgICAgICAgICAgIDxUcmFpdHMsT3ZlcmZsb3dIYW5kbGVyPiBVbnNpZzJTaWdRICAgOworICAgIHR5cGVkZWYgU2lnMlNpZ1EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnNpZzJVbnNpZ1EgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNpZ25fbWl4dHVyZSBzaWduX21peHR1cmUgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZm9yX3NpZ25fbWl4dHVyZTxzaWduX21peHR1cmUsU2lnMlNpZ1EsU2lnMlVuc2lnUSxVbnNpZzJTaWdRLFVuc2lnMlVuc2lnUT46OnR5cGUKKyAgICAgICAgc2VsZWN0b3IgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3Rvcjo6dHlwZSB0eXBlIDsKKyAgfSA7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzPgorICBzdHJ1Y3QgR2V0UkNfSW50MkZsb2F0CisgIHsKKyAgICB0eXBlZGVmIGR1bW15X3JhbmdlX2NoZWNrZXI8VHJhaXRzPiB0eXBlIDsKKyAgfSA7CisKKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzLCBjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIGNsYXNzIEZsb2F0MkludFJvdW5kZXI+CisgIHN0cnVjdCBHZXRSQ19GbG9hdDJJbnQKKyAgeworICAgIHR5cGVkZWYgTEVfUHJldkxvVCAgICA8VHJhaXRzPiBQcmVkMSA7CisgICAgdHlwZWRlZiBHRV9TdWNjSGlUICAgIDxUcmFpdHM+IFByZWQyIDsKKyAgICB0eXBlZGVmIExUX0hhbGZQcmV2TG9UPFRyYWl0cz4gUHJlZDMgOworICAgIHR5cGVkZWYgR1RfSGFsZlN1Y2NIaVQ8VHJhaXRzPiBQcmVkNCA7CisgICAgdHlwZWRlZiBHVF9IaVQgICAgICAgIDxUcmFpdHM+IFByZWQ1IDsKKyAgICB0eXBlZGVmIExUX0xvVCAgICAgICAgPFRyYWl0cz4gUHJlZDYgOworCisgICAgdHlwZWRlZiBnZW5lcmljX3JhbmdlX2NoZWNrZXI8VHJhaXRzLFByZWQxLFByZWQyLE92ZXJmbG93SGFuZGxlcj4gVG9aZXJvICAgIDsKKyAgICB0eXBlZGVmIGdlbmVyaWNfcmFuZ2VfY2hlY2tlcjxUcmFpdHMsUHJlZDMsUHJlZDQsT3ZlcmZsb3dIYW5kbGVyPiBUb05lYXJlc3QgOworICAgIHR5cGVkZWYgZ2VuZXJpY19yYW5nZV9jaGVja2VyPFRyYWl0cyxQcmVkMSxQcmVkNSxPdmVyZmxvd0hhbmRsZXI+IFRvSW5mICAgICA7CisgICAgdHlwZWRlZiBnZW5lcmljX3JhbmdlX2NoZWNrZXI8VHJhaXRzLFByZWQ2LFByZWQyLE92ZXJmbG93SGFuZGxlcj4gVG9OZWdJbmYgIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgRmxvYXQySW50Um91bmRlcjo6cm91bmRfc3R5bGUgcm91bmRfc3R5bGUgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBmb3Jfcm91bmRfc3R5bGU8cm91bmRfc3R5bGUsVG9aZXJvLFRvTmVhcmVzdCxUb0luZixUb05lZ0luZj46OnR5cGUgdHlwZSA7CisgIH0gOworCisgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cywgY2xhc3MgT3ZlcmZsb3dIYW5kbGVyPgorICBzdHJ1Y3QgR2V0UkNfRmxvYXQyRmxvYXQKKyAgeworICAgIHR5cGVkZWYgZHVtbXlfcmFuZ2VfY2hlY2tlcjxUcmFpdHM+IER1bW15IDsKKworICAgIHR5cGVkZWYgTFRfTG9UPFRyYWl0cz4gUHJlZDEgOworICAgIHR5cGVkZWYgR1RfSGlUPFRyYWl0cz4gUHJlZDIgOworCisgICAgdHlwZWRlZiBnZW5lcmljX3JhbmdlX2NoZWNrZXI8VHJhaXRzLFByZWQxLFByZWQyLE92ZXJmbG93SGFuZGxlcj4gTm9ybWFsIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjpzdWJyYW5nZWQgc3VicmFuZ2VkIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl88c3VicmFuZ2VkLE5vcm1hbCxEdW1teT46OnR5cGUgdHlwZSA7CisgIH0gOworCisgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cywgY2xhc3MgT3ZlcmZsb3dIYW5kbGVyLCBjbGFzcyBGbG9hdDJJbnRSb3VuZGVyPgorICBzdHJ1Y3QgR2V0UkNfQnVpbHRJbjJCdWlsdEluCisgIHsKKyAgICB0eXBlZGVmIEdldFJDX0ludDJJbnQ8VHJhaXRzLE92ZXJmbG93SGFuZGxlcj4gICAgICAgICAgICAgICAgICAgIEludDJJbnRRIDsKKyAgICB0eXBlZGVmIEdldFJDX0ludDJGbG9hdDxUcmFpdHM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDJGbG9hdFEgOworICAgIHR5cGVkZWYgR2V0UkNfRmxvYXQySW50PFRyYWl0cyxPdmVyZmxvd0hhbmRsZXIsRmxvYXQySW50Um91bmRlcj4gRmxvYXQySW50USA7CisgICAgdHlwZWRlZiBHZXRSQ19GbG9hdDJGbG9hdDxUcmFpdHMsT3ZlcmZsb3dIYW5kbGVyPiAgICAgICAgICAgICAgICBGbG9hdDJGbG9hdFEgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmludF9mbG9hdF9taXh0dXJlIGludF9mbG9hdF9taXh0dXJlIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgZm9yX2ludF9mbG9hdF9taXh0dXJlPGludF9mbG9hdF9taXh0dXJlLCBJbnQySW50USwgSW50MkZsb2F0USwgRmxvYXQySW50USwgRmxvYXQyRmxvYXRRPjo6dHlwZSBzZWxlY3RvciA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdG9yOjp0eXBlIHR5cGUgOworICB9IDsKKworICB0ZW1wbGF0ZTxjbGFzcyBUcmFpdHMsIGNsYXNzIE92ZXJmbG93SGFuZGxlciwgY2xhc3MgRmxvYXQySW50Um91bmRlcj4KKyAgc3RydWN0IEdldFJDCisgIHsKKyAgICB0eXBlZGVmIEdldFJDX0J1aWx0SW4yQnVpbHRJbjxUcmFpdHMsT3ZlcmZsb3dIYW5kbGVyLEZsb2F0MkludFJvdW5kZXI+IEJ1aWx0SW4yQnVpbHRJblEgOworCisgICAgdHlwZWRlZiBkdW1teV9yYW5nZV9jaGVja2VyPFRyYWl0cz4gRHVtbXkgOworCisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PER1bW15PiBEdW1teVEgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnVkdF9idWlsdGluX21peHR1cmUgdWR0X2J1aWx0aW5fbWl4dHVyZSA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGZvcl91ZHRfYnVpbHRpbl9taXh0dXJlPHVkdF9idWlsdGluX21peHR1cmUsQnVpbHRJbjJCdWlsdEluUSxEdW1teVEsRHVtbXlRLER1bW15UT46OnR5cGUgc2VsZWN0b3IgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3Rvcjo6dHlwZSB0eXBlIDsKKyAgfSA7CisKKworCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0ZXIgY2xhc3Nlcy4KKy8vCisvLyBUaGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIFZJU0lCTEUgYmFzZSBjbGFzc2VzIG9mIHRoZSB1c2VyLWxldmVsIGNvbnZlcnRlcjw+IGNsYXNzLgorLy8gVGhleSBzdXBwbHkgdGhlIG9wdGltaXplZCAnbmVhcmJ5aW50KCknIGFuZCAnY29udmVydCgpJyBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9ucworLy8gdmlzaWJsZSBpbiB0aGUgdXNlciBpbnRlcmZhY2UuCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIC8vCisgIC8vIFRyaXZpYWwgQ29udmVydGVyIDogdXNlZCB3aGVuIChjdi11bnF1YWxpZmllZCkgVCA9PSAoY3YtdW5xdWFsaWZpZWQpICBTCisgIC8vCisgIHRlbXBsYXRlPGNsYXNzIFRyYWl0cz4KKyAgc3RydWN0IHRyaXZpYWxfY29udmVydGVyX2ltcGwgOiBwdWJsaWMgc3RkOjp1bmFyeV9mdW5jdGlvbjwgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgVHJhaXRzOjphcmd1bWVudF90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIFRyYWl0czo6cmVzdWx0X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxwdWJsaWMgZHVtbXlfcmFuZ2VfY2hlY2tlcjxUcmFpdHM+CisgIHsKKyAgICB0eXBlZGVmIFRyYWl0cyB0cmFpdHMgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlICAgc291cmNlX3R5cGUgICA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnJlc3VsdF90eXBlICAgcmVzdWx0X3R5cGUgICA7CisKKyAgICBzdGF0aWMgcmVzdWx0X3R5cGUgbG93X2xldmVsX2NvbnZlcnQgKCBhcmd1bWVudF90eXBlIHMgKSB7IHJldHVybiBzIDsgfQorICAgIHN0YXRpYyBzb3VyY2VfdHlwZSBuZWFyYnlpbnQgICAgICAgICAoIGFyZ3VtZW50X3R5cGUgcyApIHsgcmV0dXJuIHMgOyB9CisgICAgc3RhdGljIHJlc3VsdF90eXBlIGNvbnZlcnQgICAgICAgICAgICggYXJndW1lbnRfdHlwZSBzICkgeyByZXR1cm4gcyA7IH0KKyAgfSA7CisKKworICAvLworICAvLyBSb3VuZGluZyBDb252ZXJ0ZXIgOiB1c2VkIGZvciBmbG9hdCB0byBpbnRlZ3JhbCBjb252ZXJzaW9ucy4KKyAgLy8KKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzLGNsYXNzIFJhbmdlQ2hlY2tlcixjbGFzcyBSYXdDb252ZXJ0ZXIsY2xhc3MgRmxvYXQySW50Um91bmRlcj4KKyAgc3RydWN0IHJvdW5kaW5nX2NvbnZlcnRlciA6IHB1YmxpYyBzdGQ6OnVuYXJ5X2Z1bmN0aW9uPCAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBUcmFpdHM6OnJlc3VsdF90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHB1YmxpYyBSYW5nZUNoZWNrZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHB1YmxpYyBGbG9hdDJJbnRSb3VuZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxwdWJsaWMgUmF3Q29udmVydGVyCisgIHsKKyAgICB0eXBlZGVmIFJhbmdlQ2hlY2tlciAgICAgUmFuZ2VDaGVja2VyQmFzZSA7CisgICAgdHlwZWRlZiBGbG9hdDJJbnRSb3VuZGVyIEZsb2F0MkludFJvdW5kZXJCYXNlIDsKKyAgICB0eXBlZGVmIFJhd0NvbnZlcnRlciAgICAgUmF3Q29udmVydGVyQmFzZSA7CisKKyAgICB0eXBlZGVmIFRyYWl0cyB0cmFpdHMgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlICAgc291cmNlX3R5cGUgICA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnJlc3VsdF90eXBlICAgcmVzdWx0X3R5cGUgICA7CisKKyAgICBzdGF0aWMgcmVzdWx0X3R5cGUgY29udmVydCAoIGFyZ3VtZW50X3R5cGUgcyApCisgICAgeworICAgICAgUmFuZ2VDaGVja2VyQmFzZTo6dmFsaWRhdGVfcmFuZ2Uocyk7CisgICAgICBzb3VyY2VfdHlwZSBzMSA9IEZsb2F0MkludFJvdW5kZXJCYXNlOjpuZWFyYnlpbnQocyk7CisgICAgICByZXR1cm4gUmF3Q29udmVydGVyQmFzZTo6bG93X2xldmVsX2NvbnZlcnQoczEpOworICAgIH0KKyAgfSA7CisKKworICAvLworICAvLyBOb24tUm91bmRpbmcgQ29udmVydGVyIDogdXNlZCBmb3IgYWxsIG90aGVyIGNvbnZlcnNpb25zLgorICAvLworICB0ZW1wbGF0ZTxjbGFzcyBUcmFpdHMsY2xhc3MgUmFuZ2VDaGVja2VyLGNsYXNzIFJhd0NvbnZlcnRlcj4KKyAgc3RydWN0IG5vbl9yb3VuZGluZ19jb252ZXJ0ZXIgOiBwdWJsaWMgc3RkOjp1bmFyeV9mdW5jdGlvbjwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBUcmFpdHM6OnJlc3VsdF90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxwdWJsaWMgUmFuZ2VDaGVja2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAscHVibGljIFJhd0NvbnZlcnRlcgorICB7CisgICAgdHlwZWRlZiBSYW5nZUNoZWNrZXIgUmFuZ2VDaGVja2VyQmFzZSA7CisgICAgdHlwZWRlZiBSYXdDb252ZXJ0ZXIgUmF3Q29udmVydGVyQmFzZSA7CisKKyAgICB0eXBlZGVmIFRyYWl0cyB0cmFpdHMgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnNvdXJjZV90eXBlICAgc291cmNlX3R5cGUgICA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OmFyZ3VtZW50X3R5cGUgYXJndW1lbnRfdHlwZSA7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUcmFpdHM6OnJlc3VsdF90eXBlICAgcmVzdWx0X3R5cGUgICA7CisKKyAgICBzdGF0aWMgc291cmNlX3R5cGUgbmVhcmJ5aW50ICggYXJndW1lbnRfdHlwZSBzICkgeyByZXR1cm4gcyA7IH0KKworICAgIHN0YXRpYyByZXN1bHRfdHlwZSBjb252ZXJ0ICggYXJndW1lbnRfdHlwZSBzICkKKyAgICB7CisgICAgICBSYW5nZUNoZWNrZXJCYXNlOjp2YWxpZGF0ZV9yYW5nZShzKTsKKyAgICAgIHJldHVybiBSYXdDb252ZXJ0ZXJCYXNlOjpsb3dfbGV2ZWxfY29udmVydChzKTsKKyAgICB9CisgIH0gOworCisKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gU2VsZWN0b3JzIGZvciB0aGUgb3B0aW1pemVkIENvbnZlcnRlciBjbGFzcy4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgdGVtcGxhdGU8Y2xhc3MgVHJhaXRzLGNsYXNzIE92ZXJmbG93SGFuZGxlcixjbGFzcyBGbG9hdDJJbnRSb3VuZGVyLGNsYXNzIFJhd0NvbnZlcnRlciwgY2xhc3MgVXNlclJhbmdlQ2hlY2tlcj4KKyAgc3RydWN0IGdldF9ub25fdHJpdmlhbF9jb252ZXJ0ZXIKKyAgeworICAgIHR5cGVkZWYgR2V0UkM8VHJhaXRzLE92ZXJmbG93SGFuZGxlcixGbG9hdDJJbnRSb3VuZGVyPiBJbnRlcm5hbFJhbmdlQ2hlY2tlclEgOworCisgICAgdHlwZWRlZiBpc19zYW1lPFVzZXJSYW5nZUNoZWNrZXIsVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXI+IHVzZV9pbnRlcm5hbF9SQyA7CisKKyAgICB0eXBlZGVmIG1wbDo6aWRlbnRpdHk8VXNlclJhbmdlQ2hlY2tlcj4gVXNlclJhbmdlQ2hlY2tlclEgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgbXBsOjpldmFsX2lmPHVzZV9pbnRlcm5hbF9SQyxJbnRlcm5hbFJhbmdlQ2hlY2tlclEsVXNlclJhbmdlQ2hlY2tlclE+Ojp0eXBlCisgICAgICAgIFJhbmdlQ2hlY2tlciA7CisKKyAgICB0eXBlZGVmIG5vbl9yb3VuZGluZ19jb252ZXJ0ZXI8VHJhaXRzLFJhbmdlQ2hlY2tlcixSYXdDb252ZXJ0ZXI+ICAgICAgICAgICAgICBOb25Sb3VuZGluZyA7CisgICAgdHlwZWRlZiByb3VuZGluZ19jb252ZXJ0ZXI8VHJhaXRzLFJhbmdlQ2hlY2tlcixSYXdDb252ZXJ0ZXIsRmxvYXQySW50Um91bmRlcj4gUm91bmRpbmcgOworCisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PE5vblJvdW5kaW5nPiBOb25Sb3VuZGluZ1EgOworICAgIHR5cGVkZWYgbXBsOjppZGVudGl0eTxSb3VuZGluZz4gICAgUm91bmRpbmdRICAgIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHJhaXRzOjppbnRfZmxvYXRfbWl4dHVyZSBpbnRfZmxvYXRfbWl4dHVyZSA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lCisgICAgICBmb3JfaW50X2Zsb2F0X21peHR1cmU8aW50X2Zsb2F0X21peHR1cmUsIE5vblJvdW5kaW5nUSwgTm9uUm91bmRpbmdRLCBSb3VuZGluZ1EsIE5vblJvdW5kaW5nUT46OnR5cGUKKyAgICAgICAgc2VsZWN0b3IgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3Rvcjo6dHlwZSB0eXBlIDsKKyAgfSA7CisKKyAgdGVtcGxhdGU8IGNsYXNzIFRyYWl0cworICAgICAgICAgICAsY2xhc3MgT3ZlcmZsb3dIYW5kbGVyCisgICAgICAgICAgICxjbGFzcyBGbG9hdDJJbnRSb3VuZGVyCisgICAgICAgICAgICxjbGFzcyBSYXdDb252ZXJ0ZXIKKyAgICAgICAgICAgLGNsYXNzIFVzZXJSYW5nZUNoZWNrZXIKKyAgICAgICAgICA+CisgIHN0cnVjdCBnZXRfY29udmVydGVyX2ltcGwKKyAgeworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoIDB4MDU2MSApICkKKyAgICAvLyBiY2M1NSBwcmVmZXJzIHNvbWV0aW1lcyB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIHRvIGJlIGV4cGxpY2l0IGxvY2FsIHR5cGVzLgorICAgIC8vIChub3RpY2UgdGhhdCBpcyBpcyBpbGxlZ2FsIHRvIHJldXNlIHRoZSBuYW1lcyBsaWtlIHRoaXMpCisgICAgdHlwZWRlZiBUcmFpdHMgICAgICAgICAgIFRyYWl0cyA7CisgICAgdHlwZWRlZiBPdmVyZmxvd0hhbmRsZXIgIE92ZXJmbG93SGFuZGxlciA7CisgICAgdHlwZWRlZiBGbG9hdDJJbnRSb3VuZGVyIEZsb2F0MkludFJvdW5kZXIgOworICAgIHR5cGVkZWYgUmF3Q29udmVydGVyICAgICBSYXdDb252ZXJ0ZXIgOworICAgIHR5cGVkZWYgVXNlclJhbmdlQ2hlY2tlciBVc2VyUmFuZ2VDaGVja2VyIDsKKyNlbmRpZgorCisgICAgdHlwZWRlZiB0cml2aWFsX2NvbnZlcnRlcl9pbXBsPFRyYWl0cz4gVHJpdmlhbCA7CisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5ICAgICAgICA8VHJpdmlhbD4gVHJpdmlhbFEgOworCisgICAgdHlwZWRlZiBnZXRfbm9uX3RyaXZpYWxfY29udmVydGVyPCBUcmFpdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLE92ZXJmbG93SGFuZGxlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsRmxvYXQySW50Um91bmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsUmF3Q29udmVydGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxVc2VyUmFuZ2VDaGVja2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBOb25Ucml2aWFsUSA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFRyYWl0czo6dHJpdmlhbCB0cml2aWFsIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpldmFsX2lmPHRyaXZpYWwsVHJpdmlhbFEsTm9uVHJpdmlhbFE+Ojp0eXBlIHR5cGUgOworICB9IDsKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZGV0YWlsCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9pbnRfZmxvYXRfbWl4dHVyZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvaW50X2Zsb2F0X21peHR1cmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzN2I1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvaW50X2Zsb2F0X21peHR1cmUuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0RFVEFJTF9JTlRfRkxPQVRfTUlYVFVSRV9GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fREVUQUlMX0lOVF9GTE9BVF9NSVhUVVJFX0ZMQ18xMk5PVjIwMDJfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9jb25maWcuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L2xpbWl0cy5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vaW50X2Zsb2F0X21peHR1cmVfZW51bS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9tZXRhLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMgeyBuYW1lc3BhY2UgY29udmRldGFpbAoreworICAvLyBJbnRlZ3JhbCBDb25zdGFudHMgZm9yICdJbnRGbG9hdE1peHR1cmUnCisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPGludF9mbG9hdF9taXh0dXJlX2VudW0sIGludGVncmFsX3RvX2ludGVncmFsPiBpbnQyaW50X2MgOworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxpbnRfZmxvYXRfbWl4dHVyZV9lbnVtLCBpbnRlZ3JhbF90b19mbG9hdD4gICAgaW50MmZsb2F0X2MgOworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxpbnRfZmxvYXRfbWl4dHVyZV9lbnVtLCBmbG9hdF90b19pbnRlZ3JhbD4gICAgZmxvYXQyaW50X2MgOworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzxpbnRfZmxvYXRfbWl4dHVyZV9lbnVtLCBmbG9hdF90b19mbG9hdD4gICAgICAgZmxvYXQyZmxvYXRfYyA7CisKKyAgLy8gTWV0YWZ1bmN0aW9uOgorICAvLworICAvLyAgIGdldF9pbnRfZmxvYXRfbWl4dHVyZTxULFM+Ojp0eXBlCisgIC8vCisgIC8vIFNlbGVjdHMgdGhlIGFwcHJvcHJpYXRlIEludC1GbG9hdCBNaXh0dXJlIEludGVncmFsIENvbnN0YW50IGZvciB0aGUgY29tYmluYXRpb24gVCxTLgorICAvLworICB0ZW1wbGF0ZTxjbGFzcyBULGNsYXNzIFM+CisgIHN0cnVjdCBnZXRfaW50X2Zsb2F0X21peHR1cmUKKyAgeworICAgIHR5cGVkZWYgbXBsOjpib29sXzwgOjpzdGQ6Om51bWVyaWNfbGltaXRzPFM+Ojppc19pbnRlZ2VyID4gU19pbnQgOworICAgIHR5cGVkZWYgbXBsOjpib29sXzwgOjpzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19pbnRlZ2VyID4gVF9pbnQgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZm9yX2JvdGg8U19pbnQsIFRfaW50LCBpbnQyaW50X2MsIGludDJmbG9hdF9jLCBmbG9hdDJpbnRfYywgZmxvYXQyZmxvYXRfYz46OnR5cGUKKyAgICAgICAgdHlwZSA7CisgIH0gOworCisgIC8vIE1ldGFmdW5jdGlvbjoKKyAgLy8KKyAgLy8gICBmb3JfaW50X2Zsb2F0X21peHR1cmU8TWl4dHVyZSxpbnRfaW50LGludF9mbG9hdCxmbG9hdF9pbnQsZmxvYXRfZmxvYXQ+Ojp0eXBlCisgIC8vCisgIC8vIHtNaXh0dXJlfSBpcyBvbmUgb2YgdGhlIEludGVncmFsIENvbnN0YW50cyBmb3IgTWl4dHVyZSwgZGVjbGFyZWQgYWJvdmUuCisgIC8vIHtpbnRfaW50LGludF9mbG9hdCxmbG9hdF9pbnQsZmxvYXRfZmxvYXR9IGFyZSBhcmlidHJhcnkgdHlwZXMuIChub3QgbWV0YWZ1bmN0aW9ucykKKyAgLy8KKyAgLy8gQWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiAnSW50RmxvYXRNaXh0dXJlJywgc2VsZWN0cyB0aGUgY29ycmVzcG9uZGluZyB0eXBlLgorICAvLworICB0ZW1wbGF0ZTxjbGFzcyBJbnRGbG9hdE1peHR1cmUsIGNsYXNzIEludDJJbnQsIGNsYXNzIEludDJGbG9hdCwgY2xhc3MgRmxvYXQySW50LCBjbGFzcyBGbG9hdDJGbG9hdD4KKyAgc3RydWN0IGZvcl9pbnRfZmxvYXRfbWl4dHVyZQorICB7CisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgY3Rfc3dpdGNoNDxJbnRGbG9hdE1peHR1cmUKKyAgICAgICAgICAgICAgICAgLGludDJpbnRfYywgaW50MmZsb2F0X2MsIGZsb2F0MmludF9jICAvLyBkZWZhdWx0CisgICAgICAgICAgICAgICAgICxJbnQySW50ICAsIEludDJGbG9hdCAgLCBGbG9hdDJJbnQgICwgRmxvYXQyRmxvYXQKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgIHR5cGUgOworICB9IDsKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZGV0YWlsCisKKyNlbmRpZgorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2lzX3N1YnJhbmdlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvaXNfc3VicmFuZ2VkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Zjg0ODcyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2lzX3N1YnJhbmdlZC5ocHAKQEAgLTAsMCArMSwyMzQgQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0RFVEFJTF9JU19TVUJSQU5HRURfRkxDXzEyTk9WMjAwMl9IUFAKKyNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0RFVEFJTF9JU19TVUJSQU5HRURfRkxDXzEyTk9WMjAwMl9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L2NvbmZpZy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbGltaXRzLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9pbnQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9tdWx0aXBsaWVzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvbGVzcy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbXBsL2VxdWFsX3RvLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9tZXRhLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL2ludF9mbG9hdF9taXh0dXJlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3NpZ25fbWl4dHVyZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC91ZHRfYnVpbHRpbl9taXh0dXJlLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMgeyBuYW1lc3BhY2UgY29udmRldGFpbAoreworICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGNvbXBpbGUgdGltZSBwcmVkaWNhdGUgIlQgaXMgc3VicmFuZ2VkIgorICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gZm9yIGludGVncmFsIHRvIGludGVncmFsIGNvbnZlcnNpb25zCisgICAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICAgIHN0cnVjdCBzdWJyYW5nZWRfU2lnMlVuc2lnCisgICAgeworICAgICAgLy8gU2lnbmVkIHRvIHVuc2lnbmVkIGNvbnZlcnNpb25zIGFyZSAnc3VicmFuZ2VkJyBiZWNhdXNlIG9mIHBvc3NpYmxlIGxvb3NlCisgICAgICAvLyBvZiBuZWdhdGl2ZSB2YWx1ZXMuCisgICAgICB0eXBlZGVmIG1wbDo6dHJ1ZV8gdHlwZSA7CisgICAgfSA7CisKKyAgICAvLyBmb3IgdW5zaWduZWQgaW50ZWdyYWwgdG8gc2lnbmVkIGludGVncmFsIGNvbnZlcnNpb25zCisgICAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICAgIHN0cnVjdCBzdWJyYW5nZWRfVW5zaWcyU2lnCisgICAgeworICAgICAgIC8vIElNUE9SVEFOVCBOT1RFOgorICAgICAgIC8vCisgICAgICAgLy8gVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCBzaWduZWQvdW5zaWduZWQgaW50ZWdyYWwgdmFsdWVzIGFyZSByZXByZXNlbnRlZAorICAgICAgIC8vIHN1Y2ggdGhhdDoKKyAgICAgICAvLworICAgICAgIC8vICBudW1lcmljX2xpbWl0czxzaWduZWQgVD46OmRpZ2l0cyArIDEgPT0gbnVtZXJpY19saW1pdHM8dW5zaWduZWQgVD46OmRpZ2l0cworICAgICAgIC8vCisgICAgICAgLy8gVGhlICcrMScgaXMgcmVxdWlyZWQgc2luY2UgbnVtZXJpY19saW1pdHM8Pjo6ZGlnaXRzIGdpdmVzIDEgYml0IGxlc3MgZm9yIHNpZ25lZCBpbnRlZ3JhbCB0eXBlcy4KKyAgICAgICAvLworICAgICAgIC8vIFRoaXMgZmFjdCBpcyB1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgbG9naWM6CisgICAgICAgLy8KKyAgICAgICAvLyAgaWYgKCAobnVtZXJpY19saW1pdHM8VD46OmRpZ2l0cysxKSA8ICgyKm51bWVyaWNfbGltaXRzPFM+OjpkaWdpdHMpICkKKyAgICAgICAvLyAgICB0aGVuIHRoZSBjb252ZXJzaW9uIGlzIHN1YnJhbmdlZC4KKyAgICAgICAvLworCisgICAgICAgdHlwZWRlZiBtcGw6OmludF88IDo6c3RkOjpudW1lcmljX2xpbWl0czxTPjo6ZGlnaXRzID4gU19kaWdpdHMgOworICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmRpZ2l0cyA+IFRfZGlnaXRzIDsKKworICAgICAgIC8vIFQgaXMgc2lnbmVkLCBzbyB0YWtlIGRpZ2l0cysxCisgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUX2RpZ2l0czo6bmV4dCB1X1RfZGlnaXRzIDsKKworICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPDI+IFR3byA7CisKKyAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bXVsdGlwbGllczxTX2RpZ2l0cyxUd28+Ojp0eXBlIFNfZGlnaXRzX3RpbWVzXzIgOworCisgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Omxlc3M8dV9UX2RpZ2l0cyxTX2RpZ2l0c190aW1lc18yPjo6dHlwZSB0eXBlIDsKKyAgICB9IDsKKworICAgIC8vIGZvciBpbnRlZ3JhbCB0byBpbnRlZ3JhbCBjb252ZXJzaW9ucyBvZiB0aGUgc2FtZSBzaWduLgorICAgIHRlbXBsYXRlPGNsYXNzIFQsY2xhc3MgUz4KKyAgICBzdHJ1Y3Qgc3VicmFuZ2VkX1NhbWVTaWduCisgICAgeworICAgICAgIC8vIEFuIGludGVncmFsIGNvbnZlcnNpb24gb2YgdGhlIHNhbWUgc2lnbiBpcyBzdWJyYW5nZWQgaWYgZGlnaXRzKFQpIDwgZGlnaXRzKFMpLgorCisgICAgICAgdHlwZWRlZiBtcGw6OmludF88IDo6c3RkOjpudW1lcmljX2xpbWl0czxTPjo6ZGlnaXRzID4gU19kaWdpdHMgOworICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmRpZ2l0cyA+IFRfZGlnaXRzIDsKKworICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpsZXNzPFRfZGlnaXRzLFNfZGlnaXRzPjo6dHlwZSB0eXBlIDsKKyAgICB9IDsKKworICAgIC8vIGZvciBpbnRlZ3JhbCB0byBmbG9hdCBjb252ZXJzaW9ucworICAgIHRlbXBsYXRlPGNsYXNzIFQsY2xhc3MgUz4KKyAgICBzdHJ1Y3Qgc3VicmFuZ2VkX0ludDJGbG9hdAorICAgIHsKKyAgICAgIHR5cGVkZWYgbXBsOjpmYWxzZV8gdHlwZSA7CisgICAgfSA7CisKKyAgICAvLyBmb3IgZmxvYXQgdG8gaW50ZWdyYWwgY29udmVyc2lvbnMKKyAgICB0ZW1wbGF0ZTxjbGFzcyBULGNsYXNzIFM+CisgICAgc3RydWN0IHN1YnJhbmdlZF9GbG9hdDJJbnQKKyAgICB7CisgICAgICB0eXBlZGVmIG1wbDo6dHJ1ZV8gdHlwZSA7CisgICAgfSA7CisKKyAgICAvLyBmb3IgZmxvYXQgdG8gZmxvYXQgY29udmVyc2lvbnMKKyAgICB0ZW1wbGF0ZTxjbGFzcyBULGNsYXNzIFM+CisgICAgc3RydWN0IHN1YnJhbmdlZF9GbG9hdDJGbG9hdAorICAgIHsKKyAgICAgIC8vIElmIGJvdGggVCBhbmQgUyBhcmUgZmxvYXRzLAorICAgICAgLy8gY29tcGFyZSBleHBvbmVudCBiaXRzIGFuZCBpZiB0aGV5IG1hdGNoLCBtYW50aXNhIGJpdHMuCisKKyAgICAgIHR5cGVkZWYgbXBsOjppbnRfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8Uz46OmRpZ2l0cyA+IFNfbWFudGlzYSA7CisgICAgICB0eXBlZGVmIG1wbDo6aW50XzwgOjpzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpkaWdpdHMgPiBUX21hbnRpc2EgOworCisgICAgICB0eXBlZGVmIG1wbDo6aW50XzwgOjpzdGQ6Om51bWVyaWNfbGltaXRzPFM+OjptYXhfZXhwb25lbnQgPiBTX2V4cG9uZW50IDsKKyAgICAgIHR5cGVkZWYgbXBsOjppbnRfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heF9leHBvbmVudCA+IFRfZXhwb25lbnQgOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6bGVzczxUX2V4cG9uZW50LFNfZXhwb25lbnQ+Ojp0eXBlIFRfc21hbGxlcl9leHBvbmVudCA7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjplcXVhbF90bzxUX2V4cG9uZW50LFNfZXhwb25lbnQ+Ojp0eXBlIGVxdWFsX2V4cG9uZW50cyA7CisKKyAgICAgIHR5cGVkZWYgbXBsOjpsZXNzPFRfbWFudGlzYSxTX21hbnRpc2E+IFRfc21hbGxlcl9tYW50aXNhIDsKKworICAgICAgdHlwZWRlZiBtcGw6OmV2YWxfaWY8ZXF1YWxfZXhwb25lbnRzLFRfc21hbGxlcl9tYW50aXNhLG1wbDo6ZmFsc2VfPiBub3RfYmlnZ2VyX2V4cG9uZW50X2Nhc2UgOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lCisgICAgICAgIG1wbDo6ZXZhbF9pZjxUX3NtYWxsZXJfZXhwb25lbnQsbXBsOjp0cnVlXyxub3RfYmlnZ2VyX2V4cG9uZW50X2Nhc2U+Ojp0eXBlCisgICAgICAgICAgdHlwZSA7CisgICAgfSA7CisKKyAgICAvLyBmb3IgVWR0IHRvIGJ1aWx0LWluIGNvbnZlcnNpb25zCisgICAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICAgIHN0cnVjdCBzdWJyYW5nZWRfVWR0MkJ1aWx0SW4KKyAgICB7CisgICAgICB0eXBlZGVmIG1wbDo6dHJ1ZV8gdHlwZSA7CisgICAgfSA7CisKKyAgICAvLyBmb3IgYnVpbHQtaW4gdG8gVWR0IGNvbnZlcnNpb25zCisgICAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICAgIHN0cnVjdCBzdWJyYW5nZWRfQnVpbHRJbjJVZHQKKyAgICB7CisgICAgICB0eXBlZGVmIG1wbDo6ZmFsc2VfIHR5cGUgOworICAgIH0gOworCisgICAgLy8gZm9yIFVkdCB0byBVZHQgY29udmVyc2lvbnMKKyAgICB0ZW1wbGF0ZTxjbGFzcyBULGNsYXNzIFM+CisgICAgc3RydWN0IHN1YnJhbmdlZF9VZHQyVWR0CisgICAgeworICAgICAgdHlwZWRlZiBtcGw6OmZhbHNlXyB0eXBlIDsKKyAgICB9IDsKKworICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgLy8gU2VsZWN0b3JzIGZvciB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBzdWJyYW5nZWQgcHJlZGljYXRlCisgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICAgIHN0cnVjdCBnZXRfc3VicmFuZ2VkX0ludDJJbnQKKyAgICB7CisgICAgICB0eXBlZGVmIHN1YnJhbmdlZF9TYW1lU2lnbjxULFM+ICBTaWcyU2lnICAgICA7CisgICAgICB0eXBlZGVmIHN1YnJhbmdlZF9TaWcyVW5zaWc8VCxTPiBTaWcyVW5zaWcgICA7CisgICAgICB0eXBlZGVmIHN1YnJhbmdlZF9VbnNpZzJTaWc8VCxTPiBVbnNpZzJTaWcgICA7CisgICAgICB0eXBlZGVmIFNpZzJTaWcgICAgICAgICAgICAgICAgICBVbnNpZzJVbnNpZyA7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZ2V0X3NpZ25fbWl4dHVyZTxULFM+Ojp0eXBlIHNpZ25fbWl4dHVyZSA7CisKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgICAgZm9yX3NpZ25fbWl4dHVyZTxzaWduX21peHR1cmUsIFNpZzJTaWcsIFNpZzJVbnNpZywgVW5zaWcyU2lnLCBVbnNpZzJVbnNpZz46OnR5cGUKKyAgICAgICAgICAgdHlwZSA7CisgICAgfSA7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBULGNsYXNzIFM+CisgICAgc3RydWN0IGdldF9zdWJyYW5nZWRfQnVpbHRJbjJCdWlsdEluCisgICAgeworICAgICAgdHlwZWRlZiBnZXRfc3VicmFuZ2VkX0ludDJJbnQ8VCxTPiBJbnQySW50USA7CisKKyAgICAgIHR5cGVkZWYgc3VicmFuZ2VkX0ludDJGbG9hdCAgPFQsUz4gSW50MkZsb2F0ICAgOworICAgICAgdHlwZWRlZiBzdWJyYW5nZWRfRmxvYXQySW50ICA8VCxTPiBGbG9hdDJJbnQgICA7CisgICAgICB0eXBlZGVmIHN1YnJhbmdlZF9GbG9hdDJGbG9hdDxULFM+IEZsb2F0MkZsb2F0IDsKKworICAgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PEludDJGbG9hdCAgPiBJbnQyRmxvYXRRICAgOworICAgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PEZsb2F0MkludCAgPiBGbG9hdDJJbnRRICAgOworICAgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PEZsb2F0MkZsb2F0PiBGbG9hdDJGbG9hdFEgOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGdldF9pbnRfZmxvYXRfbWl4dHVyZTxULFM+Ojp0eXBlIGludF9mbG9hdF9taXh0dXJlIDsKKworICAgICAgdHlwZWRlZiBmb3JfaW50X2Zsb2F0X21peHR1cmU8aW50X2Zsb2F0X21peHR1cmUsIEludDJJbnRRLCBJbnQyRmxvYXRRLCBGbG9hdDJJbnRRLCBGbG9hdDJGbG9hdFE+IGZvcl8gOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZvcl86OnR5cGUgc2VsZWN0ZWQgOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdGVkOjp0eXBlIHR5cGUgOworICAgIH0gOworCisgICAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICAgIHN0cnVjdCBnZXRfc3VicmFuZ2VkCisgICAgeworICAgICAgdHlwZWRlZiBnZXRfc3VicmFuZ2VkX0J1aWx0SW4yQnVpbHRJbjxULFM+IEJ1aWx0SW4yQnVpbHRJblEgOworCisgICAgICB0eXBlZGVmIHN1YnJhbmdlZF9CdWlsdEluMlVkdDxULFM+IEJ1aWx0SW4yVWR0IDsKKyAgICAgIHR5cGVkZWYgc3VicmFuZ2VkX1VkdDJCdWlsdEluPFQsUz4gVWR0MkJ1aWx0SW4gOworICAgICAgdHlwZWRlZiBzdWJyYW5nZWRfVWR0MlVkdDxULFM+ICAgICBVZHQyVWR0IDsKKworICAgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PEJ1aWx0SW4yVWR0PiBCdWlsdEluMlVkdFEgOworICAgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PFVkdDJCdWlsdEluPiBVZHQyQnVpbHRJblEgOworICAgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PFVkdDJVZHQgICAgPiBVZHQyVWR0USAgICAgOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGdldF91ZHRfYnVpbHRpbl9taXh0dXJlPFQsUz46OnR5cGUgdWR0X2J1aWx0aW5fbWl4dHVyZSA7CisgICAgICAKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgICAgZm9yX3VkdF9idWlsdGluX21peHR1cmU8dWR0X2J1aWx0aW5fbWl4dHVyZSwgQnVpbHRJbjJCdWlsdEluUSwgQnVpbHRJbjJVZHRRLCBVZHQyQnVpbHRJblEsIFVkdDJVZHRRPjo6dHlwZQorICAgICAgICAgIHNlbGVjdGVkIDsKKworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3RlZDo6dHlwZSBzZWxlY3RlZDIgOworIAorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3RlZDI6OnR5cGUgdHlwZSA7CisgICAgfSA7CisKKworICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgLy8gVG9wIGxldmVsIGltcGxlbWVudGF0aW9uIHNlbGVjdG9yLgorICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgUz4KKyAgc3RydWN0IGdldF9pc19zdWJyYW5nZWQKKyAgeworICAgIHR5cGVkZWYgZ2V0X3N1YnJhbmdlZDxULFM+ICAgICAgICAgbm9uX3RyaXZpYWxfY2FzZSA7CisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PG1wbDo6ZmFsc2VfPiB0cml2aWFsX2Nhc2UgOworCisgICAgdHlwZWRlZiBpc19zYW1lPFQsUz4gaXNfdHJpdmlhbCA7CisgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPGlzX3RyaXZpYWwsdHJpdmlhbF9jYXNlLG5vbl90cml2aWFsX2Nhc2U+Ojp0eXBlIHNlbGVjdGVkIDsKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdGVkOjp0eXBlIHR5cGUgOworICB9IDsKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZGV0YWlsCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9tZXRhLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9tZXRhLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzlkNjcwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL21ldGEuaHBwCkBAIC0wLDAgKzEsMTIwIEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8gCisjaWZuZGVmIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9ERVRBSUxfTUVUQV9GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fREVUQUlMX01FVEFfRkxDXzEyTk9WMjAwMl9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaWYuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvZXF1YWxfdG8uaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9ub3QuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9hbmQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9ib29sLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwIgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbnVtZXJpYyB7IG5hbWVzcGFjZSBjb252ZGV0YWlsCit7CisgICB0ZW1wbGF0ZTwgY2xhc3MgVDEsIGNsYXNzIFQyPgorICAgc3RydWN0IGVxdWFsX3RvCisgICB7CisgICAjaWYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQorICAgCisgICAgICAgZW51bSB7IHggPSAoIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChUMSk6OnZhbHVlID09IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChUMik6OnZhbHVlICkgfTsKKyAgICAgICAgICAgCisgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0geCk7CisgICAgICAgICAgIAorICAgICAgIHR5cGVkZWYgbXBsOjpib29sXzx2YWx1ZT4gdHlwZTsKKyAgICAgICAKKyAgICNlbHNlCisgICAKKyAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoCisgICAgICAgICAgICAgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKFQxKTo6dmFsdWUgCisgICAgICAgICAgICAgICA9PSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoVDIpOjp2YWx1ZQorICAgICAgICAgICApKTsKKyAgICAgICAgICAgCisgICAgICAgdHlwZWRlZiBtcGw6OmJvb2xfPCgKKyAgICAgICAgICAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoVDEpOjp2YWx1ZSAKKyAgICAgICAgICAgICAgID09IEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChUMik6OnZhbHVlCisgICAgICAgICAgICk+IHR5cGU7CisgICAjZW5kaWYKKyAgIH07CisgICAgCisvLyBNZXRhZnVuY3Rpb246CisgIC8vCisgIC8vICAgY3Rfc3dpdGNoNDxWYWx1ZSxDYXNlMFZhbCxDYXNlMVZhbCxDYXNlMlZhbCxDYXNlMFR5cGUsQ2FzZTFUeXBlLENhc2UyVHlwZSxEZWZhdWx0VHlwZT46OnR5cGUKKyAgLy8KKyAgLy8ge1ZhbHVlLENhc2UoWClWYWx9IGFyZSBJbnRlZ3JhbCBDb25zdGFudHMgKHN1Y2ggYXM6IG1wbDo6aW50Xzw+KQorICAvLyB7Q2FzZShYKVR5cGUsRGVmYXVsdFR5cGV9IGFyZSBhcmJpdHJhcnkgdHlwZXMuIChub3QgbWV0YWZ1bmN0aW9ucykKKyAgLy8KKyAgLy8gUmV0dXJucyBDYXNlKFgpVHlwZSBpZiBWYWw9PUNhc2UoWClWYWw7IERlZmF1bHRUeXBlIG90aGVyd2lzZS4KKyAgLy8KKyAgdGVtcGxhdGU8Y2xhc3MgVmFsdWUsCisgICAgICAgICAgIGNsYXNzIENhc2UwVmFsLAorICAgICAgICAgICBjbGFzcyBDYXNlMVZhbCwKKyAgICAgICAgICAgY2xhc3MgQ2FzZTJWYWwsCisgICAgICAgICAgIGNsYXNzIENhc2UwVHlwZSwKKyAgICAgICAgICAgY2xhc3MgQ2FzZTFUeXBlLAorICAgICAgICAgICBjbGFzcyBDYXNlMlR5cGUsCisgICAgICAgICAgIGNsYXNzIERlZmF1bHRUeXBlCisgICAgICAgICAgPgorICBzdHJ1Y3QgY3Rfc3dpdGNoNAorICB7CisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PENhc2UwVHlwZT4gQ2FzZTBUeXBlUSA7CisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PENhc2UxVHlwZT4gQ2FzZTFUeXBlUSA7CisKKyAgICB0eXBlZGVmIGVxdWFsX3RvPFZhbHVlLENhc2UwVmFsPiBpc19jYXNlMCA7CisgICAgdHlwZWRlZiBlcXVhbF90bzxWYWx1ZSxDYXNlMVZhbD4gaXNfY2FzZTEgOworICAgIHR5cGVkZWYgZXF1YWxfdG88VmFsdWUsQ2FzZTJWYWw+IGlzX2Nhc2UyIDsKKworICAgIHR5cGVkZWYgbXBsOjppZl88aXNfY2FzZTIsQ2FzZTJUeXBlLERlZmF1bHRUeXBlPiBjaG9vc2VfMl8zUSA7CisgICAgdHlwZWRlZiBtcGw6OmV2YWxfaWY8aXNfY2FzZTEsQ2FzZTFUeXBlUSxjaG9vc2VfMl8zUT4gY2hvb3NlXzFfMl8zUSA7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lCisgICAgICBtcGw6OmV2YWxfaWY8aXNfY2FzZTAsQ2FzZTBUeXBlUSxjaG9vc2VfMV8yXzNRPjo6dHlwZQorICAgICAgICB0eXBlIDsKKyAgfSA7CisKKworCisKKyAgLy8gTWV0YWZ1bmN0aW9uOgorICAvLworICAvLyAgIGZvcl9ib3RoPGV4cHIwLGV4cHIxLFRULFRGLEZULEZGPjo6dHlwZQorICAvLworICAvLyB7ZXhwMCxleHByMX0gYXJlIEJvb2xlYW4gSW50ZWdyYWwgQ29uc3RhbnRzCisgIC8vIHtUVCxURixGVCxGRn0gYXJlIGFyaWJ0cmFyeSB0eXBlcy4gKG5vdCBtZXRhZnVuY3Rpb25zKQorICAvLworICAvLyBBY2NvcmRpbmcgdG8gdGhlIGNvbWJpbmVkIGJvb2xlYW4gdmFsdWUgb2YgJ2V4cHIwICYmIGV4cHIxJywgc2VsZWN0cyB0aGUgY29ycmVzcG9uZGluZyB0eXBlLgorICAvLworICB0ZW1wbGF0ZTxjbGFzcyBleHByMCwgY2xhc3MgZXhwcjEsIGNsYXNzIFRULCBjbGFzcyBURiwgY2xhc3MgRlQsIGNsYXNzIEZGPgorICBzdHJ1Y3QgZm9yX2JvdGgKKyAgeworICAgIHR5cGVkZWYgbXBsOjppZGVudGl0eTxURj4gVEZfUSA7CisgICAgdHlwZWRlZiBtcGw6OmlkZW50aXR5PFRUPiBUVF9RIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpub3RfPGV4cHIwPjo6dHlwZSBub3RfZXhwcjAgOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpub3RfPGV4cHIxPjo6dHlwZSBub3RfZXhwcjEgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmFuZF88ZXhwcjAsZXhwcjE+Ojp0eXBlICAgICBjYXNlVFQgOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjphbmRfPGV4cHIwLG5vdF9leHByMT46OnR5cGUgY2FzZVRGIDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YW5kXzxub3RfZXhwcjAsZXhwcjE+Ojp0eXBlIGNhc2VGVCA7CisKKyAgICB0eXBlZGVmIG1wbDo6aWZfPGNhc2VGVCxGVCxGRj4gICAgICAgICAgICAgICAgICAgIGNob29zZV9GVF9GRl9RIDsKKyAgICB0eXBlZGVmIG1wbDo6ZXZhbF9pZjxjYXNlVEYsVEZfUSxjaG9vc2VfRlRfRkZfUT4gY2hvb3NlX1RGX0ZUX0ZGX1EgOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmV2YWxfaWY8Y2FzZVRULFRUX1EsY2hvb3NlX1RGX0ZUX0ZGX1E+Ojp0eXBlIHR5cGUgOworICB9IDsKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZGV0YWlsCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWNjZjVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL251bWVyaWNfY2FzdF90cmFpdHMuaHBwCkBAIC0wLDAgKzEsMTM4IEBACisvLworLy8hIENvcHlyaWdodCAoYykgMjAxMS0yMDEyCisvLyEgQnJhbmRvbiBLb2huCisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9ET05UX1VTRV9QUkVQUk9DRVNTRURfRklMRVMpCisKKyAgICAjaW5jbHVkZSA8bmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9wcmVwcm9jZXNzZWQvbnVtZXJpY19jYXN0X3RyYWl0c19jb21tb24uaHBwPgorCQorCSNpZiAhZGVmaW5lZChCT09TVF9OT19MT05HX0xPTkcpCisgICAgICAgICNpbmNsdWRlIDxuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2xvbmdfbG9uZy5ocHA+CisJI2VuZGlmCisJCisjZWxzZQorI2lmICFCT09TVF9QUF9JU19JVEVSQVRJTkcKKworICAgICNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2VsZW0uaHBwPgorICAgICNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NpemUuaHBwPgorICAgICNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwPgorICAgIAorICAgICNpZiBkZWZpbmVkKF9fV0FWRV9fKSAmJiBkZWZpbmVkKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9DUkVBVEVfUFJFUFJPQ0VTU0VEX0ZJTEVTKQorICAgICAgICAjcHJhZ21hIHdhdmUgb3B0aW9uKHByZXNlcnZlOiAyLCBsaW5lOiAwLCBvdXRwdXQ6ICJwcmVwcm9jZXNzZWQvbnVtZXJpY19jYXN0X3RyYWl0c19jb21tb24uaHBwIikKKyAgICAjZW5kaWYKKy8vCisvLyEgQ29weXJpZ2h0IChjKSAyMDExLTIwMTIKKy8vISBCcmFuZG9uIEtvaG4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworICAgICNpZiBkZWZpbmVkKF9fV0FWRV9fKSAmJiBkZWZpbmVkKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9DUkVBVEVfUFJFUFJPQ0VTU0VEX0ZJTEVTKQorICAgICAgICAjcHJhZ21hIHdhdmUgb3B0aW9uKHByZXNlcnZlOiAxKQorICAgICNlbmRpZgorCQorCS8vISBUaGVzZSBhcmUgdGhlIGFzc3VtZWQgY29tbW9uIGJ1aWx0IGluIGZ1bmRhbWVudGFsIHR5cGVzIChub3QgdHlwZWRlZnMvbWFjcm9zLikKKwkjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9CQVNFX0JVSUxUSU5fVFlQRVMoKSBcCisgICAgICAgIChjaGFyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoc2lnbmVkIGNoYXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKHVuc2lnbmVkIGNoYXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChzaG9ydCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAodW5zaWduZWQgc2hvcnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKGludCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICh1bnNpZ25lZCBpbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAobG9uZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKHVuc2lnbmVkIGxvbmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoZG91YmxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKGxvbmcgZG91YmxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgLyoqKi8KKwkKKyAgICAjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9TRVFfQSgpIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9CQVNFX0JVSUxUSU5fVFlQRVMoKQorCSNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX1NFUV9CKCkgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0JBU0VfQlVJTFRJTl9UWVBFUygpCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBudW1lcmljIHsKKworICAgICNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xICgzLCAoMCwgQk9PU1RfUFBfREVDKEJPT1NUX1BQX1NFUV9TSVpFKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9TRVFfQSgpKSksIDxuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL251bWVyaWNfY2FzdF90cmFpdHMuaHBwPikpCisgICAgI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpICAgIAorCit9fS8vbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOworCisgICAgI2lmIGRlZmluZWQoX19XQVZFX18pICYmIGRlZmluZWQoQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NSRUFURV9QUkVQUk9DRVNTRURfRklMRVMpCisgICAgICAgICNwcmFnbWEgd2F2ZSBvcHRpb24ob3V0cHV0OiBudWxsKQorICAgICNlbmRpZiAgIAorCQorCSNpZiAoIGRlZmluZWQoX19XQVZFX18pICYmIGRlZmluZWQoQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NSRUFURV9QUkVQUk9DRVNTRURfRklMRVMpICkgfHwgIWRlZmluZWQoQk9PU1RfTk9fTE9OR19MT05HKQorCQorCSAgICAjdW5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX1NFUV9BCisJICAgICN1bmRlZiBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fU0VRX0IKKworCSAgICAjaWYgZGVmaW5lZChfX1dBVkVfXykgJiYgZGVmaW5lZChCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fQ1JFQVRFX1BSRVBST0NFU1NFRF9GSUxFUykKKyAgICAgICAgICAgICNwcmFnbWEgd2F2ZSBvcHRpb24ocHJlc2VydmU6IDIsIGxpbmU6IDAsIG91dHB1dDogInByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2xvbmdfbG9uZy5ocHAiKQorICAgICAgICAjZW5kaWYKKworLy8KKy8vISBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMgorLy8hIEJyYW5kb24gS29obgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisgICAgICAgICNpZiBkZWZpbmVkKF9fV0FWRV9fKSAmJiBkZWZpbmVkKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9DUkVBVEVfUFJFUFJPQ0VTU0VEX0ZJTEVTKQorICAgICAgICAgICAgI3ByYWdtYSB3YXZlIG9wdGlvbihwcmVzZXJ2ZTogMSkKKyAgICAgICAgI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBudW1lcmljIHsKKworICAgICNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX1NFUV9BKCkgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0JBU0VfQlVJTFRJTl9UWVBFUygpKG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSkobmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSkKKwkjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9TRVFfQigpIChuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUpKG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUpCisgICAgCisgICAgI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgKDMsICgwLCBCT09TVF9QUF9ERUMoQk9PU1RfUFBfU0VRX1NJWkUoQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX1NFUV9BKCkpKSwgPG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvbnVtZXJpY19jYXN0X3RyYWl0cy5ocHA+KSkKKyAgICAjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkgICAgCisKK319Ly9uYW1lc3BhY2UgbmRuYm9vc3Q6Om51bWVyaWM7CisKKyAgICAgICAgI2lmIGRlZmluZWQoX19XQVZFX18pICYmIGRlZmluZWQoQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0NSRUFURV9QUkVQUk9DRVNTRURfRklMRVMpCisgICAgICAgICAgICAjcHJhZ21hIHdhdmUgb3B0aW9uKG91dHB1dDogbnVsbCkKKyAgICAgICAgI2VuZGlmICAgCisJCisJI2VuZGlmCisJCQorICAgICN1bmRlZiBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fQkFTRV9CVUlMVElOX1RZUEVTCisJI3VuZGVmIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9TRVFfQQorCSN1bmRlZiBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fU0VRX0IKKyAgICAKKyNlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpID09IDEKKworICAgICNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yICgzLCAoMCwgQk9PU1RfUFBfREVDKEJPT1NUX1BQX1NFUV9TSVpFKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9TRVFfQigpKSksIDxuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL251bWVyaWNfY2FzdF90cmFpdHMuaHBwPikpCisgICAgI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpID09IDIKKworICAgIC8vISBHZW5lcmF0ZSBkZWZhdWx0IHRyYWl0cyBmb3IgdGhlIHNwZWNpZmllZCBzb3VyY2UgYW5kIHRhcmdldC4KKyAgICAjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9BIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorICAgICNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0IgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDIpCisKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIEJPT1NUX1BQX1NFUV9FTEVNKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9BLCBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fU0VRX0EoKSkKKyAgICAgICAgICAsIEJPT1NUX1BQX1NFUV9FTEVNKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9CLCBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fU0VRX0IoKSkKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPEJPT1NUX1BQX1NFUV9FTEVNKEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9CLCBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fU0VRX0IoKSk+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAgICAgCisKKyAgICAjdW5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0EKKyAgICAjdW5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0IKKworI2VuZGlmLy8hIERlcHRoIDIuCisjZW5kaWYvLyBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fRE9OVF9VU0VfUFJFUFJPQ0VTU0VEX0ZJTEVTCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvb2xkX251bWVyaWNfY2FzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvb2xkX251bWVyaWNfY2FzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBkOTU5NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9vbGRfbnVtZXJpY19jYXN0LmhwcApAQCAtMCwwICsxLDMzOSBAQAorLy8gIGJvb3N0IGNhc3QuaHBwIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIChDKSBDb3B5cmlnaHQgS2V2bGluIEhlbm5leSBhbmQgRGF2ZSBBYnJhaGFtcyAxOTk5LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvY29udmVyc2lvbiBmb3IgRG9jdW1lbnRhdGlvbi4KKworLy8gIFJldmlzaW9uIEhpc3RvcnkKKy8vICAyMyBKVU4gMDUgIENvZGUgZXh0cmFjdGVkIGZyb20gL2Jvb3N0L2Nhc3QuaHBwIGludG8gdGhpcyBuZXcgaGVhZGVyLgorLy8gICAgICAgICAgICAgS2VlcHMgdGhpcyBsZWdhY3kgdmVyc2lvbiBvZiBudW1lcmljX2Nhc3Q8PiBmb3Igb2xkIGNvbXBpbGVycworLy8gICAgICAgICAgICAgd2ljaCBjYW4ndCBjb21waWxlIHRoZSBuZXcgdmVyc2lvbiBpbiAvYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2Nhc3QuaHBwCisvLyAgICAgICAgICAgICAoRmVybmFuZG8gQ2FjY2lvbGEpCisvLyAgMDIgQXByIDAxICBSZW1vdmVkIEJPT1NUX05PX0xJTUlUUyB3b3JrYXJvdW5kcyBhbmQgaW5jbHVkZWQKKy8vICAgICAgICAgICAgIDxuZG5ib29zdC9saW1pdHMuaHBwPiBpbnN0ZWFkICh0aGUgd29ya2Fyb3VuZCBkaWQgbm90CisvLyAgICAgICAgICAgICBhY3R1YWxseSBjb21waWxlIHdoZW4gQk9PU1RfTk9fTElNSVRTIHdhcyBkZWZpbmVkIGluCisvLyAgICAgICAgICAgICBhbnkgY2FzZSwgc28gd2UgbG9vc2Ugbm90aGluZykuIChKb2huIE1hZGRvY2spCisvLyAgMjEgSmFuIDAxICBVbmRpZCBhIGJ1ZyBJIGludHJvZHVjZWQgeWVzdGVyZGF5LiBudW1lcmljX2Nhc3Q8PiBuZXZlcgorLy8gICAgICAgICAgICAgd29ya2VkIHdpdGggc3RvY2sgR0NDOyB0cnlpbmcgdG8gZ2V0IGl0IHRvIGRvIHRoYXQgYnJva2UKKy8vICAgICAgICAgICAgIHZjLXN0bHBvcnQuCisvLyAgMjAgSmFuIDAxICBNb3ZlZCBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUyB0byBjb25maWcuaHBwLgorLy8gICAgICAgICAgICAgUmVtb3ZlZCB1bnVzZWQgQk9PU1RfRVhQTElDSVRfVEFSR0VUIG1hY3JvLiBNb3ZlZAorLy8gICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6dHlwZSB0byBib29zdC90eXBlLmhwcC4gTWFkZSBpdCBjb21waWxlIHdpdGgKKy8vICAgICAgICAgICAgIHN0b2NrIGdjYyBhZ2FpbiAoRGF2ZSBBYnJhaGFtcykKKy8vICAyOSBOb3YgMDAgIFJlbW92ZSBuZXN0ZWQgbmFtZXNwYWNlIGNhc3QsIGNsZWFudXAgc3BhY2luZyBiZWZvcmUgRm9ybWFsCisvLyAgICAgICAgICAgICBSZXZpZXcgKEJlbWFuIERhd2VzKQorLy8gIDE5IE9jdCAwMCAgRml4IG51bWVyaWNfY2FzdCBmb3IgZmxvYXRpbmctcG9pbnQgdHlwZXMgKERhdmUgQWJyYWhhbXMpCisvLyAgMTUgSnVsIDAwICBTdXBwcmVzcyBudW1lcmljX2Nhc3Qgd2FybmluZ3MgZm9yIEdDQywgQm9ybGFuZCBhbmQgTVNWQworLy8gICAgICAgICAgICAgKERhdmUgQWJyYWhhbXMpCisvLyAgMzAgSnVuIDAwICBNb3JlIE1TVkM2IHdvcmRhcm91bmRzLiAgU2VlIGNvbW1lbnRzIGJlbG93LiAgKERhdmUgQWJyYWhhbXMpCisvLyAgMjggSnVuIDAwICBSZW1vdmVkIGltcGxpY2l0X2Nhc3Q8Pi4gIFNlZSBjb21tZW50IGJlbG93LiAoQmVtYW4gRGF3ZXMpCisvLyAgMjcgSnVuIDAwICBNb3JlIE1TVkM2IHdvcmthcm91bmRzCisvLyAgMTUgSnVuIDAwICBBZGQgd29ya2Fyb3VuZHMgZm9yIE1TVkM2CisvLyAgIDIgRmViIDAwICBSZW1vdmUgYmFkX251bWVyaWNfY2FzdCAiOyIgc3ludGF4IGVycm9yIChEb25jaG8gQW5nZWxvdikKKy8vICAyNiBKYW4gMDAgIEFkZCBtaXNzaW5nIHRocm93KCkgdG8gYmFkX251bWVyaWNfY2FzdDo6d2hhdCgwIChBZGFtIExldmFyKQorLy8gIDI5IERlYyA5OSAgQ2hhbmdlIHVzaW5nIGRlY2xhcmF0aW9ucyBzbyB1c2FnZXMgaW4gb3RoZXIgbmFtZXNwYWNlcyB3b3JrCisvLyAgICAgICAgICAgICBjb3JyZWN0bHkgKERhdmUgQWJyYWhhbXMpCisvLyAgMjMgU2VwIDk5ICBDaGFuZ2UgcG9seW1vcnBoaWNfZG93bmNhc3QgYXNzZXJ0IHRvIGFsc28gZGV0ZWN0IE0uSS4gZXJyb3JzCisvLyAgICAgICAgICAgICBhcyBzdWdnZXN0ZWQgRGFyaW4gQWRsZXIgYW5kIGltcHJvdmVkIGJ5IFZhbGVudGluIEJvbm5hcmQuCisvLyAgIDIgU2VwIDk5ICBSZW1vdmUgY29udHJvdmVyc2lhbCBhc3NlcnRzLCBzaW1wbGlmeSwgcmVuYW1lLgorLy8gIDMwIEF1ZyA5OSAgTW92ZSB0byBjYXN0LmhwcCwgcmVwbGFjZSB2YWx1ZV9jYXN0IHdpdGggbnVtZXJpY19jYXN0LAorLy8gICAgICAgICAgICAgcGxhY2UgaW4gbmVzdGVkIG5hbWVzcGFjZS4KKy8vICAgMyBBdWcgOTkgIEluaXRpYWwgdmVyc2lvbgorCisjaWZuZGVmIEJPT1NUX09MRF9OVU1FUklDX0NBU1RfSFBQCisjZGVmaW5lIEJPT1NUX09MRF9OVU1FUklDX0NBU1RfSFBQCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Y2Fzc2VydD4KKyMgaW5jbHVkZSA8dHlwZWluZm8+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGUuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9saW1pdHMuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVydGVyX3BvbGljaWVzLmhwcD4KKworLy8gIEl0IGhhcyBiZWVuIGRlbW9uc3RyYXRlZCBudW1lcm91cyB0aW1lcyB0aGF0IE1TVkMgNi4wIGZhaWxzIHNpbGVudGx5IGF0IGxpbmsKKy8vICB0aW1lIGlmIHlvdSB1c2UgYSB0ZW1wbGF0ZSBmdW5jdGlvbiB3aGljaCBoYXMgdGVtcGxhdGUgcGFyYW1ldGVycyB0aGF0IGRvbid0CisvLyAgYXBwZWFyIGluIHRoZSBmdW5jdGlvbidzIGFyZ3VtZW50IGxpc3QuCisvLworLy8gIFRPRE86IEFkZCB0aGlzIHRvIGNvbmZpZy5ocHA/CisvLyAgRkxDOiBUaGlzIG1hY3JvIGlzIHJlcGVhdGVkIGluIGJvb3N0L2Nhc3QuaHBwIGJ1dCBvbmx5IGxvY2FsbHkgKGlzIHVuZGVmaW5lZCBhdCB0aGUgYm90dG9tKQorLy8gICAgICAgc28gaXMgT0sgdG8gcmVwcm9kdWNlIGl0IGhlcmUuCisjIGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgQk9PU1RfTVNWQyA8IDEzMDAKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9ERUZBVUxUX1RBUkdFVCAsIDo6bmRuYm9vc3Q6OnR5cGU8VGFyZ2V0PiogPSAwCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9ERUZBVUxUX1RBUkdFVAorIyBlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgdXNpbmcgbnVtZXJpYzo6YmFkX251bWVyaWNfY2FzdDsKKworLy8gIExFR0FDWSBudW1lcmljX2Nhc3QgW29ubHkgZm9yIHNvbWUgb2xkIGJyb2tlbiBjb21waWxlcnNdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvbnRyaWJ1dGVkIGJ5IEtldmxpbiBIZW5uZXkKKworLy8gIG51bWVyaWNfY2FzdCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTKSB8fCBkZWZpbmVkKEJPT1NUX1NHSV9DUFBfTElNSVRTKQorCisgICAgbmFtZXNwYWNlIGRldGFpbAorICAgIHsKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgc3RydWN0IHNpZ25lZF9udW1lcmljX2xpbWl0cyA6IHN0ZDo6bnVtZXJpY19saW1pdHM8VD4KKyAgICAgIHsKKyAgICAgICAgICAgICBzdGF0aWMgaW5saW5lIFQgbWluIEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpCisgICAgICAgICB7CisgICAgICAgICAgICAgcmV0dXJuIChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptaW4pKCkgPj0gMAorICAgICAgICAgICAgICAgICAgICAgLy8gdW5hcnkgbWludXMgY2F1c2VzIGludGVncmFsIHByb21vdGlvbiwgdGh1cyB0aGUgc3RhdGljX2Nhc3Q8PgorICAgICAgICAgICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxUPigtKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCkoKSkKKyAgICAgICAgICAgICAgICAgICAgIDogKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1pbikoKTsKKyAgICAgICAgIH07CisgICAgICB9OworCisgICAgICAvLyBNb3ZlIHRvIG5hbWVzcGFjZSBuZG5ib29zdCBpbiB1dGlsaXR5LmhwcD8KKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBULCBib29sIHNwZWNpYWxpemVkPgorICAgICAgc3RydWN0IGZpeGVkX251bWVyaWNfbGltaXRzX2Jhc2UKKyAgICAgICAgICA6IHB1YmxpYyBpZl90cnVlPCBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zaWduZWQgPgorICAgICAgICAgICA6OkJPT1NUX05FU1RFRF9URU1QTEFURSB0aGVuPCBzaWduZWRfbnVtZXJpY19saW1pdHM8VD4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxUPgorICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgIHt9OworCisgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgIHN0cnVjdCBmaXhlZF9udW1lcmljX2xpbWl0cworICAgICAgICAgIDogZml4ZWRfbnVtZXJpY19saW1pdHNfYmFzZTxULChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zcGVjaWFsaXplZCk+CisgICAgICB7fTsKKworIyBpZmRlZiBCT09TVF9IQVNfTE9OR19MT05HCisgICAgICAvLyBjb3ZlciBpbXBsZW1lbnRhdGlvbnMgd2hpY2ggc3VwcGx5IG5vIHNwZWNpYWxpemF0aW9uIGZvciBsb25nCisgICAgICAvLyBsb25nIC8gdW5zaWduZWQgbG9uZyBsb25nLiBOb3QgaW50ZW5kZWQgdG8gYmUgZnVsbAorICAgICAgLy8gbnVtZXJpY19saW1pdHMgcmVwbGFjZW1lbnRzLCBidXQgZ29vZCBlbm91Z2ggZm9yIG51bWVyaWNfY2FzdDw+CisgICAgICB0ZW1wbGF0ZSA8PgorICAgICAgc3RydWN0IGZpeGVkX251bWVyaWNfbGltaXRzX2Jhc2U8IDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlLCBmYWxzZT4KKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc3BlY2lhbGl6ZWQgPSB0cnVlKTsKKyAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc2lnbmVkID0gdHJ1ZSk7CisgICAgICAgICAgc3RhdGljICA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCkKKyAgICAgICAgICB7CisjICBpZmRlZiBMT05HTE9OR19NQVgKKyAgICAgICAgICAgICAgcmV0dXJuIExPTkdMT05HX01BWDsKKyMgIGVsc2UKKyAgICAgICAgICAgICAgcmV0dXJuIDkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsgLy8gaG9wZSB0aGlzIGlzIHBvcnRhYmxlCisjICBlbmRpZgorICAgICAgICAgIH0KKworICAgICAgICAgIHN0YXRpYyAgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgbWluIEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpCisgICAgICAgICAgeworIyAgaWZkZWYgTE9OR0xPTkdfTUlOCisgICAgICAgICAgICAgIHJldHVybiBMT05HTE9OR19NSU47CisjICBlbHNlCisgICAgICAgICAgICAgICByZXR1cm4gLSggOTIyMzM3MjAzNjg1NDc3NTgwN0xMICktMTsgLy8gaG9wZSB0aGlzIGlzIHBvcnRhYmxlCisjICBlbmRpZgorICAgICAgICAgIH0KKyAgICAgIH07CisKKyAgICAgIHRlbXBsYXRlIDw+CisgICAgICBzdHJ1Y3QgZml4ZWRfbnVtZXJpY19saW1pdHNfYmFzZTwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlLCBmYWxzZT4KKyAgICAgIHsKKyAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc3BlY2lhbGl6ZWQgPSB0cnVlKTsKKyAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfc2lnbmVkID0gZmFsc2UpOworICAgICAgICAgIHN0YXRpYyAgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlIG1heCBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoKQorICAgICAgICAgIHsKKyMgIGlmZGVmIFVMT05HTE9OR19NQVgKKyAgICAgICAgICAgICAgcmV0dXJuIFVMT05HTE9OR19NQVg7CisjICBlbHNlCisgICAgICAgICAgICAgIHJldHVybiAweGZmZmZmZmZmZmZmZmZmZmZVTEw7IC8vIGhvcGUgdGhpcyBpcyBwb3J0YWJsZQorIyAgZW5kaWYKKyAgICAgICAgICB9CisKKyAgICAgICAgICBzdGF0aWMgIDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSBtaW4gQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKCkgeyByZXR1cm4gMDsgfQorICAgICAgfTsKKyMgZW5kaWYKKyAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gbGVzc190aGFuX3R5cGVfbWluIC0KKyAgLy8gICAgeF9pc19zaWduZWQgc2hvdWxkIGJlIG51bWVyaWNfbGltaXRzPFg+Ojppc19zaWduZWQKKyAgLy8gICAgeV9pc19zaWduZWQgc2hvdWxkIGJlIG51bWVyaWNfbGltaXRzPFk+Ojppc19zaWduZWQKKyAgLy8gICAgeV9taW4gc2hvdWxkIGJlIG51bWVyaWNfbGltaXRzPFk+OjptaW4oKQorICAvLworICAvLyAgICBjaGVjayh4LCB5X21pbikgcmV0dXJucyB0cnVlIGlmZiB4IDwgeV9taW4gd2l0aG91dCBpbnZva2luZyBjb21wYXJpc29ucworICAvLyAgICBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgdmFsdWVzLgorICAvLworICAvLyAgICAicG9vciBtYW4ncyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIiBpcyBpbiB1c2UgaGVyZS4KKyAgICB0ZW1wbGF0ZSA8Ym9vbCB4X2lzX3NpZ25lZCwgYm9vbCB5X2lzX3NpZ25lZD4KKyAgICBzdHJ1Y3QgbGVzc190aGFuX3R5cGVfbWluCisgICAgeworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4KKyAgICAgICAgc3RhdGljIGJvb2wgY2hlY2soWCB4LCBZIHlfbWluKQorICAgICAgICAgICAgeyByZXR1cm4geCA8IHlfbWluOyB9CisgICAgfTsKKworICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IGxlc3NfdGhhbl90eXBlX21pbjxmYWxzZSwgdHJ1ZT4KKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBYLCBjbGFzcyBZPgorICAgICAgICBzdGF0aWMgYm9vbCBjaGVjayhYLCBZKQorICAgICAgICAgICAgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbGVzc190aGFuX3R5cGVfbWluPHRydWUsIGZhbHNlPgorICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFgsIGNsYXNzIFk+CisgICAgICAgIHN0YXRpYyBib29sIGNoZWNrKFggeCwgWSkKKyAgICAgICAgICAgIHsgcmV0dXJuIHggPCAwOyB9CisgICAgfTsKKworICAvLyBncmVhdGVyX3RoYW5fdHlwZV9tYXggLQorICAvLyAgICBzYW1lX3NpZ24gc2hvdWxkIGJlOgorICAvLyAgICAgICAgICAgIG51bWVyaWNfbGltaXRzPFg+Ojppc19zaWduZWQgPT0gbnVtZXJpY19saW1pdHM8WT46OmlzX3NpZ25lZAorICAvLyAgICB5X21heCBzaG91bGQgYmUgbnVtZXJpY19saW1pdHM8WT46Om1heCgpCisgIC8vCisgIC8vICAgIGNoZWNrKHgsIHlfbWF4KSByZXR1cm5zIHRydWUgaWZmIHggPiB5X21heCB3aXRob3V0IGludm9raW5nIGNvbXBhcmlzb25zCisgIC8vICAgIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCB2YWx1ZXMuCisgIC8vCisgIC8vICAgICJwb29yIG1hbidzIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24iIGlzIGluIHVzZSBoZXJlLgorICAgIHRlbXBsYXRlIDxib29sIHNhbWVfc2lnbiwgYm9vbCB4X2lzX3NpZ25lZD4KKyAgICBzdHJ1Y3QgZ3JlYXRlcl90aGFuX3R5cGVfbWF4OworCisgICAgdGVtcGxhdGU8PgorICAgIHN0cnVjdCBncmVhdGVyX3RoYW5fdHlwZV9tYXg8dHJ1ZSwgdHJ1ZT4KKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBYLCBjbGFzcyBZPgorICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2soWCB4LCBZIHlfbWF4KQorICAgICAgICAgICAgeyByZXR1cm4geCA+IHlfbWF4OyB9CisgICAgfTsKKworICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IGdyZWF0ZXJfdGhhbl90eXBlX21heDxmYWxzZSwgdHJ1ZT4KKyAgICB7CisgICAgICAgIC8vIFdoYXQgZG9lcyB0aGUgc3RhbmRhcmQgc2F5IGFib3V0IHRoaXM/IEkgdGhpbmsgaXQncyByaWdodCwgYW5kIGl0CisgICAgICAgIC8vIHdpbGwgd29yayB3aXRoIGV2ZXJ5IGNvbXBpbGVyIEkga25vdyBvZi4KKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFgsIGNsYXNzIFk+CisgICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVjayhYIHgsIFkpCisgICAgICAgICAgICB7IHJldHVybiB4ID49IDAgJiYgc3RhdGljX2Nhc3Q8WD4oc3RhdGljX2Nhc3Q8WT4oeCkpICE9IHg7IH0KKworIyBpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIEJPT1NUX01TVkMgPCAxMzAwCisgICAgICAgIC8vIE1TVkM2IGNhbid0IHN0YXRpY19jYXN0ICB1bnNpZ25lZCBfX2ludDY0IC0+IGZsb2F0aW5nIHR5cGVzCisjICBkZWZpbmUgQk9PU1RfVUlOVDY0X0NBU1Qoc3JjX3R5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVjayhzcmNfdHlwZSB4LCB1bnNpZ25lZCBfX2ludDY0KSAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpZiAoeCA8IDApIHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDY0IHkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBfX2ludDY0Pih4KTsgICAgICBcCisgICAgICAgICAgICBib29sIG9kZCA9IHkgJiAweDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfX2ludDY0IGRpdjIgPSBzdGF0aWNfY2FzdDxfX2ludDY0Pih5ID4+IDEpOyAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gKChzdGF0aWNfY2FzdDxzcmNfdHlwZT4oZGl2MikgKiAyLjApICsgb2RkKSAhPSB4OyAgICBcCisgICAgICAgIH0KKworICAgICAgICBCT09TVF9VSU5UNjRfQ0FTVChsb25nIGRvdWJsZSk7CisgICAgICAgIEJPT1NUX1VJTlQ2NF9DQVNUKGRvdWJsZSk7CisgICAgICAgIEJPT1NUX1VJTlQ2NF9DQVNUKGZsb2F0KTsKKyMgIHVuZGVmIEJPT1NUX1VJTlQ2NF9DQVNUCisjIGVuZGlmCisgICAgfTsKKworICAgIHRlbXBsYXRlPD4KKyAgICBzdHJ1Y3QgZ3JlYXRlcl90aGFuX3R5cGVfbWF4PHRydWUsIGZhbHNlPgorICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFgsIGNsYXNzIFk+CisgICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVjayhYIHgsIFkgeV9tYXgpCisgICAgICAgICAgICB7IHJldHVybiB4ID4geV9tYXg7IH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgZ3JlYXRlcl90aGFuX3R5cGVfbWF4PGZhbHNlLCBmYWxzZT4KKyAgICB7CisgICAgICAgIC8vIFdoYXQgZG9lcyB0aGUgc3RhbmRhcmQgc2F5IGFib3V0IHRoaXM/IEkgdGhpbmsgaXQncyByaWdodCwgYW5kIGl0CisgICAgICAgIC8vIHdpbGwgd29yayB3aXRoIGV2ZXJ5IGNvbXBpbGVyIEkga25vdyBvZi4KKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFgsIGNsYXNzIFk+CisgICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVjayhYIHgsIFkpCisgICAgICAgICAgICB7IHJldHVybiBzdGF0aWNfY2FzdDxYPihzdGF0aWNfY2FzdDxZPih4KSkgIT0geDsgfQorICAgIH07CisKKyNlbHNlIC8vIHVzZSAjcHJhZ21hIGhhY2tzIGlmIGF2YWlsYWJsZQorCisgIG5hbWVzcGFjZSBkZXRhaWwKKyAgeworIyBpZiBCT09TVF9NU1ZDCisjICBwcmFnbWEgd2FybmluZyhwdXNoKQorIyAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQwMTgpCisjICBwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDE0NikKKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgcHJhZ21hIG9wdGlvbiBwdXNoIC13LTgwNDEKKyMgZW5kaWYKKworICAgICAgIC8vIE1vdmUgdG8gbmFtZXNwYWNlIG5kbmJvb3N0IGluIHV0aWxpdHkuaHBwPworICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgIHN0cnVjdCBmaXhlZF9udW1lcmljX2xpbWl0cyA6IHB1YmxpYyBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+CisgICAgICAgeworICAgICAgICAgICBzdGF0aWMgaW5saW5lIFQgbWluIEJPT1NUX1BSRVZFTlRfTUFDUk9fU1VCU1RJVFVUSU9OICgpCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zaWduZWQgJiYgKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1pbikoKSA+PSAwCisgICAgICAgICAgICAgICAgICAgPyBUKC0oc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KSgpKSA6IChzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptaW4pKCk7CisgICAgICAgICAgIH0KKyAgICAgICB9OworCisjIGlmIEJPT1NUX01TVkMKKyMgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgcHJhZ21hIG9wdGlvbiBwb3AKKyMgZW5kaWYKKyAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+CisgICAgaW5saW5lIFRhcmdldCBudW1lcmljX2Nhc3QoU291cmNlIGFyZyBCT09TVF9FWFBMSUNJVF9ERUZBVUxUX1RBUkdFVCkKKyAgICB7CisgICAgICAgIC8vIHR5cGVkZWZzIGFiYnJldmlhdGluZyByZXNwZWN0aXZlIHRyYWl0IGNsYXNzZXMKKyAgICAgICAgdHlwZWRlZiBkZXRhaWw6OmZpeGVkX251bWVyaWNfbGltaXRzPFNvdXJjZT4gYXJnX3RyYWl0czsKKyAgICAgICAgdHlwZWRlZiBkZXRhaWw6OmZpeGVkX251bWVyaWNfbGltaXRzPFRhcmdldD4gcmVzdWx0X3RyYWl0czsKKworI2lmIGRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykgXAorICAgIHx8ICghZGVmaW5lZChfX0hQX2FDQykgfHwgX19IUF9hQ0MgPiAzMzkwMCkgXAorICAgICAgICAgJiYgKCFkZWZpbmVkKEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTKSBcCisgICAgICAgICAgICAgfHwgZGVmaW5lZChCT09TVF9TR0lfQ1BQX0xJTUlUUykpCisgICAgICAgIC8vIHR5cGVkZWZzIHRoYXQgYWN0IGFzIGNvbXBpbGUgdGltZSBhc3NlcnRpb25zCisgICAgICAgIC8vICh0byBiZSByZXBsYWNlZCBieSBib29zdCBjb21waWxlIHRpbWUgYXNzZXJ0aW9ucworICAgICAgICAvLyBhcyBhbmQgd2hlbiB0aGV5IGJlY29tZSBhdmFpbGFibGUgYW5kIGFyZSBzdGFibGUpCisgICAgICAgIHR5cGVkZWYgYm9vbCBhcmd1bWVudF9tdXN0X2JlX251bWVyaWNbYXJnX3RyYWl0czo6aXNfc3BlY2lhbGl6ZWRdOworICAgICAgICB0eXBlZGVmIGJvb2wgcmVzdWx0X211c3RfYmVfbnVtZXJpY1tyZXN1bHRfdHJhaXRzOjppc19zcGVjaWFsaXplZF07CisKKyAgICAgICAgY29uc3QgYm9vbCBhcmdfaXNfc2lnbmVkID0gYXJnX3RyYWl0czo6aXNfc2lnbmVkOworICAgICAgICBjb25zdCBib29sIHJlc3VsdF9pc19zaWduZWQgPSByZXN1bHRfdHJhaXRzOjppc19zaWduZWQ7CisgICAgICAgIGNvbnN0IGJvb2wgc2FtZV9zaWduID0gYXJnX2lzX3NpZ25lZCA9PSByZXN1bHRfaXNfc2lnbmVkOworCisgICAgICAgIGlmIChsZXNzX3RoYW5fdHlwZV9taW48YXJnX2lzX3NpZ25lZCwgcmVzdWx0X2lzX3NpZ25lZD46OmNoZWNrKGFyZywgKHJlc3VsdF90cmFpdHM6Om1pbikoKSkKKyAgICAgICAgICAgIHx8IGdyZWF0ZXJfdGhhbl90eXBlX21heDxzYW1lX3NpZ24sIGFyZ19pc19zaWduZWQ+OjpjaGVjayhhcmcsIChyZXN1bHRfdHJhaXRzOjptYXgpKCkpCisgICAgICAgICAgICApCisKKyNlbHNlIC8vIFdlIG5lZWQgdG8gdXNlICNwcmFnbWEgaGFja3MgaWYgYXZhaWxhYmxlCisKKyMgaWYgQk9PU1RfTVNWQworIyAgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgIHByYWdtYSB3YXJuaW5nKGRpc2FibGUgOiA0MDE4KQorI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisjcHJhZ21hIG9wdGlvbiBwdXNoIC13LTgwMTIKKyMgZW5kaWYKKyAgICAgICAgaWYgKChhcmcgPCAwICYmICFyZXN1bHRfdHJhaXRzOjppc19zaWduZWQpICAvLyBsb3NzIG9mIG5lZ2F0aXZlIHJhbmdlCisgICAgICAgICAgICAgfHwgKGFyZ190cmFpdHM6OmlzX3NpZ25lZCAmJiBhcmcgPCAocmVzdWx0X3RyYWl0czo6bWluKSgpKSAgLy8gdW5kZXJmbG93CisgICAgICAgICAgICAgfHwgYXJnID4gKHJlc3VsdF90cmFpdHM6Om1heCkoKSkgICAgICAgICAgICAvLyBvdmVyZmxvdworIyBpZiBCT09TVF9NU1ZDCisjICBwcmFnbWEgd2FybmluZyhwb3ApCisjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKKyNwcmFnbWEgb3B0aW9uIHBvcAorIyBlbmRpZgorI2VuZGlmCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IGJhZF9udW1lcmljX2Nhc3QoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGFyZ2V0PihhcmcpOworICAgIH0gLy8gbnVtZXJpY19jYXN0CisKKyMgIHVuZGVmIEJPT1NUX0VYUExJQ0lUX0RFRkFVTFRfVEFSR0VUCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfT0xEX05VTUVSSUNfQ0FTVF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9wcmVwcm9jZXNzZWQvbnVtZXJpY19jYXN0X3RyYWl0c19jb21tb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2NvbW1vbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhlZWU2YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9wcmVwcm9jZXNzZWQvbnVtZXJpY19jYXN0X3RyYWl0c19jb21tb24uaHBwCkBAIC0wLDAgKzEsMTc0MSBAQAorLy8KKy8vISBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMgorLy8hIEJyYW5kb24gS29obgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisJCisJCisJCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbnVtZXJpYyB7CisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBjaGFyCisgICAgICAgICAgLCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBjaGFyCisgICAgICAgICAgLCBzaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIHNob3J0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaG9ydD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgY2hhcgorICAgICAgICAgICwgdW5zaWduZWQgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBjaGFyCisgICAgICAgICAgLCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgY2hhcgorICAgICAgICAgICwgdW5zaWduZWQgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIGZsb2F0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxmbG9hdD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgY2hhcgorICAgICAgICAgICwgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIGxvbmcgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nIGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyCisgICAgICAgICAgLCBzaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyCisgICAgICAgICAgLCB1bnNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaWduZWQgY2hhcgorICAgICAgICAgICwgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaWduZWQgY2hhcgorICAgICAgICAgICwgdW5zaWduZWQgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaWduZWQgY2hhcgorICAgICAgICAgICwgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyCisgICAgICAgICAgLCB1bnNpZ25lZCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyCisgICAgICAgICAgLCB1bnNpZ25lZCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaWduZWQgY2hhcgorICAgICAgICAgICwgZmxvYXQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGZsb2F0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaWduZWQgY2hhcgorICAgICAgICAgICwgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyCisgICAgICAgICAgLCBsb25nIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZyBkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIHNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgY2hhcgorICAgICAgICAgICwgdW5zaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgY2hhcgorICAgICAgICAgICwgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyCisgICAgICAgICAgLCB1bnNpZ25lZCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgc2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8aW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyCisgICAgICAgICAgLCB1bnNpZ25lZCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgY2hhcgorICAgICAgICAgICwgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgY2hhcgorICAgICAgICAgICwgdW5zaWduZWQgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgbG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgY2hhcgorICAgICAgICAgICwgZmxvYXQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGZsb2F0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyCisgICAgICAgICAgLCBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgY2hhcgorICAgICAgICAgICwgbG9uZyBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmcgZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaG9ydAorICAgICAgICAgICwgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8Y2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2hvcnQKKyAgICAgICAgICAsIHNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2hvcnQKKyAgICAgICAgICAsIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNob3J0CisgICAgICAgICAgLCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNob3J0CisgICAgICAgICAgLCB1bnNpZ25lZCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgc2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNob3J0CisgICAgICAgICAgLCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2hvcnQKKyAgICAgICAgICAsIHVuc2lnbmVkIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgaW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaG9ydAorICAgICAgICAgICwgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2hvcnQKKyAgICAgICAgICAsIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNob3J0CisgICAgICAgICAgLCBmbG9hdAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZmxvYXQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNob3J0CisgICAgICAgICAgLCBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2hvcnQKKyAgICAgICAgICAsIGxvbmcgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nIGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQKKyAgICAgICAgICAsIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0CisgICAgICAgICAgLCBzaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0CisgICAgICAgICAgLCB1bnNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydAorICAgICAgICAgICwgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydAorICAgICAgICAgICwgdW5zaWduZWQgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydAorICAgICAgICAgICwgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0CisgICAgICAgICAgLCB1bnNpZ25lZCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQKKyAgICAgICAgICAsIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0CisgICAgICAgICAgLCB1bnNpZ25lZCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydAorICAgICAgICAgICwgZmxvYXQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGZsb2F0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydAorICAgICAgICAgICwgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0CisgICAgICAgICAgLCBsb25nIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZyBkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGludAorICAgICAgICAgICwgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8Y2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgaW50CisgICAgICAgICAgLCBzaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGludAorICAgICAgICAgICwgdW5zaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgaW50CisgICAgICAgICAgLCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGludAorICAgICAgICAgICwgdW5zaWduZWQgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBpbnQKKyAgICAgICAgICAsIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8aW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBpbnQKKyAgICAgICAgICAsIHVuc2lnbmVkIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgaW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBpbnQKKyAgICAgICAgICAsIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGludAorICAgICAgICAgICwgdW5zaWduZWQgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgbG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgaW50CisgICAgICAgICAgLCBmbG9hdAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZmxvYXQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGludAorICAgICAgICAgICwgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGludAorICAgICAgICAgICwgbG9uZyBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmcgZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQKKyAgICAgICAgICAsIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGludAorICAgICAgICAgICwgc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQKKyAgICAgICAgICAsIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGludAorICAgICAgICAgICwgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQKKyAgICAgICAgICAsIHVuc2lnbmVkIHNob3J0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBzaG9ydD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgaW50CisgICAgICAgICAgLCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgaW50CisgICAgICAgICAgLCB1bnNpZ25lZCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgaW50CisgICAgICAgICAgLCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQKKyAgICAgICAgICAsIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGludAorICAgICAgICAgICwgZmxvYXQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGZsb2F0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQKKyAgICAgICAgICAsIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQKKyAgICAgICAgICAsIGxvbmcgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nIGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZworICAgICAgICAgICwgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8Y2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZworICAgICAgICAgICwgc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nCisgICAgICAgICAgLCB1bnNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nCisgICAgICAgICAgLCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcKKyAgICAgICAgICAsIHVuc2lnbmVkIHNob3J0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBzaG9ydD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZworICAgICAgICAgICwgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcKKyAgICAgICAgICAsIHVuc2lnbmVkIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgaW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nCisgICAgICAgICAgLCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nCisgICAgICAgICAgLCB1bnNpZ25lZCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nCisgICAgICAgICAgLCBmbG9hdAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZmxvYXQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcKKyAgICAgICAgICAsIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nCisgICAgICAgICAgLCBsb25nIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZyBkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgICAsIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgICAsIHNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZworICAgICAgICAgICwgdW5zaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZworICAgICAgICAgICwgc2hvcnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNob3J0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nCisgICAgICAgICAgLCB1bnNpZ25lZCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgc2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgICAsIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8aW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nCisgICAgICAgICAgLCB1bnNpZ25lZCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZworICAgICAgICAgICwgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZworICAgICAgICAgICwgdW5zaWduZWQgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgbG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZworICAgICAgICAgICwgZmxvYXQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGZsb2F0PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nCisgICAgICAgICAgLCBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgdW5zaWduZWQgbG9uZworICAgICAgICAgICwgbG9uZyBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmcgZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBmbG9hdAorICAgICAgICAgICwgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8Y2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZmxvYXQKKyAgICAgICAgICAsIHNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZmxvYXQKKyAgICAgICAgICAsIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGNoYXI+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGZsb2F0CisgICAgICAgICAgLCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8c2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGZsb2F0CisgICAgICAgICAgLCB1bnNpZ25lZCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgc2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGZsb2F0CisgICAgICAgICAgLCBpbnQKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGludD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZmxvYXQKKyAgICAgICAgICAsIHVuc2lnbmVkIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgaW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBmbG9hdAorICAgICAgICAgICwgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZmxvYXQKKyAgICAgICAgICAsIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHVuc2lnbmVkIGxvbmc+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGZsb2F0CisgICAgICAgICAgLCBmbG9hdAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZmxvYXQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGZsb2F0CisgICAgICAgICAgLCBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZmxvYXQKKyAgICAgICAgICAsIGxvbmcgZG91YmxlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nIGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZG91YmxlCisgICAgICAgICAgLCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBkb3VibGUKKyAgICAgICAgICAsIHNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZG91YmxlCisgICAgICAgICAgLCB1bnNpZ25lZCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBkb3VibGUKKyAgICAgICAgICAsIHNob3J0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaG9ydD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZG91YmxlCisgICAgICAgICAgLCB1bnNpZ25lZCBzaG9ydAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgc2hvcnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGRvdWJsZQorICAgICAgICAgICwgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGRvdWJsZQorICAgICAgICAgICwgdW5zaWduZWQgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGRvdWJsZQorICAgICAgICAgICwgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZG91YmxlCisgICAgICAgICAgLCB1bnNpZ25lZCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBkb3VibGUKKyAgICAgICAgICAsIGZsb2F0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxmbG9hdD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZG91YmxlCisgICAgICAgICAgLCBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGRvdWJsZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgZG91YmxlCisgICAgICAgICAgLCBsb25nIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bG9uZyBkb3VibGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcgZG91YmxlCisgICAgICAgICAgLCBjaGFyCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nIGRvdWJsZQorICAgICAgICAgICwgc2lnbmVkIGNoYXIKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPHNpZ25lZCBjaGFyPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nIGRvdWJsZQorICAgICAgICAgICwgdW5zaWduZWQgY2hhcgorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgY2hhcj4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAsIHNob3J0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxzaG9ydD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAsIHVuc2lnbmVkIHNob3J0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBzaG9ydD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAsIGludAorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8aW50PiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nIGRvdWJsZQorICAgICAgICAgICwgdW5zaWduZWQgaW50CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzx1bnNpZ25lZCBpbnQ+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcgZG91YmxlCisgICAgICAgICAgLCBsb25nCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxsb25nPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nIGRvdWJsZQorICAgICAgICAgICwgdW5zaWduZWQgbG9uZworICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8dW5zaWduZWQgbG9uZz4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAsIGZsb2F0CisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxmbG9hdD4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAsIGRvdWJsZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8ZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBsb25nIGRvdWJsZQorICAgICAgICAgICwgbG9uZyBkb3VibGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPGxvbmcgZG91YmxlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCit9fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2xvbmdfbG9uZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvcHJlcHJvY2Vzc2VkL251bWVyaWNfY2FzdF90cmFpdHNfbG9uZ19sb25nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjhkNTQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vZGV0YWlsL3ByZXByb2Nlc3NlZC9udW1lcmljX2Nhc3RfdHJhaXRzX2xvbmdfbG9uZy5ocHAKQEAgLTAsMCArMSwzNDcgQEAKKy8vCisvLyEgQ29weXJpZ2h0IChjKSAyMDExLTIwMTIKKy8vISBCcmFuZG9uIEtvaG4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMgeworICAgIAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgY2hhcgorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGNoYXIKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyCisgICAgICAgICAgLCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIKKyAgICAgICAgICAsIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyCisgICAgICAgICAgLCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBzaG9ydAorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHNob3J0CisgICAgICAgICAgLCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydAorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0CisgICAgICAgICAgLCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBpbnQKKyAgICAgICAgICAsIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBpbnQKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGludAorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGludAorICAgICAgICAgICwgbmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZworICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgICAsIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nCisgICAgICAgICAgLCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBmbG9hdAorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGZsb2F0CisgICAgICAgICAgLCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBkb3VibGUKKyAgICAgICAgICAsIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlPiByb3VuZGluZ19wb2xpY3k7CisgICAgfTsgCisgICAgCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgbnVtZXJpY19jYXN0X3RyYWl0cworICAgICAgICA8CisgICAgICAgICAgICBkb3VibGUKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIGxvbmcgZG91YmxlCisgICAgICAgICAgLCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorICAgICAgICAgICwgbmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZQorICAgICAgICA+CisgICAgeworICAgICAgICB0eXBlZGVmIGRlZl9vdmVyZmxvd19oYW5kbGVyIG92ZXJmbG93X3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBVc2VJbnRlcm5hbFJhbmdlQ2hlY2tlciByYW5nZV9jaGVja2luZ19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVHJ1bmM8bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZT4gcm91bmRpbmdfcG9saWN5OworICAgIH07IAorICAgIAorICAgIHRlbXBsYXRlIDw+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICAgICAgPAorICAgICAgICAgICAgbmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZQorICAgICAgICAgICwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlCisgICAgICAgID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxuZG5ib29zdDo6bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKKyAgICAKKyAgICB0ZW1wbGF0ZSA8PgorICAgIHN0cnVjdCBudW1lcmljX2Nhc3RfdHJhaXRzCisgICAgICAgIDwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgICAsIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyAgICAgICAgPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWZfb3ZlcmZsb3dfaGFuZGxlciBvdmVyZmxvd19wb2xpY3k7CisgICAgICAgIHR5cGVkZWYgVXNlSW50ZXJuYWxSYW5nZUNoZWNrZXIgcmFuZ2VfY2hlY2tpbmdfcG9saWN5OworICAgICAgICB0eXBlZGVmIFRydW5jPG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGU+IHJvdW5kaW5nX3BvbGljeTsKKyAgICB9OyAKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvc2lnbl9taXh0dXJlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9zaWduX21peHR1cmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OWFkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvc2lnbl9taXh0dXJlLmhwcApAQCAtMCwwICsxLDcyIEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8gCisjaWZuZGVmIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9ERVRBSUxfU0lHTl9NSVhUVVJFX0ZMQ18xMk5PVjIwMDJfSFBQCisjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9ERVRBSUxfU0lHTl9NSVhUVVJFX0ZMQ18xMk5PVjIwMDJfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9jb25maWcuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L2xpbWl0cy5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vc2lnbl9taXh0dXJlX2VudW0uaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvbWV0YS5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9tcGwvaW50ZWdyYWxfYy5ocHAiCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBudW1lcmljIHsgbmFtZXNwYWNlIGNvbnZkZXRhaWwKK3sKKyAgLy8gSW50ZWdyYWwgQ29uc3RhbnRzIGZvciAnU2lnbk1peHR1cmUnCisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHNpZ25fbWl4dHVyZV9lbnVtLCB1bnNpZ25lZF90b191bnNpZ25lZD4gdW5zaWcydW5zaWdfYyA7CisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHNpZ25fbWl4dHVyZV9lbnVtLCBzaWduZWRfdG9fc2lnbmVkPiAgICAgc2lnMnNpZ19jIDsKKyAgdHlwZWRlZiBtcGw6OmludGVncmFsX2M8c2lnbl9taXh0dXJlX2VudW0sIHNpZ25lZF90b191bnNpZ25lZD4gICBzaWcydW5zaWdfYyA7CisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHNpZ25fbWl4dHVyZV9lbnVtLCB1bnNpZ25lZF90b19zaWduZWQ+ICAgdW5zaWcyc2lnX2MgOworCisgIC8vIE1ldGFmdW5jdGlvbjoKKyAgLy8KKyAgLy8gICBnZXRfc2lnbl9taXh0dXJlPFQsUz46OnR5cGUKKyAgLy8KKyAgLy8gU2VsZWN0cyB0aGUgYXBwcm9wcmlhdGUgU2lnbk1peHR1cmUgSW50ZWdyYWwgQ29uc3RhbnQgZm9yIHRoZSBjb21iaW5hdGlvbiBULFMuCisgIC8vCisgIHRlbXBsYXRlPGNsYXNzIFQsY2xhc3MgUz4KKyAgc3RydWN0IGdldF9zaWduX21peHR1cmUKKyAgeworICAgIHR5cGVkZWYgbXBsOjpib29sXzwgOjpzdGQ6Om51bWVyaWNfbGltaXRzPFM+Ojppc19zaWduZWQgPiBTX3NpZ25lZCA7CisgICAgdHlwZWRlZiBtcGw6OmJvb2xfPCA6OnN0ZDo6bnVtZXJpY19saW1pdHM8VD46OmlzX3NpZ25lZCA+IFRfc2lnbmVkIDsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgIGZvcl9ib3RoPFNfc2lnbmVkLCBUX3NpZ25lZCwgc2lnMnNpZ19jLCBzaWcydW5zaWdfYywgdW5zaWcyc2lnX2MsIHVuc2lnMnVuc2lnX2M+Ojp0eXBlCisgICAgICAgIHR5cGUgOworICB9IDsKKworICAvLyBNZXRhZnVuY3Rpb246CisgIC8vCisgIC8vICAgZm9yX3NpZ25fbWl4dHVyZTxTaWduTWl4dHVyZSxTaWcyU2lnLFNpZzJVbnNpZyxVbnNpZzJTaWcsVW5zaWcyVW5zaWc+Ojp0eXBlCisgIC8vCisgIC8vIHtTaWduTWl4dHVyZX0gaXMgb25lIG9mIHRoZSBJbnRlZ3JhbCBDb25zdGFudHMgZm9yIFNpZ25NaXh0dXJlLCBkZWNsYXJlZCBhYm92ZS4KKyAgLy8ge1NpZzJTaWcsU2lnMlVuc2lnLFVuc2lnMlNpZyxVbnNpZzJVbnNpZ30gYXJlIGFyaWJ0cmFyeSB0eXBlcy4gKG5vdCBtZXRhZnVuY3Rpb25zKQorICAvLworICAvLyBBY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mICdTaWduTWl4dHVyZScsIHNlbGVjdHMgdGhlIGNvcnJlc3BvbmRpbmcgdHlwZS4KKyAgLy8KKyAgdGVtcGxhdGU8Y2xhc3MgU2lnbk1peHR1cmUsIGNsYXNzIFNpZzJTaWcsIGNsYXNzIFNpZzJVbnNpZywgY2xhc3MgVW5zaWcyU2lnLCBjbGFzcyBVbnNpZzJVbnNpZz4KKyAgc3RydWN0IGZvcl9zaWduX21peHR1cmUKKyAgeworICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgIGN0X3N3aXRjaDQ8U2lnbk1peHR1cmUKKyAgICAgICAgICAgICAgICAgLCBzaWcyc2lnX2MsIHNpZzJ1bnNpZ19jLCB1bnNpZzJzaWdfYyAgLy8gZGVmYXVsdAorICAgICAgICAgICAgICAgICAsIFNpZzJTaWcgICwgU2lnMlVuc2lnICAsIFVuc2lnMlNpZyAgLCBVbnNpZzJVbnNpZworICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgdHlwZSA7CisgIH0gOworCit9IH0gfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6Om51bWVyaWM6OmNvbnZkZXRhaWwKKworI2VuZGlmCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvdWR0X2J1aWx0aW5fbWl4dHVyZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvdWR0X2J1aWx0aW5fbWl4dHVyZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIxZTI4MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC91ZHRfYnVpbHRpbl9taXh0dXJlLmhwcApAQCAtMCwwICsxLDY5IEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8gCisjaWZuZGVmIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9ERVRBSUxfVURUX0JVSUxUSU5fTUlYVFVSRV9GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fREVUQUlMX1VEVF9CVUlMVElOX01JWFRVUkVfRkxDXzEyTk9WMjAwMl9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwIgorCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL3VkdF9idWlsdGluX21peHR1cmVfZW51bS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2RldGFpbC9tZXRhLmhwcCIKKworI2luY2x1ZGUgIm5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcCIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMgeyBuYW1lc3BhY2UgY29udmRldGFpbAoreworICAvLyBJbnRlZ3JhbCBDb25zdGFudHMgZm9yICdVZHRNaXh0dXJlJworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzx1ZHRfYnVpbHRpbl9taXh0dXJlX2VudW0sIGJ1aWx0aW5fdG9fYnVpbHRpbj4gYnVpbHRpbjJidWlsdGluX2MgOworICB0eXBlZGVmIG1wbDo6aW50ZWdyYWxfYzx1ZHRfYnVpbHRpbl9taXh0dXJlX2VudW0sIGJ1aWx0aW5fdG9fdWR0PiAgICAgYnVpbHRpbjJ1ZHRfYyA7CisgIHR5cGVkZWYgbXBsOjppbnRlZ3JhbF9jPHVkdF9idWlsdGluX21peHR1cmVfZW51bSwgdWR0X3RvX2J1aWx0aW4+ICAgICB1ZHQyYnVpbHRpbl9jIDsKKyAgdHlwZWRlZiBtcGw6OmludGVncmFsX2M8dWR0X2J1aWx0aW5fbWl4dHVyZV9lbnVtLCB1ZHRfdG9fdWR0PiAgICAgICAgIHVkdDJ1ZHRfYyA7CisKKyAgLy8gTWV0YWZ1bmN0aW9uOgorICAvLworICAvLyAgIGZvcl91ZHRfbWl4dHVyZTxVZHRNaXh0dXJlLEJ1aWx0SW4yQnVpbHRJbixCdWlsdEluMlVkdCxVZHQyQnVpbHRJbixVZHQyVWR0Pjo6dHlwZQorICAvLworICAvLyB7VWR0TWl4dHVyZX0gaXMgb25lIG9mIHRoZSBJbnRlZ3JhbCBDb25zdGFudHMgZm9yIFVkTWl4dHVyZSwgZGVjbGFyZWQgYWJvdmUuCisgIC8vIHtCdWlsdEluMkJ1aWx0SW4sQnVpbHRJbjJVZHQsVWR0MkJ1aWx0SW4sVWR0MlVkdH0gYXJlIGFyaWJ0cmFyeSB0eXBlcy4gKG5vdCBtZXRhZnVuY3Rpb25zKQorICAvLworICAvLyBBY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mICdVZHRNaXh0dXJlJywgc2VsZWN0cyB0aGUgY29ycmVzcG9uZGluZyB0eXBlLgorICAvLworICB0ZW1wbGF0ZTxjbGFzcyBVZHRNaXh0dXJlLCBjbGFzcyBCdWlsdEluMkJ1aWx0SW4sIGNsYXNzIEJ1aWx0SW4yVWR0LCBjbGFzcyBVZHQyQnVpbHRJbiwgY2xhc3MgVWR0MlVkdD4KKyAgc3RydWN0IGZvcl91ZHRfYnVpbHRpbl9taXh0dXJlCisgIHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lCisgICAgICBjdF9zd2l0Y2g0PFVkdE1peHR1cmUKKyAgICAgICAgICAgICAgICAgLCBidWlsdGluMmJ1aWx0aW5fYywgYnVpbHRpbjJ1ZHRfYywgdWR0MmJ1aWx0aW5fYyAvLyBkZWZhdWx0CisgICAgICAgICAgICAgICAgICwgQnVpbHRJbjJCdWlsdEluICAsIEJ1aWx0SW4yVWR0ICAsIFVkdDJCdWlsdEluICAsIFVkdDJVZHQKKyAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgIHR5cGUgOworICB9IDsKKworICAvLyBNZXRhZnVuY3Rpb246CisgIC8vCisgIC8vICAgZ2V0X3VkdF9taXh0dXJlPFQsUz46OnR5cGUKKyAgLy8KKyAgLy8gU2VsZWN0cyB0aGUgYXBwcm9wcmlhdGUgVWR0TWl4dHVyZSBJbnRlZ3JhbCBDb25zdGFudCBmb3IgdGhlIGNvbWJpbmF0aW9uIFQsUy4KKyAgLy8KKyAgdGVtcGxhdGU8Y2xhc3MgVCxjbGFzcyBTPgorICBzdHJ1Y3QgZ2V0X3VkdF9idWlsdGluX21peHR1cmUKKyAgeworICAgIHR5cGVkZWYgaXNfYXJpdGhtZXRpYzxTPiBTX2J1aWx0aW4gOworICAgIHR5cGVkZWYgaXNfYXJpdGhtZXRpYzxUPiBUX2J1aWx0aW4gOworCisgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgZm9yX2JvdGg8U19idWlsdGluLCBUX2J1aWx0aW4sIGJ1aWx0aW4yYnVpbHRpbl9jLCBidWlsdGluMnVkdF9jLCB1ZHQyYnVpbHRpbl9jLCB1ZHQydWR0X2M+Ojp0eXBlCisgICAgICAgIHR5cGUgOworICB9IDsKKworfSB9IH0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0OjpudW1lcmljOjpjb252ZGV0YWlsCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2ludF9mbG9hdF9taXh0dXJlX2VudW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vaW50X2Zsb2F0X21peHR1cmVfZW51bS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTczMzQwNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL2ludF9mbG9hdF9taXh0dXJlX2VudW0uaHBwCkBAIC0wLDAgKzEsMjkgQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0lOVF9GTE9BVF9NSVhUVVJFX0VOVU1fRkxDXzEyTk9WMjAwMl9IUFAKKyNkZWZpbmUgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX0lOVF9GTE9BVF9NSVhUVVJFX0VOVU1fRkxDXzEyTk9WMjAwMl9IUFAKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMKK3sKKyAgZW51bSBpbnRfZmxvYXRfbWl4dHVyZV9lbnVtCisgIHsKKyAgICAgaW50ZWdyYWxfdG9faW50ZWdyYWwKKyAgICAsaW50ZWdyYWxfdG9fZmxvYXQKKyAgICAsZmxvYXRfdG9faW50ZWdyYWwKKyAgICAsZmxvYXRfdG9fZmxvYXQKKyAgfSA7CisKK30gfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6Om51bWVyaWMKKworI2VuZGlmCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL251bWVyaWNfY2FzdF90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0ODJiZmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9udW1lcmljX2Nhc3RfdHJhaXRzLmhwcApAQCAtMCwwICsxLDMxIEBACisvLworLy8hIENvcHlyaWdodCAoYykgMjAxMQorLy8hIEJyYW5kb24gS29obgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisjaWZuZGVmIEJPT1NUX05VTUVSSUNfQ0FTVF9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX05VTUVSSUNfQ0FTVF9UUkFJVFNfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9udW1lcmljL2NvbnZlcnNpb24vY29udmVydGVyX3BvbGljaWVzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMgeworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlLCB0eXBlbmFtZSBFbmFibGVJZiA9IHZvaWQ+CisgICAgc3RydWN0IG51bWVyaWNfY2FzdF90cmFpdHMKKyAgICB7CisgICAgICAgIHR5cGVkZWYgZGVmX292ZXJmbG93X2hhbmRsZXIgICAgb3ZlcmZsb3dfcG9saWN5OworICAgICAgICB0eXBlZGVmIFVzZUludGVybmFsUmFuZ2VDaGVja2VyIHJhbmdlX2NoZWNraW5nX3BvbGljeTsKKyAgICAgICAgdHlwZWRlZiBUcnVuYzxTb3VyY2U+ICAgICAgICAgICByb3VuZGluZ19wb2xpY3k7CisgICAgfTsKKworfX0vL25hbWVzcGFjZSBuZG5ib29zdDo6bnVtZXJpYzsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fUkVMQVhfQlVJTFRfSU5fQ0FTVF9UUkFJVFMgKQorI2luY2x1ZGUgPG5kbmJvb3N0L2NzdGRpbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9kZXRhaWwvbnVtZXJpY19jYXN0X3RyYWl0cy5ocHA+CisjZW5kaWYvLyFkZWZpbmVkIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9SRUxBWF9CVUlMVF9JTl9DQVNUX1RSQUlUUworCisjZW5kaWYvL0JPT1NUX05VTUVSSUNfQ0FTVF9UUkFJVFNfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9zaWduX21peHR1cmVfZW51bS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9zaWduX21peHR1cmVfZW51bS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZiNzE1MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL3NpZ25fbWl4dHVyZV9lbnVtLmhwcApAQCAtMCwwICsxLDI5IEBACisvLyAgKGMpIENvcHlyaWdodCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbCAyMDAwLTIwMDQKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGxpYnJhcnkgaG9tZSBwYWdlIGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbnVtZXJpYy9jb252ZXJzaW9uCisvLworLy8gQ29udGFjdCB0aGUgYXV0aG9yIGF0OiBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8gCisjaWZuZGVmIEJPT1NUX05VTUVSSUNfQ09OVkVSU0lPTl9TSUdOX01JWFRVUkVfRU5VTV9GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fU0lHTl9NSVhUVVJFX0VOVU1fRkxDXzEyTk9WMjAwMl9IUFAKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG51bWVyaWMKK3sKKyAgZW51bSBzaWduX21peHR1cmVfZW51bQorICB7CisgICAgIHVuc2lnbmVkX3RvX3Vuc2lnbmVkCisgICAgLHNpZ25lZF90b19zaWduZWQKKyAgICAsc2lnbmVkX3RvX3Vuc2lnbmVkCisgICAgLHVuc2lnbmVkX3RvX3NpZ25lZAorICB9IDsKKworfSB9IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6bnVtZXJpYworCisjZW5kaWYKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvbnVtZXJpYy9jb252ZXJzaW9uL3VkdF9idWlsdGluX21peHR1cmVfZW51bS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi91ZHRfYnVpbHRpbl9taXh0dXJlX2VudW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNWJmNWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi91ZHRfYnVpbHRpbl9taXh0dXJlX2VudW0uaHBwCkBAIC0wLDAgKzEsMjYgQEAKKy8vICAoYykgQ29weXJpZ2h0IEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsIDIwMDAtMjAwNAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgbGlicmFyeSBob21lIHBhZ2UgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9udW1lcmljL2NvbnZlcnNpb24KKy8vCisvLyBDb250YWN0IHRoZSBhdXRob3IgYXQ6IGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLyAKKyNpZm5kZWYgQk9PU1RfTlVNRVJJQ19DT05WRVJTSU9OX1VEVF9CVUlMVElOX01JWFRVUkVfRU5VTV9GTENfMTJOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9OVU1FUklDX0NPTlZFUlNJT05fVURUX0JVSUxUSU5fTUlYVFVSRV9FTlVNX0ZMQ18xMk5PVjIwMDJfSFBQCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBudW1lcmljCit7CisgIGVudW0gdWR0X2J1aWx0aW5fbWl4dHVyZV9lbnVtCisgIHsKKyAgICAgYnVpbHRpbl90b19idWlsdGluCisgICAgLGJ1aWx0aW5fdG9fdWR0CisgICAgLHVkdF90b19idWlsdGluCisgICAgLHVkdF90b191ZHQKKyAgfSA7CisKK30gfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6Om51bWVyaWMKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvb3B0aW9uYWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9vcHRpb25hbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlZWNiZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvb3B0aW9uYWwuaHBwCkBAIC0wLDAgKzEsMTggQEAKKy8vIENvcHlyaWdodCAoQykgMjAwMywgRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwuCisvLworLy8gVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvb3B0aW9uYWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8gWW91IGFyZSB3ZWxjb21lIHRvIGNvbnRhY3QgdGhlIGF1dGhvciBhdDoKKy8vICBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKyNpZm5kZWYgQk9PU1RfT1BUSU9OQUxfRkxDXzE5Tk9WMjAwMl9IUFAKKyNkZWZpbmUgQk9PU1RfT1BUSU9OQUxfRkxDXzE5Tk9WMjAwMl9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L29wdGlvbmFsL29wdGlvbmFsLmhwcCIKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9vcHRpb25hbC9vcHRpb25hbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTlkYzQ2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWwuaHBwCkBAIC0wLDAgKzEsOTkxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDggRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwuCisvLworLy8gVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvb3B0aW9uYWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8gWW91IGFyZSB3ZWxjb21lIHRvIGNvbnRhY3QgdGhlIGF1dGhvciBhdDoKKy8vICBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKy8vIFJldmlzaW9uczoKKy8vIDI3IEFwciAyMDA4IChpbXByb3ZlZCBzd2FwKSBGZXJuYW5kbyBDYWNjaW9sYSwgTmllbHMgRGVra2VyLCBUaG9yc3RlbiBPdHRvc2VuCisvLworI2lmbmRlZiBCT09TVF9PUFRJT05BTF9PUFRJT05BTF9GTENfMTlOT1YyMDAyX0hQUAorI2RlZmluZSBCT09TVF9PUFRJT05BTF9PUFRJT05BTF9GTENfMTlOT1YyMDAyX0hQUAorCisjaW5jbHVkZSA8bmV3PgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2NvbnN0cnVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9yZWZlcmVuY2VfY29udGVudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvbm9uZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9zd2FwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9jb21wYXJlX3BvaW50ZWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2luX3BsYWNlX2ZhY3RvcnkuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWxfZndkLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTIwMCkKKy8vIFZDNi4wIGhhcyB0aGUgZm9sbG93aW5nIGJ1ZzoKKy8vICAgV2hlbiBhIHRlbXBsYXRlZCBhc3NpZ25tZW50IG9wZXJhdG9yIGV4aXN0LCBhbiBpbXBsaWNpdCBjb252ZXJzaW9uCisvLyAgIGNvbnN0cnVjdGluZyBhbiBvcHRpb25hbDxUPiBpcyB1c2VkIHdoZW4gYXNzaWdtZW50IG9mIHRoZSBmb3JtOgorLy8gICAgIG9wdGlvbmFsPFQ+IG9wdCA7IG9wdCA9IFQoLi4uKTsKKy8vICAgaXMgY29tcGlsZWQuCisvLyAgIEhvd2V2ZXIsIG9wdGlvbmFsJ3MgY3RvciBpcyBfZXhwbGljaXRfIGFuZCB0aGUgYXNzaWduZW10IHNob3VsZG4ndCBjb21waWxlLgorLy8gICBUaGVyZWZvcmUsIGZvciBWQzYuMCB0ZW1wbGF0ZWQgYXNzaWdubWVudCBpcyBkaXNhYmxlZC4KKy8vCisjZGVmaW5lIEJPT1NUX09QVElPTkFMX05PX0NPTlZFUlRJTkdfQVNTSUdOTUVOVAorI2VuZGlmCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDEzMDApCisvLyBWQzcuMCBoYXMgdGhlIGZvbGxvd2luZyBidWc6CisvLyAgIFdoZW4gYm90aCBhIG5vbi10ZW1wbGF0ZSBhbmQgYSB0ZW1wbGF0ZSBjb3B5LWN0b3IgZXhpc3QKKy8vICAgYW5kIHRoZSB0ZW1wbGF0ZWQgdmVyc2lvbiBpcyBtYWRlICdleHBsaWNpdCcsIHRoZSBleHBsaWNpdCBpcyBhbHNvCisvLyAgIGdpdmVuIHRvIHRoZSBub24tdGVtcGxhdGVkIHZlcnNpb24sIG1ha2luZyB0aGUgY2xhc3Mgbm9uLWltcGxpY2l0ZWx5LWNvcHlhYmxlLgorLy8KKyNkZWZpbmUgQk9PU1RfT1BUSU9OQUxfTk9fQ09OVkVSVElOR19DT1BZX0NUT1IKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSB8fCBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OLDw9NzAwKQorLy8gQUZBSUNUIG9ubHkgVkM3LjEgY29ycmVjdGx5IHJlc29sdmVzIHRoZSBvdmVybG9hZCBzZXQKKy8vIHRoYXQgaW5jbHVkZXMgdGhlIGluLXBsYWNlIGZhY3RvcnkgdGFraW5nIGZ1bmN0aW9ucywKKy8vIHNvIGZvciB0aGUgb3RoZXIgVkMgdmVyc2lvbnMsIGluLXBsYWNlIGZhY3Rvcnkgc3VwcG9ydAorLy8gaXMgZGlzYWJsZWQKKyNkZWZpbmUgQk9PU1RfT1BUSU9OQUxfTk9fSU5QTEFDRV9GQUNUT1JZX1NVUFBPUlQKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDw9IDB4NTUxKQorLy8gQkNCICg1LjUuMSkgY2Fubm90IHBhcnNlIHRoZSBuZXN0ZWQgdGVtcGxhdGUgc3RydWN0IGluIGFuIGlucGxhY2UgZmFjdG9yeS4KKyNkZWZpbmUgQk9PU1RfT1BUSU9OQUxfTk9fSU5QTEFDRV9GQUNUT1JZX1NVUFBPUlQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfT1BUSU9OQUxfTk9fSU5QTEFDRV9GQUNUT1JZX1NVUFBPUlQpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTgxKSApCisvLyBCQ0IgKHVwIHRvIDUuNjQpIGhhcyB0aGUgZm9sbG93aW5nIGJ1ZzoKKy8vICAgSWYgdGhlcmUgaXMgYSBtZW1iZXIgZnVuY3Rpb24vb3BlcmF0b3IgdGVtcGxhdGUgb2YgdGhlIGZvcm0KKy8vICAgICB0ZW1wbGF0ZTxjbGFzcyBFeHByPiBtZnVuYyggRXhwciBleHByICkgOworLy8gICBzb21lIGNhbGxzIGFyZSByZXNvbHZlZCB0byB0aGlzIGV2ZW4gaWYgdGhlcmUgYXJlIG90aGVyIGJldHRlciBtYXRjaGVzLgorLy8gICBUaGUgZWZmZWN0IG9mIHRoaXMgYnVnIGlzIHRoYXQgY2FsbHMgdG8gY29udmVydGluZyBjdG9ycyBhbmQgYXNzaWdubWVudHMKKy8vICAgYXJlIGluY3JvcnJlY3RseSBzaW5rIHRvIHRoaXMgZ2VuZXJhbCBjYXRjaC1hbGwgbWVtYmVyIGZ1bmN0aW9uIHRlbXBsYXRlIGFzIHNob3duIGFib3ZlLgorI2RlZmluZSBCT09TVF9PUFRJT05BTF9XRUFLX09WRVJMT0FEX1JFU09MVVRJT04KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fICogMTAwICsgX19HTlVDX01JTk9SX18pID4gMzAyIFwKKyAgICAmJiAhZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKQorLy8gR0NDIHNpbmNlIDMuMyBoYXMgbWF5X2FsaWFzIGF0dHJpYnV0ZSB0aGF0IGhlbHBzIHRvIGFsbGV2aWF0ZSBvcHRpbWl6ZXIgaXNzdWVzIHdpdGgKKy8vIHJlZ2FyZCB0byB2aW9sYXRpb24gb2YgdGhlIHN0cmljdCBhbGlhc2luZyBydWxlcy4gVGhlIG9wdGlvbmFsPCBUID4gc3RvcmFnZSB0eXBlIGlzIG1hcmtlZAorLy8gd2l0aCB0aGlzIGF0dHJpYnV0ZSBpbiBvcmRlciB0byBsZXQgdGhlIGNvbXBpbGVyIGtub3cgdGhhdCBpdCB3aWxsIGFsaWFzIG9iamVjdHMgb2YgdHlwZSBUCisvLyBhbmQgc2lsZW5jZSBjb21waWxhdGlvbiB3YXJuaW5ncy4KKyNkZWZpbmUgQk9PU1RfT1BUSU9OQUxfREVUQUlMX1VTRV9BVFRSSUJVVEVfTUFZX0FMSUFTCisjZW5kaWYKKworLy8gRGFuaWVsIFdhbGxpbiBkaXNjb3ZlcmVkIHRoYXQgYmluZC9hcHBseS5ocHAgYmFkbHkgaW50ZXJhY3RzIHdpdGggdGhlIGFwcGx5PD4KKy8vIG1lbWJlciB0ZW1wbGF0ZSBvZiBhIGZhY3RvcnkgYXMgdXNlZCBpbiB0aGUgb3B0aW9uYWw8PiBpbXBsZW1lbnRhdGlvbi4KKy8vIEhlIHByb3Bvc2VkIHRoaXMgc2ltcGxlIGZpeCB3aGljaCBpcyB0byBtb3ZlIHRoZSBjYWxsIHRvIGFwcGx5PD4gb3V0c2lkZQorLy8gbmFtZXNwYWNlIG5kbmJvb3N0LgorbmFtZXNwYWNlIG5kbmJvb3N0X29wdGlvbmFsX2RldGFpbAoreworICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgRmFjdG9yeT4KKyAgaW5saW5lIHZvaWQgY29uc3RydWN0KEZhY3RvcnkgY29uc3QmIGZhY3RvcnksIHZvaWQqIGFkZHJlc3MpCisgIHsKKyAgICBmYWN0b3J5LkJPT1NUX05FU1RFRF9URU1QTEFURSBhcHBseTxUPihhZGRyZXNzKTsKKyAgfQorfQorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK2NsYXNzIGluX3BsYWNlX2ZhY3RvcnlfYmFzZSA7CitjbGFzcyB0eXBlZF9pbl9wbGFjZV9mYWN0b3J5X2Jhc2UgOworCisvLyBUaGlzIGZvcndhcmQgaXMgbmVlZGVkIHRvIHJlZmVyIHRvIG5hbWVzcGFjZSBzY29wZSBzd2FwIGZyb20gdGhlIG1lbWJlciBzd2FwCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIHN3YXAgKCBvcHRpb25hbDxUPiYgeCwgb3B0aW9uYWw8VD4mIHkgKTsKKworbmFtZXNwYWNlIG9wdGlvbmFsX2RldGFpbCB7CisKKy8vIFRoaXMgbG9jYWwgY2xhc3MgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoYXQgaW4gImFsaWduZWRfc3RvcmFnZS5ocHAiCisvLyBiZWNhdXNlIEkndmUgZm91bmQgdGhlICdvZmZpY2lhbCcgY2xhc3MgdG8gSUNFIEJDQjUuNQorLy8gd2hlbiBzb21lIHR5cGVzIGFyZSB1c2VkIHdpdGggb3B0aW9uYWw8PgorLy8gKGR1ZSB0byBzaXplb2YoKSBwYXNzZWQgZG93biBhcyBhIG5vbi10eXBlIHRlbXBsYXRlIHBhcmFtZXRlcikKK3RlbXBsYXRlIDxjbGFzcyBUPgorY2xhc3MgYWxpZ25lZF9zdG9yYWdlCit7CisgICAgLy8gQm9ybGFuZCBJQ0VzIGlmIHVubmFtZWQgdW5pb25zIGFyZSB1c2VkIGZvciB0aGlzIQorICAgIHVuaW9uCisgICAgLy8gVGhpcyB3b3JrcyBhcm91bmQgR0NDIHdhcm5pbmdzIGFib3V0IGJyZWFraW5nIHN0cmljdCBhbGlhc2luZyBydWxlcyB3aGVuIGNhc3Rpbmcgc3RvcmFnZSBhZGRyZXNzIHRvIFQqCisjaWYgZGVmaW5lZChCT09TVF9PUFRJT05BTF9ERVRBSUxfVVNFX0FUVFJJQlVURV9NQVlfQUxJQVMpCisgICAgX19hdHRyaWJ1dGVfXygobWF5X2FsaWFzKSkKKyNlbmRpZgorICAgIGR1bW15X3UKKyAgICB7CisgICAgICAgIGNoYXIgZGF0YVsgc2l6ZW9mKFQpIF07CisgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgdHlwZV93aXRoX2FsaWdubWVudDwKKyAgICAgICAgICA6Om5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlID46OnR5cGUgYWxpZ25lcl87CisgICAgfSBkdW1teV8gOworCisgIHB1YmxpYzoKKworI2lmIGRlZmluZWQoQk9PU1RfT1BUSU9OQUxfREVUQUlMX1VTRV9BVFRSSUJVVEVfTUFZX0FMSUFTKQorICAgIHZvaWQgY29uc3QqIGFkZHJlc3MoKSBjb25zdCB7IHJldHVybiAmZHVtbXlfOyB9CisgICAgdm9pZCAgICAgICogYWRkcmVzcygpICAgICAgIHsgcmV0dXJuICZkdW1teV87IH0KKyNlbHNlCisgICAgdm9pZCBjb25zdCogYWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIGR1bW15Xy5kYXRhOyB9CisgICAgdm9pZCAgICAgICogYWRkcmVzcygpICAgICAgIHsgcmV0dXJuIGR1bW15Xy5kYXRhOyB9CisjZW5kaWYKK30gOworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IHR5cGVzX3doZW5faXNudF9yZWYKK3sKKyAgdHlwZWRlZiBUIGNvbnN0JiByZWZlcmVuY2VfY29uc3RfdHlwZSA7CisgIHR5cGVkZWYgVCAmICAgICAgcmVmZXJlbmNlX3R5cGUgOworICB0eXBlZGVmIFQgY29uc3QqIHBvaW50ZXJfY29uc3RfdHlwZSA7CisgIHR5cGVkZWYgVCAqICAgICAgcG9pbnRlcl90eXBlIDsKKyAgdHlwZWRlZiBUIGNvbnN0JiBhcmd1bWVudF90eXBlIDsKK30gOwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCB0eXBlc193aGVuX2lzX3JlZgoreworICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZSByYXdfdHlwZSA7CisKKyAgdHlwZWRlZiByYXdfdHlwZSYgcmVmZXJlbmNlX2NvbnN0X3R5cGUgOworICB0eXBlZGVmIHJhd190eXBlJiByZWZlcmVuY2VfdHlwZSA7CisgIHR5cGVkZWYgcmF3X3R5cGUqIHBvaW50ZXJfY29uc3RfdHlwZSA7CisgIHR5cGVkZWYgcmF3X3R5cGUqIHBvaW50ZXJfdHlwZSA7CisgIHR5cGVkZWYgcmF3X3R5cGUmIGFyZ3VtZW50X3R5cGUgOworfSA7CisKK3N0cnVjdCBvcHRpb25hbF90YWcge30gOworCit0ZW1wbGF0ZTxjbGFzcyBUPgorY2xhc3Mgb3B0aW9uYWxfYmFzZSA6IHB1YmxpYyBvcHRpb25hbF90YWcKK3sKKyAgcHJpdmF0ZSA6CisKKyAgICB0eXBlZGVmCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQorICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKyNlbmRpZgorICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6bWFrZV9yZWZlcmVuY2VfY29udGVudDxUPjo6dHlwZSBpbnRlcm5hbF90eXBlIDsKKworICAgIHR5cGVkZWYgYWxpZ25lZF9zdG9yYWdlPGludGVybmFsX3R5cGU+IHN0b3JhZ2VfdHlwZSA7CisKKyAgICB0eXBlZGVmIHR5cGVzX3doZW5faXNudF9yZWY8VD4gdHlwZXNfd2hlbl9ub3RfcmVmIDsKKyAgICB0eXBlZGVmIHR5cGVzX3doZW5faXNfcmVmPFQ+ICAgdHlwZXNfd2hlbl9yZWYgICA7CisKKyAgICB0eXBlZGVmIG9wdGlvbmFsX2Jhc2U8VD4gdGhpc190eXBlIDsKKworICBwcm90ZWN0ZWQgOgorCisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGUgOworCisgICAgdHlwZWRlZiBtcGw6OnRydWVfICBpc19yZWZlcmVuY2VfdGFnIDsKKyAgICB0eXBlZGVmIG1wbDo6ZmFsc2VfIGlzX25vdF9yZWZlcmVuY2VfdGFnIDsKKworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBpc19yZWZlcmVuY2U8VD46OnR5cGUgaXNfcmVmZXJlbmNlX3ByZWRpY2F0ZSA7CisKKyAgcHVibGljOgorICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBtcGw6OmlmXzxpc19yZWZlcmVuY2VfcHJlZGljYXRlLHR5cGVzX3doZW5fcmVmLHR5cGVzX3doZW5fbm90X3JlZj46OnR5cGUgdHlwZXMgOworCisgIHByb3RlY3RlZDoKKyAgICB0eXBlZGVmIGJvb2wgKHRoaXNfdHlwZTo6KnVuc3BlY2lmaWVkX2Jvb2xfdHlwZSkoKSBjb25zdDsKKworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0eXBlczo6cmVmZXJlbmNlX3R5cGUgICAgICAgcmVmZXJlbmNlX3R5cGUgOworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0eXBlczo6cmVmZXJlbmNlX2NvbnN0X3R5cGUgcmVmZXJlbmNlX2NvbnN0X3R5cGUgOworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0eXBlczo6cG9pbnRlcl90eXBlICAgICAgICAgcG9pbnRlcl90eXBlIDsKKyAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgdHlwZXM6OnBvaW50ZXJfY29uc3RfdHlwZSAgIHBvaW50ZXJfY29uc3RfdHlwZSA7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHR5cGVzOjphcmd1bWVudF90eXBlICAgICAgICBhcmd1bWVudF90eXBlIDsKKworICAgIC8vIENyZWF0ZXMgYW4gb3B0aW9uYWw8VD4gdW5pbml0aWFsaXplZC4KKyAgICAvLyBOby10aHJvdworICAgIG9wdGlvbmFsX2Jhc2UoKQorICAgICAgOgorICAgICAgbV9pbml0aWFsaXplZChmYWxzZSkge30KKworICAgIC8vIENyZWF0ZXMgYW4gb3B0aW9uYWw8VD4gdW5pbml0aWFsaXplZC4KKyAgICAvLyBOby10aHJvdworICAgIG9wdGlvbmFsX2Jhc2UgKCBub25lX3QgKQorICAgICAgOgorICAgICAgbV9pbml0aWFsaXplZChmYWxzZSkge30KKworICAgIC8vIENyZWF0ZXMgYW4gb3B0aW9uYWw8VD4gaW5pdGlhbGl6ZWQgd2l0aCAndmFsJy4KKyAgICAvLyBDYW4gdGhyb3cgaWYgVDo6VChUIGNvbnN0JikgZG9lcworICAgIG9wdGlvbmFsX2Jhc2UgKCBhcmd1bWVudF90eXBlIHZhbCApCisgICAgICA6CisgICAgICBtX2luaXRpYWxpemVkKGZhbHNlKQorICAgIHsKKyAgICAgIGNvbnN0cnVjdCh2YWwpOworICAgIH0KKworICAgIC8vIENyZWF0ZXMgYW4gb3B0aW9uYWw8VD4gaW5pdGlhbGl6ZWQgd2l0aCAndmFsJyBJRkYgY29uZCBpcyB0cnVlLCBvdGhlcndpc2UgY3JlYXRlcyBhbiB1bmluaXRpYWx6ZWQgb3B0aW9uYWw8VD4uCisgICAgLy8gQ2FuIHRocm93IGlmIFQ6OlQoVCBjb25zdCYpIGRvZXMKKyAgICBvcHRpb25hbF9iYXNlICggYm9vbCBjb25kLCBhcmd1bWVudF90eXBlIHZhbCApCisgICAgICA6CisgICAgICBtX2luaXRpYWxpemVkKGZhbHNlKQorICAgIHsKKyAgICAgIGlmICggY29uZCApCisgICAgICAgIGNvbnN0cnVjdCh2YWwpOworICAgIH0KKworICAgIC8vIENyZWF0ZXMgYSBkZWVwIGNvcHkgb2YgYW5vdGhlciBvcHRpb25hbDxUPgorICAgIC8vIENhbiB0aHJvdyBpZiBUOjpUKFQgY29uc3QmKSBkb2VzCisgICAgb3B0aW9uYWxfYmFzZSAoIG9wdGlvbmFsX2Jhc2UgY29uc3QmIHJocyApCisgICAgICA6CisgICAgICBtX2luaXRpYWxpemVkKGZhbHNlKQorICAgIHsKKyAgICAgIGlmICggcmhzLmlzX2luaXRpYWxpemVkKCkgKQorICAgICAgICBjb25zdHJ1Y3QocmhzLmdldF9pbXBsKCkpOworICAgIH0KKworCisgICAgLy8gVGhpcyBpcyB1c2VkIGZvciBib3RoIGNvbnZlcnRpbmcgYW5kIGluLXBsYWNlIGNvbnN0cnVjdGlvbnMuCisgICAgLy8gRGVyaXZlZCBjbGFzc2VzIHVzZSB0aGUgJ3RhZycgdG8gc2VsZWN0IHRoZSBhcHByb3ByaWF0ZQorICAgIC8vIGltcGxlbWVudGF0aW9uICh0aGUgY29ycmVjdCAnY29uc3RydWN0KCknIG92ZXJsb2FkKQorICAgIHRlbXBsYXRlPGNsYXNzIEV4cHI+CisgICAgZXhwbGljaXQgb3B0aW9uYWxfYmFzZSAoIEV4cHIgY29uc3QmIGV4cHIsIEV4cHIgY29uc3QqIHRhZyApCisgICAgICA6CisgICAgICBtX2luaXRpYWxpemVkKGZhbHNlKQorICAgIHsKKyAgICAgIGNvbnN0cnVjdChleHByLHRhZyk7CisgICAgfQorCisKKworICAgIC8vIE5vLXRocm93IChhc3N1bWluZyBUOjp+VCgpIGRvZXNuJ3QpCisgICAgfm9wdGlvbmFsX2Jhc2UoKSB7IGRlc3Ryb3koKSA7IH0KKworICAgIC8vIEFzc2lnbnMgZnJvbSBhbm90aGVyIG9wdGlvbmFsPFQ+IChkZWVwLWNvcGllcyB0aGUgcmhzIHZhbHVlKQorICAgIHZvaWQgYXNzaWduICggb3B0aW9uYWxfYmFzZSBjb25zdCYgcmhzICkKKyAgICB7CisgICAgICBpZiAoaXNfaW5pdGlhbGl6ZWQoKSkKKyAgICAgIHsKKyAgICAgICAgaWYgKCByaHMuaXNfaW5pdGlhbGl6ZWQoKSApCisgICAgICAgICAgICAgYXNzaWduX3ZhbHVlKHJocy5nZXRfaW1wbCgpLCBpc19yZWZlcmVuY2VfcHJlZGljYXRlKCkgKTsKKyAgICAgICAgZWxzZSBkZXN0cm95KCk7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICB7CisgICAgICAgIGlmICggcmhzLmlzX2luaXRpYWxpemVkKCkgKQorICAgICAgICAgIGNvbnN0cnVjdChyaHMuZ2V0X2ltcGwoKSk7CisgICAgICB9CisgICAgfQorCisgICAgLy8gQXNzaWducyBmcm9tIGFub3RoZXIgX2NvbnZlcnRpYmxlXyBvcHRpb25hbDxVPiAoZGVlcC1jb3BpZXMgdGhlIHJocyB2YWx1ZSkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgIHZvaWQgYXNzaWduICggb3B0aW9uYWw8VT4gY29uc3QmIHJocyApCisgICAgeworICAgICAgaWYgKGlzX2luaXRpYWxpemVkKCkpCisgICAgICB7CisgICAgICAgIGlmICggcmhzLmlzX2luaXRpYWxpemVkKCkgKQorICAgICAgICAgICAgIGFzc2lnbl92YWx1ZShzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPihyaHMuZ2V0KCkpLCBpc19yZWZlcmVuY2VfcHJlZGljYXRlKCkgKTsKKyAgICAgICAgZWxzZSBkZXN0cm95KCk7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICB7CisgICAgICAgIGlmICggcmhzLmlzX2luaXRpYWxpemVkKCkgKQorICAgICAgICAgIGNvbnN0cnVjdChzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPihyaHMuZ2V0KCkpKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICAvLyBBc3NpZ25zIGZyb20gYSBUIChkZWVwLWNvcGllcyB0aGUgcmhzIHZhbHVlKQorICAgIHZvaWQgYXNzaWduICggYXJndW1lbnRfdHlwZSB2YWwgKQorICAgIHsKKyAgICAgIGlmIChpc19pbml0aWFsaXplZCgpKQorICAgICAgICAgICBhc3NpZ25fdmFsdWUodmFsLCBpc19yZWZlcmVuY2VfcHJlZGljYXRlKCkgKTsKKyAgICAgIGVsc2UgY29uc3RydWN0KHZhbCk7CisgICAgfQorCisgICAgLy8gQXNzaWducyBmcm9tICJub25lIiwgZGVzdHJveWluZyB0aGUgY3VycmVudCB2YWx1ZSwgaWYgYW55LCBsZWF2aW5nIHRoaXMgVU5JTklUSUFMSVpFRAorICAgIC8vIE5vLXRocm93IChhc3N1bWluZyBUOjp+VCgpIGRvZXNuJ3QpCisgICAgdm9pZCBhc3NpZ24gKCBub25lX3QgKSB7IGRlc3Ryb3koKTsgfQorCisjaWZuZGVmIEJPT1NUX09QVElPTkFMX05PX0lOUExBQ0VfRkFDVE9SWV9TVVBQT1JUCisgICAgdGVtcGxhdGU8Y2xhc3MgRXhwcj4KKyAgICB2b2lkIGFzc2lnbl9leHByICggRXhwciBjb25zdCYgZXhwciwgRXhwciBjb25zdCogdGFnICkKKyAgICAgIHsKKyAgICAgICAgaWYgKGlzX2luaXRpYWxpemVkKCkpCisgICAgICAgICAgICAgYXNzaWduX2V4cHJfdG9faW5pdGlhbGl6ZWQoZXhwcix0YWcpOworICAgICAgICBlbHNlIGNvbnN0cnVjdChleHByLHRhZyk7CisgICAgICB9CisjZW5kaWYKKworICBwdWJsaWMgOgorCisgICAgLy8gRGVzdHJveXMgdGhlIGN1cnJlbnQgdmFsdWUsIGlmIGFueSwgbGVhdmluZyB0aGlzIFVOSU5JVElBTElaRUQKKyAgICAvLyBOby10aHJvdyAoYXNzdW1pbmcgVDo6flQoKSBkb2Vzbid0KQorICAgIHZvaWQgcmVzZXQoKSB7IGRlc3Ryb3koKTsgfQorCisgICAgLy8gUmVwbGFjZXMgdGhlIGN1cnJlbnQgdmFsdWUgLWlmIGFueS0gd2l0aCAndmFsJworICAgIHZvaWQgcmVzZXQgKCBhcmd1bWVudF90eXBlIHZhbCApIHsgYXNzaWduKHZhbCk7IH0KKworICAgIC8vIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSB2YWx1ZSBpZiB0aGlzIGlzIGluaXRpYWxpemVkLCBvdGhlcndpc2UsCisgICAgLy8gcmV0dXJucyBOVUxMLgorICAgIC8vIE5vLXRocm93CisgICAgcG9pbnRlcl9jb25zdF90eXBlIGdldF9wdHIoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxpemVkID8gZ2V0X3B0cl9pbXBsKCkgOiAwIDsgfQorICAgIHBvaW50ZXJfdHlwZSAgICAgICBnZXRfcHRyKCkgICAgICAgeyByZXR1cm4gbV9pbml0aWFsaXplZCA/IGdldF9wdHJfaW1wbCgpIDogMCA7IH0KKworICAgIGJvb2wgaXNfaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxpemVkIDsgfQorCisgIHByb3RlY3RlZCA6CisKKyAgICB2b2lkIGNvbnN0cnVjdCAoIGFyZ3VtZW50X3R5cGUgdmFsICkKKyAgICAgeworICAgICAgIG5ldyAobV9zdG9yYWdlLmFkZHJlc3MoKSkgaW50ZXJuYWxfdHlwZSh2YWwpIDsKKyAgICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZSA7CisgICAgIH0KKworI2lmbmRlZiBCT09TVF9PUFRJT05BTF9OT19JTlBMQUNFX0ZBQ1RPUllfU1VQUE9SVAorICAgIC8vIENvbnN0cnVjdHMgaW4tcGxhY2UgdXNpbmcgdGhlIGdpdmVuIGZhY3RvcnkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFeHByPgorICAgIHZvaWQgY29uc3RydWN0ICggRXhwciBjb25zdCYgZmFjdG9yeSwgaW5fcGxhY2VfZmFjdG9yeV9iYXNlIGNvbnN0KiApCisgICAgIHsKKyAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUICggOjpuZG5ib29zdDo6bXBsOjpub3RfPGlzX3JlZmVyZW5jZV9wcmVkaWNhdGU+Ojp2YWx1ZSApIDsKKyAgICAgICBuZG5ib29zdF9vcHRpb25hbF9kZXRhaWw6OmNvbnN0cnVjdDx2YWx1ZV90eXBlPihmYWN0b3J5LCBtX3N0b3JhZ2UuYWRkcmVzcygpKTsKKyAgICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZSA7CisgICAgIH0KKworICAgIC8vIENvbnN0cnVjdHMgaW4tcGxhY2UgdXNpbmcgdGhlIGdpdmVuIHR5cGVkIGZhY3RvcnkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFeHByPgorICAgIHZvaWQgY29uc3RydWN0ICggRXhwciBjb25zdCYgZmFjdG9yeSwgdHlwZWRfaW5fcGxhY2VfZmFjdG9yeV9iYXNlIGNvbnN0KiApCisgICAgIHsKKyAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUICggOjpuZG5ib29zdDo6bXBsOjpub3RfPGlzX3JlZmVyZW5jZV9wcmVkaWNhdGU+Ojp2YWx1ZSApIDsKKyAgICAgICBmYWN0b3J5LmFwcGx5KG1fc3RvcmFnZS5hZGRyZXNzKCkpIDsKKyAgICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZSA7CisgICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEV4cHI+CisgICAgdm9pZCBhc3NpZ25fZXhwcl90b19pbml0aWFsaXplZCAoIEV4cHIgY29uc3QmIGZhY3RvcnksIGluX3BsYWNlX2ZhY3RvcnlfYmFzZSBjb25zdCogdGFnICkKKyAgICAgeworICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICBjb25zdHJ1Y3QoZmFjdG9yeSx0YWcpOworICAgICB9CisKKyAgICAvLyBDb25zdHJ1Y3RzIGluLXBsYWNlIHVzaW5nIHRoZSBnaXZlbiB0eXBlZCBmYWN0b3J5CisgICAgdGVtcGxhdGU8Y2xhc3MgRXhwcj4KKyAgICB2b2lkIGFzc2lnbl9leHByX3RvX2luaXRpYWxpemVkICggRXhwciBjb25zdCYgZmFjdG9yeSwgdHlwZWRfaW5fcGxhY2VfZmFjdG9yeV9iYXNlIGNvbnN0KiB0YWcgKQorICAgICB7CisgICAgICAgZGVzdHJveSgpOworICAgICAgIGNvbnN0cnVjdChmYWN0b3J5LHRhZyk7CisgICAgIH0KKyNlbmRpZgorCisgICAgLy8gQ29uc3RydWN0cyB1c2luZyBhbnkgZXhwcmVzc2lvbiBpbXBsaWNpdGVseSBjb252ZXJ0aWJsZSB0byB0aGUgc2luZ2xlIGFyZ3VtZW50CisgICAgLy8gb2YgYSBvbmUtYXJndW1lbnQgVCBjb25zdHJ1Y3Rvci4KKyAgICAvLyBDb252ZXJ0aW5nIGNvbnN0cnVjdGlvbnMgb2Ygb3B0aW9uYWw8VD4gZnJvbSBvcHRpb25hbDxVPiB1c2VzIHRoaXMgZnVuY3Rpb24gd2l0aAorICAgIC8vICdFeHByJyBiZWluZyBvZiB0eXBlICdVJyBhbmQgcmVseWluZyBvbiBhIGNvbnZlcnRpbmcgY29uc3RydWN0b3Igb2YgVCBmcm9tIFUuCisgICAgdGVtcGxhdGU8Y2xhc3MgRXhwcj4KKyAgICB2b2lkIGNvbnN0cnVjdCAoIEV4cHIgY29uc3QmIGV4cHIsIHZvaWQgY29uc3QqICkKKyAgICAgeworICAgICAgIG5ldyAobV9zdG9yYWdlLmFkZHJlc3MoKSkgaW50ZXJuYWxfdHlwZShleHByKSA7CisgICAgICAgbV9pbml0aWFsaXplZCA9IHRydWUgOworICAgICB9CisKKyAgICAvLyBBc3NpZ25zIHVzaW5nIGEgZm9ybSBhbnkgZXhwcmVzc2lvbiBpbXBsaWNpdGVseSBjb252ZXJ0aWJsZSB0byB0aGUgc2luZ2xlIGFyZ3VtZW50CisgICAgLy8gb2YgYSBUJ3MgYXNzaWdubWVudCBvcGVyYXRvci4KKyAgICAvLyBDb252ZXJ0aW5nIGFzc2lnbm1lbnRzIG9mIG9wdGlvbmFsPFQ+IGZyb20gb3B0aW9uYWw8VT4gdXNlcyB0aGlzIGZ1bmN0aW9uIHdpdGgKKyAgICAvLyAnRXhwcicgYmVpbmcgb2YgdHlwZSAnVScgYW5kIHJlbHlpbmcgb24gYSBjb252ZXJ0aW5nIGFzc2lnbm1lbnQgb2YgVCBmcm9tIFUuCisgICAgdGVtcGxhdGU8Y2xhc3MgRXhwcj4KKyAgICB2b2lkIGFzc2lnbl9leHByX3RvX2luaXRpYWxpemVkICggRXhwciBjb25zdCYgZXhwciwgdm9pZCBjb25zdCogKQorICAgICB7CisgICAgICAgYXNzaWduX3ZhbHVlKGV4cHIsIGlzX3JlZmVyZW5jZV9wcmVkaWNhdGUoKSk7CisgICAgIH0KKworI2lmZGVmIEJPT1NUX09QVElPTkFMX1dFQUtfT1ZFUkxPQURfUkVTT0xVVElPTgorICAgIC8vIEJDQjUuNjQgKGFuZCBwcm9iYWJseSBsb3dlciB2ZXJzaW9ucykgd29ya2Fyb3VuZC4KKyAgICAvLyAgIFRoZSBpbi1wbGFjZSBmYWN0b3JpZXMgYXJlIHN1cHBvcnRlZCBieSBtZWFucyBvZiBjYXRjaC1hbGwgY29uc3RydWN0b3JzCisgICAgLy8gICBhbmQgYXNzaWdubWVudCBvcGVyYXRvcnMgKHRoZSBmdW5jdGlvbnMgYXJlIHBhcmFtZXRlcml6ZWQgaW4gdGVybXMgb2YKKyAgICAvLyAgIGFuIGFyYml0cmFyeSAnRXhwcicgdHlwZSkKKyAgICAvLyAgIFRoaXMgY29tcGlsZXIgaW5jb3JyZWN0bHkgcmVzb2x2ZXMgdGhlIG92ZXJsb2FkIHNldCBhbmQgc2lua3Mgb3B0aW9uYWw8VD4gYW5kIG9wdGlvbmFsPFU+CisgICAgLy8gICB0byB0aGUgJ0V4cHInLXRha2luZyBmdW5jdGlvbnMgZXZlbiB0aG91Z2ggZXhwbGljaXQgb3ZlcmxvYWRzIGFyZSBwcmVzZW50IGZvciB0aGVtLgorICAgIC8vICAgVGh1cywgdGhlIGZvbGxvd2luZyBvdmVybG9hZCBpcyBuZWVkZWQgdG8gcHJvcGVybHkgaGFuZGxlIHRoZSBjYXNlIHdoZW4gdGhlICdsaHMnCisgICAgLy8gICBpcyBhbm90aGVyIG9wdGlvbmFsLgorICAgIC8vCisgICAgLy8gRm9yIFZDPD03MCBjb21waWxlcnMgdGhpcyB3b3JrYXJvdW5kIGRvc2VuJ3Qgd29yayBiZWNhc3VlIHRoZSBjb21ucGlsZXIgaXNzdWVzIGFuZCBlcnJvcgorICAgIC8vIGluc3RlYWQgb2YgY2hvb3NpbmcgdGhlIHdyb25nIG92ZXJsb2FkCisgICAgLy8KKyAgICAvLyBOb3RpY2UgdGhhdCAnRXhwcicgd2lsbCBiZSBvcHRpb25hbDxUPiBvciBvcHRpb25hbDxVPiAoYnV0IG5vdCBvcHRpb25hbF9iYXNlPC4uPikKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFeHByPgorICAgIHZvaWQgY29uc3RydWN0ICggRXhwciBjb25zdCYgZXhwciwgb3B0aW9uYWxfdGFnIGNvbnN0KiApCisgICAgIHsKKyAgICAgICBpZiAoIGV4cHIuaXNfaW5pdGlhbGl6ZWQoKSApCisgICAgICAgeworICAgICAgICAgLy8gQW4gZXhjZXB0aW9uIGNhbiBiZSB0aHJvd24gaGVyZS4KKyAgICAgICAgIC8vIEl0IGl0IGhhcHBlbnMsIFRISVMgd2lsbCBiZSBsZWZ0IHVuaW5pdGlhbGl6ZWQuCisgICAgICAgICBuZXcgKG1fc3RvcmFnZS5hZGRyZXNzKCkpIGludGVybmFsX3R5cGUoZXhwci5nZXQoKSkgOworICAgICAgICAgbV9pbml0aWFsaXplZCA9IHRydWUgOworICAgICAgIH0KKyAgICAgfQorI2VuZGlmCisKKyAgICB2b2lkIGFzc2lnbl92YWx1ZSAoIGFyZ3VtZW50X3R5cGUgdmFsLCBpc19ub3RfcmVmZXJlbmNlX3RhZyApIHsgZ2V0X2ltcGwoKSA9IHZhbDsgfQorICAgIHZvaWQgYXNzaWduX3ZhbHVlICggYXJndW1lbnRfdHlwZSB2YWwsIGlzX3JlZmVyZW5jZV90YWcgICAgICkgeyBjb25zdHJ1Y3QodmFsKTsgfQorCisgICAgdm9pZCBkZXN0cm95KCkKKyAgICB7CisgICAgICBpZiAoIG1faW5pdGlhbGl6ZWQgKQorICAgICAgICBkZXN0cm95X2ltcGwoaXNfcmVmZXJlbmNlX3ByZWRpY2F0ZSgpKSA7CisgICAgfQorCisgICAgdW5zcGVjaWZpZWRfYm9vbF90eXBlIHNhZmVfYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZWQgPyAmdGhpc190eXBlOjppc19pbml0aWFsaXplZCA6IDAgOyB9CisKKyAgICByZWZlcmVuY2VfY29uc3RfdHlwZSBnZXRfaW1wbCgpIGNvbnN0IHsgcmV0dXJuIGRlcmVmZXJlbmNlKGdldF9vYmplY3QoKSwgaXNfcmVmZXJlbmNlX3ByZWRpY2F0ZSgpICkgOyB9CisgICAgcmVmZXJlbmNlX3R5cGUgICAgICAgZ2V0X2ltcGwoKSAgICAgICB7IHJldHVybiBkZXJlZmVyZW5jZShnZXRfb2JqZWN0KCksIGlzX3JlZmVyZW5jZV9wcmVkaWNhdGUoKSApIDsgfQorCisgICAgcG9pbnRlcl9jb25zdF90eXBlIGdldF9wdHJfaW1wbCgpIGNvbnN0IHsgcmV0dXJuIGNhc3RfcHRyKGdldF9vYmplY3QoKSwgaXNfcmVmZXJlbmNlX3ByZWRpY2F0ZSgpICkgOyB9CisgICAgcG9pbnRlcl90eXBlICAgICAgIGdldF9wdHJfaW1wbCgpICAgICAgIHsgcmV0dXJuIGNhc3RfcHRyKGdldF9vYmplY3QoKSwgaXNfcmVmZXJlbmNlX3ByZWRpY2F0ZSgpICkgOyB9CisKKyAgcHJpdmF0ZSA6CisKKyAgICAvLyBpbnRlcm5hbF90eXBlIGNhbiBiZSBlaXRoZXIgVCBvciByZWZlcmVuY2VfY29udGVudDxUPgorI2lmIGRlZmluZWQoQk9PU1RfT1BUSU9OQUxfREVUQUlMX1VTRV9BVFRSSUJVVEVfTUFZX0FMSUFTKQorICAgIC8vIFRoaXMgd29ya2Fyb3VuZCBpcyBzdXBwb3NlZCB0byBzaWxlbmNlIEdDQyB3YXJuaW5ncyBhYm91dCBicm9rZW4gc3RyaWN0IGFsaWFzaW5nIHJ1bGVzCisgICAgaW50ZXJuYWxfdHlwZSBjb25zdCogZ2V0X29iamVjdCgpIGNvbnN0CisgICAgeworICAgICAgICB1bmlvbiB7IHZvaWQgY29uc3QqIGFwX3B2b2lkOyBpbnRlcm5hbF90eXBlIGNvbnN0KiBhc19wdHlwZTsgfSBjYXN0ZXIgPSB7IG1fc3RvcmFnZS5hZGRyZXNzKCkgfTsKKyAgICAgICAgcmV0dXJuIGNhc3Rlci5hc19wdHlwZTsKKyAgICB9CisgICAgaW50ZXJuYWxfdHlwZSAqICAgICAgZ2V0X29iamVjdCgpCisgICAgeworICAgICAgICB1bmlvbiB7IHZvaWQqIGFwX3B2b2lkOyBpbnRlcm5hbF90eXBlKiBhc19wdHlwZTsgfSBjYXN0ZXIgPSB7IG1fc3RvcmFnZS5hZGRyZXNzKCkgfTsKKyAgICAgICAgcmV0dXJuIGNhc3Rlci5hc19wdHlwZTsKKyAgICB9CisjZWxzZQorICAgIGludGVybmFsX3R5cGUgY29uc3QqIGdldF9vYmplY3QoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnRlcm5hbF90eXBlIGNvbnN0Kj4obV9zdG9yYWdlLmFkZHJlc3MoKSk7IH0KKyAgICBpbnRlcm5hbF90eXBlICogICAgICBnZXRfb2JqZWN0KCkgICAgICAgeyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50ZXJuYWxfdHlwZSAqPiAgICAgKG1fc3RvcmFnZS5hZGRyZXNzKCkpOyB9CisjZW5kaWYKKworICAgIC8vIHJlZmVyZW5jZV9jb250ZW50PFQ+IGxhY2tzIGFuIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gVCYsIHNvIHRoZSBmb2xsb3dpbmcgaXMgbmVlZGVkIHRvIG9idGFpbiBhIHByb3BlciByZWZlcmVuY2UuCisgICAgcmVmZXJlbmNlX2NvbnN0X3R5cGUgZGVyZWZlcmVuY2UoIGludGVybmFsX3R5cGUgY29uc3QqIHAsIGlzX25vdF9yZWZlcmVuY2VfdGFnICkgY29uc3QgeyByZXR1cm4gKnAgOyB9CisgICAgcmVmZXJlbmNlX3R5cGUgICAgICAgZGVyZWZlcmVuY2UoIGludGVybmFsX3R5cGUqICAgICAgIHAsIGlzX25vdF9yZWZlcmVuY2VfdGFnICkgICAgICAgeyByZXR1cm4gKnAgOyB9CisgICAgcmVmZXJlbmNlX2NvbnN0X3R5cGUgZGVyZWZlcmVuY2UoIGludGVybmFsX3R5cGUgY29uc3QqIHAsIGlzX3JlZmVyZW5jZV90YWcgICAgICkgY29uc3QgeyByZXR1cm4gcC0+Z2V0KCkgOyB9CisgICAgcmVmZXJlbmNlX3R5cGUgICAgICAgZGVyZWZlcmVuY2UoIGludGVybmFsX3R5cGUqICAgICAgIHAsIGlzX3JlZmVyZW5jZV90YWcgICAgICkgICAgICAgeyByZXR1cm4gcC0+Z2V0KCkgOyB9CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTgxKSkKKyAgICB2b2lkIGRlc3Ryb3lfaW1wbCAoIGlzX25vdF9yZWZlcmVuY2VfdGFnICkgeyBnZXRfcHRyX2ltcGwoKS0+aW50ZXJuYWxfdHlwZTo6fmludGVybmFsX3R5cGUoKSA7IG1faW5pdGlhbGl6ZWQgPSBmYWxzZSA7IH0KKyNlbHNlCisgICAgdm9pZCBkZXN0cm95X2ltcGwgKCBpc19ub3RfcmVmZXJlbmNlX3RhZyApIHsgZ2V0X3B0cl9pbXBsKCktPlQ6On5UKCkgOyBtX2luaXRpYWxpemVkID0gZmFsc2UgOyB9CisjZW5kaWYKKworICAgIHZvaWQgZGVzdHJveV9pbXBsICggaXNfcmVmZXJlbmNlX3RhZyAgICAgKSB7IG1faW5pdGlhbGl6ZWQgPSBmYWxzZSA7IH0KKworICAgIC8vIElmIFQgaXMgb2YgcmVmZXJlbmNlIHR5cGUsIHRyeWluZyB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBoZWxkIHZhbHVlIG11c3QgcmVzdWx0IGluIGEgY29tcGlsZS10aW1lIGVycm9yLgorICAgIC8vIERlY2VudCBjb21waWxlcnMgc2hvdWxkIGRpc2FsbG93IGNvbnZlcnNpb25zIGZyb20gcmVmZXJlbmNlX2NvbnRlbnQ8VD4qIHRvIFQqLCBidXQganVzdCBpbiBjYXNlLAorICAgIC8vIHRoZSBmb2xsb3dpbmcgb2x2ZXJsb2FkcyBhcmUgdXNlZCB0byBmaWx0ZXIgb3V0IHRoZSBjYXNlIGFuZCBndWFyYW50ZWUgYW4gZXJyb3IgaW4gY2FzZSBvZiBUIGJlaW5nIGEgcmVmZXJlbmNlLgorICAgIHBvaW50ZXJfY29uc3RfdHlwZSBjYXN0X3B0ciggaW50ZXJuYWxfdHlwZSBjb25zdCogcCwgaXNfbm90X3JlZmVyZW5jZV90YWcgKSBjb25zdCB7IHJldHVybiBwIDsgfQorICAgIHBvaW50ZXJfdHlwZSAgICAgICBjYXN0X3B0ciggaW50ZXJuYWxfdHlwZSAqICAgICAgcCwgaXNfbm90X3JlZmVyZW5jZV90YWcgKSAgICAgICB7IHJldHVybiBwIDsgfQorICAgIHBvaW50ZXJfY29uc3RfdHlwZSBjYXN0X3B0ciggaW50ZXJuYWxfdHlwZSBjb25zdCogcCwgaXNfcmVmZXJlbmNlX3RhZyAgICAgKSBjb25zdCB7IHJldHVybiAmcC0+Z2V0KCkgOyB9CisgICAgcG9pbnRlcl90eXBlICAgICAgIGNhc3RfcHRyKCBpbnRlcm5hbF90eXBlICogICAgICBwLCBpc19yZWZlcmVuY2VfdGFnICAgICApICAgICAgIHsgcmV0dXJuICZwLT5nZXQoKSA7IH0KKworICAgIGJvb2wgbV9pbml0aWFsaXplZCA7CisgICAgc3RvcmFnZV90eXBlIG1fc3RvcmFnZSA7Cit9IDsKKworfSAvLyBuYW1lc3BhY2Ugb3B0aW9uYWxfZGV0YWlsCisKK3RlbXBsYXRlPGNsYXNzIFQ+CitjbGFzcyBvcHRpb25hbCA6IHB1YmxpYyBvcHRpb25hbF9kZXRhaWw6Om9wdGlvbmFsX2Jhc2U8VD4KK3sKKyAgICB0eXBlZGVmIG9wdGlvbmFsX2RldGFpbDo6b3B0aW9uYWxfYmFzZTxUPiBiYXNlIDsKKworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBiYXNlOjp1bnNwZWNpZmllZF9ib29sX3R5cGUgIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSA7CisKKyAgcHVibGljIDoKKworICAgIHR5cGVkZWYgb3B0aW9uYWw8VD4gdGhpc190eXBlIDsKKworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBiYXNlOjp2YWx1ZV90eXBlICAgICAgICAgICB2YWx1ZV90eXBlIDsKKyAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgYmFzZTo6cmVmZXJlbmNlX3R5cGUgICAgICAgcmVmZXJlbmNlX3R5cGUgOworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBiYXNlOjpyZWZlcmVuY2VfY29uc3RfdHlwZSByZWZlcmVuY2VfY29uc3RfdHlwZSA7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGJhc2U6OnBvaW50ZXJfdHlwZSAgICAgICAgIHBvaW50ZXJfdHlwZSA7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGJhc2U6OnBvaW50ZXJfY29uc3RfdHlwZSAgIHBvaW50ZXJfY29uc3RfdHlwZSA7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGJhc2U6OmFyZ3VtZW50X3R5cGUgICAgICAgIGFyZ3VtZW50X3R5cGUgOworCisgICAgLy8gQ3JlYXRlcyBhbiBvcHRpb25hbDxUPiB1bmluaXRpYWxpemVkLgorICAgIC8vIE5vLXRocm93CisgICAgb3B0aW9uYWwoKSA6IGJhc2UoKSB7fQorCisgICAgLy8gQ3JlYXRlcyBhbiBvcHRpb25hbDxUPiB1bmluaXRpYWxpemVkLgorICAgIC8vIE5vLXRocm93CisgICAgb3B0aW9uYWwoIG5vbmVfdCBub25lXyApIDogYmFzZShub25lXykge30KKworICAgIC8vIENyZWF0ZXMgYW4gb3B0aW9uYWw8VD4gaW5pdGlhbGl6ZWQgd2l0aCAndmFsJy4KKyAgICAvLyBDYW4gdGhyb3cgaWYgVDo6VChUIGNvbnN0JikgZG9lcworICAgIG9wdGlvbmFsICggYXJndW1lbnRfdHlwZSB2YWwgKSA6IGJhc2UodmFsKSB7fQorCisgICAgLy8gQ3JlYXRlcyBhbiBvcHRpb25hbDxUPiBpbml0aWFsaXplZCB3aXRoICd2YWwnIElGRiBjb25kIGlzIHRydWUsIG90aGVyd2lzZSBjcmVhdGVzIGFuIHVuaW5pdGlhbGl6ZWQgb3B0aW9uYWwuCisgICAgLy8gQ2FuIHRocm93IGlmIFQ6OlQoVCBjb25zdCYpIGRvZXMKKyAgICBvcHRpb25hbCAoIGJvb2wgY29uZCwgYXJndW1lbnRfdHlwZSB2YWwgKSA6IGJhc2UoY29uZCx2YWwpIHt9CisKKyNpZm5kZWYgQk9PU1RfT1BUSU9OQUxfTk9fQ09OVkVSVElOR19DT1BZX0NUT1IKKyAgICAvLyBOT1RFOiBNU1ZDIG5lZWRzIHRlbXBsYXRlZCB2ZXJzaW9ucyBmaXJzdAorCisgICAgLy8gQ3JlYXRlcyBhIGRlZXAgY29weSBvZiBhbm90aGVyIGNvbnZlcnRpYmxlIG9wdGlvbmFsPFU+CisgICAgLy8gUmVxdWlyZXMgYSB2YWxpZCBjb252ZXJzaW9uIGZyb20gVSB0byBULgorICAgIC8vIENhbiB0aHJvdyBpZiBUOjpUKFUgY29uc3QmKSBkb2VzCisgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICBleHBsaWNpdCBvcHRpb25hbCAoIG9wdGlvbmFsPFU+IGNvbnN0JiByaHMgKQorICAgICAgOgorICAgICAgYmFzZSgpCisgICAgeworICAgICAgaWYgKCByaHMuaXNfaW5pdGlhbGl6ZWQoKSApCisgICAgICAgIHRoaXMtPmNvbnN0cnVjdChyaHMuZ2V0KCkpOworICAgIH0KKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX09QVElPTkFMX05PX0lOUExBQ0VfRkFDVE9SWV9TVVBQT1JUCisgICAgLy8gQ3JlYXRlcyBhbiBvcHRpb25hbDxUPiB3aXRoIGFuIGV4cHJlc3Npb24gd2hpY2ggY2FuIGJlIGVpdGhlcgorICAgIC8vICAoYSkgQW4gaW5zdGFuY2Ugb2YgSW5QbGFjZUZhY3RvcnkgKGkuZS4gaW5fcGxhY2UoYSxiLC4uLixuKTsKKyAgICAvLyAgKGIpIEFuIGluc3RhbmNlIG9mIFR5cGVkSW5QbGFjZUZhY3RvcnkgKCBpLmUuIGluX3BsYWNlPFQ+KGEsYiwuLi4sbik7CisgICAgLy8gIChjKSBBbnkgZXhwcmVzc2lvbiBpbXBsaWNpdGVseSBjb252ZXJ0aWJsZSB0byB0aGUgc2luZ2xlIHR5cGUKKyAgICAvLyAgICAgIG9mIGEgb25lLWFyZ3VtZW50IFQncyBjb25zdHJ1Y3Rvci4KKyAgICAvLyAgKGQqKSBXZWFrIGNvbXBpbGVycyAoQkNCKSBtaWdodCBhbHNvIHJlc29sdmVkIEV4cHIgYXMgb3B0aW9uYWw8VD4gYW5kIG9wdGlvbmFsPFU+CisgICAgLy8gICAgICAgZXZlbiB0aG91Z2ggZXhwbGljaXQgb3ZlcmxvYWRzIGFyZSBwcmVzZW50IGZvciB0aGVzZS4KKyAgICAvLyBEZXBlbmRpbmcgb24gdGhlIGFib3ZlIHNvbWUgVCBjdG9yIGlzIGNhbGxlZC4KKyAgICAvLyBDYW4gdGhyb3cgaXMgdGhlIHJlc29sdmVkIFQgY3RvciB0aHJvd3MuCisgICAgdGVtcGxhdGU8Y2xhc3MgRXhwcj4KKyAgICBleHBsaWNpdCBvcHRpb25hbCAoIEV4cHIgY29uc3QmIGV4cHIgKSA6IGJhc2UoZXhwcixuZG5ib29zdDo6YWRkcmVzc29mKGV4cHIpKSB7fQorI2VuZGlmCisKKyAgICAvLyBDcmVhdGVzIGEgZGVlcCBjb3B5IG9mIGFub3RoZXIgb3B0aW9uYWw8VD4KKyAgICAvLyBDYW4gdGhyb3cgaWYgVDo6VChUIGNvbnN0JikgZG9lcworICAgIG9wdGlvbmFsICggb3B0aW9uYWwgY29uc3QmIHJocyApIDogYmFzZSggc3RhdGljX2Nhc3Q8YmFzZSBjb25zdCY+KHJocykgKSB7fQorCisgICAvLyBOby10aHJvdyAoYXNzdW1pbmcgVDo6flQoKSBkb2Vzbid0KQorICAgIH5vcHRpb25hbCgpIHt9CisKKyNpZiAhZGVmaW5lZChCT09TVF9PUFRJT05BTF9OT19JTlBMQUNFX0ZBQ1RPUllfU1VQUE9SVCkgJiYgIWRlZmluZWQoQk9PU1RfT1BUSU9OQUxfV0VBS19PVkVSTE9BRF9SRVNPTFVUSU9OKQorICAgIC8vIEFzc2lnbnMgZnJvbSBhbiBleHByZXNzaW9uLiBTZWUgY29ycmVzcG9uZGluZyBjb25zdHJ1Y3Rvci4KKyAgICAvLyBCYXNpYyBHdWFyYW50ZWU6IElmIHRoZSByZXNvbHZlZCBUIGN0b3IgdGhyb3dzLCB0aGlzIGlzIGxlZnQgVU5JTklUSUFMSVpFRAorICAgIHRlbXBsYXRlPGNsYXNzIEV4cHI+CisgICAgb3B0aW9uYWwmIG9wZXJhdG9yPSAoIEV4cHIgY29uc3QmIGV4cHIgKQorICAgICAgeworICAgICAgICB0aGlzLT5hc3NpZ25fZXhwcihleHByLG5kbmJvb3N0OjphZGRyZXNzb2YoZXhwcikpOworICAgICAgICByZXR1cm4gKnRoaXMgOworICAgICAgfQorI2VuZGlmCisKKworI2lmbmRlZiBCT09TVF9PUFRJT05BTF9OT19DT05WRVJUSU5HX0FTU0lHTk1FTlQKKyAgICAvLyBBc3NpZ25zIGZyb20gYW5vdGhlciBjb252ZXJ0aWJsZSBvcHRpb25hbDxVPiAoY29udmVydHMgJiYgZGVlcC1jb3BpZXMgdGhlIHJocyB2YWx1ZSkKKyAgICAvLyBSZXF1aXJlcyBhIHZhbGlkIGNvbnZlcnNpb24gZnJvbSBVIHRvIFQuCisgICAgLy8gQmFzaWMgR3VhcmFudGVlOiBJZiBUOjpUKCBVIGNvbnN0JiApIHRocm93cywgdGhpcyBpcyBsZWZ0IFVOSU5JVElBTElaRUQKKyAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgIG9wdGlvbmFsJiBvcGVyYXRvcj0gKCBvcHRpb25hbDxVPiBjb25zdCYgcmhzICkKKyAgICAgIHsKKyAgICAgICAgdGhpcy0+YXNzaWduKHJocyk7CisgICAgICAgIHJldHVybiAqdGhpcyA7CisgICAgICB9CisjZW5kaWYKKworICAgIC8vIEFzc2lnbnMgZnJvbSBhbm90aGVyIG9wdGlvbmFsPFQ+IChkZWVwLWNvcGllcyB0aGUgcmhzIHZhbHVlKQorICAgIC8vIEJhc2ljIEd1YXJhbnRlZTogSWYgVDo6VCggVCBjb25zdCYgKSB0aHJvd3MsIHRoaXMgaXMgbGVmdCBVTklOSVRJQUxJWkVECisgICAgLy8gIChOT1RFOiBPbiBCQ0IsIHRoaXMgb3BlcmF0b3IgaXMgbm90IGFjdHVhbGx5IGNhbGxlZCBhbmQgbGVmdCBpcyBsZWZ0IFVOTU9ESUZJRUQgaW4gY2FzZSBvZiBhIHRocm93KQorICAgIG9wdGlvbmFsJiBvcGVyYXRvcj0gKCBvcHRpb25hbCBjb25zdCYgcmhzICkKKyAgICAgIHsKKyAgICAgICAgdGhpcy0+YXNzaWduKCBzdGF0aWNfY2FzdDxiYXNlIGNvbnN0Jj4ocmhzKSApIDsKKyAgICAgICAgcmV0dXJuICp0aGlzIDsKKyAgICAgIH0KKworICAgIC8vIEFzc2lnbnMgZnJvbSBhIFQgKGRlZXAtY29waWVzIHRoZSByaHMgdmFsdWUpCisgICAgLy8gQmFzaWMgR3VhcmFudGVlOiBJZiBUOjooIFQgY29uc3QmICkgdGhyb3dzLCB0aGlzIGlzIGxlZnQgVU5JTklUSUFMSVpFRAorICAgIG9wdGlvbmFsJiBvcGVyYXRvcj0gKCBhcmd1bWVudF90eXBlIHZhbCApCisgICAgICB7CisgICAgICAgIHRoaXMtPmFzc2lnbiggdmFsICkgOworICAgICAgICByZXR1cm4gKnRoaXMgOworICAgICAgfQorCisgICAgLy8gQXNzaWducyBmcm9tIGEgIm5vbmUiCisgICAgLy8gV2hpY2ggZGVzdHJveXMgdGhlIGN1cnJlbnQgdmFsdWUsIGlmIGFueSwgbGVhdmluZyB0aGlzIFVOSU5JVElBTElaRUQKKyAgICAvLyBOby10aHJvdyAoYXNzdW1pbmcgVDo6flQoKSBkb2Vzbid0KQorICAgIG9wdGlvbmFsJiBvcGVyYXRvcj0gKCBub25lX3Qgbm9uZV8gKQorICAgICAgeworICAgICAgICB0aGlzLT5hc3NpZ24oIG5vbmVfICkgOworICAgICAgICByZXR1cm4gKnRoaXMgOworICAgICAgfQorCisgICAgdm9pZCBzd2FwKCBvcHRpb25hbCAmIGFyZyApCisgICAgICB7CisgICAgICAgIC8vIGFsbG93IGZvciBLb2VuaWcgbG9va3VwCisgICAgICAgIHVzaW5nIG5kbmJvb3N0Ojpzd2FwOworICAgICAgICBzd2FwKCp0aGlzLCBhcmcpOworICAgICAgfQorCisKKyAgICAvLyBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YWx1ZSBpZiB0aGlzIGlzIGluaXRpYWxpemVkLCBvdGhlcndpc2UsCisgICAgLy8gdGhlIGJlaGF2aW91ciBpcyBVTkRFRklORUQKKyAgICAvLyBOby10aHJvdworICAgIHJlZmVyZW5jZV9jb25zdF90eXBlIGdldCgpIGNvbnN0IHsgQk9PU1RfQVNTRVJUKHRoaXMtPmlzX2luaXRpYWxpemVkKCkpIDsgcmV0dXJuIHRoaXMtPmdldF9pbXBsKCk7IH0KKyAgICByZWZlcmVuY2VfdHlwZSAgICAgICBnZXQoKSAgICAgICB7IEJPT1NUX0FTU0VSVCh0aGlzLT5pc19pbml0aWFsaXplZCgpKSA7IHJldHVybiB0aGlzLT5nZXRfaW1wbCgpOyB9CisKKyAgICAvLyBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgaWYgdGhpcyBpcyBpbml0aWFsaXplZCwgJ3YnIG90aGVyd2lzZQorICAgIHJlZmVyZW5jZV9jb25zdF90eXBlIGdldF92YWx1ZV9vciAoIHJlZmVyZW5jZV9jb25zdF90eXBlIHYgKSBjb25zdCB7IHJldHVybiB0aGlzLT5pc19pbml0aWFsaXplZCgpID8gZ2V0KCkgOiB2IDsgfQorICAgIHJlZmVyZW5jZV90eXBlICAgICAgIGdldF92YWx1ZV9vciAoIHJlZmVyZW5jZV90eXBlICAgICAgIHYgKSAgICAgICB7IHJldHVybiB0aGlzLT5pc19pbml0aWFsaXplZCgpID8gZ2V0KCkgOiB2IDsgfQorCisgICAgLy8gUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHZhbHVlIGlmIHRoaXMgaXMgaW5pdGlhbGl6ZWQsIG90aGVyd2lzZSwKKyAgICAvLyB0aGUgYmVoYXZpb3VyIGlzIFVOREVGSU5FRAorICAgIC8vIE5vLXRocm93CisgICAgcG9pbnRlcl9jb25zdF90eXBlIG9wZXJhdG9yLT4oKSBjb25zdCB7IEJPT1NUX0FTU0VSVCh0aGlzLT5pc19pbml0aWFsaXplZCgpKSA7IHJldHVybiB0aGlzLT5nZXRfcHRyX2ltcGwoKSA7IH0KKyAgICBwb2ludGVyX3R5cGUgICAgICAgb3BlcmF0b3ItPigpICAgICAgIHsgQk9PU1RfQVNTRVJUKHRoaXMtPmlzX2luaXRpYWxpemVkKCkpIDsgcmV0dXJuIHRoaXMtPmdldF9wdHJfaW1wbCgpIDsgfQorCisgICAgLy8gUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFsdWUgaWYgdGhpcyBpcyBpbml0aWFsaXplZCwgb3RoZXJ3aXNlLAorICAgIC8vIHRoZSBiZWhhdmlvdXIgaXMgVU5ERUZJTkVECisgICAgLy8gTm8tdGhyb3cKKyAgICByZWZlcmVuY2VfY29uc3RfdHlwZSBvcGVyYXRvciAqKCkgY29uc3QgeyByZXR1cm4gdGhpcy0+Z2V0KCkgOyB9CisgICAgcmVmZXJlbmNlX3R5cGUgICAgICAgb3BlcmF0b3IgKigpICAgICAgIHsgcmV0dXJuIHRoaXMtPmdldCgpIDsgfQorCisgICAgLy8gaW1wbGljaXQgY29udmVyc2lvbiB0byAiYm9vbCIKKyAgICAvLyBOby10aHJvdworICAgIG9wZXJhdG9yIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHRoaXMtPnNhZmVfYm9vbCgpIDsgfQorCisgICAgLy8gVGhpcyBpcyBwcm92aWRlZCBmb3IgdGhvc2UgY29tcGlsZXJzIHdoaWNoIGRvbid0IGxpa2UgdGhlIGNvbnZlcnNpb24gdG8gYm9vbAorICAgIC8vIG9uIHNvbWUgY29udGV4dHMuCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhdGhpcy0+aXNfaW5pdGlhbGl6ZWQoKSA7IH0KK30gOworCisvLyBSZXR1cm5zIG9wdGlvbmFsPFQ+KHYpCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitvcHRpb25hbDxUPiBtYWtlX29wdGlvbmFsICggVCBjb25zdCYgdiAgKQoreworICByZXR1cm4gb3B0aW9uYWw8VD4odik7Cit9CisKKy8vIFJldHVybnMgb3B0aW9uYWw8VD4oY29uZCx2KQordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorb3B0aW9uYWw8VD4gbWFrZV9vcHRpb25hbCAoIGJvb2wgY29uZCwgVCBjb25zdCYgdiApCit7CisgIHJldHVybiBvcHRpb25hbDxUPihjb25kLHYpOworfQorCisvLyBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YWx1ZSBpZiB0aGlzIGlzIGluaXRpYWxpemVkLCBvdGhlcndpc2UsIHRoZSBiZWhhdmlvdXIgaXMgVU5ERUZJTkVELgorLy8gTm8tdGhyb3cKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK0JPT1NUX0RFRFVDRURfVFlQRU5BTUUgb3B0aW9uYWw8VD46OnJlZmVyZW5jZV9jb25zdF90eXBlCitnZXQgKCBvcHRpb25hbDxUPiBjb25zdCYgb3B0ICkKK3sKKyAgcmV0dXJuIG9wdC5nZXQoKSA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK0JPT1NUX0RFRFVDRURfVFlQRU5BTUUgb3B0aW9uYWw8VD46OnJlZmVyZW5jZV90eXBlCitnZXQgKCBvcHRpb25hbDxUPiYgb3B0ICkKK3sKKyAgcmV0dXJuIG9wdC5nZXQoKSA7Cit9CisKKy8vIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSB2YWx1ZSBpZiB0aGlzIGlzIGluaXRpYWxpemVkLCBvdGhlcndpc2UsIHJldHVybnMgTlVMTC4KKy8vIE5vLXRocm93Cit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG9wdGlvbmFsPFQ+Ojpwb2ludGVyX2NvbnN0X3R5cGUKK2dldCAoIG9wdGlvbmFsPFQ+IGNvbnN0KiBvcHQgKQoreworICByZXR1cm4gb3B0LT5nZXRfcHRyKCkgOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG9wdGlvbmFsPFQ+Ojpwb2ludGVyX3R5cGUKK2dldCAoIG9wdGlvbmFsPFQ+KiBvcHQgKQoreworICByZXR1cm4gb3B0LT5nZXRfcHRyKCkgOworfQorCisvLyBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YWx1ZSBpZiB0aGlzIGlzIGluaXRpYWxpemVkLCBvdGhlcndpc2UsIHRoZSBiZWhhdmlvdXIgaXMgVU5ERUZJTkVELgorLy8gTm8tdGhyb3cKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK0JPT1NUX0RFRFVDRURfVFlQRU5BTUUgb3B0aW9uYWw8VD46OnJlZmVyZW5jZV9jb25zdF90eXBlCitnZXRfb3B0aW9uYWxfdmFsdWVfb3IgKCBvcHRpb25hbDxUPiBjb25zdCYgb3B0LCBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG9wdGlvbmFsPFQ+OjpyZWZlcmVuY2VfY29uc3RfdHlwZSB2ICkKK3sKKyAgcmV0dXJuIG9wdC5nZXRfdmFsdWVfb3IodikgOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG9wdGlvbmFsPFQ+OjpyZWZlcmVuY2VfdHlwZQorZ2V0X29wdGlvbmFsX3ZhbHVlX29yICggb3B0aW9uYWw8VD4mIG9wdCwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBvcHRpb25hbDxUPjo6cmVmZXJlbmNlX3R5cGUgdiApCit7CisgIHJldHVybiBvcHQuZ2V0X3ZhbHVlX29yKHYpIDsKK30KKworLy8gUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHZhbHVlIGlmIHRoaXMgaXMgaW5pdGlhbGl6ZWQsIG90aGVyd2lzZSwgcmV0dXJucyBOVUxMLgorLy8gTm8tdGhyb3cKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK0JPT1NUX0RFRFVDRURfVFlQRU5BTUUgb3B0aW9uYWw8VD46OnBvaW50ZXJfY29uc3RfdHlwZQorZ2V0X3BvaW50ZXIgKCBvcHRpb25hbDxUPiBjb25zdCYgb3B0ICkKK3sKKyAgcmV0dXJuIG9wdC5nZXRfcHRyKCkgOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG9wdGlvbmFsPFQ+Ojpwb2ludGVyX3R5cGUKK2dldF9wb2ludGVyICggb3B0aW9uYWw8VD4mIG9wdCApCit7CisgIHJldHVybiBvcHQuZ2V0X3B0cigpIDsKK30KKworLy8gb3B0aW9uYWwncyByZWxhdGlvbmFsIG9wZXJhdG9ycyAoID09LCAhPSwgPCwgPiwgPD0sID49ICkgaGF2ZSBkZWVwLXNlbWFudGljcyAoY29tcGFyZSB2YWx1ZXMpLgorLy8gV0FSTklORzogVGhpcyBpcyBVTkxJS0UgcG9pbnRlcnMuIFVzZSBlcXVhbF9wb2ludGVlcygpL2xlc3NfcG9pbnRlc3MoKSBpbiBnZW5lcmljIGNvZGUgaW5zdGVhZC4KKworCisvLworLy8gb3B0aW9uYWw8VD4gdnMgb3B0aW9uYWw8VD4gY2FzZXMKKy8vCisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPT0gKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgb3B0aW9uYWw8VD4gY29uc3QmIHkgKQoreyByZXR1cm4gZXF1YWxfcG9pbnRlZXMoeCx5KTsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yIDwgKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgb3B0aW9uYWw8VD4gY29uc3QmIHkgKQoreyByZXR1cm4gbGVzc19wb2ludGVlcyh4LHkpOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgIT0gKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgb3B0aW9uYWw8VD4gY29uc3QmIHkgKQoreyByZXR1cm4gISggeCA9PSB5ICkgOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPiAoIG9wdGlvbmFsPFQ+IGNvbnN0JiB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiB5IDwgeCA7IH0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA8PSAoIG9wdGlvbmFsPFQ+IGNvbnN0JiB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiAhKCB5IDwgeCApIDsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yID49ICggb3B0aW9uYWw8VD4gY29uc3QmIHgsIG9wdGlvbmFsPFQ+IGNvbnN0JiB5ICkKK3sgcmV0dXJuICEoIHggPCB5ICkgOyB9CisKKworLy8KKy8vIG9wdGlvbmFsPFQ+IHZzIFQgY2FzZXMKKy8vCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yID09ICggb3B0aW9uYWw8VD4gY29uc3QmIHgsIFQgY29uc3QmIHkgKQoreyByZXR1cm4gZXF1YWxfcG9pbnRlZXMoeCwgb3B0aW9uYWw8VD4oeSkpOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPCAoIG9wdGlvbmFsPFQ+IGNvbnN0JiB4LCBUIGNvbnN0JiB5ICkKK3sgcmV0dXJuIGxlc3NfcG9pbnRlZXMoeCwgb3B0aW9uYWw8VD4oeSkpOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgIT0gKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgVCBjb25zdCYgeSApCit7IHJldHVybiAhKCB4ID09IHkgKSA7IH0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA+ICggb3B0aW9uYWw8VD4gY29uc3QmIHgsIFQgY29uc3QmIHkgKQoreyByZXR1cm4geSA8IHggOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPD0gKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgVCBjb25zdCYgeSApCit7IHJldHVybiAhKCB5IDwgeCApIDsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yID49ICggb3B0aW9uYWw8VD4gY29uc3QmIHgsIFQgY29uc3QmIHkgKQoreyByZXR1cm4gISggeCA8IHkgKSA7IH0KKworLy8KKy8vIFQgdnMgb3B0aW9uYWw8VD4gY2FzZXMKKy8vCisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPT0gKCBUIGNvbnN0JiB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiBlcXVhbF9wb2ludGVlcyggb3B0aW9uYWw8VD4oeCksIHkgKTsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yIDwgKCBUIGNvbnN0JiB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiBsZXNzX3BvaW50ZWVzKCBvcHRpb25hbDxUPih4KSwgeSApOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgIT0gKCBUIGNvbnN0JiB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiAhKCB4ID09IHkgKSA7IH0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA+ICggVCBjb25zdCYgeCwgb3B0aW9uYWw8VD4gY29uc3QmIHkgKQoreyByZXR1cm4geSA8IHggOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPD0gKCBUIGNvbnN0JiB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiAhKCB5IDwgeCApIDsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yID49ICggVCBjb25zdCYgeCwgb3B0aW9uYWw8VD4gY29uc3QmIHkgKQoreyByZXR1cm4gISggeCA8IHkgKSA7IH0KKworCisvLworLy8gb3B0aW9uYWw8VD4gdnMgbm9uZSBjYXNlcworLy8KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA9PSAoIG9wdGlvbmFsPFQ+IGNvbnN0JiB4LCBub25lX3QgKQoreyByZXR1cm4gZXF1YWxfcG9pbnRlZXMoeCwgb3B0aW9uYWw8VD4oKSApOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPCAoIG9wdGlvbmFsPFQ+IGNvbnN0JiB4LCBub25lX3QgKQoreyByZXR1cm4gbGVzc19wb2ludGVlcyh4LG9wdGlvbmFsPFQ+KCkgKTsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yICE9ICggb3B0aW9uYWw8VD4gY29uc3QmIHgsIG5vbmVfdCB5ICkKK3sgcmV0dXJuICEoIHggPT0geSApIDsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yID4gKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgbm9uZV90IHkgKQoreyByZXR1cm4geSA8IHggOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPD0gKCBvcHRpb25hbDxUPiBjb25zdCYgeCwgbm9uZV90IHkgKQoreyByZXR1cm4gISggeSA8IHggKSA7IH0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA+PSAoIG9wdGlvbmFsPFQ+IGNvbnN0JiB4LCBub25lX3QgeSApCit7IHJldHVybiAhKCB4IDwgeSApIDsgfQorCisvLworLy8gbm9uZSB2cyBvcHRpb25hbDxUPiBjYXNlcworLy8KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA9PSAoIG5vbmVfdCAsIG9wdGlvbmFsPFQ+IGNvbnN0JiB5ICkKK3sgcmV0dXJuIGVxdWFsX3BvaW50ZWVzKG9wdGlvbmFsPFQ+KCkgLHkpOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPCAoIG5vbmVfdCAsIG9wdGlvbmFsPFQ+IGNvbnN0JiB5ICkKK3sgcmV0dXJuIGxlc3NfcG9pbnRlZXMob3B0aW9uYWw8VD4oKSAseSk7IH0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciAhPSAoIG5vbmVfdCB4LCBvcHRpb25hbDxUPiBjb25zdCYgeSApCit7IHJldHVybiAhKCB4ID09IHkgKSA7IH0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2lubGluZQorYm9vbCBvcGVyYXRvciA+ICggbm9uZV90IHgsIG9wdGlvbmFsPFQ+IGNvbnN0JiB5ICkKK3sgcmV0dXJuIHkgPCB4IDsgfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lCitib29sIG9wZXJhdG9yIDw9ICggbm9uZV90IHgsIG9wdGlvbmFsPFQ+IGNvbnN0JiB5ICkKK3sgcmV0dXJuICEoIHkgPCB4ICkgOyB9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitpbmxpbmUKK2Jvb2wgb3BlcmF0b3IgPj0gKCBub25lX3QgeCwgb3B0aW9uYWw8VD4gY29uc3QmIHkgKQoreyByZXR1cm4gISggeCA8IHkgKSA7IH0KKworbmFtZXNwYWNlIG9wdGlvbmFsX2RldGFpbCB7CisKK3RlbXBsYXRlPGJvb2wgdXNlX2RlZmF1bHRfY29uc3RydWN0b3I+IHN0cnVjdCBzd2FwX3NlbGVjdG9yOworCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qgc3dhcF9zZWxlY3Rvcjx0cnVlPgoreworICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgc3RhdGljIHZvaWQgb3B0aW9uYWxfc3dhcCAoIG9wdGlvbmFsPFQ+JiB4LCBvcHRpb25hbDxUPiYgeSApCisgICAgeworICAgICAgICBjb25zdCBib29sIGhhc1ggPSAhIXg7CisgICAgICAgIGNvbnN0IGJvb2wgaGFzWSA9ICEheTsKKworICAgICAgICBpZiAoICFoYXNYICYmICFoYXNZICkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiggIWhhc1ggKQorICAgICAgICAgICAgeCA9IG5kbmJvb3N0Ojppbl9wbGFjZSgpOworICAgICAgICBlbHNlIGlmICggIWhhc1kgKQorICAgICAgICAgICAgeSA9IG5kbmJvb3N0Ojppbl9wbGFjZSgpOworCisgICAgICAgIC8vIEJvb3N0LlV0aWxpdHkuU3dhcCB3aWxsIHRha2UgY2FyZSBvZiBBREwgYW5kIHdvcmthcm91bmRzIGZvciBicm9rZW4gY29tcGlsZXJzCisgICAgICAgIG5kbmJvb3N0Ojpzd2FwKHguZ2V0KCkseS5nZXQoKSk7CisKKyAgICAgICAgaWYoICFoYXNYICkKKyAgICAgICAgICAgIHkgPSBuZG5ib29zdDo6bm9uZSA7CisgICAgICAgIGVsc2UgaWYoICFoYXNZICkKKyAgICAgICAgICAgIHggPSBuZG5ib29zdDo6bm9uZSA7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHN3YXBfc2VsZWN0b3I8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBzdGF0aWMgdm9pZCBvcHRpb25hbF9zd2FwICggb3B0aW9uYWw8VD4mIHgsIG9wdGlvbmFsPFQ+JiB5ICkKKyAgICB7CisgICAgICAgIGNvbnN0IGJvb2wgaGFzWCA9ICEheDsKKyAgICAgICAgY29uc3QgYm9vbCBoYXNZID0gISF5OworCisgICAgICAgIGlmICggIWhhc1ggJiYgaGFzWSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHggPSB5LmdldCgpOworICAgICAgICAgICAgeSA9IG5kbmJvb3N0Ojpub25lIDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICggaGFzWCAmJiAhaGFzWSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHkgPSB4LmdldCgpOworICAgICAgICAgICAgeCA9IG5kbmJvb3N0Ojpub25lIDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICggaGFzWCAmJiBoYXNZICkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQm9vc3QuVXRpbGl0eS5Td2FwIHdpbGwgdGFrZSBjYXJlIG9mIEFETCBhbmQgd29ya2Fyb3VuZHMgZm9yIGJyb2tlbiBjb21waWxlcnMKKyAgICAgICAgICAgIG5kbmJvb3N0Ojpzd2FwKHguZ2V0KCkseS5nZXQoKSk7CisgICAgICAgIH0KKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBvcHRpb25hbF9kZXRhaWwKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBvcHRpb25hbF9zd2FwX3Nob3VsZF91c2VfZGVmYXVsdF9jb25zdHJ1Y3RvciA6IGhhc19ub3Rocm93X2RlZmF1bHRfY29uc3RydWN0b3I8VD4ge30gOworCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCBzd2FwICggb3B0aW9uYWw8VD4mIHgsIG9wdGlvbmFsPFQ+JiB5ICkKK3sKKyAgICBvcHRpb25hbF9kZXRhaWw6OnN3YXBfc2VsZWN0b3I8b3B0aW9uYWxfc3dhcF9zaG91bGRfdXNlX2RlZmF1bHRfY29uc3RydWN0b3I8VD46OnZhbHVlPjo6b3B0aW9uYWxfc3dhcCh4LCB5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L29wdGlvbmFsL29wdGlvbmFsX2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L29wdGlvbmFsL29wdGlvbmFsX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBmZDU0YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvb3B0aW9uYWwvb3B0aW9uYWxfZndkLmhwcApAQCAtMCwwICsxLDI5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDggRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwuCisvLworLy8gVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvb3B0aW9uYWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8gWW91IGFyZSB3ZWxjb21lIHRvIGNvbnRhY3QgdGhlIGF1dGhvciBhdDoKKy8vICBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKy8vIFJldmlzaW9uczoKKy8vIDEwIE1heSAyMDA4IChhZGRlZCBzd2FwIHJlbGF0ZWQgZm9yd2FyZCBkZWNsYXJhdGlvbikgTmllbHMgRGVra2VyCisvLyAKKyNpZm5kZWYgQk9PU1RfT1BUSU9OQUxfT1BUSU9OQUxfRldEX0ZMQ18xOU5PVjIwMDJfSFBQCisjZGVmaW5lIEJPT1NUX09QVElPTkFMX09QVElPTkFMX0ZXRF9GTENfMTlOT1YyMDAyX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBvcHRpb25hbCA7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgc3dhcCAoIG9wdGlvbmFsPFQ+JiAsIG9wdGlvbmFsPFQ+JiApIDsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IG9wdGlvbmFsX3N3YXBfc2hvdWxkX3VzZV9kZWZhdWx0X2NvbnN0cnVjdG9yIDsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcG9pbnRlZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3BvaW50ZWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZDFjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3BvaW50ZWUuaHBwCkBAIC0wLDAgKzEsNzQgQEAKKyNpZm5kZWYgUE9JTlRFRV9EV0EyMDA0MTVfSFBQCisjIGRlZmluZSBQT0lOVEVFX0RXQTIwMDQxNV9IUFAKKworLy8KKy8vIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzCisvLyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIHR5cGVuYW1lIHBvaW50ZWU8UD46OnR5cGUgcHJvdmlkZXMgdGhlIHBvaW50ZWUgdHlwZSBvZiBQLgorLy8KKy8vIEZvciBleGFtcGxlLCBpdCBpcyBUIGZvciBUKiBhbmQgWCBmb3Igc2hhcmVkX3B0cjxYPi4KKy8vCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2l0ZXJhdG9yL2RvYy9wb2ludGVlLmh0bWwKKy8vCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL2lzX2luY3JlbWVudGFibGUuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvZXZhbF9pZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IAorCituYW1lc3BhY2UgZGV0YWlsCit7CisgIHRlbXBsYXRlIDxjbGFzcyBQPgorICBzdHJ1Y3Qgc21hcnRfcHRyX3BvaW50ZWUKKyAgeworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBQOjplbGVtZW50X3R5cGUgdHlwZTsKKyAgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3I+CisgIHN0cnVjdCBpdGVyYXRvcl9wb2ludGVlCisgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgCisgICAgICBzdHJ1Y3QgaW1wbAorICAgICAgeworICAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICAgIHN0YXRpYyBjaGFyIHRlc3QoVCBjb25zdCYpOworICAgICAgICAgIAorICAgICAgICAgIHN0YXRpYyBjaGFyICgmIHRlc3QodmFsdWVfdHlwZSYpIClbMl07CisgICAgICAgICAgCisgICAgICAgICAgc3RhdGljIEl0ZXJhdG9yJiB4OworICAgICAgfTsKKyAgICAgIAorICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2NvbnN0YW50ID0gc2l6ZW9mKGltcGw6OnRlc3QoKmltcGw6OngpKSA9PSAxKTsKKyAgICAgIAorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmX2M8CisjICBpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTUxKSkKKyAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3BvaW50ZWU8SXRlcmF0b3I+Ojppc19jb25zdGFudAorIyAgZWxzZQorICAgICAgICAgIGlzX2NvbnN0YW50CisjICBlbmRpZiAKKyAgICAgICAgLCB0eXBlbmFtZSBhZGRfY29uc3Q8dmFsdWVfdHlwZT46OnR5cGUKKyAgICAgICAgLCB2YWx1ZV90eXBlCisgICAgICA+Ojp0eXBlIHR5cGU7CisgIH07Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQPgorc3RydWN0IHBvaW50ZWUKKyAgOiBtcGw6OmV2YWxfaWY8CisgICAgICAgIGRldGFpbDo6aXNfaW5jcmVtZW50YWJsZTxQPgorICAgICAgLCBkZXRhaWw6Oml0ZXJhdG9yX3BvaW50ZWU8UD4KKyAgICAgICwgZGV0YWlsOjpzbWFydF9wdHJfcG9pbnRlZTxQPgorICAgID4KK3sKK307CisgIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIFBPSU5URUVfRFdBMjAwNDE1X0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wb2ludGVyX3RvX290aGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcG9pbnRlcl90b19vdGhlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ3Y2Q5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcG9pbnRlcl90b19vdGhlci5ocHAKQEAgLTAsMCArMSw1NSBAQAorI2lmbmRlZiBCT09TVF9QT0lOVEVSX1RPX09USEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9QT0lOVEVSX1RPX09USEVSX0hQUF9JTkNMVURFRAorCisvLworLy8gIHBvaW50ZXJfdG9fb3RoZXIuaHBwCisvLworLy8gIChDKSBDb3B5cmlnaHQgSW9uIEdhenRhbmFnYSAyMDA1LgorLy8gIENvcHlyaWdodCAoYykgMjAwNSBQZXRlciBEaW1vdi4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3BvaW50ZXJfdG9fb3RoZXIuaHRtbAorLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKy8vIERlZmluZXMgdGhlIHNhbWUgcG9pbnRlciB0eXBlIChyYXcgb3Igc21hcnQpIHRvIGFub3RoZXIgcG9pbnRlZSB0eXBlCisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgcG9pbnRlcl90b19vdGhlcjsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgCisgICAgICAgICB0ZW1wbGF0ZTxjbGFzcz4gY2xhc3MgU3A+CitzdHJ1Y3QgcG9pbnRlcl90b19vdGhlcjwgU3A8VD4sIFUgPgoreworICAgdHlwZWRlZiBTcDxVPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVDIsIGNsYXNzIFUsIAorICAgICAgICAgdGVtcGxhdGU8Y2xhc3MsIGNsYXNzPiBjbGFzcyBTcD4KK3N0cnVjdCBwb2ludGVyX3RvX290aGVyPCBTcDxULCBUMj4sIFUgPgoreworICAgdHlwZWRlZiBTcDxVLCBUMj4gdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVSwgCisgICAgICAgICB0ZW1wbGF0ZTxjbGFzcywgY2xhc3MsIGNsYXNzPiBjbGFzcyBTcD4KK3N0cnVjdCBwb2ludGVyX3RvX290aGVyPCBTcDxULCBUMiwgVDM+LCBVID4KK3sKKyAgIHR5cGVkZWYgU3A8VSwgVDIsIFQzPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4KK3N0cnVjdCBwb2ludGVyX3RvX290aGVyPCBUKiwgVSA+Cit7CisgICB0eXBlZGVmIFUqIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9QT0lOVEVSX1RPX09USEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4OGU2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2FkZC5ocHAKQEAgLTAsMCArMSw1MSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19BRERfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19BRERfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RlYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2luYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0FERCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FERCh4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFKEJPT1NUX1BQX0FERF9QLCBCT09TVF9QUF9BRERfTywgKHgsIHkpKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQUREKHgsIHkpIEJPT1NUX1BQX0FERF9JKHgsIHkpCisjICAgIGRlZmluZSBCT09TVF9QUF9BRERfSSh4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFKEJPT1NUX1BQX0FERF9QLCBCT09TVF9QUF9BRERfTywgKHgsIHkpKSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0FERF9QKGQsIHh5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIHh5KQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9BRERfTyhkLCB4eSkgQk9PU1RfUFBfQUREX09fSSB4eQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9BRERfTyhkLCB4eSkgQk9PU1RfUFBfQUREX09fSShCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIHh5KSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCB4eSkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9BRERfT19JKHgsIHkpIChCT09TVF9QUF9JTkMoeCksIEJPT1NUX1BQX0RFQyh5KSkKKyMKKyMgLyogQk9PU1RfUFBfQUREX0QgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9BRERfRChkLCB4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFXyAjIyBkKEJPT1NUX1BQX0FERF9QLCBCT09TVF9QUF9BRERfTywgKHgsIHkpKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQUREX0QoZCwgeCwgeSkgQk9PU1RfUFBfQUREX0RfSShkLCB4LCB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQUREX0RfSShkLCB4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFXyAjIyBkKEJPT1NUX1BQX0FERF9QLCBCT09TVF9QUF9BRERfTywgKHgsIHkpKSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTEzZDg4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZWMuaHBwCkBAIC0wLDAgKzEsMjg4IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX0RFQ19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX0RFQ19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9ERUMgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfREVDKHgpIEJPT1NUX1BQX0RFQ19JKHgpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0RFQyh4KSBCT09TVF9QUF9ERUNfT08oKHgpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfREVDX09PKHBhcikgQk9PU1RfUFBfREVDX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9ERUNfSSh4KSBCT09TVF9QUF9ERUNfICMjIHgKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18wIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zIDIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180IDMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181IDQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182IDUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183IDYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184IDcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185IDgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMCA5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTEgMTAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMiAxMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzIDEyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQgMTMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNSAxNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2IDE1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTcgMTYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOCAxNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5IDE4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjAgMTkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMSAyMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyIDIxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjMgMjIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNCAyMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI1IDI0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjYgMjUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNyAyNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI4IDI3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjkgMjgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zMCAyOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzMxIDMwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMzIgMzEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zMyAzMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzM0IDMzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMzUgMzQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zNiAzNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzM3IDM2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMzggMzcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zOSAzOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQwIDM5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDEgNDAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180MiA0MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQzIDQyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDQgNDMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180NSA0NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQ2IDQ1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDcgNDYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180OCA0NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQ5IDQ4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTAgNDkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181MSA1MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzUyIDUxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTMgNTIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181NCA1MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzU1IDU0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTYgNTUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181NyA1NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzU4IDU3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTkgNTgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182MCA1OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzYxIDYwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNjIgNjEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182MyA2MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzY0IDYzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNjUgNjQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182NiA2NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzY3IDY2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNjggNjcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182OSA2OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzcwIDY5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzEgNzAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183MiA3MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzczIDcyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzQgNzMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183NSA3NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzc2IDc1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzcgNzYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183OCA3NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzc5IDc4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfODAgNzkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184MSA4MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzgyIDgxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfODMgODIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184NCA4MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzg1IDg0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfODYgODUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184NyA4NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzg4IDg3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfODkgODgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185MCA4OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzkxIDkwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfOTIgOTEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185MyA5MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzk0IDkzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfOTUgOTQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185NiA5NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzk3IDk2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfOTggOTcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185OSA5OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwMCA5OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwMSAxMDAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMDIgMTAxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTAzIDEwMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwNCAxMDMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMDUgMTA0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTA2IDEwNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwNyAxMDYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMDggMTA3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTA5IDEwOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExMCAxMDkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMTEgMTEwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTEyIDExMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExMyAxMTIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMTQgMTEzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTE1IDExNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExNiAxMTUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMTcgMTE2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTE4IDExNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExOSAxMTgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjAgMTE5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTIxIDEyMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyMiAxMjEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjMgMTIyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTI0IDEyMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyNSAxMjQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjYgMTI1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTI3IDEyNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyOCAxMjcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjkgMTI4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTMwIDEyOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzMSAxMzAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzIgMTMxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTMzIDEzMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzNCAxMzMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzUgMTM0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTM2IDEzNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzNyAxMzYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzggMTM3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTM5IDEzOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0MCAxMzkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNDEgMTQwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQyIDE0MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0MyAxNDIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNDQgMTQzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQ1IDE0NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0NiAxNDUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNDcgMTQ2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQ4IDE0NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0OSAxNDgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTAgMTQ5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTUxIDE1MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1MiAxNTEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTMgMTUyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTU0IDE1MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1NSAxNTQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTYgMTU1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTU3IDE1NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1OCAxNTcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTkgMTU4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTYwIDE1OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2MSAxNjAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjIgMTYxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTYzIDE2MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2NCAxNjMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjUgMTY0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTY2IDE2NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2NyAxNjYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjggMTY3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTY5IDE2OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3MCAxNjkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNzEgMTcwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTcyIDE3MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3MyAxNzIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNzQgMTczCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTc1IDE3NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3NiAxNzUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNzcgMTc2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTc4IDE3NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3OSAxNzgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODAgMTc5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTgxIDE4MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4MiAxODEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODMgMTgyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTg0IDE4MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4NSAxODQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODYgMTg1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTg3IDE4NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4OCAxODcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODkgMTg4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTkwIDE4OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5MSAxOTAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTIgMTkxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTkzIDE5MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5NCAxOTMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTUgMTk0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTk2IDE5NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5NyAxOTYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTggMTk3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTk5IDE5OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwMCAxOTkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMDEgMjAwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjAyIDIwMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwMyAyMDIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMDQgMjAzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjA1IDIwNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwNiAyMDUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMDcgMjA2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjA4IDIwNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwOSAyMDgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTAgMjA5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjExIDIxMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxMiAyMTEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTMgMjEyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjE0IDIxMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxNSAyMTQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTYgMjE1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjE3IDIxNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxOCAyMTcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTkgMjE4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjIwIDIxOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyMSAyMjAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjIgMjIxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjIzIDIyMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyNCAyMjMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjUgMjI0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjI2IDIyNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyNyAyMjYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjggMjI3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjI5IDIyOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzMCAyMjkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMzEgMjMwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjMyIDIzMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzMyAyMzIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMzQgMjMzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjM1IDIzNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzNiAyMzUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMzcgMjM2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjM4IDIzNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzOSAyMzgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDAgMjM5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjQxIDI0MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0MiAyNDEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDMgMjQyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjQ0IDI0MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0NSAyNDQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDYgMjQ1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjQ3IDI0NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0OCAyNDcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDkgMjQ4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjUwIDI0OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI1MSAyNTAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNTIgMjUxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjUzIDI1MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI1NCAyNTMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNTUgMjU0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjU2IDI1NQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZXRhaWwvZGl2X2Jhc2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZXRhaWwvZGl2X2Jhc2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmOGUyMzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RldGFpbC9kaXZfYmFzZS5ocHAKQEAgLTAsMCArMSw2MSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19ERVRBSUxfRElWX0JBU0VfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19ERVRBSUxfRElWX0JBU0VfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2luYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL3N1Yi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21wYXJpc29uL2xlc3NfZXF1YWwuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfRElWX0JBU0UgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9ESVZfQkFTRSh4LCB5KSBCT09TVF9QUF9XSElMRShCT09TVF9QUF9ESVZfQkFTRV9QLCBCT09TVF9QUF9ESVZfQkFTRV9PLCAoMCwgeCwgeSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0RJVl9CQVNFKHgsIHkpIEJPT1NUX1BQX0RJVl9CQVNFX0koeCwgeSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0RJVl9CQVNFX0koeCwgeSkgQk9PU1RfUFBfV0hJTEUoQk9PU1RfUFBfRElWX0JBU0VfUCwgQk9PU1RfUFBfRElWX0JBU0VfTywgKDAsIHgsIHkpKQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRElWX0JBU0VfUChkLCByeHkpIEJPT1NUX1BQX0RJVl9CQVNFX1BfSU0oZCwgQk9PU1RfUFBfVFVQTEVfUkVNXzMgcnh5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRElWX0JBU0VfUF9JTShkLCBpbSkgQk9PU1RfUFBfRElWX0JBU0VfUF9JKGQsIGltKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9ESVZfQkFTRV9QKGQsIHJ4eSkgQk9PU1RfUFBfRElWX0JBU0VfUF9JKGQsIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMCwgcnh5KSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAxLCByeHkpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIHJ4eSkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9ESVZfQkFTRV9QX0koZCwgciwgeCwgeSkgQk9PU1RfUFBfTEVTU19FUVVBTF9EKGQsIHksIHgpCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpCisjICAgIGRlZmluZSBCT09TVF9QUF9ESVZfQkFTRV9PKGQsIHJ4eSkgQk9PU1RfUFBfRElWX0JBU0VfT19JTShkLCBCT09TVF9QUF9UVVBMRV9SRU1fMyByeHkpCisjICAgIGRlZmluZSBCT09TVF9QUF9ESVZfQkFTRV9PX0lNKGQsIGltKSBCT09TVF9QUF9ESVZfQkFTRV9PX0koZCwgaW0pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0RJVl9CQVNFX08oZCwgcnh5KSBCT09TVF9QUF9ESVZfQkFTRV9PX0koZCwgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAwLCByeHkpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDEsIHJ4eSksIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgcnh5KSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0RJVl9CQVNFX09fSShkLCByLCB4LCB5KSAoQk9PU1RfUFBfSU5DKHIpLCBCT09TVF9QUF9TVUJfRChkLCB4LCB5KSwgeSkKKyMKKyMgLyogQk9PU1RfUFBfRElWX0JBU0VfRCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0RJVl9CQVNFX0QoZCwgeCwgeSkgQk9PU1RfUFBfV0hJTEVfICMjIGQoQk9PU1RfUFBfRElWX0JBU0VfUCwgQk9PU1RfUFBfRElWX0JBU0VfTywgKDAsIHgsIHkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9ESVZfQkFTRV9EKGQsIHgsIHkpIEJPT1NUX1BQX0RJVl9CQVNFX0RfSShkLCB4LCB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRElWX0JBU0VfRF9JKGQsIHgsIHkpIEJPT1NUX1BQX1dISUxFXyAjIyBkKEJPT1NUX1BQX0RJVl9CQVNFX1AsIEJPT1NUX1BQX0RJVl9CQVNFX08sICgwLCB4LCB5KSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjZlODZmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwCkBAIC0wLDAgKzEsMjg4IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX0lOQ19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX0lOQ19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9JTkMgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSU5DKHgpIEJPT1NUX1BQX0lOQ19JKHgpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lOQyh4KSBCT09TVF9QUF9JTkNfT08oKHgpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSU5DX09PKHBhcikgQk9PU1RfUFBfSU5DX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9JTkNfSSh4KSBCT09TVF9QUF9JTkNfICMjIHgKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18wIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xIDIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yIDMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zIDQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180IDUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181IDYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182IDcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183IDgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184IDkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185IDEwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTAgMTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMSAxMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyIDEzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTMgMTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNCAxNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1IDE2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTYgMTcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNyAxOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4IDE5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTkgMjAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMCAyMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxIDIyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjIgMjMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMyAyNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0IDI1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjUgMjYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNiAyNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI3IDI4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjggMjkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yOSAzMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzMwIDMxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMzEgMzIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zMiAzMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzMzIDM0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMzQgMzUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zNSAzNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzM2IDM3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMzcgMzgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zOCAzOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzM5IDQwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDAgNDEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180MSA0MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQyIDQzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDMgNDQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180NCA0NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQ1IDQ2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDYgNDcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180NyA0OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQ4IDQ5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDkgNTAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181MCA1MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzUxIDUyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTIgNTMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181MyA1NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzU0IDU1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTUgNTYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181NiA1NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzU3IDU4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTggNTkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181OSA2MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzYwIDYxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNjEgNjIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182MiA2MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzYzIDY0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNjQgNjUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182NSA2NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzY2IDY3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNjcgNjgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182OCA2OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzY5IDcwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzAgNzEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183MSA3MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzcyIDczCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzMgNzQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183NCA3NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzc1IDc2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzYgNzcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183NyA3OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzc4IDc5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzkgODAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184MCA4MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzgxIDgyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfODIgODMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184MyA4NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzg0IDg1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfODUgODYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184NiA4NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzg3IDg4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfODggODkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184OSA5MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzkwIDkxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfOTEgOTIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185MiA5MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzkzIDk0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfOTQgOTUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185NSA5NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzk2IDk3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfOTcgOTgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185OCA5OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzk5IDEwMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwMCAxMDEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDEgMTAyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTAyIDEwMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwMyAxMDQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDQgMTA1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTA1IDEwNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwNiAxMDcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDcgMTA4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTA4IDEwOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwOSAxMTAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTAgMTExCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTExIDExMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzExMiAxMTMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTMgMTE0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTE0IDExNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzExNSAxMTYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTYgMTE3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTE3IDExOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzExOCAxMTkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTkgMTIwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTIwIDEyMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyMSAxMjIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMjIgMTIzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTIzIDEyNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyNCAxMjUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMjUgMTI2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTI2IDEyNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyNyAxMjgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMjggMTI5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTI5IDEzMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzMCAxMzEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzEgMTMyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTMyIDEzMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzMyAxMzQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzQgMTM1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTM1IDEzNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzNiAxMzcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzcgMTM4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTM4IDEzOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzOSAxNDAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDAgMTQxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQxIDE0MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE0MiAxNDMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDMgMTQ0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQ0IDE0NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE0NSAxNDYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDYgMTQ3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQ3IDE0OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE0OCAxNDkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDkgMTUwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTUwIDE1MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1MSAxNTIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNTIgMTUzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTUzIDE1NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1NCAxNTUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNTUgMTU2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTU2IDE1NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1NyAxNTgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNTggMTU5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTU5IDE2MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2MCAxNjEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjEgMTYyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTYyIDE2MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2MyAxNjQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjQgMTY1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTY1IDE2NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2NiAxNjcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjcgMTY4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTY4IDE2OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2OSAxNzAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzAgMTcxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTcxIDE3MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE3MiAxNzMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzMgMTc0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTc0IDE3NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE3NSAxNzYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzYgMTc3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTc3IDE3OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE3OCAxNzkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzkgMTgwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTgwIDE4MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4MSAxODIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xODIgMTgzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTgzIDE4NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4NCAxODUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xODUgMTg2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTg2IDE4NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4NyAxODgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xODggMTg5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTg5IDE5MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5MCAxOTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTEgMTkyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTkyIDE5MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5MyAxOTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTQgMTk1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTk1IDE5NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5NiAxOTcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTcgMTk4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTk4IDE5OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5OSAyMDAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDAgMjAxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjAxIDIwMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIwMiAyMDMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDMgMjA0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjA0IDIwNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIwNSAyMDYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDYgMjA3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjA3IDIwOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIwOCAyMDkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDkgMjEwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjEwIDIxMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxMSAyMTIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMTIgMjEzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjEzIDIxNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxNCAyMTUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMTUgMjE2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjE2IDIxNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxNyAyMTgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMTggMjE5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjE5IDIyMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyMCAyMjEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjEgMjIyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjIyIDIyMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyMyAyMjQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjQgMjI1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjI1IDIyNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyNiAyMjcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjcgMjI4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjI4IDIyOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyOSAyMzAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzAgMjMxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjMxIDIzMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIzMiAyMzMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzMgMjM0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjM0IDIzNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIzNSAyMzYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzYgMjM3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjM3IDIzOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIzOCAyMzkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzkgMjQwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQwIDI0MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0MSAyNDIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNDIgMjQzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQzIDI0NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0NCAyNDUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNDUgMjQ2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQ2IDI0NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0NyAyNDgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNDggMjQ5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQ5IDI1MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI1MCAyNTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNTEgMjUyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjUyIDI1MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI1MyAyNTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNTQgMjU1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjU1IDI1NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI1NiAyNTYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvbW9kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvbW9kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTg1NDM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9tb2QuaHBwCkBAIC0wLDAgKzEsMzkgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0FSSVRITUVUSUNfTU9EX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0FSSVRITUVUSUNfTU9EX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZXRhaWwvZGl2X2Jhc2UuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfTU9EICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTU9EKHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMSwgQk9PU1RfUFBfRElWX0JBU0UoeCwgeSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX01PRCh4LCB5KSBCT09TVF9QUF9NT0RfSSh4LCB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTU9EX0koeCwgeSkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAxLCBCT09TVF9QUF9ESVZfQkFTRSh4LCB5KSkKKyMgZW5kaWYKKyMKKyMgLyogQk9PU1RfUFBfTU9EX0QgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9NT0RfRChkLCB4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDEsIEJPT1NUX1BQX0RJVl9CQVNFX0QoZCwgeCwgeSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX01PRF9EKGQsIHgsIHkpIEJPT1NUX1BQX01PRF9EX0koZCwgeCwgeSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX01PRF9EX0koZCwgeCwgeSkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAxLCBCT09TVF9QUF9ESVZfQkFTRV9EKGQsIHgsIHkpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzODRmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL3N1Yi5ocHAKQEAgLTAsMCArMSw1MCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19TVUJfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19TVUJfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RlYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1NVQiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NVQih4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFKEJPT1NUX1BQX1NVQl9QLCBCT09TVF9QUF9TVUJfTywgKHgsIHkpKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU1VCKHgsIHkpIEJPT1NUX1BQX1NVQl9JKHgsIHkpCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUJfSSh4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFKEJPT1NUX1BQX1NVQl9QLCBCT09TVF9QUF9TVUJfTywgKHgsIHkpKSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NVQl9QKGQsIHh5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIHh5KQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUJfTyhkLCB4eSkgQk9PU1RfUFBfU1VCX09fSSB4eQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUJfTyhkLCB4eSkgQk9PU1RfUFBfU1VCX09fSShCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIHh5KSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCB4eSkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9TVUJfT19JKHgsIHkpIChCT09TVF9QUF9ERUMoeCksIEJPT1NUX1BQX0RFQyh5KSkKKyMKKyMgLyogQk9PU1RfUFBfU1VCX0QgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUJfRChkLCB4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFXyAjIyBkKEJPT1NUX1BQX1NVQl9QLCBCT09TVF9QUF9TVUJfTywgKHgsIHkpKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU1VCX0QoZCwgeCwgeSkgQk9PU1RfUFBfU1VCX0RfSShkLCB4LCB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU1VCX0RfSShkLCB4LCB5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX1dISUxFXyAjIyBkKEJPT1NUX1BQX1NVQl9QLCBCT09TVF9QUF9TVUJfTywgKHgsIHkpKSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2RhdGEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZGF0YS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEwYmFlNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2RhdGEuaHBwCkBAIC0wLDAgKzEsMjggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJSQVlfREFUQV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUlJBWV9EQVRBX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQVJSQVlfREFUQSAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX0RBVEEoYXJyYXkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMSwgYXJyYXkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX0RBVEEoYXJyYXkpIEJPT1NUX1BQX0FSUkFZX0RBVEFfSShhcnJheSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX0RBVEFfSShhcnJheSkgQk9PU1RfUFBfQVJSQVlfREFUQV9JSSBhcnJheQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfREFUQV9JSShzaXplLCBkYXRhKSBkYXRhCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9lbGVtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2VsZW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNTk2ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9lbGVtLmhwcApAQCAtMCwwICsxLDI5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0FSUkFZX0VMRU1fSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQVJSQVlfRUxFTV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2RhdGEuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvc2l6ZS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9BUlJBWV9FTEVNICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfRUxFTShpLCBhcnJheSkgQk9PU1RfUFBfVFVQTEVfRUxFTShCT09TVF9QUF9BUlJBWV9TSVpFKGFycmF5KSwgaSwgQk9PU1RfUFBfQVJSQVlfREFUQShhcnJheSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX0VMRU0oaSwgYXJyYXkpIEJPT1NUX1BQX0FSUkFZX0VMRU1fSShpLCBhcnJheSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX0VMRU1fSShpLCBhcnJheSkgQk9PU1RfUFBfVFVQTEVfRUxFTShCT09TVF9QUF9BUlJBWV9TSVpFKGFycmF5KSwgaSwgQk9PU1RfUFBfQVJSQVlfREFUQShhcnJheSkpCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L3NpemUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YTI4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcApAQCAtMCwwICsxLDI4IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0FSUkFZX1NJWkVfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQVJSQVlfU0laRV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0FSUkFZX1NJWkUgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9BUlJBWV9TSVpFKGFycmF5KSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIGFycmF5KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9BUlJBWV9TSVpFKGFycmF5KSBCT09TVF9QUF9BUlJBWV9TSVpFX0koYXJyYXkpCisjICAgIGRlZmluZSBCT09TVF9QUF9BUlJBWV9TSVpFX0koYXJyYXkpIEJPT1NUX1BQX0FSUkFZX1NJWkVfSUkgYXJyYXkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX1NJWkVfSUkoc2l6ZSwgZGF0YSkgc2l6ZQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRiYzZjMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHAKQEAgLTAsMCArMSwzNSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ0FUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NBVF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9DQVQgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0FUKGEsIGIpIEJPT1NUX1BQX0NBVF9JKGEsIGIpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NBVChhLCBiKSBCT09TVF9QUF9DQVRfT08oKGEsIGIpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0FUX09PKHBhcikgQk9PU1RfUFBfQ0FUX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NBVF9JKGEsIGIpIGEgIyMgYgorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9DQVRfSShhLCBiKSBCT09TVF9QUF9DQVRfSUkofiwgYSAjIyBiKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0FUX0lJKHAsIHJlcykgcmVzCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlNDdhNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcApAQCAtMCwwICsxLDE3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTU1BX0lGX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTU1BX0lGX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWFfaWYuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tcGFyaXNvbi9sZXNzX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbXBhcmlzb24vbGVzc19lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ3MTU2NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbXBhcmlzb24vbGVzc19lcXVhbC5ocHAKQEAgLTAsMCArMSwzOSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09NUEFSSVNPTl9MRVNTX0VRVUFMX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTVBBUklTT05fTEVTU19FUVVBTF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvc3ViLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ub3QuaHBwPgorIworIyAvKiBCT09TVF9QUF9MRVNTX0VRVUFMICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTEVTU19FUVVBTCh4LCB5KSBCT09TVF9QUF9OT1QoQk9PU1RfUFBfU1VCKHgsIHkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MRVNTX0VRVUFMKHgsIHkpIEJPT1NUX1BQX0xFU1NfRVFVQUxfSSh4LCB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTEVTU19FUVVBTF9JKHgsIHkpIEJPT1NUX1BQX05PVChCT09TVF9QUF9TVUIoeCwgeSkpCisjIGVuZGlmCisjCisjIC8qIEJPT1NUX1BQX0xFU1NfRVFVQUxfRCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xFU1NfRVFVQUxfRChkLCB4LCB5KSBCT09TVF9QUF9OT1QoQk9PU1RfUFBfU1VCX0QoZCwgeCwgeSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xFU1NfRVFVQUxfRChkLCB4LCB5KSBCT09TVF9QUF9MRVNTX0VRVUFMX0RfSShkLCB4LCB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTEVTU19FUVVBTF9EX0koZCwgeCwgeSkgQk9PU1RfUFBfTk9UKEJPT1NUX1BQX1NVQl9EKGQsIHgsIHkpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDJlYjU4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHAKQEAgLTAsMCArMSwxMDUgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDItMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgRWR3YXJkIERpZW5lciAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSAgICAgICoKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0ICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05GSUdfQ09ORklHX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTkZJR19DT05GSUdfSFBQCisjCisjIC8qIEJPT1NUX1BQX0NPTkZJR19GTEFHUyAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpIDB4MDAwMQorIyBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0lERUFMKCkgMHgwMDAyCisjCisjIGRlZmluZSBCT09TVF9QUF9DT05GSUdfTVNWQygpIDB4MDAwNAorIyBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX01XQ0MoKSAweDAwMDgKKyMgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19CQ0MoKSAweDAwMTAKKyMgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19FREcoKSAweDAwMjAKKyMgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19ETUMoKSAweDAwNDAKKyMKKyMgaWZuZGVmIEJPT1NUX1BQX0NPTkZJR19GTEFHUworIyAgICBpZiBkZWZpbmVkKF9fR0NDWE1MX18pCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9fV0FWRV9fKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkpCisjICAgIGVsaWYgZGVmaW5lZChfX01XRVJLU19fKSAmJiBfX01XRVJLU19fID49IDB4MzIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkpCisjICAgIGVsaWYgZGVmaW5lZChfX0VER19fKSB8fCBkZWZpbmVkKF9fRURHX1ZFUlNJT05fXykKKyMgICAgICAgIGlmIGRlZmluZWQoX01TQ19WRVIpICYmIF9fRURHX1ZFUlNJT05fXyA+PSAzMDgKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkpCisjICAgICAgICBlbHNlCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfRURHKCkgfCBCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkpCisjICAgICAgICBlbmRpZgorIyAgICBlbGlmIGRlZmluZWQoX19NV0VSS1NfXykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAoQk9PU1RfUFBfQ09ORklHX01XQ0MoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9fRE1DX18pCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19ETUMoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgX19CT1JMQU5EQ19fID49IDB4NTgxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX0lCTUNfXykgfHwgZGVmaW5lZChfX0lCTUNQUF9fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0NDKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfQkNDKCkpCisjICAgIGVsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAoQk9PU1RfUFBfQ09ORklHX01TVkMoKSkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkpCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIC8qIEJPT1NUX1BQX0NPTkZJR19FWFRFTkRFRF9MSU5FX0lORk8gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BQX0NPTkZJR19FWFRFTkRFRF9MSU5FX0lORk8KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19FWFRFTkRFRF9MSU5FX0lORk8gMAorIyBlbmRpZgorIworIyAvKiBCT09TVF9QUF9DT05GSUdfRVJST1JTICovCisjCisjIGlmbmRlZiBCT09TVF9QUF9DT05GSUdfRVJST1JTCisjICAgIGlmZGVmIE5ERUJVRworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19FUlJPUlMgMAorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0VSUk9SUyAxCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIC8qIEJPT1NUX1BQX1ZBUklBRElDUyAqLworIworIyBpZiAhZGVmaW5lZCBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgLyogdmFyaWFkaWMgc3VwcG9ydCBleHBsaWNpdGx5IGRpc2FibGVkIGZvciBhbGwgdW50ZXN0ZWQgY29tcGlsZXJzICovCisjICAgIGlmIGRlZmluZWQgX19HQ0NYTUxfXyB8fCBkZWZpbmVkIF9fQ1VEQUNDX18gfHwgZGVmaW5lZCBfX1BBVEhTQ0FMRV9fIHx8IGRlZmluZWQgX19jbGFuZ19fIHx8IGRlZmluZWQgX19ETUNfXyB8fCBkZWZpbmVkIF9fQ09ERUdFQVJDX18gfHwgZGVmaW5lZCBfX0JPUkxBTkRDX18gfHwgZGVmaW5lZCBfX01XRVJLU19fIHx8IGRlZmluZWQgX19TVU5QUk9fQ0MgfHwgZGVmaW5lZCBfX0hQX2FDQyAmJiAhZGVmaW5lZCBfX0VER19fIHx8IGRlZmluZWQgX19NUkNfXyB8fCBkZWZpbmVkIF9fU0NfXyB8fCBkZWZpbmVkIF9fSUJNQ1BQX18gfHwgZGVmaW5lZCBfX1BHSQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDUyAwCisjICAgIC8qIFZDKysgKEMvQysrKSAqLworIyAgICBlbGlmIGRlZmluZWQgX01TQ19WRVIgJiYgX01TQ19WRVIgPj0gMTQwMCAmJiAhZGVmaW5lZCBfX0VER19fCisjICAgICAgICBpZiBfTVNDX1ZFUiA+PSAxNDAwCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDUyAxCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDU19NU1ZDIDEKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDAKKyMgICAgICAgIGVuZGlmCisjICAgIC8qIFdhdmUgKEMvQysrKSwgR0NDIChDKyspICovCisjICAgIGVsaWYgZGVmaW5lZCBfX1dBVkVfXyAmJiBfX1dBVkVfSEFTX1ZBUklBRElDU19fIHx8IGRlZmluZWQgX19HTlVDX18gJiYgX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18KKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ1MgMQorIyAgICAvKiBFREctYmFzZWQgKEMvQysrKSwgR0NDIChDKSwgYW5kIHVua25vd24gKEMvQysrKSAqLworIyAgICBlbGlmICFkZWZpbmVkIF9fY3BsdXNwbHVzICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTCB8fCBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDEKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDUyAwCisjICAgIGVuZGlmCisjIGVsaWYgIUJPT1NUX1BQX1ZBUklBRElDUyArIDEgPCAyCisjICAgIHVuZGVmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDEKKyMgICAgaWYgZGVmaW5lZCBfTVNDX1ZFUiAmJiBfTVNDX1ZFUiA+PSAxNDAwICYmICEoZGVmaW5lZCBfX0VER19fIHx8IGRlZmluZWQgX19HQ0NYTUxfXyB8fCBkZWZpbmVkIF9fQ1VEQUNDX18gfHwgZGVmaW5lZCBfX1BBVEhTQ0FMRV9fIHx8IGRlZmluZWQgX19jbGFuZ19fIHx8IGRlZmluZWQgX19ETUNfXyB8fCBkZWZpbmVkIF9fQ09ERUdFQVJDX18gfHwgZGVmaW5lZCBfX0JPUkxBTkRDX18gfHwgZGVmaW5lZCBfX01XRVJLU19fIHx8IGRlZmluZWQgX19TVU5QUk9fQ0MgfHwgZGVmaW5lZCBfX0hQX2FDQyB8fCBkZWZpbmVkIF9fTVJDX18gfHwgZGVmaW5lZCBfX1NDX18gfHwgZGVmaW5lZCBfX0lCTUNQUF9fIHx8IGRlZmluZWQgX19QR0kpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTX01TVkMgMQorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIHVuZGVmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDAKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGVkdWNlX2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZWR1Y2VfZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFiYTI3MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGVkdWNlX2QuaHBwCkBAIC0wLDAgKzEsMjIgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERURVQ0VfRF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0RFRFVDRV9EX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC93aGlsZS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwPgorIworIyAvKiBCT09TVF9QUF9ERURVQ0VfRCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfREVEVUNFX0QoKSBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9XSElMRV9QLCAyNTYpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9kbWMvd2hpbGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZG1jL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmUyZTlmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZG1jL3doaWxlLmhwcApAQCAtMCwwICsxLDUzNiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERVRBSUxfV0hJTEVfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERVRBSUxfV0hJTEVfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMl9DKEJPT1NUX1BQX0JPT0wocCMjKDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfM19DKEJPT1NUX1BQX0JPT0wocCMjKDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNF9DKEJPT1NUX1BQX0JPT0wocCMjKDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNV9DKEJPT1NUX1BQX0JPT0wocCMjKDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNl9DKEJPT1NUX1BQX0JPT0wocCMjKDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfN19DKEJPT1NUX1BQX0JPT0wocCMjKDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOF9DKEJPT1NUX1BQX0JPT0wocCMjKDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMF9DKEJPT1NUX1BQX0JPT0wocCMjKDExLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMV9DKEJPT1NUX1BQX0JPT0wocCMjKDEyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xM19DKEJPT1NUX1BQX0JPT0wocCMjKDE0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNF9DKEJPT1NUX1BQX0JPT0wocCMjKDE1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNl9DKEJPT1NUX1BQX0JPT0wocCMjKDE3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xN19DKEJPT1NUX1BQX0JPT0wocCMjKDE4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yM19DKEJPT1NUX1BQX0JPT0wocCMjKDI0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNF9DKEJPT1NUX1BQX0JPT0wocCMjKDI1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNV9DKEJPT1NUX1BQX0JPT0wocCMjKDI2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNl9DKEJPT1NUX1BQX0JPT0wocCMjKDI3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yN19DKEJPT1NUX1BQX0JPT0wocCMjKDI4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yOF9DKEJPT1NUX1BQX0JPT0wocCMjKDI5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yOV9DKEJPT1NUX1BQX0JPT0wocCMjKDMwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMF9DKEJPT1NUX1BQX0JPT0wocCMjKDMxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMV9DKEJPT1NUX1BQX0JPT0wocCMjKDMyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMl9DKEJPT1NUX1BQX0JPT0wocCMjKDMzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zM19DKEJPT1NUX1BQX0JPT0wocCMjKDM0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNF9DKEJPT1NUX1BQX0JPT0wocCMjKDM1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNV9DKEJPT1NUX1BQX0JPT0wocCMjKDM2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNl9DKEJPT1NUX1BQX0JPT0wocCMjKDM3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zN19DKEJPT1NUX1BQX0JPT0wocCMjKDM4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zOF9DKEJPT1NUX1BQX0JPT0wocCMjKDM5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zOV9DKEJPT1NUX1BQX0JPT0wocCMjKDQwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80MF9DKEJPT1NUX1BQX0JPT0wocCMjKDQxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80MV9DKEJPT1NUX1BQX0JPT0wocCMjKDQyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDQzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80M19DKEJPT1NUX1BQX0JPT0wocCMjKDQ0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80NF9DKEJPT1NUX1BQX0JPT0wocCMjKDQ1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80NV9DKEJPT1NUX1BQX0JPT0wocCMjKDQ2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDQ3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80N19DKEJPT1NUX1BQX0JPT0wocCMjKDQ4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80OF9DKEJPT1NUX1BQX0JPT0wocCMjKDQ5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80OV9DKEJPT1NUX1BQX0JPT0wocCMjKDUwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81MF9DKEJPT1NUX1BQX0JPT0wocCMjKDUxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81MV9DKEJPT1NUX1BQX0JPT0wocCMjKDUyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDUzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81M19DKEJPT1NUX1BQX0JPT0wocCMjKDU0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81NF9DKEJPT1NUX1BQX0JPT0wocCMjKDU1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81NV9DKEJPT1NUX1BQX0JPT0wocCMjKDU2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDU3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81N19DKEJPT1NUX1BQX0JPT0wocCMjKDU4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81OF9DKEJPT1NUX1BQX0JPT0wocCMjKDU5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81OV9DKEJPT1NUX1BQX0JPT0wocCMjKDYwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82MF9DKEJPT1NUX1BQX0JPT0wocCMjKDYxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82MV9DKEJPT1NUX1BQX0JPT0wocCMjKDYyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDYzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82M19DKEJPT1NUX1BQX0JPT0wocCMjKDY0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82NF9DKEJPT1NUX1BQX0JPT0wocCMjKDY1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82NV9DKEJPT1NUX1BQX0JPT0wocCMjKDY2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDY3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82N19DKEJPT1NUX1BQX0JPT0wocCMjKDY4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82OF9DKEJPT1NUX1BQX0JPT0wocCMjKDY5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82OV9DKEJPT1NUX1BQX0JPT0wocCMjKDcwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83MF9DKEJPT1NUX1BQX0JPT0wocCMjKDcxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83MV9DKEJPT1NUX1BQX0JPT0wocCMjKDcyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDczLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83M19DKEJPT1NUX1BQX0JPT0wocCMjKDc0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83NF9DKEJPT1NUX1BQX0JPT0wocCMjKDc1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83NV9DKEJPT1NUX1BQX0JPT0wocCMjKDc2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDc3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83N19DKEJPT1NUX1BQX0JPT0wocCMjKDc4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83OF9DKEJPT1NUX1BQX0JPT0wocCMjKDc5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83OV9DKEJPT1NUX1BQX0JPT0wocCMjKDgwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84MF9DKEJPT1NUX1BQX0JPT0wocCMjKDgxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84MV9DKEJPT1NUX1BQX0JPT0wocCMjKDgyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDgzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84M19DKEJPT1NUX1BQX0JPT0wocCMjKDg0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84NF9DKEJPT1NUX1BQX0JPT0wocCMjKDg1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84NV9DKEJPT1NUX1BQX0JPT0wocCMjKDg2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDg3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84N19DKEJPT1NUX1BQX0JPT0wocCMjKDg4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84OF9DKEJPT1NUX1BQX0JPT0wocCMjKDg5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84OV9DKEJPT1NUX1BQX0JPT0wocCMjKDkwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85MF9DKEJPT1NUX1BQX0JPT0wocCMjKDkxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85MV9DKEJPT1NUX1BQX0JPT0wocCMjKDkyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDkzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85M19DKEJPT1NUX1BQX0JPT0wocCMjKDk0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85NF9DKEJPT1NUX1BQX0JPT0wocCMjKDk1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85NV9DKEJPT1NUX1BQX0JPT0wocCMjKDk2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDk3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85N19DKEJPT1NUX1BQX0JPT0wocCMjKDk4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85OF9DKEJPT1NUX1BQX0JPT0wocCMjKDk5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85OV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMF9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwM19DKEJPT1NUX1BQX0JPT0wocCMjKDEwNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNF9DKEJPT1NUX1BQX0JPT0wocCMjKDEwNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNl9DKEJPT1NUX1BQX0JPT0wocCMjKDEwNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwN19DKEJPT1NUX1BQX0JPT0wocCMjKDEwOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwOF9DKEJPT1NUX1BQX0JPT0wocCMjKDEwOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwOV9DKEJPT1NUX1BQX0JPT0wocCMjKDExMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMF9DKEJPT1NUX1BQX0JPT0wocCMjKDExMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTExKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMV9DKEJPT1NUX1BQX0JPT0wocCMjKDExMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMl9DKEJPT1NUX1BQX0JPT0wocCMjKDExMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExM19DKEJPT1NUX1BQX0JPT0wocCMjKDExNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNF9DKEJPT1NUX1BQX0JPT0wocCMjKDExNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNV9DKEJPT1NUX1BQX0JPT0wocCMjKDExNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNl9DKEJPT1NUX1BQX0JPT0wocCMjKDExNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExN19DKEJPT1NUX1BQX0JPT0wocCMjKDExOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExOF9DKEJPT1NUX1BQX0JPT0wocCMjKDExOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExOV9DKEJPT1NUX1BQX0JPT0wocCMjKDEyMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMF9DKEJPT1NUX1BQX0JPT0wocCMjKDEyMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMV9DKEJPT1NUX1BQX0JPT0wocCMjKDEyMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEyMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyM19DKEJPT1NUX1BQX0JPT0wocCMjKDEyNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNF9DKEJPT1NUX1BQX0JPT0wocCMjKDEyNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNV9DKEJPT1NUX1BQX0JPT0wocCMjKDEyNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNl9DKEJPT1NUX1BQX0JPT0wocCMjKDEyNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyN19DKEJPT1NUX1BQX0JPT0wocCMjKDEyOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyOF9DKEJPT1NUX1BQX0JPT0wocCMjKDEyOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyOV9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMF9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMV9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzM19DKEJPT1NUX1BQX0JPT0wocCMjKDEzNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNF9DKEJPT1NUX1BQX0JPT0wocCMjKDEzNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNV9DKEJPT1NUX1BQX0JPT0wocCMjKDEzNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNl9DKEJPT1NUX1BQX0JPT0wocCMjKDEzNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzN19DKEJPT1NUX1BQX0JPT0wocCMjKDEzOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzOF9DKEJPT1NUX1BQX0JPT0wocCMjKDEzOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzOV9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0M19DKEJPT1NUX1BQX0JPT0wocCMjKDE0NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE0NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE0NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE0NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0N19DKEJPT1NUX1BQX0JPT0wocCMjKDE0OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE0OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE1MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE1MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE1MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE1MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1M19DKEJPT1NUX1BQX0JPT0wocCMjKDE1NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE1NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE1NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE1NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1N19DKEJPT1NUX1BQX0JPT0wocCMjKDE1OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE1OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2M19DKEJPT1NUX1BQX0JPT0wocCMjKDE2NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE2NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE2NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2N19DKEJPT1NUX1BQX0JPT0wocCMjKDE2OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE2OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTczKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3M19DKEJPT1NUX1BQX0JPT0wocCMjKDE3NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE3NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE3NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE3NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3N19DKEJPT1NUX1BQX0JPT0wocCMjKDE3OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE3OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE4MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE4MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE4MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE4MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4M19DKEJPT1NUX1BQX0JPT0wocCMjKDE4NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE4NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE4NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE4NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4N19DKEJPT1NUX1BQX0JPT0wocCMjKDE4OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE4OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5M19DKEJPT1NUX1BQX0JPT0wocCMjKDE5NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE5NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE5NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5N19DKEJPT1NUX1BQX0JPT0wocCMjKDE5OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5OV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwM19DKEJPT1NUX1BQX0JPT0wocCMjKDIwNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIwNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNl9DKEJPT1NUX1BQX0JPT0wocCMjKDIwNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwN19DKEJPT1NUX1BQX0JPT0wocCMjKDIwOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIwOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIxMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIxMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjExKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIxMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIxMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxM19DKEJPT1NUX1BQX0JPT0wocCMjKDIxNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIxNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIxNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNl9DKEJPT1NUX1BQX0JPT0wocCMjKDIxNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxN19DKEJPT1NUX1BQX0JPT0wocCMjKDIxOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIxOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyM19DKEJPT1NUX1BQX0JPT0wocCMjKDIyNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIyNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNl9DKEJPT1NUX1BQX0JPT0wocCMjKDIyNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyN19DKEJPT1NUX1BQX0JPT0wocCMjKDIyOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIyOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzM19DKEJPT1NUX1BQX0JPT0wocCMjKDIzNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIzNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIzNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNl9DKEJPT1NUX1BQX0JPT0wocCMjKDIzNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzN19DKEJPT1NUX1BQX0JPT0wocCMjKDIzOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIzOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzOV9DKEJPT1NUX1BQX0JPT0wocCMjKDI0MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0MF9DKEJPT1NUX1BQX0JPT0wocCMjKDI0MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0MV9DKEJPT1NUX1BQX0JPT0wocCMjKDI0MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDI0MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0M19DKEJPT1NUX1BQX0JPT0wocCMjKDI0NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0NF9DKEJPT1NUX1BQX0JPT0wocCMjKDI0NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0NV9DKEJPT1NUX1BQX0JPT0wocCMjKDI0NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDI0NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0N19DKEJPT1NUX1BQX0JPT0wocCMjKDI0OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0OF9DKEJPT1NUX1BQX0JPT0wocCMjKDI0OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0OV9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1MF9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1MV9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1M19DKEJPT1NUX1BQX0JPT0wocCMjKDI1NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1NF9DKEJPT1NUX1BQX0JPT0wocCMjKDI1NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1NV9DKEJPT1NUX1BQX0JPT0wocCMjKDI1NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDI1NywgcykpLCBwLCBvLCBzKQorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzcwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzczLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzgyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzkxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTAwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTAyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTAzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTA2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTA5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTExLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTExX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTMyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTYyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTcxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTkyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjAyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjA1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjA4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI1NywgcykpCisjCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9lZGcvd2hpbGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZWRnL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzEwNTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZWRnL3doaWxlLmhwcApAQCAtMCwwICsxLDUzNCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERVRBSUxfRURHX1dISUxFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfREVUQUlMX0VER19XSElMRV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzUwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzUxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzUyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzUzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzcwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzcxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzcyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzczKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzczX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzgwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzgxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzgyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzgzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTAyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTExX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMThfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTIwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTIzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTMyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTUwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTUzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTYyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTcxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTczKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTgwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTgzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTkyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjAxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjEwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjEzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjIyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjMxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjUyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjU1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTZfSShwLCBvLCBzKQorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMiwgcyksIEJPT1NUX1BQX1dISUxFXzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQsIHMpLCBCT09TVF9QUF9XSElMRV80LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNSwgcyksIEJPT1NUX1BQX1dISUxFXzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcsIHMpLCBCT09TVF9QUF9XSElMRV83LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfN19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOCwgcyksIEJPT1NUX1BQX1dISUxFXzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5LCBzKSwgQk9PU1RfUFBfV0hJTEVfOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMThfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQyLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQzLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ1LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ4LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUyLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUzLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU1LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU4LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNThfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYyLCBzKSwgQk9PU1RfUFBfV0hJTEVfNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYzLCBzKSwgQk9PU1RfUFBfV0hJTEVfNjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY1LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY4LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcyLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDczLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc1LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc4LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgwLCBzKSwgQk9PU1RfUFBfV0hJTEVfODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgxLCBzKSwgQk9PU1RfUFBfV0hJTEVfODEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgyLCBzKSwgQk9PU1RfUFBfV0hJTEVfODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgzLCBzKSwgQk9PU1RfUFBfV0hJTEVfODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg0LCBzKSwgQk9PU1RfUFBfV0hJTEVfODQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg1LCBzKSwgQk9PU1RfUFBfV0hJTEVfODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg2LCBzKSwgQk9PU1RfUFBfV0hJTEVfODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg3LCBzKSwgQk9PU1RfUFBfV0hJTEVfODcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg4LCBzKSwgQk9PU1RfUFBfV0hJTEVfODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg5LCBzKSwgQk9PU1RfUFBfV0hJTEVfODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDkwLCBzKSwgQk9PU1RfUFBfV0hJTEVfOTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDkxLCBzKSwgQk9PU1RfUFBfV0hJTEVfOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDkyLCBzKSwgQk9PU1RfUFBfV0hJTEVfOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDkzLCBzKSwgQk9PU1RfUFBfV0hJTEVfOTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk0LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk1LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk2LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk3LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk4LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOThfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk5LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwMCwgcyksIEJPT1NUX1BQX1dISUxFXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDEsIHMpLCBCT09TVF9QUF9XSElMRV8xMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTAyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwMywgcyksIEJPT1NUX1BQX1dISUxFXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDQsIHMpLCBCT09TVF9QUF9XSElMRV8xMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwNiwgcyksIEJPT1NUX1BQX1dISUxFXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDcsIHMpLCBCT09TVF9QUF9XSElMRV8xMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwN19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwOSwgcyksIEJPT1NUX1BQX1dISUxFXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTAsIHMpLCBCT09TVF9QUF9XSElMRV8xMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTExLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExMiwgcyksIEJPT1NUX1BQX1dISUxFXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTMsIHMpLCBCT09TVF9QUF9XSElMRV8xMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExM19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExNSwgcyksIEJPT1NUX1BQX1dISUxFXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTYsIHMpLCBCT09TVF9QUF9XSElMRV8xMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExOCwgcyksIEJPT1NUX1BQX1dISUxFXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTksIHMpLCBCT09TVF9QUF9XSElMRV8xMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTIwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyMSwgcyksIEJPT1NUX1BQX1dISUxFXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjIsIHMpLCBCT09TVF9QUF9XSElMRV8xMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTIyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTIzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyNCwgcyksIEJPT1NUX1BQX1dISUxFXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjUsIHMpLCBCT09TVF9QUF9XSElMRV8xMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyNywgcyksIEJPT1NUX1BQX1dISUxFXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjgsIHMpLCBCT09TVF9QUF9XSElMRV8xMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzMCwgcyksIEJPT1NUX1BQX1dISUxFXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzEsIHMpLCBCT09TVF9QUF9XSElMRV8xMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTMyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzMywgcyksIEJPT1NUX1BQX1dISUxFXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzQsIHMpLCBCT09TVF9QUF9XSElMRV8xMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzNiwgcyksIEJPT1NUX1BQX1dISUxFXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzcsIHMpLCBCT09TVF9QUF9XSElMRV8xMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzN19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzOSwgcyksIEJPT1NUX1BQX1dISUxFXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDAsIHMpLCBCT09TVF9QUF9XSElMRV8xNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0MiwgcyksIEJPT1NUX1BQX1dISUxFXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDMsIHMpLCBCT09TVF9QUF9XSElMRV8xNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0M19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0NSwgcyksIEJPT1NUX1BQX1dISUxFXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDYsIHMpLCBCT09TVF9QUF9XSElMRV8xNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0Nl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0OCwgcyksIEJPT1NUX1BQX1dISUxFXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDksIHMpLCBCT09TVF9QUF9XSElMRV8xNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTUwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1MSwgcyksIEJPT1NUX1BQX1dISUxFXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTIsIHMpLCBCT09TVF9QUF9XSElMRV8xNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTUyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1Ml9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTUzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1NCwgcyksIEJPT1NUX1BQX1dISUxFXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTUsIHMpLCBCT09TVF9QUF9XSElMRV8xNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1NywgcyksIEJPT1NUX1BQX1dISUxFXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTgsIHMpLCBCT09TVF9QUF9XSElMRV8xNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2MCwgcyksIEJPT1NUX1BQX1dISUxFXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjEsIHMpLCBCT09TVF9QUF9XSElMRV8xNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTYyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2MywgcyksIEJPT1NUX1BQX1dISUxFXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjQsIHMpLCBCT09TVF9QUF9XSElMRV8xNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2NiwgcyksIEJPT1NUX1BQX1dISUxFXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjcsIHMpLCBCT09TVF9QUF9XSElMRV8xNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2N19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2OSwgcyksIEJPT1NUX1BQX1dISUxFXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzAsIHMpLCBCT09TVF9QUF9XSElMRV8xNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTcwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTcxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTcxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3MiwgcyksIEJPT1NUX1BQX1dISUxFXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzMsIHMpLCBCT09TVF9QUF9XSElMRV8xNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTczLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3M19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3NSwgcyksIEJPT1NUX1BQX1dISUxFXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzYsIHMpLCBCT09TVF9QUF9XSElMRV8xNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3Nl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3OCwgcyksIEJPT1NUX1BQX1dISUxFXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzksIHMpLCBCT09TVF9QUF9XSElMRV8xNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTgwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTgwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4MSwgcyksIEJPT1NUX1BQX1dISUxFXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODIsIHMpLCBCT09TVF9QUF9XSElMRV8xODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTgyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4Ml9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTgzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTgzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4NCwgcyksIEJPT1NUX1BQX1dISUxFXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODUsIHMpLCBCT09TVF9QUF9XSElMRV8xODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4NywgcyksIEJPT1NUX1BQX1dISUxFXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODgsIHMpLCBCT09TVF9QUF9XSElMRV8xODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5MCwgcyksIEJPT1NUX1BQX1dISUxFXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTEsIHMpLCBCT09TVF9QUF9XSElMRV8xOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTkxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTkyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTkyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5MywgcyksIEJPT1NUX1BQX1dISUxFXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTQsIHMpLCBCT09TVF9QUF9XSElMRV8xOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5NiwgcyksIEJPT1NUX1BQX1dISUxFXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTcsIHMpLCBCT09TVF9QUF9XSElMRV8xOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5N19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOThfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5OSwgcyksIEJPT1NUX1BQX1dISUxFXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDAsIHMpLCBCT09TVF9QUF9XSElMRV8yMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjAxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwMiwgcyksIEJPT1NUX1BQX1dISUxFXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDMsIHMpLCBCT09TVF9QUF9XSElMRV8yMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwM19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwNSwgcyksIEJPT1NUX1BQX1dISUxFXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDYsIHMpLCBCT09TVF9QUF9XSElMRV8yMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwOCwgcyksIEJPT1NUX1BQX1dISUxFXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDksIHMpLCBCT09TVF9QUF9XSElMRV8yMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjEwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxMSwgcyksIEJPT1NUX1BQX1dISUxFXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjExX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTIsIHMpLCBCT09TVF9QUF9XSElMRV8yMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjEzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxNCwgcyksIEJPT1NUX1BQX1dISUxFXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTUsIHMpLCBCT09TVF9QUF9XSElMRV8yMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxNywgcyksIEJPT1NUX1BQX1dISUxFXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTgsIHMpLCBCT09TVF9QUF9XSElMRV8yMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyMCwgcyksIEJPT1NUX1BQX1dISUxFXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjEsIHMpLCBCT09TVF9QUF9XSElMRV8yMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjIyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyMywgcyksIEJPT1NUX1BQX1dISUxFXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjQsIHMpLCBCT09TVF9QUF9XSElMRV8yMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyNiwgcyksIEJPT1NUX1BQX1dISUxFXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjcsIHMpLCBCT09TVF9QUF9XSElMRV8yMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyN19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyOSwgcyksIEJPT1NUX1BQX1dISUxFXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzAsIHMpLCBCT09TVF9QUF9XSElMRV8yMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjMxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzMiwgcyksIEJPT1NUX1BQX1dISUxFXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzMsIHMpLCBCT09TVF9QUF9XSElMRV8yMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzM19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzNSwgcyksIEJPT1NUX1BQX1dISUxFXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzYsIHMpLCBCT09TVF9QUF9XSElMRV8yMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzOCwgcyksIEJPT1NUX1BQX1dISUxFXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzksIHMpLCBCT09TVF9QUF9XSElMRV8yMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0MSwgcyksIEJPT1NUX1BQX1dISUxFXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDIsIHMpLCBCT09TVF9QUF9XSElMRV8yNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0Ml9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0NCwgcyksIEJPT1NUX1BQX1dISUxFXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDUsIHMpLCBCT09TVF9QUF9XSElMRV8yNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0NywgcyksIEJPT1NUX1BQX1dISUxFXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDgsIHMpLCBCT09TVF9QUF9XSElMRV8yNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1MCwgcyksIEJPT1NUX1BQX1dISUxFXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTEsIHMpLCBCT09TVF9QUF9XSElMRV8yNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjUyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1MywgcyksIEJPT1NUX1BQX1dISUxFXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTQsIHMpLCBCT09TVF9QUF9XSElMRV8yNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjU1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1NiwgcyksIEJPT1NUX1BQX1dISUxFXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTcsIHMpLCBCT09TVF9QUF9XSElMRV8yNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjU3LCBzKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL21zdmMvd2hpbGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvbXN2Yy93aGlsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQyZDQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL21zdmMvd2hpbGUuaHBwCkBAIC0wLDAgKzEsMjc3IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0RFVEFJTF9NU1ZDX1dISUxFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfREVUQUlMX01TVkNfV0hJTEVfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMiwgcyksIEJPT1NUX1BQX1dISUxFXzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMywgcyksIEJPT1NUX1BQX1dISUxFXzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNCwgcyksIEJPT1NUX1BQX1dISUxFXzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNSwgcyksIEJPT1NUX1BQX1dISUxFXzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNiwgcyksIEJPT1NUX1BQX1dISUxFXzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNywgcyksIEJPT1NUX1BQX1dISUxFXzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOCwgcyksIEJPT1NUX1BQX1dISUxFXzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOSwgcyksIEJPT1NUX1BQX1dISUxFXzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTAsIHMpLCBCT09TVF9QUF9XSElMRV8xMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMiwgcyksIEJPT1NUX1BQX1dISUxFXzEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTMsIHMpLCBCT09TVF9QUF9XSElMRV8xMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNSwgcyksIEJPT1NUX1BQX1dISUxFXzE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTYsIHMpLCBCT09TVF9QUF9XSElMRV8xNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOCwgcyksIEJPT1NUX1BQX1dISUxFXzE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTksIHMpLCBCT09TVF9QUF9XSElMRV8xOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMSwgcyksIEJPT1NUX1BQX1dISUxFXzIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjIsIHMpLCBCT09TVF9QUF9XSElMRV8yMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNCwgcyksIEJPT1NUX1BQX1dISUxFXzI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjUsIHMpLCBCT09TVF9QUF9XSElMRV8yNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjYocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNywgcyksIEJPT1NUX1BQX1dISUxFXzI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjgsIHMpLCBCT09TVF9QUF9XSElMRV8yOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjkocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMCwgcyksIEJPT1NUX1BQX1dISUxFXzMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzEsIHMpLCBCT09TVF9QUF9XSElMRV8zMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzIocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMywgcyksIEJPT1NUX1BQX1dISUxFXzMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzQsIHMpLCBCT09TVF9QUF9XSElMRV8zNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzUocCwgbywgcykgQk9PU1RfUFBfSUYocCgzNiwgcyksIEJPT1NUX1BQX1dISUxFXzM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzcsIHMpLCBCT09TVF9QUF9XSElMRV8zNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzgocCwgbywgcykgQk9PU1RfUFBfSUYocCgzOSwgcyksIEJPT1NUX1BQX1dISUxFXzM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDAsIHMpLCBCT09TVF9QUF9XSElMRV80MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDEocCwgbywgcykgQk9PU1RfUFBfSUYocCg0MiwgcyksIEJPT1NUX1BQX1dISUxFXzQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDMsIHMpLCBCT09TVF9QUF9XSElMRV80MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDQocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NSwgcyksIEJPT1NUX1BQX1dISUxFXzQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDYsIHMpLCBCT09TVF9QUF9XSElMRV80NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDcocCwgbywgcykgQk9PU1RfUFBfSUYocCg0OCwgcyksIEJPT1NUX1BQX1dISUxFXzQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDksIHMpLCBCT09TVF9QUF9XSElMRV80OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTAocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MSwgcyksIEJPT1NUX1BQX1dISUxFXzUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNTIsIHMpLCBCT09TVF9QUF9XSElMRV81MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUzLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTMocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NCwgcyksIEJPT1NUX1BQX1dISUxFXzU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNTUsIHMpLCBCT09TVF9QUF9XSElMRV81NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTYocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NywgcyksIEJPT1NUX1BQX1dISUxFXzU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNTgsIHMpLCBCT09TVF9QUF9XSElMRV81OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTkocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MCwgcyksIEJPT1NUX1BQX1dISUxFXzYwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjEsIHMpLCBCT09TVF9QUF9XSElMRV82MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYyLCBzKSwgQk9PU1RfUFBfV0hJTEVfNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjIocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MywgcyksIEJPT1NUX1BQX1dISUxFXzYzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjQsIHMpLCBCT09TVF9QUF9XSElMRV82NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY1LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjUocCwgbywgcykgQk9PU1RfUFBfSUYocCg2NiwgcyksIEJPT1NUX1BQX1dISUxFXzY2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjcsIHMpLCBCT09TVF9QUF9XSElMRV82NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY4LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjgocCwgbywgcykgQk9PU1RfUFBfSUYocCg2OSwgcyksIEJPT1NUX1BQX1dISUxFXzY5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzAsIHMpLCBCT09TVF9QUF9XSElMRV83MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzEocCwgbywgcykgQk9PU1RfUFBfSUYocCg3MiwgcyksIEJPT1NUX1BQX1dISUxFXzcyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzMsIHMpLCBCT09TVF9QUF9XSElMRV83MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzQocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NSwgcyksIEJPT1NUX1BQX1dISUxFXzc1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzYsIHMpLCBCT09TVF9QUF9XSElMRV83NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzcocCwgbywgcykgQk9PU1RfUFBfSUYocCg3OCwgcyksIEJPT1NUX1BQX1dISUxFXzc4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzksIHMpLCBCT09TVF9QUF9XSElMRV83OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgwLCBzKSwgQk9PU1RfUFBfV0hJTEVfODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODAocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MSwgcyksIEJPT1NUX1BQX1dISUxFXzgxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoODIsIHMpLCBCT09TVF9QUF9XSElMRV84MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgzLCBzKSwgQk9PU1RfUFBfV0hJTEVfODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODMocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NCwgcyksIEJPT1NUX1BQX1dISUxFXzg0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoODUsIHMpLCBCT09TVF9QUF9XSElMRV84NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg2LCBzKSwgQk9PU1RfUFBfV0hJTEVfODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODYocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NywgcyksIEJPT1NUX1BQX1dISUxFXzg3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoODgsIHMpLCBCT09TVF9QUF9XSElMRV84OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg5LCBzKSwgQk9PU1RfUFBfV0hJTEVfODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODkocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MCwgcyksIEJPT1NUX1BQX1dISUxFXzkwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTEsIHMpLCBCT09TVF9QUF9XSElMRV85MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDkyLCBzKSwgQk9PU1RfUFBfV0hJTEVfOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTIocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MywgcyksIEJPT1NUX1BQX1dISUxFXzkzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTQsIHMpLCBCT09TVF9QUF9XSElMRV85NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk1LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTUocCwgbywgcykgQk9PU1RfUFBfSUYocCg5NiwgcyksIEJPT1NUX1BQX1dISUxFXzk2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTcsIHMpLCBCT09TVF9QUF9XSElMRV85NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk4LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTgocCwgbywgcykgQk9PU1RfUFBfSUYocCg5OSwgcyksIEJPT1NUX1BQX1dISUxFXzk5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTAwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDEsIHMpLCBCT09TVF9QUF9XSElMRV8xMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwMiwgcyksIEJPT1NUX1BQX1dISUxFXzEwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTAzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDQsIHMpLCBCT09TVF9QUF9XSElMRV8xMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwNSwgcyksIEJPT1NUX1BQX1dISUxFXzEwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDcsIHMpLCBCT09TVF9QUF9XSElMRV8xMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwOCwgcyksIEJPT1NUX1BQX1dISUxFXzEwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDkocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTAsIHMpLCBCT09TVF9QUF9XSElMRV8xMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExMSwgcyksIEJPT1NUX1BQX1dISUxFXzExMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTExKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTEyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTIocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTMsIHMpLCBCT09TVF9QUF9XSElMRV8xMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExNCwgcyksIEJPT1NUX1BQX1dISUxFXzExNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTUocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTYsIHMpLCBCT09TVF9QUF9XSElMRV8xMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExNywgcyksIEJPT1NUX1BQX1dISUxFXzExNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTgocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTksIHMpLCBCT09TVF9QUF9XSElMRV8xMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyMCwgcyksIEJPT1NUX1BQX1dISUxFXzEyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTIxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjIsIHMpLCBCT09TVF9QUF9XSElMRV8xMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTIyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyMywgcyksIEJPT1NUX1BQX1dISUxFXzEyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjUsIHMpLCBCT09TVF9QUF9XSElMRV8xMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyNiwgcyksIEJPT1NUX1BQX1dISUxFXzEyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjgsIHMpLCBCT09TVF9QUF9XSElMRV8xMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyOSwgcyksIEJPT1NUX1BQX1dISUxFXzEyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTMwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzEsIHMpLCBCT09TVF9QUF9XSElMRV8xMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzMiwgcyksIEJPT1NUX1BQX1dISUxFXzEzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTMzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzQsIHMpLCBCT09TVF9QUF9XSElMRV8xMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzNSwgcyksIEJPT1NUX1BQX1dISUxFXzEzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzcsIHMpLCBCT09TVF9QUF9XSElMRV8xMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzOCwgcyksIEJPT1NUX1BQX1dISUxFXzEzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzkocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDAsIHMpLCBCT09TVF9QUF9XSElMRV8xNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0MSwgcyksIEJPT1NUX1BQX1dISUxFXzE0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDIocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDMsIHMpLCBCT09TVF9QUF9XSElMRV8xNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0NCwgcyksIEJPT1NUX1BQX1dISUxFXzE0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDUocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDYsIHMpLCBCT09TVF9QUF9XSElMRV8xNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0NywgcyksIEJPT1NUX1BQX1dISUxFXzE0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDgocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDksIHMpLCBCT09TVF9QUF9XSElMRV8xNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1MCwgcyksIEJPT1NUX1BQX1dISUxFXzE1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTUxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTIsIHMpLCBCT09TVF9QUF9XSElMRV8xNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTUyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1MywgcyksIEJPT1NUX1BQX1dISUxFXzE1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTUsIHMpLCBCT09TVF9QUF9XSElMRV8xNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1NiwgcyksIEJPT1NUX1BQX1dISUxFXzE1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTgsIHMpLCBCT09TVF9QUF9XSElMRV8xNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1OSwgcyksIEJPT1NUX1BQX1dISUxFXzE1OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTYwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjEsIHMpLCBCT09TVF9QUF9XSElMRV8xNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2MiwgcyksIEJPT1NUX1BQX1dISUxFXzE2MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTYzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjQsIHMpLCBCT09TVF9QUF9XSElMRV8xNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2NSwgcyksIEJPT1NUX1BQX1dISUxFXzE2NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjcsIHMpLCBCT09TVF9QUF9XSElMRV8xNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2OCwgcyksIEJPT1NUX1BQX1dISUxFXzE2OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjkocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzAsIHMpLCBCT09TVF9QUF9XSElMRV8xNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTcwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3MSwgcyksIEJPT1NUX1BQX1dISUxFXzE3MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTcyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTcyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzIocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzMsIHMpLCBCT09TVF9QUF9XSElMRV8xNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTczLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3NCwgcyksIEJPT1NUX1BQX1dISUxFXzE3NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzUocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzYsIHMpLCBCT09TVF9QUF9XSElMRV8xNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3NywgcyksIEJPT1NUX1BQX1dISUxFXzE3NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzgocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzksIHMpLCBCT09TVF9QUF9XSElMRV8xNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4MCwgcyksIEJPT1NUX1BQX1dISUxFXzE4MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTgxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTgxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODIsIHMpLCBCT09TVF9QUF9XSElMRV8xODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTgyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4MywgcyksIEJPT1NUX1BQX1dISUxFXzE4MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODUsIHMpLCBCT09TVF9QUF9XSElMRV8xODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4NiwgcyksIEJPT1NUX1BQX1dISUxFXzE4NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODgsIHMpLCBCT09TVF9QUF9XSElMRV8xODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4OSwgcyksIEJPT1NUX1BQX1dISUxFXzE4OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTkwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTkwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTEsIHMpLCBCT09TVF9QUF9XSElMRV8xOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTkxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5MiwgcyksIEJPT1NUX1BQX1dISUxFXzE5MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTkzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTkzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTQsIHMpLCBCT09TVF9QUF9XSElMRV8xOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5NSwgcyksIEJPT1NUX1BQX1dISUxFXzE5NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTcsIHMpLCBCT09TVF9QUF9XSElMRV8xOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5OCwgcyksIEJPT1NUX1BQX1dISUxFXzE5OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTkocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDAsIHMpLCBCT09TVF9QUF9XSElMRV8yMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwMSwgcyksIEJPT1NUX1BQX1dISUxFXzIwMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjAyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDIocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDMsIHMpLCBCT09TVF9QUF9XSElMRV8yMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwNCwgcyksIEJPT1NUX1BQX1dISUxFXzIwNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDUocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDYsIHMpLCBCT09TVF9QUF9XSElMRV8yMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwNywgcyksIEJPT1NUX1BQX1dISUxFXzIwNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDgocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDksIHMpLCBCT09TVF9QUF9XSElMRV8yMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxMCwgcyksIEJPT1NUX1BQX1dISUxFXzIxMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjExLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTEocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTIsIHMpLCBCT09TVF9QUF9XSElMRV8yMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxMywgcyksIEJPT1NUX1BQX1dISUxFXzIxMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTQocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTUsIHMpLCBCT09TVF9QUF9XSElMRV8yMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxNiwgcyksIEJPT1NUX1BQX1dISUxFXzIxNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTcocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTgsIHMpLCBCT09TVF9QUF9XSElMRV8yMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxOSwgcyksIEJPT1NUX1BQX1dISUxFXzIxOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjIwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjAocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjEsIHMpLCBCT09TVF9QUF9XSElMRV8yMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyMiwgcyksIEJPT1NUX1BQX1dISUxFXzIyMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjIzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjMocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjQsIHMpLCBCT09TVF9QUF9XSElMRV8yMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyNSwgcyksIEJPT1NUX1BQX1dISUxFXzIyNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjYocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjcsIHMpLCBCT09TVF9QUF9XSElMRV8yMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyOCwgcyksIEJPT1NUX1BQX1dISUxFXzIyOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjkocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzAsIHMpLCBCT09TVF9QUF9XSElMRV8yMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzMSwgcyksIEJPT1NUX1BQX1dISUxFXzIzMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjMyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzIocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzMsIHMpLCBCT09TVF9QUF9XSElMRV8yMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzNCwgcyksIEJPT1NUX1BQX1dISUxFXzIzNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzUocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzYsIHMpLCBCT09TVF9QUF9XSElMRV8yMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzNywgcyksIEJPT1NUX1BQX1dISUxFXzIzNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzgocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzksIHMpLCBCT09TVF9QUF9XSElMRV8yMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0MCwgcyksIEJPT1NUX1BQX1dISUxFXzI0MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDEocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDIsIHMpLCBCT09TVF9QUF9XSElMRV8yNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0MywgcyksIEJPT1NUX1BQX1dISUxFXzI0MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDQocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDUsIHMpLCBCT09TVF9QUF9XSElMRV8yNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0NiwgcyksIEJPT1NUX1BQX1dISUxFXzI0NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDcocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDgsIHMpLCBCT09TVF9QUF9XSElMRV8yNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0OSwgcyksIEJPT1NUX1BQX1dISUxFXzI0OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjUwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTAocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTEsIHMpLCBCT09TVF9QUF9XSElMRV8yNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1MiwgcyksIEJPT1NUX1BQX1dISUxFXzI1MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjUzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTMocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTQsIHMpLCBCT09TVF9QUF9XSElMRV8yNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1NSwgcyksIEJPT1NUX1BQX1dISUxFXzI1NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjU2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTYocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTcsIHMpLCBCT09TVF9QUF9XSElMRV8yNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjU3LCBzKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL3doaWxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzgxNzM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvd2hpbGUuaHBwCkBAIC0wLDAgKzEsNTM2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0RFVEFJTF9XSElMRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0RFVEFJTF9XSElMRV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYm9vbC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xX0MoQk9PU1RfUFBfQk9PTChwKDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMl9DKEJPT1NUX1BQX0JPT0wocCgzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzNfQyhCT09TVF9QUF9CT09MKHAoNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80X0MoQk9PU1RfUFBfQk9PTChwKDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNV9DKEJPT1NUX1BQX0JPT0wocCg2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzZfQyhCT09TVF9QUF9CT09MKHAoNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83X0MoQk9PU1RfUFBfQk9PTChwKDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOF9DKEJPT1NUX1BQX0JPT0wocCg5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzlfQyhCT09TVF9QUF9CT09MKHAoMTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwX0MoQk9PU1RfUFBfQk9PTChwKDExLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMV9DKEJPT1NUX1BQX0JPT0wocCgxMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTJfQyhCT09TVF9QUF9CT09MKHAoMTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzX0MoQk9PU1RfUFBfQk9PTChwKDE0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNF9DKEJPT1NUX1BQX0JPT0wocCgxNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTVfQyhCT09TVF9QUF9CT09MKHAoMTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2X0MoQk9PU1RfUFBfQk9PTChwKDE3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xN19DKEJPT1NUX1BQX0JPT0wocCgxOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMThfQyhCT09TVF9QUF9CT09MKHAoMTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5X0MoQk9PU1RfUFBfQk9PTChwKDIwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMF9DKEJPT1NUX1BQX0JPT0wocCgyMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjFfQyhCT09TVF9QUF9CT09MKHAoMjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyX0MoQk9PU1RfUFBfQk9PTChwKDIzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yM19DKEJPT1NUX1BQX0JPT0wocCgyNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjRfQyhCT09TVF9QUF9CT09MKHAoMjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1X0MoQk9PU1RfUFBfQk9PTChwKDI2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNl9DKEJPT1NUX1BQX0JPT0wocCgyNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjdfQyhCT09TVF9QUF9CT09MKHAoMjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI4X0MoQk9PU1RfUFBfQk9PTChwKDI5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yOV9DKEJPT1NUX1BQX0JPT0wocCgzMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzBfQyhCT09TVF9QUF9CT09MKHAoMzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMxX0MoQk9PU1RfUFBfQk9PTChwKDMyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMl9DKEJPT1NUX1BQX0JPT0wocCgzMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzNfQyhCT09TVF9QUF9CT09MKHAoMzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM0X0MoQk9PU1RfUFBfQk9PTChwKDM1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNV9DKEJPT1NUX1BQX0JPT0wocCgzNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzZfQyhCT09TVF9QUF9CT09MKHAoMzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM3X0MoQk9PU1RfUFBfQk9PTChwKDM4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zOF9DKEJPT1NUX1BQX0JPT0wocCgzOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzlfQyhCT09TVF9QUF9CT09MKHAoNDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQwX0MoQk9PU1RfUFBfQk9PTChwKDQxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80MV9DKEJPT1NUX1BQX0JPT0wocCg0MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDJfQyhCT09TVF9QUF9CT09MKHAoNDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQzX0MoQk9PU1RfUFBfQk9PTChwKDQ0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80NF9DKEJPT1NUX1BQX0JPT0wocCg0NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDVfQyhCT09TVF9QUF9CT09MKHAoNDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ2X0MoQk9PU1RfUFBfQk9PTChwKDQ3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80N19DKEJPT1NUX1BQX0JPT0wocCg0OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDhfQyhCT09TVF9QUF9CT09MKHAoNDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ5X0MoQk9PU1RfUFBfQk9PTChwKDUwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81MF9DKEJPT1NUX1BQX0JPT0wocCg1MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTFfQyhCT09TVF9QUF9CT09MKHAoNTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzUyX0MoQk9PU1RfUFBfQk9PTChwKDUzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81M19DKEJPT1NUX1BQX0JPT0wocCg1NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTRfQyhCT09TVF9QUF9CT09MKHAoNTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU1X0MoQk9PU1RfUFBfQk9PTChwKDU2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81Nl9DKEJPT1NUX1BQX0JPT0wocCg1NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTdfQyhCT09TVF9QUF9CT09MKHAoNTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU4X0MoQk9PU1RfUFBfQk9PTChwKDU5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81OV9DKEJPT1NUX1BQX0JPT0wocCg2MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjBfQyhCT09TVF9QUF9CT09MKHAoNjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYxX0MoQk9PU1RfUFBfQk9PTChwKDYyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82Ml9DKEJPT1NUX1BQX0JPT0wocCg2MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjNfQyhCT09TVF9QUF9CT09MKHAoNjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY0X0MoQk9PU1RfUFBfQk9PTChwKDY1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82NV9DKEJPT1NUX1BQX0JPT0wocCg2NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjZfQyhCT09TVF9QUF9CT09MKHAoNjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY3X0MoQk9PU1RfUFBfQk9PTChwKDY4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82OF9DKEJPT1NUX1BQX0JPT0wocCg2OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjlfQyhCT09TVF9QUF9CT09MKHAoNzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzcwX0MoQk9PU1RfUFBfQk9PTChwKDcxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83MV9DKEJPT1NUX1BQX0JPT0wocCg3MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzJfQyhCT09TVF9QUF9CT09MKHAoNzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzczKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzczX0MoQk9PU1RfUFBfQk9PTChwKDc0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83NF9DKEJPT1NUX1BQX0JPT0wocCg3NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzVfQyhCT09TVF9QUF9CT09MKHAoNzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc2X0MoQk9PU1RfUFBfQk9PTChwKDc3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83N19DKEJPT1NUX1BQX0JPT0wocCg3OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzhfQyhCT09TVF9QUF9CT09MKHAoNzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc5X0MoQk9PU1RfUFBfQk9PTChwKDgwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84MF9DKEJPT1NUX1BQX0JPT0wocCg4MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODFfQyhCT09TVF9QUF9CT09MKHAoODIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzgyX0MoQk9PU1RfUFBfQk9PTChwKDgzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84M19DKEJPT1NUX1BQX0JPT0wocCg4NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODRfQyhCT09TVF9QUF9CT09MKHAoODUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg1X0MoQk9PU1RfUFBfQk9PTChwKDg2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84Nl9DKEJPT1NUX1BQX0JPT0wocCg4NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODdfQyhCT09TVF9QUF9CT09MKHAoODgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg4X0MoQk9PU1RfUFBfQk9PTChwKDg5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84OV9DKEJPT1NUX1BQX0JPT0wocCg5MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTBfQyhCT09TVF9QUF9CT09MKHAoOTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkxX0MoQk9PU1RfUFBfQk9PTChwKDkyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85Ml9DKEJPT1NUX1BQX0JPT0wocCg5MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTNfQyhCT09TVF9QUF9CT09MKHAoOTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk0X0MoQk9PU1RfUFBfQk9PTChwKDk1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85NV9DKEJPT1NUX1BQX0JPT0wocCg5NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTZfQyhCT09TVF9QUF9CT09MKHAoOTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk3X0MoQk9PU1RfUFBfQk9PTChwKDk4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85OF9DKEJPT1NUX1BQX0JPT0wocCg5OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTlfQyhCT09TVF9QUF9CT09MKHAoMTAwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTAwX0MoQk9PU1RfUFBfQk9PTChwKDEwMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMV9DKEJPT1NUX1BQX0JPT0wocCgxMDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDJfQyhCT09TVF9QUF9CT09MKHAoMTAzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTAzX0MoQk9PU1RfUFBfQk9PTChwKDEwNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNF9DKEJPT1NUX1BQX0JPT0wocCgxMDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDVfQyhCT09TVF9QUF9CT09MKHAoMTA2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA2X0MoQk9PU1RfUFBfQk9PTChwKDEwNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwN19DKEJPT1NUX1BQX0JPT0wocCgxMDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDhfQyhCT09TVF9QUF9CT09MKHAoMTA5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA5X0MoQk9PU1RfUFBfQk9PTChwKDExMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMF9DKEJPT1NUX1BQX0JPT0wocCgxMTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTFfQyhCT09TVF9QUF9CT09MKHAoMTEyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTEyX0MoQk9PU1RfUFBfQk9PTChwKDExMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExM19DKEJPT1NUX1BQX0JPT0wocCgxMTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTRfQyhCT09TVF9QUF9CT09MKHAoMTE1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE1X0MoQk9PU1RfUFBfQk9PTChwKDExNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNl9DKEJPT1NUX1BQX0JPT0wocCgxMTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTdfQyhCT09TVF9QUF9CT09MKHAoMTE4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE4X0MoQk9PU1RfUFBfQk9PTChwKDExOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExOV9DKEJPT1NUX1BQX0JPT0wocCgxMjAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjBfQyhCT09TVF9QUF9CT09MKHAoMTIxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTIxX0MoQk9PU1RfUFBfQk9PTChwKDEyMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMl9DKEJPT1NUX1BQX0JPT0wocCgxMjMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjNfQyhCT09TVF9QUF9CT09MKHAoMTI0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI0X0MoQk9PU1RfUFBfQk9PTChwKDEyNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNV9DKEJPT1NUX1BQX0JPT0wocCgxMjYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjZfQyhCT09TVF9QUF9CT09MKHAoMTI3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI3X0MoQk9PU1RfUFBfQk9PTChwKDEyOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyOF9DKEJPT1NUX1BQX0JPT0wocCgxMjksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjlfQyhCT09TVF9QUF9CT09MKHAoMTMwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTMwX0MoQk9PU1RfUFBfQk9PTChwKDEzMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMV9DKEJPT1NUX1BQX0JPT0wocCgxMzIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzJfQyhCT09TVF9QUF9CT09MKHAoMTMzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTMzX0MoQk9PU1RfUFBfQk9PTChwKDEzNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNF9DKEJPT1NUX1BQX0JPT0wocCgxMzUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzVfQyhCT09TVF9QUF9CT09MKHAoMTM2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM2X0MoQk9PU1RfUFBfQk9PTChwKDEzNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzN19DKEJPT1NUX1BQX0JPT0wocCgxMzgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzhfQyhCT09TVF9QUF9CT09MKHAoMTM5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM5X0MoQk9PU1RfUFBfQk9PTChwKDE0MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0MF9DKEJPT1NUX1BQX0JPT0wocCgxNDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDFfQyhCT09TVF9QUF9CT09MKHAoMTQyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQyX0MoQk9PU1RfUFBfQk9PTChwKDE0MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0M19DKEJPT1NUX1BQX0JPT0wocCgxNDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDRfQyhCT09TVF9QUF9CT09MKHAoMTQ1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ1X0MoQk9PU1RfUFBfQk9PTChwKDE0NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0Nl9DKEJPT1NUX1BQX0JPT0wocCgxNDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDdfQyhCT09TVF9QUF9CT09MKHAoMTQ4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ4X0MoQk9PU1RfUFBfQk9PTChwKDE0OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0OV9DKEJPT1NUX1BQX0JPT0wocCgxNTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTBfQyhCT09TVF9QUF9CT09MKHAoMTUxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTUxX0MoQk9PU1RfUFBfQk9PTChwKDE1MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1Ml9DKEJPT1NUX1BQX0JPT0wocCgxNTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTNfQyhCT09TVF9QUF9CT09MKHAoMTU0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU0X0MoQk9PU1RfUFBfQk9PTChwKDE1NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1NV9DKEJPT1NUX1BQX0JPT0wocCgxNTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTZfQyhCT09TVF9QUF9CT09MKHAoMTU3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU3X0MoQk9PU1RfUFBfQk9PTChwKDE1OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1OF9DKEJPT1NUX1BQX0JPT0wocCgxNTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTlfQyhCT09TVF9QUF9CT09MKHAoMTYwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTYwX0MoQk9PU1RfUFBfQk9PTChwKDE2MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2MV9DKEJPT1NUX1BQX0JPT0wocCgxNjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjJfQyhCT09TVF9QUF9CT09MKHAoMTYzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTYzX0MoQk9PU1RfUFBfQk9PTChwKDE2NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2NF9DKEJPT1NUX1BQX0JPT0wocCgxNjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjVfQyhCT09TVF9QUF9CT09MKHAoMTY2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY2X0MoQk9PU1RfUFBfQk9PTChwKDE2NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2N19DKEJPT1NUX1BQX0JPT0wocCgxNjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjhfQyhCT09TVF9QUF9CT09MKHAoMTY5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY5X0MoQk9PU1RfUFBfQk9PTChwKDE3MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3MF9DKEJPT1NUX1BQX0JPT0wocCgxNzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzFfQyhCT09TVF9QUF9CT09MKHAoMTcyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTcyX0MoQk9PU1RfUFBfQk9PTChwKDE3MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTczKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3M19DKEJPT1NUX1BQX0JPT0wocCgxNzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzRfQyhCT09TVF9QUF9CT09MKHAoMTc1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc1X0MoQk9PU1RfUFBfQk9PTChwKDE3NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3Nl9DKEJPT1NUX1BQX0JPT0wocCgxNzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzdfQyhCT09TVF9QUF9CT09MKHAoMTc4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc4X0MoQk9PU1RfUFBfQk9PTChwKDE3OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3OV9DKEJPT1NUX1BQX0JPT0wocCgxODAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODBfQyhCT09TVF9QUF9CT09MKHAoMTgxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTgxX0MoQk9PU1RfUFBfQk9PTChwKDE4MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4Ml9DKEJPT1NUX1BQX0JPT0wocCgxODMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODNfQyhCT09TVF9QUF9CT09MKHAoMTg0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg0X0MoQk9PU1RfUFBfQk9PTChwKDE4NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4NV9DKEJPT1NUX1BQX0JPT0wocCgxODYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODZfQyhCT09TVF9QUF9CT09MKHAoMTg3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg3X0MoQk9PU1RfUFBfQk9PTChwKDE4OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4OF9DKEJPT1NUX1BQX0JPT0wocCgxODksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODlfQyhCT09TVF9QUF9CT09MKHAoMTkwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTkwX0MoQk9PU1RfUFBfQk9PTChwKDE5MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5MV9DKEJPT1NUX1BQX0JPT0wocCgxOTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTJfQyhCT09TVF9QUF9CT09MKHAoMTkzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTkzX0MoQk9PU1RfUFBfQk9PTChwKDE5NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5NF9DKEJPT1NUX1BQX0JPT0wocCgxOTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTVfQyhCT09TVF9QUF9CT09MKHAoMTk2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk2X0MoQk9PU1RfUFBfQk9PTChwKDE5NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5N19DKEJPT1NUX1BQX0JPT0wocCgxOTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOThfQyhCT09TVF9QUF9CT09MKHAoMTk5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk5X0MoQk9PU1RfUFBfQk9PTChwKDIwMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMF9DKEJPT1NUX1BQX0JPT0wocCgyMDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDFfQyhCT09TVF9QUF9CT09MKHAoMjAyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjAyX0MoQk9PU1RfUFBfQk9PTChwKDIwMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwM19DKEJPT1NUX1BQX0JPT0wocCgyMDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDRfQyhCT09TVF9QUF9CT09MKHAoMjA1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA1X0MoQk9PU1RfUFBfQk9PTChwKDIwNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNl9DKEJPT1NUX1BQX0JPT0wocCgyMDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDdfQyhCT09TVF9QUF9CT09MKHAoMjA4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA4X0MoQk9PU1RfUFBfQk9PTChwKDIwOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwOV9DKEJPT1NUX1BQX0JPT0wocCgyMTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTBfQyhCT09TVF9QUF9CT09MKHAoMjExLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjExX0MoQk9PU1RfUFBfQk9PTChwKDIxMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMl9DKEJPT1NUX1BQX0JPT0wocCgyMTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTNfQyhCT09TVF9QUF9CT09MKHAoMjE0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE0X0MoQk9PU1RfUFBfQk9PTChwKDIxNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNV9DKEJPT1NUX1BQX0JPT0wocCgyMTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTZfQyhCT09TVF9QUF9CT09MKHAoMjE3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE3X0MoQk9PU1RfUFBfQk9PTChwKDIxOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxOF9DKEJPT1NUX1BQX0JPT0wocCgyMTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTlfQyhCT09TVF9QUF9CT09MKHAoMjIwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjIwX0MoQk9PU1RfUFBfQk9PTChwKDIyMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMV9DKEJPT1NUX1BQX0JPT0wocCgyMjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjJfQyhCT09TVF9QUF9CT09MKHAoMjIzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjIzX0MoQk9PU1RfUFBfQk9PTChwKDIyNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNF9DKEJPT1NUX1BQX0JPT0wocCgyMjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjVfQyhCT09TVF9QUF9CT09MKHAoMjI2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI2X0MoQk9PU1RfUFBfQk9PTChwKDIyNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyN19DKEJPT1NUX1BQX0JPT0wocCgyMjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjhfQyhCT09TVF9QUF9CT09MKHAoMjI5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI5X0MoQk9PU1RfUFBfQk9PTChwKDIzMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMF9DKEJPT1NUX1BQX0JPT0wocCgyMzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzFfQyhCT09TVF9QUF9CT09MKHAoMjMyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjMyX0MoQk9PU1RfUFBfQk9PTChwKDIzMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzM19DKEJPT1NUX1BQX0JPT0wocCgyMzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzRfQyhCT09TVF9QUF9CT09MKHAoMjM1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM1X0MoQk9PU1RfUFBfQk9PTChwKDIzNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNl9DKEJPT1NUX1BQX0JPT0wocCgyMzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzdfQyhCT09TVF9QUF9CT09MKHAoMjM4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM4X0MoQk9PU1RfUFBfQk9PTChwKDIzOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzOV9DKEJPT1NUX1BQX0JPT0wocCgyNDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDBfQyhCT09TVF9QUF9CT09MKHAoMjQxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQxX0MoQk9PU1RfUFBfQk9PTChwKDI0MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0Ml9DKEJPT1NUX1BQX0JPT0wocCgyNDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDNfQyhCT09TVF9QUF9CT09MKHAoMjQ0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ0X0MoQk9PU1RfUFBfQk9PTChwKDI0NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0NV9DKEJPT1NUX1BQX0JPT0wocCgyNDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDZfQyhCT09TVF9QUF9CT09MKHAoMjQ3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ3X0MoQk9PU1RfUFBfQk9PTChwKDI0OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0OF9DKEJPT1NUX1BQX0JPT0wocCgyNDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDlfQyhCT09TVF9QUF9CT09MKHAoMjUwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjUwX0MoQk9PU1RfUFBfQk9PTChwKDI1MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1MV9DKEJPT1NUX1BQX0JPT0wocCgyNTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTJfQyhCT09TVF9QUF9CT09MKHAoMjUzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjUzX0MoQk9PU1RfUFBfQk9PTChwKDI1NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1NF9DKEJPT1NUX1BQX0JPT0wocCgyNTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTVfQyhCT09TVF9QUF9CT09MKHAoMjU2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjU2X0MoQk9PU1RfUFBfQk9PTChwKDI1NywgcykpLCBwLCBvLCBzKQorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTAyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTExX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTYyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTcxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTkyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NywgcykpCisjCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2V4cHJfaWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjRlZjU5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lmLmhwcApAQCAtMCwwICsxLDMwIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0VYUFJfSUZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9FWFBSX0lGX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2V4cHJfaWlmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYm9vbC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0VYUFJfSUYgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9FWFBSX0lGKGNvbmQsIGV4cHIpIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0JPT0woY29uZCksIGV4cHIpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VYUFJfSUYoY29uZCwgZXhwcikgQk9PU1RfUFBfRVhQUl9JRl9JKGNvbmQsIGV4cHIpCisjICAgIGRlZmluZSBCT09TVF9QUF9FWFBSX0lGX0koY29uZCwgZXhwcikgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfQk9PTChjb25kKSwgZXhwcikKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNkNGMxNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwCkBAIC0wLDAgKzEsMzEgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9FWFBSX0lJRl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0VYUFJfSUlGX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0VYUFJfSUlGICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VYUFJfSUlGKGJpdCwgZXhwcikgQk9PU1RfUFBfRVhQUl9JSUZfSShiaXQsIGV4cHIpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VYUFJfSUlGKGJpdCwgZXhwcikgQk9PU1RfUFBfRVhQUl9JSUZfT08oKGJpdCwgZXhwcikpCisjICAgIGRlZmluZSBCT09TVF9QUF9FWFBSX0lJRl9PTyhwYXIpIEJPT1NUX1BQX0VYUFJfSUlGX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FWFBSX0lJRl9JKGJpdCwgZXhwcikgQk9PU1RfUFBfRVhQUl9JSUZfICMjIGJpdChleHByKQorIworIyBkZWZpbmUgQk9PU1RfUFBfRVhQUl9JSUZfMChleHByKQorIyBkZWZpbmUgQk9PU1RfUFBfRVhQUl9JSUZfMShleHByKSBleHByCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZWE5NmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcApAQCAtMCwwICsxLDMwIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0lGX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfSUZfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYm9vbC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0lGICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUYoY29uZCwgdCwgZikgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0JPT0woY29uZCksIHQsIGYpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lGKGNvbmQsIHQsIGYpIEJPT1NUX1BQX0lGX0koY29uZCwgdCwgZikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lGX0koY29uZCwgdCwgZikgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0JPT0woY29uZCksIHQsIGYpCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVlMzNjZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcApAQCAtMCwwICsxLDM0IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfSUlGX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfSUlGX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lJRihiaXQsIHQsIGYpIEJPT1NUX1BQX0lJRl9JKGJpdCwgdCwgZikKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUlGKGJpdCwgdCwgZikgQk9PU1RfUFBfSUlGX09PKChiaXQsIHQsIGYpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUlGX09PKHBhcikgQk9PU1RfUFBfSUlGX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lJRl9JKGJpdCwgdCwgZikgQk9PU1RfUFBfSUlGXyAjIyBiaXQodCwgZikKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUlGX0koYml0LCB0LCBmKSBCT09TVF9QUF9JSUZfSUkoQk9PU1RfUFBfSUlGXyAjIyBiaXQodCwgZikpCisjICAgIGRlZmluZSBCT09TVF9QUF9JSUZfSUkoaWQpIGlkCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9JSUZfMCh0LCBmKSBmCisjIGRlZmluZSBCT09TVF9QUF9JSUZfMSh0LCBmKSB0CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwZGQzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcApAQCAtMCwwICsxLDMxMiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9XSElMRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX1dISUxFX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVidWcvZXJyb3IuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2F1dG9fcmVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9sZWZ0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2JpdGFuZC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1dISUxFICovCisjCisjIGlmIDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1dISUxFKHByZWQsIG9wLCBzdGF0ZSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFIEJPT1NUX1BQX0NBVChCT09TVF9QUF9XSElMRV8sIEJPT1NUX1BQX0FVVE9fUkVDKEJPT1NUX1BQX1dISUxFX1AsIDI1NikpCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9XSElMRV9QKG4pIEJPT1NUX1BQX0JJVEFORChCT09TVF9QUF9DQVQoQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfLCBCT09TVF9QUF9XSElMRV8gIyMgbihCT09TVF9QUF9XSElMRV9GLCBCT09TVF9QUF9OSUwsIEJPT1NUX1BQX05JTCkpLCBCT09TVF9QUF9CSVRBTkQoQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLXywgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfICMjIG4oQk9PU1RfUFBfTklMLCBCT09TVF9QUF9OSUwsIEJPT1NUX1BQX05JTCkpLCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLXywgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXyAjIyBuKEJPT1NUX1BQX05JTCwgQk9PU1RfUFBfTklMLCBCT09TVF9QUF9OSUwpKSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1dISUxFX1AobikgQk9PU1RfUFBfQklUQU5EKEJPT1NUX1BQX0NBVChCT09TVF9QUF9XSElMRV9DSEVDS18sIEJPT1NUX1BQX1dISUxFXyAjIyBuKEJPT1NUX1BQX1dISUxFX0YsIEJPT1NUX1BQX05JTCwgQk9PU1RfUFBfTklMKSksIEJPT1NUX1BQX0NBVChCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS18sIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXyAjIyBuKEJPT1NUX1BQX05JTCwgQk9PU1RfUFBfTklMLCBCT09TVF9QUF9OSUwpKSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0YoZCwgXykgMAorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZWRnL3doaWxlLmhwcD4KKyMgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL21zdmMvd2hpbGUuaHBwPgorIyBlbGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0RNQygpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9kbWMvd2hpbGUuaHBwPgorIyBlbHNlCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC93aGlsZS5ocHA+CisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTcocCwgbywgcykgQk9PU1RfUFBfRVJST1IoMHgwMDAxKQorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfTklMIDEKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8zKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV82KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV85KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzMwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzMxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzMyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzMzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzM0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzM1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzM2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzM3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzM4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzM5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQ0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQ1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQ2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQ3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQ4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzQ5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzUwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzUxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzUyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzUzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzU0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzU1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzU2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzU3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzU4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzU5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzYwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzYxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzYyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzYzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzY0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzY1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzY2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzY3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzY4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzY5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzcwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzcxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzcyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzczKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzc0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzc1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzc2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzc3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzc4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzc5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzgwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzgxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzgyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzgzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzg0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzg1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzg2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzg3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzg4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzg5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzkwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzkxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzkyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzkzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzk0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzk1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzk2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzk3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzk4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzk5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwMChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMDEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTAyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwMyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMDQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTA1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwNihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMDcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTA4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwOShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTExKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExMihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTE0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExNShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTE3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExOChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTIwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyMShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTIzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyNChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTI2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyNyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTI5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzMChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMzEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTMyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzMyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMzQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTM1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzNihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMzcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTM4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzOShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0MihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQ0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0NShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQ3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0OChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTUwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1MShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTUzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1NChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTU2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1NyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTU5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2MChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNjEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTYyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2MyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNjQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTY1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2NihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNjcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTY4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2OShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTcxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3MihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTc0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3NShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTc3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3OChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTgwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4MShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTgzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4NChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTg2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4NyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTg5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5MChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xOTEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTkyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5MyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xOTQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTk1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5NihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xOTcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTk4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5OShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjAxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwMihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjA0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwNShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjA3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwOChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjEwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxMShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjEzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxNChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjE2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxNyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjE5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyMChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMjEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjIyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyMyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMjQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjI1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyNihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMjcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjI4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyOShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjMxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzMihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjM0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzNShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjM3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzOChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0MShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0NChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQ2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0NyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQ5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI1MChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNTEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjUyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI1MyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNTQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjU1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI1NihwLCBvLCBzKSAwCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFkYjU3MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcApAQCAtMCwwICsxLDMzIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0RFQlVHX0VSUk9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0RFQlVHX0VSUk9SX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9FUlJPUiAqLworIworIyBpZiBCT09TVF9QUF9DT05GSUdfRVJST1JTCisjICAgIGRlZmluZSBCT09TVF9QUF9FUlJPUihjb2RlKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfRVJST1JfLCBjb2RlKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDAwIEJPT1NUX1BQX0VSUk9SKDB4MDAwMCwgQk9PU1RfUFBfSU5ERVhfT1VUX09GX0JPVU5EUykKKyMgZGVmaW5lIEJPT1NUX1BQX0VSUk9SXzB4MDAwMSBCT09TVF9QUF9FUlJPUigweDAwMDEsIEJPT1NUX1BQX1dISUxFX09WRVJGTE9XKQorIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDAyIEJPT1NUX1BQX0VSUk9SKDB4MDAwMiwgQk9PU1RfUFBfRk9SX09WRVJGTE9XKQorIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDAzIEJPT1NUX1BQX0VSUk9SKDB4MDAwMywgQk9PU1RfUFBfUkVQRUFUX09WRVJGTE9XKQorIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDA0IEJPT1NUX1BQX0VSUk9SKDB4MDAwNCwgQk9PU1RfUFBfTElTVF9GT0xEX09WRVJGTE9XKQorIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDA1IEJPT1NUX1BQX0VSUk9SKDB4MDAwNSwgQk9PU1RfUFBfU0VRX0ZPTERfT1ZFUkZMT1cpCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDYgQk9PU1RfUFBfRVJST1IoMHgwMDA2LCBCT09TVF9QUF9BUklUSE1FVElDX09WRVJGTE9XKQorIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDA3IEJPT1NUX1BQX0VSUk9SKDB4MDAwNywgQk9PU1RfUFBfRElWSVNJT05fQllfWkVSTykKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Njc4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWMuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfREVDX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0RFQ19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNjdhMTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwCkBAIC0wLDAgKzEsMjkzIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0RNQygpCisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2RtYy9hdXRvX3JlYy5ocHA+CisjIGVsc2UKKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9ERVRBSUxfQVVUT19SRUNfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0FVVE9fUkVDX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIworIyAvKiBCT09TVF9QUF9BVVRPX1JFQyAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfQVVUT19SRUMocHJlZCwgbikgQk9PU1RfUFBfTk9ERV9FTlRSWV8gIyMgbihwcmVkKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8yNTYocCkgQk9PU1RfUFBfTk9ERV8xMjgocCkocCkocCkocCkocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfMTI4KHApIEJPT1NUX1BQX05PREVfNjQocCkocCkocCkocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfNjQocCkgQk9PU1RfUFBfTk9ERV8zMihwKShwKShwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8zMihwKSBCT09TVF9QUF9OT0RFXzE2KHApKHApKHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzE2KHApIEJPT1NUX1BQX05PREVfOChwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV84KHApIEJPT1NUX1BQX05PREVfNChwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV80KHApIEJPT1NUX1BQX05PREVfMihwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8yKHApIEJPT1NUX1BQX05PREVfMShwKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjgocCkgQk9PU1RfUFBfSUlGKHAoMTI4KSwgQk9PU1RfUFBfTk9ERV82NCwgQk9PU1RfUFBfTk9ERV8xOTIpCisjICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzY0KHApIEJPT1NUX1BQX0lJRihwKDY0KSwgQk9PU1RfUFBfTk9ERV8zMiwgQk9PU1RfUFBfTk9ERV85NikKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMyKHApIEJPT1NUX1BQX0lJRihwKDMyKSwgQk9PU1RfUFBfTk9ERV8xNiwgQk9PU1RfUFBfTk9ERV80OCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNihwKSBCT09TVF9QUF9JSUYocCgxNiksIEJPT1NUX1BQX05PREVfOCwgQk9PU1RfUFBfTk9ERV8yNCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOChwKSBCT09TVF9QUF9JSUYocCg4KSwgQk9PU1RfUFBfTk9ERV80LCBCT09TVF9QUF9OT0RFXzEyKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNChwKSBCT09TVF9QUF9JSUYocCg0KSwgQk9PU1RfUFBfTk9ERV8yLCBCT09TVF9QUF9OT0RFXzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMihwKSBCT09TVF9QUF9JSUYocCgyKSwgQk9PU1RfUFBfTk9ERV8xLCBCT09TVF9QUF9OT0RFXzMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEocCkgQk9PU1RfUFBfSUlGKHAoMSksIDEsIDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMocCkgQk9PU1RfUFBfSUlGKHAoMyksIDMsIDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNihwKSBCT09TVF9QUF9JSUYocCg2KSwgQk9PU1RfUFBfTk9ERV81LCBCT09TVF9QUF9OT0RFXzcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzUocCkgQk9PU1RfUFBfSUlGKHAoNSksIDUsIDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzcocCkgQk9PU1RfUFBfSUlGKHAoNyksIDcsIDgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMihwKSBCT09TVF9QUF9JSUYocCgxMiksIEJPT1NUX1BQX05PREVfMTAsIEJPT1NUX1BQX05PREVfMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAocCkgQk9PU1RfUFBfSUlGKHAoMTApLCBCT09TVF9QUF9OT0RFXzksIEJPT1NUX1BQX05PREVfMTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzkocCkgQk9PU1RfUFBfSUlGKHAoOSksIDksIDEwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMShwKSBCT09TVF9QUF9JSUYocCgxMSksIDExLCAxMikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNChwKSBCT09TVF9QUF9JSUYocCgxNCksIEJPT1NUX1BQX05PREVfMTMsIEJPT1NUX1BQX05PREVfMTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzKHApIEJPT1NUX1BQX0lJRihwKDEzKSwgMTMsIDE0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNShwKSBCT09TVF9QUF9JSUYocCgxNSksIDE1LCAxNikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQocCkgQk9PU1RfUFBfSUlGKHAoMjQpLCBCT09TVF9QUF9OT0RFXzIwLCBCT09TVF9QUF9OT0RFXzI4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjAocCkgQk9PU1RfUFBfSUlGKHAoMjApLCBCT09TVF9QUF9OT0RFXzE4LCBCT09TVF9QUF9OT0RFXzIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4KHApIEJPT1NUX1BQX0lJRihwKDE4KSwgQk9PU1RfUFBfTk9ERV8xNywgQk9PU1RfUFBfTk9ERV8xOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTcocCkgQk9PU1RfUFBfSUlGKHAoMTcpLCAxNywgMTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5KHApIEJPT1NUX1BQX0lJRihwKDE5KSwgMTksIDIwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyKHApIEJPT1NUX1BQX0lJRihwKDIyKSwgQk9PU1RfUFBfTk9ERV8yMSwgQk9PU1RfUFBfTk9ERV8yMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEocCkgQk9PU1RfUFBfSUlGKHAoMjEpLCAyMSwgMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzKHApIEJPT1NUX1BQX0lJRihwKDIzKSwgMjMsIDI0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjgocCkgQk9PU1RfUFBfSUlGKHAoMjgpLCBCT09TVF9QUF9OT0RFXzI2LCBCT09TVF9QUF9OT0RFXzMwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI2KHApIEJPT1NUX1BQX0lJRihwKDI2KSwgQk9PU1RfUFBfTk9ERV8yNSwgQk9PU1RfUFBfTk9ERV8yNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjUocCkgQk9PU1RfUFBfSUlGKHAoMjUpLCAyNSwgMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI3KHApIEJPT1NUX1BQX0lJRihwKDI3KSwgMjcsIDI4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMwKHApIEJPT1NUX1BQX0lJRihwKDMwKSwgQk9PU1RfUFBfTk9ERV8yOSwgQk9PU1RfUFBfTk9ERV8zMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjkocCkgQk9PU1RfUFBfSUlGKHAoMjkpLCAyOSwgMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMxKHApIEJPT1NUX1BQX0lJRihwKDMxKSwgMzEsIDMyKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ4KHApIEJPT1NUX1BQX0lJRihwKDQ4KSwgQk9PU1RfUFBfTk9ERV80MCwgQk9PU1RfUFBfTk9ERV81NikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDAocCkgQk9PU1RfUFBfSUlGKHAoNDApLCBCT09TVF9QUF9OT0RFXzM2LCBCT09TVF9QUF9OT0RFXzQ0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzYocCkgQk9PU1RfUFBfSUlGKHAoMzYpLCBCT09TVF9QUF9OT0RFXzM0LCBCT09TVF9QUF9OT0RFXzM4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM0KHApIEJPT1NUX1BQX0lJRihwKDM0KSwgQk9PU1RfUFBfTk9ERV8zMywgQk9PU1RfUFBfTk9ERV8zNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzMocCkgQk9PU1RfUFBfSUlGKHAoMzMpLCAzMywgMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM1KHApIEJPT1NUX1BQX0lJRihwKDM1KSwgMzUsIDM2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM4KHApIEJPT1NUX1BQX0lJRihwKDM4KSwgQk9PU1RfUFBfTk9ERV8zNywgQk9PU1RfUFBfTk9ERV8zOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzcocCkgQk9PU1RfUFBfSUlGKHAoMzcpLCAzNywgMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM5KHApIEJPT1NUX1BQX0lJRihwKDM5KSwgMzksIDQwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDQocCkgQk9PU1RfUFBfSUlGKHAoNDQpLCBCT09TVF9QUF9OT0RFXzQyLCBCT09TVF9QUF9OT0RFXzQ2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQyKHApIEJPT1NUX1BQX0lJRihwKDQyKSwgQk9PU1RfUFBfTk9ERV80MSwgQk9PU1RfUFBfTk9ERV80MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDEocCkgQk9PU1RfUFBfSUlGKHAoNDEpLCA0MSwgNDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQzKHApIEJPT1NUX1BQX0lJRihwKDQzKSwgNDMsIDQ0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ2KHApIEJPT1NUX1BQX0lJRihwKDQ2KSwgQk9PU1RfUFBfTk9ERV80NSwgQk9PU1RfUFBfTk9ERV80NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDUocCkgQk9PU1RfUFBfSUlGKHAoNDUpLCA0NSwgNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ3KHApIEJPT1NUX1BQX0lJRihwKDQ3KSwgNDcsIDQ4KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81NihwKSBCT09TVF9QUF9JSUYocCg1NiksIEJPT1NUX1BQX05PREVfNTIsIEJPT1NUX1BQX05PREVfNjApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81MihwKSBCT09TVF9QUF9JSUYocCg1MiksIEJPT1NUX1BQX05PREVfNTAsIEJPT1NUX1BQX05PREVfNTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTAocCkgQk9PU1RfUFBfSUlGKHAoNTApLCBCT09TVF9QUF9OT0RFXzQ5LCBCT09TVF9QUF9OT0RFXzUxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80OShwKSBCT09TVF9QUF9JSUYocCg0OSksIDQ5LCA1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTEocCkgQk9PU1RfUFBfSUlGKHAoNTEpLCA1MSwgNTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTQocCkgQk9PU1RfUFBfSUlGKHAoNTQpLCBCT09TVF9QUF9OT0RFXzUzLCBCT09TVF9QUF9OT0RFXzU1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81MyhwKSBCT09TVF9QUF9JSUYocCg1MyksIDUzLCA1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTUocCkgQk9PU1RfUFBfSUlGKHAoNTUpLCA1NSwgNTYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MChwKSBCT09TVF9QUF9JSUYocCg2MCksIEJPT1NUX1BQX05PREVfNTgsIEJPT1NUX1BQX05PREVfNjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTgocCkgQk9PU1RfUFBfSUlGKHAoNTgpLCBCT09TVF9QUF9OT0RFXzU3LCBCT09TVF9QUF9OT0RFXzU5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81NyhwKSBCT09TVF9QUF9JSUYocCg1NyksIDU3LCA1OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTkocCkgQk9PU1RfUFBfSUlGKHAoNTkpLCA1OSwgNjApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjIocCkgQk9PU1RfUFBfSUlGKHAoNjIpLCBCT09TVF9QUF9OT0RFXzYxLCBCT09TVF9QUF9OT0RFXzYzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MShwKSBCT09TVF9QUF9JSUYocCg2MSksIDYxLCA2MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjMocCkgQk9PU1RfUFBfSUlGKHAoNjMpLCA2MywgNjQpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85NihwKSBCT09TVF9QUF9JSUYocCg5NiksIEJPT1NUX1BQX05PREVfODAsIEJPT1NUX1BQX05PREVfMTEyKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzgwKHApIEJPT1NUX1BQX0lJRihwKDgwKSwgQk9PU1RfUFBfTk9ERV83MiwgQk9PU1RfUFBfTk9ERV84OCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzIocCkgQk9PU1RfUFBfSUlGKHAoNzIpLCBCT09TVF9QUF9OT0RFXzY4LCBCT09TVF9QUF9OT0RFXzc2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjgocCkgQk9PU1RfUFBfSUlGKHAoNjgpLCBCT09TVF9QUF9OT0RFXzY2LCBCT09TVF9QUF9OT0RFXzcwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzY2KHApIEJPT1NUX1BQX0lJRihwKDY2KSwgQk9PU1RfUFBfTk9ERV82NSwgQk9PU1RfUFBfTk9ERV82NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjUocCkgQk9PU1RfUFBfSUlGKHAoNjUpLCA2NSwgNjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzY3KHApIEJPT1NUX1BQX0lJRihwKDY3KSwgNjcsIDY4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzcwKHApIEJPT1NUX1BQX0lJRihwKDcwKSwgQk9PU1RfUFBfTk9ERV82OSwgQk9PU1RfUFBfTk9ERV83MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjkocCkgQk9PU1RfUFBfSUlGKHAoNjkpLCA2OSwgNzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzcxKHApIEJPT1NUX1BQX0lJRihwKDcxKSwgNzEsIDcyKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzYocCkgQk9PU1RfUFBfSUlGKHAoNzYpLCBCT09TVF9QUF9OT0RFXzc0LCBCT09TVF9QUF9OT0RFXzc4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc0KHApIEJPT1NUX1BQX0lJRihwKDc0KSwgQk9PU1RfUFBfTk9ERV83MywgQk9PU1RfUFBfTk9ERV83NSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzMocCkgQk9PU1RfUFBfSUlGKHAoNzMpLCA3MywgNzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc1KHApIEJPT1NUX1BQX0lJRihwKDc1KSwgNzUsIDc2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc4KHApIEJPT1NUX1BQX0lJRihwKDc4KSwgQk9PU1RfUFBfTk9ERV83NywgQk9PU1RfUFBfTk9ERV83OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzcocCkgQk9PU1RfUFBfSUlGKHAoNzcpLCA3NywgNzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc5KHApIEJPT1NUX1BQX0lJRihwKDc5KSwgNzksIDgwKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84OChwKSBCT09TVF9QUF9JSUYocCg4OCksIEJPT1NUX1BQX05PREVfODQsIEJPT1NUX1BQX05PREVfOTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84NChwKSBCT09TVF9QUF9JSUYocCg4NCksIEJPT1NUX1BQX05PREVfODIsIEJPT1NUX1BQX05PREVfODYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODIocCkgQk9PU1RfUFBfSUlGKHAoODIpLCBCT09TVF9QUF9OT0RFXzgxLCBCT09TVF9QUF9OT0RFXzgzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84MShwKSBCT09TVF9QUF9JSUYocCg4MSksIDgxLCA4MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODMocCkgQk9PU1RfUFBfSUlGKHAoODMpLCA4MywgODQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODYocCkgQk9PU1RfUFBfSUlGKHAoODYpLCBCT09TVF9QUF9OT0RFXzg1LCBCT09TVF9QUF9OT0RFXzg3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84NShwKSBCT09TVF9QUF9JSUYocCg4NSksIDg1LCA4NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODcocCkgQk9PU1RfUFBfSUlGKHAoODcpLCA4NywgODgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85MihwKSBCT09TVF9QUF9JSUYocCg5MiksIEJPT1NUX1BQX05PREVfOTAsIEJPT1NUX1BQX05PREVfOTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTAocCkgQk9PU1RfUFBfSUlGKHAoOTApLCBCT09TVF9QUF9OT0RFXzg5LCBCT09TVF9QUF9OT0RFXzkxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84OShwKSBCT09TVF9QUF9JSUYocCg4OSksIDg5LCA5MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTEocCkgQk9PU1RfUFBfSUlGKHAoOTEpLCA5MSwgOTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTQocCkgQk9PU1RfUFBfSUlGKHAoOTQpLCBCT09TVF9QUF9OT0RFXzkzLCBCT09TVF9QUF9OT0RFXzk1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85MyhwKSBCT09TVF9QUF9JSUYocCg5MyksIDkzLCA5NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTUocCkgQk9PU1RfUFBfSUlGKHAoOTUpLCA5NSwgOTYpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTEyKHApIEJPT1NUX1BQX0lJRihwKDExMiksIEJPT1NUX1BQX05PREVfMTA0LCBCT09TVF9QUF9OT0RFXzEyMCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA0KHApIEJPT1NUX1BQX0lJRihwKDEwNCksIEJPT1NUX1BQX05PREVfMTAwLCBCT09TVF9QUF9OT0RFXzEwOCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwMChwKSBCT09TVF9QUF9JSUYocCgxMDApLCBCT09TVF9QUF9OT0RFXzk4LCBCT09TVF9QUF9OT0RFXzEwMikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85OChwKSBCT09TVF9QUF9JSUYocCg5OCksIEJPT1NUX1BQX05PREVfOTcsIEJPT1NUX1BQX05PREVfOTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk3KHApIEJPT1NUX1BQX0lJRihwKDk3KSwgOTcsIDk4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85OShwKSBCT09TVF9QUF9JSUYocCg5OSksIDk5LCAxMDApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAyKHApIEJPT1NUX1BQX0lJRihwKDEwMiksIEJPT1NUX1BQX05PREVfMTAxLCBCT09TVF9QUF9OT0RFXzEwMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAxKHApIEJPT1NUX1BQX0lJRihwKDEwMSksIDEwMSwgMTAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDMocCkgQk9PU1RfUFBfSUlGKHAoMTAzKSwgMTAzLCAxMDQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDgocCkgQk9PU1RfUFBfSUlGKHAoMTA4KSwgQk9PU1RfUFBfTk9ERV8xMDYsIEJPT1NUX1BQX05PREVfMTEwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwNihwKSBCT09TVF9QUF9JSUYocCgxMDYpLCBCT09TVF9QUF9OT0RFXzEwNSwgQk9PU1RfUFBfTk9ERV8xMDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwNShwKSBCT09TVF9QUF9JSUYocCgxMDUpLCAxMDUsIDEwNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA3KHApIEJPT1NUX1BQX0lJRihwKDEwNyksIDEwNywgMTA4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExMChwKSBCT09TVF9QUF9JSUYocCgxMTApLCBCT09TVF9QUF9OT0RFXzEwOSwgQk9PU1RfUFBfTk9ERV8xMTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwOShwKSBCT09TVF9QUF9JSUYocCgxMDkpLCAxMDksIDExMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTExKHApIEJPT1NUX1BQX0lJRihwKDExMSksIDExMSwgMTEyKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjAocCkgQk9PU1RfUFBfSUlGKHAoMTIwKSwgQk9PU1RfUFBfTk9ERV8xMTYsIEJPT1NUX1BQX05PREVfMTI0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTE2KHApIEJPT1NUX1BQX0lJRihwKDExNiksIEJPT1NUX1BQX05PREVfMTE0LCBCT09TVF9QUF9OT0RFXzExOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTQocCkgQk9PU1RfUFBfSUlGKHAoMTE0KSwgQk9PU1RfUFBfTk9ERV8xMTMsIEJPT1NUX1BQX05PREVfMTE1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTMocCkgQk9PU1RfUFBfSUlGKHAoMTEzKSwgMTEzLCAxMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNShwKSBCT09TVF9QUF9JSUYocCgxMTUpLCAxMTUsIDExNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTgocCkgQk9PU1RfUFBfSUlGKHAoMTE4KSwgQk9PU1RfUFBfTk9ERV8xMTcsIEJPT1NUX1BQX05PREVfMTE5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTcocCkgQk9PU1RfUFBfSUlGKHAoMTE3KSwgMTE3LCAxMTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExOShwKSBCT09TVF9QUF9JSUYocCgxMTkpLCAxMTksIDEyMCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyNChwKSBCT09TVF9QUF9JSUYocCgxMjQpLCBCT09TVF9QUF9OT0RFXzEyMiwgQk9PU1RfUFBfTk9ERV8xMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTIyKHApIEJPT1NUX1BQX0lJRihwKDEyMiksIEJPT1NUX1BQX05PREVfMTIxLCBCT09TVF9QUF9OT0RFXzEyMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTIxKHApIEJPT1NUX1BQX0lJRihwKDEyMSksIDEyMSwgMTIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjMocCkgQk9PU1RfUFBfSUlGKHAoMTIzKSwgMTIzLCAxMjQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI2KHApIEJPT1NUX1BQX0lJRihwKDEyNiksIEJPT1NUX1BQX05PREVfMTI1LCBCT09TVF9QUF9OT0RFXzEyNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI1KHApIEJPT1NUX1BQX0lJRihwKDEyNSksIDEyNSwgMTI2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjcocCkgQk9PU1RfUFBfSUlGKHAoMTI3KSwgMTI3LCAxMjgpCisjICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5MihwKSBCT09TVF9QUF9JSUYocCgxOTIpLCBCT09TVF9QUF9OT0RFXzE2MCwgQk9PU1RfUFBfTk9ERV8yMjQpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjAocCkgQk9PU1RfUFBfSUlGKHAoMTYwKSwgQk9PU1RfUFBfTk9ERV8xNDQsIEJPT1NUX1BQX05PREVfMTc2KQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0NChwKSBCT09TVF9QUF9JSUYocCgxNDQpLCBCT09TVF9QUF9OT0RFXzEzNiwgQk9PU1RfUFBfTk9ERV8xNTIpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzNihwKSBCT09TVF9QUF9JSUYocCgxMzYpLCBCT09TVF9QUF9OT0RFXzEzMiwgQk9PU1RfUFBfTk9ERV8xNDApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzIocCkgQk9PU1RfUFBfSUlGKHAoMTMyKSwgQk9PU1RfUFBfTk9ERV8xMzAsIEJPT1NUX1BQX05PREVfMTM0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzMChwKSBCT09TVF9QUF9JSUYocCgxMzApLCBCT09TVF9QUF9OT0RFXzEyOSwgQk9PU1RfUFBfTk9ERV8xMzEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyOShwKSBCT09TVF9QUF9JSUYocCgxMjkpLCAxMjksIDEzMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMxKHApIEJPT1NUX1BQX0lJRihwKDEzMSksIDEzMSwgMTMyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzNChwKSBCT09TVF9QUF9JSUYocCgxMzQpLCBCT09TVF9QUF9OT0RFXzEzMywgQk9PU1RfUFBfTk9ERV8xMzUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzMyhwKSBCT09TVF9QUF9JSUYocCgxMzMpLCAxMzMsIDEzNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM1KHApIEJPT1NUX1BQX0lJRihwKDEzNSksIDEzNSwgMTM2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQwKHApIEJPT1NUX1BQX0lJRihwKDE0MCksIEJPT1NUX1BQX05PREVfMTM4LCBCT09TVF9QUF9OT0RFXzE0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzgocCkgQk9PU1RfUFBfSUlGKHAoMTM4KSwgQk9PU1RfUFBfTk9ERV8xMzcsIEJPT1NUX1BQX05PREVfMTM5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzcocCkgQk9PU1RfUFBfSUlGKHAoMTM3KSwgMTM3LCAxMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzOShwKSBCT09TVF9QUF9JSUYocCgxMzkpLCAxMzksIDE0MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDIocCkgQk9PU1RfUFBfSUlGKHAoMTQyKSwgQk9PU1RfUFBfTk9ERV8xNDEsIEJPT1NUX1BQX05PREVfMTQzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDEocCkgQk9PU1RfUFBfSUlGKHAoMTQxKSwgMTQxLCAxNDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0MyhwKSBCT09TVF9QUF9JSUYocCgxNDMpLCAxNDMsIDE0NCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTUyKHApIEJPT1NUX1BQX0lJRihwKDE1MiksIEJPT1NUX1BQX05PREVfMTQ4LCBCT09TVF9QUF9OT0RFXzE1NikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0OChwKSBCT09TVF9QUF9JSUYocCgxNDgpLCBCT09TVF9QUF9OT0RFXzE0NiwgQk9PU1RfUFBfTk9ERV8xNTApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ2KHApIEJPT1NUX1BQX0lJRihwKDE0NiksIEJPT1NUX1BQX05PREVfMTQ1LCBCT09TVF9QUF9OT0RFXzE0NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ1KHApIEJPT1NUX1BQX0lJRihwKDE0NSksIDE0NSwgMTQ2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDcocCkgQk9PU1RfUFBfSUlGKHAoMTQ3KSwgMTQ3LCAxNDgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTUwKHApIEJPT1NUX1BQX0lJRihwKDE1MCksIEJPT1NUX1BQX05PREVfMTQ5LCBCT09TVF9QUF9OT0RFXzE1MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ5KHApIEJPT1NUX1BQX0lJRihwKDE0OSksIDE0OSwgMTUwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTEocCkgQk9PU1RfUFBfSUlGKHAoMTUxKSwgMTUxLCAxNTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTYocCkgQk9PU1RfUFBfSUlGKHAoMTU2KSwgQk9PU1RfUFBfTk9ERV8xNTQsIEJPT1NUX1BQX05PREVfMTU4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1NChwKSBCT09TVF9QUF9JSUYocCgxNTQpLCBCT09TVF9QUF9OT0RFXzE1MywgQk9PU1RfUFBfTk9ERV8xNTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1MyhwKSBCT09TVF9QUF9JSUYocCgxNTMpLCAxNTMsIDE1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU1KHApIEJPT1NUX1BQX0lJRihwKDE1NSksIDE1NSwgMTU2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1OChwKSBCT09TVF9QUF9JSUYocCgxNTgpLCBCT09TVF9QUF9OT0RFXzE1NywgQk9PU1RfUFBfTk9ERV8xNTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1NyhwKSBCT09TVF9QUF9JSUYocCgxNTcpLCAxNTcsIDE1OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU5KHApIEJPT1NUX1BQX0lJRihwKDE1OSksIDE1OSwgMTYwKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3NihwKSBCT09TVF9QUF9JSUYocCgxNzYpLCBCT09TVF9QUF9OT0RFXzE2OCwgQk9PU1RfUFBfTk9ERV8xODQpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2OChwKSBCT09TVF9QUF9JSUYocCgxNjgpLCBCT09TVF9QUF9OT0RFXzE2NCwgQk9PU1RfUFBfTk9ERV8xNzIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjQocCkgQk9PU1RfUFBfSUlGKHAoMTY0KSwgQk9PU1RfUFBfTk9ERV8xNjIsIEJPT1NUX1BQX05PREVfMTY2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2MihwKSBCT09TVF9QUF9JSUYocCgxNjIpLCBCT09TVF9QUF9OT0RFXzE2MSwgQk9PU1RfUFBfTk9ERV8xNjMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2MShwKSBCT09TVF9QUF9JSUYocCgxNjEpLCAxNjEsIDE2MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYzKHApIEJPT1NUX1BQX0lJRihwKDE2MyksIDE2MywgMTY0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2NihwKSBCT09TVF9QUF9JSUYocCgxNjYpLCBCT09TVF9QUF9OT0RFXzE2NSwgQk9PU1RfUFBfTk9ERV8xNjcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2NShwKSBCT09TVF9QUF9JSUYocCgxNjUpLCAxNjUsIDE2NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTY3KHApIEJPT1NUX1BQX0lJRihwKDE2NyksIDE2NywgMTY4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTcyKHApIEJPT1NUX1BQX0lJRihwKDE3MiksIEJPT1NUX1BQX05PREVfMTcwLCBCT09TVF9QUF9OT0RFXzE3NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzAocCkgQk9PU1RfUFBfSUlGKHAoMTcwKSwgQk9PU1RfUFBfTk9ERV8xNjksIEJPT1NUX1BQX05PREVfMTcxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjkocCkgQk9PU1RfUFBfSUlGKHAoMTY5KSwgMTY5LCAxNzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3MShwKSBCT09TVF9QUF9JSUYocCgxNzEpLCAxNzEsIDE3MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzQocCkgQk9PU1RfUFBfSUlGKHAoMTc0KSwgQk9PU1RfUFBfTk9ERV8xNzMsIEJPT1NUX1BQX05PREVfMTc1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzMocCkgQk9PU1RfUFBfSUlGKHAoMTczKSwgMTczLCAxNzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3NShwKSBCT09TVF9QUF9JSUYocCgxNzUpLCAxNzUsIDE3NikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg0KHApIEJPT1NUX1BQX0lJRihwKDE4NCksIEJPT1NUX1BQX05PREVfMTgwLCBCT09TVF9QUF9OT0RFXzE4OCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4MChwKSBCT09TVF9QUF9JSUYocCgxODApLCBCT09TVF9QUF9OT0RFXzE3OCwgQk9PU1RfUFBfTk9ERV8xODIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc4KHApIEJPT1NUX1BQX0lJRihwKDE3OCksIEJPT1NUX1BQX05PREVfMTc3LCBCT09TVF9QUF9OT0RFXzE3OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc3KHApIEJPT1NUX1BQX0lJRihwKDE3NyksIDE3NywgMTc4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzkocCkgQk9PU1RfUFBfSUlGKHAoMTc5KSwgMTc5LCAxODApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTgyKHApIEJPT1NUX1BQX0lJRihwKDE4MiksIEJPT1NUX1BQX05PREVfMTgxLCBCT09TVF9QUF9OT0RFXzE4MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTgxKHApIEJPT1NUX1BQX0lJRihwKDE4MSksIDE4MSwgMTgyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODMocCkgQk9PU1RfUFBfSUlGKHAoMTgzKSwgMTgzLCAxODQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODgocCkgQk9PU1RfUFBfSUlGKHAoMTg4KSwgQk9PU1RfUFBfTk9ERV8xODYsIEJPT1NUX1BQX05PREVfMTkwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4NihwKSBCT09TVF9QUF9JSUYocCgxODYpLCBCT09TVF9QUF9OT0RFXzE4NSwgQk9PU1RfUFBfTk9ERV8xODcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4NShwKSBCT09TVF9QUF9JSUYocCgxODUpLCAxODUsIDE4NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg3KHApIEJPT1NUX1BQX0lJRihwKDE4NyksIDE4NywgMTg4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5MChwKSBCT09TVF9QUF9JSUYocCgxOTApLCBCT09TVF9QUF9OT0RFXzE4OSwgQk9PU1RfUFBfTk9ERV8xOTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4OShwKSBCT09TVF9QUF9JSUYocCgxODkpLCAxODksIDE5MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkxKHApIEJPT1NUX1BQX0lJRihwKDE5MSksIDE5MSwgMTkyKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI0KHApIEJPT1NUX1BQX0lJRihwKDIyNCksIEJPT1NUX1BQX05PREVfMjA4LCBCT09TVF9QUF9OT0RFXzI0MCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDgocCkgQk9PU1RfUFBfSUlGKHAoMjA4KSwgQk9PU1RfUFBfTk9ERV8yMDAsIEJPT1NUX1BQX05PREVfMjE2KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDAocCkgQk9PU1RfUFBfSUlGKHAoMjAwKSwgQk9PU1RfUFBfTk9ERV8xOTYsIEJPT1NUX1BQX05PREVfMjA0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTk2KHApIEJPT1NUX1BQX0lJRihwKDE5NiksIEJPT1NUX1BQX05PREVfMTk0LCBCT09TVF9QUF9OT0RFXzE5OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTQocCkgQk9PU1RfUFBfSUlGKHAoMTk0KSwgQk9PU1RfUFBfTk9ERV8xOTMsIEJPT1NUX1BQX05PREVfMTk1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTMocCkgQk9PU1RfUFBfSUlGKHAoMTkzKSwgMTkzLCAxOTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NShwKSBCT09TVF9QUF9JSUYocCgxOTUpLCAxOTUsIDE5NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTgocCkgQk9PU1RfUFBfSUlGKHAoMTk4KSwgQk9PU1RfUFBfTk9ERV8xOTcsIEJPT1NUX1BQX05PREVfMTk5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTcocCkgQk9PU1RfUFBfSUlGKHAoMTk3KSwgMTk3LCAxOTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5OShwKSBCT09TVF9QUF9JSUYocCgxOTkpLCAxOTksIDIwMCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwNChwKSBCT09TVF9QUF9JSUYocCgyMDQpLCBCT09TVF9QUF9OT0RFXzIwMiwgQk9PU1RfUFBfTk9ERV8yMDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjAyKHApIEJPT1NUX1BQX0lJRihwKDIwMiksIEJPT1NUX1BQX05PREVfMjAxLCBCT09TVF9QUF9OT0RFXzIwMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjAxKHApIEJPT1NUX1BQX0lJRihwKDIwMSksIDIwMSwgMjAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDMocCkgQk9PU1RfUFBfSUlGKHAoMjAzKSwgMjAzLCAyMDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA2KHApIEJPT1NUX1BQX0lJRihwKDIwNiksIEJPT1NUX1BQX05PREVfMjA1LCBCT09TVF9QUF9OT0RFXzIwNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA1KHApIEJPT1NUX1BQX0lJRihwKDIwNSksIDIwNSwgMjA2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDcocCkgQk9PU1RfUFBfSUlGKHAoMjA3KSwgMjA3LCAyMDgpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxNihwKSBCT09TVF9QUF9JSUYocCgyMTYpLCBCT09TVF9QUF9OT0RFXzIxMiwgQk9PU1RfUFBfTk9ERV8yMjApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTIocCkgQk9PU1RfUFBfSUlGKHAoMjEyKSwgQk9PU1RfUFBfTk9ERV8yMTAsIEJPT1NUX1BQX05PREVfMjE0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxMChwKSBCT09TVF9QUF9JSUYocCgyMTApLCBCT09TVF9QUF9OT0RFXzIwOSwgQk9PU1RfUFBfTk9ERV8yMTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwOShwKSBCT09TVF9QUF9JSUYocCgyMDkpLCAyMDksIDIxMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjExKHApIEJPT1NUX1BQX0lJRihwKDIxMSksIDIxMSwgMjEyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxNChwKSBCT09TVF9QUF9JSUYocCgyMTQpLCBCT09TVF9QUF9OT0RFXzIxMywgQk9PU1RfUFBfTk9ERV8yMTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxMyhwKSBCT09TVF9QUF9JSUYocCgyMTMpLCAyMTMsIDIxNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE1KHApIEJPT1NUX1BQX0lJRihwKDIxNSksIDIxNSwgMjE2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIwKHApIEJPT1NUX1BQX0lJRihwKDIyMCksIEJPT1NUX1BQX05PREVfMjE4LCBCT09TVF9QUF9OT0RFXzIyMikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTgocCkgQk9PU1RfUFBfSUlGKHAoMjE4KSwgQk9PU1RfUFBfTk9ERV8yMTcsIEJPT1NUX1BQX05PREVfMjE5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTcocCkgQk9PU1RfUFBfSUlGKHAoMjE3KSwgMjE3LCAyMTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxOShwKSBCT09TVF9QUF9JSUYocCgyMTkpLCAyMTksIDIyMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjIocCkgQk9PU1RfUFBfSUlGKHAoMjIyKSwgQk9PU1RfUFBfTk9ERV8yMjEsIEJPT1NUX1BQX05PREVfMjIzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjEocCkgQk9PU1RfUFBfSUlGKHAoMjIxKSwgMjIxLCAyMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyMyhwKSBCT09TVF9QUF9JSUYocCgyMjMpLCAyMjMsIDIyNCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDAocCkgQk9PU1RfUFBfSUlGKHAoMjQwKSwgQk9PU1RfUFBfTk9ERV8yMzIsIEJPT1NUX1BQX05PREVfMjQ4KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzIocCkgQk9PU1RfUFBfSUlGKHAoMjMyKSwgQk9PU1RfUFBfTk9ERV8yMjgsIEJPT1NUX1BQX05PREVfMjM2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI4KHApIEJPT1NUX1BQX0lJRihwKDIyOCksIEJPT1NUX1BQX05PREVfMjI2LCBCT09TVF9QUF9OT0RFXzIzMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjYocCkgQk9PU1RfUFBfSUlGKHAoMjI2KSwgQk9PU1RfUFBfTk9ERV8yMjUsIEJPT1NUX1BQX05PREVfMjI3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjUocCkgQk9PU1RfUFBfSUlGKHAoMjI1KSwgMjI1LCAyMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyNyhwKSBCT09TVF9QUF9JSUYocCgyMjcpLCAyMjcsIDIyOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzAocCkgQk9PU1RfUFBfSUlGKHAoMjMwKSwgQk9PU1RfUFBfTk9ERV8yMjksIEJPT1NUX1BQX05PREVfMjMxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjkocCkgQk9PU1RfUFBfSUlGKHAoMjI5KSwgMjI5LCAyMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzMShwKSBCT09TVF9QUF9JSUYocCgyMzEpLCAyMzEsIDIzMikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzNihwKSBCT09TVF9QUF9JSUYocCgyMzYpLCBCT09TVF9QUF9OT0RFXzIzNCwgQk9PU1RfUFBfTk9ERV8yMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM0KHApIEJPT1NUX1BQX0lJRihwKDIzNCksIEJPT1NUX1BQX05PREVfMjMzLCBCT09TVF9QUF9OT0RFXzIzNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMzKHApIEJPT1NUX1BQX0lJRihwKDIzMyksIDIzMywgMjM0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzUocCkgQk9PU1RfUFBfSUlGKHAoMjM1KSwgMjM1LCAyMzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM4KHApIEJPT1NUX1BQX0lJRihwKDIzOCksIEJPT1NUX1BQX05PREVfMjM3LCBCT09TVF9QUF9OT0RFXzIzOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM3KHApIEJPT1NUX1BQX0lJRihwKDIzNyksIDIzNywgMjM4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzkocCkgQk9PU1RfUFBfSUlGKHAoMjM5KSwgMjM5LCAyNDApCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0OChwKSBCT09TVF9QUF9JSUYocCgyNDgpLCBCT09TVF9QUF9OT0RFXzI0NCwgQk9PU1RfUFBfTk9ERV8yNTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDQocCkgQk9PU1RfUFBfSUlGKHAoMjQ0KSwgQk9PU1RfUFBfTk9ERV8yNDIsIEJPT1NUX1BQX05PREVfMjQ2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0MihwKSBCT09TVF9QUF9JSUYocCgyNDIpLCBCT09TVF9QUF9OT0RFXzI0MSwgQk9PU1RfUFBfTk9ERV8yNDMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0MShwKSBCT09TVF9QUF9JSUYocCgyNDEpLCAyNDEsIDI0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQzKHApIEJPT1NUX1BQX0lJRihwKDI0MyksIDI0MywgMjQ0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0NihwKSBCT09TVF9QUF9JSUYocCgyNDYpLCBCT09TVF9QUF9OT0RFXzI0NSwgQk9PU1RfUFBfTk9ERV8yNDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0NShwKSBCT09TVF9QUF9JSUYocCgyNDUpLCAyNDUsIDI0NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQ3KHApIEJPT1NUX1BQX0lJRihwKDI0NyksIDI0NywgMjQ4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjUyKHApIEJPT1NUX1BQX0lJRihwKDI1MiksIEJPT1NUX1BQX05PREVfMjUwLCBCT09TVF9QUF9OT0RFXzI1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTAocCkgQk9PU1RfUFBfSUlGKHAoMjUwKSwgQk9PU1RfUFBfTk9ERV8yNDksIEJPT1NUX1BQX05PREVfMjUxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDkocCkgQk9PU1RfUFBfSUlGKHAoMjQ5KSwgMjQ5LCAyNTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1MShwKSBCT09TVF9QUF9JSUYocCgyNTEpLCAyNTEsIDI1MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTQocCkgQk9PU1RfUFBfSUlGKHAoMjU0KSwgQk9PU1RfUFBfTk9ERV8yNTMsIEJPT1NUX1BQX05PREVfMjU1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTMocCkgQk9PU1RfUFBfSUlGKHAoMjUzKSwgMjUzLCAyNTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1NShwKSBCT09TVF9QUF9JSUYocCgyNTUpLCAyNTUsIDI1NikKKyMKKyMgZW5kaWYKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9jaGVjay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvY2hlY2suaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhOTA4ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvY2hlY2suaHBwCkBAIC0wLDAgKzEsNDggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0NIRUNLX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0RFVEFJTF9DSEVDS19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQ0hFQ0sgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0soeCwgdHlwZSkgQk9PU1RfUFBfQ0hFQ0tfRCh4LCB0eXBlKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDSyh4LCB0eXBlKSBCT09TVF9QUF9DSEVDS19PTygoeCwgdHlwZSkpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS19PTyhwYXIpIEJPT1NUX1BQX0NIRUNLX0QgIyMgcGFyCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkgJiYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0RNQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS19EKHgsIHR5cGUpIEJPT1NUX1BQX0NIRUNLXzEoQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NIRUNLX1JFU1VMVF8sIHR5cGUgeCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS18xKGNoaykgQk9PU1RfUFBfQ0hFQ0tfMihjaGspCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS18yKHJlcywgXykgcmVzCisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS19EKHgsIHR5cGUpIEJPT1NUX1BQX0NIRUNLXzEodHlwZSB4KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfMShjaGspIEJPT1NUX1BQX0NIRUNLXzIoY2hrKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfMihjaGspIEJPT1NUX1BQX0NIRUNLXzMoKEJPT1NUX1BQX0NIRUNLX1JFU1VMVF8gIyMgY2hrKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzMoaW0pIEJPT1NUX1BQX0NIRUNLXzUoQk9PU1RfUFBfQ0hFQ0tfNCBpbSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzQocmVzLCBfKSByZXMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzUocmVzKSByZXMKKyMgZWxzZSAvKiBETUMgKi8KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX0QoeCwgdHlwZSkgQk9PU1RfUFBfQ0hFQ0tfT08oKHR5cGUgeCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS19PTyhwYXIpIEJPT1NUX1BQX0NIRUNLXzAgIyMgcGFyCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS18wKGNoaykgQk9PU1RfUFBfQ0hFQ0tfMShCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0hFQ0tfUkVTVUxUXywgY2hrKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzEoY2hrKSBCT09TVF9QUF9DSEVDS18yKGNoaykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzIocmVzLCBfKSByZXMKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX1JFU1VMVF8xIDEsIEJPT1NUX1BQX05JTAorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2RtYy9hdXRvX3JlYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvZG1jL2F1dG9fcmVjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTQwMzY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2RtYy9hdXRvX3JlYy5ocHAKQEAgLTAsMCArMSwyODYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0FVVE9fUkVDX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0RFVEFJTF9BVVRPX1JFQ19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQVVUT19SRUMgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0FVVE9fUkVDKHByZWQsIG4pIEJPT1NUX1BQX05PREVfRU5UUllfICMjIG4ocHJlZCkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfMjU2KHApIEJPT1NUX1BQX05PREVfMTI4KHApKHApKHApKHApKHApKHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzEyOChwKSBCT09TVF9QUF9OT0RFXzY0KHApKHApKHApKHApKHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzY0KHApIEJPT1NUX1BQX05PREVfMzIocCkocCkocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfMzIocCkgQk9PU1RfUFBfTk9ERV8xNihwKShwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8xNihwKSBCT09TVF9QUF9OT0RFXzgocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfOChwKSBCT09TVF9QUF9OT0RFXzQocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfNChwKSBCT09TVF9QUF9OT0RFXzIocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfMihwKSBCT09TVF9QUF9OT0RFXzEocCkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI4KHApIEJPT1NUX1BQX0lJRihwIyMoMTI4KSwgQk9PU1RfUFBfTk9ERV82NCwgQk9PU1RfUFBfTk9ERV8xOTIpCisjICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzY0KHApIEJPT1NUX1BQX0lJRihwIyMoNjQpLCBCT09TVF9QUF9OT0RFXzMyLCBCT09TVF9QUF9OT0RFXzk2KQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzIocCkgQk9PU1RfUFBfSUlGKHAjIygzMiksIEJPT1NUX1BQX05PREVfMTYsIEJPT1NUX1BQX05PREVfNDgpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYocCkgQk9PU1RfUFBfSUlGKHAjIygxNiksIEJPT1NUX1BQX05PREVfOCwgQk9PU1RfUFBfTk9ERV8yNCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOChwKSBCT09TVF9QUF9JSUYocCMjKDgpLCBCT09TVF9QUF9OT0RFXzQsIEJPT1NUX1BQX05PREVfMTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80KHApIEJPT1NUX1BQX0lJRihwIyMoNCksIEJPT1NUX1BQX05PREVfMiwgQk9PU1RfUFBfTk9ERV82KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIocCkgQk9PU1RfUFBfSUlGKHAjIygyKSwgQk9PU1RfUFBfTk9ERV8xLCBCT09TVF9QUF9OT0RFXzMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEocCkgQk9PU1RfUFBfSUlGKHAjIygxKSwgMSwgMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMyhwKSBCT09TVF9QUF9JSUYocCMjKDMpLCAzLCA0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzYocCkgQk9PU1RfUFBfSUlGKHAjIyg2KSwgQk9PU1RfUFBfTk9ERV81LCBCT09TVF9QUF9OT0RFXzcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzUocCkgQk9PU1RfUFBfSUlGKHAjIyg1KSwgNSwgNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNyhwKSBCT09TVF9QUF9JSUYocCMjKDcpLCA3LCA4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTIocCkgQk9PU1RfUFBfSUlGKHAjIygxMiksIEJPT1NUX1BQX05PREVfMTAsIEJPT1NUX1BQX05PREVfMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAocCkgQk9PU1RfUFBfSUlGKHAjIygxMCksIEJPT1NUX1BQX05PREVfOSwgQk9PU1RfUFBfTk9ERV8xMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOShwKSBCT09TVF9QUF9JSUYocCMjKDkpLCA5LCAxMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTEocCkgQk9PU1RfUFBfSUlGKHAjIygxMSksIDExLCAxMikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNChwKSBCT09TVF9QUF9JSUYocCMjKDE0KSwgQk9PU1RfUFBfTk9ERV8xMywgQk9PU1RfUFBfTk9ERV8xNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMocCkgQk9PU1RfUFBfSUlGKHAjIygxMyksIDEzLCAxNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTUocCkgQk9PU1RfUFBfSUlGKHAjIygxNSksIDE1LCAxNikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQocCkgQk9PU1RfUFBfSUlGKHAjIygyNCksIEJPT1NUX1BQX05PREVfMjAsIEJPT1NUX1BQX05PREVfMjgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMChwKSBCT09TVF9QUF9JSUYocCMjKDIwKSwgQk9PU1RfUFBfTk9ERV8xOCwgQk9PU1RfUFBfTk9ERV8yMikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOChwKSBCT09TVF9QUF9JSUYocCMjKDE4KSwgQk9PU1RfUFBfTk9ERV8xNywgQk9PU1RfUFBfTk9ERV8xOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTcocCkgQk9PU1RfUFBfSUlGKHAjIygxNyksIDE3LCAxOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkocCkgQk9PU1RfUFBfSUlGKHAjIygxOSksIDE5LCAyMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMihwKSBCT09TVF9QUF9JSUYocCMjKDIyKSwgQk9PU1RfUFBfTk9ERV8yMSwgQk9PU1RfUFBfTk9ERV8yMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEocCkgQk9PU1RfUFBfSUlGKHAjIygyMSksIDIxLCAyMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMocCkgQk9PU1RfUFBfSUlGKHAjIygyMyksIDIzLCAyNCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI4KHApIEJPT1NUX1BQX0lJRihwIyMoMjgpLCBCT09TVF9QUF9OT0RFXzI2LCBCT09TVF9QUF9OT0RFXzMwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI2KHApIEJPT1NUX1BQX0lJRihwIyMoMjYpLCBCT09TVF9QUF9OT0RFXzI1LCBCT09TVF9QUF9OT0RFXzI3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNShwKSBCT09TVF9QUF9JSUYocCMjKDI1KSwgMjUsIDI2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNyhwKSBCT09TVF9QUF9JSUYocCMjKDI3KSwgMjcsIDI4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMwKHApIEJPT1NUX1BQX0lJRihwIyMoMzApLCBCT09TVF9QUF9OT0RFXzI5LCBCT09TVF9QUF9OT0RFXzMxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yOShwKSBCT09TVF9QUF9JSUYocCMjKDI5KSwgMjksIDMwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zMShwKSBCT09TVF9QUF9JSUYocCMjKDMxKSwgMzEsIDMyKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ4KHApIEJPT1NUX1BQX0lJRihwIyMoNDgpLCBCT09TVF9QUF9OT0RFXzQwLCBCT09TVF9QUF9OT0RFXzU2KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80MChwKSBCT09TVF9QUF9JSUYocCMjKDQwKSwgQk9PU1RfUFBfTk9ERV8zNiwgQk9PU1RfUFBfTk9ERV80NCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM2KHApIEJPT1NUX1BQX0lJRihwIyMoMzYpLCBCT09TVF9QUF9OT0RFXzM0LCBCT09TVF9QUF9OT0RFXzM4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM0KHApIEJPT1NUX1BQX0lJRihwIyMoMzQpLCBCT09TVF9QUF9OT0RFXzMzLCBCT09TVF9QUF9OT0RFXzM1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zMyhwKSBCT09TVF9QUF9JSUYocCMjKDMzKSwgMzMsIDM0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zNShwKSBCT09TVF9QUF9JSUYocCMjKDM1KSwgMzUsIDM2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM4KHApIEJPT1NUX1BQX0lJRihwIyMoMzgpLCBCT09TVF9QUF9OT0RFXzM3LCBCT09TVF9QUF9OT0RFXzM5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zNyhwKSBCT09TVF9QUF9JSUYocCMjKDM3KSwgMzcsIDM4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zOShwKSBCT09TVF9QUF9JSUYocCMjKDM5KSwgMzksIDQwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDQocCkgQk9PU1RfUFBfSUlGKHAjIyg0NCksIEJPT1NUX1BQX05PREVfNDIsIEJPT1NUX1BQX05PREVfNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDIocCkgQk9PU1RfUFBfSUlGKHAjIyg0MiksIEJPT1NUX1BQX05PREVfNDEsIEJPT1NUX1BQX05PREVfNDMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQxKHApIEJPT1NUX1BQX0lJRihwIyMoNDEpLCA0MSwgNDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQzKHApIEJPT1NUX1BQX0lJRihwIyMoNDMpLCA0MywgNDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDYocCkgQk9PU1RfUFBfSUlGKHAjIyg0NiksIEJPT1NUX1BQX05PREVfNDUsIEJPT1NUX1BQX05PREVfNDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ1KHApIEJPT1NUX1BQX0lJRihwIyMoNDUpLCA0NSwgNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ3KHApIEJPT1NUX1BQX0lJRihwIyMoNDcpLCA0NywgNDgpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzU2KHApIEJPT1NUX1BQX0lJRihwIyMoNTYpLCBCT09TVF9QUF9OT0RFXzUyLCBCT09TVF9QUF9OT0RFXzYwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTIocCkgQk9PU1RfUFBfSUlGKHAjIyg1MiksIEJPT1NUX1BQX05PREVfNTAsIEJPT1NUX1BQX05PREVfNTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTAocCkgQk9PU1RfUFBfSUlGKHAjIyg1MCksIEJPT1NUX1BQX05PREVfNDksIEJPT1NUX1BQX05PREVfNTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ5KHApIEJPT1NUX1BQX0lJRihwIyMoNDkpLCA0OSwgNTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzUxKHApIEJPT1NUX1BQX0lJRihwIyMoNTEpLCA1MSwgNTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTQocCkgQk9PU1RfUFBfSUlGKHAjIyg1NCksIEJPT1NUX1BQX05PREVfNTMsIEJPT1NUX1BQX05PREVfNTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzUzKHApIEJPT1NUX1BQX0lJRihwIyMoNTMpLCA1MywgNTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzU1KHApIEJPT1NUX1BQX0lJRihwIyMoNTUpLCA1NSwgNTYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MChwKSBCT09TVF9QUF9JSUYocCMjKDYwKSwgQk9PU1RfUFBfTk9ERV81OCwgQk9PU1RfUFBfTk9ERV82MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81OChwKSBCT09TVF9QUF9JSUYocCMjKDU4KSwgQk9PU1RfUFBfTk9ERV81NywgQk9PU1RfUFBfTk9ERV81OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTcocCkgQk9PU1RfUFBfSUlGKHAjIyg1NyksIDU3LCA1OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTkocCkgQk9PU1RfUFBfSUlGKHAjIyg1OSksIDU5LCA2MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MihwKSBCT09TVF9QUF9JSUYocCMjKDYyKSwgQk9PU1RfUFBfTk9ERV82MSwgQk9PU1RfUFBfTk9ERV82MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjEocCkgQk9PU1RfUFBfSUlGKHAjIyg2MSksIDYxLCA2MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjMocCkgQk9PU1RfUFBfSUlGKHAjIyg2MyksIDYzLCA2NCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk2KHApIEJPT1NUX1BQX0lJRihwIyMoOTYpLCBCT09TVF9QUF9OT0RFXzgwLCBCT09TVF9QUF9OT0RFXzExMikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84MChwKSBCT09TVF9QUF9JSUYocCMjKDgwKSwgQk9PU1RfUFBfTk9ERV83MiwgQk9PU1RfUFBfTk9ERV84OCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzIocCkgQk9PU1RfUFBfSUlGKHAjIyg3MiksIEJPT1NUX1BQX05PREVfNjgsIEJPT1NUX1BQX05PREVfNzYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82OChwKSBCT09TVF9QUF9JSUYocCMjKDY4KSwgQk9PU1RfUFBfTk9ERV82NiwgQk9PU1RfUFBfTk9ERV83MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82NihwKSBCT09TVF9QUF9JSUYocCMjKDY2KSwgQk9PU1RfUFBfTk9ERV82NSwgQk9PU1RfUFBfTk9ERV82NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjUocCkgQk9PU1RfUFBfSUlGKHAjIyg2NSksIDY1LCA2NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjcocCkgQk9PU1RfUFBfSUlGKHAjIyg2NyksIDY3LCA2OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83MChwKSBCT09TVF9QUF9JSUYocCMjKDcwKSwgQk9PU1RfUFBfTk9ERV82OSwgQk9PU1RfUFBfTk9ERV83MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjkocCkgQk9PU1RfUFBfSUlGKHAjIyg2OSksIDY5LCA3MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzEocCkgQk9PU1RfUFBfSUlGKHAjIyg3MSksIDcxLCA3MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc2KHApIEJPT1NUX1BQX0lJRihwIyMoNzYpLCBCT09TVF9QUF9OT0RFXzc0LCBCT09TVF9QUF9OT0RFXzc4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc0KHApIEJPT1NUX1BQX0lJRihwIyMoNzQpLCBCT09TVF9QUF9OT0RFXzczLCBCT09TVF9QUF9OT0RFXzc1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83MyhwKSBCT09TVF9QUF9JSUYocCMjKDczKSwgNzMsIDc0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83NShwKSBCT09TVF9QUF9JSUYocCMjKDc1KSwgNzUsIDc2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc4KHApIEJPT1NUX1BQX0lJRihwIyMoNzgpLCBCT09TVF9QUF9OT0RFXzc3LCBCT09TVF9QUF9OT0RFXzc5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83NyhwKSBCT09TVF9QUF9JSUYocCMjKDc3KSwgNzcsIDc4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83OShwKSBCT09TVF9QUF9JSUYocCMjKDc5KSwgNzksIDgwKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84OChwKSBCT09TVF9QUF9JSUYocCMjKDg4KSwgQk9PU1RfUFBfTk9ERV84NCwgQk9PU1RfUFBfTk9ERV85MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg0KHApIEJPT1NUX1BQX0lJRihwIyMoODQpLCBCT09TVF9QUF9OT0RFXzgyLCBCT09TVF9QUF9OT0RFXzg2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzgyKHApIEJPT1NUX1BQX0lJRihwIyMoODIpLCBCT09TVF9QUF9OT0RFXzgxLCBCT09TVF9QUF9OT0RFXzgzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84MShwKSBCT09TVF9QUF9JSUYocCMjKDgxKSwgODEsIDgyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84MyhwKSBCT09TVF9QUF9JSUYocCMjKDgzKSwgODMsIDg0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg2KHApIEJPT1NUX1BQX0lJRihwIyMoODYpLCBCT09TVF9QUF9OT0RFXzg1LCBCT09TVF9QUF9OT0RFXzg3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84NShwKSBCT09TVF9QUF9JSUYocCMjKDg1KSwgODUsIDg2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84NyhwKSBCT09TVF9QUF9JSUYocCMjKDg3KSwgODcsIDg4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTIocCkgQk9PU1RfUFBfSUlGKHAjIyg5MiksIEJPT1NUX1BQX05PREVfOTAsIEJPT1NUX1BQX05PREVfOTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTAocCkgQk9PU1RfUFBfSUlGKHAjIyg5MCksIEJPT1NUX1BQX05PREVfODksIEJPT1NUX1BQX05PREVfOTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg5KHApIEJPT1NUX1BQX0lJRihwIyMoODkpLCA4OSwgOTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzkxKHApIEJPT1NUX1BQX0lJRihwIyMoOTEpLCA5MSwgOTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTQocCkgQk9PU1RfUFBfSUlGKHAjIyg5NCksIEJPT1NUX1BQX05PREVfOTMsIEJPT1NUX1BQX05PREVfOTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzkzKHApIEJPT1NUX1BQX0lJRihwIyMoOTMpLCA5MywgOTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk1KHApIEJPT1NUX1BQX0lJRihwIyMoOTUpLCA5NSwgOTYpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTEyKHApIEJPT1NUX1BQX0lJRihwIyMoMTEyKSwgQk9PU1RfUFBfTk9ERV8xMDQsIEJPT1NUX1BQX05PREVfMTIwKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDQocCkgQk9PU1RfUFBfSUlGKHAjIygxMDQpLCBCT09TVF9QUF9OT0RFXzEwMCwgQk9PU1RfUFBfTk9ERV8xMDgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDAocCkgQk9PU1RfUFBfSUlGKHAjIygxMDApLCBCT09TVF9QUF9OT0RFXzk4LCBCT09TVF9QUF9OT0RFXzEwMikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85OChwKSBCT09TVF9QUF9JSUYocCMjKDk4KSwgQk9PU1RfUFBfTk9ERV85NywgQk9PU1RfUFBfTk9ERV85OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTcocCkgQk9PU1RfUFBfSUlGKHAjIyg5NyksIDk3LCA5OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTkocCkgQk9PU1RfUFBfSUlGKHAjIyg5OSksIDk5LCAxMDApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAyKHApIEJPT1NUX1BQX0lJRihwIyMoMTAyKSwgQk9PU1RfUFBfTk9ERV8xMDEsIEJPT1NUX1BQX05PREVfMTAzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDEocCkgQk9PU1RfUFBfSUlGKHAjIygxMDEpLCAxMDEsIDEwMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAzKHApIEJPT1NUX1BQX0lJRihwIyMoMTAzKSwgMTAzLCAxMDQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDgocCkgQk9PU1RfUFBfSUlGKHAjIygxMDgpLCBCT09TVF9QUF9OT0RFXzEwNiwgQk9PU1RfUFBfTk9ERV8xMTApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA2KHApIEJPT1NUX1BQX0lJRihwIyMoMTA2KSwgQk9PU1RfUFBfTk9ERV8xMDUsIEJPT1NUX1BQX05PREVfMTA3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDUocCkgQk9PU1RfUFBfSUlGKHAjIygxMDUpLCAxMDUsIDEwNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA3KHApIEJPT1NUX1BQX0lJRihwIyMoMTA3KSwgMTA3LCAxMDgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTEwKHApIEJPT1NUX1BQX0lJRihwIyMoMTEwKSwgQk9PU1RfUFBfTk9ERV8xMDksIEJPT1NUX1BQX05PREVfMTExKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDkocCkgQk9PU1RfUFBfSUlGKHAjIygxMDkpLCAxMDksIDExMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTExKHApIEJPT1NUX1BQX0lJRihwIyMoMTExKSwgMTExLCAxMTIpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyMChwKSBCT09TVF9QUF9JSUYocCMjKDEyMCksIEJPT1NUX1BQX05PREVfMTE2LCBCT09TVF9QUF9OT0RFXzEyNCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNihwKSBCT09TVF9QUF9JSUYocCMjKDExNiksIEJPT1NUX1BQX05PREVfMTE0LCBCT09TVF9QUF9OT0RFXzExOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTQocCkgQk9PU1RfUFBfSUlGKHAjIygxMTQpLCBCT09TVF9QUF9OT0RFXzExMywgQk9PU1RfUFBfTk9ERV8xMTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExMyhwKSBCT09TVF9QUF9JSUYocCMjKDExMyksIDExMywgMTE0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTUocCkgQk9PU1RfUFBfSUlGKHAjIygxMTUpLCAxMTUsIDExNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTgocCkgQk9PU1RfUFBfSUlGKHAjIygxMTgpLCBCT09TVF9QUF9OT0RFXzExNywgQk9PU1RfUFBfTk9ERV8xMTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNyhwKSBCT09TVF9QUF9JSUYocCMjKDExNyksIDExNywgMTE4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTkocCkgQk9PU1RfUFBfSUlGKHAjIygxMTkpLCAxMTksIDEyMCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyNChwKSBCT09TVF9QUF9JSUYocCMjKDEyNCksIEJPT1NUX1BQX05PREVfMTIyLCBCT09TVF9QUF9OT0RFXzEyNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjIocCkgQk9PU1RfUFBfSUlGKHAjIygxMjIpLCBCT09TVF9QUF9OT0RFXzEyMSwgQk9PU1RfUFBfTk9ERV8xMjMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyMShwKSBCT09TVF9QUF9JSUYocCMjKDEyMSksIDEyMSwgMTIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjMocCkgQk9PU1RfUFBfSUlGKHAjIygxMjMpLCAxMjMsIDEyNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjYocCkgQk9PU1RfUFBfSUlGKHAjIygxMjYpLCBCT09TVF9QUF9OT0RFXzEyNSwgQk9PU1RfUFBfTk9ERV8xMjcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyNShwKSBCT09TVF9QUF9JSUYocCMjKDEyNSksIDEyNSwgMTI2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjcocCkgQk9PU1RfUFBfSUlGKHAjIygxMjcpLCAxMjcsIDEyOCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkyKHApIEJPT1NUX1BQX0lJRihwIyMoMTkyKSwgQk9PU1RfUFBfTk9ERV8xNjAsIEJPT1NUX1BQX05PREVfMjI0KQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYwKHApIEJPT1NUX1BQX0lJRihwIyMoMTYwKSwgQk9PU1RfUFBfTk9ERV8xNDQsIEJPT1NUX1BQX05PREVfMTc2KQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0NChwKSBCT09TVF9QUF9JSUYocCMjKDE0NCksIEJPT1NUX1BQX05PREVfMTM2LCBCT09TVF9QUF9OT0RFXzE1MikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM2KHApIEJPT1NUX1BQX0lJRihwIyMoMTM2KSwgQk9PU1RfUFBfTk9ERV8xMzIsIEJPT1NUX1BQX05PREVfMTQwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMyKHApIEJPT1NUX1BQX0lJRihwIyMoMTMyKSwgQk9PU1RfUFBfTk9ERV8xMzAsIEJPT1NUX1BQX05PREVfMTM0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzMChwKSBCT09TVF9QUF9JSUYocCMjKDEzMCksIEJPT1NUX1BQX05PREVfMTI5LCBCT09TVF9QUF9OT0RFXzEzMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI5KHApIEJPT1NUX1BQX0lJRihwIyMoMTI5KSwgMTI5LCAxMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzMShwKSBCT09TVF9QUF9JSUYocCMjKDEzMSksIDEzMSwgMTMyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzNChwKSBCT09TVF9QUF9JSUYocCMjKDEzNCksIEJPT1NUX1BQX05PREVfMTMzLCBCT09TVF9QUF9OT0RFXzEzNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMzKHApIEJPT1NUX1BQX0lJRihwIyMoMTMzKSwgMTMzLCAxMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzNShwKSBCT09TVF9QUF9JSUYocCMjKDEzNSksIDEzNSwgMTM2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQwKHApIEJPT1NUX1BQX0lJRihwIyMoMTQwKSwgQk9PU1RfUFBfTk9ERV8xMzgsIEJPT1NUX1BQX05PREVfMTQyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzOChwKSBCT09TVF9QUF9JSUYocCMjKDEzOCksIEJPT1NUX1BQX05PREVfMTM3LCBCT09TVF9QUF9OT0RFXzEzOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM3KHApIEJPT1NUX1BQX0lJRihwIyMoMTM3KSwgMTM3LCAxMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzOShwKSBCT09TVF9QUF9JSUYocCMjKDEzOSksIDEzOSwgMTQwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0MihwKSBCT09TVF9QUF9JSUYocCMjKDE0MiksIEJPT1NUX1BQX05PREVfMTQxLCBCT09TVF9QUF9OT0RFXzE0MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQxKHApIEJPT1NUX1BQX0lJRihwIyMoMTQxKSwgMTQxLCAxNDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0MyhwKSBCT09TVF9QUF9JSUYocCMjKDE0MyksIDE0MywgMTQ0KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTIocCkgQk9PU1RfUFBfSUlGKHAjIygxNTIpLCBCT09TVF9QUF9OT0RFXzE0OCwgQk9PU1RfUFBfTk9ERV8xNTYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDgocCkgQk9PU1RfUFBfSUlGKHAjIygxNDgpLCBCT09TVF9QUF9OT0RFXzE0NiwgQk9PU1RfUFBfTk9ERV8xNTApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ2KHApIEJPT1NUX1BQX0lJRihwIyMoMTQ2KSwgQk9PU1RfUFBfTk9ERV8xNDUsIEJPT1NUX1BQX05PREVfMTQ3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDUocCkgQk9PU1RfUFBfSUlGKHAjIygxNDUpLCAxNDUsIDE0NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ3KHApIEJPT1NUX1BQX0lJRihwIyMoMTQ3KSwgMTQ3LCAxNDgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTUwKHApIEJPT1NUX1BQX0lJRihwIyMoMTUwKSwgQk9PU1RfUFBfTk9ERV8xNDksIEJPT1NUX1BQX05PREVfMTUxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDkocCkgQk9PU1RfUFBfSUlGKHAjIygxNDkpLCAxNDksIDE1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTUxKHApIEJPT1NUX1BQX0lJRihwIyMoMTUxKSwgMTUxLCAxNTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTYocCkgQk9PU1RfUFBfSUlGKHAjIygxNTYpLCBCT09TVF9QUF9OT0RFXzE1NCwgQk9PU1RfUFBfTk9ERV8xNTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU0KHApIEJPT1NUX1BQX0lJRihwIyMoMTU0KSwgQk9PU1RfUFBfTk9ERV8xNTMsIEJPT1NUX1BQX05PREVfMTU1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTMocCkgQk9PU1RfUFBfSUlGKHAjIygxNTMpLCAxNTMsIDE1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU1KHApIEJPT1NUX1BQX0lJRihwIyMoMTU1KSwgMTU1LCAxNTYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU4KHApIEJPT1NUX1BQX0lJRihwIyMoMTU4KSwgQk9PU1RfUFBfTk9ERV8xNTcsIEJPT1NUX1BQX05PREVfMTU5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTcocCkgQk9PU1RfUFBfSUlGKHAjIygxNTcpLCAxNTcsIDE1OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU5KHApIEJPT1NUX1BQX0lJRihwIyMoMTU5KSwgMTU5LCAxNjApCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc2KHApIEJPT1NUX1BQX0lJRihwIyMoMTc2KSwgQk9PU1RfUFBfTk9ERV8xNjgsIEJPT1NUX1BQX05PREVfMTg0KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjgocCkgQk9PU1RfUFBfSUlGKHAjIygxNjgpLCBCT09TVF9QUF9OT0RFXzE2NCwgQk9PU1RfUFBfTk9ERV8xNzIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjQocCkgQk9PU1RfUFBfSUlGKHAjIygxNjQpLCBCT09TVF9QUF9OT0RFXzE2MiwgQk9PU1RfUFBfTk9ERV8xNjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYyKHApIEJPT1NUX1BQX0lJRihwIyMoMTYyKSwgQk9PU1RfUFBfTk9ERV8xNjEsIEJPT1NUX1BQX05PREVfMTYzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjEocCkgQk9PU1RfUFBfSUlGKHAjIygxNjEpLCAxNjEsIDE2MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYzKHApIEJPT1NUX1BQX0lJRihwIyMoMTYzKSwgMTYzLCAxNjQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTY2KHApIEJPT1NUX1BQX0lJRihwIyMoMTY2KSwgQk9PU1RfUFBfTk9ERV8xNjUsIEJPT1NUX1BQX05PREVfMTY3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjUocCkgQk9PU1RfUFBfSUlGKHAjIygxNjUpLCAxNjUsIDE2NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTY3KHApIEJPT1NUX1BQX0lJRihwIyMoMTY3KSwgMTY3LCAxNjgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzIocCkgQk9PU1RfUFBfSUlGKHAjIygxNzIpLCBCT09TVF9QUF9OT0RFXzE3MCwgQk9PU1RfUFBfTk9ERV8xNzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTcwKHApIEJPT1NUX1BQX0lJRihwIyMoMTcwKSwgQk9PU1RfUFBfTk9ERV8xNjksIEJPT1NUX1BQX05PREVfMTcxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjkocCkgQk9PU1RfUFBfSUlGKHAjIygxNjkpLCAxNjksIDE3MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTcxKHApIEJPT1NUX1BQX0lJRihwIyMoMTcxKSwgMTcxLCAxNzIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc0KHApIEJPT1NUX1BQX0lJRihwIyMoMTc0KSwgQk9PU1RfUFBfTk9ERV8xNzMsIEJPT1NUX1BQX05PREVfMTc1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzMocCkgQk9PU1RfUFBfSUlGKHAjIygxNzMpLCAxNzMsIDE3NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc1KHApIEJPT1NUX1BQX0lJRihwIyMoMTc1KSwgMTc1LCAxNzYpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4NChwKSBCT09TVF9QUF9JSUYocCMjKDE4NCksIEJPT1NUX1BQX05PREVfMTgwLCBCT09TVF9QUF9OT0RFXzE4OCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4MChwKSBCT09TVF9QUF9JSUYocCMjKDE4MCksIEJPT1NUX1BQX05PREVfMTc4LCBCT09TVF9QUF9OT0RFXzE4MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzgocCkgQk9PU1RfUFBfSUlGKHAjIygxNzgpLCBCT09TVF9QUF9OT0RFXzE3NywgQk9PU1RfUFBfTk9ERV8xNzkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3NyhwKSBCT09TVF9QUF9JSUYocCMjKDE3NyksIDE3NywgMTc4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzkocCkgQk9PU1RfUFBfSUlGKHAjIygxNzkpLCAxNzksIDE4MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODIocCkgQk9PU1RfUFBfSUlGKHAjIygxODIpLCBCT09TVF9QUF9OT0RFXzE4MSwgQk9PU1RfUFBfTk9ERV8xODMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4MShwKSBCT09TVF9QUF9JSUYocCMjKDE4MSksIDE4MSwgMTgyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODMocCkgQk9PU1RfUFBfSUlGKHAjIygxODMpLCAxODMsIDE4NCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4OChwKSBCT09TVF9QUF9JSUYocCMjKDE4OCksIEJPT1NUX1BQX05PREVfMTg2LCBCT09TVF9QUF9OT0RFXzE5MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODYocCkgQk9PU1RfUFBfSUlGKHAjIygxODYpLCBCT09TVF9QUF9OT0RFXzE4NSwgQk9PU1RfUFBfTk9ERV8xODcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4NShwKSBCT09TVF9QUF9JSUYocCMjKDE4NSksIDE4NSwgMTg2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODcocCkgQk9PU1RfUFBfSUlGKHAjIygxODcpLCAxODcsIDE4OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTAocCkgQk9PU1RfUFBfSUlGKHAjIygxOTApLCBCT09TVF9QUF9OT0RFXzE4OSwgQk9PU1RfUFBfTk9ERV8xOTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4OShwKSBCT09TVF9QUF9JSUYocCMjKDE4OSksIDE4OSwgMTkwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTEocCkgQk9PU1RfUFBfSUlGKHAjIygxOTEpLCAxOTEsIDE5MikKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyNChwKSBCT09TVF9QUF9JSUYocCMjKDIyNCksIEJPT1NUX1BQX05PREVfMjA4LCBCT09TVF9QUF9OT0RFXzI0MCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDgocCkgQk9PU1RfUFBfSUlGKHAjIygyMDgpLCBCT09TVF9QUF9OT0RFXzIwMCwgQk9PU1RfUFBfTk9ERV8yMTYpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwMChwKSBCT09TVF9QUF9JSUYocCMjKDIwMCksIEJPT1NUX1BQX05PREVfMTk2LCBCT09TVF9QUF9OT0RFXzIwNCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NihwKSBCT09TVF9QUF9JSUYocCMjKDE5NiksIEJPT1NUX1BQX05PREVfMTk0LCBCT09TVF9QUF9OT0RFXzE5OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTQocCkgQk9PU1RfUFBfSUlGKHAjIygxOTQpLCBCT09TVF9QUF9OT0RFXzE5MywgQk9PU1RfUFBfTk9ERV8xOTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5MyhwKSBCT09TVF9QUF9JSUYocCMjKDE5MyksIDE5MywgMTk0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTUocCkgQk9PU1RfUFBfSUlGKHAjIygxOTUpLCAxOTUsIDE5NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTgocCkgQk9PU1RfUFBfSUlGKHAjIygxOTgpLCBCT09TVF9QUF9OT0RFXzE5NywgQk9PU1RfUFBfTk9ERV8xOTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NyhwKSBCT09TVF9QUF9JSUYocCMjKDE5NyksIDE5NywgMTk4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTkocCkgQk9PU1RfUFBfSUlGKHAjIygxOTkpLCAxOTksIDIwMCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwNChwKSBCT09TVF9QUF9JSUYocCMjKDIwNCksIEJPT1NUX1BQX05PREVfMjAyLCBCT09TVF9QUF9OT0RFXzIwNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDIocCkgQk9PU1RfUFBfSUlGKHAjIygyMDIpLCBCT09TVF9QUF9OT0RFXzIwMSwgQk9PU1RfUFBfTk9ERV8yMDMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwMShwKSBCT09TVF9QUF9JSUYocCMjKDIwMSksIDIwMSwgMjAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDMocCkgQk9PU1RfUFBfSUlGKHAjIygyMDMpLCAyMDMsIDIwNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDYocCkgQk9PU1RfUFBfSUlGKHAjIygyMDYpLCBCT09TVF9QUF9OT0RFXzIwNSwgQk9PU1RfUFBfTk9ERV8yMDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwNShwKSBCT09TVF9QUF9JSUYocCMjKDIwNSksIDIwNSwgMjA2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDcocCkgQk9PU1RfUFBfSUlGKHAjIygyMDcpLCAyMDcsIDIwOCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE2KHApIEJPT1NUX1BQX0lJRihwIyMoMjE2KSwgQk9PU1RfUFBfTk9ERV8yMTIsIEJPT1NUX1BQX05PREVfMjIwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEyKHApIEJPT1NUX1BQX0lJRihwIyMoMjEyKSwgQk9PU1RfUFBfTk9ERV8yMTAsIEJPT1NUX1BQX05PREVfMjE0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxMChwKSBCT09TVF9QUF9JSUYocCMjKDIxMCksIEJPT1NUX1BQX05PREVfMjA5LCBCT09TVF9QUF9OT0RFXzIxMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA5KHApIEJPT1NUX1BQX0lJRihwIyMoMjA5KSwgMjA5LCAyMTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxMShwKSBCT09TVF9QUF9JSUYocCMjKDIxMSksIDIxMSwgMjEyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxNChwKSBCT09TVF9QUF9JSUYocCMjKDIxNCksIEJPT1NUX1BQX05PREVfMjEzLCBCT09TVF9QUF9OT0RFXzIxNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEzKHApIEJPT1NUX1BQX0lJRihwIyMoMjEzKSwgMjEzLCAyMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxNShwKSBCT09TVF9QUF9JSUYocCMjKDIxNSksIDIxNSwgMjE2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIwKHApIEJPT1NUX1BQX0lJRihwIyMoMjIwKSwgQk9PU1RfUFBfTk9ERV8yMTgsIEJPT1NUX1BQX05PREVfMjIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxOChwKSBCT09TVF9QUF9JSUYocCMjKDIxOCksIEJPT1NUX1BQX05PREVfMjE3LCBCT09TVF9QUF9OT0RFXzIxOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE3KHApIEJPT1NUX1BQX0lJRihwIyMoMjE3KSwgMjE3LCAyMTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxOShwKSBCT09TVF9QUF9JSUYocCMjKDIxOSksIDIxOSwgMjIwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyMihwKSBCT09TVF9QUF9JSUYocCMjKDIyMiksIEJPT1NUX1BQX05PREVfMjIxLCBCT09TVF9QUF9OT0RFXzIyMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIxKHApIEJPT1NUX1BQX0lJRihwIyMoMjIxKSwgMjIxLCAyMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyMyhwKSBCT09TVF9QUF9JSUYocCMjKDIyMyksIDIyMywgMjI0KQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0MChwKSBCT09TVF9QUF9JSUYocCMjKDI0MCksIEJPT1NUX1BQX05PREVfMjMyLCBCT09TVF9QUF9OT0RFXzI0OCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMyKHApIEJPT1NUX1BQX0lJRihwIyMoMjMyKSwgQk9PU1RfUFBfTk9ERV8yMjgsIEJPT1NUX1BQX05PREVfMjM2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI4KHApIEJPT1NUX1BQX0lJRihwIyMoMjI4KSwgQk9PU1RfUFBfTk9ERV8yMjYsIEJPT1NUX1BQX05PREVfMjMwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyNihwKSBCT09TVF9QUF9JSUYocCMjKDIyNiksIEJPT1NUX1BQX05PREVfMjI1LCBCT09TVF9QUF9OT0RFXzIyNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI1KHApIEJPT1NUX1BQX0lJRihwIyMoMjI1KSwgMjI1LCAyMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyNyhwKSBCT09TVF9QUF9JSUYocCMjKDIyNyksIDIyNywgMjI4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzMChwKSBCT09TVF9QUF9JSUYocCMjKDIzMCksIEJPT1NUX1BQX05PREVfMjI5LCBCT09TVF9QUF9OT0RFXzIzMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI5KHApIEJPT1NUX1BQX0lJRihwIyMoMjI5KSwgMjI5LCAyMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzMShwKSBCT09TVF9QUF9JSUYocCMjKDIzMSksIDIzMSwgMjMyKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM2KHApIEJPT1NUX1BQX0lJRihwIyMoMjM2KSwgQk9PU1RfUFBfTk9ERV8yMzQsIEJPT1NUX1BQX05PREVfMjM4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzNChwKSBCT09TVF9QUF9JSUYocCMjKDIzNCksIEJPT1NUX1BQX05PREVfMjMzLCBCT09TVF9QUF9OT0RFXzIzNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMzKHApIEJPT1NUX1BQX0lJRihwIyMoMjMzKSwgMjMzLCAyMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzNShwKSBCT09TVF9QUF9JSUYocCMjKDIzNSksIDIzNSwgMjM2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzOChwKSBCT09TVF9QUF9JSUYocCMjKDIzOCksIEJPT1NUX1BQX05PREVfMjM3LCBCT09TVF9QUF9OT0RFXzIzOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM3KHApIEJPT1NUX1BQX0lJRihwIyMoMjM3KSwgMjM3LCAyMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzOShwKSBCT09TVF9QUF9JSUYocCMjKDIzOSksIDIzOSwgMjQwKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDgocCkgQk9PU1RfUFBfSUlGKHAjIygyNDgpLCBCT09TVF9QUF9OT0RFXzI0NCwgQk9PU1RfUFBfTk9ERV8yNTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDQocCkgQk9PU1RfUFBfSUlGKHAjIygyNDQpLCBCT09TVF9QUF9OT0RFXzI0MiwgQk9PU1RfUFBfTk9ERV8yNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQyKHApIEJPT1NUX1BQX0lJRihwIyMoMjQyKSwgQk9PU1RfUFBfTk9ERV8yNDEsIEJPT1NUX1BQX05PREVfMjQzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDEocCkgQk9PU1RfUFBfSUlGKHAjIygyNDEpLCAyNDEsIDI0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQzKHApIEJPT1NUX1BQX0lJRihwIyMoMjQzKSwgMjQzLCAyNDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQ2KHApIEJPT1NUX1BQX0lJRihwIyMoMjQ2KSwgQk9PU1RfUFBfTk9ERV8yNDUsIEJPT1NUX1BQX05PREVfMjQ3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDUocCkgQk9PU1RfUFBfSUlGKHAjIygyNDUpLCAyNDUsIDI0NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQ3KHApIEJPT1NUX1BQX0lJRihwIyMoMjQ3KSwgMjQ3LCAyNDgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTIocCkgQk9PU1RfUFBfSUlGKHAjIygyNTIpLCBCT09TVF9QUF9OT0RFXzI1MCwgQk9PU1RfUFBfTk9ERV8yNTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjUwKHApIEJPT1NUX1BQX0lJRihwIyMoMjUwKSwgQk9PU1RfUFBfTk9ERV8yNDksIEJPT1NUX1BQX05PREVfMjUxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDkocCkgQk9PU1RfUFBfSUlGKHAjIygyNDkpLCAyNDksIDI1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjUxKHApIEJPT1NUX1BQX0lJRihwIyMoMjUxKSwgMjUxLCAyNTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjU0KHApIEJPT1NUX1BQX0lJRihwIyMoMjU0KSwgQk9PU1RfUFBfTk9ERV8yNTMsIEJPT1NUX1BQX05PREVfMjU1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTMocCkgQk9PU1RfUFBfSUlGKHAjIygyNTMpLCAyNTMsIDI1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjU1KHApIEJPT1NUX1BQX0lJRihwIyMoMjU1KSwgMjU1LCAyNTYpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfYmluYXJ5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9pc19iaW5hcnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzVkYzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfYmluYXJ5LmhwcApAQCAtMCwwICsxLDMwIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0RFVEFJTF9JU19CSU5BUllfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0lTX0JJTkFSWV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2NoZWNrLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfSVNfQklOQVJZICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVNfQklOQVJZKHgpIEJPT1NUX1BQX0NIRUNLKHgsIEJPT1NUX1BQX0lTX0JJTkFSWV9DSEVDSykKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVNfQklOQVJZKHgpIEJPT1NUX1BQX0lTX0JJTkFSWV9JKHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9JU19CSU5BUllfSSh4KSBCT09TVF9QUF9DSEVDSyh4LCBCT09TVF9QUF9JU19CSU5BUllfQ0hFQ0spCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9JU19CSU5BUllfQ0hFQ0soYSwgYikgMQorIyBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfUkVTVUxUX0JPT1NUX1BQX0lTX0JJTkFSWV9DSEVDSyAwLCBCT09TVF9QUF9OSUwKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9pc191bmFyeS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfdW5hcnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMmYwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfdW5hcnkuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0lTX1VOQVJZX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0RFVEFJTF9JU19VTkFSWV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2NoZWNrLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfSVNfVU5BUlkgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9JU19VTkFSWSh4KSBCT09TVF9QUF9DSEVDSyh4LCBCT09TVF9QUF9JU19VTkFSWV9DSEVDSykKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVNfVU5BUlkoeCkgQk9PU1RfUFBfSVNfVU5BUllfSSh4KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVNfVU5BUllfSSh4KSBCT09TVF9QUF9DSEVDSyh4LCBCT09TVF9QUF9JU19VTkFSWV9DSEVDSykKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lTX1VOQVJZX0NIRUNLKGEpIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX1JFU1VMVF9CT09TVF9QUF9JU19VTkFSWV9DSEVDSyAwLCBCT09TVF9QUF9OSUwKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VtcHR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VtcHR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzgxMDY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZW1wdHkuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRU1QVFlfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfRU1QVFlfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2VtcHR5LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1ODM0ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW0uaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRU5VTV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9FTlVNX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjc1MmNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRU5VTV9QQVJBTVNfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfRU5VTV9QQVJBTVNfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zX3dpdGhfYV9kZWZhdWx0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zX3dpdGhfYV9kZWZhdWx0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjM4NmMyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXNfd2l0aF9hX2RlZmF1bHQuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRU5VTV9QQVJBTVNfV0lUSF9BX0RFRkFVTFRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfRU5VTV9QQVJBTVNfV0lUSF9BX0RFRkFVTFRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zX3dpdGhfYV9kZWZhdWx0LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9zaGlmdGVkX3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FkOWZkYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRU5VTV9TSElGVEVEX1BBUkFNU19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9FTlVNX1NISUZURURfUEFSQU1TX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2V4cHJfaWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZXhwcl9pZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZlZGZiMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2V4cHJfaWYuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRVhQUl9JRl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9FWFBSX0lGX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lmLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZkYjE5MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0ZBQ0lMSVRJRVNfRU1QVFlfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19FTVBUWV9IUFAKKyMKKyMgLyogQk9PU1RfUFBfRU1QVFkgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0VNUFRZKCkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9pZGVudGl0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY0OGQyOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwCkBAIC0wLDAgKzEsMjMgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0ZBQ0lMSVRJRVNfSURFTlRJVFlfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19JREVOVElUWV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwPgorIworIyAvKiBCT09TVF9QUF9JREVOVElUWSAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfSURFTlRJVFkoaXRlbSkgaXRlbSBCT09TVF9QUF9FTVBUWQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9pbnRlcmNlcHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9pbnRlcmNlcHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZGNjNmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2ludGVyY2VwdC5ocHAKQEAgLTAsMCArMSwyNzcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19JTlRFUkNFUFRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19JTlRFUkNFUFRfSFBQCisjCisjIC8qIEJPT1NUX1BQX0lOVEVSQ0VQVCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUIEJPT1NUX1BQX0lOVEVSQ0VQVF8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8wCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8zCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF82CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF85CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8xMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzEyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8xNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzE1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8xNworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzE4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8yMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzIxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8yMworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzI0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8yNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzI3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8yOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzMwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMzEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8zMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzMzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMzQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8zNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzM2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMzcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF8zOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzM5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNDAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF80MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzQyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNDMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF80NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzQ1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNDYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF80NworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzQ4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNDkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF81MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzUxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNTIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF81MworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzU0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNTUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF81NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzU3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNTgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF81OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzYwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNjEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF82MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzYzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNjQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF82NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzY2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNjcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF82OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzY5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNzAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF83MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzcyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNzMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF83NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzc1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNzYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF83NworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzc4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfNzkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF84MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzgxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfODIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF84MworIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzg0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfODUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF84NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzg3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfODgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF84OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzkwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfOTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF85MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzkzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfOTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF85NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzk2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfOTcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOVEVSQ0VQVF85OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5URVJDRVBUXzk5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTAwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTAxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTAyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTAzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTA0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTA1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTA2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTA3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTA4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTA5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTEwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTExCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTEyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTEzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTE0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTE1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTE2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTE3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTE4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTE5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTIwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTIxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTIyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTIzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTI0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTI1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTI2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTI3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTI4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTI5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTMwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTMxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTMyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTMzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTM0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTM1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTM2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTM3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTM4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTM5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQ0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQ1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQ2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQ3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQ4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTQ5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTUwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTUxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTUyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTUzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTU0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTU1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTU2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTU3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTU4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTU5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTYwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTYxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTYyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTYzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTY0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTY1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTY2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTY3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTY4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTY5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTcwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTcxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTcyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTczCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTc0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTc1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTc2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTc3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTc4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTc5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTgwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTgxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTgyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTgzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTg0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTg1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTg2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTg3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTg4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTg5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTkwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTkxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTkyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTkzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTk0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTk1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTk2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTk3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTk4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMTk5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjAwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjAxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjAyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjAzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjA0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjA1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjA2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjA3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjA4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjA5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjEwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjExCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjEyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjEzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjE0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjE1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjE2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjE3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjE4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjE5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjIwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjIxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjIyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjIzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjI0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjI1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjI2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjI3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjI4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjI5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjMwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjMxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjMyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjMzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjM0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjM1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjM2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjM3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjM4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjM5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQ0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQ1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQ2CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQ3CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQ4CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjQ5CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjUwCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjUxCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjUyCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjUzCisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjU0CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjU1CisjIGRlZmluZSBCT09TVF9QUF9JTlRFUkNFUFRfMjU2CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvb3ZlcmxvYWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMjZkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcApAQCAtMCwwICsxLDI1IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IEVkd2FyZCBEaWVuZXIgMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgICAgICAqCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19PVkVSTE9BRF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9GQUNJTElUSUVTX09WRVJMT0FEX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3ZhcmlhZGljL3NpemUuaHBwPgorIworIyAvKiBCT09TVF9QUF9PVkVSTE9BRCAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgZGVmaW5lIEJPT1NUX1BQX09WRVJMT0FEKHByZWZpeCwgLi4uKSBCT09TVF9QUF9DQVQocHJlZml4LCBCT09TVF9QUF9WQVJJQURJQ19TSVpFKF9fVkFfQVJHU19fKSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2lkZW50aXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2lkZW50aXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTAxZDIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaWRlbnRpdHkuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSURFTlRJVFlfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfSURFTlRJVFlfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2lkZW50aXR5LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2lmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTFkMTY5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaWYuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSUZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfSUZfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MzkzMGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSU5DX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0lOQ19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyZDA1OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFURV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9JVEVSQVRFX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIxLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc2ZTA3MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMS5ocHAKQEAgLTAsMCArMSw5OSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xCisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGM0MzBjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIyLmhwcApAQCAtMCwwICsxLDk5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfNAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfNworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMTAKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzMsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5MGNkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjMuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMworIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyBCT09TVF9QUF9TTE9UX0NDXzMoQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMywgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8yCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMQorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYxN2U1YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNC5ocHAKQEAgLTAsMCArMSw5OSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80CisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80IEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80IEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI1LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2FlOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI1LmhwcApAQCAtMCwwICsxLDk5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfNAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfNworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMTAKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzMsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81IEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YjFhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjEuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NjBlZjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjIuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNGFhZWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyNC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMDAzMWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjQuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyNS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZDVlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjUuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvZmluaXNoLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvZmluaXNoLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2Q2Y2E5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9maW5pc2guaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRQorIworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRSgpIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zLCBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8yLCBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFKCkgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzIsIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFKCkgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMQorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQxLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyZTFjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMS5ocHAKQEAgLTAsMCArMSwxMzQyIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGlmICFkZWZpbmVkKEJPT1NUX1BQX0ZJTEVOQU1FXzEpCisjICAgICAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGRlcHRoICMxIGZpbGVuYW1lIGlzIG5vdCBkZWZpbmVkCisjICAgIGVuZGlmCisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjEuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFMVUUgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBCT09TVF9QUF9JVEVSQVRJT05fTElNSVRTKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIxLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18xKCkgMAorIyAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fTElNSVRTCisjIGVsaWYgZGVmaW5lZChCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEpCisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9BUlJBWV9FTEVNKDAsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMS5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9BUlJBWV9FTEVNKDEsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMS5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9GSUxFTkFNRV8xIEJPT1NUX1BQX0FSUkFZX0VMRU0oMiwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xKQorIyAgICBpZiBCT09TVF9QUF9BUlJBWV9TSVpFKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSkgPj0gNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18xKCkgQk9PU1RfUFBfQVJSQVlfRUxFTSgzLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRkxBR1NfMSgpIDAKKyMgICAgZW5kaWYKKyMgZWxzZQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGRlcHRoICMxIGl0ZXJhdGlvbiBib3VuZGFyaWVzIG9yIGZpbGVuYW1lIG5vdCBkZWZpbmVkCisjIGVuZGlmCisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSAorIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgMQorIworIyBkZWZpbmUgQk9PU1RfUFBfSVNfSVRFUkFUSU5HIDEKKyMKKyMgaWYgKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xKSA+IChCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTEuaHBwPgorIyBlbHNlCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDExCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDczICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDczCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTEwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTExCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTExCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTEyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTEzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTcwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTcxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTcyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTczCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTczCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjEwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjExCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjExCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjEyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjEzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjU0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjU0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjU1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjU1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjU2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjU2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIHVuZGVmIEJPT1NUX1BQX0lTX0lURVJBVElORworIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDAKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xCisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWFkNTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQyLmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfMikKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzIgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMi5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjIuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzIoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIyLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIyLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzIgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzIpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yKSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzIoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMikKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18yKCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzIgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSAyCisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMikgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yCisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjUwYzE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQzLmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfMykKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzMgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMy5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzMoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIzLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIzLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzMgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzMpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zKSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzMoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMykKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18zKCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzMgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSAzCisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMykgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UzLmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zCisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGRmYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ0LmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfNCkKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzQgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNC5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjQuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzQoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180KQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI0LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180KQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXI0LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzQgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzQpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180KSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzQoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU180KCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzQgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA0CisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCkgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80KQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U0LmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80CisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ1LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2VmZWVhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ1LmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfNSkKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzUgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNS5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjUuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzUoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181KQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI1LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181KQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXI1LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzUgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzUpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181KSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzUoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNSkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU181KCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzUgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA1CisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSkgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81KQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81CisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzUKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UxLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjg4ZDJmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UxLmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjFiZDI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTY1NTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UzLmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmNmYmEwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U0LmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjVhNTU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvbG9jYWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNzlmNDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcApAQCAtMCwwICsxLDgxMiBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWYgIWRlZmluZWQoQk9PU1RfUFBfTE9DQUxfTElNSVRTKQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGxvY2FsIGl0ZXJhdGlvbiBib3VuZGFyaWVzIGFyZSBub3QgZGVmaW5lZAorIyBlbGlmICFkZWZpbmVkKEJPT1NUX1BQX0xPQ0FMX01BQ1JPKQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGxvY2FsIGl0ZXJhdGlvbiB0YXJnZXQgbWFjcm8gaXMgbm90IGRlZmluZWQKKyMgZWxzZQorIyAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfTE9DQUxfTElNSVRTKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0YgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBCT09TVF9QUF9MT0NBTF9MSU1JVFMpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUykKKyMgICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3N0YXJ0LmhwcD4KKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUykKKyMgICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2ZpbmlzaC5ocHA+CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfUyBCT09TVF9QUF9MT0NBTF9TRSgpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRiBCT09TVF9QUF9MT0NBTF9GRSgpCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIGlmIChCT09TVF9QUF9MT0NBTF9TKSA+IChCT09TVF9QUF9MT0NBTF9GKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ybG9jYWwuaHBwPgorIyBlbHNlCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTApCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDEyKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTMpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDE1KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTYpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDE4KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTkpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyNSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyOCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDMwKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygzMSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMzEpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDMzKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygzNCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMzQpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDM2KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygzNykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMzcpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMzgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDM5KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDApCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDQyKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDMpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDQ1KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDYpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDQ4KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0OSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDkpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDUxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg1MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg1MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNTIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDU0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg1NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg1NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNTUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDU3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg1NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg1OCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNTgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDYwKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg2MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNjEpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDYzKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg2NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNjQpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDY2KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg2NykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNjcpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDY5KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzApCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDcyKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzMpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDc1KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzYpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNzcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDc4KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3OSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzkpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDgxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg4MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg4MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oODIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDg0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg4NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg4NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oODUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDg3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg4NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg4OCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oODgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDkwKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg5MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOTEpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDkzKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg5NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOTQpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDk2KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg5NykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOTcpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDk5KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNikKKyMgICAgZW5kaWYKKworIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIzNykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIzOCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIzOSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0OCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0OSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU2KQorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9MSU1JVFMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfUworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GCisjCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX01BQ1JPCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3Jsb2NhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3Jsb2NhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEzYWZhMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvcmxvY2FsLmhwcApAQCAtMCwwICsxLDc4MiBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNTYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI1NSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNTUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjU0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI1NCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNTMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI1MikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNTIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjUxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI1MSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNTApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0OSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjQ4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0OCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNDcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0NikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjQ1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0NSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNDQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0MykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjQyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0MikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNDEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0MCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjM5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMzgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMzcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjM2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMzUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMzQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjMzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMzIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjMyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMzEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjMwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjI5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyOCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMjgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjI3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjI2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyNSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMjUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjI0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjIzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyMikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMjIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjIxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjIwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxOSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjE4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxOCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMTcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjE3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxNikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjE1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMTQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjE0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxMykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjEyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMTEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjExKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxMCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjA5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMDgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjA4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMDcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjA2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMDUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjA1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMDQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjAzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMDIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjAyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMDEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjAwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTk5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5OCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOTgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTk3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTk2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5NSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOTUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTk0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTkzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5MikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOTIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTkxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTkwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4OSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTg4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4OCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxODcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTg3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4NikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTg1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxODQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTg0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4MykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTgyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxODEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTgxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4MCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTc5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3OSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNzgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTc4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3NykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNzcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTc2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNzUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTc1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3NCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNzQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTczKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNzIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTcyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3MSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNzEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTcwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTY5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2OCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNjgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTY3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTY2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2NSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNjUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTY0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTYzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2MikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNjIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTYxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTYwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1OSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTU4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1OCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNTcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTU3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1NikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTU1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNTQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTU0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1MykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTUyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNTEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTUxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1MCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQ5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0OSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNDgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTQ4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0NykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNDcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQ2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNDUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTQ1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0NCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNDQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNDIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTQyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0MSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNDEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTM5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzOCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMzgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTM3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTM2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzNSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMzUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTM0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTMzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzMikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMzIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTMxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTMwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyOSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTI4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyOCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMjcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTI3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyNikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTI1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMjQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTI0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyMykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTIyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMjEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTIxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyMCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTE5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMTgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTE4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMTcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTE2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMTUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTE1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMTQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTEzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMTIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTEyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMTEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTEwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTA5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwOCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMDgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTA3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTA2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwNSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMDUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTA0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTAzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwMikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMDIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTAxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTAwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDczKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDczKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDcyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDcxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDcwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUig4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUig1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMCkKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvc2VsZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3NlbGYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NzE4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3NlbGYuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmICFkZWZpbmVkKEJPT1NUX1BQX0lORElSRUNUX1NFTEYpCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgbm8gaW5kaXJlY3QgZmlsZSB0byBpbmNsdWRlCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9JU19TRUxGSVNIIDEKKyMKKyMgaW5jbHVkZSBCT09TVF9QUF9JTkRJUkVDVF9TRUxGCisjCisjIHVuZGVmIEJPT1NUX1BQX0lTX1NFTEZJU0gKKyMgdW5kZWYgQk9PU1RfUFBfSU5ESVJFQ1RfU0VMRgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9zdGFydC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3N0YXJ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWY5Y2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9zdGFydC5ocHAKQEAgLTAsMCArMSw5OSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFCisjCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFKCkgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMsIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzIsIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0UoKSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMiwgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0UoKSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGExMTkzOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9pdGVyYXRlLmhwcApAQCAtMCwwICsxLDgyIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0lURVJBVElPTl9JVEVSQVRFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0lURVJBVElPTl9JVEVSQVRFX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZWMuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZWxlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgMAorIworIyAvKiBCT09TVF9QUF9JVEVSQVRJT04gKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTigpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fLCBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSkKKyMKKyMgLyogQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0ggKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVCgpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfLCBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0goKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8sIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKQorIworIyAvKiBCT09TVF9QUF9JVEVSQVRJT05fRkxBR1MgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHUygpIChCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXywgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkpKCkpCisjCisjIC8qIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTiAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fLCBpKQorIworIyAvKiBCT09TVF9QUF9GUkFNRV9TVEFSVCAmJiBCT09TVF9QUF9GUkFNRV9GSU5JU0ggKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZSQU1FX1NUQVJUKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfLCBpKQorIyBkZWZpbmUgQk9PU1RfUFBfRlJBTUVfRklOSVNIKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXywgaSkKKyMKKyMgLyogQk9PU1RfUFBfRlJBTUVfRkxBR1MgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZSQU1FX0ZMQUdTKGkpIChCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXywgaSkoKSkKKyMKKyMgLyogQk9PU1RfUFBfUkVMQVRJVkVfSVRFUkFUSU9OICovCisjCisjIGRlZmluZSBCT09TVF9QUF9SRUxBVElWRV9JVEVSQVRJT04oaSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1JFTEFUSVZFXywgaSkoQk9PU1RfUFBfSVRFUkFUSU9OXykKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFTEFUSVZFXzAobSkgQk9PU1RfUFBfQ0FUKG0sIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfMShtKSBCT09TVF9QUF9DQVQobSwgQk9PU1RfUFBfREVDKEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFTEFUSVZFXzIobSkgQk9PU1RfUFBfQ0FUKG0sIEJPT1NUX1BQX0RFQyhCT09TVF9QUF9ERUMoQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFTEFUSVZFXzMobSkgQk9PU1RfUFBfQ0FUKG0sIEJPT1NUX1BQX0RFQyhCT09TVF9QUF9ERUMoQk9PU1RfUFBfREVDKEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfNChtKSBCT09TVF9QUF9DQVQobSwgQk9PU1RfUFBfREVDKEJPT1NUX1BQX0RFQyhCT09TVF9QUF9ERUMoQk9PU1RfUFBfREVDKEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKSkpKSkKKyMKKyMgLyogQk9PU1RfUFBfUkVMQVRJVkVfU1RBUlQgJiYgQk9PU1RfUFBfUkVMQVRJVkVfRklOSVNIICovCisjCisjIGRlZmluZSBCT09TVF9QUF9SRUxBVElWRV9TVEFSVChpKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfUkVMQVRJVkVfLCBpKShCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfRklOSVNIKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9SRUxBVElWRV8sIGkpKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfKQorIworIyAvKiBCT09TVF9QUF9SRUxBVElWRV9GTEFHUyAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfRkxBR1MoaSkgKEJPT1NUX1BQX0NBVChCT09TVF9QUF9SRUxBVElWRV8sIGkpKEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18pKCkpCisjCisjIC8qIEJPT1NUX1BQX0lURVJBVEUgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVEUoKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFURV8sIEJPT1NUX1BQX0lOQyhCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSkpCisjCisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRFXzEgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDEuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFURV8yIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQyLmhwcD4KKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVEVfMyA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMy5ocHA+CisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRFXzQgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDQuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFURV81IDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ1LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9sb2NhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vbG9jYWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2OTkyYjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vbG9jYWwuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFUSU9OX0xPQ0FMX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0lURVJBVElPTl9MT0NBTF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9MT0NBTF9JVEVSQVRFICovCisjCisjIGRlZmluZSBCT09TVF9QUF9MT0NBTF9JVEVSQVRFKCkgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0MobikgKEJPT1NUX1BQX0xPQ0FMX1MpIDw9IG4gJiYgKEJPT1NUX1BQX0xPQ0FMX0YpID49IG4KKyMgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1IobikgKEJPT1NUX1BQX0xPQ0FMX0YpIDw9IG4gJiYgKEJPT1NUX1BQX0xPQ0FMX1MpID49IG4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9zZWxmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9zZWxmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGM4NTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL3NlbGYuaHBwCkBAIC0wLDAgKzEsMTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFUSU9OX1NFTEZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFUSU9OX1NFTEZfSFBQCisjCisjIC8qIEJPT1NUX1BQX0lOQ0xVREVfU0VMRiAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfSU5DTFVERV9TRUxGKCkgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3NlbGYuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ZTM3ODUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHAKQEAgLTAsMCArMSw3MyBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICoKKyMgICogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BRFRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BRFRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9pc19iaW5hcnkuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9jb21wbC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyAvKiBCT09TVF9QUF9MSVNUX0NPTlMgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQ09OUyhoZWFkLCB0YWlsKSAoaGVhZCwgdGFpbCkKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9OSUwgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfTklMIEJPT1NUX1BQX05JTAorIworIyAvKiBCT09TVF9QUF9MSVNUX0ZJUlNUICovCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZJUlNUKGxpc3QpIEJPT1NUX1BQX0xJU1RfRklSU1RfRChsaXN0KQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZJUlNUX0QobGlzdCkgQk9PU1RfUFBfTElTVF9GSVJTVF9JIGxpc3QKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9GSVJTVF9EKGxpc3QpIEJPT1NUX1BQX0xJU1RfRklSU1RfSSAjIyBsaXN0CisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZJUlNUX0koaGVhZCwgdGFpbCkgaGVhZAorIworIyAvKiBCT09TVF9QUF9MSVNUX1JFU1QgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVTVChsaXN0KSBCT09TVF9QUF9MSVNUX1JFU1RfRChsaXN0KQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFU1RfRChsaXN0KSBCT09TVF9QUF9MSVNUX1JFU1RfSSBsaXN0CisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVTVF9EKGxpc3QpIEJPT1NUX1BQX0xJU1RfUkVTVF9JICMjIGxpc3QKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVTVF9JKGhlYWQsIHRhaWwpIHRhaWwKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9JU19DT05TICovCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0JDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0lTX0NPTlMobGlzdCkgQk9PU1RfUFBfTElTVF9JU19DT05TX0QobGlzdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfSVNfQ09OU19EKGxpc3QpIEJPT1NUX1BQX0xJU1RfSVNfQ09OU18gIyMgbGlzdAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9JU19DT05TXyhoZWFkLCB0YWlsKSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0lTX0NPTlNfQk9PU1RfUFBfTklMIDAKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9JU19DT05TKGxpc3QpIEJPT1NUX1BQX0lTX0JJTkFSWShsaXN0KQorIyBlbmRpZgorIworIyAvKiBCT09TVF9QUF9MSVNUX0lTX05JTCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfQkNDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfSVNfTklMKGxpc3QpIEJPT1NUX1BQX0NPTVBMKEJPT1NUX1BQX0lTX0JJTkFSWShsaXN0KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9JU19OSUwobGlzdCkgQk9PU1RfUFBfQ09NUEwoQk9PU1RfUFBfTElTVF9JU19DT05TKGxpc3QpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hcHBlbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hcHBlbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmN2NiNGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FwcGVuZC5ocHAKQEAgLTAsMCArMSw0MCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BUFBFTkRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BUFBFTkRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0xJU1RfQVBQRU5EICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9BUFBFTkQoYSwgYikgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUKEJPT1NUX1BQX0xJU1RfQVBQRU5EX08sIGIsIGEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQVBQRU5EKGEsIGIpIEJPT1NUX1BQX0xJU1RfQVBQRU5EX0koYSwgYikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQVBQRU5EX0koYSwgYikgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUKEJPT1NUX1BQX0xJU1RfQVBQRU5EX08sIGIsIGEpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0FQUEVORF9PKGQsIHMsIHgpICh4LCBzKQorIworIyAvKiBCT09TVF9QUF9MSVNUX0FQUEVORF9EICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9BUFBFTkRfRChkLCBhLCBiKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQoQk9PU1RfUFBfTElTVF9BUFBFTkRfTywgYiwgYSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9BUFBFTkRfRChkLCBhLCBiKSBCT09TVF9QUF9MSVNUX0FQUEVORF9EX0koZCwgYSwgYikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQVBQRU5EX0RfSShkLCBhLCBiKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQoQk9PU1RfUFBfTElTVF9BUFBFTkRfTywgYiwgYSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2RtYy9mb2xkX2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZG1jL2ZvbGRfbGVmdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDczY2MxMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2RtYy9mb2xkX2xlZnQuaHBwCkBAIC0wLDAgKzEsMjc5IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0RFVEFJTF9GT0xEX0xFRlRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9ERVRBSUxfRk9MRF9MRUZUX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNjIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNjUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNjgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNzEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg3MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNzQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg3NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNzcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg3OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoOTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoOTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoOTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTAyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTA1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTA4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTExLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTE0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTE3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTIwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEyMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTIzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEyNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTI2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEyOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTI5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTMyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTM1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTM4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQ0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQ3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTUwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE1MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTUzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE1NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTU2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE1OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTU5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTYyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTY1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTY4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTcxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTc0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTc3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTgwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE4MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTgzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE4NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTg2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE4OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTg5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTkyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTk1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTk4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjAxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjA0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjA3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2VkZy9mb2xkX2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZWRnL2ZvbGRfbGVmdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc1NTBmMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2VkZy9mb2xkX2xlZnQuaHBwCkBAIC0wLDAgKzEsNTM2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0RFVEFJTF9FREdfRk9MRF9MRUZUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0VER19GT0xEX0xFRlRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2V4cHJfaWlmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYWR0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjExX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU2X0QobywgcywgbCkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNThfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTAxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMThfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjIxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjUxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjU0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjU3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZWRnL2ZvbGRfcmlnaHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZWRnL2ZvbGRfcmlnaHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzN2Y1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9yaWdodC5ocHAKQEAgLTAsMCArMSw3OTQgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0VER19GT0xEX1JJR0hUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0VER19GT0xEX1JJR0hUX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTExX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTczKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTkxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTkyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjU0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjU1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1Nl9EKG8sIHMsIGwpCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDksIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDczLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX05JTCAxCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzczKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NihvLCBzLCBsKSAwCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9mb2xkX2xlZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGI2ZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9sZWZ0LmhwcApAQCAtMCwwICsxLDI3OSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9ERVRBSUxfRk9MRF9MRUZUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0ZPTERfTEVGVF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTAyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTExLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTMyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTYyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTcxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTkyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2ZvbGRfcmlnaHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJkZmU5MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2ZvbGRfcmlnaHQuaHBwCkBAIC0wLDAgKzEsMjc3IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0RFVEFJTF9GT0xEX1JJR0hUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0ZPTERfUklHSFRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3JldmVyc2UuaHBwPgorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDMxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgzMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDM0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgzNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDM3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgzOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNDIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNDUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQ2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNDgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQ5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNTEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDUyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNTQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDU1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNTcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDU4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDYxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg2MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDY0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg2NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDY3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg2OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDcwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNzIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzczKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDczLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNzUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDc2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNzgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDc5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoODEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDgyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoODQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDg1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoODcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDg4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDkxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg5MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDk0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg5NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDk3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg5OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTAwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMDIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTAzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMDUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTA2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMDgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTA5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMTEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTEyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMTQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTE1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMTcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTE4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTIxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEyMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTI0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEyNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTI3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEyOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTMwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMzIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTMzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMzUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTM2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMzgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTM5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNDEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTQyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNDQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTQ1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNDcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTQ4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTUxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE1MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTU0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE1NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTU3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE1OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTYwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNjIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTYzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNjUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTY2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNjgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTY5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNzEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTcyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNzQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTc1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNzcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTc4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTgxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE4MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTg0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE4NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTg3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE4OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTkwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxOTIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTkzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxOTUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTk2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxOTgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTk5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMDEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjAyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMDQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjA1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMDcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjA4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjExLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIxMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjE0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIxNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjE3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIxOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjIwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMjIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjIzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMjUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjI2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMjgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjI5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMzEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjMyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMzQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjM1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMzcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjM4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI0MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQ0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI0NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQ3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI0OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjUwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI1MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNTIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjUzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI1NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNTUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjU2LCBsKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9sZWZ0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmUxOTNmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX2xlZnQuaHBwCkBAIC0wLDAgKzEsMzAzIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0ZPTERfTEVGVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0ZPTERfTEVGVF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUICovCisjCisjIGlmIDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUKG9wLCBzdGF0ZSwgbGlzdCkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUIEJPT1NUX1BQX0NBVChCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8sIEJPT1NUX1BQX0FVVE9fUkVDKEJPT1NUX1BQX1dISUxFX1AsIDI1NikpCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTcobywgcywgbCkgQk9PU1RfUFBfRVJST1IoMHgwMDA0KQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfRChkLCBvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8gIyMgZChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMk5EIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yTkRfRCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9ECisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9sZWZ0LmhwcD4KKyMgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19ETUMoKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZG1jL2ZvbGRfbGVmdC5ocHA+CisjIGVsc2UKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2ZvbGRfbGVmdC5ocHA+CisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9OSUwgMQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjExKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU2KG8sIHMsIGwpIDAKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfcmlnaHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1MWJkOWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfcmlnaHQuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfRk9MRF9SSUdIVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0ZPTERfUklHSFRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC93aGlsZS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwPgorIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFQob3AsIHN0YXRlLCBsaXN0KQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUIEJPT1NUX1BQX0NBVChCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9XSElMRV9QLCAyNTYpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NyhvLCBzLCBsKSBCT09TVF9QUF9FUlJPUigweDAwMDQpCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfRChkLCBvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yTkQgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMk5EX0QgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0QKKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2VkZy9mb2xkX3JpZ2h0LmhwcD4KKyMgZWxzZQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9yaWdodC5ocHA+CisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2Zvcl9lYWNoX2kuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjg4NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcApAQCAtMCwwICsxLDY1IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0xJU1RfRk9SX0VBQ0hfSV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0xJU1RfRk9SX0VBQ0hfSV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0kgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpICYmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSShtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSShtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX0kobWFjcm8sIGRhdGEsIGxpc3QpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfSShtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUChyLCB4KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUF9EIHgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QX0QobSwgZCwgbCwgaSkgQk9PU1RfUFBfTElTVF9JU19DT05TKGwpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QKHIsIHgpIEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDIsIHgpKQorIyBlbmRpZgorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTyhyLCB4KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfT19EIHgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9PX0QobSwgZCwgbCwgaSkgKG0sIGQsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSwgQk9PU1RfUFBfSU5DKGkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTyhyLCB4KSAoQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAwLCB4KSwgQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAxLCB4KSwgQk9PU1RfUFBfTElTVF9SRVNUKEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMiwgeCkpLCBCT09TVF9QUF9JTkMoQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAzLCB4KSkpCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00ociwgeCkgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX01fRChyLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDAsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDEsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDIsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDMsIHgpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTShyLCB4KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTV9JKHIsIEJPT1NUX1BQX1RVUExFX1JFTV80IHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTV9JKHIsIHhfZSkgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX01fRChyLCB4X2UpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTV9EKHIsIG0sIGQsIGwsIGkpIG0ociwgZCwgaSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1IgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUihyLCBtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SXyAjIyByKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9SKHIsIG1hY3JvLCBkYXRhLCBsaXN0KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUl9JKHIsIG1hY3JvLCBkYXRhLCBsaXN0KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1JfSShyLCBtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SXyAjIyByKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3JldmVyc2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9yZXZlcnNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjNmZmZjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9yZXZlcnNlLmhwcApAQCAtMCwwICsxLDQwIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX1JFVkVSU0VfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9SRVZFUlNFX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0xJU1RfUkVWRVJTRSAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVWRVJTRShsaXN0KSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVChCT09TVF9QUF9MSVNUX1JFVkVSU0VfTywgQk9PU1RfUFBfTklMLCBsaXN0KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0UobGlzdCkgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0kobGlzdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9JKGxpc3QpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUKEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9PLCBCT09TVF9QUF9OSUwsIGxpc3QpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfTyhkLCBzLCB4KSAoeCwgcykKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRChkLCBsaXN0KSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8gIyMgZChCT09TVF9QUF9MSVNUX1JFVkVSU0VfTywgQk9PU1RfUFBfTklMLCBsaXN0KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRChkLCBsaXN0KSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRF9JKGQsIGxpc3QpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRF9JKGQsIGxpc3QpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXyAjIyBkKEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9PLCBCT09TVF9QUF9OSUwsIGxpc3QpCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3RyYW5zZm9ybS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3RyYW5zZm9ybS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJlODYzZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdHJhbnNmb3JtLmhwcApAQCAtMCwwICsxLDQ5IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX1RSQU5TRk9STV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX1RSQU5TRk9STV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk0gKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STShvcCwgZGF0YSwgbGlzdCkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFQoQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fTywgKG9wLCBkYXRhLCBCT09TVF9QUF9OSUwpLCBsaXN0KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk0ob3AsIGRhdGEsIGxpc3QpIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0kob3AsIGRhdGEsIGxpc3QpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9JKG9wLCBkYXRhLCBsaXN0KSBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVChCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9PLCAob3AsIGRhdGEsIEJPT1NUX1BQX05JTCksIGxpc3QpKQorIyBlbmRpZgorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX08oZCwgb2RyLCBlbGVtKSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9PX0QoZCwgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAwLCBvZHIpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDEsIG9kciksIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgb2RyKSwgZWxlbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fTyhkLCBvZHIsIGVsZW0pIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX09fSShkLCBCT09TVF9QUF9UVVBMRV9SRU1fMyBvZHIsIGVsZW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9PX0koZCwgaW0sIGVsZW0pIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX09fRChkLCBpbSwgZWxlbSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX09fRChkLCBvcCwgZGF0YSwgcmVzLCBlbGVtKSAob3AsIGRhdGEsIChvcChkLCBkYXRhLCBlbGVtKSwgcmVzKSkKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fRCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0QoZCwgb3AsIGRhdGEsIGxpc3QpIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXyAjIyBkKEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX08sIChvcCwgZGF0YSwgQk9PU1RfUFBfTklMKSwgbGlzdCkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0QoZCwgb3AsIGRhdGEsIGxpc3QpIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0RfSShkLCBvcCwgZGF0YSwgbGlzdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0RfSShkLCBvcCwgZGF0YSwgbGlzdCkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQoQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fTywgKG9wLCBkYXRhLCBCT09TVF9QUF9OSUwpLCBsaXN0KSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTNiNjE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9hbmQuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQU5EX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQU5EX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRhbmQuaHBwPgorIworIyAvKiBCT09TVF9QUF9BTkQgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9BTkQocCwgcSkgQk9PU1RfUFBfQklUQU5EKEJPT1NUX1BQX0JPT0wocCksIEJPT1NUX1BQX0JPT0wocSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FORChwLCBxKSBCT09TVF9QUF9BTkRfSShwLCBxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQU5EX0kocCwgcSkgQk9PU1RfUFBfQklUQU5EKEJPT1NUX1BQX0JPT0wocCksIEJPT1NUX1BQX0JPT0wocSkpCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2JpdGFuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2JpdGFuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZhYjM5MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYml0YW5kLmhwcApAQCAtMCwwICsxLDM4IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQklUQU5EX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQklUQU5EX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0JJVEFORCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRBTkQoeCwgeSkgQk9PU1RfUFBfQklUQU5EX0koeCwgeSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EKHgsIHkpIEJPT1NUX1BQX0JJVEFORF9PTygoeCwgeSkpCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRBTkRfT08ocGFyKSBCT09TVF9QUF9CSVRBTkRfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EX0koeCwgeSkgQk9PU1RfUFBfQklUQU5EXyAjIyB4ICMjIHkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EX0koeCwgeSkgQk9PU1RfUFBfQklUQU5EX0lEKEJPT1NUX1BQX0JJVEFORF8gIyMgeCAjIyB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EX0lEKHJlcykgcmVzCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9CSVRBTkRfMDAgMAorIyBkZWZpbmUgQk9PU1RfUFBfQklUQU5EXzAxIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0JJVEFORF8xMCAwCisjIGRlZmluZSBCT09TVF9QUF9CSVRBTkRfMTEgMQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2JpdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDViMGJmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRvci5ocHAKQEAgLTAsMCArMSwzOCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX0JJVE9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQklUT1JfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQklUT1IgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUT1IoeCwgeSkgQk9PU1RfUFBfQklUT1JfSSh4LCB5KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRPUih4LCB5KSBCT09TVF9QUF9CSVRPUl9PTygoeCwgeSkpCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRPUl9PTyhwYXIpIEJPT1NUX1BQX0JJVE9SX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0JJVE9SX0koeCwgeSkgQk9PU1RfUFBfQklUT1JfICMjIHggIyMgeQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRPUl9JKHgsIHkpIEJPT1NUX1BQX0JJVE9SX0lEKEJPT1NUX1BQX0JJVE9SXyAjIyB4ICMjIHkpCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRPUl9JRChpZCkgaWQKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0JJVE9SXzAwIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0JJVE9SXzAxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JJVE9SXzEwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JJVE9SXzExIDEKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYm9vbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNGY0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwCkBAIC0wLDAgKzEsMjg4IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX0JPT0xfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTE9HSUNBTF9CT09MX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0JPT0wgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQk9PTCh4KSBCT09TVF9QUF9CT09MX0koeCkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQk9PTCh4KSBCT09TVF9QUF9CT09MX09PKCh4KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0JPT0xfT08ocGFyKSBCT09TVF9QUF9CT09MX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9CT09MX0koeCkgQk9PU1RfUFBfQk9PTF8gIyMgeAorIworIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8wIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzEyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzE1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzE4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzIxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzI0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzI3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yOSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzMwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zMiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzMzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zNSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzM2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zOCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzM5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80MSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzQyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80NCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzQ1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80NyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzQ4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81MCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzUxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81MyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzU0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81NiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzU3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNTggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81OSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzYwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82MiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzYzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82NSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzY2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82OCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzY5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83MSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzcyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83NCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzc1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83NyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzc4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84MCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzgxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfODIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84MyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzg0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfODUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84NiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzg3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfODggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84OSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzkwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85MiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzkzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85NSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzk2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85OCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzk5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTAwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTAxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTAyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTAzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTA0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTA1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTA2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTA3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTA4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTA5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTEwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTExIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTEyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTEzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTE0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTE1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTE2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTE3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTE4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTE5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTIwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTIxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTIyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTIzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTI0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTI1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTI2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTI3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTI4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTI5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTMwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTMxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTMyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTMzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTM0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTM1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTM2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTM3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTM4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTM5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQ0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQ1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQ2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQ3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQ4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTQ5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTUwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTUxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTUyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTUzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTU0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTU1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTU2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTU3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTU4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTU5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTYwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTYxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTYyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTYzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTY0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTY1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTY2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTY3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTY4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTY5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTcwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTcxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTcyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTczIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTc0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTc1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTc2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTc3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTc4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTc5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTgwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTgxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTgyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTgzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTg0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTg1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTg2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTg3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTg4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTg5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTkwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTkxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTkyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTkzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTk0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTk1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTk2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTk3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTk4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTk5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjAwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjAxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjAyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjAzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjA0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjA1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjA2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjA3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjA4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjA5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjEwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjExIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjEyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjEzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjE0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjE1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjE2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjE3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjE4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjE5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjIwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjIxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjIyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjIzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjI0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjI1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjI2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjI3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjI4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjI5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjMwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjMxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjMyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjMzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjM0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjM1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjM2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjM3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjM4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjM5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQ0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQ1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQ2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQ3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQ4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQ5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjUwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjUxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjUyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjUzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjU0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjU1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjU2IDEKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvY29tcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9jb21wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE0ZDY0YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvY29tcGwuaHBwCkBAIC0wLDAgKzEsMzYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTE9HSUNBTF9DT01QTF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX0NPTVBMX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0NPTVBMICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPTVBMKHgpIEJPT1NUX1BQX0NPTVBMX0koeCkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09NUEwoeCkgQk9PU1RfUFBfQ09NUExfT08oKHgpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09NUExfT08ocGFyKSBCT09TVF9QUF9DT01QTF9JICMjIHBhcgorIyBlbmRpZgorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01QTF9JKHgpIEJPT1NUX1BQX0NPTVBMXyAjIyB4CisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPTVBMX0koeCkgQk9PU1RfUFBfQ09NUExfSUQoQk9PU1RfUFBfQ09NUExfICMjIHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01QTF9JRChpZCkgaWQKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0NPTVBMXzAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQ09NUExfMSAwCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL25vdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL25vdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA5NzA3OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvbm90LmhwcApAQCAtMCwwICsxLDMwIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX05PVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX05PVF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvY29tcGwuaHBwPgorIworIyAvKiBCT09TVF9QUF9OT1QgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9OT1QoeCkgQk9PU1RfUFBfQ09NUEwoQk9PU1RfUFBfQk9PTCh4KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTk9UKHgpIEJPT1NUX1BQX05PVF9JKHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9OT1RfSSh4KSBCT09TVF9QUF9DT01QTChCT09TVF9QUF9CT09MKHgpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9vci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWM1ZGJlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9vci5ocHAKQEAgLTAsMCArMSwzMCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTE9HSUNBTF9PUl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX09SX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRvci5ocHA+CisjCisjIC8qIEJPT1NUX1BQX09SICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfT1IocCwgcSkgQk9PU1RfUFBfQklUT1IoQk9PU1RfUFBfQk9PTChwKSwgQk9PU1RfUFBfQk9PTChxKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfT1IocCwgcSkgQk9PU1RfUFBfT1JfSShwLCBxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfT1JfSShwLCBxKSBCT09TVF9QUF9CSVRPUihCT09TVF9QUF9CT09MKHApLCBCT09TVF9QUF9CT09MKHEpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YzJlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9jb21tYS5ocHAKQEAgLTAsMCArMSwyMSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUFVOQ1RVQVRJT05fQ09NTUFfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUFVOQ1RVQVRJT05fQ09NTUFfSFBQCisjCisjIC8qIEJPT1NUX1BQX0NPTU1BICovCisjCisjIGRlZmluZSBCT09TVF9QUF9DT01NQSgpICwKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWYwNzAyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWFfaWYuaHBwCkBAIC0wLDAgKzEsMzEgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1BVTkNUVUFUSU9OX0NPTU1BX0lGX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1BVTkNUVUFUSU9OX0NPTU1BX0lGX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwPgorIworIyAvKiBCT09TVF9QUF9DT01NQV9JRiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPTU1BX0lGKGNvbmQpIEJPT1NUX1BQX0lGKGNvbmQsIEJPT1NUX1BQX0NPTU1BLCBCT09TVF9QUF9FTVBUWSkoKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01NQV9JRihjb25kKSBCT09TVF9QUF9DT01NQV9JRl9JKGNvbmQpCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01NQV9JRl9JKGNvbmQpIEJPT1NUX1BQX0lGKGNvbmQsIEJPT1NUX1BQX0NPTU1BLCBCT09TVF9QUF9FTVBUWSkoKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vcGFyZW4uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vcGFyZW4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YzE4Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9wYXJlbi5ocHAKQEAgLTAsMCArMSwyMyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9QVU5DVFVBVElPTl9QQVJFTl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9QVU5DVFVBVElPTl9QQVJFTl9IUFAKKyMKKyMgLyogQk9PU1RfUFBfTFBBUkVOICovCisjCisjIGRlZmluZSBCT09TVF9QUF9MUEFSRU4oKSAoCisjCisjIC8qIEJPT1NUX1BQX1JQQVJFTiAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfUlBBUkVOKCkgKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk4YzY1YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHAKQEAgLTAsMCArMSwxNyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFQVRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRUFUX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0XzJuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfMm5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmQwMGI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZWF0XzJuZC5ocHAKQEAgLTAsMCArMSwxNyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFQVRfMk5EX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVBVF8yTkRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHA+CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfZnJvbV90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXRfZnJvbV90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJjZWEyYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdF9mcm9tX3RvLmhwcApAQCAtMCwwICsxLDE3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVBVF9GUk9NX1RPX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVBVF9GUk9NX1RPX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXRfZnJvbV90by5ocHA+CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9kbWMvZm9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2RtYy9mb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNmZlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9kbWMvZm9yLmhwcApAQCAtMCwwICsxLDUzNiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfRk9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fREVUQUlMX0ZPUl9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yX0MoQk9PU1RfUFBfQk9PTChwIyMoMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzNfQyhCT09TVF9QUF9CT09MKHAjIyg0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNF9DKEJPT1NUX1BQX0JPT0wocCMjKDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81X0MoQk9PU1RfUFBfQk9PTChwIyMoNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzZfQyhCT09TVF9QUF9CT09MKHAjIyg3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfN19DKEJPT1NUX1BQX0JPT0wocCMjKDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84X0MoQk9PU1RfUFBfQk9PTChwIyMoOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzlfQyhCT09TVF9QUF9CT09MKHAjIygxMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMF9DKEJPT1NUX1BQX0JPT0wocCMjKDExLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExX0MoQk9PU1RfUFBfQk9PTChwIyMoMTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTJfQyhCT09TVF9QUF9CT09MKHAjIygxMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xM19DKEJPT1NUX1BQX0JPT0wocCMjKDE0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTVfQyhCT09TVF9QUF9CT09MKHAjIygxNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNl9DKEJPT1NUX1BQX0JPT0wocCMjKDE3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMThfQyhCT09TVF9QUF9CT09MKHAjIygxOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwX0MoQk9PU1RfUFBfQk9PTChwIyMoMjEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjFfQyhCT09TVF9QUF9CT09MKHAjIygyMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzX0MoQk9PU1RfUFBfQk9PTChwIyMoMjQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjRfQyhCT09TVF9QUF9CT09MKHAjIygyNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNV9DKEJPT1NUX1BQX0JPT0wocCMjKDI2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI2X0MoQk9PU1RfUFBfQk9PTChwIyMoMjcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjdfQyhCT09TVF9QUF9CT09MKHAjIygyOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yOF9DKEJPT1NUX1BQX0JPT0wocCMjKDI5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI5X0MoQk9PU1RfUFBfQk9PTChwIyMoMzAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzBfQyhCT09TVF9QUF9CT09MKHAjIygzMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMV9DKEJPT1NUX1BQX0JPT0wocCMjKDMyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMyX0MoQk9PU1RfUFBfQk9PTChwIyMoMzMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzNfQyhCT09TVF9QUF9CT09MKHAjIygzNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNF9DKEJPT1NUX1BQX0JPT0wocCMjKDM1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM1X0MoQk9PU1RfUFBfQk9PTChwIyMoMzYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzZfQyhCT09TVF9QUF9CT09MKHAjIygzNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zN19DKEJPT1NUX1BQX0JPT0wocCMjKDM4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM4X0MoQk9PU1RfUFBfQk9PTChwIyMoMzksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzlfQyhCT09TVF9QUF9CT09MKHAjIyg0MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80MF9DKEJPT1NUX1BQX0JPT0wocCMjKDQxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQxX0MoQk9PU1RfUFBfQk9PTChwIyMoNDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDJfQyhCT09TVF9QUF9CT09MKHAjIyg0MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80M19DKEJPT1NUX1BQX0JPT0wocCMjKDQ0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ0X0MoQk9PU1RfUFBfQk9PTChwIyMoNDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDVfQyhCT09TVF9QUF9CT09MKHAjIyg0NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDQ3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ3X0MoQk9PU1RfUFBfQk9PTChwIyMoNDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDhfQyhCT09TVF9QUF9CT09MKHAjIyg0OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80OV9DKEJPT1NUX1BQX0JPT0wocCMjKDUwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUwX0MoQk9PU1RfUFBfQk9PTChwIyMoNTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTFfQyhCT09TVF9QUF9CT09MKHAjIyg1MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDUzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUzX0MoQk9PU1RfUFBfQk9PTChwIyMoNTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTRfQyhCT09TVF9QUF9CT09MKHAjIyg1NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81NV9DKEJPT1NUX1BQX0JPT0wocCMjKDU2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU2X0MoQk9PU1RfUFBfQk9PTChwIyMoNTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTdfQyhCT09TVF9QUF9CT09MKHAjIyg1OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81OF9DKEJPT1NUX1BQX0JPT0wocCMjKDU5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU5X0MoQk9PU1RfUFBfQk9PTChwIyMoNjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjBfQyhCT09TVF9QUF9CT09MKHAjIyg2MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82MV9DKEJPT1NUX1BQX0JPT0wocCMjKDYyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYyX0MoQk9PU1RfUFBfQk9PTChwIyMoNjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjNfQyhCT09TVF9QUF9CT09MKHAjIyg2NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82NF9DKEJPT1NUX1BQX0JPT0wocCMjKDY1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY1X0MoQk9PU1RfUFBfQk9PTChwIyMoNjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjZfQyhCT09TVF9QUF9CT09MKHAjIyg2NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82N19DKEJPT1NUX1BQX0JPT0wocCMjKDY4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY4X0MoQk9PU1RfUFBfQk9PTChwIyMoNjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjlfQyhCT09TVF9QUF9CT09MKHAjIyg3MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83MF9DKEJPT1NUX1BQX0JPT0wocCMjKDcxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcxX0MoQk9PU1RfUFBfQk9PTChwIyMoNzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzJfQyhCT09TVF9QUF9CT09MKHAjIyg3MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzczKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83M19DKEJPT1NUX1BQX0JPT0wocCMjKDc0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc0X0MoQk9PU1RfUFBfQk9PTChwIyMoNzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzVfQyhCT09TVF9QUF9CT09MKHAjIyg3NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDc3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc3X0MoQk9PU1RfUFBfQk9PTChwIyMoNzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzhfQyhCT09TVF9QUF9CT09MKHAjIyg3OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83OV9DKEJPT1NUX1BQX0JPT0wocCMjKDgwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgwX0MoQk9PU1RfUFBfQk9PTChwIyMoODEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODFfQyhCT09TVF9QUF9CT09MKHAjIyg4MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDgzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgzX0MoQk9PU1RfUFBfQk9PTChwIyMoODQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODRfQyhCT09TVF9QUF9CT09MKHAjIyg4NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84NV9DKEJPT1NUX1BQX0JPT0wocCMjKDg2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg2X0MoQk9PU1RfUFBfQk9PTChwIyMoODcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODdfQyhCT09TVF9QUF9CT09MKHAjIyg4OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84OF9DKEJPT1NUX1BQX0JPT0wocCMjKDg5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg5X0MoQk9PU1RfUFBfQk9PTChwIyMoOTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTBfQyhCT09TVF9QUF9CT09MKHAjIyg5MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85MV9DKEJPT1NUX1BQX0JPT0wocCMjKDkyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkyX0MoQk9PU1RfUFBfQk9PTChwIyMoOTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTNfQyhCT09TVF9QUF9CT09MKHAjIyg5NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85NF9DKEJPT1NUX1BQX0JPT0wocCMjKDk1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk1X0MoQk9PU1RfUFBfQk9PTChwIyMoOTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTZfQyhCT09TVF9QUF9CT09MKHAjIyg5NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85N19DKEJPT1NUX1BQX0JPT0wocCMjKDk4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk4X0MoQk9PU1RfUFBfQk9PTChwIyMoOTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTlfQyhCT09TVF9QUF9CT09MKHAjIygxMDAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMF9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTAyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDJfQyhCT09TVF9QUF9CT09MKHAjIygxMDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwM19DKEJPT1NUX1BQX0JPT0wocCMjKDEwNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTA1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDVfQyhCT09TVF9QUF9CT09MKHAjIygxMDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNl9DKEJPT1NUX1BQX0JPT0wocCMjKDEwNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTA4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDhfQyhCT09TVF9QUF9CT09MKHAjIygxMDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwOV9DKEJPT1NUX1BQX0JPT0wocCMjKDExMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTExLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTExKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTFfQyhCT09TVF9QUF9CT09MKHAjIygxMTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMl9DKEJPT1NUX1BQX0JPT0wocCMjKDExMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTE0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTRfQyhCT09TVF9QUF9CT09MKHAjIygxMTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNV9DKEJPT1NUX1BQX0JPT0wocCMjKDExNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTE3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTdfQyhCT09TVF9QUF9CT09MKHAjIygxMTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExOF9DKEJPT1NUX1BQX0JPT0wocCMjKDExOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE5X0MoQk9PU1RfUFBfQk9PTChwIyMoMTIwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjBfQyhCT09TVF9QUF9CT09MKHAjIygxMjEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMV9DKEJPT1NUX1BQX0JPT0wocCMjKDEyMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIyX0MoQk9PU1RfUFBfQk9PTChwIyMoMTIzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjNfQyhCT09TVF9QUF9CT09MKHAjIygxMjQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNF9DKEJPT1NUX1BQX0JPT0wocCMjKDEyNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI1X0MoQk9PU1RfUFBfQk9PTChwIyMoMTI2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjZfQyhCT09TVF9QUF9CT09MKHAjIygxMjcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyN19DKEJPT1NUX1BQX0JPT0wocCMjKDEyOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI4X0MoQk9PU1RfUFBfQk9PTChwIyMoMTI5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjlfQyhCT09TVF9QUF9CT09MKHAjIygxMzAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMF9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTMyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzJfQyhCT09TVF9QUF9CT09MKHAjIygxMzMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzM19DKEJPT1NUX1BQX0JPT0wocCMjKDEzNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTM1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzVfQyhCT09TVF9QUF9CT09MKHAjIygxMzYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNl9DKEJPT1NUX1BQX0JPT0wocCMjKDEzNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTM4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzhfQyhCT09TVF9QUF9CT09MKHAjIygxMzksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzOV9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTQxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDFfQyhCT09TVF9QUF9CT09MKHAjIygxNDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTQ0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDRfQyhCT09TVF9QUF9CT09MKHAjIygxNDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE0NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTQ3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDdfQyhCT09TVF9QUF9CT09MKHAjIygxNDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE0OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ5X0MoQk9PU1RfUFBfQk9PTChwIyMoMTUwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTBfQyhCT09TVF9QUF9CT09MKHAjIygxNTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE1MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUyX0MoQk9PU1RfUFBfQk9PTChwIyMoMTUzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTNfQyhCT09TVF9QUF9CT09MKHAjIygxNTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE1NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU1X0MoQk9PU1RfUFBfQk9PTChwIyMoMTU2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTZfQyhCT09TVF9QUF9CT09MKHAjIygxNTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1N19DKEJPT1NUX1BQX0JPT0wocCMjKDE1OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU4X0MoQk9PU1RfUFBfQk9PTChwIyMoMTU5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTlfQyhCT09TVF9QUF9CT09MKHAjIygxNjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTYyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjJfQyhCT09TVF9QUF9CT09MKHAjIygxNjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2M19DKEJPT1NUX1BQX0JPT0wocCMjKDE2NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTY1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjVfQyhCT09TVF9QUF9CT09MKHAjIygxNjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE2NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTY4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjhfQyhCT09TVF9QUF9CT09MKHAjIygxNjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTcxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzFfQyhCT09TVF9QUF9CT09MKHAjIygxNzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTczX0MoQk9PU1RfUFBfQk9PTChwIyMoMTc0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzRfQyhCT09TVF9QUF9CT09MKHAjIygxNzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE3NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTc3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzdfQyhCT09TVF9QUF9CT09MKHAjIygxNzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE3OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc5X0MoQk9PU1RfUFBfQk9PTChwIyMoMTgwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODBfQyhCT09TVF9QUF9CT09MKHAjIygxODEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE4MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgyX0MoQk9PU1RfUFBfQk9PTChwIyMoMTgzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODNfQyhCT09TVF9QUF9CT09MKHAjIygxODQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE4NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg1X0MoQk9PU1RfUFBfQk9PTChwIyMoMTg2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODZfQyhCT09TVF9QUF9CT09MKHAjIygxODcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4N19DKEJPT1NUX1BQX0JPT0wocCMjKDE4OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg4X0MoQk9PU1RfUFBfQk9PTChwIyMoMTg5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODlfQyhCT09TVF9QUF9CT09MKHAjIygxOTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTkyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTJfQyhCT09TVF9QUF9CT09MKHAjIygxOTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5M19DKEJPT1NUX1BQX0JPT0wocCMjKDE5NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTk1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTVfQyhCT09TVF9QUF9CT09MKHAjIygxOTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE5NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTk4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOThfQyhCT09TVF9QUF9CT09MKHAjIygxOTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5OV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAwX0MoQk9PU1RfUFBfQk9PTChwIyMoMjAxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDFfQyhCT09TVF9QUF9CT09MKHAjIygyMDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAzX0MoQk9PU1RfUFBfQk9PTChwIyMoMjA0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDRfQyhCT09TVF9QUF9CT09MKHAjIygyMDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA2X0MoQk9PU1RfUFBfQk9PTChwIyMoMjA3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDdfQyhCT09TVF9QUF9CT09MKHAjIygyMDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIwOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA5X0MoQk9PU1RfUFBfQk9PTChwIyMoMjEwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTBfQyhCT09TVF9QUF9CT09MKHAjIygyMTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIxMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjEyX0MoQk9PU1RfUFBfQk9PTChwIyMoMjEzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTNfQyhCT09TVF9QUF9CT09MKHAjIygyMTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIxNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE1X0MoQk9PU1RfUFBfQk9PTChwIyMoMjE2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTZfQyhCT09TVF9QUF9CT09MKHAjIygyMTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxN19DKEJPT1NUX1BQX0JPT0wocCMjKDIxOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE4X0MoQk9PU1RfUFBfQk9PTChwIyMoMjE5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTlfQyhCT09TVF9QUF9CT09MKHAjIygyMjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIxX0MoQk9PU1RfUFBfQk9PTChwIyMoMjIyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjJfQyhCT09TVF9QUF9CT09MKHAjIygyMjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyM19DKEJPT1NUX1BQX0JPT0wocCMjKDIyNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI0X0MoQk9PU1RfUFBfQk9PTChwIyMoMjI1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjVfQyhCT09TVF9QUF9CT09MKHAjIygyMjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNl9DKEJPT1NUX1BQX0JPT0wocCMjKDIyNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI3X0MoQk9PU1RfUFBfQk9PTChwIyMoMjI4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjhfQyhCT09TVF9QUF9CT09MKHAjIygyMjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMwX0MoQk9PU1RfUFBfQk9PTChwIyMoMjMxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzFfQyhCT09TVF9QUF9CT09MKHAjIygyMzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMzX0MoQk9PU1RfUFBfQk9PTChwIyMoMjM0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzRfQyhCT09TVF9QUF9CT09MKHAjIygyMzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIzNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM2X0MoQk9PU1RfUFBfQk9PTChwIyMoMjM3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzdfQyhCT09TVF9QUF9CT09MKHAjIygyMzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIzOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM5X0MoQk9PU1RfUFBfQk9PTChwIyMoMjQwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDBfQyhCT09TVF9QUF9CT09MKHAjIygyNDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0MV9DKEJPT1NUX1BQX0JPT0wocCMjKDI0MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQyX0MoQk9PU1RfUFBfQk9PTChwIyMoMjQzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDNfQyhCT09TVF9QUF9CT09MKHAjIygyNDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0NF9DKEJPT1NUX1BQX0JPT0wocCMjKDI0NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ1X0MoQk9PU1RfUFBfQk9PTChwIyMoMjQ2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDZfQyhCT09TVF9QUF9CT09MKHAjIygyNDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0N19DKEJPT1NUX1BQX0JPT0wocCMjKDI0OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ4X0MoQk9PU1RfUFBfQk9PTChwIyMoMjQ5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDlfQyhCT09TVF9QUF9CT09MKHAjIygyNTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1MF9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUxX0MoQk9PU1RfUFBfQk9PTChwIyMoMjUyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTJfQyhCT09TVF9QUF9CT09MKHAjIygyNTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1M19DKEJPT1NUX1BQX0JPT0wocCMjKDI1NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU0X0MoQk9PU1RfUFBfQk9PTChwIyMoMjU1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTVfQyhCT09TVF9QUF9CT09MKHAjIygyNTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDI1NywgcykpLCBzLCBwLCBvLCBtKQorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzYxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzcwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDcxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDczLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzczLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzczX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzgyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzkxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDkyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTAyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTYyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTcxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTcxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTczLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTczX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTkyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTkyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjAxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjAxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1NywgcyksIHAsIG8sIG0pCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9lZGcvZm9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2VkZy9mb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMzBhYjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9lZGcvZm9yLmhwcApAQCAtMCwwICsxLDUzNCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfRURHX0ZPUl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0RFVEFJTF9FREdfRk9SX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMThfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzczKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTExKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOThfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjExX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU2X0kocywgcCwgbywgbSkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIsIHMpIEJPT1NUX1BQX0lGKHAoMiwgcyksIEJPT1NUX1BQX0ZPUl8yLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMsIHMpIEJPT1NUX1BQX0lGKHAoMywgcyksIEJPT1NUX1BQX0ZPUl8zLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQsIHMpIEJPT1NUX1BQX0lGKHAoNCwgcyksIEJPT1NUX1BQX0ZPUl80LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUsIHMpIEJPT1NUX1BQX0lGKHAoNSwgcyksIEJPT1NUX1BQX0ZPUl81LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYsIHMpIEJPT1NUX1BQX0lGKHAoNiwgcyksIEJPT1NUX1BQX0ZPUl82LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcsIHMpIEJPT1NUX1BQX0lGKHAoNywgcyksIEJPT1NUX1BQX0ZPUl83LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgsIHMpIEJPT1NUX1BQX0lGKHAoOCwgcyksIEJPT1NUX1BQX0ZPUl84LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDksIHMpIEJPT1NUX1BQX0lGKHAoOSwgcyksIEJPT1NUX1BQX0ZPUl85LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMCwgcykgQk9PU1RfUFBfSUYocCgxMCwgcyksIEJPT1NUX1BQX0ZPUl8xMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMSwgcykgQk9PU1RfUFBfSUYocCgxMSwgcyksIEJPT1NUX1BQX0ZPUl8xMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMiwgcykgQk9PU1RfUFBfSUYocCgxMiwgcyksIEJPT1NUX1BQX0ZPUl8xMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMywgcykgQk9PU1RfUFBfSUYocCgxMywgcyksIEJPT1NUX1BQX0ZPUl8xMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNCwgcykgQk9PU1RfUFBfSUYocCgxNCwgcyksIEJPT1NUX1BQX0ZPUl8xNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNSwgcykgQk9PU1RfUFBfSUYocCgxNSwgcyksIEJPT1NUX1BQX0ZPUl8xNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNiwgcykgQk9PU1RfUFBfSUYocCgxNiwgcyksIEJPT1NUX1BQX0ZPUl8xNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNywgcykgQk9PU1RfUFBfSUYocCgxNywgcyksIEJPT1NUX1BQX0ZPUl8xNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOCwgcykgQk9PU1RfUFBfSUYocCgxOCwgcyksIEJPT1NUX1BQX0ZPUl8xOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOSwgcykgQk9PU1RfUFBfSUYocCgxOSwgcyksIEJPT1NUX1BQX0ZPUl8xOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMCwgcykgQk9PU1RfUFBfSUYocCgyMCwgcyksIEJPT1NUX1BQX0ZPUl8yMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMSwgcykgQk9PU1RfUFBfSUYocCgyMSwgcyksIEJPT1NUX1BQX0ZPUl8yMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMiwgcykgQk9PU1RfUFBfSUYocCgyMiwgcyksIEJPT1NUX1BQX0ZPUl8yMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMywgcykgQk9PU1RfUFBfSUYocCgyMywgcyksIEJPT1NUX1BQX0ZPUl8yMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNCwgcykgQk9PU1RfUFBfSUYocCgyNCwgcyksIEJPT1NUX1BQX0ZPUl8yNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNSwgcykgQk9PU1RfUFBfSUYocCgyNSwgcyksIEJPT1NUX1BQX0ZPUl8yNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNiwgcykgQk9PU1RfUFBfSUYocCgyNiwgcyksIEJPT1NUX1BQX0ZPUl8yNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNywgcykgQk9PU1RfUFBfSUYocCgyNywgcyksIEJPT1NUX1BQX0ZPUl8yNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOCwgcykgQk9PU1RfUFBfSUYocCgyOCwgcyksIEJPT1NUX1BQX0ZPUl8yOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOSwgcykgQk9PU1RfUFBfSUYocCgyOSwgcyksIEJPT1NUX1BQX0ZPUl8yOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMCwgcykgQk9PU1RfUFBfSUYocCgzMCwgcyksIEJPT1NUX1BQX0ZPUl8zMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMSwgcykgQk9PU1RfUFBfSUYocCgzMSwgcyksIEJPT1NUX1BQX0ZPUl8zMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMiwgcykgQk9PU1RfUFBfSUYocCgzMiwgcyksIEJPT1NUX1BQX0ZPUl8zMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMywgcykgQk9PU1RfUFBfSUYocCgzMywgcyksIEJPT1NUX1BQX0ZPUl8zMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNCwgcykgQk9PU1RfUFBfSUYocCgzNCwgcyksIEJPT1NUX1BQX0ZPUl8zNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNSwgcykgQk9PU1RfUFBfSUYocCgzNSwgcyksIEJPT1NUX1BQX0ZPUl8zNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNiwgcykgQk9PU1RfUFBfSUYocCgzNiwgcyksIEJPT1NUX1BQX0ZPUl8zNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNywgcykgQk9PU1RfUFBfSUYocCgzNywgcyksIEJPT1NUX1BQX0ZPUl8zNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOCwgcykgQk9PU1RfUFBfSUYocCgzOCwgcyksIEJPT1NUX1BQX0ZPUl8zOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOSwgcykgQk9PU1RfUFBfSUYocCgzOSwgcyksIEJPT1NUX1BQX0ZPUl8zOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MCwgcykgQk9PU1RfUFBfSUYocCg0MCwgcyksIEJPT1NUX1BQX0ZPUl80MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MSwgcykgQk9PU1RfUFBfSUYocCg0MSwgcyksIEJPT1NUX1BQX0ZPUl80MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MiwgcykgQk9PU1RfUFBfSUYocCg0MiwgcyksIEJPT1NUX1BQX0ZPUl80MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MywgcykgQk9PU1RfUFBfSUYocCg0MywgcyksIEJPT1NUX1BQX0ZPUl80MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NCwgcykgQk9PU1RfUFBfSUYocCg0NCwgcyksIEJPT1NUX1BQX0ZPUl80NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NSwgcykgQk9PU1RfUFBfSUYocCg0NSwgcyksIEJPT1NUX1BQX0ZPUl80NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NiwgcykgQk9PU1RfUFBfSUYocCg0NiwgcyksIEJPT1NUX1BQX0ZPUl80NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NywgcykgQk9PU1RfUFBfSUYocCg0NywgcyksIEJPT1NUX1BQX0ZPUl80NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OCwgcykgQk9PU1RfUFBfSUYocCg0OCwgcyksIEJPT1NUX1BQX0ZPUl80OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OSwgcykgQk9PU1RfUFBfSUYocCg0OSwgcyksIEJPT1NUX1BQX0ZPUl80OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MCwgcykgQk9PU1RfUFBfSUYocCg1MCwgcyksIEJPT1NUX1BQX0ZPUl81MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MSwgcykgQk9PU1RfUFBfSUYocCg1MSwgcyksIEJPT1NUX1BQX0ZPUl81MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MiwgcykgQk9PU1RfUFBfSUYocCg1MiwgcyksIEJPT1NUX1BQX0ZPUl81MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MywgcykgQk9PU1RfUFBfSUYocCg1MywgcyksIEJPT1NUX1BQX0ZPUl81MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NCwgcykgQk9PU1RfUFBfSUYocCg1NCwgcyksIEJPT1NUX1BQX0ZPUl81NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NSwgcykgQk9PU1RfUFBfSUYocCg1NSwgcyksIEJPT1NUX1BQX0ZPUl81NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NiwgcykgQk9PU1RfUFBfSUYocCg1NiwgcyksIEJPT1NUX1BQX0ZPUl81NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NywgcykgQk9PU1RfUFBfSUYocCg1NywgcyksIEJPT1NUX1BQX0ZPUl81NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OCwgcykgQk9PU1RfUFBfSUYocCg1OCwgcyksIEJPT1NUX1BQX0ZPUl81OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OSwgcykgQk9PU1RfUFBfSUYocCg1OSwgcyksIEJPT1NUX1BQX0ZPUl81OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MCwgcykgQk9PU1RfUFBfSUYocCg2MCwgcyksIEJPT1NUX1BQX0ZPUl82MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MSwgcykgQk9PU1RfUFBfSUYocCg2MSwgcyksIEJPT1NUX1BQX0ZPUl82MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MiwgcykgQk9PU1RfUFBfSUYocCg2MiwgcyksIEJPT1NUX1BQX0ZPUl82MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MywgcykgQk9PU1RfUFBfSUYocCg2MywgcyksIEJPT1NUX1BQX0ZPUl82MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NCwgcykgQk9PU1RfUFBfSUYocCg2NCwgcyksIEJPT1NUX1BQX0ZPUl82NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NSwgcykgQk9PU1RfUFBfSUYocCg2NSwgcyksIEJPT1NUX1BQX0ZPUl82NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NiwgcykgQk9PU1RfUFBfSUYocCg2NiwgcyksIEJPT1NUX1BQX0ZPUl82NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NywgcykgQk9PU1RfUFBfSUYocCg2NywgcyksIEJPT1NUX1BQX0ZPUl82NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OCwgcykgQk9PU1RfUFBfSUYocCg2OCwgcyksIEJPT1NUX1BQX0ZPUl82OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OSwgcykgQk9PU1RfUFBfSUYocCg2OSwgcyksIEJPT1NUX1BQX0ZPUl82OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MCwgcykgQk9PU1RfUFBfSUYocCg3MCwgcyksIEJPT1NUX1BQX0ZPUl83MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MSwgcykgQk9PU1RfUFBfSUYocCg3MSwgcyksIEJPT1NUX1BQX0ZPUl83MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MiwgcykgQk9PU1RfUFBfSUYocCg3MiwgcyksIEJPT1NUX1BQX0ZPUl83MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MywgcykgQk9PU1RfUFBfSUYocCg3MywgcyksIEJPT1NUX1BQX0ZPUl83MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzczX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NCwgcykgQk9PU1RfUFBfSUYocCg3NCwgcyksIEJPT1NUX1BQX0ZPUl83NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NSwgcykgQk9PU1RfUFBfSUYocCg3NSwgcyksIEJPT1NUX1BQX0ZPUl83NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NiwgcykgQk9PU1RfUFBfSUYocCg3NiwgcyksIEJPT1NUX1BQX0ZPUl83NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NywgcykgQk9PU1RfUFBfSUYocCg3NywgcyksIEJPT1NUX1BQX0ZPUl83NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OCwgcykgQk9PU1RfUFBfSUYocCg3OCwgcyksIEJPT1NUX1BQX0ZPUl83OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OSwgcykgQk9PU1RfUFBfSUYocCg3OSwgcyksIEJPT1NUX1BQX0ZPUl83OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MCwgcykgQk9PU1RfUFBfSUYocCg4MCwgcyksIEJPT1NUX1BQX0ZPUl84MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MSwgcykgQk9PU1RfUFBfSUYocCg4MSwgcyksIEJPT1NUX1BQX0ZPUl84MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MiwgcykgQk9PU1RfUFBfSUYocCg4MiwgcyksIEJPT1NUX1BQX0ZPUl84MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MywgcykgQk9PU1RfUFBfSUYocCg4MywgcyksIEJPT1NUX1BQX0ZPUl84MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NCwgcykgQk9PU1RfUFBfSUYocCg4NCwgcyksIEJPT1NUX1BQX0ZPUl84NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NSwgcykgQk9PU1RfUFBfSUYocCg4NSwgcyksIEJPT1NUX1BQX0ZPUl84NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NiwgcykgQk9PU1RfUFBfSUYocCg4NiwgcyksIEJPT1NUX1BQX0ZPUl84NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NywgcykgQk9PU1RfUFBfSUYocCg4NywgcyksIEJPT1NUX1BQX0ZPUl84NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OCwgcykgQk9PU1RfUFBfSUYocCg4OCwgcyksIEJPT1NUX1BQX0ZPUl84OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OSwgcykgQk9PU1RfUFBfSUYocCg4OSwgcyksIEJPT1NUX1BQX0ZPUl84OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MCwgcykgQk9PU1RfUFBfSUYocCg5MCwgcyksIEJPT1NUX1BQX0ZPUl85MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MSwgcykgQk9PU1RfUFBfSUYocCg5MSwgcyksIEJPT1NUX1BQX0ZPUl85MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MiwgcykgQk9PU1RfUFBfSUYocCg5MiwgcyksIEJPT1NUX1BQX0ZPUl85MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MywgcykgQk9PU1RfUFBfSUYocCg5MywgcyksIEJPT1NUX1BQX0ZPUl85MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NCwgcykgQk9PU1RfUFBfSUYocCg5NCwgcyksIEJPT1NUX1BQX0ZPUl85NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NSwgcykgQk9PU1RfUFBfSUYocCg5NSwgcyksIEJPT1NUX1BQX0ZPUl85NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NiwgcykgQk9PU1RfUFBfSUYocCg5NiwgcyksIEJPT1NUX1BQX0ZPUl85NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NywgcykgQk9PU1RfUFBfSUYocCg5NywgcyksIEJPT1NUX1BQX0ZPUl85NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OCwgcykgQk9PU1RfUFBfSUYocCg5OCwgcyksIEJPT1NUX1BQX0ZPUl85OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OSwgcykgQk9PU1RfUFBfSUYocCg5OSwgcyksIEJPT1NUX1BQX0ZPUl85OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAwLCBzKSBCT09TVF9QUF9JRihwKDEwMCwgcyksIEJPT1NUX1BQX0ZPUl8xMDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAxLCBzKSBCT09TVF9QUF9JRihwKDEwMSwgcyksIEJPT1NUX1BQX0ZPUl8xMDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAyLCBzKSBCT09TVF9QUF9JRihwKDEwMiwgcyksIEJPT1NUX1BQX0ZPUl8xMDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAzLCBzKSBCT09TVF9QUF9JRihwKDEwMywgcyksIEJPT1NUX1BQX0ZPUl8xMDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA0LCBzKSBCT09TVF9QUF9JRihwKDEwNCwgcyksIEJPT1NUX1BQX0ZPUl8xMDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA1LCBzKSBCT09TVF9QUF9JRihwKDEwNSwgcyksIEJPT1NUX1BQX0ZPUl8xMDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA2LCBzKSBCT09TVF9QUF9JRihwKDEwNiwgcyksIEJPT1NUX1BQX0ZPUl8xMDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA3LCBzKSBCT09TVF9QUF9JRihwKDEwNywgcyksIEJPT1NUX1BQX0ZPUl8xMDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA4LCBzKSBCT09TVF9QUF9JRihwKDEwOCwgcyksIEJPT1NUX1BQX0ZPUl8xMDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA5LCBzKSBCT09TVF9QUF9JRihwKDEwOSwgcyksIEJPT1NUX1BQX0ZPUl8xMDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEwLCBzKSBCT09TVF9QUF9JRihwKDExMCwgcyksIEJPT1NUX1BQX0ZPUl8xMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTExLCBzKSBCT09TVF9QUF9JRihwKDExMSwgcyksIEJPT1NUX1BQX0ZPUl8xMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTExX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEyLCBzKSBCT09TVF9QUF9JRihwKDExMiwgcyksIEJPT1NUX1BQX0ZPUl8xMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEzLCBzKSBCT09TVF9QUF9JRihwKDExMywgcyksIEJPT1NUX1BQX0ZPUl8xMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE0LCBzKSBCT09TVF9QUF9JRihwKDExNCwgcyksIEJPT1NUX1BQX0ZPUl8xMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE1LCBzKSBCT09TVF9QUF9JRihwKDExNSwgcyksIEJPT1NUX1BQX0ZPUl8xMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE2LCBzKSBCT09TVF9QUF9JRihwKDExNiwgcyksIEJPT1NUX1BQX0ZPUl8xMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE3LCBzKSBCT09TVF9QUF9JRihwKDExNywgcyksIEJPT1NUX1BQX0ZPUl8xMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE4LCBzKSBCT09TVF9QUF9JRihwKDExOCwgcyksIEJPT1NUX1BQX0ZPUl8xMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE5LCBzKSBCT09TVF9QUF9JRihwKDExOSwgcyksIEJPT1NUX1BQX0ZPUl8xMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIwLCBzKSBCT09TVF9QUF9JRihwKDEyMCwgcyksIEJPT1NUX1BQX0ZPUl8xMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIxLCBzKSBCT09TVF9QUF9JRihwKDEyMSwgcyksIEJPT1NUX1BQX0ZPUl8xMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIyLCBzKSBCT09TVF9QUF9JRihwKDEyMiwgcyksIEJPT1NUX1BQX0ZPUl8xMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIzLCBzKSBCT09TVF9QUF9JRihwKDEyMywgcyksIEJPT1NUX1BQX0ZPUl8xMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI0LCBzKSBCT09TVF9QUF9JRihwKDEyNCwgcyksIEJPT1NUX1BQX0ZPUl8xMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI1LCBzKSBCT09TVF9QUF9JRihwKDEyNSwgcyksIEJPT1NUX1BQX0ZPUl8xMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI2LCBzKSBCT09TVF9QUF9JRihwKDEyNiwgcyksIEJPT1NUX1BQX0ZPUl8xMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI3LCBzKSBCT09TVF9QUF9JRihwKDEyNywgcyksIEJPT1NUX1BQX0ZPUl8xMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI4LCBzKSBCT09TVF9QUF9JRihwKDEyOCwgcyksIEJPT1NUX1BQX0ZPUl8xMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI5LCBzKSBCT09TVF9QUF9JRihwKDEyOSwgcyksIEJPT1NUX1BQX0ZPUl8xMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMwLCBzKSBCT09TVF9QUF9JRihwKDEzMCwgcyksIEJPT1NUX1BQX0ZPUl8xMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMxLCBzKSBCT09TVF9QUF9JRihwKDEzMSwgcyksIEJPT1NUX1BQX0ZPUl8xMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMyLCBzKSBCT09TVF9QUF9JRihwKDEzMiwgcyksIEJPT1NUX1BQX0ZPUl8xMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMzLCBzKSBCT09TVF9QUF9JRihwKDEzMywgcyksIEJPT1NUX1BQX0ZPUl8xMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM0LCBzKSBCT09TVF9QUF9JRihwKDEzNCwgcyksIEJPT1NUX1BQX0ZPUl8xMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM1LCBzKSBCT09TVF9QUF9JRihwKDEzNSwgcyksIEJPT1NUX1BQX0ZPUl8xMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM2LCBzKSBCT09TVF9QUF9JRihwKDEzNiwgcyksIEJPT1NUX1BQX0ZPUl8xMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM3LCBzKSBCT09TVF9QUF9JRihwKDEzNywgcyksIEJPT1NUX1BQX0ZPUl8xMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM4LCBzKSBCT09TVF9QUF9JRihwKDEzOCwgcyksIEJPT1NUX1BQX0ZPUl8xMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM5LCBzKSBCT09TVF9QUF9JRihwKDEzOSwgcyksIEJPT1NUX1BQX0ZPUl8xMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQwLCBzKSBCT09TVF9QUF9JRihwKDE0MCwgcyksIEJPT1NUX1BQX0ZPUl8xNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQxLCBzKSBCT09TVF9QUF9JRihwKDE0MSwgcyksIEJPT1NUX1BQX0ZPUl8xNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQyLCBzKSBCT09TVF9QUF9JRihwKDE0MiwgcyksIEJPT1NUX1BQX0ZPUl8xNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQzLCBzKSBCT09TVF9QUF9JRihwKDE0MywgcyksIEJPT1NUX1BQX0ZPUl8xNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ0LCBzKSBCT09TVF9QUF9JRihwKDE0NCwgcyksIEJPT1NUX1BQX0ZPUl8xNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ1LCBzKSBCT09TVF9QUF9JRihwKDE0NSwgcyksIEJPT1NUX1BQX0ZPUl8xNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ2LCBzKSBCT09TVF9QUF9JRihwKDE0NiwgcyksIEJPT1NUX1BQX0ZPUl8xNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ3LCBzKSBCT09TVF9QUF9JRihwKDE0NywgcyksIEJPT1NUX1BQX0ZPUl8xNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ4LCBzKSBCT09TVF9QUF9JRihwKDE0OCwgcyksIEJPT1NUX1BQX0ZPUl8xNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ5LCBzKSBCT09TVF9QUF9JRihwKDE0OSwgcyksIEJPT1NUX1BQX0ZPUl8xNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUwLCBzKSBCT09TVF9QUF9JRihwKDE1MCwgcyksIEJPT1NUX1BQX0ZPUl8xNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUxLCBzKSBCT09TVF9QUF9JRihwKDE1MSwgcyksIEJPT1NUX1BQX0ZPUl8xNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUyLCBzKSBCT09TVF9QUF9JRihwKDE1MiwgcyksIEJPT1NUX1BQX0ZPUl8xNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUzLCBzKSBCT09TVF9QUF9JRihwKDE1MywgcyksIEJPT1NUX1BQX0ZPUl8xNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU0LCBzKSBCT09TVF9QUF9JRihwKDE1NCwgcyksIEJPT1NUX1BQX0ZPUl8xNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU1LCBzKSBCT09TVF9QUF9JRihwKDE1NSwgcyksIEJPT1NUX1BQX0ZPUl8xNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU2LCBzKSBCT09TVF9QUF9JRihwKDE1NiwgcyksIEJPT1NUX1BQX0ZPUl8xNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU3LCBzKSBCT09TVF9QUF9JRihwKDE1NywgcyksIEJPT1NUX1BQX0ZPUl8xNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU4LCBzKSBCT09TVF9QUF9JRihwKDE1OCwgcyksIEJPT1NUX1BQX0ZPUl8xNTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU5LCBzKSBCT09TVF9QUF9JRihwKDE1OSwgcyksIEJPT1NUX1BQX0ZPUl8xNTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYwLCBzKSBCT09TVF9QUF9JRihwKDE2MCwgcyksIEJPT1NUX1BQX0ZPUl8xNjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYxLCBzKSBCT09TVF9QUF9JRihwKDE2MSwgcyksIEJPT1NUX1BQX0ZPUl8xNjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYyLCBzKSBCT09TVF9QUF9JRihwKDE2MiwgcyksIEJPT1NUX1BQX0ZPUl8xNjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYzLCBzKSBCT09TVF9QUF9JRihwKDE2MywgcyksIEJPT1NUX1BQX0ZPUl8xNjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY0LCBzKSBCT09TVF9QUF9JRihwKDE2NCwgcyksIEJPT1NUX1BQX0ZPUl8xNjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY1LCBzKSBCT09TVF9QUF9JRihwKDE2NSwgcyksIEJPT1NUX1BQX0ZPUl8xNjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY2LCBzKSBCT09TVF9QUF9JRihwKDE2NiwgcyksIEJPT1NUX1BQX0ZPUl8xNjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY3LCBzKSBCT09TVF9QUF9JRihwKDE2NywgcyksIEJPT1NUX1BQX0ZPUl8xNjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY4LCBzKSBCT09TVF9QUF9JRihwKDE2OCwgcyksIEJPT1NUX1BQX0ZPUl8xNjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY5LCBzKSBCT09TVF9QUF9JRihwKDE2OSwgcyksIEJPT1NUX1BQX0ZPUl8xNjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcwLCBzKSBCT09TVF9QUF9JRihwKDE3MCwgcyksIEJPT1NUX1BQX0ZPUl8xNzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcxLCBzKSBCT09TVF9QUF9JRihwKDE3MSwgcyksIEJPT1NUX1BQX0ZPUl8xNzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcyLCBzKSBCT09TVF9QUF9JRihwKDE3MiwgcyksIEJPT1NUX1BQX0ZPUl8xNzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTczLCBzKSBCT09TVF9QUF9JRihwKDE3MywgcyksIEJPT1NUX1BQX0ZPUl8xNzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTczX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc0LCBzKSBCT09TVF9QUF9JRihwKDE3NCwgcyksIEJPT1NUX1BQX0ZPUl8xNzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc1LCBzKSBCT09TVF9QUF9JRihwKDE3NSwgcyksIEJPT1NUX1BQX0ZPUl8xNzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc2LCBzKSBCT09TVF9QUF9JRihwKDE3NiwgcyksIEJPT1NUX1BQX0ZPUl8xNzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc3LCBzKSBCT09TVF9QUF9JRihwKDE3NywgcyksIEJPT1NUX1BQX0ZPUl8xNzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc4LCBzKSBCT09TVF9QUF9JRihwKDE3OCwgcyksIEJPT1NUX1BQX0ZPUl8xNzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc5LCBzKSBCT09TVF9QUF9JRihwKDE3OSwgcyksIEJPT1NUX1BQX0ZPUl8xNzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgwLCBzKSBCT09TVF9QUF9JRihwKDE4MCwgcyksIEJPT1NUX1BQX0ZPUl8xODAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgxLCBzKSBCT09TVF9QUF9JRihwKDE4MSwgcyksIEJPT1NUX1BQX0ZPUl8xODEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgyLCBzKSBCT09TVF9QUF9JRihwKDE4MiwgcyksIEJPT1NUX1BQX0ZPUl8xODIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgzLCBzKSBCT09TVF9QUF9JRihwKDE4MywgcyksIEJPT1NUX1BQX0ZPUl8xODMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg0LCBzKSBCT09TVF9QUF9JRihwKDE4NCwgcyksIEJPT1NUX1BQX0ZPUl8xODQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg1LCBzKSBCT09TVF9QUF9JRihwKDE4NSwgcyksIEJPT1NUX1BQX0ZPUl8xODUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg2LCBzKSBCT09TVF9QUF9JRihwKDE4NiwgcyksIEJPT1NUX1BQX0ZPUl8xODYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg3LCBzKSBCT09TVF9QUF9JRihwKDE4NywgcyksIEJPT1NUX1BQX0ZPUl8xODcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg4LCBzKSBCT09TVF9QUF9JRihwKDE4OCwgcyksIEJPT1NUX1BQX0ZPUl8xODgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg5LCBzKSBCT09TVF9QUF9JRihwKDE4OSwgcyksIEJPT1NUX1BQX0ZPUl8xODksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkwLCBzKSBCT09TVF9QUF9JRihwKDE5MCwgcyksIEJPT1NUX1BQX0ZPUl8xOTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkxLCBzKSBCT09TVF9QUF9JRihwKDE5MSwgcyksIEJPT1NUX1BQX0ZPUl8xOTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkyLCBzKSBCT09TVF9QUF9JRihwKDE5MiwgcyksIEJPT1NUX1BQX0ZPUl8xOTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkzLCBzKSBCT09TVF9QUF9JRihwKDE5MywgcyksIEJPT1NUX1BQX0ZPUl8xOTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk0LCBzKSBCT09TVF9QUF9JRihwKDE5NCwgcyksIEJPT1NUX1BQX0ZPUl8xOTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk1LCBzKSBCT09TVF9QUF9JRihwKDE5NSwgcyksIEJPT1NUX1BQX0ZPUl8xOTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk2LCBzKSBCT09TVF9QUF9JRihwKDE5NiwgcyksIEJPT1NUX1BQX0ZPUl8xOTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk3LCBzKSBCT09TVF9QUF9JRihwKDE5NywgcyksIEJPT1NUX1BQX0ZPUl8xOTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk4LCBzKSBCT09TVF9QUF9JRihwKDE5OCwgcyksIEJPT1NUX1BQX0ZPUl8xOTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk5LCBzKSBCT09TVF9QUF9JRihwKDE5OSwgcyksIEJPT1NUX1BQX0ZPUl8xOTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAwLCBzKSBCT09TVF9QUF9JRihwKDIwMCwgcyksIEJPT1NUX1BQX0ZPUl8yMDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAxLCBzKSBCT09TVF9QUF9JRihwKDIwMSwgcyksIEJPT1NUX1BQX0ZPUl8yMDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAyLCBzKSBCT09TVF9QUF9JRihwKDIwMiwgcyksIEJPT1NUX1BQX0ZPUl8yMDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAzLCBzKSBCT09TVF9QUF9JRihwKDIwMywgcyksIEJPT1NUX1BQX0ZPUl8yMDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA0LCBzKSBCT09TVF9QUF9JRihwKDIwNCwgcyksIEJPT1NUX1BQX0ZPUl8yMDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA1LCBzKSBCT09TVF9QUF9JRihwKDIwNSwgcyksIEJPT1NUX1BQX0ZPUl8yMDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA2LCBzKSBCT09TVF9QUF9JRihwKDIwNiwgcyksIEJPT1NUX1BQX0ZPUl8yMDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA3LCBzKSBCT09TVF9QUF9JRihwKDIwNywgcyksIEJPT1NUX1BQX0ZPUl8yMDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA4LCBzKSBCT09TVF9QUF9JRihwKDIwOCwgcyksIEJPT1NUX1BQX0ZPUl8yMDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA5LCBzKSBCT09TVF9QUF9JRihwKDIwOSwgcyksIEJPT1NUX1BQX0ZPUl8yMDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEwLCBzKSBCT09TVF9QUF9JRihwKDIxMCwgcyksIEJPT1NUX1BQX0ZPUl8yMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjExLCBzKSBCT09TVF9QUF9JRihwKDIxMSwgcyksIEJPT1NUX1BQX0ZPUl8yMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjExX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEyLCBzKSBCT09TVF9QUF9JRihwKDIxMiwgcyksIEJPT1NUX1BQX0ZPUl8yMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEzLCBzKSBCT09TVF9QUF9JRihwKDIxMywgcyksIEJPT1NUX1BQX0ZPUl8yMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE0LCBzKSBCT09TVF9QUF9JRihwKDIxNCwgcyksIEJPT1NUX1BQX0ZPUl8yMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE1LCBzKSBCT09TVF9QUF9JRihwKDIxNSwgcyksIEJPT1NUX1BQX0ZPUl8yMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE2LCBzKSBCT09TVF9QUF9JRihwKDIxNiwgcyksIEJPT1NUX1BQX0ZPUl8yMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE3LCBzKSBCT09TVF9QUF9JRihwKDIxNywgcyksIEJPT1NUX1BQX0ZPUl8yMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE4LCBzKSBCT09TVF9QUF9JRihwKDIxOCwgcyksIEJPT1NUX1BQX0ZPUl8yMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE5LCBzKSBCT09TVF9QUF9JRihwKDIxOSwgcyksIEJPT1NUX1BQX0ZPUl8yMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIwLCBzKSBCT09TVF9QUF9JRihwKDIyMCwgcyksIEJPT1NUX1BQX0ZPUl8yMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIxLCBzKSBCT09TVF9QUF9JRihwKDIyMSwgcyksIEJPT1NUX1BQX0ZPUl8yMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIyLCBzKSBCT09TVF9QUF9JRihwKDIyMiwgcyksIEJPT1NUX1BQX0ZPUl8yMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIzLCBzKSBCT09TVF9QUF9JRihwKDIyMywgcyksIEJPT1NUX1BQX0ZPUl8yMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI0LCBzKSBCT09TVF9QUF9JRihwKDIyNCwgcyksIEJPT1NUX1BQX0ZPUl8yMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI1LCBzKSBCT09TVF9QUF9JRihwKDIyNSwgcyksIEJPT1NUX1BQX0ZPUl8yMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI2LCBzKSBCT09TVF9QUF9JRihwKDIyNiwgcyksIEJPT1NUX1BQX0ZPUl8yMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI3LCBzKSBCT09TVF9QUF9JRihwKDIyNywgcyksIEJPT1NUX1BQX0ZPUl8yMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI4LCBzKSBCT09TVF9QUF9JRihwKDIyOCwgcyksIEJPT1NUX1BQX0ZPUl8yMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI5LCBzKSBCT09TVF9QUF9JRihwKDIyOSwgcyksIEJPT1NUX1BQX0ZPUl8yMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMwLCBzKSBCT09TVF9QUF9JRihwKDIzMCwgcyksIEJPT1NUX1BQX0ZPUl8yMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMxLCBzKSBCT09TVF9QUF9JRihwKDIzMSwgcyksIEJPT1NUX1BQX0ZPUl8yMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMyLCBzKSBCT09TVF9QUF9JRihwKDIzMiwgcyksIEJPT1NUX1BQX0ZPUl8yMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMzLCBzKSBCT09TVF9QUF9JRihwKDIzMywgcyksIEJPT1NUX1BQX0ZPUl8yMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM0LCBzKSBCT09TVF9QUF9JRihwKDIzNCwgcyksIEJPT1NUX1BQX0ZPUl8yMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM1LCBzKSBCT09TVF9QUF9JRihwKDIzNSwgcyksIEJPT1NUX1BQX0ZPUl8yMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM2LCBzKSBCT09TVF9QUF9JRihwKDIzNiwgcyksIEJPT1NUX1BQX0ZPUl8yMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM3LCBzKSBCT09TVF9QUF9JRihwKDIzNywgcyksIEJPT1NUX1BQX0ZPUl8yMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM4LCBzKSBCT09TVF9QUF9JRihwKDIzOCwgcyksIEJPT1NUX1BQX0ZPUl8yMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM5LCBzKSBCT09TVF9QUF9JRihwKDIzOSwgcyksIEJPT1NUX1BQX0ZPUl8yMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQwLCBzKSBCT09TVF9QUF9JRihwKDI0MCwgcyksIEJPT1NUX1BQX0ZPUl8yNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQxLCBzKSBCT09TVF9QUF9JRihwKDI0MSwgcyksIEJPT1NUX1BQX0ZPUl8yNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQyLCBzKSBCT09TVF9QUF9JRihwKDI0MiwgcyksIEJPT1NUX1BQX0ZPUl8yNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQzLCBzKSBCT09TVF9QUF9JRihwKDI0MywgcyksIEJPT1NUX1BQX0ZPUl8yNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ0LCBzKSBCT09TVF9QUF9JRihwKDI0NCwgcyksIEJPT1NUX1BQX0ZPUl8yNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ1LCBzKSBCT09TVF9QUF9JRihwKDI0NSwgcyksIEJPT1NUX1BQX0ZPUl8yNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ2LCBzKSBCT09TVF9QUF9JRihwKDI0NiwgcyksIEJPT1NUX1BQX0ZPUl8yNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ3LCBzKSBCT09TVF9QUF9JRihwKDI0NywgcyksIEJPT1NUX1BQX0ZPUl8yNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ3X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ4LCBzKSBCT09TVF9QUF9JRihwKDI0OCwgcyksIEJPT1NUX1BQX0ZPUl8yNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ4X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ5LCBzKSBCT09TVF9QUF9JRihwKDI0OSwgcyksIEJPT1NUX1BQX0ZPUl8yNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ5X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUwLCBzKSBCT09TVF9QUF9JRihwKDI1MCwgcyksIEJPT1NUX1BQX0ZPUl8yNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUwX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUxLCBzKSBCT09TVF9QUF9JRihwKDI1MSwgcyksIEJPT1NUX1BQX0ZPUl8yNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUxX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUyLCBzKSBCT09TVF9QUF9JRihwKDI1MiwgcyksIEJPT1NUX1BQX0ZPUl8yNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUyX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUzLCBzKSBCT09TVF9QUF9JRihwKDI1MywgcyksIEJPT1NUX1BQX0ZPUl8yNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUzX0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU0LCBzKSBCT09TVF9QUF9JRihwKDI1NCwgcyksIEJPT1NUX1BQX0ZPUl8yNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU0X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU1LCBzKSBCT09TVF9QUF9JRihwKDI1NSwgcyksIEJPT1NUX1BQX0ZPUl8yNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU1X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU2LCBzKSBCT09TVF9QUF9JRihwKDI1NiwgcyksIEJPT1NUX1BQX0ZPUl8yNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU2X0kocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU3LCBzKSBCT09TVF9QUF9JRihwKDI1NywgcyksIEJPT1NUX1BQX0ZPUl8yNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NywgcyksIHAsIG8sIG0pCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9mb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZm9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjZlZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZm9yLmhwcApAQCAtMCwwICsxLDUzNiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfRk9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fREVUQUlMX0ZPUl9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMV9DKEJPT1NUX1BQX0JPT0wocCgyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMl9DKEJPT1NUX1BQX0JPT0wocCgzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfM19DKEJPT1NUX1BQX0JPT0wocCg0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNF9DKEJPT1NUX1BQX0JPT0wocCg1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNV9DKEJPT1NUX1BQX0JPT0wocCg2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNl9DKEJPT1NUX1BQX0JPT0wocCg3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfN19DKEJPT1NUX1BQX0JPT0wocCg4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOF9DKEJPT1NUX1BQX0JPT0wocCg5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOV9DKEJPT1NUX1BQX0JPT0wocCgxMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMF9DKEJPT1NUX1BQX0JPT0wocCgxMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMV9DKEJPT1NUX1BQX0JPT0wocCgxMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMl9DKEJPT1NUX1BQX0JPT0wocCgxMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xM19DKEJPT1NUX1BQX0JPT0wocCgxNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNF9DKEJPT1NUX1BQX0JPT0wocCgxNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNV9DKEJPT1NUX1BQX0JPT0wocCgxNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNl9DKEJPT1NUX1BQX0JPT0wocCgxNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xN19DKEJPT1NUX1BQX0JPT0wocCgxOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOF9DKEJPT1NUX1BQX0JPT0wocCgxOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOV9DKEJPT1NUX1BQX0JPT0wocCgyMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMF9DKEJPT1NUX1BQX0JPT0wocCgyMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMV9DKEJPT1NUX1BQX0JPT0wocCgyMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMl9DKEJPT1NUX1BQX0JPT0wocCgyMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yM19DKEJPT1NUX1BQX0JPT0wocCgyNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNF9DKEJPT1NUX1BQX0JPT0wocCgyNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNV9DKEJPT1NUX1BQX0JPT0wocCgyNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNl9DKEJPT1NUX1BQX0JPT0wocCgyNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yN19DKEJPT1NUX1BQX0JPT0wocCgyOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yOF9DKEJPT1NUX1BQX0JPT0wocCgyOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yOV9DKEJPT1NUX1BQX0JPT0wocCgzMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMF9DKEJPT1NUX1BQX0JPT0wocCgzMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMV9DKEJPT1NUX1BQX0JPT0wocCgzMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMl9DKEJPT1NUX1BQX0JPT0wocCgzMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zM19DKEJPT1NUX1BQX0JPT0wocCgzNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNF9DKEJPT1NUX1BQX0JPT0wocCgzNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNV9DKEJPT1NUX1BQX0JPT0wocCgzNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNl9DKEJPT1NUX1BQX0JPT0wocCgzNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zN19DKEJPT1NUX1BQX0JPT0wocCgzOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zOF9DKEJPT1NUX1BQX0JPT0wocCgzOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zOV9DKEJPT1NUX1BQX0JPT0wocCg0MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80MF9DKEJPT1NUX1BQX0JPT0wocCg0MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80MV9DKEJPT1NUX1BQX0JPT0wocCg0MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80Ml9DKEJPT1NUX1BQX0JPT0wocCg0MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80M19DKEJPT1NUX1BQX0JPT0wocCg0NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80NF9DKEJPT1NUX1BQX0JPT0wocCg0NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80NV9DKEJPT1NUX1BQX0JPT0wocCg0NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80Nl9DKEJPT1NUX1BQX0JPT0wocCg0NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80N19DKEJPT1NUX1BQX0JPT0wocCg0OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80OF9DKEJPT1NUX1BQX0JPT0wocCg0OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80OV9DKEJPT1NUX1BQX0JPT0wocCg1MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81MF9DKEJPT1NUX1BQX0JPT0wocCg1MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81MV9DKEJPT1NUX1BQX0JPT0wocCg1MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81Ml9DKEJPT1NUX1BQX0JPT0wocCg1MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81M19DKEJPT1NUX1BQX0JPT0wocCg1NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81NF9DKEJPT1NUX1BQX0JPT0wocCg1NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81NV9DKEJPT1NUX1BQX0JPT0wocCg1NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81Nl9DKEJPT1NUX1BQX0JPT0wocCg1NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81N19DKEJPT1NUX1BQX0JPT0wocCg1OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81OF9DKEJPT1NUX1BQX0JPT0wocCg1OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81OV9DKEJPT1NUX1BQX0JPT0wocCg2MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82MF9DKEJPT1NUX1BQX0JPT0wocCg2MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82MV9DKEJPT1NUX1BQX0JPT0wocCg2MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82Ml9DKEJPT1NUX1BQX0JPT0wocCg2MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82M19DKEJPT1NUX1BQX0JPT0wocCg2NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82NF9DKEJPT1NUX1BQX0JPT0wocCg2NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82NV9DKEJPT1NUX1BQX0JPT0wocCg2NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82Nl9DKEJPT1NUX1BQX0JPT0wocCg2NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82N19DKEJPT1NUX1BQX0JPT0wocCg2OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82OF9DKEJPT1NUX1BQX0JPT0wocCg2OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82OV9DKEJPT1NUX1BQX0JPT0wocCg3MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83MF9DKEJPT1NUX1BQX0JPT0wocCg3MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83MV9DKEJPT1NUX1BQX0JPT0wocCg3MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83Ml9DKEJPT1NUX1BQX0JPT0wocCg3MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzczKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83M19DKEJPT1NUX1BQX0JPT0wocCg3NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83NF9DKEJPT1NUX1BQX0JPT0wocCg3NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83NV9DKEJPT1NUX1BQX0JPT0wocCg3NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83Nl9DKEJPT1NUX1BQX0JPT0wocCg3NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83N19DKEJPT1NUX1BQX0JPT0wocCg3OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83OF9DKEJPT1NUX1BQX0JPT0wocCg3OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83OV9DKEJPT1NUX1BQX0JPT0wocCg4MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84MF9DKEJPT1NUX1BQX0JPT0wocCg4MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84MV9DKEJPT1NUX1BQX0JPT0wocCg4MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84Ml9DKEJPT1NUX1BQX0JPT0wocCg4MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84M19DKEJPT1NUX1BQX0JPT0wocCg4NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84NF9DKEJPT1NUX1BQX0JPT0wocCg4NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84NV9DKEJPT1NUX1BQX0JPT0wocCg4NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84Nl9DKEJPT1NUX1BQX0JPT0wocCg4NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84N19DKEJPT1NUX1BQX0JPT0wocCg4OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84OF9DKEJPT1NUX1BQX0JPT0wocCg4OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84OV9DKEJPT1NUX1BQX0JPT0wocCg5MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85MF9DKEJPT1NUX1BQX0JPT0wocCg5MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85MV9DKEJPT1NUX1BQX0JPT0wocCg5MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85Ml9DKEJPT1NUX1BQX0JPT0wocCg5MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85M19DKEJPT1NUX1BQX0JPT0wocCg5NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85NF9DKEJPT1NUX1BQX0JPT0wocCg5NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85NV9DKEJPT1NUX1BQX0JPT0wocCg5NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85Nl9DKEJPT1NUX1BQX0JPT0wocCg5NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85N19DKEJPT1NUX1BQX0JPT0wocCg5OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85OF9DKEJPT1NUX1BQX0JPT0wocCg5OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85OV9DKEJPT1NUX1BQX0JPT0wocCgxMDAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMF9DKEJPT1NUX1BQX0JPT0wocCgxMDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMV9DKEJPT1NUX1BQX0JPT0wocCgxMDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMl9DKEJPT1NUX1BQX0JPT0wocCgxMDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwM19DKEJPT1NUX1BQX0JPT0wocCgxMDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNF9DKEJPT1NUX1BQX0JPT0wocCgxMDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNV9DKEJPT1NUX1BQX0JPT0wocCgxMDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNl9DKEJPT1NUX1BQX0JPT0wocCgxMDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwN19DKEJPT1NUX1BQX0JPT0wocCgxMDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwOF9DKEJPT1NUX1BQX0JPT0wocCgxMDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwOV9DKEJPT1NUX1BQX0JPT0wocCgxMTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMF9DKEJPT1NUX1BQX0JPT0wocCgxMTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMV9DKEJPT1NUX1BQX0JPT0wocCgxMTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMl9DKEJPT1NUX1BQX0JPT0wocCgxMTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExM19DKEJPT1NUX1BQX0JPT0wocCgxMTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNF9DKEJPT1NUX1BQX0JPT0wocCgxMTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNV9DKEJPT1NUX1BQX0JPT0wocCgxMTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNl9DKEJPT1NUX1BQX0JPT0wocCgxMTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExN19DKEJPT1NUX1BQX0JPT0wocCgxMTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExOF9DKEJPT1NUX1BQX0JPT0wocCgxMTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExOV9DKEJPT1NUX1BQX0JPT0wocCgxMjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMF9DKEJPT1NUX1BQX0JPT0wocCgxMjEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMV9DKEJPT1NUX1BQX0JPT0wocCgxMjIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMl9DKEJPT1NUX1BQX0JPT0wocCgxMjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyM19DKEJPT1NUX1BQX0JPT0wocCgxMjQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNF9DKEJPT1NUX1BQX0JPT0wocCgxMjUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNV9DKEJPT1NUX1BQX0JPT0wocCgxMjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNl9DKEJPT1NUX1BQX0JPT0wocCgxMjcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyN19DKEJPT1NUX1BQX0JPT0wocCgxMjgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyOF9DKEJPT1NUX1BQX0JPT0wocCgxMjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyOV9DKEJPT1NUX1BQX0JPT0wocCgxMzAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMF9DKEJPT1NUX1BQX0JPT0wocCgxMzEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMV9DKEJPT1NUX1BQX0JPT0wocCgxMzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMl9DKEJPT1NUX1BQX0JPT0wocCgxMzMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzM19DKEJPT1NUX1BQX0JPT0wocCgxMzQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNF9DKEJPT1NUX1BQX0JPT0wocCgxMzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNV9DKEJPT1NUX1BQX0JPT0wocCgxMzYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNl9DKEJPT1NUX1BQX0JPT0wocCgxMzcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzN19DKEJPT1NUX1BQX0JPT0wocCgxMzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzOF9DKEJPT1NUX1BQX0JPT0wocCgxMzksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzOV9DKEJPT1NUX1BQX0JPT0wocCgxNDAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0MF9DKEJPT1NUX1BQX0JPT0wocCgxNDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0MV9DKEJPT1NUX1BQX0JPT0wocCgxNDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0Ml9DKEJPT1NUX1BQX0JPT0wocCgxNDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0M19DKEJPT1NUX1BQX0JPT0wocCgxNDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0NF9DKEJPT1NUX1BQX0JPT0wocCgxNDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0NV9DKEJPT1NUX1BQX0JPT0wocCgxNDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0Nl9DKEJPT1NUX1BQX0JPT0wocCgxNDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0N19DKEJPT1NUX1BQX0JPT0wocCgxNDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0OF9DKEJPT1NUX1BQX0JPT0wocCgxNDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0OV9DKEJPT1NUX1BQX0JPT0wocCgxNTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1MF9DKEJPT1NUX1BQX0JPT0wocCgxNTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1MV9DKEJPT1NUX1BQX0JPT0wocCgxNTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1Ml9DKEJPT1NUX1BQX0JPT0wocCgxNTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1M19DKEJPT1NUX1BQX0JPT0wocCgxNTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1NF9DKEJPT1NUX1BQX0JPT0wocCgxNTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1NV9DKEJPT1NUX1BQX0JPT0wocCgxNTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1Nl9DKEJPT1NUX1BQX0JPT0wocCgxNTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1N19DKEJPT1NUX1BQX0JPT0wocCgxNTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1OF9DKEJPT1NUX1BQX0JPT0wocCgxNTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1OV9DKEJPT1NUX1BQX0JPT0wocCgxNjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2MF9DKEJPT1NUX1BQX0JPT0wocCgxNjEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2MV9DKEJPT1NUX1BQX0JPT0wocCgxNjIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2Ml9DKEJPT1NUX1BQX0JPT0wocCgxNjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2M19DKEJPT1NUX1BQX0JPT0wocCgxNjQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2NF9DKEJPT1NUX1BQX0JPT0wocCgxNjUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2NV9DKEJPT1NUX1BQX0JPT0wocCgxNjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2Nl9DKEJPT1NUX1BQX0JPT0wocCgxNjcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2N19DKEJPT1NUX1BQX0JPT0wocCgxNjgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2OF9DKEJPT1NUX1BQX0JPT0wocCgxNjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2OV9DKEJPT1NUX1BQX0JPT0wocCgxNzAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3MF9DKEJPT1NUX1BQX0JPT0wocCgxNzEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3MV9DKEJPT1NUX1BQX0JPT0wocCgxNzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3Ml9DKEJPT1NUX1BQX0JPT0wocCgxNzMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3M19DKEJPT1NUX1BQX0JPT0wocCgxNzQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3NF9DKEJPT1NUX1BQX0JPT0wocCgxNzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3NV9DKEJPT1NUX1BQX0JPT0wocCgxNzYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3Nl9DKEJPT1NUX1BQX0JPT0wocCgxNzcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3N19DKEJPT1NUX1BQX0JPT0wocCgxNzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3OF9DKEJPT1NUX1BQX0JPT0wocCgxNzksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3OV9DKEJPT1NUX1BQX0JPT0wocCgxODAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4MF9DKEJPT1NUX1BQX0JPT0wocCgxODEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4MV9DKEJPT1NUX1BQX0JPT0wocCgxODIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4Ml9DKEJPT1NUX1BQX0JPT0wocCgxODMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4M19DKEJPT1NUX1BQX0JPT0wocCgxODQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4NF9DKEJPT1NUX1BQX0JPT0wocCgxODUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4NV9DKEJPT1NUX1BQX0JPT0wocCgxODYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4Nl9DKEJPT1NUX1BQX0JPT0wocCgxODcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4N19DKEJPT1NUX1BQX0JPT0wocCgxODgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4OF9DKEJPT1NUX1BQX0JPT0wocCgxODksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4OV9DKEJPT1NUX1BQX0JPT0wocCgxOTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5MF9DKEJPT1NUX1BQX0JPT0wocCgxOTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5MV9DKEJPT1NUX1BQX0JPT0wocCgxOTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5Ml9DKEJPT1NUX1BQX0JPT0wocCgxOTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5M19DKEJPT1NUX1BQX0JPT0wocCgxOTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5NF9DKEJPT1NUX1BQX0JPT0wocCgxOTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5NV9DKEJPT1NUX1BQX0JPT0wocCgxOTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5Nl9DKEJPT1NUX1BQX0JPT0wocCgxOTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5N19DKEJPT1NUX1BQX0JPT0wocCgxOTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5OF9DKEJPT1NUX1BQX0JPT0wocCgxOTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5OV9DKEJPT1NUX1BQX0JPT0wocCgyMDAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMF9DKEJPT1NUX1BQX0JPT0wocCgyMDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMV9DKEJPT1NUX1BQX0JPT0wocCgyMDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMl9DKEJPT1NUX1BQX0JPT0wocCgyMDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwM19DKEJPT1NUX1BQX0JPT0wocCgyMDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNF9DKEJPT1NUX1BQX0JPT0wocCgyMDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNV9DKEJPT1NUX1BQX0JPT0wocCgyMDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNl9DKEJPT1NUX1BQX0JPT0wocCgyMDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwN19DKEJPT1NUX1BQX0JPT0wocCgyMDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwOF9DKEJPT1NUX1BQX0JPT0wocCgyMDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwOV9DKEJPT1NUX1BQX0JPT0wocCgyMTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMF9DKEJPT1NUX1BQX0JPT0wocCgyMTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMV9DKEJPT1NUX1BQX0JPT0wocCgyMTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMl9DKEJPT1NUX1BQX0JPT0wocCgyMTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxM19DKEJPT1NUX1BQX0JPT0wocCgyMTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNF9DKEJPT1NUX1BQX0JPT0wocCgyMTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNV9DKEJPT1NUX1BQX0JPT0wocCgyMTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNl9DKEJPT1NUX1BQX0JPT0wocCgyMTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxN19DKEJPT1NUX1BQX0JPT0wocCgyMTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxOF9DKEJPT1NUX1BQX0JPT0wocCgyMTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxOV9DKEJPT1NUX1BQX0JPT0wocCgyMjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMF9DKEJPT1NUX1BQX0JPT0wocCgyMjEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMV9DKEJPT1NUX1BQX0JPT0wocCgyMjIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMl9DKEJPT1NUX1BQX0JPT0wocCgyMjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyM19DKEJPT1NUX1BQX0JPT0wocCgyMjQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNF9DKEJPT1NUX1BQX0JPT0wocCgyMjUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNV9DKEJPT1NUX1BQX0JPT0wocCgyMjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNl9DKEJPT1NUX1BQX0JPT0wocCgyMjcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyN19DKEJPT1NUX1BQX0JPT0wocCgyMjgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyOF9DKEJPT1NUX1BQX0JPT0wocCgyMjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyOV9DKEJPT1NUX1BQX0JPT0wocCgyMzAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMF9DKEJPT1NUX1BQX0JPT0wocCgyMzEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMV9DKEJPT1NUX1BQX0JPT0wocCgyMzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMl9DKEJPT1NUX1BQX0JPT0wocCgyMzMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzM19DKEJPT1NUX1BQX0JPT0wocCgyMzQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNF9DKEJPT1NUX1BQX0JPT0wocCgyMzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNV9DKEJPT1NUX1BQX0JPT0wocCgyMzYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNl9DKEJPT1NUX1BQX0JPT0wocCgyMzcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzN19DKEJPT1NUX1BQX0JPT0wocCgyMzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzOF9DKEJPT1NUX1BQX0JPT0wocCgyMzksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzOV9DKEJPT1NUX1BQX0JPT0wocCgyNDAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0MF9DKEJPT1NUX1BQX0JPT0wocCgyNDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0MV9DKEJPT1NUX1BQX0JPT0wocCgyNDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0Ml9DKEJPT1NUX1BQX0JPT0wocCgyNDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0M19DKEJPT1NUX1BQX0JPT0wocCgyNDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0NF9DKEJPT1NUX1BQX0JPT0wocCgyNDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0NV9DKEJPT1NUX1BQX0JPT0wocCgyNDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0Nl9DKEJPT1NUX1BQX0JPT0wocCgyNDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0N19DKEJPT1NUX1BQX0JPT0wocCgyNDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0OF9DKEJPT1NUX1BQX0JPT0wocCgyNDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0OV9DKEJPT1NUX1BQX0JPT0wocCgyNTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1MF9DKEJPT1NUX1BQX0JPT0wocCgyNTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1MV9DKEJPT1NUX1BQX0JPT0wocCgyNTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1Ml9DKEJPT1NUX1BQX0JPT0wocCgyNTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1M19DKEJPT1NUX1BQX0JPT0wocCgyNTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1NF9DKEJPT1NUX1BQX0JPT0wocCgyNTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1NV9DKEJPT1NUX1BQX0JPT0wocCgyNTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1Nl9DKEJPT1NUX1BQX0JPT0wocCgyNTcsIHMpKSwgcywgcCwgbywgbSkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzMwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzMzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzUxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzYwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzYzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDcwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzcyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDczLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzgxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzkwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDkxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzkzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTAwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTAzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTExLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTExX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTEyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTMwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTMzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTYwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTYzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTcyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTcyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTkwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTkwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTkzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTkzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjAyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjAyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTcsIHMpLCBwLCBvLCBtKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvbXN2Yy9mb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvbXN2Yy9mb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDk1MDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9tc3ZjL2Zvci5ocHAKQEAgLTAsMCArMSwyNzcgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fREVUQUlMX01TVkNfRk9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fREVUQUlMX01TVkNfRk9SX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIsIHMpIEJPT1NUX1BQX0lGKHAoMiwgcyksIEJPT1NUX1BQX0ZPUl8yLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzLCBzKSBCT09TVF9QUF9JRihwKDMsIHMpLCBCT09TVF9QUF9GT1JfMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNCwgcykgQk9PU1RfUFBfSUYocCg0LCBzKSwgQk9PU1RfUFBfRk9SXzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUsIHMpIEJPT1NUX1BQX0lGKHAoNSwgcyksIEJPT1NUX1BQX0ZPUl81LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2LCBzKSBCT09TVF9QUF9JRihwKDYsIHMpLCBCT09TVF9QUF9GT1JfNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNywgcykgQk9PU1RfUFBfSUYocCg3LCBzKSwgQk9PU1RfUFBfRk9SXzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgsIHMpIEJPT1NUX1BQX0lGKHAoOCwgcyksIEJPT1NUX1BQX0ZPUl84LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5LCBzKSBCT09TVF9QUF9JRihwKDksIHMpLCBCT09TVF9QUF9GT1JfOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwLCBzKSBCT09TVF9QUF9JRihwKDEwLCBzKSwgQk9PU1RfUFBfRk9SXzEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMSwgcykgQk9PU1RfUFBfSUYocCgxMSwgcyksIEJPT1NUX1BQX0ZPUl8xMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIsIHMpIEJPT1NUX1BQX0lGKHAoMTIsIHMpLCBCT09TVF9QUF9GT1JfMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzLCBzKSBCT09TVF9QUF9JRihwKDEzLCBzKSwgQk9PU1RfUFBfRk9SXzEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNCwgcykgQk9PU1RfUFBfSUYocCgxNCwgcyksIEJPT1NUX1BQX0ZPUl8xNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUsIHMpIEJPT1NUX1BQX0lGKHAoMTUsIHMpLCBCT09TVF9QUF9GT1JfMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2LCBzKSBCT09TVF9QUF9JRihwKDE2LCBzKSwgQk9PU1RfUFBfRk9SXzE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNywgcykgQk9PU1RfUFBfSUYocCgxNywgcyksIEJPT1NUX1BQX0ZPUl8xNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgsIHMpIEJPT1NUX1BQX0lGKHAoMTgsIHMpLCBCT09TVF9QUF9GT1JfMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5LCBzKSBCT09TVF9QUF9JRihwKDE5LCBzKSwgQk9PU1RfUFBfRk9SXzE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMCwgcykgQk9PU1RfUFBfSUYocCgyMCwgcyksIEJPT1NUX1BQX0ZPUl8yMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEsIHMpIEJPT1NUX1BQX0lGKHAoMjEsIHMpLCBCT09TVF9QUF9GT1JfMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyLCBzKSBCT09TVF9QUF9JRihwKDIyLCBzKSwgQk9PU1RfUFBfRk9SXzIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMywgcykgQk9PU1RfUFBfSUYocCgyMywgcyksIEJPT1NUX1BQX0ZPUl8yMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQsIHMpIEJPT1NUX1BQX0lGKHAoMjQsIHMpLCBCT09TVF9QUF9GT1JfMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1LCBzKSBCT09TVF9QUF9JRihwKDI1LCBzKSwgQk9PU1RfUFBfRk9SXzI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNiwgcykgQk9PU1RfUFBfSUYocCgyNiwgcyksIEJPT1NUX1BQX0ZPUl8yNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjcsIHMpIEJPT1NUX1BQX0lGKHAoMjcsIHMpLCBCT09TVF9QUF9GT1JfMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI4LCBzKSBCT09TVF9QUF9JRihwKDI4LCBzKSwgQk9PU1RfUFBfRk9SXzI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOSwgcykgQk9PU1RfUFBfSUYocCgyOSwgcyksIEJPT1NUX1BQX0ZPUl8yOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzAsIHMpIEJPT1NUX1BQX0lGKHAoMzAsIHMpLCBCT09TVF9QUF9GT1JfMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMxLCBzKSBCT09TVF9QUF9JRihwKDMxLCBzKSwgQk9PU1RfUFBfRk9SXzMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMiwgcykgQk9PU1RfUFBfSUYocCgzMiwgcyksIEJPT1NUX1BQX0ZPUl8zMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzMsIHMpIEJPT1NUX1BQX0lGKHAoMzMsIHMpLCBCT09TVF9QUF9GT1JfMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM0LCBzKSBCT09TVF9QUF9JRihwKDM0LCBzKSwgQk9PU1RfUFBfRk9SXzM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNSwgcykgQk9PU1RfUFBfSUYocCgzNSwgcyksIEJPT1NUX1BQX0ZPUl8zNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzYsIHMpIEJPT1NUX1BQX0lGKHAoMzYsIHMpLCBCT09TVF9QUF9GT1JfMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM3LCBzKSBCT09TVF9QUF9JRihwKDM3LCBzKSwgQk9PU1RfUFBfRk9SXzM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOCwgcykgQk9PU1RfUFBfSUYocCgzOCwgcyksIEJPT1NUX1BQX0ZPUl8zOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzksIHMpIEJPT1NUX1BQX0lGKHAoMzksIHMpLCBCT09TVF9QUF9GT1JfMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQwLCBzKSBCT09TVF9QUF9JRihwKDQwLCBzKSwgQk9PU1RfUFBfRk9SXzQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MSwgcykgQk9PU1RfUFBfSUYocCg0MSwgcyksIEJPT1NUX1BQX0ZPUl80MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDIsIHMpIEJPT1NUX1BQX0lGKHAoNDIsIHMpLCBCT09TVF9QUF9GT1JfNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQzLCBzKSBCT09TVF9QUF9JRihwKDQzLCBzKSwgQk9PU1RfUFBfRk9SXzQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NCwgcykgQk9PU1RfUFBfSUYocCg0NCwgcyksIEJPT1NUX1BQX0ZPUl80NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDUsIHMpIEJPT1NUX1BQX0lGKHAoNDUsIHMpLCBCT09TVF9QUF9GT1JfNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ2LCBzKSBCT09TVF9QUF9JRihwKDQ2LCBzKSwgQk9PU1RfUFBfRk9SXzQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NywgcykgQk9PU1RfUFBfSUYocCg0NywgcyksIEJPT1NUX1BQX0ZPUl80NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDgsIHMpIEJPT1NUX1BQX0lGKHAoNDgsIHMpLCBCT09TVF9QUF9GT1JfNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ5LCBzKSBCT09TVF9QUF9JRihwKDQ5LCBzKSwgQk9PU1RfUFBfRk9SXzQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MCwgcykgQk9PU1RfUFBfSUYocCg1MCwgcyksIEJPT1NUX1BQX0ZPUl81MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTEsIHMpIEJPT1NUX1BQX0lGKHAoNTEsIHMpLCBCT09TVF9QUF9GT1JfNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUyLCBzKSBCT09TVF9QUF9JRihwKDUyLCBzKSwgQk9PU1RfUFBfRk9SXzUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MywgcykgQk9PU1RfUFBfSUYocCg1MywgcyksIEJPT1NUX1BQX0ZPUl81MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTQsIHMpIEJPT1NUX1BQX0lGKHAoNTQsIHMpLCBCT09TVF9QUF9GT1JfNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU1LCBzKSBCT09TVF9QUF9JRihwKDU1LCBzKSwgQk9PU1RfUFBfRk9SXzU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NiwgcykgQk9PU1RfUFBfSUYocCg1NiwgcyksIEJPT1NUX1BQX0ZPUl81NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTcsIHMpIEJPT1NUX1BQX0lGKHAoNTcsIHMpLCBCT09TVF9QUF9GT1JfNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDU3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU4LCBzKSBCT09TVF9QUF9JRihwKDU4LCBzKSwgQk9PU1RfUFBfRk9SXzU4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OSwgcykgQk9PU1RfUFBfSUYocCg1OSwgcyksIEJPT1NUX1BQX0ZPUl81OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjAsIHMpIEJPT1NUX1BQX0lGKHAoNjAsIHMpLCBCT09TVF9QUF9GT1JfNjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDYwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYxLCBzKSBCT09TVF9QUF9JRihwKDYxLCBzKSwgQk9PU1RfUFBfRk9SXzYxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MiwgcykgQk9PU1RfUFBfSUYocCg2MiwgcyksIEJPT1NUX1BQX0ZPUl82MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjMsIHMpIEJPT1NUX1BQX0lGKHAoNjMsIHMpLCBCT09TVF9QUF9GT1JfNjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDYzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY0LCBzKSBCT09TVF9QUF9JRihwKDY0LCBzKSwgQk9PU1RfUFBfRk9SXzY0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NSwgcykgQk9PU1RfUFBfSUYocCg2NSwgcyksIEJPT1NUX1BQX0ZPUl82NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjYsIHMpIEJPT1NUX1BQX0lGKHAoNjYsIHMpLCBCT09TVF9QUF9GT1JfNjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDY2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY3LCBzKSBCT09TVF9QUF9JRihwKDY3LCBzKSwgQk9PU1RfUFBfRk9SXzY3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OCwgcykgQk9PU1RfUFBfSUYocCg2OCwgcyksIEJPT1NUX1BQX0ZPUl82OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjksIHMpIEJPT1NUX1BQX0lGKHAoNjksIHMpLCBCT09TVF9QUF9GT1JfNjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDY5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcwLCBzKSBCT09TVF9QUF9JRihwKDcwLCBzKSwgQk9PU1RfUFBfRk9SXzcwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MSwgcykgQk9PU1RfUFBfSUYocCg3MSwgcyksIEJPT1NUX1BQX0ZPUl83MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzIsIHMpIEJPT1NUX1BQX0lGKHAoNzIsIHMpLCBCT09TVF9QUF9GT1JfNzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDcyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDczLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDczLCBzKSBCT09TVF9QUF9JRihwKDczLCBzKSwgQk9PU1RfUFBfRk9SXzczLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NCwgcykgQk9PU1RfUFBfSUYocCg3NCwgcyksIEJPT1NUX1BQX0ZPUl83NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzUsIHMpIEJPT1NUX1BQX0lGKHAoNzUsIHMpLCBCT09TVF9QUF9GT1JfNzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDc1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc2LCBzKSBCT09TVF9QUF9JRihwKDc2LCBzKSwgQk9PU1RfUFBfRk9SXzc2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NywgcykgQk9PU1RfUFBfSUYocCg3NywgcyksIEJPT1NUX1BQX0ZPUl83NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzgsIHMpIEJPT1NUX1BQX0lGKHAoNzgsIHMpLCBCT09TVF9QUF9GT1JfNzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDc4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc5LCBzKSBCT09TVF9QUF9JRihwKDc5LCBzKSwgQk9PU1RfUFBfRk9SXzc5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MCwgcykgQk9PU1RfUFBfSUYocCg4MCwgcyksIEJPT1NUX1BQX0ZPUl84MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoODEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODEsIHMpIEJPT1NUX1BQX0lGKHAoODEsIHMpLCBCT09TVF9QUF9GT1JfODEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDgxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgyLCBzKSBCT09TVF9QUF9JRihwKDgyLCBzKSwgQk9PU1RfUFBfRk9SXzgyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MywgcykgQk9PU1RfUFBfSUYocCg4MywgcyksIEJPT1NUX1BQX0ZPUl84MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoODQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODQsIHMpIEJPT1NUX1BQX0lGKHAoODQsIHMpLCBCT09TVF9QUF9GT1JfODQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg1LCBzKSBCT09TVF9QUF9JRihwKDg1LCBzKSwgQk9PU1RfUFBfRk9SXzg1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NiwgcykgQk9PU1RfUFBfSUYocCg4NiwgcyksIEJPT1NUX1BQX0ZPUl84NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoODcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODcsIHMpIEJPT1NUX1BQX0lGKHAoODcsIHMpLCBCT09TVF9QUF9GT1JfODcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg4LCBzKSBCT09TVF9QUF9JRihwKDg4LCBzKSwgQk9PU1RfUFBfRk9SXzg4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OSwgcykgQk9PU1RfUFBfSUYocCg4OSwgcyksIEJPT1NUX1BQX0ZPUl84OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTAsIHMpIEJPT1NUX1BQX0lGKHAoOTAsIHMpLCBCT09TVF9QUF9GT1JfOTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDkwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDkxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkxLCBzKSBCT09TVF9QUF9JRihwKDkxLCBzKSwgQk9PU1RfUFBfRk9SXzkxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MiwgcykgQk9PU1RfUFBfSUYocCg5MiwgcyksIEJPT1NUX1BQX0ZPUl85MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTMsIHMpIEJPT1NUX1BQX0lGKHAoOTMsIHMpLCBCT09TVF9QUF9GT1JfOTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDkzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk0LCBzKSBCT09TVF9QUF9JRihwKDk0LCBzKSwgQk9PU1RfUFBfRk9SXzk0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NSwgcykgQk9PU1RfUFBfSUYocCg5NSwgcyksIEJPT1NUX1BQX0ZPUl85NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTYsIHMpIEJPT1NUX1BQX0lGKHAoOTYsIHMpLCBCT09TVF9QUF9GT1JfOTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDk2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk3LCBzKSBCT09TVF9QUF9JRihwKDk3LCBzKSwgQk9PU1RfUFBfRk9SXzk3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OCwgcykgQk9PU1RfUFBfSUYocCg5OCwgcyksIEJPT1NUX1BQX0ZPUl85OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTksIHMpIEJPT1NUX1BQX0lGKHAoOTksIHMpLCBCT09TVF9QUF9GT1JfOTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDk5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDAsIHMpIEJPT1NUX1BQX0lGKHAoMTAwLCBzKSwgQk9PU1RfUFBfRk9SXzEwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAxLCBzKSBCT09TVF9QUF9JRihwKDEwMSwgcyksIEJPT1NUX1BQX0ZPUl8xMDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTAyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMiwgcykgQk9PU1RfUFBfSUYocCgxMDIsIHMpLCBCT09TVF9QUF9GT1JfMTAyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDMsIHMpIEJPT1NUX1BQX0lGKHAoMTAzLCBzKSwgQk9PU1RfUFBfRk9SXzEwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA0LCBzKSBCT09TVF9QUF9JRihwKDEwNCwgcyksIEJPT1NUX1BQX0ZPUl8xMDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTA1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNSwgcykgQk9PU1RfUFBfSUYocCgxMDUsIHMpLCBCT09TVF9QUF9GT1JfMTA1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDYsIHMpIEJPT1NUX1BQX0lGKHAoMTA2LCBzKSwgQk9PU1RfUFBfRk9SXzEwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA3LCBzKSBCT09TVF9QUF9JRihwKDEwNywgcyksIEJPT1NUX1BQX0ZPUl8xMDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTA4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwOCwgcykgQk9PU1RfUFBfSUYocCgxMDgsIHMpLCBCT09TVF9QUF9GT1JfMTA4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDksIHMpIEJPT1NUX1BQX0lGKHAoMTA5LCBzKSwgQk9PU1RfUFBfRk9SXzEwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEwLCBzKSBCT09TVF9QUF9JRihwKDExMCwgcyksIEJPT1NUX1BQX0ZPUl8xMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTExLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMSwgcykgQk9PU1RfUFBfSUYocCgxMTEsIHMpLCBCT09TVF9QUF9GT1JfMTExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTIsIHMpIEJPT1NUX1BQX0lGKHAoMTEyLCBzKSwgQk9PU1RfUFBfRk9SXzExMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEzLCBzKSBCT09TVF9QUF9JRihwKDExMywgcyksIEJPT1NUX1BQX0ZPUl8xMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTE0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNCwgcykgQk9PU1RfUFBfSUYocCgxMTQsIHMpLCBCT09TVF9QUF9GT1JfMTE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTUsIHMpIEJPT1NUX1BQX0lGKHAoMTE1LCBzKSwgQk9PU1RfUFBfRk9SXzExNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE2LCBzKSBCT09TVF9QUF9JRihwKDExNiwgcyksIEJPT1NUX1BQX0ZPUl8xMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTE3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNywgcykgQk9PU1RfUFBfSUYocCgxMTcsIHMpLCBCT09TVF9QUF9GT1JfMTE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTgsIHMpIEJPT1NUX1BQX0lGKHAoMTE4LCBzKSwgQk9PU1RfUFBfRk9SXzExOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE5LCBzKSBCT09TVF9QUF9JRihwKDExOSwgcyksIEJPT1NUX1BQX0ZPUl8xMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTIwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMCwgcykgQk9PU1RfUFBfSUYocCgxMjAsIHMpLCBCT09TVF9QUF9GT1JfMTIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjEsIHMpIEJPT1NUX1BQX0lGKHAoMTIxLCBzKSwgQk9PU1RfUFBfRk9SXzEyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIyLCBzKSBCT09TVF9QUF9JRihwKDEyMiwgcyksIEJPT1NUX1BQX0ZPUl8xMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTIzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMywgcykgQk9PU1RfUFBfSUYocCgxMjMsIHMpLCBCT09TVF9QUF9GT1JfMTIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjQsIHMpIEJPT1NUX1BQX0lGKHAoMTI0LCBzKSwgQk9PU1RfUFBfRk9SXzEyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI1LCBzKSBCT09TVF9QUF9JRihwKDEyNSwgcyksIEJPT1NUX1BQX0ZPUl8xMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTI2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNiwgcykgQk9PU1RfUFBfSUYocCgxMjYsIHMpLCBCT09TVF9QUF9GT1JfMTI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjcsIHMpIEJPT1NUX1BQX0lGKHAoMTI3LCBzKSwgQk9PU1RfUFBfRk9SXzEyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI4LCBzKSBCT09TVF9QUF9JRihwKDEyOCwgcyksIEJPT1NUX1BQX0ZPUl8xMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTI5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyOSwgcykgQk9PU1RfUFBfSUYocCgxMjksIHMpLCBCT09TVF9QUF9GT1JfMTI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzAsIHMpIEJPT1NUX1BQX0lGKHAoMTMwLCBzKSwgQk9PU1RfUFBfRk9SXzEzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMxLCBzKSBCT09TVF9QUF9JRihwKDEzMSwgcyksIEJPT1NUX1BQX0ZPUl8xMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTMyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMiwgcykgQk9PU1RfUFBfSUYocCgxMzIsIHMpLCBCT09TVF9QUF9GT1JfMTMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzMsIHMpIEJPT1NUX1BQX0lGKHAoMTMzLCBzKSwgQk9PU1RfUFBfRk9SXzEzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM0LCBzKSBCT09TVF9QUF9JRihwKDEzNCwgcyksIEJPT1NUX1BQX0ZPUl8xMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTM1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNSwgcykgQk9PU1RfUFBfSUYocCgxMzUsIHMpLCBCT09TVF9QUF9GT1JfMTM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzYsIHMpIEJPT1NUX1BQX0lGKHAoMTM2LCBzKSwgQk9PU1RfUFBfRk9SXzEzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM3LCBzKSBCT09TVF9QUF9JRihwKDEzNywgcyksIEJPT1NUX1BQX0ZPUl8xMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTM4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzOCwgcykgQk9PU1RfUFBfSUYocCgxMzgsIHMpLCBCT09TVF9QUF9GT1JfMTM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzksIHMpIEJPT1NUX1BQX0lGKHAoMTM5LCBzKSwgQk9PU1RfUFBfRk9SXzEzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQwLCBzKSBCT09TVF9QUF9JRihwKDE0MCwgcyksIEJPT1NUX1BQX0ZPUl8xNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTQxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MSwgcykgQk9PU1RfUFBfSUYocCgxNDEsIHMpLCBCT09TVF9QUF9GT1JfMTQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDIsIHMpIEJPT1NUX1BQX0lGKHAoMTQyLCBzKSwgQk9PU1RfUFBfRk9SXzE0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQzLCBzKSBCT09TVF9QUF9JRihwKDE0MywgcyksIEJPT1NUX1BQX0ZPUl8xNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTQ0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NCwgcykgQk9PU1RfUFBfSUYocCgxNDQsIHMpLCBCT09TVF9QUF9GT1JfMTQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDUsIHMpIEJPT1NUX1BQX0lGKHAoMTQ1LCBzKSwgQk9PU1RfUFBfRk9SXzE0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ2LCBzKSBCT09TVF9QUF9JRihwKDE0NiwgcyksIEJPT1NUX1BQX0ZPUl8xNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTQ3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NywgcykgQk9PU1RfUFBfSUYocCgxNDcsIHMpLCBCT09TVF9QUF9GT1JfMTQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDgsIHMpIEJPT1NUX1BQX0lGKHAoMTQ4LCBzKSwgQk9PU1RfUFBfRk9SXzE0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ5LCBzKSBCT09TVF9QUF9JRihwKDE0OSwgcyksIEJPT1NUX1BQX0ZPUl8xNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTUwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MCwgcykgQk9PU1RfUFBfSUYocCgxNTAsIHMpLCBCT09TVF9QUF9GT1JfMTUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTEsIHMpIEJPT1NUX1BQX0lGKHAoMTUxLCBzKSwgQk9PU1RfUFBfRk9SXzE1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUyLCBzKSBCT09TVF9QUF9JRihwKDE1MiwgcyksIEJPT1NUX1BQX0ZPUl8xNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTUzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MywgcykgQk9PU1RfUFBfSUYocCgxNTMsIHMpLCBCT09TVF9QUF9GT1JfMTUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTQsIHMpIEJPT1NUX1BQX0lGKHAoMTU0LCBzKSwgQk9PU1RfUFBfRk9SXzE1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU1LCBzKSBCT09TVF9QUF9JRihwKDE1NSwgcyksIEJPT1NUX1BQX0ZPUl8xNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTU2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NiwgcykgQk9PU1RfUFBfSUYocCgxNTYsIHMpLCBCT09TVF9QUF9GT1JfMTU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTcsIHMpIEJPT1NUX1BQX0lGKHAoMTU3LCBzKSwgQk9PU1RfUFBfRk9SXzE1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU4LCBzKSBCT09TVF9QUF9JRihwKDE1OCwgcyksIEJPT1NUX1BQX0ZPUl8xNTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTU5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1OSwgcykgQk9PU1RfUFBfSUYocCgxNTksIHMpLCBCT09TVF9QUF9GT1JfMTU5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjAsIHMpIEJPT1NUX1BQX0lGKHAoMTYwLCBzKSwgQk9PU1RfUFBfRk9SXzE2MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYxLCBzKSBCT09TVF9QUF9JRihwKDE2MSwgcyksIEJPT1NUX1BQX0ZPUl8xNjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTYyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MiwgcykgQk9PU1RfUFBfSUYocCgxNjIsIHMpLCBCT09TVF9QUF9GT1JfMTYyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjMsIHMpIEJPT1NUX1BQX0lGKHAoMTYzLCBzKSwgQk9PU1RfUFBfRk9SXzE2MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY0LCBzKSBCT09TVF9QUF9JRihwKDE2NCwgcyksIEJPT1NUX1BQX0ZPUl8xNjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTY1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NSwgcykgQk9PU1RfUFBfSUYocCgxNjUsIHMpLCBCT09TVF9QUF9GT1JfMTY1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjYsIHMpIEJPT1NUX1BQX0lGKHAoMTY2LCBzKSwgQk9PU1RfUFBfRk9SXzE2NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY3LCBzKSBCT09TVF9QUF9JRihwKDE2NywgcyksIEJPT1NUX1BQX0ZPUl8xNjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTY4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2OCwgcykgQk9PU1RfUFBfSUYocCgxNjgsIHMpLCBCT09TVF9QUF9GT1JfMTY4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjksIHMpIEJPT1NUX1BQX0lGKHAoMTY5LCBzKSwgQk9PU1RfUFBfRk9SXzE2OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcwLCBzKSBCT09TVF9QUF9JRihwKDE3MCwgcyksIEJPT1NUX1BQX0ZPUl8xNzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTcxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MSwgcykgQk9PU1RfUFBfSUYocCgxNzEsIHMpLCBCT09TVF9QUF9GT1JfMTcxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzIsIHMpIEJPT1NUX1BQX0lGKHAoMTcyLCBzKSwgQk9PU1RfUFBfRk9SXzE3MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTczLCBzKSBCT09TVF9QUF9JRihwKDE3MywgcyksIEJPT1NUX1BQX0ZPUl8xNzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTczKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTc0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NCwgcykgQk9PU1RfUFBfSUYocCgxNzQsIHMpLCBCT09TVF9QUF9GT1JfMTc0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzUsIHMpIEJPT1NUX1BQX0lGKHAoMTc1LCBzKSwgQk9PU1RfUFBfRk9SXzE3NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc2LCBzKSBCT09TVF9QUF9JRihwKDE3NiwgcyksIEJPT1NUX1BQX0ZPUl8xNzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTc3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NywgcykgQk9PU1RfUFBfSUYocCgxNzcsIHMpLCBCT09TVF9QUF9GT1JfMTc3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzgsIHMpIEJPT1NUX1BQX0lGKHAoMTc4LCBzKSwgQk9PU1RfUFBfRk9SXzE3OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc5LCBzKSBCT09TVF9QUF9JRihwKDE3OSwgcyksIEJPT1NUX1BQX0ZPUl8xNzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTgwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MCwgcykgQk9PU1RfUFBfSUYocCgxODAsIHMpLCBCT09TVF9QUF9GT1JfMTgwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODEsIHMpIEJPT1NUX1BQX0lGKHAoMTgxLCBzKSwgQk9PU1RfUFBfRk9SXzE4MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgyLCBzKSBCT09TVF9QUF9JRihwKDE4MiwgcyksIEJPT1NUX1BQX0ZPUl8xODIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTgzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MywgcykgQk9PU1RfUFBfSUYocCgxODMsIHMpLCBCT09TVF9QUF9GT1JfMTgzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODQsIHMpIEJPT1NUX1BQX0lGKHAoMTg0LCBzKSwgQk9PU1RfUFBfRk9SXzE4NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg1LCBzKSBCT09TVF9QUF9JRihwKDE4NSwgcyksIEJPT1NUX1BQX0ZPUl8xODUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTg2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NiwgcykgQk9PU1RfUFBfSUYocCgxODYsIHMpLCBCT09TVF9QUF9GT1JfMTg2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODcsIHMpIEJPT1NUX1BQX0lGKHAoMTg3LCBzKSwgQk9PU1RfUFBfRk9SXzE4NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg4LCBzKSBCT09TVF9QUF9JRihwKDE4OCwgcyksIEJPT1NUX1BQX0ZPUl8xODgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTg5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4OSwgcykgQk9PU1RfUFBfSUYocCgxODksIHMpLCBCT09TVF9QUF9GT1JfMTg5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTAsIHMpIEJPT1NUX1BQX0lGKHAoMTkwLCBzKSwgQk9PU1RfUFBfRk9SXzE5MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkxLCBzKSBCT09TVF9QUF9JRihwKDE5MSwgcyksIEJPT1NUX1BQX0ZPUl8xOTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTkyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MiwgcykgQk9PU1RfUFBfSUYocCgxOTIsIHMpLCBCT09TVF9QUF9GT1JfMTkyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTMsIHMpIEJPT1NUX1BQX0lGKHAoMTkzLCBzKSwgQk9PU1RfUFBfRk9SXzE5MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk0LCBzKSBCT09TVF9QUF9JRihwKDE5NCwgcyksIEJPT1NUX1BQX0ZPUl8xOTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTk1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NSwgcykgQk9PU1RfUFBfSUYocCgxOTUsIHMpLCBCT09TVF9QUF9GT1JfMTk1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTYsIHMpIEJPT1NUX1BQX0lGKHAoMTk2LCBzKSwgQk9PU1RfUFBfRk9SXzE5NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk3LCBzKSBCT09TVF9QUF9JRihwKDE5NywgcyksIEJPT1NUX1BQX0ZPUl8xOTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTk4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5OCwgcykgQk9PU1RfUFBfSUYocCgxOTgsIHMpLCBCT09TVF9QUF9GT1JfMTk4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTksIHMpIEJPT1NUX1BQX0lGKHAoMTk5LCBzKSwgQk9PU1RfUFBfRk9SXzE5OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAwLCBzKSBCT09TVF9QUF9JRihwKDIwMCwgcyksIEJPT1NUX1BQX0ZPUl8yMDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjAxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMSwgcykgQk9PU1RfUFBfSUYocCgyMDEsIHMpLCBCT09TVF9QUF9GT1JfMjAxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDIsIHMpIEJPT1NUX1BQX0lGKHAoMjAyLCBzKSwgQk9PU1RfUFBfRk9SXzIwMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAzLCBzKSBCT09TVF9QUF9JRihwKDIwMywgcyksIEJPT1NUX1BQX0ZPUl8yMDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjA0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNCwgcykgQk9PU1RfUFBfSUYocCgyMDQsIHMpLCBCT09TVF9QUF9GT1JfMjA0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDUsIHMpIEJPT1NUX1BQX0lGKHAoMjA1LCBzKSwgQk9PU1RfUFBfRk9SXzIwNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA2LCBzKSBCT09TVF9QUF9JRihwKDIwNiwgcyksIEJPT1NUX1BQX0ZPUl8yMDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjA3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNywgcykgQk9PU1RfUFBfSUYocCgyMDcsIHMpLCBCT09TVF9QUF9GT1JfMjA3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDgsIHMpIEJPT1NUX1BQX0lGKHAoMjA4LCBzKSwgQk9PU1RfUFBfRk9SXzIwOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA5LCBzKSBCT09TVF9QUF9JRihwKDIwOSwgcyksIEJPT1NUX1BQX0ZPUl8yMDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjEwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMCwgcykgQk9PU1RfUFBfSUYocCgyMTAsIHMpLCBCT09TVF9QUF9GT1JfMjEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTEsIHMpIEJPT1NUX1BQX0lGKHAoMjExLCBzKSwgQk9PU1RfUFBfRk9SXzIxMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEyLCBzKSBCT09TVF9QUF9JRihwKDIxMiwgcyksIEJPT1NUX1BQX0ZPUl8yMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjEzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMywgcykgQk9PU1RfUFBfSUYocCgyMTMsIHMpLCBCT09TVF9QUF9GT1JfMjEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTQsIHMpIEJPT1NUX1BQX0lGKHAoMjE0LCBzKSwgQk9PU1RfUFBfRk9SXzIxNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE1LCBzKSBCT09TVF9QUF9JRihwKDIxNSwgcyksIEJPT1NUX1BQX0ZPUl8yMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjE2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNiwgcykgQk9PU1RfUFBfSUYocCgyMTYsIHMpLCBCT09TVF9QUF9GT1JfMjE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTcsIHMpIEJPT1NUX1BQX0lGKHAoMjE3LCBzKSwgQk9PU1RfUFBfRk9SXzIxNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE4LCBzKSBCT09TVF9QUF9JRihwKDIxOCwgcyksIEJPT1NUX1BQX0ZPUl8yMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjE5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxOSwgcykgQk9PU1RfUFBfSUYocCgyMTksIHMpLCBCT09TVF9QUF9GT1JfMjE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjAsIHMpIEJPT1NUX1BQX0lGKHAoMjIwLCBzKSwgQk9PU1RfUFBfRk9SXzIyMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIxLCBzKSBCT09TVF9QUF9JRihwKDIyMSwgcyksIEJPT1NUX1BQX0ZPUl8yMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjIyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMiwgcykgQk9PU1RfUFBfSUYocCgyMjIsIHMpLCBCT09TVF9QUF9GT1JfMjIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjMsIHMpIEJPT1NUX1BQX0lGKHAoMjIzLCBzKSwgQk9PU1RfUFBfRk9SXzIyMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI0LCBzKSBCT09TVF9QUF9JRihwKDIyNCwgcyksIEJPT1NUX1BQX0ZPUl8yMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjI1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNSwgcykgQk9PU1RfUFBfSUYocCgyMjUsIHMpLCBCT09TVF9QUF9GT1JfMjI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjYsIHMpIEJPT1NUX1BQX0lGKHAoMjI2LCBzKSwgQk9PU1RfUFBfRk9SXzIyNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI3LCBzKSBCT09TVF9QUF9JRihwKDIyNywgcyksIEJPT1NUX1BQX0ZPUl8yMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjI4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyOCwgcykgQk9PU1RfUFBfSUYocCgyMjgsIHMpLCBCT09TVF9QUF9GT1JfMjI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjksIHMpIEJPT1NUX1BQX0lGKHAoMjI5LCBzKSwgQk9PU1RfUFBfRk9SXzIyOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMwLCBzKSBCT09TVF9QUF9JRihwKDIzMCwgcyksIEJPT1NUX1BQX0ZPUl8yMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjMxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMSwgcykgQk9PU1RfUFBfSUYocCgyMzEsIHMpLCBCT09TVF9QUF9GT1JfMjMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzIsIHMpIEJPT1NUX1BQX0lGKHAoMjMyLCBzKSwgQk9PU1RfUFBfRk9SXzIzMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMzLCBzKSBCT09TVF9QUF9JRihwKDIzMywgcyksIEJPT1NUX1BQX0ZPUl8yMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjM0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNCwgcykgQk9PU1RfUFBfSUYocCgyMzQsIHMpLCBCT09TVF9QUF9GT1JfMjM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzUsIHMpIEJPT1NUX1BQX0lGKHAoMjM1LCBzKSwgQk9PU1RfUFBfRk9SXzIzNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM2LCBzKSBCT09TVF9QUF9JRihwKDIzNiwgcyksIEJPT1NUX1BQX0ZPUl8yMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjM3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNywgcykgQk9PU1RfUFBfSUYocCgyMzcsIHMpLCBCT09TVF9QUF9GT1JfMjM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzgsIHMpIEJPT1NUX1BQX0lGKHAoMjM4LCBzKSwgQk9PU1RfUFBfRk9SXzIzOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM5LCBzKSBCT09TVF9QUF9JRihwKDIzOSwgcyksIEJPT1NUX1BQX0ZPUl8yMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MCwgcykgQk9PU1RfUFBfSUYocCgyNDAsIHMpLCBCT09TVF9QUF9GT1JfMjQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDEsIHMpIEJPT1NUX1BQX0lGKHAoMjQxLCBzKSwgQk9PU1RfUFBfRk9SXzI0MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQyLCBzKSBCT09TVF9QUF9JRihwKDI0MiwgcyksIEJPT1NUX1BQX0ZPUl8yNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MywgcykgQk9PU1RfUFBfSUYocCgyNDMsIHMpLCBCT09TVF9QUF9GT1JfMjQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDQsIHMpIEJPT1NUX1BQX0lGKHAoMjQ0LCBzKSwgQk9PU1RfUFBfRk9SXzI0NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ1LCBzKSBCT09TVF9QUF9JRihwKDI0NSwgcyksIEJPT1NUX1BQX0ZPUl8yNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQ2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NiwgcykgQk9PU1RfUFBfSUYocCgyNDYsIHMpLCBCT09TVF9QUF9GT1JfMjQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDcsIHMpIEJPT1NUX1BQX0lGKHAoMjQ3LCBzKSwgQk9PU1RfUFBfRk9SXzI0NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ4LCBzKSBCT09TVF9QUF9JRihwKDI0OCwgcyksIEJPT1NUX1BQX0ZPUl8yNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQ5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0OSwgcykgQk9PU1RfUFBfSUYocCgyNDksIHMpLCBCT09TVF9QUF9GT1JfMjQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTAsIHMpIEJPT1NUX1BQX0lGKHAoMjUwLCBzKSwgQk9PU1RfUFBfRk9SXzI1MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUxLCBzKSBCT09TVF9QUF9JRihwKDI1MSwgcyksIEJPT1NUX1BQX0ZPUl8yNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjUyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MiwgcykgQk9PU1RfUFBfSUYocCgyNTIsIHMpLCBCT09TVF9QUF9GT1JfMjUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTMsIHMpIEJPT1NUX1BQX0lGKHAoMjUzLCBzKSwgQk9PU1RfUFBfRk9SXzI1MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU0LCBzKSBCT09TVF9QUF9JRihwKDI1NCwgcyksIEJPT1NUX1BQX0ZPUl8yNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjU1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NSwgcykgQk9PU1RfUFBfSUYocCgyNTUsIHMpLCBCT09TVF9QUF9GT1JfMjU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTYsIHMpIEJPT1NUX1BQX0lGKHAoMjU2LCBzKSwgQk9PU1RfUFBfRk9SXzI1NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU3LCBzKSBCT09TVF9QUF9JRihwKDI1NywgcyksIEJPT1NUX1BQX0ZPUl8yNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NywgcyksIHAsIG8sIG0pCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWNkOTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcApAQCAtMCwwICsxLDY2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0VOVU1fSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVidWcvZXJyb3IuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2F1dG9fcmVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfRU5VTSAqLworIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNKGNvdW50LCBtYWNybywgZGF0YSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0VOVU0gQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0VOVU1fLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9SRVBFQVRfUCwgNCkpCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV8xKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xKGMsIEJPT1NUX1BQX0VOVU1fTV8xLCAobSwgZCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNXzIoYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzIoYywgQk9PU1RfUFBfRU5VTV9NXzIsIChtLCBkKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fMyhjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfMyhjLCBCT09TVF9QUF9FTlVNX01fMywgKG0sIGQpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNXzEoYywgbSwgZCkgQk9PU1RfUFBfRU5VTV8xX0koYywgbSwgZCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fMihjLCBtLCBkKSBCT09TVF9QUF9FTlVNXzJfSShjLCBtLCBkKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV8zKGMsIG0sIGQpIEJPT1NUX1BQX0VOVU1fM19JKGMsIG0sIGQpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNXzFfSShjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfMShjLCBCT09TVF9QUF9FTlVNX01fMSwgKG0sIGQpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV8yX0koYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzIoYywgQk9PU1RfUFBfRU5VTV9NXzIsIChtLCBkKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fM19JKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zKGMsIEJPT1NUX1BQX0VOVU1fTV8zLCAobSwgZCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FTlVNXzQoYywgbSwgZCkgQk9PU1RfUFBfRVJST1IoMHgwMDAzKQorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9NXzEoeiwgbiwgbWQpIEJPT1NUX1BQX0VOVU1fTV8xX0lNKHosIG4sIEJPT1NUX1BQX1RVUExFX1JFTV8yIG1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9NXzIoeiwgbiwgbWQpIEJPT1NUX1BQX0VOVU1fTV8yX0lNKHosIG4sIEJPT1NUX1BQX1RVUExFX1JFTV8yIG1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9NXzMoeiwgbiwgbWQpIEJPT1NUX1BQX0VOVU1fTV8zX0lNKHosIG4sIEJPT1NUX1BQX1RVUExFX1JFTV8yIG1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9NXzFfSU0oeiwgbiwgaW0pIEJPT1NUX1BQX0VOVU1fTV8xX0koeiwgbiwgaW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX01fMl9JTSh6LCBuLCBpbSkgQk9PU1RfUFBfRU5VTV9NXzJfSSh6LCBuLCBpbSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fTV8zX0lNKHosIG4sIGltKSBCT09TVF9QUF9FTlVNX01fM19JKHosIG4sIGltKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX01fMSh6LCBuLCBtZCkgQk9PU1RfUFBfRU5VTV9NXzFfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIG1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBtZCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX01fMih6LCBuLCBtZCkgQk9PU1RfUFBfRU5VTV9NXzJfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIG1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBtZCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX01fMyh6LCBuLCBtZCkgQk9PU1RfUFBfRU5VTV9NXzNfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIG1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBtZCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FTlVNX01fMV9JKHosIG4sIG0sIGQpIEJPT1NUX1BQX0NPTU1BX0lGKG4pIG0oeiwgbiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX0VOVU1fTV8yX0koeiwgbiwgbSwgZCkgQk9PU1RfUFBfQ09NTUFfSUYobikgbSh6LCBuLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfRU5VTV9NXzNfSSh6LCBuLCBtLCBkKSBCT09TVF9QUF9DT01NQV9JRihuKSBtKHosIG4sIGQpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlkZTgwMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9iaW5hcnlfcGFyYW1zLmhwcApAQCAtMCwwICsxLDU0IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRU5VTV9CSU5BUllfUEFSQU1TX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRU5VTV9CSU5BUllfUEFSQU1TX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWFfaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVMgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVMoY291bnQsIHAxLCBwMikgQk9PU1RfUFBfUkVQRUFUKGNvdW50LCBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfTSwgKHAxLCBwMikpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fQklOQVJZX1BBUkFNUyhjb3VudCwgcDEsIHAyKSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfSShjb3VudCwgcDEsIHAyKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX0koY291bnQsIHAxLCBwMikgQk9PU1RfUFBfUkVQRUFUKGNvdW50LCBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfTSwgKHAxLCBwMikpCisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfTSh6LCBuLCBwcCkgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX01fSU0oeiwgbiwgQk9PU1RfUFBfVFVQTEVfUkVNXzIgcHApCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfTV9JTSh6LCBuLCBpbSkgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX01fSSh6LCBuLCBpbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX00oeiwgbiwgcHApIEJPT1NUX1BQX0VOVU1fQklOQVJZX1BBUkFNU19NX0koeiwgbiwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAwLCBwcCksIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMSwgcHApKQorIyBlbmRpZgorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfTV9JKHosIG4sIHAxLCBwMikgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX01fSUkoeiwgbiwgcDEsIHAyKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX01fSUkoeiwgbiwgcDEsIHAyKSBCT09TVF9QUF9DT01NQV9JRihuKSBwMSAjIyBuIHAyICMjIG4KKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX01fSSh6LCBuLCBwMSwgcDIpIEJPT1NUX1BQX0NPTU1BX0lGKG4pIEJPT1NUX1BQX0NBVChwMSwgbikgQk9PU1RfUFBfQ0FUKHAyLCBuKQorIyBlbmRpZgorIworIyAvKiBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfWiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fQklOQVJZX1BBUkFNU19aKHosIGNvdW50LCBwMSwgcDIpIEJPT1NUX1BQX1JFUEVBVF8gIyMgeihjb3VudCwgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX00sIChwMSwgcDIpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfWih6LCBjb3VudCwgcDEsIHAyKSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfWl9JKHosIGNvdW50LCBwMSwgcDIpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVNfWl9JKHosIGNvdW50LCBwMSwgcDIpIEJPT1NUX1BQX1JFUEVBVF8gIyMgeihjb3VudCwgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TX00sIChwMSwgcDIpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2M4NTc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtcy5ocHAKQEAgLTAsMCArMSw0MSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX1BBUkFNU19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0VOVU1fUEFSQU1TX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9jb21tYV9pZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0VOVU1fUEFSQU1TICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVMoY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVQoY291bnQsIEJPT1NUX1BQX0VOVU1fUEFSQU1TX00sIHBhcmFtKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1BBUkFNUyhjb3VudCwgcGFyYW0pIEJPT1NUX1BQX0VOVU1fUEFSQU1TX0koY291bnQsIHBhcmFtKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVNfSShjb3VudCwgcGFyYW0pIEJPT1NUX1BQX1JFUEVBVChjb3VudCwgQk9PU1RfUFBfRU5VTV9QQVJBTVNfTSwgcGFyYW0pCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FTlVNX1BBUkFNU19NKHosIG4sIHBhcmFtKSBCT09TVF9QUF9DT01NQV9JRihuKSBwYXJhbSAjIyBuCisjCisjIC8qIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ogKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1BBUkFNU19aKHosIGNvdW50LCBwYXJhbSkgQk9PU1RfUFBfUkVQRUFUXyAjIyB6KGNvdW50LCBCT09TVF9QUF9FTlVNX1BBUkFNU19NLCBwYXJhbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBjb3VudCwgcGFyYW0pIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1pfSSh6LCBjb3VudCwgcGFyYW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1BBUkFNU19aX0koeiwgY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVRfICMjIHooY291bnQsIEJPT1NUX1BQX0VOVU1fUEFSQU1TX00sIHBhcmFtKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtc193aXRoX2FfZGVmYXVsdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zX3dpdGhfYV9kZWZhdWx0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzZiYWFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtc193aXRoX2FfZGVmYXVsdC5ocHAKQEAgLTAsMCArMSwyNSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX1BBUkFNU19XSVRIX0FfREVGQVVMVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0VOVU1fUEFSQU1TX1dJVEhfQV9ERUZBVUxUX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2ludGVyY2VwdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1dJVEhfQV9ERUZBVUxUICovCisjCisjIGRlZmluZSBCT09TVF9QUF9FTlVNX1BBUkFNU19XSVRIX0FfREVGQVVMVChjb3VudCwgcGFyYW0sIGRlZikgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TKGNvdW50LCBwYXJhbSwgPSBkZWYgQk9PU1RfUFBfSU5URVJDRVBUKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3NoaWZ0ZWRfcGFyYW1zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9zaGlmdGVkX3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM3MWViOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9zaGlmdGVkX3BhcmFtcy5ocHAKQEAgLTAsMCArMSw0NCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX1NISUZURURfUEFSQU1TX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRU5VTV9TSElGVEVEX1BBUkFNU19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0LmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNUyAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVMoY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVQoQk9PU1RfUFBfREVDKGNvdW50KSwgQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNU19NLCBwYXJhbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNUyhjb3VudCwgcGFyYW0pIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVNfSShjb3VudCwgcGFyYW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TX0koY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVQoQk9PU1RfUFBfREVDKGNvdW50KSwgQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNU19NLCBwYXJhbSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVNfTSh6LCBuLCBwYXJhbSkgQk9PU1RfUFBfQ09NTUFfSUYobikgQk9PU1RfUFBfQ0FUKHBhcmFtLCBCT09TVF9QUF9JTkMobikpCisjCisjIC8qIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVNfWiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVNfWih6LCBjb3VudCwgcGFyYW0pIEJPT1NUX1BQX1JFUEVBVF8gIyMgeihCT09TVF9QUF9ERUMoY291bnQpLCBCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TX00sIHBhcmFtKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TX1ooeiwgY291bnQsIHBhcmFtKSBCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TX1pfSSh6LCBjb3VudCwgcGFyYW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TX1pfSSh6LCBjb3VudCwgcGFyYW0pIEJPT1NUX1BQX1JFUEVBVF8gIyMgeihCT09TVF9QUF9ERUMoY291bnQpLCBCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TX00sIHBhcmFtKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3RyYWlsaW5nLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV90cmFpbGluZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ5M2UxOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV90cmFpbGluZy5ocHAKQEAgLTAsMCArMSw2MyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0VOVU1fVFJBSUxJTkdfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX1RSQUlMSU5HX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVidWcvZXJyb3IuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2F1dG9fcmVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfRU5VTV9UUkFJTElORyAqLworIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HKGNvdW50LCBtYWNybywgZGF0YSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkcgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9SRVBFQVRfUCwgNCkpCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR18xKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xKGMsIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8xLCAobSwgZCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HXzIoYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzIoYywgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzIsIChtLCBkKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfMyhjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfMyhjLCBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMywgKG0sIGQpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HXzEoYywgbSwgZCkgQk9PU1RfUFBfRU5VTV9UUkFJTElOR18xX0koYywgbSwgZCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfMihjLCBtLCBkKSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HXzJfSShjLCBtLCBkKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR18zKGMsIG0sIGQpIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfM19JKGMsIG0sIGQpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HXzFfSShjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfMShjLCBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMSwgKG0sIGQpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR18yX0koYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzIoYywgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzIsIChtLCBkKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfM19JKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zKGMsIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8zLCAobSwgZCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HXzQoYywgbSwgZCkgQk9PU1RfUFBfRVJST1IoMHgwMDAzKQorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzEoeiwgbiwgbWQpIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8xX0lNKHosIG4sIEJPT1NUX1BQX1RVUExFX1JFTV8yIG1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzIoeiwgbiwgbWQpIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8yX0lNKHosIG4sIEJPT1NUX1BQX1RVUExFX1JFTV8yIG1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzMoeiwgbiwgbWQpIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8zX0lNKHosIG4sIEJPT1NUX1BQX1RVUExFX1JFTV8yIG1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzFfSU0oeiwgbiwgaW0pIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8xX0koeiwgbiwgaW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMl9JTSh6LCBuLCBpbSkgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzJfSSh6LCBuLCBpbSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8zX0lNKHosIG4sIGltKSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fM19JKHosIG4sIGltKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMSh6LCBuLCBtZCkgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzFfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIG1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBtZCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMih6LCBuLCBtZCkgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzJfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIG1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBtZCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMyh6LCBuLCBtZCkgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzNfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIG1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBtZCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX01fMV9JKHosIG4sIG0sIGQpICwgbSh6LCBuLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19NXzJfSSh6LCBuLCBtLCBkKSAsIG0oeiwgbiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfTV8zX0koeiwgbiwgbSwgZCkgLCBtKHosIG4sIGQpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmdfcGFyYW1zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV90cmFpbGluZ19wYXJhbXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MjAxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmdfcGFyYW1zLmhwcApAQCAtMCwwICsxLDM4IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRU5VTV9UUkFJTElOR19QQVJBTVNfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX1RSQUlMSU5HX1BBUkFNU19IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorIworIyAvKiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKGNvdW50LCBwYXJhbSkgQk9PU1RfUFBfUkVQRUFUKGNvdW50LCBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNU19NLCBwYXJhbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoY291bnQsIHBhcmFtKSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNU19JKGNvdW50LCBwYXJhbSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TX0koY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVQoY291bnQsIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TX00sIHBhcmFtKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVNfTSh6LCBuLCBwYXJhbSkgLCBwYXJhbSAjIyBuCisjCisjIC8qIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TX1ogKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNU19aKHosIGNvdW50LCBwYXJhbSkgQk9PU1RfUFBfUkVQRUFUXyAjIyB6KGNvdW50LCBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNU19NLCBwYXJhbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVNfWih6LCBjb3VudCwgcGFyYW0pIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TX1pfSSh6LCBjb3VudCwgcGFyYW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNU19aX0koeiwgY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVRfICMjIHooY291bnQsIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TX00sIHBhcmFtKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmODExNGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2Zvci5ocHAKQEAgLTAsMCArMSwzMDYgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRk9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRk9SX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0ZPUiAqLworIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9GT1Ioc3RhdGUsIHByZWQsIG9wLCBtYWNybykKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUiBCT09TVF9QUF9DQVQoQk9PU1RfUFBfRk9SXywgQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfRk9SX1AsIDI1NikpCisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfUChuKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfRk9SX0NIRUNLXywgQk9PU1RfUFBfRk9SXyAjIyBuKDEsIEJPT1NUX1BQX0ZPUl9TUl9QLCBCT09TVF9QUF9GT1JfU1JfTywgQk9PU1RfUFBfRk9SX1NSX00pKQorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SX1NSX1AociwgcykgcworIyBkZWZpbmUgQk9PU1RfUFBfRk9SX1NSX08ociwgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX1NSX00ociwgcykgQk9PU1RfUFBfTklMCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9lZGcvZm9yLmhwcD4KKyMgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL21zdmMvZm9yLmhwcD4KKyMgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19ETUMoKQorIyAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZG1jL2Zvci5ocHA+CisjIGVsc2UKKyMgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2Zvci5ocHA+CisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0VSUk9SKDB4MDAwMikKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9OSUwgMQorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzExKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzE0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzE3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzIwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzIzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzI2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yOChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzI5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zMShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzMyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zNChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzM1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zNyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzM4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80MChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzQxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80MyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzQ0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80NihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzQ3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80OShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzUwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81MihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzUzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81NShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzU2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNTcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81OChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzU5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82MShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzYyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82NChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzY1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82NyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzY4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83MChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzcxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83MyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzc0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83NihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzc3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83OShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzgwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfODEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84MihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzgzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfODQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84NShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzg2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfODcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84OChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzg5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85MShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzkyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85NChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzk1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85NyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzk4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMDkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMTkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMjkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMzkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNDkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNTkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNjkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNzkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xODkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xOTkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMDkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMTkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMjkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMzkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNDkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNTYocywgcCwgbywgbSkgMAorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYzdkNzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHAKQEAgLTAsMCArMSw4MjUgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fUkVQRUFUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fUkVQRUFUX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVidWcvZXJyb3IuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2F1dG9fcmVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1JFUEVBVCAqLworIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9SRVBFQVQoY291bnQsIG1hY3JvLCBkYXRhKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUIEJPT1NUX1BQX0NBVChCT09TVF9QUF9SRVBFQVRfLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9SRVBFQVRfUCwgNCkpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfUChuKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfUkVQRUFUX0NIRUNLXywgQk9PU1RfUFBfUkVQRUFUXyAjIyBuKDEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMywgQk9PU1RfUFBfTklMKSkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9DSEVDS19CT09TVF9QUF9OSUwgMQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0NIRUNLX0JPT1NUX1BQX1JFUEVBVF8xKGMsIG0sIGQpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9DSEVDS19CT09TVF9QUF9SRVBFQVRfMihjLCBtLCBkKSAwCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfQ0hFQ0tfQk9PU1RfUFBfUkVQRUFUXzMoYywgbSwgZCkgMAorIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzEoYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfSShjLCBtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzIoYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfSShjLCBtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzMoYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfSShjLCBtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzQoYywgbSwgZCkgQk9PU1RfUFBfRVJST1IoMHgwMDAzKQorIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfSShjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8gIyMgYyhtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfSShjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8gIyMgYyhtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfSShjLCBtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18gIyMgYyhtLCBkKQorIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFTVCBCT09TVF9QUF9SRVBFQVRfMQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJORCBCT09TVF9QUF9SRVBFQVRfMgorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNSRCBCT09TVF9QUF9SRVBFQVRfMworIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMChtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMShtLCBkKSBtKDIsIDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEobSwgZCkgbSgyLCAxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yKG0sIGQpIG0oMiwgMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMyhtLCBkKSBtKDIsIDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQobSwgZCkgbSgyLCA0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81KG0sIGQpIG0oMiwgNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNihtLCBkKSBtKDIsIDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzcobSwgZCkgbSgyLCA3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84KG0sIGQpIG0oMiwgOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzkobSwgZCkgbSgyLCA5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTAobSwgZCkgbSgyLCAxMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExKG0sIGQpIG0oMiwgMTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMihtLCBkKSBtKDIsIDEyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTMobSwgZCkgbSgyLCAxMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0KG0sIGQpIG0oMiwgMTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNShtLCBkKSBtKDIsIDE1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTYobSwgZCkgbSgyLCAxNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3KG0sIGQpIG0oMiwgMTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOChtLCBkKSBtKDIsIDE4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTkobSwgZCkgbSgyLCAxOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwKG0sIGQpIG0oMiwgMjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMShtLCBkKSBtKDIsIDIxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjIobSwgZCkgbSgyLCAyMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzKG0sIGQpIG0oMiwgMjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNChtLCBkKSBtKDIsIDI0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjUobSwgZCkgbSgyLCAyNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI2KG0sIGQpIG0oMiwgMjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNyhtLCBkKSBtKDIsIDI3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjgobSwgZCkgbSgyLCAyOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzMwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI5KG0sIGQpIG0oMiwgMjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zMChtLCBkKSBtKDIsIDMwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzEobSwgZCkgbSgyLCAzMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzMzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzMyKG0sIGQpIG0oMiwgMzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zMyhtLCBkKSBtKDIsIDMzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzQobSwgZCkgbSgyLCAzNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzM2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzM1KG0sIGQpIG0oMiwgMzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zNihtLCBkKSBtKDIsIDM2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzcobSwgZCkgbSgyLCAzNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzM5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzM4KG0sIGQpIG0oMiwgMzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zOShtLCBkKSBtKDIsIDM5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDAobSwgZCkgbSgyLCA0MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQxKG0sIGQpIG0oMiwgNDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80MihtLCBkKSBtKDIsIDQyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDMobSwgZCkgbSgyLCA0MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQ1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQ0KG0sIGQpIG0oMiwgNDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80NShtLCBkKSBtKDIsIDQ1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDYobSwgZCkgbSgyLCA0NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQ4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQ3KG0sIGQpIG0oMiwgNDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80OChtLCBkKSBtKDIsIDQ4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDkobSwgZCkgbSgyLCA0OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzUxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzUwKG0sIGQpIG0oMiwgNTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81MShtLCBkKSBtKDIsIDUxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNTIobSwgZCkgbSgyLCA1MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzU0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzUzKG0sIGQpIG0oMiwgNTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81NChtLCBkKSBtKDIsIDU0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNTUobSwgZCkgbSgyLCA1NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzU3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzU2KG0sIGQpIG0oMiwgNTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81NyhtLCBkKSBtKDIsIDU3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNTgobSwgZCkgbSgyLCA1OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzYwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzU5KG0sIGQpIG0oMiwgNTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82MChtLCBkKSBtKDIsIDYwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjEobSwgZCkgbSgyLCA2MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzYzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzYyKG0sIGQpIG0oMiwgNjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82MyhtLCBkKSBtKDIsIDYzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjQobSwgZCkgbSgyLCA2NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzY2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzY1KG0sIGQpIG0oMiwgNjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82NihtLCBkKSBtKDIsIDY2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjcobSwgZCkgbSgyLCA2NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzY5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzY4KG0sIGQpIG0oMiwgNjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82OShtLCBkKSBtKDIsIDY5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzAobSwgZCkgbSgyLCA3MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzcyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzcxKG0sIGQpIG0oMiwgNzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83MihtLCBkKSBtKDIsIDcyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzMobSwgZCkgbSgyLCA3MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzc1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzc0KG0sIGQpIG0oMiwgNzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83NShtLCBkKSBtKDIsIDc1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzYobSwgZCkgbSgyLCA3NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzc4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzc3KG0sIGQpIG0oMiwgNzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83OChtLCBkKSBtKDIsIDc4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzkobSwgZCkgbSgyLCA3OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzgxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzgwKG0sIGQpIG0oMiwgODAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84MShtLCBkKSBtKDIsIDgxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfODIobSwgZCkgbSgyLCA4MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzg0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzgzKG0sIGQpIG0oMiwgODMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84NChtLCBkKSBtKDIsIDg0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfODUobSwgZCkgbSgyLCA4NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzg3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzg2KG0sIGQpIG0oMiwgODYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84NyhtLCBkKSBtKDIsIDg3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfODgobSwgZCkgbSgyLCA4OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzkwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzg5KG0sIGQpIG0oMiwgODksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85MChtLCBkKSBtKDIsIDkwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTEobSwgZCkgbSgyLCA5MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzkzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzkyKG0sIGQpIG0oMiwgOTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85MyhtLCBkKSBtKDIsIDkzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTQobSwgZCkgbSgyLCA5NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzk2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzk1KG0sIGQpIG0oMiwgOTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85NihtLCBkKSBtKDIsIDk2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTcobSwgZCkgbSgyLCA5NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzk5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzk4KG0sIGQpIG0oMiwgOTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTkobSwgZCkgbSgyLCA5OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDAobSwgZCkgbSgyLCAxMDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTAxKG0sIGQpIG0oMiwgMTAxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTAzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwMihtLCBkKSBtKDIsIDEwMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDMobSwgZCkgbSgyLCAxMDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTA0KG0sIGQpIG0oMiwgMTA0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTA2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwNShtLCBkKSBtKDIsIDEwNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDYobSwgZCkgbSgyLCAxMDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTA3KG0sIGQpIG0oMiwgMTA3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTA5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwOChtLCBkKSBtKDIsIDEwOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDkobSwgZCkgbSgyLCAxMDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTEwKG0sIGQpIG0oMiwgMTEwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTEyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExMShtLCBkKSBtKDIsIDExMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMTIobSwgZCkgbSgyLCAxMTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTEzKG0sIGQpIG0oMiwgMTEzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTE1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExNChtLCBkKSBtKDIsIDExNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMTUobSwgZCkgbSgyLCAxMTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTE2KG0sIGQpIG0oMiwgMTE2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTE4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExNyhtLCBkKSBtKDIsIDExNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMTgobSwgZCkgbSgyLCAxMTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTE5KG0sIGQpIG0oMiwgMTE5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTIxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyMChtLCBkKSBtKDIsIDEyMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjEobSwgZCkgbSgyLCAxMjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTIyKG0sIGQpIG0oMiwgMTIyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTI0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyMyhtLCBkKSBtKDIsIDEyMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjQobSwgZCkgbSgyLCAxMjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTI1KG0sIGQpIG0oMiwgMTI1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTI3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyNihtLCBkKSBtKDIsIDEyNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjcobSwgZCkgbSgyLCAxMjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTI4KG0sIGQpIG0oMiwgMTI4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTMwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyOShtLCBkKSBtKDIsIDEyOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzAobSwgZCkgbSgyLCAxMzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTMxKG0sIGQpIG0oMiwgMTMxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTMzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzMihtLCBkKSBtKDIsIDEzMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzMobSwgZCkgbSgyLCAxMzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTM0KG0sIGQpIG0oMiwgMTM0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTM2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzNShtLCBkKSBtKDIsIDEzNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzYobSwgZCkgbSgyLCAxMzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTM3KG0sIGQpIG0oMiwgMTM3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTM5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzOChtLCBkKSBtKDIsIDEzOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzkobSwgZCkgbSgyLCAxMzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQwKG0sIGQpIG0oMiwgMTQwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0MShtLCBkKSBtKDIsIDE0MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNDIobSwgZCkgbSgyLCAxNDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQzKG0sIGQpIG0oMiwgMTQzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQ1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0NChtLCBkKSBtKDIsIDE0NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNDUobSwgZCkgbSgyLCAxNDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQ2KG0sIGQpIG0oMiwgMTQ2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQ4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0NyhtLCBkKSBtKDIsIDE0NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNDgobSwgZCkgbSgyLCAxNDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQ5KG0sIGQpIG0oMiwgMTQ5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTUxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1MChtLCBkKSBtKDIsIDE1MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTEobSwgZCkgbSgyLCAxNTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTUyKG0sIGQpIG0oMiwgMTUyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTU0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1MyhtLCBkKSBtKDIsIDE1MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTQobSwgZCkgbSgyLCAxNTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTU1KG0sIGQpIG0oMiwgMTU1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTU3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1NihtLCBkKSBtKDIsIDE1NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTcobSwgZCkgbSgyLCAxNTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTU4KG0sIGQpIG0oMiwgMTU4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTYwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1OShtLCBkKSBtKDIsIDE1OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjAobSwgZCkgbSgyLCAxNjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTYxKG0sIGQpIG0oMiwgMTYxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTYzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2MihtLCBkKSBtKDIsIDE2MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjMobSwgZCkgbSgyLCAxNjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTY0KG0sIGQpIG0oMiwgMTY0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTY2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2NShtLCBkKSBtKDIsIDE2NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjYobSwgZCkgbSgyLCAxNjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTY3KG0sIGQpIG0oMiwgMTY3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTY5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2OChtLCBkKSBtKDIsIDE2OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjkobSwgZCkgbSgyLCAxNjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTcwKG0sIGQpIG0oMiwgMTcwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTcyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3MShtLCBkKSBtKDIsIDE3MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNzIobSwgZCkgbSgyLCAxNzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTczKG0sIGQpIG0oMiwgMTczLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTc1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3NChtLCBkKSBtKDIsIDE3NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNzUobSwgZCkgbSgyLCAxNzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTc2KG0sIGQpIG0oMiwgMTc2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTc4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3NyhtLCBkKSBtKDIsIDE3NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNzgobSwgZCkgbSgyLCAxNzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTc5KG0sIGQpIG0oMiwgMTc5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTgxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4MChtLCBkKSBtKDIsIDE4MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODEobSwgZCkgbSgyLCAxODEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTgyKG0sIGQpIG0oMiwgMTgyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTg0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4MyhtLCBkKSBtKDIsIDE4MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODQobSwgZCkgbSgyLCAxODQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTg1KG0sIGQpIG0oMiwgMTg1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTg3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4NihtLCBkKSBtKDIsIDE4NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODcobSwgZCkgbSgyLCAxODcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTg4KG0sIGQpIG0oMiwgMTg4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTkwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4OShtLCBkKSBtKDIsIDE4OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTAobSwgZCkgbSgyLCAxOTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTkxKG0sIGQpIG0oMiwgMTkxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTkzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5MihtLCBkKSBtKDIsIDE5MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTMobSwgZCkgbSgyLCAxOTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTk0KG0sIGQpIG0oMiwgMTk0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTk2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5NShtLCBkKSBtKDIsIDE5NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTYobSwgZCkgbSgyLCAxOTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTk3KG0sIGQpIG0oMiwgMTk3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTk5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5OChtLCBkKSBtKDIsIDE5OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTkobSwgZCkgbSgyLCAxOTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjAwKG0sIGQpIG0oMiwgMjAwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjAyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwMShtLCBkKSBtKDIsIDIwMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMDIobSwgZCkgbSgyLCAyMDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjAzKG0sIGQpIG0oMiwgMjAzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjA1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwNChtLCBkKSBtKDIsIDIwNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMDUobSwgZCkgbSgyLCAyMDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjA2KG0sIGQpIG0oMiwgMjA2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjA4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwNyhtLCBkKSBtKDIsIDIwNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMDgobSwgZCkgbSgyLCAyMDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjA5KG0sIGQpIG0oMiwgMjA5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjExKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxMChtLCBkKSBtKDIsIDIxMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTEobSwgZCkgbSgyLCAyMTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjEyKG0sIGQpIG0oMiwgMjEyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjE0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxMyhtLCBkKSBtKDIsIDIxMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTQobSwgZCkgbSgyLCAyMTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjE1KG0sIGQpIG0oMiwgMjE1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjE3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxNihtLCBkKSBtKDIsIDIxNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTcobSwgZCkgbSgyLCAyMTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjE4KG0sIGQpIG0oMiwgMjE4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjIwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxOShtLCBkKSBtKDIsIDIxOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjAobSwgZCkgbSgyLCAyMjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjIxKG0sIGQpIG0oMiwgMjIxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjIzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyMihtLCBkKSBtKDIsIDIyMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjMobSwgZCkgbSgyLCAyMjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjI0KG0sIGQpIG0oMiwgMjI0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjI2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyNShtLCBkKSBtKDIsIDIyNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjYobSwgZCkgbSgyLCAyMjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjI3KG0sIGQpIG0oMiwgMjI3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjI5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyOChtLCBkKSBtKDIsIDIyOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjkobSwgZCkgbSgyLCAyMjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjMwKG0sIGQpIG0oMiwgMjMwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjMyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzMShtLCBkKSBtKDIsIDIzMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMzIobSwgZCkgbSgyLCAyMzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjMzKG0sIGQpIG0oMiwgMjMzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjM1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzNChtLCBkKSBtKDIsIDIzNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMzUobSwgZCkgbSgyLCAyMzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjM2KG0sIGQpIG0oMiwgMjM2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjM4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzNyhtLCBkKSBtKDIsIDIzNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMzgobSwgZCkgbSgyLCAyMzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjM5KG0sIGQpIG0oMiwgMjM5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0MChtLCBkKSBtKDIsIDI0MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDEobSwgZCkgbSgyLCAyNDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQyKG0sIGQpIG0oMiwgMjQyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQ0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0MyhtLCBkKSBtKDIsIDI0MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDQobSwgZCkgbSgyLCAyNDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQ1KG0sIGQpIG0oMiwgMjQ1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQ3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0NihtLCBkKSBtKDIsIDI0NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDcobSwgZCkgbSgyLCAyNDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQ4KG0sIGQpIG0oMiwgMjQ4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjUwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0OShtLCBkKSBtKDIsIDI0OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI1MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNTAobSwgZCkgbSgyLCAyNTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjUxKG0sIGQpIG0oMiwgMjUxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjUzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI1MihtLCBkKSBtKDIsIDI1MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI1NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNTMobSwgZCkgbSgyLCAyNTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjU0KG0sIGQpIG0oMiwgMjU0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjU2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI1NShtLCBkKSBtKDIsIDI1NSwgZCkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzAobSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEobSwgZCkgbSgzLCAwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xKG0sIGQpIG0oMywgMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMihtLCBkKSBtKDMsIDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzMobSwgZCkgbSgzLCAzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80KG0sIGQpIG0oMywgNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNShtLCBkKSBtKDMsIDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzYobSwgZCkgbSgzLCA2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83KG0sIGQpIG0oMywgNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOChtLCBkKSBtKDMsIDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85KG0sIGQpIG0oMywgOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwKG0sIGQpIG0oMywgMTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMShtLCBkKSBtKDMsIDExLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTIobSwgZCkgbSgzLCAxMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzKG0sIGQpIG0oMywgMTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNChtLCBkKSBtKDMsIDE0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTUobSwgZCkgbSgzLCAxNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2KG0sIGQpIG0oMywgMTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNyhtLCBkKSBtKDMsIDE3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTgobSwgZCkgbSgzLCAxOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5KG0sIGQpIG0oMywgMTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMChtLCBkKSBtKDMsIDIwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjEobSwgZCkgbSgzLCAyMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyKG0sIGQpIG0oMywgMjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMyhtLCBkKSBtKDMsIDIzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQobSwgZCkgbSgzLCAyNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI1KG0sIGQpIG0oMywgMjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNihtLCBkKSBtKDMsIDI2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjcobSwgZCkgbSgzLCAyNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI4KG0sIGQpIG0oMywgMjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yOShtLCBkKSBtKDMsIDI5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzAobSwgZCkgbSgzLCAzMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzMyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzMxKG0sIGQpIG0oMywgMzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zMihtLCBkKSBtKDMsIDMyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzMobSwgZCkgbSgzLCAzMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzM1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzM0KG0sIGQpIG0oMywgMzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zNShtLCBkKSBtKDMsIDM1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzYobSwgZCkgbSgzLCAzNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzM4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzM3KG0sIGQpIG0oMywgMzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zOChtLCBkKSBtKDMsIDM4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzkobSwgZCkgbSgzLCAzOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQwKG0sIGQpIG0oMywgNDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80MShtLCBkKSBtKDMsIDQxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNDIobSwgZCkgbSgzLCA0MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQ0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQzKG0sIGQpIG0oMywgNDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80NChtLCBkKSBtKDMsIDQ0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNDUobSwgZCkgbSgzLCA0NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQ3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQ2KG0sIGQpIG0oMywgNDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80NyhtLCBkKSBtKDMsIDQ3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNDgobSwgZCkgbSgzLCA0OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzUwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQ5KG0sIGQpIG0oMywgNDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81MChtLCBkKSBtKDMsIDUwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTEobSwgZCkgbSgzLCA1MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzUzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzUyKG0sIGQpIG0oMywgNTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81MyhtLCBkKSBtKDMsIDUzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTQobSwgZCkgbSgzLCA1NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzU2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzU1KG0sIGQpIG0oMywgNTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81NihtLCBkKSBtKDMsIDU2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTcobSwgZCkgbSgzLCA1NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzU5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzU4KG0sIGQpIG0oMywgNTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81OShtLCBkKSBtKDMsIDU5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjAobSwgZCkgbSgzLCA2MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzYyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzYxKG0sIGQpIG0oMywgNjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82MihtLCBkKSBtKDMsIDYyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjMobSwgZCkgbSgzLCA2MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzY1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzY0KG0sIGQpIG0oMywgNjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82NShtLCBkKSBtKDMsIDY1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjYobSwgZCkgbSgzLCA2NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzY4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzY3KG0sIGQpIG0oMywgNjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82OChtLCBkKSBtKDMsIDY4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjkobSwgZCkgbSgzLCA2OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzcxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzcwKG0sIGQpIG0oMywgNzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83MShtLCBkKSBtKDMsIDcxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNzIobSwgZCkgbSgzLCA3MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzc0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzczKG0sIGQpIG0oMywgNzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83NChtLCBkKSBtKDMsIDc0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNzUobSwgZCkgbSgzLCA3NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzc3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzc2KG0sIGQpIG0oMywgNzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83NyhtLCBkKSBtKDMsIDc3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNzgobSwgZCkgbSgzLCA3OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzgwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzc5KG0sIGQpIG0oMywgNzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84MChtLCBkKSBtKDMsIDgwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfODIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODEobSwgZCkgbSgzLCA4MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzgzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzgyKG0sIGQpIG0oMywgODIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84MyhtLCBkKSBtKDMsIDgzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfODUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODQobSwgZCkgbSgzLCA4NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzg2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzg1KG0sIGQpIG0oMywgODUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84NihtLCBkKSBtKDMsIDg2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfODgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODcobSwgZCkgbSgzLCA4NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzg5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzg4KG0sIGQpIG0oMywgODgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84OShtLCBkKSBtKDMsIDg5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOTAobSwgZCkgbSgzLCA5MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzkyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzkxKG0sIGQpIG0oMywgOTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85MihtLCBkKSBtKDMsIDkyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOTMobSwgZCkgbSgzLCA5MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzk1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzk0KG0sIGQpIG0oMywgOTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85NShtLCBkKSBtKDMsIDk1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOTYobSwgZCkgbSgzLCA5NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzk4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzk3KG0sIGQpIG0oMywgOTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85OChtLCBkKSBtKDMsIDk4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTAwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzk5KG0sIGQpIG0oMywgOTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTAwKG0sIGQpIG0oMywgMTAwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTAyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwMShtLCBkKSBtKDMsIDEwMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMDIobSwgZCkgbSgzLCAxMDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTAzKG0sIGQpIG0oMywgMTAzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTA1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwNChtLCBkKSBtKDMsIDEwNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMDUobSwgZCkgbSgzLCAxMDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTA2KG0sIGQpIG0oMywgMTA2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTA4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwNyhtLCBkKSBtKDMsIDEwNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMDgobSwgZCkgbSgzLCAxMDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTA5KG0sIGQpIG0oMywgMTA5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTExKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExMChtLCBkKSBtKDMsIDExMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTEobSwgZCkgbSgzLCAxMTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTEyKG0sIGQpIG0oMywgMTEyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTE0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExMyhtLCBkKSBtKDMsIDExMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTQobSwgZCkgbSgzLCAxMTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTE1KG0sIGQpIG0oMywgMTE1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTE3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExNihtLCBkKSBtKDMsIDExNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTcobSwgZCkgbSgzLCAxMTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTE4KG0sIGQpIG0oMywgMTE4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTIwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExOShtLCBkKSBtKDMsIDExOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjAobSwgZCkgbSgzLCAxMjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTIxKG0sIGQpIG0oMywgMTIxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTIzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyMihtLCBkKSBtKDMsIDEyMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjMobSwgZCkgbSgzLCAxMjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTI0KG0sIGQpIG0oMywgMTI0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTI2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyNShtLCBkKSBtKDMsIDEyNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjYobSwgZCkgbSgzLCAxMjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTI3KG0sIGQpIG0oMywgMTI3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTI5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyOChtLCBkKSBtKDMsIDEyOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjkobSwgZCkgbSgzLCAxMjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTMwKG0sIGQpIG0oMywgMTMwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTMyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzMShtLCBkKSBtKDMsIDEzMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMzIobSwgZCkgbSgzLCAxMzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTMzKG0sIGQpIG0oMywgMTMzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTM1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzNChtLCBkKSBtKDMsIDEzNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMzUobSwgZCkgbSgzLCAxMzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTM2KG0sIGQpIG0oMywgMTM2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTM4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzNyhtLCBkKSBtKDMsIDEzNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMzgobSwgZCkgbSgzLCAxMzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTM5KG0sIGQpIG0oMywgMTM5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0MChtLCBkKSBtKDMsIDE0MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDEobSwgZCkgbSgzLCAxNDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQyKG0sIGQpIG0oMywgMTQyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQ0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0MyhtLCBkKSBtKDMsIDE0MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDQobSwgZCkgbSgzLCAxNDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQ1KG0sIGQpIG0oMywgMTQ1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQ3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0NihtLCBkKSBtKDMsIDE0NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDcobSwgZCkgbSgzLCAxNDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQ4KG0sIGQpIG0oMywgMTQ4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTUwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0OShtLCBkKSBtKDMsIDE0OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTAobSwgZCkgbSgzLCAxNTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTUxKG0sIGQpIG0oMywgMTUxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTUzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1MihtLCBkKSBtKDMsIDE1MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTMobSwgZCkgbSgzLCAxNTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTU0KG0sIGQpIG0oMywgMTU0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTU2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1NShtLCBkKSBtKDMsIDE1NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTYobSwgZCkgbSgzLCAxNTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTU3KG0sIGQpIG0oMywgMTU3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTU5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1OChtLCBkKSBtKDMsIDE1OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTkobSwgZCkgbSgzLCAxNTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTYwKG0sIGQpIG0oMywgMTYwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTYyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2MShtLCBkKSBtKDMsIDE2MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNjIobSwgZCkgbSgzLCAxNjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTYzKG0sIGQpIG0oMywgMTYzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTY1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2NChtLCBkKSBtKDMsIDE2NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNjUobSwgZCkgbSgzLCAxNjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTY2KG0sIGQpIG0oMywgMTY2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTY4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2NyhtLCBkKSBtKDMsIDE2NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNjgobSwgZCkgbSgzLCAxNjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTY5KG0sIGQpIG0oMywgMTY5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTcxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3MChtLCBkKSBtKDMsIDE3MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzEobSwgZCkgbSgzLCAxNzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTcyKG0sIGQpIG0oMywgMTcyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTc0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3MyhtLCBkKSBtKDMsIDE3MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzQobSwgZCkgbSgzLCAxNzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTc1KG0sIGQpIG0oMywgMTc1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTc3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3NihtLCBkKSBtKDMsIDE3NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzcobSwgZCkgbSgzLCAxNzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTc4KG0sIGQpIG0oMywgMTc4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTgwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3OShtLCBkKSBtKDMsIDE3OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODAobSwgZCkgbSgzLCAxODAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xODIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTgxKG0sIGQpIG0oMywgMTgxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTgzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4MihtLCBkKSBtKDMsIDE4MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODMobSwgZCkgbSgzLCAxODMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xODUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTg0KG0sIGQpIG0oMywgMTg0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTg2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4NShtLCBkKSBtKDMsIDE4NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODYobSwgZCkgbSgzLCAxODYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xODgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTg3KG0sIGQpIG0oMywgMTg3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTg5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4OChtLCBkKSBtKDMsIDE4OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODkobSwgZCkgbSgzLCAxODksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTkwKG0sIGQpIG0oMywgMTkwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTkyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5MShtLCBkKSBtKDMsIDE5MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOTIobSwgZCkgbSgzLCAxOTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTkzKG0sIGQpIG0oMywgMTkzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTk1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5NChtLCBkKSBtKDMsIDE5NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOTUobSwgZCkgbSgzLCAxOTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTk2KG0sIGQpIG0oMywgMTk2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTk4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5NyhtLCBkKSBtKDMsIDE5NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOTgobSwgZCkgbSgzLCAxOTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTk5KG0sIGQpIG0oMywgMTk5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjAxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwMChtLCBkKSBtKDMsIDIwMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDEobSwgZCkgbSgzLCAyMDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjAyKG0sIGQpIG0oMywgMjAyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjA0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwMyhtLCBkKSBtKDMsIDIwMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDQobSwgZCkgbSgzLCAyMDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjA1KG0sIGQpIG0oMywgMjA1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjA3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwNihtLCBkKSBtKDMsIDIwNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDcobSwgZCkgbSgzLCAyMDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjA4KG0sIGQpIG0oMywgMjA4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjEwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwOShtLCBkKSBtKDMsIDIwOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTAobSwgZCkgbSgzLCAyMTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjExKG0sIGQpIG0oMywgMjExLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjEzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxMihtLCBkKSBtKDMsIDIxMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTMobSwgZCkgbSgzLCAyMTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjE0KG0sIGQpIG0oMywgMjE0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjE2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxNShtLCBkKSBtKDMsIDIxNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTYobSwgZCkgbSgzLCAyMTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjE3KG0sIGQpIG0oMywgMjE3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjE5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxOChtLCBkKSBtKDMsIDIxOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTkobSwgZCkgbSgzLCAyMTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjIwKG0sIGQpIG0oMywgMjIwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjIyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyMShtLCBkKSBtKDMsIDIyMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMjIobSwgZCkgbSgzLCAyMjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjIzKG0sIGQpIG0oMywgMjIzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjI1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyNChtLCBkKSBtKDMsIDIyNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMjUobSwgZCkgbSgzLCAyMjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjI2KG0sIGQpIG0oMywgMjI2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjI4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyNyhtLCBkKSBtKDMsIDIyNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMjgobSwgZCkgbSgzLCAyMjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjI5KG0sIGQpIG0oMywgMjI5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjMxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzMChtLCBkKSBtKDMsIDIzMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzEobSwgZCkgbSgzLCAyMzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjMyKG0sIGQpIG0oMywgMjMyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjM0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzMyhtLCBkKSBtKDMsIDIzMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzQobSwgZCkgbSgzLCAyMzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjM1KG0sIGQpIG0oMywgMjM1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjM3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzNihtLCBkKSBtKDMsIDIzNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzcobSwgZCkgbSgzLCAyMzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjM4KG0sIGQpIG0oMywgMjM4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzOShtLCBkKSBtKDMsIDIzOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDAobSwgZCkgbSgzLCAyNDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQxKG0sIGQpIG0oMywgMjQxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0MihtLCBkKSBtKDMsIDI0MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDMobSwgZCkgbSgzLCAyNDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQ0KG0sIGQpIG0oMywgMjQ0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQ2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0NShtLCBkKSBtKDMsIDI0NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDYobSwgZCkgbSgzLCAyNDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQ3KG0sIGQpIG0oMywgMjQ3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQ5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0OChtLCBkKSBtKDMsIDI0OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI1MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDkobSwgZCkgbSgzLCAyNDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjUwKG0sIGQpIG0oMywgMjUwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjUyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI1MShtLCBkKSBtKDMsIDI1MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI1MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNTIobSwgZCkgbSgzLCAyNTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjUzKG0sIGQpIG0oMywgMjUzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjU1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI1NChtLCBkKSBtKDMsIDI1NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI1NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNTUobSwgZCkgbSgzLCAyNTUsIGQpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18wKG0sIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xKG0sIGQpIG0oNCwgMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMShtLCBkKSBtKDQsIDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIobSwgZCkgbSg0LCAyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zKG0sIGQpIG0oNCwgMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNChtLCBkKSBtKDQsIDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzUobSwgZCkgbSg0LCA1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182KG0sIGQpIG0oNCwgNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNyhtLCBkKSBtKDQsIDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzgobSwgZCkgbSg0LCA4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOShtLCBkKSBtKDQsIDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMChtLCBkKSBtKDQsIDEwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTEobSwgZCkgbSg0LCAxMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyKG0sIGQpIG0oNCwgMTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMyhtLCBkKSBtKDQsIDEzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQobSwgZCkgbSg0LCAxNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1KG0sIGQpIG0oNCwgMTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNihtLCBkKSBtKDQsIDE2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTcobSwgZCkgbSg0LCAxNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4KG0sIGQpIG0oNCwgMTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOShtLCBkKSBtKDQsIDE5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjAobSwgZCkgbSg0LCAyMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxKG0sIGQpIG0oNCwgMjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMihtLCBkKSBtKDQsIDIyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjMobSwgZCkgbSg0LCAyMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0KG0sIGQpIG0oNCwgMjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNShtLCBkKSBtKDQsIDI1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjYobSwgZCkgbSg0LCAyNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI3KG0sIGQpIG0oNCwgMjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yOChtLCBkKSBtKDQsIDI4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjkobSwgZCkgbSg0LCAyOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzMxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzMwKG0sIGQpIG0oNCwgMzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zMShtLCBkKSBtKDQsIDMxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMzIobSwgZCkgbSg0LCAzMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzM0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzMzKG0sIGQpIG0oNCwgMzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zNChtLCBkKSBtKDQsIDM0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMzUobSwgZCkgbSg0LCAzNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzM3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzM2KG0sIGQpIG0oNCwgMzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zNyhtLCBkKSBtKDQsIDM3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMzgobSwgZCkgbSg0LCAzOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzM5KG0sIGQpIG0oNCwgMzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180MChtLCBkKSBtKDQsIDQwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDEobSwgZCkgbSg0LCA0MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQyKG0sIGQpIG0oNCwgNDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180MyhtLCBkKSBtKDQsIDQzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDQobSwgZCkgbSg0LCA0NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQ2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQ1KG0sIGQpIG0oNCwgNDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180NihtLCBkKSBtKDQsIDQ2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDcobSwgZCkgbSg0LCA0NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQ5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQ4KG0sIGQpIG0oNCwgNDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180OShtLCBkKSBtKDQsIDQ5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTAobSwgZCkgbSg0LCA1MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzUyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzUxKG0sIGQpIG0oNCwgNTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181MihtLCBkKSBtKDQsIDUyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTMobSwgZCkgbSg0LCA1MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzU1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzU0KG0sIGQpIG0oNCwgNTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181NShtLCBkKSBtKDQsIDU1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTYobSwgZCkgbSg0LCA1NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzU4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzU3KG0sIGQpIG0oNCwgNTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181OChtLCBkKSBtKDQsIDU4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTkobSwgZCkgbSg0LCA1OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzYxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzYwKG0sIGQpIG0oNCwgNjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182MShtLCBkKSBtKDQsIDYxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNjIobSwgZCkgbSg0LCA2MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzY0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzYzKG0sIGQpIG0oNCwgNjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182NChtLCBkKSBtKDQsIDY0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNjUobSwgZCkgbSg0LCA2NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzY3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzY2KG0sIGQpIG0oNCwgNjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182NyhtLCBkKSBtKDQsIDY3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNjgobSwgZCkgbSg0LCA2OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzcwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzY5KG0sIGQpIG0oNCwgNjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183MChtLCBkKSBtKDQsIDcwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzEobSwgZCkgbSg0LCA3MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzczKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzcyKG0sIGQpIG0oNCwgNzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183MyhtLCBkKSBtKDQsIDczLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzQobSwgZCkgbSg0LCA3NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzc2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzc1KG0sIGQpIG0oNCwgNzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183NihtLCBkKSBtKDQsIDc2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzcobSwgZCkgbSg0LCA3NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzc5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzc4KG0sIGQpIG0oNCwgNzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183OShtLCBkKSBtKDQsIDc5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODAobSwgZCkgbSg0LCA4MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzgyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzgxKG0sIGQpIG0oNCwgODEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184MihtLCBkKSBtKDQsIDgyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODMobSwgZCkgbSg0LCA4MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzg1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzg0KG0sIGQpIG0oNCwgODQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184NShtLCBkKSBtKDQsIDg1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODYobSwgZCkgbSg0LCA4NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzg4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzg3KG0sIGQpIG0oNCwgODcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184OChtLCBkKSBtKDQsIDg4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODkobSwgZCkgbSg0LCA4OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzkxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzkwKG0sIGQpIG0oNCwgOTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185MShtLCBkKSBtKDQsIDkxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTIobSwgZCkgbSg0LCA5MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzk0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzkzKG0sIGQpIG0oNCwgOTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185NChtLCBkKSBtKDQsIDk0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTUobSwgZCkgbSg0LCA5NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzk3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzk2KG0sIGQpIG0oNCwgOTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185NyhtLCBkKSBtKDQsIDk3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTgobSwgZCkgbSg0LCA5OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185OShtLCBkKSBtKDQsIDk5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTAxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwMChtLCBkKSBtKDQsIDEwMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDEobSwgZCkgbSg0LCAxMDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTAyKG0sIGQpIG0oNCwgMTAyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTA0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwMyhtLCBkKSBtKDQsIDEwMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDQobSwgZCkgbSg0LCAxMDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTA1KG0sIGQpIG0oNCwgMTA1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTA3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwNihtLCBkKSBtKDQsIDEwNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDcobSwgZCkgbSg0LCAxMDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTA4KG0sIGQpIG0oNCwgMTA4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTEwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwOShtLCBkKSBtKDQsIDEwOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTAobSwgZCkgbSg0LCAxMTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTExKG0sIGQpIG0oNCwgMTExLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTEzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExMihtLCBkKSBtKDQsIDExMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTMobSwgZCkgbSg0LCAxMTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTE0KG0sIGQpIG0oNCwgMTE0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTE2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExNShtLCBkKSBtKDQsIDExNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTYobSwgZCkgbSg0LCAxMTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTE3KG0sIGQpIG0oNCwgMTE3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTE5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExOChtLCBkKSBtKDQsIDExOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTkobSwgZCkgbSg0LCAxMTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTIwKG0sIGQpIG0oNCwgMTIwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTIyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyMShtLCBkKSBtKDQsIDEyMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMjIobSwgZCkgbSg0LCAxMjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTIzKG0sIGQpIG0oNCwgMTIzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTI1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyNChtLCBkKSBtKDQsIDEyNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMjUobSwgZCkgbSg0LCAxMjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTI2KG0sIGQpIG0oNCwgMTI2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTI4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyNyhtLCBkKSBtKDQsIDEyNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMjgobSwgZCkgbSg0LCAxMjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTI5KG0sIGQpIG0oNCwgMTI5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTMxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzMChtLCBkKSBtKDQsIDEzMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzEobSwgZCkgbSg0LCAxMzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTMyKG0sIGQpIG0oNCwgMTMyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTM0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzMyhtLCBkKSBtKDQsIDEzMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzQobSwgZCkgbSg0LCAxMzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTM1KG0sIGQpIG0oNCwgMTM1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTM3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzNihtLCBkKSBtKDQsIDEzNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzcobSwgZCkgbSg0LCAxMzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTM4KG0sIGQpIG0oNCwgMTM4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzOShtLCBkKSBtKDQsIDEzOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDAobSwgZCkgbSg0LCAxNDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQxKG0sIGQpIG0oNCwgMTQxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0MihtLCBkKSBtKDQsIDE0MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDMobSwgZCkgbSg0LCAxNDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQ0KG0sIGQpIG0oNCwgMTQ0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQ2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0NShtLCBkKSBtKDQsIDE0NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDYobSwgZCkgbSg0LCAxNDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQ3KG0sIGQpIG0oNCwgMTQ3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQ5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0OChtLCBkKSBtKDQsIDE0OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDkobSwgZCkgbSg0LCAxNDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTUwKG0sIGQpIG0oNCwgMTUwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTUyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1MShtLCBkKSBtKDQsIDE1MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNTIobSwgZCkgbSg0LCAxNTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTUzKG0sIGQpIG0oNCwgMTUzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTU1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1NChtLCBkKSBtKDQsIDE1NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNTUobSwgZCkgbSg0LCAxNTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTU2KG0sIGQpIG0oNCwgMTU2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTU4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1NyhtLCBkKSBtKDQsIDE1NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNTgobSwgZCkgbSg0LCAxNTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTU5KG0sIGQpIG0oNCwgMTU5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTYxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2MChtLCBkKSBtKDQsIDE2MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjEobSwgZCkgbSg0LCAxNjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTYyKG0sIGQpIG0oNCwgMTYyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTY0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2MyhtLCBkKSBtKDQsIDE2MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjQobSwgZCkgbSg0LCAxNjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTY1KG0sIGQpIG0oNCwgMTY1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTY3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2NihtLCBkKSBtKDQsIDE2NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjcobSwgZCkgbSg0LCAxNjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTY4KG0sIGQpIG0oNCwgMTY4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTcwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2OShtLCBkKSBtKDQsIDE2OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzAobSwgZCkgbSg0LCAxNzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTcxKG0sIGQpIG0oNCwgMTcxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTczKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3MihtLCBkKSBtKDQsIDE3MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzMobSwgZCkgbSg0LCAxNzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTc0KG0sIGQpIG0oNCwgMTc0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTc2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3NShtLCBkKSBtKDQsIDE3NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzYobSwgZCkgbSg0LCAxNzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTc3KG0sIGQpIG0oNCwgMTc3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTc5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3OChtLCBkKSBtKDQsIDE3OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzkobSwgZCkgbSg0LCAxNzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTgwKG0sIGQpIG0oNCwgMTgwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTgyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4MShtLCBkKSBtKDQsIDE4MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xODIobSwgZCkgbSg0LCAxODIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTgzKG0sIGQpIG0oNCwgMTgzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTg1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4NChtLCBkKSBtKDQsIDE4NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xODUobSwgZCkgbSg0LCAxODUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTg2KG0sIGQpIG0oNCwgMTg2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTg4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4NyhtLCBkKSBtKDQsIDE4NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xODgobSwgZCkgbSg0LCAxODgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTg5KG0sIGQpIG0oNCwgMTg5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTkxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5MChtLCBkKSBtKDQsIDE5MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTEobSwgZCkgbSg0LCAxOTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTkyKG0sIGQpIG0oNCwgMTkyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTk0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5MyhtLCBkKSBtKDQsIDE5MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTQobSwgZCkgbSg0LCAxOTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTk1KG0sIGQpIG0oNCwgMTk1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTk3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5NihtLCBkKSBtKDQsIDE5NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTcobSwgZCkgbSg0LCAxOTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTk4KG0sIGQpIG0oNCwgMTk4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjAwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5OShtLCBkKSBtKDQsIDE5OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDAobSwgZCkgbSg0LCAyMDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjAxKG0sIGQpIG0oNCwgMjAxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjAzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwMihtLCBkKSBtKDQsIDIwMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDMobSwgZCkgbSg0LCAyMDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjA0KG0sIGQpIG0oNCwgMjA0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjA2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwNShtLCBkKSBtKDQsIDIwNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDYobSwgZCkgbSg0LCAyMDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjA3KG0sIGQpIG0oNCwgMjA3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjA5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwOChtLCBkKSBtKDQsIDIwOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDkobSwgZCkgbSg0LCAyMDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjEwKG0sIGQpIG0oNCwgMjEwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjEyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxMShtLCBkKSBtKDQsIDIxMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMTIobSwgZCkgbSg0LCAyMTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjEzKG0sIGQpIG0oNCwgMjEzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjE1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxNChtLCBkKSBtKDQsIDIxNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMTUobSwgZCkgbSg0LCAyMTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjE2KG0sIGQpIG0oNCwgMjE2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjE4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxNyhtLCBkKSBtKDQsIDIxNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMTgobSwgZCkgbSg0LCAyMTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjE5KG0sIGQpIG0oNCwgMjE5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjIxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyMChtLCBkKSBtKDQsIDIyMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjEobSwgZCkgbSg0LCAyMjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjIyKG0sIGQpIG0oNCwgMjIyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjI0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyMyhtLCBkKSBtKDQsIDIyMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjQobSwgZCkgbSg0LCAyMjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjI1KG0sIGQpIG0oNCwgMjI1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjI3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyNihtLCBkKSBtKDQsIDIyNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjcobSwgZCkgbSg0LCAyMjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjI4KG0sIGQpIG0oNCwgMjI4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjMwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyOShtLCBkKSBtKDQsIDIyOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzAobSwgZCkgbSg0LCAyMzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjMxKG0sIGQpIG0oNCwgMjMxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjMzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzMihtLCBkKSBtKDQsIDIzMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzMobSwgZCkgbSg0LCAyMzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjM0KG0sIGQpIG0oNCwgMjM0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjM2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzNShtLCBkKSBtKDQsIDIzNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzYobSwgZCkgbSg0LCAyMzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjM3KG0sIGQpIG0oNCwgMjM3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjM5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzOChtLCBkKSBtKDQsIDIzOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzkobSwgZCkgbSg0LCAyMzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQwKG0sIGQpIG0oNCwgMjQwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0MShtLCBkKSBtKDQsIDI0MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNDIobSwgZCkgbSg0LCAyNDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQzKG0sIGQpIG0oNCwgMjQzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQ1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0NChtLCBkKSBtKDQsIDI0NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNDUobSwgZCkgbSg0LCAyNDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQ2KG0sIGQpIG0oNCwgMjQ2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQ4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0NyhtLCBkKSBtKDQsIDI0NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNDgobSwgZCkgbSg0LCAyNDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQ5KG0sIGQpIG0oNCwgMjQ5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjUxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI1MChtLCBkKSBtKDQsIDI1MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI1MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNTEobSwgZCkgbSg0LCAyNTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjUyKG0sIGQpIG0oNCwgMjUyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjU0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI1MyhtLCBkKSBtKDQsIDI1MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI1NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNTQobSwgZCkgbSg0LCAyNTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjU1KG0sIGQpIG0oNCwgMjU1LCBkKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXRfZnJvbV90by5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdF9mcm9tX3RvLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmU4YzcwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXRfZnJvbV90by5ocHAKQEAgLTAsMCArMSw4NyBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9SRVBFQVRfRlJPTV9UT19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX1JFUEVBVF9GUk9NX1RPX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC93aGlsZS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9SRVBFQVRfRlJPTV9UTyAqLworIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UTyhmaXJzdCwgbGFzdCwgbWFjcm8sIGRhdGEpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UTyBCT09TVF9QUF9DQVQoQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9SRVBFQVRfUCwgNCkpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT18xKGYsIGwsIG0sIGR0KSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXzEoQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfV0hJTEVfUCwgMjU2KSwgZiwgbCwgbSwgZHQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT18yKGYsIGwsIG0sIGR0KSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXzIoQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfV0hJTEVfUCwgMjU2KSwgZiwgbCwgbSwgZHQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT18zKGYsIGwsIG0sIGR0KSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXzMoQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfV0hJTEVfUCwgMjU2KSwgZiwgbCwgbSwgZHQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT180KGYsIGwsIG0sIGR0KSBCT09TVF9QUF9FUlJPUigweDAwMDMpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT18xU1QgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fMQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fMk5EIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPXzIKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPXzNSRCBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT18zCisjCisjIC8qIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0QgKi8KKyMKKyMgaWYgMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fRChkLCBmaXJzdCwgbGFzdCwgbWFjcm8sIGRhdGEpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EIEJPT1NUX1BQX0NBVChCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXywgQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfUkVQRUFUX1AsIDQpKQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0RfMShkLCBmLCBsLCBtLCBkdCkgQk9PU1RfUFBfUkVQRUFUXzEoQk9PU1RfUFBfU1VCX0QoZCwgbCwgZiksIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMSwgKGQsIGYsIG0sIGR0KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0RfMihkLCBmLCBsLCBtLCBkdCkgQk9PU1RfUFBfUkVQRUFUXzIoQk9PU1RfUFBfU1VCX0QoZCwgbCwgZiksIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMiwgKGQsIGYsIG0sIGR0KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0RfMyhkLCBmLCBsLCBtLCBkdCkgQk9PU1RfUFBfUkVQRUFUXzMoQk9PU1RfUFBfU1VCX0QoZCwgbCwgZiksIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMywgKGQsIGYsIG0sIGR0KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fRF8xKGQsIGYsIGwsIG0sIGR0KSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXzFfSShkLCBmLCBsLCBtLCBkdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0RfMihkLCBmLCBsLCBtLCBkdCkgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fRF8yX0koZCwgZiwgbCwgbSwgZHQpCisjICAgIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXzMoZCwgZiwgbCwgbSwgZHQpIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0RfM19JKGQsIGYsIGwsIG0sIGR0KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fRF8xX0koZCwgZiwgbCwgbSwgZHQpIEJPT1NUX1BQX1JFUEVBVF8xKEJPT1NUX1BQX1NVQl9EKGQsIGwsIGYpLCBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzEsIChkLCBmLCBtLCBkdCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19EXzJfSShkLCBmLCBsLCBtLCBkdCkgQk9PU1RfUFBfUkVQRUFUXzIoQk9PU1RfUFBfU1VCX0QoZCwgbCwgZiksIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMiwgKGQsIGYsIG0sIGR0KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX0RfM19JKGQsIGYsIGwsIG0sIGR0KSBCT09TVF9QUF9SRVBFQVRfMyhCT09TVF9QUF9TVUJfRChkLCBsLCBmKSwgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8zLCAoZCwgZiwgbSwgZHQpKQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8xKHosIG4sIGRmbWQpIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMV9JTSh6LCBuLCBCT09TVF9QUF9UVVBMRV9SRU1fNCBkZm1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8yKHosIG4sIGRmbWQpIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMl9JTSh6LCBuLCBCT09TVF9QUF9UVVBMRV9SRU1fNCBkZm1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8zKHosIG4sIGRmbWQpIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fM19JTSh6LCBuLCBCT09TVF9QUF9UVVBMRV9SRU1fNCBkZm1kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8xX0lNKHosIG4sIGltKSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzFfSSh6LCBuLCBpbSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMl9JTSh6LCBuLCBpbSkgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8yX0koeiwgbiwgaW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzNfSU0oeiwgbiwgaW0pIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fM19JKHosIG4sIGltKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzEoeiwgbiwgZGZtZCkgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8xX0koeiwgbiwgQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAwLCBkZm1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAxLCBkZm1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAyLCBkZm1kKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAzLCBkZm1kKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMih6LCBuLCBkZm1kKSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzJfSSh6LCBuLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDAsIGRmbWQpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDEsIGRmbWQpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDIsIGRmbWQpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDMsIGRmbWQpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8zKHosIG4sIGRmbWQpIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fM19JKHosIG4sIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMCwgZGZtZCksIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMSwgZGZtZCksIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMiwgZGZtZCksIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMywgZGZtZCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzFfSSh6LCBuLCBkLCBmLCBtLCBkdCkgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8xX0lJKHosIEJPT1NUX1BQX0FERF9EKGQsIG4sIGYpLCBtLCBkdCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fMl9JKHosIG4sIGQsIGYsIG0sIGR0KSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzJfSUkoeiwgQk9PU1RfUFBfQUREX0QoZCwgbiwgZiksIG0sIGR0KQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fTV8zX0koeiwgbiwgZCwgZiwgbSwgZHQpIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPX01fM19JSSh6LCBCT09TVF9QUF9BRERfRChkLCBuLCBmKSwgbSwgZHQpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzFfSUkoeiwgbiwgbSwgZHQpIG0oeiwgbiwgZHQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzJfSUkoeiwgbiwgbSwgZHQpIG0oeiwgbiwgZHQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfRlJPTV9UT19NXzNfSUkoeiwgbiwgbSwgZHQpIG0oeiwgbiwgZHQpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvY2F0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9jYXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYjEwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvY2F0LmhwcApAQCAtMCwwICsxLDQ5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9DQVRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0NBVF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9sZF9sZWZ0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zZXEuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NpemUuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0VRX0NBVCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0NBVChzZXEpIFwKKyAgICBCT09TVF9QUF9JRiggXAorICAgICAgICBCT09TVF9QUF9ERUMoQk9PU1RfUFBfU0VRX1NJWkUoc2VxKSksIFwKKyAgICAgICAgQk9PU1RfUFBfU0VRX0NBVF9JLCBcCisgICAgICAgIEJPT1NUX1BQX1NFUV9IRUFEIFwKKyAgICApKHNlcSkgXAorICAgIC8qKi8KKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9DQVRfSShzZXEpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlQoQk9PU1RfUFBfU0VRX0NBVF9PLCBCT09TVF9QUF9TRVFfSEVBRChzZXEpLCBCT09TVF9QUF9TRVFfVEFJTChzZXEpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0NBVF9PKHMsIHN0LCBlbGVtKSBCT09TVF9QUF9TRVFfQ0FUX09fSShzdCwgZWxlbSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9DQVRfT19JKGEsIGIpIGEgIyMgYgorIworIyAvKiBCT09TVF9QUF9TRVFfQ0FUX1MgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9DQVRfUyhzLCBzZXEpIFwKKyAgICBCT09TVF9QUF9JRiggXAorICAgICAgICBCT09TVF9QUF9ERUMoQk9PU1RfUFBfU0VRX1NJWkUoc2VxKSksIFwKKyAgICAgICAgQk9PU1RfUFBfU0VRX0NBVF9TX0lfQSwgXAorICAgICAgICBCT09TVF9QUF9TRVFfQ0FUX1NfSV9CIFwKKyAgICApKHMsIHNlcSkgXAorICAgIC8qKi8KKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9DQVRfU19JX0Eocywgc2VxKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXyAjIyBzKEJPT1NUX1BQX1NFUV9DQVRfTywgQk9PU1RfUFBfU0VRX0hFQUQoc2VxKSwgQk9PU1RfUFBfU0VRX1RBSUwoc2VxKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9DQVRfU19JX0Iocywgc2VxKSBCT09TVF9QUF9TRVFfSEVBRChzZXEpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZGV0YWlsL3NwbGl0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9kZXRhaWwvc3BsaXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTYyODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZGV0YWlsL3NwbGl0LmhwcApAQCAtMCwwICsxLDI4NCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfREVUQUlMX1NQTElUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9ERVRBSUxfU1BMSVRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0VRX1NQTElUICovCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVQobiwgc2VxKSBCT09TVF9QUF9TRVFfU1BMSVRfRChuLCBzZXEpCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF9EKG4sIHNlcSkgKEJPT1NUX1BQX1NFUV9TUExJVF8gIyMgbiBzZXEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF9EKG4sIHNlcSkgKEJPT1NUX1BQX1NFUV9TUExJVF8gIyMgbiAjIyBzZXEpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMSh4KSAoeCksCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8zKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8zCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF82KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF82CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfOCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF85KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzEwKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzExKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzExCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMTMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzE0KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzE0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMTYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzE3KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzE3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMTkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzIwKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzIwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMjIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzIzKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzIzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMjUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzI2KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNyh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzI2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMjgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzI5KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8zMCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzI5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMzEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8zMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzMyKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8zMyh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzMyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMzQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8zMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzM1KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8zNih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzM1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMzcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8zNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzM4KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8zOSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzM4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNDAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8zOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzQxKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF80Mih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzQxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNDMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF80MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzQ0KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF80NSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzQ0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNDYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF80NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzQ3KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF80OCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzQ3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNDkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF80OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzUwKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF81MSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzUwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNTIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF81MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzUzKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF81NCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzUzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNTUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF81NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzU2KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF81Nyh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzU2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNTgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF81NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzU5KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF82MCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzU5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNjEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF82MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzYyKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF82Myh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzYyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNjQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF82MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzY1KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF82Nih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzY1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNjcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF82NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzY4KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF82OSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzY4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNzAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF82OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzcxKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF83Mih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzcxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNzMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF83MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzc0KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF83NSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzc0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNzYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF83NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzc3KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF83OCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzc3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfNzkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF83OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzgwKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfNzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF84MSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzgwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfODIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF84MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzgzKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfODIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF84NCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzgzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfODUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF84NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzg2KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfODUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF84Nyh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzg2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfODgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF84NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzg5KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfODgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF85MCh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzg5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfOTEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF85MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzkyKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfOTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF85Myh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzkyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfOTQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF85MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzk1KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfOTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF85Nih4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzk1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfOTcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF85NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NQTElUXzk4KHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfOTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF85OSh4KSAoeCkgQk9PU1RfUFBfU0VRX1NQTElUXzk4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU1BMSVRfMTAwKHgpICh4KSBCT09TVF9QUF9TRVFfU1BMSVRfOTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMDkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMTkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMjkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xMzkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xMzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNDkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNTkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNjkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xNzkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xNzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xODkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xODkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8xOTkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8xOTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMDkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMTkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMjkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yMzkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yMzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDcoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDgoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNDkoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTAoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTEoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTIoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTMoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTQoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTUoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TUExJVF8yNTYoeCkgKHgpIEJPT1NUX1BQX1NFUV9TUExJVF8yNTUKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbGVtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbGVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjlhOGEyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2VsZW0uaHBwCkBAIC0wLDAgKzEsMzA0IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9FTEVNX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9FTEVNX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1NFUV9FTEVNICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNKGksIHNlcSkgQk9PU1RfUFBfU0VRX0VMRU1fSShpLCBzZXEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNKGksIHNlcSkgQk9PU1RfUFBfU0VRX0VMRU1fSSgoaSwgc2VxKSkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JKGksIHNlcSkgQk9PU1RfUFBfU0VRX0VMRU1fSUkoKEJPT1NUX1BQX1NFUV9FTEVNXyAjIyBpIHNlcSkpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JSShyZXMpIEJPT1NUX1BQX1NFUV9FTEVNX0lWKEJPT1NUX1BQX1NFUV9FTEVNX0lJSSByZXMpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JSUkoeCwgXykgeCBCT09TVF9QUF9FTVBUWSgpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JVih4KSB4CisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JKHBhcikgQk9PU1RfUFBfU0VRX0VMRU1fSUkgIyMgcGFyCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JSShpLCBzZXEpIEJPT1NUX1BQX1NFUV9FTEVNX0lJSShCT09TVF9QUF9TRVFfRUxFTV8gIyMgaSAjIyBzZXEpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JSUkoaW0pIEJPT1NUX1BQX1NFUV9FTEVNX0lWKGltKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fSVYoeCwgXykgeAorIyBlbHNlCisjICAgIGlmIGRlZmluZWQoX19JQk1DX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JKGksIHNlcSkgQk9PU1RfUFBfU0VRX0VMRU1fSUkoQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9FTEVNXyAjIyBpLCBzZXEpKQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fSShpLCBzZXEpIEJPT1NUX1BQX1NFUV9FTEVNX0lJKEJPT1NUX1BQX1NFUV9FTEVNXyAjIyBpIHNlcSkKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNX0lJKGltKSBCT09TVF9QUF9TRVFfRUxFTV9JSUkoaW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV9JSUkoeCwgXykgeAorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMCh4KSB4LCBCT09TVF9QUF9OSUwKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMihfKSBCT09TVF9QUF9TRVFfRUxFTV8xCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8zKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNShfKSBCT09TVF9QUF9TRVFfRUxFTV80CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV82KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzcoXykgQk9PU1RfUFBfU0VRX0VMRU1fNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fOChfKSBCT09TVF9QUF9TRVFfRUxFTV83CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV85KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzEwKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzExKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzEwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMihfKSBCT09TVF9QUF9TRVFfRUxFTV8xMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMTMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzE0KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzEzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNShfKSBCT09TVF9QUF9TRVFfRUxFTV8xNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMTYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzE3KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzE2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOChfKSBCT09TVF9QUF9TRVFfRUxFTV8xNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMTkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzIwKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzE5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMShfKSBCT09TVF9QUF9TRVFfRUxFTV8yMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMjIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzIzKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzIyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNChfKSBCT09TVF9QUF9TRVFfRUxFTV8yMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMjUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzI2KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzI1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNyhfKSBCT09TVF9QUF9TRVFfRUxFTV8yNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMjgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzI5KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzI4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8zMChfKSBCT09TVF9QUF9TRVFfRUxFTV8yOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMzEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzMyKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzMxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8zMyhfKSBCT09TVF9QUF9TRVFfRUxFTV8zMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMzQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzM1KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzM0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8zNihfKSBCT09TVF9QUF9TRVFfRUxFTV8zNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMzcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzM4KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzM3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8zOShfKSBCT09TVF9QUF9TRVFfRUxFTV8zOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNDAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzQxKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzQwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV80MihfKSBCT09TVF9QUF9TRVFfRUxFTV80MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNDMoXykgQk9PU1RfUFBfU0VRX0VMRU1fNDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzQ0KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzQzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV80NShfKSBCT09TVF9QUF9TRVFfRUxFTV80NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNDYoXykgQk9PU1RfUFBfU0VRX0VMRU1fNDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzQ3KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzQ2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV80OChfKSBCT09TVF9QUF9TRVFfRUxFTV80NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNDkoXykgQk9PU1RfUFBfU0VRX0VMRU1fNDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzUwKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzQ5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV81MShfKSBCT09TVF9QUF9TRVFfRUxFTV81MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNTIoXykgQk9PU1RfUFBfU0VRX0VMRU1fNTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzUzKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzUyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV81NChfKSBCT09TVF9QUF9TRVFfRUxFTV81MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNTUoXykgQk9PU1RfUFBfU0VRX0VMRU1fNTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzU2KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzU1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV81NyhfKSBCT09TVF9QUF9TRVFfRUxFTV81NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNTgoXykgQk9PU1RfUFBfU0VRX0VMRU1fNTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzU5KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzU4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV82MChfKSBCT09TVF9QUF9TRVFfRUxFTV81OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNjEoXykgQk9PU1RfUFBfU0VRX0VMRU1fNjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzYyKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzYxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV82MyhfKSBCT09TVF9QUF9TRVFfRUxFTV82MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNjQoXykgQk9PU1RfUFBfU0VRX0VMRU1fNjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzY1KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzY0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV82NihfKSBCT09TVF9QUF9TRVFfRUxFTV82NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNjcoXykgQk9PU1RfUFBfU0VRX0VMRU1fNjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzY4KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzY3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV82OShfKSBCT09TVF9QUF9TRVFfRUxFTV82OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNzAoXykgQk9PU1RfUFBfU0VRX0VMRU1fNjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzcxKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzcwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV83MihfKSBCT09TVF9QUF9TRVFfRUxFTV83MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNzMoXykgQk9PU1RfUFBfU0VRX0VMRU1fNzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzc0KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzczCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV83NShfKSBCT09TVF9QUF9TRVFfRUxFTV83NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNzYoXykgQk9PU1RfUFBfU0VRX0VMRU1fNzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzc3KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzc2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV83OChfKSBCT09TVF9QUF9TRVFfRUxFTV83NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fNzkoXykgQk9PU1RfUFBfU0VRX0VMRU1fNzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzgwKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzc5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV84MShfKSBCT09TVF9QUF9TRVFfRUxFTV84MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fODIoXykgQk9PU1RfUFBfU0VRX0VMRU1fODEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzgzKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzgyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV84NChfKSBCT09TVF9QUF9TRVFfRUxFTV84MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fODUoXykgQk9PU1RfUFBfU0VRX0VMRU1fODQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzg2KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzg1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV84NyhfKSBCT09TVF9QUF9TRVFfRUxFTV84NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fODgoXykgQk9PU1RfUFBfU0VRX0VMRU1fODcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzg5KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzg4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV85MChfKSBCT09TVF9QUF9TRVFfRUxFTV84OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fOTEoXykgQk9PU1RfUFBfU0VRX0VMRU1fOTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzkyKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzkxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV85MyhfKSBCT09TVF9QUF9TRVFfRUxFTV85MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fOTQoXykgQk9PU1RfUFBfU0VRX0VMRU1fOTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzk1KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzk0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV85NihfKSBCT09TVF9QUF9TRVFfRUxFTV85NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fOTcoXykgQk9PU1RfUFBfU0VRX0VMRU1fOTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTEVNXzk4KF8pIEJPT1NUX1BQX1NFUV9FTEVNXzk3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV85OShfKSBCT09TVF9QUF9TRVFfRUxFTV85OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VMRU1fMTAwKF8pIEJPT1NUX1BQX1NFUV9FTEVNXzk5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTAxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTAyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTAzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTA0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTA1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTA2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTA3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMDkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTA4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTA5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTEwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTExCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTEyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTEzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTE0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTE1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTE2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTE3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMTkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTE4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTE5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTIwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTIxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTIyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTIzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTI0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTI1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTI2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTI3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMjkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTI4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTI5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTMwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTMxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTMyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTMzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTM0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTM1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTM2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTM3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xMzkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTM4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTM5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQ0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQ1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQ2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQ3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNDkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQ4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTQ5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTUwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTUxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTUyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTUzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTU0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTU1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTU2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTU3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNTkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTU4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTU5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTYwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTYxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTYyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTYzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTY0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTY1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTY2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTY3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNjkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTY4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTY5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTcwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTcxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTcyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTczCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTc0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTc1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTc2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTc3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xNzkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTc4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTc5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTgwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTgxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTgyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTgzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTg0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTg1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTg2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTg3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xODkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTg4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTg5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTkwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTkxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTkyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTkzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTk0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTk1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTk2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTk3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8xOTkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTk4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMTk5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjAxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjAyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjAzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjA0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjA1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjA2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjA3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMDkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjA4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjA5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjEwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjExCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjEyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjEzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjE0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjE1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjE2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjE3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMTkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjE4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjE5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjIwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjIxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjIyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjIzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjI0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjI1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjI2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjI3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMjkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjI4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjI5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjMwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjMxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjMyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjMzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjM0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjM1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjM2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjM3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yMzkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjM4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjM5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQ0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDYoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQ1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDcoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQ2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDgoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQ3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNDkoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQ4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNTAoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjQ5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNTEoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjUwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNTIoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjUxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNTMoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjUyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNTQoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjUzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRUxFTV8yNTUoXykgQk9PU1RfUFBfU0VRX0VMRU1fMjU0CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZW51bS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZW51bS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcyMjdmMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcApAQCAtMCwwICsxLDI4OCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfRU5VTV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfRU5VTV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0VRX0VOVU0gKi8KKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNKHNlcSkgQk9PU1RfUFBfU0VRX0VOVU1fSShzZXEpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV9JKHNlcSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9FTlVNXywgQk9PU1RfUFBfU0VRX1NJWkUoc2VxKSkgc2VxCisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTShzZXEpIEJPT1NUX1BQX1NFUV9FTlVNX0koQk9PU1RfUFBfU0VRX1NJWkUoc2VxKSwgc2VxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fSShzaXplLCBzZXEpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9TRVFfRU5VTV8sIHNpemUpIHNlcQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTShzZXEpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9TRVFfRU5VTV8sIEJPT1NUX1BQX1NFUV9TSVpFKHNlcSkpIHNlcQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMSh4KSB4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8yKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzMoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8zCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV81KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzYoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV82CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV84KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzkoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMTAoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMTEoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzExCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8xMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMTQoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzE0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8xNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMTcoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzE3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8xOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMjAoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzIwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8yMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMjMoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzIzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8yNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMjYoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI3KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzI2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8yOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMjkoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzMwKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzI5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8zMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8zMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMzIoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzMzKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzMyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8zNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8zMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMzUoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzM2KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzM1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8zNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8zNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fMzgoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzM5KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzM4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV80MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8zOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNDEoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzQyKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzQxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV80Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV80MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNDQoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzQ1KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzQ0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV80Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV80NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNDcoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzQ4KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzQ3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV80OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV80OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNTAoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzUxKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzUwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV81Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV81MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNTMoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzU0KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzUzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV81NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV81NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNTYoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzU3KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzU2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV81OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV81NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNTkoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzYwKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzU5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV82MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV82MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNjIoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzYzKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzYyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV82NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV82MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNjUoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzY2KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzY1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV82Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV82NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNjgoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzY5KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzY4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV83MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV82OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNzEoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzcyKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzcxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV83Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV83MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNzQoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzc1KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzc0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV83Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV83NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fNzcoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzc4KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzc3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV83OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV83OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fODAoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fNzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzgxKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzgwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV84Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV84MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fODMoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fODIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzg0KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzgzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV84NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV84NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fODYoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fODUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzg3KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzg2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV84OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV84NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fODkoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fODgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzkwKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzg5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV85MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV85MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fOTIoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fOTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzkzKHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzkyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV85NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV85MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fOTUoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fOTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzk2KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzk1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV85Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV85NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0VOVU1fOTgoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fOTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzk5KHgpIHgsIEJPT1NUX1BQX1NFUV9FTlVNXzk4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfRU5VTV8xMDAoeCkgeCwgQk9PU1RfUFBfU0VRX0VOVU1fOTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEwOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzExOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEyOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzEzOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xMzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE0OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE1OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE2OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE3OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xNzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE4OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xODkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzE5OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8xOTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIwOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIxOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIyOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzMCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzMSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzMih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzMyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzNCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzNSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzNih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzNyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzOCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzIzOSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yMzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0Nyh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0OCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI0OSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1MCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1MSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1Mih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1Myh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1NCh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1NSh4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9FTlVNXzI1Nih4KSB4LCBCT09TVF9QUF9TRVFfRU5VTV8yNTUKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9maXJzdF9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9maXJzdF9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjljZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZpcnN0X24uaHBwCkBAIC0wLDAgKzEsMzAgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0ZJUlNUX05fSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0ZJUlNUX05fSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWYuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2RldGFpbC9zcGxpdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1NFUV9GSVJTVF9OICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZJUlNUX04obiwgc2VxKSBCT09TVF9QUF9JRihuLCBCT09TVF9QUF9UVVBMRV9FTEVNLCBCT09TVF9QUF9UVVBMRV9FQVRfMykoMiwgMCwgQk9PU1RfUFBfU0VRX1NQTElUKG4sIHNlcSAobmlsKSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GSVJTVF9OKG4sIHNlcSkgQk9PU1RfUFBfU0VRX0ZJUlNUX05fSShuLCBzZXEpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRklSU1RfTl9JKG4sIHNlcSkgQk9PU1RfUFBfSUYobiwgQk9PU1RfUFBfVFVQTEVfRUxFTSwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIsIDAsIEJPT1NUX1BQX1NFUV9TUExJVChuLCBzZXEgKG5pbCkpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZvbGRfbGVmdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9sZF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjg3N2RlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZvbGRfbGVmdC5ocHAKQEAgLTAsMCArMSwxMDcwIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9GT0xEX0xFRlRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0ZPTERfTEVGVF9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvc2VxLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0VRX0ZPTERfTEVGVCAqLworIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUKG9wLCBzdGF0ZSwgc2VxKSAuLi4KKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlQgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9TRVFfRk9MRF9MRUZUX1AsIDI1NikpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX1AobikgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfICMjIG4oQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9PLCBCT09TVF9QUF9OSUwsIChuaWwpLCAxKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfTyhzLCBzdCwgXykgc3QKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjU3KG9wLCBzdCwgc3MpIEJPT1NUX1BQX0VSUk9SKDB4MDAwNSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0VSUk9SKDB4MDAwNSkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTklMIDEKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yOShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzM0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzM3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zOChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQzKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQ2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQ5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzUyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzU1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzU4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81OShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzY0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzY3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82OChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzcwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzczKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzc2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzc5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzgyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzg1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzg4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84OShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzk0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzk3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85OChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwMChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwMyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwNihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwOShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExMihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEzKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExNShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExOChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyMShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyNChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyNyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzMChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzMyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzNihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzOShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0MihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQzKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0NShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0OChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1MShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1NChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1NyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2MChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2MyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2NihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2OShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTcwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3MihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTczKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3NShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3OChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4MShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4NChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4NyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5MChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5MyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5NihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5OShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwMihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAzKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwNShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwOChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxMShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxNChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxNyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyMChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyMyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyNihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI3KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjgob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyOShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMwKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzEob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzMihvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMzKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzQob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzNShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM2KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzcob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzOChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM5KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDAob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0MShvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQyKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDMob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0NChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ1KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDYob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0NyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ4KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDkob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1MChvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUxKG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTIob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1MyhvcCwgc3QsIHNzLCBzeikgMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjU0KG9wLCBzdCwgc3MsIHN6KSAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTUob3AsIHN0LCBzcywgc3opIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1NihvcCwgc3QsIHNzLCBzeikgMAorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKG9wLCBzdCwgc3MsIHN6KSBzdAorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfNShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfOChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzkob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xOChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xOShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yOChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yOShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zMChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zMShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zMihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zMyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zNChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zNShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zNihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zNyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zOChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8zOShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF80OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF81OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF82OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF83OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF84OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF85OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMDAob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwMChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEwMShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAxKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTAyKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMDMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwMyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEwNChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA0KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTA1KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMDYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwNihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEwNyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA3KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTA4KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMDkob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwOShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzExMChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEwKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTExKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMTIob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExMihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzExMyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEzKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTE0KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMTUob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExNShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzExNihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE2KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTE3KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMTgob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExOChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzExOShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE5KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTIwKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMjEob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyMShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEyMihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIyKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTIzKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMjQob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyNChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEyNShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI1KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTI2KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMjcob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyNyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEyOChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI4KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTI5KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMzAob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzMChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEzMShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMxKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTMyKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMzMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzMyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEzNChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM0KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTM1KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMzYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzNihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzEzNyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM3KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTM4KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xMzkob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzOShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE0MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQwKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTQxKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNDIob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0MihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE0MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQzKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTQ0KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNDUob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0NShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE0NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ2KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTQ3KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNDgob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0OChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE0OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ5KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTUwKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNTEob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1MShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE1MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUyKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTUzKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNTQob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1NChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE1NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU1KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTU2KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNTcob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1NyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE1OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU4KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTU5KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNjAob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2MChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE2MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYxKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTYyKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNjMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2MyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE2NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY0KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTY1KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNjYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2NihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE2NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY3KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTY4KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNjkob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2OShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE3MChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTcwKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTcxKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNzIob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3MihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE3MyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTczKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTc0KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNzUob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3NShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE3NihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc2KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTc3KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xNzgob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3OChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE3OShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc5KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTgwKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xODEob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4MShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE4MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgyKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTgzKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xODQob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4NChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE4NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg1KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTg2KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xODcob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4NyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE4OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg4KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTg5KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xOTAob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5MChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE5MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkxKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTkyKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xOTMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5MyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE5NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk0KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTk1KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xOTYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5NihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzE5NyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk3KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMTk4KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8xOTkob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5OShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIwMChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAwKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjAxKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMDIob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwMihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIwMyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAzKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjA0KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMDUob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwNShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIwNihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA2KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjA3KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMDgob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwOChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIwOShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA5KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjEwKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMTEob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxMShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIxMihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEyKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjEzKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMTQob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxNChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIxNShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE1KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjE2KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMTcob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxNyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIxOChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE4KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjE5KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMjAob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyMChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIyMShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIxKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjIyKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMjMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyMyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIyNChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI0KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjI1KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMjYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyNihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIyNyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI3KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjI4KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjgob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMjkob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyOShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIzMChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMwKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjMxKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzEob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMzIob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzMihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIzMyhvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMzKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjM0KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzQob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMzUob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzNShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIzNihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM2KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjM3KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzcob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yMzgob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzOChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzIzOShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM5KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjQwKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDAob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNDEob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0MShvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzI0MihvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQyKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjQzKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDMob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNDQob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0NChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzI0NShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ1KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjQ2KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDYob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNDcob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0NyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzI0OChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ4KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjQ5KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDkob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNTAob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1MChvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzI1MShvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUxKG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjUyKG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTIob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNTMob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1MyhvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXzI1NChvcCwgc3QsIHNzKSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjU0KG9wLCBzdCwgc3MsIEJPT1NUX1BQX1NFUV9TSVpFKHNzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfMjU1KG9wLCBzdCwgc3MpIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTUob3AsIHN0LCBzcywgQk9PU1RfUFBfU0VRX1NJWkUoc3MpKQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8yNTYob3AsIHN0LCBzcykgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1NihvcCwgc3QsIHNzLCBCT09TVF9QUF9TRVFfU0laRShzcykpCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19ETUMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCgyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCgzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCg0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCg1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCg2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCg3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCg4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCg5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMTksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yOSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMjksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zOSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoMzksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNDksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNTksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNjksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoNzksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoODksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AoOTksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEwOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDExOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEyOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDEzOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE0OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE1OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE2OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE3OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE4OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDE5OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIwOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIxOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIyOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDIzOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI0OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wKDI1Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yOSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yOShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDMwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMzEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygzMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zMihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDMzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzMzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMzQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygzNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zNShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzM2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDM2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzM2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMzcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMzcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygzOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8zOChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzM5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDM5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzM5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNDAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg0MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80MShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDQyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNDMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg0NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQ1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDQ1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQ1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNDYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg0Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV80NyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQ4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDQ4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzQ4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNDksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg1MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzUxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDUxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzUxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNTIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg1Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81MyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzU0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDU0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzU0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNTUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg1Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81NihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzU3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDU3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzU3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNTgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg1OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV81OShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDYwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNjEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg2Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82MihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDYzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzYzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNjQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg2NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82NShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzY2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDY2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzY2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNjcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg2OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV82OChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzY5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDY5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzY5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNzAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg3MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83MShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzcyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDcyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzcyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNzMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg3NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzc1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDc1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzc1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNzYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg3Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV83NyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzc4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDc4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzc4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoNzksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfNzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg4MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzgxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDgxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzgxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoODIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg4Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84MyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzg0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDg0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzg0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoODUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg4Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84NihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzg3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDg3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzg3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoODgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfODgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg4OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV84OShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDkwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoOTEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg5Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85MihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDkzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzkzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoOTQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg5NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85NShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzk2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDk2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzk2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoOTcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfOTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIyg5OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV85OChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzk5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDk5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzk5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEwMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTAxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwMShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMDIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTAzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEwMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTA0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwNChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMDUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEwNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTA3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwNyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEwOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMDgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTA5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEwOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMDkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTEwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExMChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMTEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTExKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTEyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDExMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTEzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExMyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMTQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDExNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTE2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExNihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMTcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTE4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDExOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMTksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTE5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzExOShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyMCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMjAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEyMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTIyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyMihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyMywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMjMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTIzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEyNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTI1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyNShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyNiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMjYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEyNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMjgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTI4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyOChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEyOSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMjksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTI5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEzMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTMxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzMShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMzIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTMzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEzMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTM0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzNChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMzUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEzNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTM3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzNyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzEzOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxMzgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTM5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDEzOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xMzkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTQwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0MChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNDEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE0Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTQzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0MyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNDQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE0NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTQ2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0NihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNDcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTQ4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE0OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTQ5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE0OShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNTAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE1MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTUyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1MihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNTMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTUzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE1NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTU1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1NShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNTYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE1Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTU4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1OChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE1OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNTksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTU5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE2MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTYxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2MShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNjIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTYzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE2Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTY0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2NChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNjUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE2Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTY3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2NyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE2OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNjgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTY5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE2OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTcwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3MChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3MSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNzEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTcxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTcyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE3Miwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTczLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3MyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3NCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNzQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE3NSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTc2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3NihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3NywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxNzcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTc4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE3OCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xNzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTc5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE3OShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxODAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE4MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTgyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4MihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxODMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTgzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE4NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTg1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4NShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxODYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE4Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xODgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTg4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4OChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE4OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxODksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTg5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE5MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTkxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5MShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxOTIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTkzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE5Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTk0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5NChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxOTUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE5Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMTk3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5NyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzE5OCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygxOTgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMTk5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDE5OSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8xOTkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjAwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwMChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMDEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjAyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIwMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjAzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwMyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMDQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIwNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjA2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwNihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMDcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjA4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIwOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMDksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjA5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIwOShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxMCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMTAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjExLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIxMSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjEyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxMihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxMywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMTMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjEzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIxNCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjE1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxNShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxNiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMTYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIxNywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMTgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjE4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxOChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIxOSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMTksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjE5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIyMCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjIxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyMShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMjIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjIzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIyMywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjI0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyNChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyNSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMjUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIyNiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjI3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyNyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIyOCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMjgsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI4KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjI5LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIyOSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMjkob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzAsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjMwLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzMChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzMSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMzEsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMxKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjMyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIzMiwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzIob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzMsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjMzLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzMyhvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzNCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMzQsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM0KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM1LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIzNSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzUob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzYsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjM2LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzNihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzNywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyMzcsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM3KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjM4LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDIzOCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzgob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yMzksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjM5LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzIzOShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0MCwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNDAsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQwKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQxLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI0MSwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDEob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjQyLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0MihvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0MywgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNDMsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQzKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ0LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI0NCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDQob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDUsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjQ1LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0NShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0NiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNDYsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ2KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ3LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI0Nywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDcob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNDgsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjQ4LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0OChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI0OSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNDksIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjQ5KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUwLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI1MCwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTAob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTEsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjUxLCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1MShvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1MiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNTIsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUyKG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjUzLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI1Mywgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTMob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTQsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjU0LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1NChvcCwgc3QsIHNzLCBzeikgQk9PU1RfUFBfSUYoQk9PU1RfUFBfREVDKHN6KSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9JXzI1NSwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF9GKShvcCwgb3AjIygyNTUsIHN0LCBCT09TVF9QUF9TRVFfSEVBRChzcykpLCBCT09TVF9QUF9TRVFfVEFJTChzcyksIEJPT1NUX1BQX0RFQyhzeikpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjU1KG9wLCBzdCwgc3MsIHN6KSBCT09TVF9QUF9JRihCT09TVF9QUF9ERUMoc3opLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0lfMjU2LCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUX0YpKG9wLCBvcCMjKDI1Niwgc3QsIEJPT1NUX1BQX1NFUV9IRUFEKHNzKSksIEJPT1NUX1BQX1NFUV9UQUlMKHNzKSwgQk9PU1RfUFBfREVDKHN6KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTYob3AsIHN0LCBzcywgc3opIEJPT1NUX1BQX0lGKEJPT1NUX1BQX0RFQyhzeiksIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfSV8yNTcsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlRfRikob3AsIG9wIyMoMjU3LCBzdCwgQk9PU1RfUFBfU0VRX0hFQUQoc3MpKSwgQk9PU1RfUFBfU0VRX1RBSUwoc3MpLCBCT09TVF9QUF9ERUMoc3opKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2Zvcl9lYWNoLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJhMDgyYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaC5ocHAKQEAgLTAsMCArMSw2MCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfRk9SX0VBQ0hfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0ZPUl9FQUNIX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZWMuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2Zvci5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvc2VxLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0VRX0ZPUl9FQUNIICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIKG1hY3JvLCBkYXRhLCBzZXEpIEJPT1NUX1BQX0ZPUigobWFjcm8sIGRhdGEsIHNlcSAobmlsKSksIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9QLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfTywgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSChtYWNybywgZGF0YSwgc2VxKSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfRChtYWNybywgZGF0YSwgc2VxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0QobWFjcm8sIGRhdGEsIHNlcSkgQk9PU1RfUFBfRk9SKChtYWNybywgZGF0YSwgc2VxIChuaWwpKSwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX1AsIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9PLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfTSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9QKHIsIHgpIEJPT1NUX1BQX0RFQyhCT09TVF9QUF9TRVFfU0laRShCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIHgpKSkKKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9PKHIsIHgpIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9PX0kgeAorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfTyhyLCB4KSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfT19JKEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMCwgeCksIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMSwgeCksIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgeCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfT19JKG1hY3JvLCBkYXRhLCBzZXEpIChtYWNybywgZGF0YSwgQk9PU1RfUFBfU0VRX1RBSUwoc2VxKSkKKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9NKHIsIHgpIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9NX0lNKHIsIEJPT1NUX1BQX1RVUExFX1JFTV8zIHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfTV9JTShyLCBpbSkgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX01fSShyLCBpbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX00ociwgeCkgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX01fSShyLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDAsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDEsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIHgpKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX01fSShyLCBtYWNybywgZGF0YSwgc2VxKSBtYWNybyhyLCBkYXRhLCBCT09TVF9QUF9TRVFfSEVBRChzZXEpKQorIworIyAvKiBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfUiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9SKHIsIG1hY3JvLCBkYXRhLCBzZXEpIEJPT1NUX1BQX0ZPUl8gIyMgcigobWFjcm8sIGRhdGEsIHNlcSAobmlsKSksIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9QLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfTywgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9SKHIsIG1hY3JvLCBkYXRhLCBzZXEpIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9SX0kociwgbWFjcm8sIGRhdGEsIHNlcSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9SX0kociwgbWFjcm8sIGRhdGEsIHNlcSkgQk9PU1RfUFBfRk9SXyAjIyByKChtYWNybywgZGF0YSwgc2VxIChuaWwpKSwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX1AsIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9PLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfTSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaF9pLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaF9pLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjM2YmFhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2Zvcl9lYWNoX2kuaHBwCkBAIC0wLDAgKzEsNjEgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0ZPUl9FQUNIX0lfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX0ZPUl9FQUNIX0lfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RlYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2luYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZm9yLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zZXEuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NpemUuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSSAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JKG1hY3JvLCBkYXRhLCBzZXEpIEJPT1NUX1BQX0ZPUigobWFjcm8sIGRhdGEsIHNlcSAobmlsKSwgMCksIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX1AsIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX08sIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JKG1hY3JvLCBkYXRhLCBzZXEpIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX0kobWFjcm8sIGRhdGEsIHNlcSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX0kobWFjcm8sIGRhdGEsIHNlcSkgQk9PU1RfUFBfRk9SKChtYWNybywgZGF0YSwgc2VxIChuaWwpLCAwKSwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfUCwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX1AociwgeCkgQk9PU1RfUFBfREVDKEJPT1NUX1BQX1NFUV9TSVpFKEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMiwgeCkpKQorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTyhyLCB4KSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9PX0kgeAorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9PKHIsIHgpIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX09fSShCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDAsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDEsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDIsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDMsIHgpKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfT19JKG1hY3JvLCBkYXRhLCBzZXEsIGkpIChtYWNybywgZGF0YSwgQk9PU1RfUFBfU0VRX1RBSUwoc2VxKSwgQk9PU1RfUFBfSU5DKGkpKQorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTShyLCB4KSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9NX0lNKHIsIEJPT1NUX1BQX1RVUExFX1JFTV80IHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9NX0lNKHIsIGltKSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9NX0kociwgaW0pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX00ociwgeCkgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTV9JKHIsIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMCwgeCksIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMSwgeCksIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMiwgeCksIEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMywgeCkpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9NX0kociwgbWFjcm8sIGRhdGEsIHNlcSwgaSkgbWFjcm8ociwgZGF0YSwgaSwgQk9PU1RfUFBfU0VRX0hFQUQoc2VxKSkKKyMKKyMgLyogQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfUiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX1IociwgbWFjcm8sIGRhdGEsIHNlcSkgQk9PU1RfUFBfRk9SXyAjIyByKChtYWNybywgZGF0YSwgc2VxIChuaWwpLCAwKSwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfUCwgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfTSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0lfUihyLCBtYWNybywgZGF0YSwgc2VxKSBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9SX0kociwgbWFjcm8sIGRhdGEsIHNlcSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9GT1JfRUFDSF9JX1JfSShyLCBtYWNybywgZGF0YSwgc2VxKSBCT09TVF9QUF9GT1JfICMjIHIoKG1hY3JvLCBkYXRhLCBzZXEgKG5pbCksIDApLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9PLCBCT09TVF9QUF9TRVFfRk9SX0VBQ0hfSV9NKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3Jlc3Rfbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvcmVzdF9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmQzZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3Jlc3Rfbi5ocHAKQEAgLTAsMCArMSwzMCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfUkVTVF9OX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9SRVNUX05fSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2luYy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2RldGFpbC9zcGxpdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0VRX1JFU1RfTiAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9SRVNUX04obiwgc2VxKSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX1NFUV9TUExJVChCT09TVF9QUF9JTkMobiksIChuaWwpIHNlcSBCT09TVF9QUF9FTVBUWSkpKCkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1JFU1RfTihuLCBzZXEpIEJPT1NUX1BQX1NFUV9SRVNUX05fSShuLCBzZXEpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfUkVTVF9OX0kobiwgc2VxKSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX1NFUV9TUExJVChCT09TVF9QUF9JTkMobiksIChuaWwpIHNlcSBCT09TVF9QUF9FTVBUWSkpKCkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zZXEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NlcS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2NTY3MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zZXEuaHBwCkBAIC0wLDAgKzEsNDQgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX1NFUV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfU0VRX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1NFUV9IRUFEICovCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfSEVBRChzZXEpIEJPT1NUX1BQX1NFUV9FTEVNKDAsIHNlcSkKKyMKKyMgLyogQk9PU1RfUFBfU0VRX1RBSUwgKi8KKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVEFJTChzZXEpIEJPT1NUX1BQX1NFUV9UQUlMXzEoKHNlcSkpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVEFJTF8xKHBhcikgQk9PU1RfUFBfU0VRX1RBSUxfMiAjIyBwYXIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9UQUlMXzIoc2VxKSBCT09TVF9QUF9TRVFfVEFJTF9JICMjIHNlcQorIyBlbGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1RBSUwoc2VxKSBCT09TVF9QUF9TRVFfVEFJTF9JRChCT09TVF9QUF9TRVFfVEFJTF9JIHNlcSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9UQUlMX0lEKGlkKSBpZAorIyBlbGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVEFJTChzZXEpIEJPT1NUX1BQX1NFUV9UQUlMX0Qoc2VxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1RBSUxfRChzZXEpIEJPT1NUX1BQX1NFUV9UQUlMX0kgc2VxCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9UQUlMKHNlcSkgQk9PU1RfUFBfU0VRX1RBSUxfSSBzZXEKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9UQUlMX0koeCkKKyMKKyMgLyogQk9PU1RfUFBfU0VRX05JTCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX05JTCh4KSAoeCkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWIyZDEyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3NpemUuaHBwCkBAIC0wLDAgKzEsNTQ3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9TSVpFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9TSVpFX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFKHNlcSkgQk9PU1RfUFBfU0VRX1NJWkVfSSgoc2VxKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0kocGFyKSBCT09TVF9QUF9TRVFfU0laRV9JSSAjIyBwYXIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0lJKHNlcSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9TSVpFXywgQk9PU1RfUFBfU0VRX1NJWkVfMCAjIyBzZXEpCisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkgfHwgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRShzZXEpIEJPT1NUX1BQX1NFUV9TSVpFX0koc2VxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfSShzZXEpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9TRVFfU0laRV8sIEJPT1NUX1BQX1NFUV9TSVpFXzAgc2VxKQorIyBlbGlmIGRlZmluZWQoX19JQk1DX18pIHx8IGRlZmluZWQoX19JQk1DUFBfXykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFKHNlcSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9TSVpFXywgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9TSVpFXzAsIHNlcSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFKHNlcSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1NFUV9TSVpFXywgQk9PU1RfUFBfU0VRX1NJWkVfMCBzZXEpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8wKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzEoXykgQk9PU1RfUFBfU0VRX1NJWkVfMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMihfKSBCT09TVF9QUF9TRVFfU0laRV8zCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8zKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzQoXykgQk9PU1RfUFBfU0VRX1NJWkVfNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNShfKSBCT09TVF9QUF9TRVFfU0laRV82CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV82KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzcoXykgQk9PU1RfUFBfU0VRX1NJWkVfOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfOChfKSBCT09TVF9QUF9TRVFfU0laRV85CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV85KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8xMChfKSBCT09TVF9QUF9TRVFfU0laRV8xMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTEoXykgQk9PU1RfUFBfU0VRX1NJWkVfMTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzEyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8xMyhfKSBCT09TVF9QUF9TRVFfU0laRV8xNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQoXykgQk9PU1RfUFBfU0VRX1NJWkVfMTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzE1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8xNihfKSBCT09TVF9QUF9TRVFfU0laRV8xNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTcoXykgQk9PU1RfUFBfU0VRX1NJWkVfMTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzE4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8xOShfKSBCT09TVF9QUF9TRVFfU0laRV8yMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjAoXykgQk9PU1RfUFBfU0VRX1NJWkVfMjEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzIxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8yMihfKSBCT09TVF9QUF9TRVFfU0laRV8yMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjMoXykgQk9PU1RfUFBfU0VRX1NJWkVfMjQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzI0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8yNShfKSBCT09TVF9QUF9TRVFfU0laRV8yNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjYoXykgQk9PU1RfUFBfU0VRX1NJWkVfMjcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzI3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8yOChfKSBCT09TVF9QUF9TRVFfU0laRV8yOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjkoXykgQk9PU1RfUFBfU0VRX1NJWkVfMzAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzMwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzMxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8zMShfKSBCT09TVF9QUF9TRVFfU0laRV8zMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMzIoXykgQk9PU1RfUFBfU0VRX1NJWkVfMzMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzMzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzM0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8zNChfKSBCT09TVF9QUF9TRVFfU0laRV8zNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMzUoXykgQk9PU1RfUFBfU0VRX1NJWkVfMzYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzM2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzM3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV8zNyhfKSBCT09TVF9QUF9TRVFfU0laRV8zOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMzgoXykgQk9PU1RfUFBfU0VRX1NJWkVfMzkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzM5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzQwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV80MChfKSBCT09TVF9QUF9TRVFfU0laRV80MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNDEoXykgQk9PU1RfUFBfU0VRX1NJWkVfNDIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzQyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzQzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV80MyhfKSBCT09TVF9QUF9TRVFfU0laRV80NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNDQoXykgQk9PU1RfUFBfU0VRX1NJWkVfNDUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzQ1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzQ2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV80NihfKSBCT09TVF9QUF9TRVFfU0laRV80NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNDcoXykgQk9PU1RfUFBfU0VRX1NJWkVfNDgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzQ4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzQ5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV80OShfKSBCT09TVF9QUF9TRVFfU0laRV81MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNTAoXykgQk9PU1RfUFBfU0VRX1NJWkVfNTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzUxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzUyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV81MihfKSBCT09TVF9QUF9TRVFfU0laRV81MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNTMoXykgQk9PU1RfUFBfU0VRX1NJWkVfNTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzU0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzU1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV81NShfKSBCT09TVF9QUF9TRVFfU0laRV81NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNTYoXykgQk9PU1RfUFBfU0VRX1NJWkVfNTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzU3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzU4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV81OChfKSBCT09TVF9QUF9TRVFfU0laRV81OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNTkoXykgQk9PU1RfUFBfU0VRX1NJWkVfNjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzYwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzYxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV82MShfKSBCT09TVF9QUF9TRVFfU0laRV82MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNjIoXykgQk9PU1RfUFBfU0VRX1NJWkVfNjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzYzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzY0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV82NChfKSBCT09TVF9QUF9TRVFfU0laRV82NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNjUoXykgQk9PU1RfUFBfU0VRX1NJWkVfNjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzY2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzY3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV82NyhfKSBCT09TVF9QUF9TRVFfU0laRV82OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNjgoXykgQk9PU1RfUFBfU0VRX1NJWkVfNjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzY5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzcwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV83MChfKSBCT09TVF9QUF9TRVFfU0laRV83MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNzEoXykgQk9PU1RfUFBfU0VRX1NJWkVfNzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzcyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzczCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV83MyhfKSBCT09TVF9QUF9TRVFfU0laRV83NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNzQoXykgQk9PU1RfUFBfU0VRX1NJWkVfNzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzc1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzc2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV83NihfKSBCT09TVF9QUF9TRVFfU0laRV83NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfNzcoXykgQk9PU1RfUFBfU0VRX1NJWkVfNzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzc4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzc5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV83OShfKSBCT09TVF9QUF9TRVFfU0laRV84MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfODAoXykgQk9PU1RfUFBfU0VRX1NJWkVfODEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzgxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzgyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV84MihfKSBCT09TVF9QUF9TRVFfU0laRV84MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfODMoXykgQk9PU1RfUFBfU0VRX1NJWkVfODQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzg0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzg1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV84NShfKSBCT09TVF9QUF9TRVFfU0laRV84NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfODYoXykgQk9PU1RfUFBfU0VRX1NJWkVfODcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzg3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzg4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV84OChfKSBCT09TVF9QUF9TRVFfU0laRV84OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfODkoXykgQk9PU1RfUFBfU0VRX1NJWkVfOTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzkwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzkxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV85MShfKSBCT09TVF9QUF9TRVFfU0laRV85MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfOTIoXykgQk9PU1RfUFBfU0VRX1NJWkVfOTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzkzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzk0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV85NChfKSBCT09TVF9QUF9TRVFfU0laRV85NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfOTUoXykgQk9PU1RfUFBfU0VRX1NJWkVfOTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzk2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzk3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV85NyhfKSBCT09TVF9QUF9TRVFfU0laRV85OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfOTgoXykgQk9PU1RfUFBfU0VRX1NJWkVfOTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFXzk5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTAwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTAxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTAyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTAzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTA0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTA1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTA2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTA3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTA4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEwOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTA5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTEwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTExKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTEyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTEzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTE0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTE1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTE2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTE3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTE4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzExOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTE5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTIwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTIxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTIyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTIzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTI0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTI1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTI2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTI3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTI4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEyOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTI5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTMwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTMxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTMyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTMzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTM0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTM1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTM2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTM3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTM4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzEzOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTM5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQ0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQ1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQ2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQ3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQ4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE0OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTQ5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTUwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTUxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTUyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTUzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTU0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTU1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTU2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTU3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTU4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE1OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTU5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTYwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTYxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTYyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTYzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTY0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTY1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTY2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTY3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTY4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE2OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTY5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTcwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTcxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTcyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTczKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTc0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTc1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTc2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTc3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTc4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE3OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTc5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTgwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTgxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTgyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTgzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTg0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTg1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTg2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTg3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTg4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE4OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTg5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTkwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTkxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTkyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTkzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTk0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTk1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTk2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTk3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTk4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzE5OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMTk5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjAwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjAxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjAyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjAzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjA0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjA1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjA2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjA3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjA4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIwOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjA5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjEwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjExKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjEyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjEzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjE0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjE1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjE2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjE3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjE4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIxOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjE5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjIwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjIxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjIyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjIzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjI0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjI1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjI2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjI3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjI4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIyOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjI5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjMwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjMxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjMyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjMzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjM0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjM1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjM2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjM3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjM4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzIzOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjM5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQ0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQ1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQ2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQ3KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQ4KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI0OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjQ5KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjUwKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjUxKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjUyKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjUzKF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjU0KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjU1KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfMjU2KF8pIEJPT1NUX1BQX1NFUV9TSVpFXzI1NworIworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMCAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xIDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzIgMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMyAzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV80IDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzUgNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNiA2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV83IDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzggOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfOSA5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMCAxMAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMTEgMTEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzEyIDEyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMyAxMworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMTQgMTQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzE1IDE1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNiAxNgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMTcgMTcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzE4IDE4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOSAxOQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMjAgMjAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzIxIDIxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMiAyMgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMjMgMjMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzI0IDI0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNSAyNQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMjYgMjYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzI3IDI3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yOCAyOAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMjkgMjkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzMwIDMwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8zMSAzMQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMzIgMzIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzMzIDMzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8zNCAzNAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMzUgMzUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzM2IDM2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8zNyAzNworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfMzggMzgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzM5IDM5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV80MCA0MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNDEgNDEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzQyIDQyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV80MyA0MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNDQgNDQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzQ1IDQ1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV80NiA0NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNDcgNDcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzQ4IDQ4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV80OSA0OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNTAgNTAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzUxIDUxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV81MiA1MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNTMgNTMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzU0IDU0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV81NSA1NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNTYgNTYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzU3IDU3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV81OCA1OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNTkgNTkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzYwIDYwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV82MSA2MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNjIgNjIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzYzIDYzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV82NCA2NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNjUgNjUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzY2IDY2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV82NyA2NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNjggNjgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzY5IDY5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV83MCA3MAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNzEgNzEKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzcyIDcyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV83MyA3MworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNzQgNzQKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzc1IDc1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV83NiA3NgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfNzcgNzcKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzc4IDc4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV83OSA3OQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfODAgODAKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzgxIDgxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV84MiA4MgorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfODMgODMKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzg0IDg0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV84NSA4NQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfODYgODYKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzg3IDg3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV84OCA4OAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfODkgODkKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzkwIDkwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV85MSA5MQorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfOTIgOTIKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzkzIDkzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV85NCA5NAorIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfOTUgOTUKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzk2IDk2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV85NyA5NworIyBkZWZpbmUgQk9PU1RfUFBfU0VRX1NJWkVfQk9PU1RfUFBfU0VRX1NJWkVfOTggOTgKKyMgZGVmaW5lIEJPT1NUX1BQX1NFUV9TSVpFX0JPT1NUX1BQX1NFUV9TSVpFXzk5IDk5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDAgMTAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDEgMTAxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDIgMTAyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDMgMTAzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDQgMTA0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDUgMTA1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDYgMTA2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDcgMTA3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDggMTA4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMDkgMTA5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTAgMTEwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTEgMTExCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTIgMTEyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTMgMTEzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTQgMTE0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTUgMTE1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTYgMTE2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTcgMTE3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTggMTE4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMTkgMTE5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjAgMTIwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjEgMTIxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjIgMTIyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjMgMTIzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjQgMTI0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjUgMTI1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjYgMTI2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjcgMTI3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjggMTI4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMjkgMTI5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzAgMTMwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzEgMTMxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzIgMTMyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzMgMTMzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzQgMTM0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzUgMTM1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzYgMTM2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzcgMTM3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzggMTM4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xMzkgMTM5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDAgMTQwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDEgMTQxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDIgMTQyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDMgMTQzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDQgMTQ0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDUgMTQ1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDYgMTQ2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDcgMTQ3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDggMTQ4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNDkgMTQ5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTAgMTUwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTEgMTUxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTIgMTUyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTMgMTUzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTQgMTU0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTUgMTU1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTYgMTU2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTcgMTU3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTggMTU4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNTkgMTU5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjAgMTYwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjEgMTYxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjIgMTYyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjMgMTYzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjQgMTY0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjUgMTY1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjYgMTY2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjcgMTY3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjggMTY4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNjkgMTY5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzAgMTcwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzEgMTcxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzIgMTcyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzMgMTczCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzQgMTc0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzUgMTc1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzYgMTc2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzcgMTc3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzggMTc4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xNzkgMTc5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODAgMTgwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODEgMTgxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODIgMTgyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODMgMTgzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODQgMTg0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODUgMTg1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODYgMTg2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODcgMTg3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODggMTg4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xODkgMTg5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTAgMTkwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTEgMTkxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTIgMTkyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTMgMTkzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTQgMTk0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTUgMTk1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTYgMTk2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTcgMTk3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTggMTk4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8xOTkgMTk5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDAgMjAwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDEgMjAxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDIgMjAyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDMgMjAzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDQgMjA0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDUgMjA1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDYgMjA2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDcgMjA3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDggMjA4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMDkgMjA5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTAgMjEwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTEgMjExCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTIgMjEyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTMgMjEzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTQgMjE0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTUgMjE1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTYgMjE2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTcgMjE3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTggMjE4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMTkgMjE5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjAgMjIwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjEgMjIxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjIgMjIyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjMgMjIzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjQgMjI0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjUgMjI1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjYgMjI2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjcgMjI3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjggMjI4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMjkgMjI5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzAgMjMwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzEgMjMxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzIgMjMyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzMgMjMzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzQgMjM0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzUgMjM1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzYgMjM2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzcgMjM3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzggMjM4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yMzkgMjM5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDAgMjQwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDEgMjQxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDIgMjQyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDMgMjQzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDQgMjQ0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDUgMjQ1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDYgMjQ2CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDcgMjQ3CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDggMjQ4CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNDkgMjQ5CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTAgMjUwCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTEgMjUxCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTIgMjUyCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTMgMjUzCisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTQgMjU0CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTUgMjU1CisjIGRlZmluZSBCT09TVF9QUF9TRVFfU0laRV9CT09TVF9QUF9TRVFfU0laRV8yNTYgMjU2CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvc3Vic2VxLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zdWJzZXEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyOWUwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvc3Vic2VxLmhwcApAQCAtMCwwICsxLDI4IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NFUV9TVUJTRVFfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX1NVQlNFUV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2ZpcnN0X24uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3Jlc3Rfbi5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1NFUV9TVUJTRVEgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfU1VCU0VRKHNlcSwgaSwgbGVuKSBCT09TVF9QUF9TRVFfRklSU1RfTihsZW4sIEJPT1NUX1BQX1NFUV9SRVNUX04oaSwgc2VxKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1NVQlNFUShzZXEsIGksIGxlbikgQk9PU1RfUFBfU0VRX1NVQlNFUV9JKHNlcSwgaSwgbGVuKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1NVQlNFUV9JKHNlcSwgaSwgbGVuKSBCT09TVF9QUF9TRVFfRklSU1RfTihsZW4sIEJPT1NUX1BQX1NFUV9SRVNUX04oaSwgc2VxKSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS90cmFuc2Zvcm0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3RyYW5zZm9ybS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc3OTNmMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS90cmFuc2Zvcm0uaHBwCkBAIC0wLDAgKzEsNDggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfU0VRX1RSQU5TRk9STV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TRVFfVFJBTlNGT1JNX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9sZF9sZWZ0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zZXEuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9TRVFfVFJBTlNGT1JNICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1RSQU5TRk9STShvcCwgZGF0YSwgc2VxKSBCT09TVF9QUF9TRVFfVEFJTChCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIEJPT1NUX1BQX1NFUV9GT0xEX0xFRlQoQk9PU1RfUFBfU0VRX1RSQU5TRk9STV9PLCAob3AsIGRhdGEsIChuaWwpKSwgc2VxKSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk0ob3AsIGRhdGEsIHNlcSkgQk9PU1RfUFBfU0VRX1RSQU5TRk9STV9JKG9wLCBkYXRhLCBzZXEpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX0kob3AsIGRhdGEsIHNlcSkgQk9PU1RfUFBfU0VRX1RBSUwoQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUKEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk1fTywgKG9wLCBkYXRhLCAobmlsKSksIHNlcSkpKQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0VRX1RSQU5TRk9STV9PKHMsIHN0YXRlLCBlbGVtKSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX09fSU0ocywgQk9PU1RfUFBfVFVQTEVfUkVNXzMgc3RhdGUsIGVsZW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX09fSU0ocywgaW0sIGVsZW0pIEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk1fT19JKHMsIGltLCBlbGVtKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX08ocywgc3RhdGUsIGVsZW0pIEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk1fT19JKHMsIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMCwgc3RhdGUpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDEsIHN0YXRlKSwgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBzdGF0ZSksIGVsZW0pCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX09fSShzLCBvcCwgZGF0YSwgcmVzLCBlbGVtKSAob3AsIGRhdGEsIHJlcyAob3AocywgZGF0YSwgZWxlbSkpKQorIworIyAvKiBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX1MgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX1Mocywgb3AsIGRhdGEsIHNlcSkgQk9PU1RfUFBfU0VRX1RBSUwoQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBCT09TVF9QUF9TRVFfRk9MRF9MRUZUXyAjIyBzKEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk1fTywgKG9wLCBkYXRhLCAobmlsKSksIHNlcSkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TRVFfVFJBTlNGT1JNX1Mocywgb3AsIGRhdGEsIHNlcSkgQk9PU1RfUFBfU0VRX1RSQU5TRk9STV9TX0kocywgb3AsIGRhdGEsIHNlcSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk1fU19JKHMsIG9wLCBkYXRhLCBzZXEpIEJPT1NUX1BQX1NFUV9UQUlMKEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgQk9PU1RfUFBfU0VRX0ZPTERfTEVGVF8gIyMgcyhCT09TVF9QUF9TRVFfVFJBTlNGT1JNX08sIChvcCwgZGF0YSwgKG5pbCkpLCBzZXEpKSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2NvdW50ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvY291bnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI5OGE4ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2NvdW50ZXIuaHBwCkBAIC0wLDAgKzEsMjY5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDA1LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgICAgICAqCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9DT1VOVEVSICsgMQorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUgorIworIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzkgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzkgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzkgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzEwKEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfOShCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzksIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzgoQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfNyhCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfNihCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzUoQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfNChCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVIgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODUwOTllCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvZGVmLmhwcApAQCAtMCwwICsxLDQ5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NMT1RfREVUQUlMX0RFRl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TTE9UX0RFVEFJTF9ERUZfSFBQCisjCisjIC8qIEJPT1NUX1BQX1NMT1RfT0ZGU0VUX3ggKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKHgpICh4KSAlIDEwMDAwMDAwMDBVTAorIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOSh4KSBCT09TVF9QUF9TTE9UX09GRlNFVF8xMCh4KSAlIDEwMDAwMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF84KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoeCkgJSAxMDAwMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF83KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoeCkgJSAxMDAwMDAwVUwKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoeCkgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNyh4KSAlIDEwMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF81KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoeCkgJSAxMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF80KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoeCkgJSAxMDAwVUwKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoeCkgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNCh4KSAlIDEwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF8yKHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoeCkgJSAxMFVMCisjCisjIC8qIEJPT1NUX1BQX1NMT1RfQ0NfeCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9DQ18yKGEsIGIpIEJPT1NUX1BQX1NMT1RfQ0NfMl9EKGEsIGIpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzMoYSwgYiwgYykgQk9PU1RfUFBfU0xPVF9DQ18zX0QoYSwgYiwgYykKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfNChhLCBiLCBjLCBkKSBCT09TVF9QUF9TTE9UX0NDXzRfRChhLCBiLCBjLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9DQ181KGEsIGIsIGMsIGQsIGUpIEJPT1NUX1BQX1NMT1RfQ0NfNV9EKGEsIGIsIGMsIGQsIGUpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzYoYSwgYiwgYywgZCwgZSwgZikgQk9PU1RfUFBfU0xPVF9DQ182X0QoYSwgYiwgYywgZCwgZSwgZikKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfNyhhLCBiLCBjLCBkLCBlLCBmLCBnKSBCT09TVF9QUF9TTE9UX0NDXzdfRChhLCBiLCBjLCBkLCBlLCBmLCBnKQorIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9DQ184KGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgpIEJPT1NUX1BQX1NMT1RfQ0NfOF9EKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzkoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSkgQk9PU1RfUFBfU0xPVF9DQ185X0QoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfMTAoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaikgQk9PU1RfUFBfU0xPVF9DQ18xMF9EKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopCisjCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzJfRChhLCBiKSBhICMjIGIKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfM19EKGEsIGIsIGMpIGEgIyMgYiAjIyBjCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzRfRChhLCBiLCBjLCBkKSBhICMjIGIgIyMgYyAjIyBkCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzVfRChhLCBiLCBjLCBkLCBlKSBhICMjIGIgIyMgYyAjIyBkICMjIGUKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfNl9EKGEsIGIsIGMsIGQsIGUsIGYpIGEgIyMgYiAjIyBjICMjIGQgIyMgZSAjIyBmCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzdfRChhLCBiLCBjLCBkLCBlLCBmLCBnKSBhICMjIGIgIyMgYyAjIyBkICMjIGUgIyMgZiAjIyBnCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzhfRChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoKSBhICMjIGIgIyMgYyAjIyBkICMjIGUgIyMgZiAjIyBnICMjIGgKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfOV9EKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGkpIGEgIyMgYiAjIyBjICMjIGQgIyMgZSAjIyBmICMjIGcgIyMgaCAjIyBpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzEwX0QoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaikgYSAjIyBiICMjIGMgIyMgZCAjIyBlICMjIGYgIyMgZyAjIyBoICMjIGkgIyMgagorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk3YWM1NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHAKQEAgLTAsMCArMSwyNDcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUF9WQUxVRQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIEJPT1NUX1BQX1ZBTFVFIGlzIG5vdCBkZWZpbmVkCisjIGVuZGlmCisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8xCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8yCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8zCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF80CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF81CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF82CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF83CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF84CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF85CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMAorIworIyBpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCAwCisjIGVsaWYgKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMDBVTCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMTAgMQorIyBlbGlmIChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDAwVUwgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEwIDIKKyMgZWxpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCAzCisjIGVsaWYgKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMDBVTCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMTAgNAorIyBlbGlmIChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDAwVUwgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEwIDUKKyMgZWxpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA2CisjIGVsaWYgKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMDBVTCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMTAgNworIyBlbGlmIChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDAwVUwgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEwIDgKKyMgZWxpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8xMChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDBVTCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMTAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwVUwgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzkgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8xMChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDBVTCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMTAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwVUwgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzkgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8xMChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDBVTCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMTAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwVUwgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzkgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF85KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwVUwgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF85KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwVUwgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF85KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwVUwgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF83IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF84KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF83IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF84KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF83IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF84KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF82KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwVUwgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF82KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwVUwgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF82KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwVUwgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF80IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF81KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF80IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF81KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF80IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF81KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8zKEJPT1NUX1BQX1ZBTFVFKSAvIDEwVUwgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoQk9PU1RfUFBfVkFMVUUpIC8gMTBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8zKEJPT1NUX1BQX1ZBTFVFKSAvIDEwVUwgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoQk9PU1RfUFBfVkFMVUUpIC8gMTBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8zKEJPT1NUX1BQX1ZBTFVFKSAvIDEwVUwgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoQk9PU1RfUFBfVkFMVUUpIC8gMTBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzIoQk9PU1RfUFBfVkFMVUUpID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8yKEJPT1NUX1BQX1ZBTFVFKSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzIoQk9PU1RfUFBfVkFMVUUpID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8yKEJPT1NUX1BQX1ZBTFVFKSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzIoQk9PU1RfUFBfVkFMVUUpID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8yKEJPT1NUX1BQX1ZBTFVFKSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgOQorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9WQUxVRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4NmFmNjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90MS5ocHAKQEAgLTAsMCArMSwyNjcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzggMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzggNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzggOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMSgpIEJPT1NUX1BQX1NMT1RfQ0NfMTAoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEwLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzEoKSBCT09TVF9QUF9TTE9UX0NDXzkoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ184KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ183KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzEoKSBCT09TVF9QUF9TTE9UX0NDXzYoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ181KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ180KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzEoKSBCT09TVF9QUF9TTE9UX0NDXzMoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGY5YjRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDIuaHBwCkBAIC0wLDAgKzEsMjY3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8yCisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzIoKSBCT09TVF9QUF9TTE9UX0NDXzEwKEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xMCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzJfRElHSVRfOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yKCkgQk9PU1RfUFBfU0xPVF9DQ185KEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfOChCT09TVF9QUF9TTE9UXzJfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfNyhCT09TVF9QUF9TTE9UXzJfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzJfRElHSVRfNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yKCkgQk9PU1RfUFBfU0xPVF9DQ182KEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfNShCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfNChCT09TVF9QUF9TTE9UXzJfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzJfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yKCkgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90My5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90My5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA1YmZhZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QzLmhwcApAQCAtMCwwICsxLDI2NyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMworIworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMQorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNAorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMTAKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zKCkgQk9PU1RfUFBfU0xPVF9DQ18xMChCT09TVF9QUF9TTE9UXzNfRElHSVRfMTAsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMygpIEJPT1NUX1BQX1NMT1RfQ0NfOShCT09TVF9QUF9TTE9UXzNfRElHSVRfOSwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzgoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzcoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMygpIEJPT1NUX1BQX1NMT1RfQ0NfNihCT09TVF9QUF9TTE9UXzNfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzUoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzQoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMygpIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMQorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiMGY3MjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90NC5ocHAKQEAgLTAsMCArMSwyNjcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzggMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzggNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzggOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNCgpIEJPT1NUX1BQX1NMT1RfQ0NfMTAoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEwLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzQoKSBCT09TVF9QUF9TTE9UX0NDXzkoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ184KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ183KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzQoKSBCT09TVF9QUF9TTE9UX0NDXzYoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ181KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ180KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzQoKSBCT09TVF9QUF9TTE9UX0NDXzMoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3Q1LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3Q1LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGI4YWMxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDUuaHBwCkBAIC0wLDAgKzEsMjY3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF81CisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzUoKSBCT09TVF9QUF9TTE9UX0NDXzEwKEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xMCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNywgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzVfRElHSVRfOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81KCkgQk9PU1RfUFBfU0xPVF9DQ185KEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfOChCT09TVF9QUF9TTE9UXzVfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfNyhCT09TVF9QUF9TTE9UXzVfRElHSVRfNywgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzVfRElHSVRfNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81KCkgQk9PU1RfUFBfU0xPVF9DQ182KEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfNShCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfNChCT09TVF9QUF9TTE9UXzVfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzVfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81KCkgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGZlNDE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcApAQCAtMCwwICsxLDMyIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NMT1RfU0xPVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TTE9UX1NMT1RfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvZGVmLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQVNTSUdOX1NMT1QgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0FTU0lHTl9TTE9UKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9BU1NJR05fU0xPVF8sIGkpCisjCisjIGRlZmluZSBCT09TVF9QUF9BU1NJR05fU0xPVF8xIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDEuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfQVNTSUdOX1NMT1RfMiA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QyLmhwcD4KKyMgZGVmaW5lIEJPT1NUX1BQX0FTU0lHTl9TTE9UXzMgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90My5ocHA+CisjIGRlZmluZSBCT09TVF9QUF9BU1NJR05fU0xPVF80IDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDQuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfQVNTSUdOX1NMT1RfNSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3Q1LmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0xPVCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfU0xPVChpKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfU0xPVF8sIGkpKCkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3N0cmluZ2l6ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zdHJpbmdpemUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2ODJjYzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci9zdHJpbmdpemUuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NUUklOR0laRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TVFJJTkdJWkVfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU1RSSU5HSVpFICovCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU1RSSU5HSVpFKHRleHQpIEJPT1NUX1BQX1NUUklOR0laRV9BKCh0ZXh0KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NUUklOR0laRV9BKGFyZykgQk9PU1RfUFBfU1RSSU5HSVpFX0kgYXJnCisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9TVFJJTkdJWkUodGV4dCkgQk9PU1RfUFBfU1RSSU5HSVpFX09PKCh0ZXh0KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NUUklOR0laRV9PTyhwYXIpIEJPT1NUX1BQX1NUUklOR0laRV9JICMjIHBhcgorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TVFJJTkdJWkUodGV4dCkgQk9PU1RfUFBfU1RSSU5HSVpFX0kodGV4dCkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NUUklOR0laRV9JKHRleHQpICN0ZXh0CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWZlNTcxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcApAQCAtMCwwICsxLDEwNiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyLTIwMTEpICovCisjIC8qIFJldmlzZWQgYnkgRWR3YXJkIERpZW5lciAoMjAxMSkgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX0VBVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9UVVBMRV9FQVRfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfRUFUICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBkZWZpbmUgQk9PU1RfUFBfRUFUKC4uLikKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRUFUKHgpCisjIGVuZGlmCisjCisjIC8qIEJPT1NUX1BQX1RVUExFX0VBVCAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVChzaXplKSBCT09TVF9QUF9FQVQKKyMgZWxzZQorIyAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUKHNpemUpIEJPT1NUX1BQX1RVUExFX0VBVF9JKHNpemUpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVQoc2l6ZSkgQk9PU1RfUFBfVFVQTEVfRUFUX09PKChzaXplKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfT08ocGFyKSBCT09TVF9QUF9UVVBMRV9FQVRfSSAjIyBwYXIKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF9JKHNpemUpIEJPT1NUX1BQX1RVUExFX0VBVF8gIyMgc2l6ZQorIyBlbmRpZgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzEoZTApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMihlMCwgZTEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMyhlMCwgZTEsIGUyKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQoZTAsIGUxLCBlMiwgZTMpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNShlMCwgZTEsIGUyLCBlMywgZTQpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzEwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzExKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzEzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzE0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzE2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzE3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzE5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzIwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzIyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzIzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzI1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzI2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzI4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzI5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzMxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzMyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzM0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzM1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzM3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzM4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQ0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQ2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQ3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzQ5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzUwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzUyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzUzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzU1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzU2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzU4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzU5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5KQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzYxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzYyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUXzY0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzJkY2RkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHAKQEAgLTAsMCArMSwxOTEgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMi0yMDExKSAqLworIyAvKiBSZXZpc2VkIGJ5IEVkd2FyZCBEaWVuZXIgKDIwMTEpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9UVVBMRV9FTEVNX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX0VMRU1fSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL3JlbS5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9lbGVtLmhwcD4KKyMKKyMgaWYgQk9PU1RfUFBfVkFSSUFESUNTCisjICAgIGlmIEJPT1NUX1BQX1ZBUklBRElDU19NU1ZDCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTSguLi4pIEJPT1NUX1BQX1RVUExFX0VMRU1fSShCT09TVF9QUF9PVkVSTE9BRChCT09TVF9QUF9UVVBMRV9FTEVNX09fLCBfX1ZBX0FSR1NfXyksIChfX1ZBX0FSR1NfXykpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JKG0sIGFyZ3MpIEJPT1NUX1BQX1RVUExFX0VMRU1fSUkobSwgYXJncykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJKG0sIGFyZ3MpIEJPT1NUX1BQX0NBVChtICMjIGFyZ3MsKQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTSguLi4pIEJPT1NUX1BQX09WRVJMT0FEKEJPT1NUX1BQX1RVUExFX0VMRU1fT18sIF9fVkFfQVJHU19fKShfX1ZBX0FSR1NfXykKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fT18yKG4sIHR1cGxlKSBCT09TVF9QUF9WQVJJQURJQ19FTEVNKG4sIEJPT1NUX1BQX1JFTSB0dXBsZSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fT18zKHNpemUsIG4sIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9FTEVNX09fMihuLCB0dXBsZSkKKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNKHNpemUsIG4sIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9FTEVNX0koQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1RVUExFX0VMRU1fLCBuKSwgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0NBVChCT09TVF9QUF9UVVBMRV9FTEVNX0VfLCBzaXplKSwgdHVwbGUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fSShtLCBhcmdzKSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJKG0sIGFyZ3MpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JSShtLCBhcmdzKSBCT09TVF9QUF9DQVQobSAjIyBhcmdzLCkKKyMgICAgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNKHNpemUsIG4sIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9FTEVNX0lfT08oKHNpemUsIG4sIHR1cGxlKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0lfT08ocGFyKSBCT09TVF9QUF9UVVBMRV9FTEVNX0kgIyMgcGFyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JKHNpemUsIG4sIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJKChuLCBCT09TVF9QUF9UVVBMRV9FTEVNX0VfICMjIHNpemUgIyMgdHVwbGUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fSUkocGFyKSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJSV9PTyhwYXIpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JSUlfT08ocGFyKSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJSSAjIyBwYXIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJSShuLCBldHVwbGUpIEJPT1NUX1BQX1RVUExFX0VMRU1fICMjIG4gIyMgZXR1cGxlCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNKHNpemUsIG4sIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9FTEVNX0koQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1RVUExFX0VMRU1fLCBuKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfVFVQTEVfRUxFTV9FXywgc2l6ZSkgdHVwbGUpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JKHgpIHgKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8xKGUwKSAoZTAsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMihlMCwgZTEpIChlMCwgZTEsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMyhlMCwgZTEsIGUyKSAoZTAsIGUxLCBlMiwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV80KGUwLCBlMSwgZTIsIGUzKSAoZTAsIGUxLCBlMiwgZTMsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNShlMCwgZTEsIGUyLCBlMywgZTQpIChlMCwgZTEsIGUyLCBlMywgZTQsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV83KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8xMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzExKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTApIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzEyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8xMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzE0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzE1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8xNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzE3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzE4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8xOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzIwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTkpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzIxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8yMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzIzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzI0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8yNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzI2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzI3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8yOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzI5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzMwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8zMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzMyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzMzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8zNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzM1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzM2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8zNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzM4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzM5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV80MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDApIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV80MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQ0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQ1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV80NihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQ3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQ4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV80OShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzUwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDkpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzUxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV81MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzUzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzU0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV81NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzU2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzU3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV81OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzU5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzYwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV82MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzYyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzYzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV82NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8wKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV82KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV83KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV84KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV85KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzExKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzE0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzE3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzIwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzIzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzI2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzI5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzMyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzM1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMzUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzM4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMzgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNDIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQ0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNDUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80NihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQ3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNDgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80OShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzUwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzUzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzU2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzU5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV82MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzYyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNjIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU2MworIyBlbmRpZgorIworIyAvKiBkaXJlY3RseSB1c2VkIGVsc2V3aGVyZSBpbiBCb29zdC4uLiAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xXzAoYSkgYQorIworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzAoYSwgYikgYQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEoYSwgYikgYgorIworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzAoYSwgYiwgYykgYQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEoYSwgYiwgYykgYgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIoYSwgYiwgYykgYworIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL3JlbS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE2ZDViNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL3JlbS5ocHAKQEAgLTAsMCArMSwxMzQgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDItMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgRWR3YXJkIERpZW5lciAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSAgICAgICoKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0ICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9UVVBMRV9SRU1fSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfVFVQTEVfUkVNX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9vdmVybG9hZC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1JFTSAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFTSguLi4pIF9fVkFfQVJHU19fCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1JFTSh4KSB4CisjIGVuZGlmCisjCisjIC8qIEJPT1NUX1BQX1RVUExFX1JFTSAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTShzaXplKSBCT09TVF9QUF9SRU0KKyMgZWxzZQorIyAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNKHNpemUpIEJPT1NUX1BQX1RVUExFX1JFTV9JKHNpemUpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU0oc2l6ZSkgQk9PU1RfUFBfVFVQTEVfUkVNX09PKChzaXplKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fT08ocGFyKSBCT09TVF9QUF9UVVBMRV9SRU1fSSAjIyBwYXIKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9JKHNpemUpIEJPT1NUX1BQX1RVUExFX1JFTV8gIyMgc2l6ZQorIyBlbmRpZgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzEoZTApIGUwCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMihlMCwgZTEpIGUwLCBlMQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzMoZTAsIGUxLCBlMikgZTAsIGUxLCBlMgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQoZTAsIGUxLCBlMiwgZTMpIGUwLCBlMSwgZTIsIGUzCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNShlMCwgZTEsIGUyLCBlMywgZTQpIGUwLCBlMSwgZTIsIGUzLCBlNAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzEwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzExKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTApIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8xMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzEzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzE0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8xNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzE2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzE3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8xOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzE5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzIwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTkpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8yMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjApIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzIyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzIzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8yNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzI1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzI2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8yNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzI4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzI5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8zMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjkpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzMxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzMyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8zMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzM0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzM1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8zNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzM3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzM4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8zOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDApIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV80MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQ0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV80NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQ2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQ3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV80OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQ5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzUwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDkpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV81MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTApIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzUyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzUzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV81NChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzU1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzU2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV81NyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzU4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzU5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV82MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTkpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzYxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzYyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV82MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzY0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MworIworIyAvKiBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUiAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgaWYgQk9PU1RfUFBfVkFSSUFESUNTX01TVkMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUiguLi4pIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0koQk9PU1RfUFBfT1ZFUkxPQUQoQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfT18sIF9fVkFfQVJHU19fKSwgKF9fVkFfQVJHU19fKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9JKG0sIGFyZ3MpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0lJKG0sIGFyZ3MpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSUkobSwgYXJncykgQk9PU1RfUFBfQ0FUKG0gIyMgYXJncywpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUiguLi4pIEJPT1NUX1BQX09WRVJMT0FEKEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX09fLCBfX1ZBX0FSR1NfXykoX19WQV9BUkdTX18pCisjICAgIGVuZGlmCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9PXzEodHVwbGUpIEJPT1NUX1BQX1JFTSB0dXBsZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfT18yKHNpemUsIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9PXzEodHVwbGUpCisjIGVsc2UKKyMgICAgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1Ioc2l6ZSwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0koQk9PU1RfUFBfVFVQTEVfUkVNKHNpemUpLCB0dXBsZSkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SKHNpemUsIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9EKHNpemUsIHR1cGxlKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0Qoc2l6ZSwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0koQk9PU1RfUFBfVFVQTEVfUkVNKHNpemUpLCB0dXBsZSkKKyMgICAgZW5kaWYKKyMgICAgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0koZXh0LCB0dXBsZSkgZXh0IHR1cGxlCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9JKGV4dCwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX09PKChleHQsIHR1cGxlKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9PTyhwYXIpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0lJICMjIHBhcgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0lJKGV4dCwgdHVwbGUpIGV4dCAjIyB0dXBsZQorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS90b19saXN0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmQ2NDA5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHAKQEAgLTAsMCArMSwxMTYgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMi0yMDExKSAqLworIyAvKiBSZXZpc2VkIGJ5IEVkd2FyZCBEaWVuZXIgKDIwMTEpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9UVVBMRV9UT19MSVNUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX1RPX0xJU1RfSFBQCisjCisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3ZhcmlhZGljL3NpemUuaHBwPgorIworIyAvKiBCT09TVF9QUF9UVVBMRV9UT19MSVNUICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBpZiBCT09TVF9QUF9WQVJJQURJQ1NfTVNWQworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QoLi4uKSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0koQk9PU1RfUFBfT1ZFUkxPQUQoQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9PXywgX19WQV9BUkdTX18pLCAoX19WQV9BUkdTX18pKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSShtLCBhcmdzKSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0lJKG0sIGFyZ3MpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9JSShtLCBhcmdzKSBCT09TVF9QUF9DQVQobSAjIyBhcmdzLCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QoLi4uKSBCT09TVF9QUF9PVkVSTE9BRChCT09TVF9QUF9UVVBMRV9UT19MSVNUX09fLCBfX1ZBX0FSR1NfXykoX19WQV9BUkdTX18pCisjICAgIGVuZGlmCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX09fMSh0dXBsZSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfLCBCT09TVF9QUF9WQVJJQURJQ19TSVpFIHR1cGxlKSB0dXBsZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9PXzIoc2l6ZSwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfT18xKHR1cGxlKQorIyBlbHNlCisjICAgIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUKHNpemUsIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0koc2l6ZSwgdHVwbGUpCisjICAgICAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSShzLCB0KSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXyAjIyBzIHQKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9JKHMsIHQpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSUkoQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8gIyMgcyB0KQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0lJKHJlcykgcmVzCisjICAgICAgICBlbmRpZgorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVChzaXplLCB0dXBsZSkgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9PTygoc2l6ZSwgdHVwbGUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfT08ocGFyKSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0kgIyMgcGFyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9JKHMsIHQpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfICMjIHMgIyMgdAorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xKGUwKSAoZTAsIEJPT1NUX1BQX05JTCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMihlMCwgZTEpIChlMCwgKGUxLCBCT09TVF9QUF9OSUwpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zKGUwLCBlMSwgZTIpIChlMCwgKGUxLCAoZTIsIEJPT1NUX1BQX05JTCkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80KGUwLCBlMSwgZTIsIGUzKSAoZTAsIChlMSwgKGUyLCAoZTMsIEJPT1NUX1BQX05JTCkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNShlMCwgZTEsIGUyLCBlMywgZTQpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCBCT09TVF9QUF9OSUwpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF82KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIEJPT1NUX1BQX05JTCkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF83KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIEJPT1NUX1BQX05JTCkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCBCT09TVF9QUF9OSUwpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF85KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIEJPT1NUX1BQX05JTCkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzExKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTApIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzE0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzE3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzIwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTkpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzIzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzI2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzI5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzMyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzM1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzM4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDApIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNDIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQ0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNDUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80NihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQ3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNDgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80OShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzUwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDkpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzUzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzU2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgKGU1NCwgKGU1NSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIChlNTUsIChlNTYsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCAoZTU1LCAoZTU2LCAoZTU3LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzU5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgKGU1NCwgKGU1NSwgKGU1NiwgKGU1NywgKGU1OCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIChlNTUsIChlNTYsIChlNTcsIChlNTgsIChlNTksIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF82MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCAoZTU1LCAoZTU2LCAoZTU3LCAoZTU4LCAoZTU5LCAoZTYwLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzYyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgKGU1NCwgKGU1NSwgKGU1NiwgKGU1NywgKGU1OCwgKGU1OSwgKGU2MCwgKGU2MSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIChlNTUsIChlNTYsIChlNTcsIChlNTgsIChlNTksIChlNjAsIChlNjEsIChlNjIsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF82NChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCAoZTU1LCAoZTU2LCAoZTU3LCAoZTU4LCAoZTU5LCAoZTYwLCAoZTYxLCAoZTYyLCAoZTYzLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9lbGVtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcHJlcHJvY2Vzc29yL3ZhcmlhZGljL2VsZW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZjVjNjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9lbGVtLmhwcApAQCAtMCwwICsxLDk0IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IEVkd2FyZCBEaWVuZXIgMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgICAgICAqCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfVkFSSUFESUNfRUxFTV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9WQVJJQURJQ19FTEVNX0hQUAorIworIyBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9WQVJJQURJQ19FTEVNICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBpZiBCT09TVF9QUF9WQVJJQURJQ1NfTVNWQworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU0obiwgLi4uKSBCT09TVF9QUF9WQVJJQURJQ19FTEVNX0kobixfX1ZBX0FSR1NfXykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNX0kobiwgLi4uKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fLCBuKShfX1ZBX0FSR1NfXywpLCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU0obiwgLi4uKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8sIG4pKF9fVkFfQVJHU19fLCkKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMChlMCwgLi4uKSBlMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xKGUwLCBlMSwgLi4uKSBlMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yKGUwLCBlMSwgZTIsIC4uLikgZTIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMyhlMCwgZTEsIGUyLCBlMywgLi4uKSBlMworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80KGUwLCBlMSwgZTIsIGUzLCBlNCwgLi4uKSBlNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIC4uLikgZTUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgLi4uKSBlNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV83KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgLi4uKSBlNworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV84KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIC4uLikgZTgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgLi4uKSBlOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCAuLi4pIGUxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIC4uLikgZTExCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzEyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCAuLi4pIGUxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCAuLi4pIGUxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIC4uLikgZTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzE1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCAuLi4pIGUxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCAuLi4pIGUxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIC4uLikgZTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzE4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCAuLi4pIGUxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8xOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCAuLi4pIGUxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIC4uLikgZTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzIxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCAuLi4pIGUyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCAuLi4pIGUyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIC4uLikgZTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzI0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCAuLi4pIGUyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCAuLi4pIGUyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIC4uLikgZTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzI3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCAuLi4pIGUyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCAuLi4pIGUyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8yOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIC4uLikgZTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzMwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCAuLi4pIGUzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCAuLi4pIGUzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIC4uLikgZTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzMzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCAuLi4pIGUzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCAuLi4pIGUzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIC4uLikgZTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzM2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCAuLi4pIGUzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCAuLi4pIGUzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIC4uLikgZTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzM5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCAuLi4pIGUzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCAuLi4pIGU0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIC4uLikgZTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCAuLi4pIGU0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCAuLi4pIGU0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80NChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIC4uLikgZTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQ1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCAuLi4pIGU0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80NihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCAuLi4pIGU0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80NyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIC4uLikgZTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQ4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCAuLi4pIGU0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV80OShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCAuLi4pIGU0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIC4uLikgZTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzUxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCAuLi4pIGU1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCAuLi4pIGU1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIC4uLikgZTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzU0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCAuLi4pIGU1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCAuLi4pIGU1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81NihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIC4uLikgZTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzU3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCAuLi4pIGU1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCAuLi4pIGU1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV81OShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIC4uLikgZTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzYwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCAuLi4pIGU2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV82MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCAuLi4pIGU2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV82MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIC4uLikgZTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzYzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzLCAuLi4pIGU2MworIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9zaXplLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTg0MTAxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHAKQEAgLTAsMCArMSwzMCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBFZHdhcmQgRGllbmVyIDIwMTEuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlICAgICAgKgorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1ZBUklBRElDX1NJWkVfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfVkFSSUFESUNfU0laRV9IUFAKKyMKKyMgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfVkFSSUFESUNfU0laRSAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgaWYgQk9PU1RfUFBfVkFSSUFESUNTX01TVkMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19TSVpFKC4uLikgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1ZBUklBRElDX1NJWkVfSShfX1ZBX0FSR1NfXywgNjQsIDYzLCA2MiwgNjEsIDYwLCA1OSwgNTgsIDU3LCA1NiwgNTUsIDU0LCA1MywgNTIsIDUxLCA1MCwgNDksIDQ4LCA0NywgNDYsIDQ1LCA0NCwgNDMsIDQyLCA0MSwgNDAsIDM5LCAzOCwgMzcsIDM2LCAzNSwgMzQsIDMzLCAzMiwgMzEsIDMwLCAyOSwgMjgsIDI3LCAyNiwgMjUsIDI0LCAyMywgMjIsIDIxLCAyMCwgMTksIDE4LCAxNywgMTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsKSwpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19TSVpFKC4uLikgQk9PU1RfUFBfVkFSSUFESUNfU0laRV9JKF9fVkFfQVJHU19fLCA2NCwgNjMsIDYyLCA2MSwgNjAsIDU5LCA1OCwgNTcsIDU2LCA1NSwgNTQsIDUzLCA1MiwgNTEsIDUwLCA0OSwgNDgsIDQ3LCA0NiwgNDUsIDQ0LCA0MywgNDIsIDQxLCA0MCwgMzksIDM4LCAzNywgMzYsIDM1LCAzNCwgMzMsIDMyLCAzMSwgMzAsIDI5LCAyOCwgMjcsIDI2LCAyNSwgMjQsIDIzLCAyMiwgMjEsIDIwLCAxOSwgMTgsIDE3LCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwpCisjICAgIGVuZGlmCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19TSVpFX0koZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMsIHNpemUsIC4uLikgc2l6ZQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9wcm9ncmVzcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Byb2dyZXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmQzODdmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9wcm9ncmVzcy5ocHAKQEAgLTAsMCArMSwxNDMgQEAKKy8vICBib29zdCBwcm9ncmVzcy5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMTk5NC05OS4gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGltZXIgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICBSZXZpc2lvbiBIaXN0b3J5CisvLyAgIDEgRGVjIDAxICBBZGQgbGVhZGluZyBwcm9ncmVzcyBkaXNwbGF5IHN0cmluZ3MgKHN1Z2dlc3RlZCBieSBUb29uIEtuYXBlbikKKy8vICAyMCBNYXkgMDEgIEludHJvZHVjZSBzZXZlcmFsIHN0YXRpY19jYXN0czw+IHRvIGVsaW1pbmF0ZSB3YXJuaW5nIG1lc3NhZ2VzCisvLyAgICAgICAgICAgICAoRml4ZWQgYnkgQmVtYW4sIHJlcG9ydGVkIGJ5IEhlcnZlIEJyb25uaW1hbm4pCisvLyAgMTIgSmFuIDAxICBDaGFuZ2UgdG8gaW5saW5lIGltcGxlbWVudGF0aW9uIHRvIGFsbG93IHVzZSB3aXRob3V0IGxpYnJhcnkKKy8vICAgICAgICAgICAgIGJ1aWxkcy4gU2VlIGRvY3MgZm9yIG1vcmUgcmF0aW9uYWxlLiAoQmVtYW4gRGF3ZXMpIAorLy8gIDIyIEp1bCA5OSAgTmFtZSBjaGFuZ2VkIHRvIC5ocHAKKy8vICAxNiBKdWwgOTkgIFNlY29uZCBiZXRhCisvLyAgIDYgSnVsIDk5ICBJbml0aWFsIGJvb3N0IHZlcnNpb24KKworI2lmbmRlZiBCT09TVF9QUk9HUkVTU19IUFAKKyNkZWZpbmUgQk9PU1RfUFJPR1JFU1NfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC90aW1lci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS5ocHA+ICAvLyBmb3Igbm9uY29weWFibGUKKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkaW50LmhwcD4gIC8vIGZvciB1aW50bWF4X3QKKyNpbmNsdWRlIDxpb3N0cmVhbT4gICAgICAgICAgIC8vIGZvciBvc3RyZWFtLCBjb3V0LCBldGMKKyNpbmNsdWRlIDxzdHJpbmc+ICAgICAgICAgICAgIC8vIGZvciBzdHJpbmcKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gIHByb2dyZXNzX3RpbWVyICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIEEgcHJvZ3Jlc3NfdGltZXIgYmVoYXZlcyBsaWtlIGEgdGltZXIgZXhjZXB0IHRoYXQgdGhlIGRlc3RydWN0b3IgZGlzcGxheXMKKy8vICBhbiBlbGFwc2VkIHRpbWUgbWVzc2FnZSBhdCBhbiBhcHByb3ByaWF0ZSBwbGFjZSBpbiBhbiBhcHByb3ByaWF0ZSBmb3JtLgorCitjbGFzcyBwcm9ncmVzc190aW1lciA6IHB1YmxpYyB0aW1lciwgcHJpdmF0ZSBub25jb3B5YWJsZQoreworICAKKyBwdWJsaWM6CisgIGV4cGxpY2l0IHByb2dyZXNzX3RpbWVyKCBzdGQ6Om9zdHJlYW0gJiBvcyA9IHN0ZDo6Y291dCApCisgICAgIC8vIG9zIGlzIGhpbnQ7IGltcGxlbWVudGF0aW9uIG1heSBpZ25vcmUsIHBhcnRpY3VsYXJseSBpbiBlbWJlZGRlZCBzeXN0ZW1zCisgICAgIDogbV9vcyhvcykge30KKyAgfnByb2dyZXNzX3RpbWVyKCkKKyAgeworICAvLyAgQSkgVGhyb3dpbmcgYW4gZXhjZXB0aW9uIGZyb20gYSBkZXN0cnVjdG9yIGlzIGEgQmFkIFRoaW5nLgorICAvLyAgQikgVGhlIHByb2dyZXNzX3RpbWVyIGRlc3RydWN0b3IgZG9lcyBvdXRwdXQgd2hpY2ggbWF5IHRocm93LgorICAvLyAgQykgQSBwcm9ncmVzc190aW1lciBpcyB1c3VhbGx5IG5vdCBjcml0aWNhbCB0byB0aGUgYXBwbGljYXRpb24uCisgIC8vICBUaGVyZWZvcmUsIHdyYXAgdGhlIEkvTyBpbiBhIHRyeSBibG9jaywgY2F0Y2ggYW5kIGlnbm9yZSBhbGwgZXhjZXB0aW9ucy4KKyAgICB0cnkKKyAgICB7CisgICAgICAvLyB1c2UgaXN0cmVhbSBpbnN0ZWFkIG9mIGlvc19iYXNlIHRvIHdvcmthcm91bmQgR05VIHByb2JsZW0gKEdyZWcgQ2hpY2FyZXMpCisgICAgICBzdGQ6OmlzdHJlYW06OmZtdGZsYWdzIG9sZF9mbGFncyA9IG1fb3Muc2V0Ziggc3RkOjppc3RyZWFtOjpmaXhlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6aXN0cmVhbTo6ZmxvYXRmaWVsZCApOworICAgICAgc3RkOjpzdHJlYW1zaXplIG9sZF9wcmVjID0gbV9vcy5wcmVjaXNpb24oIDIgKTsKKyAgICAgIG1fb3MgPDwgZWxhcHNlZCgpIDw8ICIgc1xuIiAvLyAicyIgaXMgU3lzdGVtIEludGVybmF0aW9uYWwgZCdVbml0ZXMgc3RkCisgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGQ6OmVuZGw7CisgICAgICBtX29zLmZsYWdzKCBvbGRfZmxhZ3MgKTsKKyAgICAgIG1fb3MucHJlY2lzaW9uKCBvbGRfcHJlYyApOworICAgIH0KKworICAgIGNhdGNoICguLi4pIHt9IC8vIGVhdCBhbnkgZXhjZXB0aW9ucworICB9IC8vIH5wcm9ncmVzc190aW1lcgorCisgcHJpdmF0ZToKKyAgc3RkOjpvc3RyZWFtICYgbV9vczsKK307CisKKworLy8gIHByb2dyZXNzX2Rpc3BsYXkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIHByb2dyZXNzX2Rpc3BsYXkgZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgaW5kaWNhdGlvbiBvZiAKKy8vICBwcm9ncmVzcyBhdCBhbiBhcHByb3ByaWF0ZSBwbGFjZSBpbiBhbiBhcHByb3ByaWF0ZSBmb3JtLgorCisvLyBOT1RFOiAoSmFuIDEyLCAyMDAxKSBUcmllZCB0byBjaGFuZ2UgdW5zaWduZWQgbG9uZyB0byBuZG5ib29zdDo6dWludG1heF90LCBidXQKKy8vIGZvdW5kIHNvbWUgY29tcGlsZXJzIGNvdWxkbid0IGhhbmRsZSB0aGUgcmVxdWlyZWQgY29udmVyc2lvbiB0byBkb3VibGUuCisvLyBSZXZlcnRlZCB0byB1bnNpZ25lZCBsb25nIHVudGlsIHRoZSBjb21waWxlcnMgY2F0Y2ggdXAuIAorCitjbGFzcyBwcm9ncmVzc19kaXNwbGF5IDogcHJpdmF0ZSBub25jb3B5YWJsZQoreworIHB1YmxpYzoKKyAgZXhwbGljaXQgcHJvZ3Jlc3NfZGlzcGxheSggdW5zaWduZWQgbG9uZyBleHBlY3RlZF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpvc3RyZWFtICYgb3MgPSBzdGQ6OmNvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgczEgPSAiXG4iLCAvL2xlYWRpbmcgc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmIHMyID0gIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICYgczMgPSAiIiApCisgICAvLyBvcyBpcyBoaW50OyBpbXBsZW1lbnRhdGlvbiBtYXkgaWdub3JlLCBwYXJ0aWN1bGFybHkgaW4gZW1iZWRkZWQgc3lzdGVtcworICAgOiBtX29zKG9zKSwgbV9zMShzMSksIG1fczIoczIpLCBtX3MzKHMzKSB7IHJlc3RhcnQoZXhwZWN0ZWRfY291bnQpOyB9CisKKyAgdm9pZCAgICAgICAgICAgcmVzdGFydCggdW5zaWduZWQgbG9uZyBleHBlY3RlZF9jb3VudCApCisgIC8vICBFZmZlY3RzOiBkaXNwbGF5IGFwcHJvcHJpYXRlIHNjYWxlCisgIC8vICBQb3N0Y29uZGl0aW9uczogY291bnQoKT09MCwgZXhwZWN0ZWRfY291bnQoKT09ZXhwZWN0ZWRfY291bnQKKyAgeworICAgIF9jb3VudCA9IF9uZXh0X3RpY19jb3VudCA9IF90aWMgPSAwOworICAgIF9leHBlY3RlZF9jb3VudCA9IGV4cGVjdGVkX2NvdW50OworCisgICAgbV9vcyA8PCBtX3MxIDw8ICIwJSAgIDEwICAgMjAgICAzMCAgIDQwICAgNTAgICA2MCAgIDcwICAgODAgICA5MCAgIDEwMCVcbiIKKyAgICAgICAgIDw8IG1fczIgPDwgInwtLS0tfC0tLS18LS0tLXwtLS0tfC0tLS18LS0tLXwtLS0tfC0tLS18LS0tLXwtLS0tfCIKKyAgICAgICAgIDw8IHN0ZDo6ZW5kbCAgLy8gZW5kbCBpbXBsaWVzIGZsdXNoLCB3aGljaCBlbnN1cmVzIGRpc3BsYXkKKyAgICAgICAgIDw8IG1fczM7CisgICAgaWYgKCAhX2V4cGVjdGVkX2NvdW50ICkgX2V4cGVjdGVkX2NvdW50ID0gMTsgIC8vIHByZXZlbnQgZGl2aWRlIGJ5IHplcm8KKyAgfSAvLyByZXN0YXJ0CisKKyAgdW5zaWduZWQgbG9uZyAgb3BlcmF0b3IrPSggdW5zaWduZWQgbG9uZyBpbmNyZW1lbnQgKQorICAvLyAgRWZmZWN0czogRGlzcGxheSBhcHByb3ByaWF0ZSBwcm9ncmVzcyB0aWMgaWYgbmVlZGVkLgorICAvLyAgUG9zdGNvbmRpdGlvbnM6IGNvdW50KCk9PSBvcmlnaW5hbCBjb3VudCgpICsgaW5jcmVtZW50CisgIC8vICBSZXR1cm5zOiBjb3VudCgpLgorICB7CisgICAgaWYgKCAoX2NvdW50ICs9IGluY3JlbWVudCkgPj0gX25leHRfdGljX2NvdW50ICkgeyBkaXNwbGF5X3RpYygpOyB9CisgICAgcmV0dXJuIF9jb3VudDsKKyAgfQorCisgIHVuc2lnbmVkIGxvbmcgIG9wZXJhdG9yKysoKSAgICAgICAgICAgeyByZXR1cm4gb3BlcmF0b3IrPSggMSApOyB9CisgIHVuc2lnbmVkIGxvbmcgIGNvdW50KCkgY29uc3QgICAgICAgICAgeyByZXR1cm4gX2NvdW50OyB9CisgIHVuc2lnbmVkIGxvbmcgIGV4cGVjdGVkX2NvdW50KCkgY29uc3QgeyByZXR1cm4gX2V4cGVjdGVkX2NvdW50OyB9CisKKyAgcHJpdmF0ZToKKyAgc3RkOjpvc3RyZWFtICYgICAgIG1fb3M7ICAvLyBtYXkgbm90IGJlIHByZXNlbnQgaW4gYWxsIGltcHMKKyAgY29uc3Qgc3RkOjpzdHJpbmcgIG1fczE7ICAvLyBzdHJpbmcgaXMgbW9yZSBnZW5lcmFsLCBzYWZlciB0aGFuIAorICBjb25zdCBzdGQ6OnN0cmluZyAgbV9zMjsgIC8vICBjb25zdCBjaGFyICosIGFuZCBlZmZpY2llbmN5IG9yIHNpemUgYXJlCisgIGNvbnN0IHN0ZDo6c3RyaW5nICBtX3MzOyAgLy8gIG5vdCBpc3N1ZXMKKworICB1bnNpZ25lZCBsb25nIF9jb3VudCwgX2V4cGVjdGVkX2NvdW50LCBfbmV4dF90aWNfY291bnQ7CisgIHVuc2lnbmVkIGludCAgX3RpYzsKKyAgdm9pZCBkaXNwbGF5X3RpYygpCisgIHsKKyAgICAvLyB1c2Ugb2YgZmxvYXRpbmcgcG9pbnQgZW5zdXJlcyB0aGF0IGJvdGggbGFyZ2UgYW5kIHNtYWxsIGNvdW50cworICAgIC8vIHdvcmsgY29ycmVjdGx5LiAgc3RhdGljX2Nhc3Q8PigpIGlzIGFsc28gdXNlZCBzZXZlcmFsIHBsYWNlcworICAgIC8vIHRvIHN1cHByZXNzIHNwdXJpb3VzIGNvbXBpbGVyIHdhcm5pbmdzLiAKKyAgICB1bnNpZ25lZCBpbnQgdGljc19uZWVkZWQgPQorICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PigKKyAgICAgICAgKHN0YXRpY19jYXN0PGRvdWJsZT4oX2NvdW50KS9fZXhwZWN0ZWRfY291bnQpKjUwLjAgKTsKKyAgICBkbyB7IG1fb3MgPDwgJyonIDw8IHN0ZDo6Zmx1c2g7IH0gd2hpbGUgKCArK190aWMgPCB0aWNzX25lZWRlZCApOworICAgIF9uZXh0X3RpY19jb3VudCA9IAorICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oKF90aWMvNTAuMCkqX2V4cGVjdGVkX2NvdW50KTsKKyAgICBpZiAoIF9jb3VudCA9PSBfZXhwZWN0ZWRfY291bnQgKSB7CisgICAgICBpZiAoIF90aWMgPCA1MSApIG1fb3MgPDwgJyonOworICAgICAgbV9vcyA8PCBzdGQ6OmVuZGw7CisgICAgICB9CisgIH0gLy8gZGlzcGxheV90aWMKK307CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfUFJPR1JFU1NfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2FsZ29yaXRobS9lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2FsZ29yaXRobS9lcXVhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdiNzQxZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvYWxnb3JpdGhtL2VxdWFsLmhwcApAQCAtMCwwICsxLDE5OCBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgTmVpbCBHcm92ZXMgMjAwOS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKyNpZm5kZWYgQk9PU1RfUkFOR0VfQUxHT1JJVEhNX0VRVUFMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9SQU5HRV9BTEdPUklUSE1fRVFVQUxfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2NvbmNlcHRzLmhwcD4KKyNpbmNsdWRlIDxpdGVyYXRvcj4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbAorICAgIHsKKyAgICAgICAgLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgZXF1YWxpdHkgY29tcGFyaXNvbiB0aGF0IGlzIG9wdGltaXplZCBmb3IgaXRlcmF0b3IKKyAgICAgICAgLy8gdHJhdmVyc2FsIGNhdGVnb3JpZXMgbGVzcyB0aGFuIFJhbmRvbUFjY2Vzc1RyYXZlcnNhbC4KKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMSwKKyAgICAgICAgICAgICAgICAgIGNsYXNzIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMiwKKyAgICAgICAgICAgICAgICAgIGNsYXNzIEl0ZXJhdG9yQ2F0ZWdvcnlUYWcxLAorICAgICAgICAgICAgICAgICAgY2xhc3MgSXRlcmF0b3JDYXRlZ29yeVRhZzIgPgorICAgICAgICBpbmxpbmUgYm9vbCBlcXVhbF9pbXBsKCBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgZmlyc3QxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgbGFzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMiBmaXJzdDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMiBsYXN0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3JDYXRlZ29yeVRhZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yQ2F0ZWdvcnlUYWcyICkKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGxlZnQgcmFuZ2UgdGhlbiB0aGlzIGlzCisgICAgICAgICAgICAgICAgLy8gdGhlIGVuZCBvZiB0aGUgbG9vcC4gVGhleSBhcmUgZXF1YWwgaWYgYW5kIG9ubHkgaWYgd2UgaGF2ZQorICAgICAgICAgICAgICAgIC8vIHNpbXVsdGFuZW91c2x5IHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgcmlnaHQgcmFuZ2UuCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0MSA9PSBsYXN0MSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0MiA9PSBsYXN0MjsKKworICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSByaWdodCByYW5nZSBhdCB0aGlzIGxpbmUKKyAgICAgICAgICAgICAgICAvLyBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmlnaHQgcmFuZ2UgaXMgc2hvcnRlciB0aGFuIHRoZSBsZWZ0CisgICAgICAgICAgICAgICAgLy8gYW5kIGhlbmNlIHRoZSByZXN1bHQgaXMgZmFsc2UuCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0MiA9PSBsYXN0MikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gY29udGludWUgbG9vcGluZyBpZiBhbmQgb25seSBpZiB0aGUgdmFsdWVzIGFyZSBlcXVhbAorICAgICAgICAgICAgICAgIGlmICgqZmlyc3QxICE9ICpmaXJzdDIpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgKytmaXJzdDE7CisgICAgICAgICAgICAgICAgKytmaXJzdDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlYWNoaW5nIHRoaXMgbGluZSBpbiB0aGUgYWxnb3JpdGhtIGluZGljYXRlcyB0aGF0IGEgdmFsdWUKKyAgICAgICAgICAgIC8vIGluZXF1YWxpdHkgaGFzIGJlZW4gZGV0ZWN0ZWQuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IxLAorICAgICAgICAgICAgICAgICAgY2xhc3MgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyLAorICAgICAgICAgICAgICAgICAgY2xhc3MgSXRlcmF0b3JDYXRlZ29yeVRhZzEsCisgICAgICAgICAgICAgICAgICBjbGFzcyBJdGVyYXRvckNhdGVnb3J5VGFnMiwKKyAgICAgICAgICAgICAgICAgIGNsYXNzIEJpbmFyeVByZWRpY2F0ZSA+CisgICAgICAgIGlubGluZSBib29sIGVxdWFsX2ltcGwoIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMSBmaXJzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMSBsYXN0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyIGZpcnN0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyIGxhc3QyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5hcnlQcmVkaWNhdGUgICAgICAgICAgICAgICAgICAgICAgcHJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3JDYXRlZ29yeVRhZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yQ2F0ZWdvcnlUYWcyICkKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGxlZnQgcmFuZ2UgdGhlbiB0aGlzIGlzCisgICAgICAgICAgICAgICAgLy8gdGhlIGVuZCBvZiB0aGUgbG9vcC4gVGhleSBhcmUgZXF1YWwgaWYgYW5kIG9ubHkgaWYgd2UgaGF2ZQorICAgICAgICAgICAgICAgIC8vIHNpbXVsdGFuZW91c2x5IHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgcmlnaHQgcmFuZ2UuCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0MSA9PSBsYXN0MSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0MiA9PSBsYXN0MjsKKworICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSByaWdodCByYW5nZSBhdCB0aGlzIGxpbmUKKyAgICAgICAgICAgICAgICAvLyBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmlnaHQgcmFuZ2UgaXMgc2hvcnRlciB0aGFuIHRoZSBsZWZ0CisgICAgICAgICAgICAgICAgLy8gYW5kIGhlbmNlIHRoZSByZXN1bHQgaXMgZmFsc2UuCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0MiA9PSBsYXN0MikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gY29udGludWUgbG9vcGluZyBpZiBhbmQgb25seSBpZiB0aGUgdmFsdWVzIGFyZSBlcXVhbAorICAgICAgICAgICAgICAgIGlmICghcHJlZCgqZmlyc3QxLCAqZmlyc3QyKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICArK2ZpcnN0MTsKKyAgICAgICAgICAgICAgICArK2ZpcnN0MjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVhY2hpbmcgdGhpcyBsaW5lIGluIHRoZSBhbGdvcml0aG0gaW5kaWNhdGVzIHRoYXQgYSB2YWx1ZQorICAgICAgICAgICAgLy8gaW5lcXVhbGl0eSBoYXMgYmVlbiBkZXRlY3RlZC4KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFuIGltcGxlbWVudGF0aW9uIG9mIGVxdWFsaXR5IGNvbXBhcmlzb24gdGhhdCBpcyBvcHRpbWl6ZWQgZm9yCisgICAgICAgIC8vIHJhbmRvbSBhY2Nlc3MgaXRlcmF0b3JzLgorICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUmFuZG9tQWNjZXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEsCisgICAgICAgICAgICAgICAgICBjbGFzcyBSYW5kb21BY2Nlc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMiA+CisgICAgICAgIGlubGluZSBib29sIGVxdWFsX2ltcGwoIFJhbmRvbUFjY2Vzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IxIGZpcnN0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZG9tQWNjZXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgbGFzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhbmRvbUFjY2Vzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyIGZpcnN0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZG9tQWNjZXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjIgbGFzdDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKChsYXN0MSAtIGZpcnN0MSkgPT0gKGxhc3QyIC0gZmlyc3QyKSkKKyAgICAgICAgICAgICAgICAmJiBzdGQ6OmVxdWFsKGZpcnN0MSwgbGFzdDEsIGZpcnN0Mik7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUmFuZG9tQWNjZXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEsCisgICAgICAgICAgICAgICAgICBjbGFzcyBSYW5kb21BY2Nlc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMiwKKyAgICAgICAgICAgICAgICAgIGNsYXNzIEJpbmFyeVByZWRpY2F0ZSA+CisgICAgICAgIGlubGluZSBib29sIGVxdWFsX2ltcGwoIFJhbmRvbUFjY2Vzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IxIGZpcnN0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZG9tQWNjZXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgbGFzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhbmRvbUFjY2Vzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyIGZpcnN0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZG9tQWNjZXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjIgbGFzdDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbmFyeVByZWRpY2F0ZSAgICAgICAgICAgICAgICAgICAgICAgIHByZWQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKChsYXN0MSAtIGZpcnN0MSkgPT0gKGxhc3QyIC0gZmlyc3QyKSkKKyAgICAgICAgICAgICAgICAmJiBzdGQ6OmVxdWFsKGZpcnN0MSwgbGFzdDEsIGZpcnN0MiwgcHJlZCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IxLAorICAgICAgICAgICAgICAgICAgY2xhc3MgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyID4KKyAgICAgICAgaW5saW5lIGJvb2wgZXF1YWwoIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMSBmaXJzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgbGFzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjIgZmlyc3QyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyIGxhc3QyICkKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBzdGQ6Oml0ZXJhdG9yX3RyYWl0czwgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IxID46Oml0ZXJhdG9yX2NhdGVnb3J5IHRhZzE7CisgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPCBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjIgPjo6aXRlcmF0b3JfY2F0ZWdvcnkgdGFnMjsKKworICAgICAgICAgICAgcmV0dXJuIGVxdWFsX2ltcGwoZmlyc3QxLCBsYXN0MSwgZmlyc3QyLCBsYXN0MiwgdGFnMSwgdGFnMik7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IxLAorICAgICAgICAgICAgICAgICAgY2xhc3MgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyLAorICAgICAgICAgICAgICAgICAgY2xhc3MgQmluYXJ5UHJlZGljYXRlID4KKyAgICAgICAgaW5saW5lIGJvb2wgZXF1YWwoIFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMSBmaXJzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgbGFzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjIgZmlyc3QyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU2luZ2xlUGFzc1RyYXZlcnNhbFJlYWRhYmxlSXRlcmF0b3IyIGxhc3QyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQmluYXJ5UHJlZGljYXRlICAgICAgICAgICAgICAgICAgICAgIHByZWQgKQorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHN0ZDo6aXRlcmF0b3JfdHJhaXRzPCBTaW5nbGVQYXNzVHJhdmVyc2FsUmVhZGFibGVJdGVyYXRvcjEgPjo6aXRlcmF0b3JfY2F0ZWdvcnkgdGFnMTsKKyAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgc3RkOjppdGVyYXRvcl90cmFpdHM8IFNpbmdsZVBhc3NUcmF2ZXJzYWxSZWFkYWJsZUl0ZXJhdG9yMiA+OjppdGVyYXRvcl9jYXRlZ29yeSB0YWcyOworCisgICAgICAgICAgICByZXR1cm4gZXF1YWxfaW1wbChmaXJzdDEsIGxhc3QxLCBmaXJzdDIsIGxhc3QyLCBwcmVkLCB0YWcxLCB0YWcyKTsKKyAgICAgICAgfQorCisgICAgfSAvLyBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisKKyAgICBuYW1lc3BhY2UgcmFuZ2UKKyAgICB7CisKKyAgICAgICAgLy8vIFxicmllZiB0ZW1wbGF0ZSBmdW5jdGlvbiBlcXVhbAorICAgICAgICAvLy8KKyAgICAgICAgLy8vIHJhbmdlLWJhc2VkIHZlcnNpb24gb2YgdGhlIGVxdWFsIHN0ZCBhbGdvcml0aG0KKyAgICAgICAgLy8vCisgICAgICAgIC8vLyBccHJlIFNpbmdsZVBhc3NSYW5nZTEgaXMgYSBtb2RlbCBvZiB0aGUgU2luZ2xlUGFzc1JhbmdlQ29uY2VwdAorICAgICAgICAvLy8gXHByZSBTaW5nbGVQYXNzUmFuZ2UyIGlzIGEgbW9kZWwgb2YgdGhlIFNpbmdsZVBhc3NSYW5nZUNvbmNlcHQKKyAgICAgICAgLy8vIFxwcmUgQmluYXJ5UHJlZGljYXRlIGlzIGEgbW9kZWwgb2YgdGhlIEJpbmFyeVByZWRpY2F0ZUNvbmNlcHQKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFNpbmdsZVBhc3NSYW5nZTEsIGNsYXNzIFNpbmdsZVBhc3NSYW5nZTIgPgorICAgICAgICBpbmxpbmUgYm9vbCBlcXVhbCggY29uc3QgU2luZ2xlUGFzc1JhbmdlMSYgcm5nMSwgY29uc3QgU2luZ2xlUGFzc1JhbmdlMiYgcm5nMiApCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKCggU2luZ2xlUGFzc1JhbmdlQ29uY2VwdDxjb25zdCBTaW5nbGVQYXNzUmFuZ2UxPiApKTsKKyAgICAgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKCggU2luZ2xlUGFzc1JhbmdlQ29uY2VwdDxjb25zdCBTaW5nbGVQYXNzUmFuZ2UyPiApKTsKKworICAgICAgICAgICAgcmV0dXJuIDo6bmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6ZXF1YWwoCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6YmVnaW4ocm5nMSksIDo6bmRuYm9vc3Q6OmVuZChybmcxKSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpiZWdpbihybmcyKSwgOjpuZG5ib29zdDo6ZW5kKHJuZzIpICk7CisgICAgICAgIH0KKworICAgICAgICAvLy8gXG92ZXJsb2FkCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBTaW5nbGVQYXNzUmFuZ2UxLCBjbGFzcyBTaW5nbGVQYXNzUmFuZ2UyLCBjbGFzcyBCaW5hcnlQcmVkaWNhdGUgPgorICAgICAgICBpbmxpbmUgYm9vbCBlcXVhbCggY29uc3QgU2luZ2xlUGFzc1JhbmdlMSYgcm5nMSwgY29uc3QgU2luZ2xlUGFzc1JhbmdlMiYgcm5nMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbmFyeVByZWRpY2F0ZSBwcmVkICkKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfUkFOR0VfQ09OQ0VQVF9BU1NFUlQoKCBTaW5nbGVQYXNzUmFuZ2VDb25jZXB0PGNvbnN0IFNpbmdsZVBhc3NSYW5nZTE+ICkpOworICAgICAgICAgICAgQk9PU1RfUkFOR0VfQ09OQ0VQVF9BU1NFUlQoKCBTaW5nbGVQYXNzUmFuZ2VDb25jZXB0PGNvbnN0IFNpbmdsZVBhc3NSYW5nZTI+ICkpOworCisgICAgICAgICAgICByZXR1cm4gOjpuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjplcXVhbCgKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpiZWdpbihybmcxKSwgOjpuZG5ib29zdDo6ZW5kKHJuZzEpLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmJlZ2luKHJuZzIpLCA6Om5kbmJvb3N0OjplbmQocm5nMiksCisgICAgICAgICAgICAgICAgcHJlZCk7CisgICAgICAgIH0KKworICAgIH0gLy8gbmFtZXNwYWNlIHJhbmdlCisgICAgdXNpbmcgOjpuZG5ib29zdDo6cmFuZ2U6OmVxdWFsOworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIGluY2x1ZGUgZ3VhcmQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvYXNfbGl0ZXJhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2FzX2xpdGVyYWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYmFiZDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2FzX2xpdGVyYWwuaHBwCkBAIC0wLDAgKzEsMTI3IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDYuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfQVNfTElURVJBTF9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfQVNfTElURVJBTF9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpZmRlZiBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9hc19saXRlcmFsLmhwcD4KKyNlbHNlCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3N0cl90eXBlcy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxjc3RyaW5nPgorI2lmbmRlZiBCT09TVF9OT19DV0NIQVIKKyNpbmNsdWRlIDxjd2NoYXI+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbAorICAgIHsKKyAgICAgICAgaW5saW5lIHN0ZDo6c2l6ZV90IGxlbmd0aCggY29uc3QgY2hhciogcyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdHJsZW4oIHMgKTsKKyAgICAgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX0NXQ0hBUgorICAgICAgICBpbmxpbmUgc3RkOjpzaXplX3QgbGVuZ3RoKCBjb25zdCB3Y2hhcl90KiBzICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHdjc2xlbiggcyApOworICAgICAgICB9CisjZW5kaWYKKworICAgICAgICAvLworICAgICAgICAvLyBSZW1hcms6IHRoZSBjb21waWxlciBjYW5ub3QgY2hvb3NlIGJldHdlZW4gVCogYW5kIFRbc3pdCisgICAgICAgIC8vIG92ZXJsb2Fkcywgc28gd2UgbXVzdCBwdXQgdGhlIFQqIGludGVybmFsIHRvIHRoZQorICAgICAgICAvLyB1bmNvbnN0cmFpbmVkIHZlcnNpb24uCisgICAgICAgIC8vCisKKyAgICAgICAgaW5saW5lIGJvb2wgaXNfY2hhcl9wdHIoIGNoYXIqICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpbmxpbmUgYm9vbCBpc19jaGFyX3B0ciggY29uc3QgY2hhciogKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX0NXQ0hBUgorICAgICAgICBpbmxpbmUgYm9vbCBpc19jaGFyX3B0ciggd2NoYXJfdCogKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlubGluZSBib29sIGlzX2NoYXJfcHRyKCBjb25zdCB3Y2hhcl90KiApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYKKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+CisgICAgICAgIGlubGluZSBsb25nIGlzX2NoYXJfcHRyKCBjb25zdCBUJiAvKiByICovICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDBMOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFQgPgorICAgICAgICBpbmxpbmUgaXRlcmF0b3JfcmFuZ2U8VCo+CisgICAgICAgIG1ha2VfcmFuZ2UoIFQqIGNvbnN0IHIsIGJvb2wgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2U8VCo+KCByLCByICsgbGVuZ3RoKHIpICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+CisgICAgICAgIGlubGluZSBpdGVyYXRvcl9yYW5nZTxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPFQ+Ojp0eXBlPgorICAgICAgICBtYWtlX3JhbmdlKCBUJiByLCBsb25nICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKCByICk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHRlbXBsYXRlPCBjbGFzcyBSYW5nZSA+CisgICAgaW5saW5lIGl0ZXJhdG9yX3JhbmdlPEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8UmFuZ2U+Ojp0eXBlPgorICAgIGFzX2xpdGVyYWwoIFJhbmdlJiByICkKKyAgICB7CisgICAgICAgIHJldHVybiByYW5nZV9kZXRhaWw6Om1ha2VfcmFuZ2UoIHIsIHJhbmdlX2RldGFpbDo6aXNfY2hhcl9wdHIocikgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgUmFuZ2UgPgorICAgIGlubGluZSBpdGVyYXRvcl9yYW5nZTxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPGNvbnN0IFJhbmdlPjo6dHlwZT4KKyAgICBhc19saXRlcmFsKCBjb25zdCBSYW5nZSYgciApCisgICAgeworICAgICAgICByZXR1cm4gcmFuZ2VfZGV0YWlsOjptYWtlX3JhbmdlKCByLCByYW5nZV9kZXRhaWw6OmlzX2NoYXJfcHRyKHIpICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8IGNsYXNzIENoYXIsIHN0ZDo6c2l6ZV90IHN6ID4KKyAgICBpbmxpbmUgaXRlcmF0b3JfcmFuZ2U8Q2hhcio+IGFzX2xpdGVyYWwoIENoYXIgKCZhcnIpW3N6XSApCisgICAgeworICAgICAgICByZXR1cm4gcmFuZ2VfZGV0YWlsOjptYWtlX3JhbmdlKCBhcnIsIHJhbmdlX2RldGFpbDo6aXNfY2hhcl9wdHIoYXJyKSApOworICAgIH0KKworICAgIHRlbXBsYXRlPCBjbGFzcyBDaGFyLCBzdGQ6OnNpemVfdCBzeiA+CisgICAgaW5saW5lIGl0ZXJhdG9yX3JhbmdlPGNvbnN0IENoYXIqPiBhc19saXRlcmFsKCBjb25zdCBDaGFyICgmYXJyKVtzel0gKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJhbmdlX2RldGFpbDo6bWFrZV9yYW5nZSggYXJyLCByYW5nZV9kZXRhaWw6OmlzX2NoYXJfcHRyKGFycikgKTsKKyAgICB9Cit9CisKKyNlbmRpZiAvLyBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9iZWdpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE0MzI2MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwCkBAIC0wLDAgKzEsMTQzIEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9CRUdJTl9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfQkVHSU5fSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKworI2lmZGVmIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2JlZ2luLmhwcD4KKyNlbHNlCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAmJiBcCisgICAgIUJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorICAgIC8qKi8KK25hbWVzcGFjZSByYW5nZV9kZXRhaWwKK3sKKyNlbmRpZgorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIHByaW1hcnkgdGVtcGxhdGUKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgaW5saW5lIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Qz46OnR5cGUKKyAgICByYW5nZV9iZWdpbiggQyYgYyApCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBJZiB5b3UgZ2V0IGEgY29tcGlsZS1lcnJvciBoZXJlLCBpdCBpcyBtb3N0IGxpa2VseSBiZWNhdXNlCisgICAgICAgIC8vIHlvdSBoYXZlIG5vdCBpbXBsZW1lbnRlZCByYW5nZV9iZWdpbigpIHByb3Blcmx5IGluCisgICAgICAgIC8vIHRoZSBuYW1lc3BhY2Ugb2YgQworICAgICAgICAvLworICAgICAgICByZXR1cm4gYy5iZWdpbigpOworICAgIH0KKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBwYWlyCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4KKyAgICBpbmxpbmUgSXRlcmF0b3IgcmFuZ2VfYmVnaW4oIGNvbnN0IHN0ZDo6cGFpcjxJdGVyYXRvcixJdGVyYXRvcj4mIHAgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHAuZmlyc3Q7CisgICAgfQorCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4KKyAgICBpbmxpbmUgSXRlcmF0b3IgcmFuZ2VfYmVnaW4oIHN0ZDo6cGFpcjxJdGVyYXRvcixJdGVyYXRvcj4mIHAgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHAuZmlyc3Q7CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIGFycmF5CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLy8KKyAgICAvLyBNYXkgdGhpcyBiZSBkaXNjYXJkZWQ/IE9yIGlzIGl0IG5lZWRlZCBmb3IgYmFkIGNvbXBpbGVycz8KKyAgICAvLworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBzeiA+CisgICAgaW5saW5lIGNvbnN0IFQqIHJhbmdlX2JlZ2luKCBjb25zdCBUICgmYSlbc3pdICkKKyAgICB7CisgICAgICAgIHJldHVybiBhOworICAgIH0KKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBzeiA+CisgICAgaW5saW5lIFQqIHJhbmdlX2JlZ2luKCBUICgmYSlbc3pdICkKKyAgICB7CisgICAgICAgIHJldHVybiBhOworICAgIH0KKworCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAmJiBcCisgICAgIUJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorICAgIC8qKi8KK30gLy8gbmFtZXNwYWNlICdyYW5nZV9kZXRhaWwnCisjZW5kaWYKKworLy8gVXNlIGEgQURMIG5hbWVzcGFjZSBiYXJyaWVyIHRvIGF2b2lkIGFtYmlndWl0eSB3aXRoIG90aGVyIHVucXVhbGlmaWVkCisvLyBjYWxscy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHdpdGggQysrMHggZW5jb3VyYWdpbmcKKy8vIHVucXVhbGlmaWVkIGNhbGxzIHRvIGJlZ2luL2VuZC4KK25hbWVzcGFjZSByYW5nZV9hZGxfYmFycmllcgoreworCit0ZW1wbGF0ZTwgY2xhc3MgVCA+CitpbmxpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxUPjo6dHlwZSBiZWdpbiggVCYgciApCit7CisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAmJiBcCisgICAgIUJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorICAgIC8qKi8KKyAgICB1c2luZyBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsOworI2VuZGlmCisgICAgcmV0dXJuIHJhbmdlX2JlZ2luKCByICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBUID4KK2lubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPGNvbnN0IFQ+Ojp0eXBlIGJlZ2luKCBjb25zdCBUJiByICkKK3sKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU2NCkpICYmIFwKKyAgICAhQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKSBcCisgICAgLyoqLworICAgIHVzaW5nIG5hbWVzcGFjZSByYW5nZV9kZXRhaWw7CisjZW5kaWYKKyAgICByZXR1cm4gcmFuZ2VfYmVnaW4oIHIgKTsKK30KKworICAgIH0gLy8gbmFtZXNwYWNlIHJhbmdlX2FkbF9iYXJyaWVyCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2FkbF9iYXJyaWVyCisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+CisgICAgICAgIGlubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPGNvbnN0IFQ+Ojp0eXBlCisgICAgICAgIGNvbnN0X2JlZ2luKCBjb25zdCBUJiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpyYW5nZV9hZGxfYmFycmllcjo6YmVnaW4oIHIgKTsKKyAgICAgICAgfQorICAgIH0gLy8gbmFtZXNwYWNlIHJhbmdlX2FkbF9iYXJyaWVyCisKKyAgICB1c2luZyBuYW1lc3BhY2UgcmFuZ2VfYWRsX2JhcnJpZXI7Cit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9jb25jZXB0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2NvbmNlcHRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGQ0NzkwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9jb25jZXB0cy5ocHAKQEAgLTAsMCArMSwzNjYgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkgY29uY2VwdCBjaGVja3MKKy8vCisvLyAgQ29weXJpZ2h0IE5laWwgR3JvdmVzIDIwMDkuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24KKy8vICBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgQ29weXJpZ2h0IERhbmllbCBXYWxrZXIgMjAwNi4gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbgorLy8gIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfQ09OQ0VQVFNfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX0NPTkNFUFRTX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uY2VwdF9jaGVjay5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfY29uY2VwdHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS92YWx1ZV90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvbWlzY19jb25jZXB0LmhwcD4KKworLyohCisgKiBcZmlsZQorICogXGJyaWVmIENvbmNlcHQgY2hlY2tzIGZvciB0aGUgQm9vc3QgUmFuZ2UgbGlicmFyeS4KKyAqCisgKiBUaGUgc3RydWN0dXJlcyBpbiB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUKKyAqIEJvb3N0IENvbmNlcHQgQ2hlY2sgbGlicmFyeSB0byBpbnN1cmUgdGhhdCB0aGUgdHlwZSBvZiBhIGZ1bmN0aW9uCisgKiBwYXJhbWV0ZXIgaXMgY29tcGF0aWJsZSB3aXRoIGEgcmFuZ2UgY29uY2VwdC4gSWYgbm90LCBhIG1lYW5pbmdmdWwKKyAqIGNvbXBpbGUgdGltZSBlcnJvciBpcyBnZW5lcmF0ZWQuIENoZWNrcyBhcmUgcHJvdmlkZWQgZm9yIHRoZSByYW5nZQorICogY29uY2VwdHMgcmVsYXRlZCB0byBpdGVyYXRvciB0cmF2ZXJzYWwgY2F0ZWdvcmllcy4gRm9yIGV4YW1wbGUsIHRoZQorICogZm9sbG93aW5nIGxpbmUgY2hlY2tzIHRoYXQgdGhlIHR5cGUgVCBtb2RlbHMgdGhlIEZvcndhcmRSYW5nZQorICogY29uY2VwdC4KKyAqCisgKiBcY29kZQorICogQk9PU1RfQ09OQ0VQVF9BU1NFUlQoKEZvcndhcmRSYW5nZUNvbmNlcHQ8VD4pKTsKKyAqIFxlbmRjb2RlCisgKgorICogQSBkaWZmZXJlbnQgY29uY2VwdCBjaGVjayBpcyByZXF1aXJlZCB0byBlbnN1cmUgd3JpdGVhYmxlIHZhbHVlCisgKiBhY2Nlc3MuIEZvciBleGFtcGxlIHRvIGNoZWNrIGZvciBhIEZvcndhcmRSYW5nZSB0aGF0IGNhbiBiZSB3cml0dGVuCisgKiB0bywgdGhlIGZvbGxvd2luZyBjb2RlIGlzIHJlcXVpcmVkLgorICoKKyAqIFxjb2RlCisgKiBCT09TVF9DT05DRVBUX0FTU0VSVCgoV3JpdGVhYmxlRm9yd2FyZFJhbmdlQ29uY2VwdDxUPikpOworICogXGVuZGNvZGUKKyAqCisgKiBcc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvZG9jL3JhbmdlLmh0bWwgZm9yIGRldGFpbHMKKyAqIGFib3V0IHJhbmdlIGNvbmNlcHRzLgorICogXHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2l0ZXJhdG9yL2RvYy9pdGVyYXRvcl9jb25jZXB0cy5odG1sCisgKiBmb3IgZGV0YWlscyBhYm91dCBpdGVyYXRvciBjb25jZXB0cy4KKyAqIFxzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25jZXB0X2NoZWNrL2NvbmNlcHRfY2hlY2suaHRtIGZvcgorICogZGV0YWlscyBhYm91dCBjb25jZXB0IGNoZWNrcy4KKyAqLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbCB7CisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUCisKKy8vIExpc3QgYnJva2VuIGNvbXBpbGVyIHZlcnNpb25zIGhlcmU6CisgICAgI2lmZGVmIF9fR05VQ19fCisgICAgICAgIC8vIEdOVUMgNC4yIGhhcyBzdHJhbmdlIGlzc3VlcyBjb3JyZWN0bHkgZGV0ZWN0aW5nIGNvbXBsaWFuY2Ugd2l0aCB0aGUgQ29uY2VwdHMKKyAgICAgICAgLy8gaGVuY2UgdGhlIGxlYXN0IGRpc3J1cHRpdmUgYXBwcm9hY2ggaXMgdG8gdHVybi1vZmYgdGhlIGNvbmNlcHQgY2hlY2tpbmcgZm9yCisgICAgICAgIC8vIHRoaXMgdmVyc2lvbiBvZiB0aGUgY29tcGlsZXIuCisgICAgICAgICNpZiBfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID09IDIKKyAgICAgICAgICAgICNkZWZpbmUgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUIDAKKyAgICAgICAgI2VuZGlmCisgICAgI2VuZGlmCisKKyAgICAjaWZkZWYgX19CT1JMQU5EQ19fCisgICAgICAgICNkZWZpbmUgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUIDAKKyAgICAjZW5kaWYKKworICAgICNpZmRlZiBfX1BBVEhDQ19fCisgICAgICAgICNkZWZpbmUgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUIDAKKyAgICAjZW5kaWYKKworLy8gRGVmYXVsdCB0byB1c2luZyB0aGUgY29uY2VwdCBhc3NlcnRzIHVubGVzcyB3ZSBoYXZlIGRlZmluZWQgaXQgb2ZmCisvLyBkdXJpbmcgdGhlIHNlYXJjaCBmb3IgYmxhY2sgbGlzdGVkIGNvbXBpbGVycy4KKyAgICAjaWZuZGVmIEJPT1NUX1JBTkdFX0VOQUJMRV9DT05DRVBUX0FTU0VSVAorICAgICAgICAjZGVmaW5lIEJPT1NUX1JBTkdFX0VOQUJMRV9DT05DRVBUX0FTU0VSVCAxCisgICAgI2VuZGlmCisKKyNlbmRpZgorCisjaWYgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUCisgICAgI2RlZmluZSBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCggeCApIEJPT1NUX0NPTkNFUFRfQVNTRVJUKCB4ICkKKyNlbHNlCisgICAgI2RlZmluZSBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCggeCApCisjZW5kaWYKKworICAgICAgICAvLyBSYXRpb25hbGUgZm9yIHRoZSBpbmNsdXNpb24gb2YgcmVkZWZpbmVkIGl0ZXJhdG9yIGNvbmNlcHQKKyAgICAgICAgLy8gY2xhc3NlczoKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGhlIFJhbmdlIGFsZ29yaXRobXMgb2Z0ZW4gZG8gbm90IHJlcXVpcmUgdGhhdCB0aGUgaXRlcmF0b3JzIGFyZQorICAgICAgICAvLyBBc3NpZ25hYmxlIG9yIGRlZmF1bHQgY29uc3RydWN0YWJsZSwgYnV0IHRoZSBjb3JyZWN0IHN0YW5kYXJkCisgICAgICAgIC8vIGNvbmZvcm1hbnQgaXRlcmF0b3JzIGRvIHJlcXVpcmUgdGhlIGl0ZXJhdG9ycyB0byBiZSBhIG1vZGVsIG9mIHRoZQorICAgICAgICAvLyBBc3NpZ25hYmxlIGNvbmNlcHQuCisgICAgICAgIC8vIEl0ZXJhdG9ycyB0aGF0IGNvbnRhaW5zIGEgZnVuY3RvciB0aGF0IGlzIG5vdCBhc3NpZ25hYmxlIHRoZXJlZm9yZQorICAgICAgICAvLyBhcmUgbm90IGNvcnJlY3QgbW9kZWxzIG9mIHRoZSBzdGFuZGFyZCBpdGVyYXRvciBjb25jZXB0cywKKyAgICAgICAgLy8gZGVzcGl0ZSBiZWluZyBhZGVxdWF0ZSBmb3IgbW9zdCBhbGdvcml0aG1zLiBBbiBleGFtcGxlIG9mIHRoaXMKKyAgICAgICAgLy8gdXNlIGNhc2UgaXMgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBuZG5ib29zdDo6YWRhcHRvcnM6OmZpbHRlcmVkCisgICAgICAgIC8vIGNsYXNzIHdpdGggYSBuZG5ib29zdDo6bGFtYmRhOjpiaW5kIGdlbmVyYXRlZCBmdW5jdG9yLgorICAgICAgICAvLyBVbHRpbWF0ZWx5IG1vZGVsaW5nIHRoZSByYW5nZSBjb25jZXB0cyB1c2luZyBjb21wb3NpdGlvbgorICAgICAgICAvLyB3aXRoIHRoZSBCb29zdC5JdGVyYXRvciBjb25jZXB0cyB3b3VsZCByZW5kZXIgdGhlIGxpYnJhcnkKKyAgICAgICAgLy8gaW5jb21wYXRpYmxlIHdpdGggbWFueSBjb21tb24gQm9vc3QuTGFtYmRhIGV4cHJlc3Npb25zLgorICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyYXRvcj4KKyAgICAgICAgc3RydWN0IEluY3JlbWVudGFibGVJdGVyYXRvckNvbmNlcHQgOiBDb3B5Q29uc3RydWN0aWJsZTxJdGVyYXRvcj4KKyAgICAgICAgeworI2lmIEJPT1NUX1JBTkdFX0VOQUJMRV9DT05DRVBUX0FTU0VSVAorICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGl0ZXJhdG9yX3RyYXZlcnNhbDxJdGVyYXRvcj46OnR5cGUgdHJhdmVyc2FsX2NhdGVnb3J5OworCisgICAgICAgICAgICBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICAgQ29udmVydGlibGU8CisgICAgICAgICAgICAgICAgICAgIHRyYXZlcnNhbF9jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50YWJsZV90cmF2ZXJzYWxfdGFnCisgICAgICAgICAgICAgICAgPikpOworCisgICAgICAgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEluY3JlbWVudGFibGVJdGVyYXRvckNvbmNlcHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICh2b2lkKWkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIEl0ZXJhdG9yIGk7CisjZW5kaWYKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyYXRvcj4KKyAgICAgICAgc3RydWN0IFNpbmdsZVBhc3NJdGVyYXRvckNvbmNlcHQKKyAgICAgICAgICAgIDogSW5jcmVtZW50YWJsZUl0ZXJhdG9yQ29uY2VwdDxJdGVyYXRvcj4KKyAgICAgICAgICAgICwgRXF1YWxpdHlDb21wYXJhYmxlPEl0ZXJhdG9yPgorICAgICAgICB7CisjaWYgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUCisgICAgICAgICAgICBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICAgQ29udmVydGlibGU8CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgU2luZ2xlUGFzc0l0ZXJhdG9yQ29uY2VwdDo6dHJhdmVyc2FsX2NhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICBzaW5nbGVfcGFzc190cmF2ZXJzYWxfdGFnCisgICAgICAgICAgICAgICAgPikpOworCisgICAgICAgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKFNpbmdsZVBhc3NJdGVyYXRvckNvbmNlcHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaTIoKytpKTsKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGkyKTsKKworICAgICAgICAgICAgICAgIC8vIGRlbGliZXJhdGVseSB3ZSBhcmUgbG9vc2Ugd2l0aCB0aGUgcG9zdGZpeCB2ZXJzaW9uIGZvciB0aGUgc2luZ2xlIHBhc3MKKyAgICAgICAgICAgICAgICAvLyBpdGVyYXRvciBkdWUgdG8gdGhlIGNvbW1vbmx5IHBvb3IgYWRoZXJlbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9uIG1lYW5zIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBtYW55IGFsZ29yaXRobXMgd291bGQgYmUgdW51c2FibGUsIHdoZXJlYXMgYWN0dWFsbHkgd2l0aG91dCB0aGUgY2hlY2sgdGhleQorICAgICAgICAgICAgICAgIC8vIHdvcmsKKyAgICAgICAgICAgICAgICAodm9pZCkoaSsrKTsKKworICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6cmVmZXJlbmNlIHIxKCppKTsKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKHIxKTsKKworICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6cmVmZXJlbmNlIHIyKCooKytpKSk7CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Omlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhyMik7CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBJdGVyYXRvciBpOworI2VuZGlmCisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgSXRlcmF0b3I+CisgICAgICAgIHN0cnVjdCBGb3J3YXJkSXRlcmF0b3JDb25jZXB0CisgICAgICAgICAgICA6IFNpbmdsZVBhc3NJdGVyYXRvckNvbmNlcHQ8SXRlcmF0b3I+CisgICAgICAgICAgICAsIERlZmF1bHRDb25zdHJ1Y3RpYmxlPEl0ZXJhdG9yPgorICAgICAgICB7CisjaWYgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUCisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmRldGFpbDo6aXRlcmF0b3JfdHJhaXRzPEl0ZXJhdG9yPjo6ZGlmZmVyZW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKworICAgICAgICAgICAgQk9PU1RfTVBMX0FTU0VSVCgoaXNfaW50ZWdyYWw8ZGlmZmVyZW5jZV90eXBlPikpOworICAgICAgICAgICAgQk9PU1RfTVBMX0FTU0VSVF9SRUxBVElPTihzdGQ6Om51bWVyaWNfbGltaXRzPGRpZmZlcmVuY2VfdHlwZT46OmlzX3NpZ25lZCwgPT0sIHRydWUpOworCisgICAgICAgICAgICBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCgoCisgICAgICAgICAgICAgICAgQ29udmVydGlibGU8CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgRm9yd2FyZEl0ZXJhdG9yQ29uY2VwdDo6dHJhdmVyc2FsX2NhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICBmb3J3YXJkX3RyYXZlcnNhbF90YWcKKyAgICAgICAgICAgICAgICA+KSk7CisKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoRm9yd2FyZEl0ZXJhdG9yQ29uY2VwdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGFib3ZlIG5vdGUgaW4gdGhlIFNpbmdsZVBhc3NJdGVyYXRvckNvbmNlcHQgYWJvdXQgdGhlIGhhbmRsaW5nIG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIHBvc3RmaXggaW5jcmVtZW50LiBTaW5jZSB3aXRoIGZvcndhcmQgYW5kIGJldHRlciBpdGVyYXRvcnMgdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICAgICAgICAgIC8vIGZvciBhIHByb3h5LCB3ZSBjYW4gc2Vuc2libHkgcmVxdWlyZSB0aGF0IHRoZSBkZXJlZmVyZW5jZSByZXN1bHQKKyAgICAgICAgICAgICAgICAvLyBpcyBjb252ZXJ0aWJsZSB0byByZWZlcmVuY2UuCisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaTIoaSsrKTsKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGkyKTsKKyAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIG5kbmJvb3N0OjpkZXRhaWw6Oml0ZXJhdG9yX3RyYWl0czxJdGVyYXRvcj46OnJlZmVyZW5jZSByKCooaSsrKSk7CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Omlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIEl0ZXJhdG9yIGk7CisjZW5kaWYKKyAgICAgICAgIH07CisKKyAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEl0ZXJhdG9yPgorICAgICAgICAgc3RydWN0IEJpZGlyZWN0aW9uYWxJdGVyYXRvckNvbmNlcHQKKyAgICAgICAgICAgICA6IEZvcndhcmRJdGVyYXRvckNvbmNlcHQ8SXRlcmF0b3I+CisgICAgICAgICB7CisgI2lmIEJPT1NUX1JBTkdFX0VOQUJMRV9DT05DRVBUX0FTU0VSVAorICAgICAgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgICAgQ29udmVydGlibGU8CisgICAgICAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEJpZGlyZWN0aW9uYWxJdGVyYXRvckNvbmNlcHQ6OnRyYXZlcnNhbF9jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgIGJpZGlyZWN0aW9uYWxfdHJhdmVyc2FsX3RhZworICAgICAgICAgICAgICAgICA+KSk7CisKKyAgICAgICAgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKEJpZGlyZWN0aW9uYWxJdGVyYXRvckNvbmNlcHQpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAtLWk7CisgICAgICAgICAgICAgICAgICh2b2lkKWktLTsKKyAgICAgICAgICAgICB9CisgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgIEl0ZXJhdG9yIGk7CisgI2VuZGlmCisgICAgICAgICB9OworCisgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyYXRvcj4KKyAgICAgICAgIHN0cnVjdCBSYW5kb21BY2Nlc3NJdGVyYXRvckNvbmNlcHQKKyAgICAgICAgICAgICA6IEJpZGlyZWN0aW9uYWxJdGVyYXRvckNvbmNlcHQ8SXRlcmF0b3I+CisgICAgICAgICB7CisgI2lmIEJPT1NUX1JBTkdFX0VOQUJMRV9DT05DRVBUX0FTU0VSVAorICAgICAgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKCgKKyAgICAgICAgICAgICAgICAgQ29udmVydGlibGU8CisgICAgICAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIFJhbmRvbUFjY2Vzc0l0ZXJhdG9yQ29uY2VwdDo6dHJhdmVyc2FsX2NhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICAgcmFuZG9tX2FjY2Vzc190cmF2ZXJzYWxfdGFnCisgICAgICAgICAgICAgICAgID4pKTsKKworICAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoUmFuZG9tQWNjZXNzSXRlcmF0b3JDb25jZXB0KQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgaSArPSBuOworICAgICAgICAgICAgICAgICBpID0gaSArIG47CisgICAgICAgICAgICAgICAgIGkgPSBuICsgaTsKKyAgICAgICAgICAgICAgICAgaSAtPSBuOworICAgICAgICAgICAgICAgICBpID0gaSAtIG47CisgICAgICAgICAgICAgICAgIG4gPSBpIC0gajsKKyAgICAgICAgICAgICB9CisgICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgUmFuZG9tQWNjZXNzSXRlcmF0b3JDb25jZXB0OjpkaWZmZXJlbmNlX3R5cGUgbjsKKyAgICAgICAgICAgICBJdGVyYXRvciBpOworICAgICAgICAgICAgIEl0ZXJhdG9yIGo7CisgI2VuZGlmCisgICAgICAgICB9OworCisgICAgfSAvLyBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisKKyAgICAvLyEgQ2hlY2sgaWYgYSB0eXBlIFQgbW9kZWxzIHRoZSBTaW5nbGVQYXNzUmFuZ2UgcmFuZ2UgY29uY2VwdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHN0cnVjdCBTaW5nbGVQYXNzUmFuZ2VDb25jZXB0CisgICAgeworI2lmIEJPT1NUX1JBTkdFX0VOQUJMRV9DT05DRVBUX0FTU0VSVAorICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPFQgY29uc3Q+Ojp0eXBlICBjb25zdF9pdGVyYXRvcjsKKyAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxUPjo6dHlwZSAgICAgICAgaXRlcmF0b3I7CisKKyAgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKChyYW5nZV9kZXRhaWw6OlNpbmdsZVBhc3NJdGVyYXRvckNvbmNlcHQ8aXRlcmF0b3I+KSk7CisgICAgICAgICBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCgocmFuZ2VfZGV0YWlsOjpTaW5nbGVQYXNzSXRlcmF0b3JDb25jZXB0PGNvbnN0X2l0ZXJhdG9yPikpOworCisgICAgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKFNpbmdsZVBhc3NSYW5nZUNvbmNlcHQpCisgICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIGhhcyBiZWVuIG1vZGlmaWVkIGZyb20gYXNzaWduaW5nIHRvIHRoaXMtPmkKKyAgICAgICAgICAgIC8vICh3aGVyZSBpIHdhcyBhIG1lbWJlciB2YXJpYWJsZSkgdG8gaW1wcm92ZQorICAgICAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB3aXRoIEJvb3N0LkxhbWJkYQorICAgICAgICAgICAgaXRlcmF0b3IgaTEgPSBuZG5ib29zdDo6YmVnaW4oKm1fcmFuZ2UpOworICAgICAgICAgICAgaXRlcmF0b3IgaTIgPSBuZG5ib29zdDo6ZW5kKCptX3JhbmdlKTsKKworICAgICAgICAgICAgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGkxKTsKKyAgICAgICAgICAgIGlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhpMik7CisKKyAgICAgICAgICAgIGNvbnN0X2NvbnN0cmFpbnRzKCptX3JhbmdlKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCBjb25zdF9jb25zdHJhaW50cyhjb25zdCBUJiBjb25zdF9yYW5nZSkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgY2kxID0gbmRuYm9vc3Q6OmJlZ2luKGNvbnN0X3JhbmdlKTsKKyAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGNpMiA9IG5kbmJvb3N0OjplbmQoY29uc3RfcmFuZ2UpOworCisgICAgICAgICAgICBpZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoY2kxKTsKKyAgICAgICAgICAgIGlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyhjaTIpOworICAgICAgICB9CisKKyAgICAgICAvLyBSYXRpb25hbGU6CisgICAgICAgLy8gVGhlIHR5cGUgb2YgbV9yYW5nZSBpcyBUKiByYXRoZXIgdGhhbiBUIGJlY2F1c2UgaXQgYWxsb3dzCisgICAgICAgLy8gVCB0byBiZSBhbiBhYnN0cmFjdCBjbGFzcy4gVGhlIG90aGVyIG9idmlvdXMgYWx0ZXJuYXRpdmUgb2YKKyAgICAgICAvLyBUJiBwcm9kdWNlcyBhIHdhcm5pbmcgb24gc29tZSBjb21waWxlcnMuCisgICAgICAgVCogbV9yYW5nZTsKKyNlbmRpZgorICAgIH07CisKKyAgICAvLyEgQ2hlY2sgaWYgYSB0eXBlIFQgbW9kZWxzIHRoZSBGb3J3YXJkUmFuZ2UgcmFuZ2UgY29uY2VwdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHN0cnVjdCBGb3J3YXJkUmFuZ2VDb25jZXB0IDogU2luZ2xlUGFzc1JhbmdlQ29uY2VwdDxUPgorICAgIHsKKyNpZiBCT09TVF9SQU5HRV9FTkFCTEVfQ09OQ0VQVF9BU1NFUlQKKyAgICAgICAgQk9PU1RfUkFOR0VfQ09OQ0VQVF9BU1NFUlQoKHJhbmdlX2RldGFpbDo6Rm9yd2FyZEl0ZXJhdG9yQ29uY2VwdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEZvcndhcmRSYW5nZUNvbmNlcHQ6Oml0ZXJhdG9yPikpOworICAgICAgICBCT09TVF9SQU5HRV9DT05DRVBUX0FTU0VSVCgocmFuZ2VfZGV0YWlsOjpGb3J3YXJkSXRlcmF0b3JDb25jZXB0PEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgRm9yd2FyZFJhbmdlQ29uY2VwdDo6Y29uc3RfaXRlcmF0b3I+KSk7CisjZW5kaWYKKyAgICB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgUmFuZ2U+CisgICAgc3RydWN0IFdyaXRlYWJsZVJhbmdlQ29uY2VwdAorICAgIHsKKyNpZiBCT09TVF9SQU5HRV9FTkFCTEVfQ09OQ0VQVF9BU1NFUlQKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPFJhbmdlPjo6dHlwZSBpdGVyYXRvcjsKKworICAgICAgICBCT09TVF9DT05DRVBUX1VTQUdFKFdyaXRlYWJsZVJhbmdlQ29uY2VwdCkKKyAgICAgICAgeworICAgICAgICAgICAgKmkgPSB2OworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgaXRlcmF0b3IgaTsKKyAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV92YWx1ZTxSYW5nZT46OnR5cGUgdjsKKyNlbmRpZgorICAgIH07CisKKyAgICAvLyEgQ2hlY2sgaWYgYSB0eXBlIFQgbW9kZWxzIHRoZSBXcml0ZWFibGVGb3J3YXJkUmFuZ2UgcmFuZ2UgY29uY2VwdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHN0cnVjdCBXcml0ZWFibGVGb3J3YXJkUmFuZ2VDb25jZXB0CisgICAgICAgIDogRm9yd2FyZFJhbmdlQ29uY2VwdDxUPgorICAgICAgICAsIFdyaXRlYWJsZVJhbmdlQ29uY2VwdDxUPgorICAgIHsKKyAgICB9OworCisgICAgLy8hIENoZWNrIGlmIGEgdHlwZSBUIG1vZGVscyB0aGUgQmlkaXJlY3Rpb25hbFJhbmdlIHJhbmdlIGNvbmNlcHQuCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICBzdHJ1Y3QgQmlkaXJlY3Rpb25hbFJhbmdlQ29uY2VwdCA6IEZvcndhcmRSYW5nZUNvbmNlcHQ8VD4KKyAgICB7CisjaWYgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUCisgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKChyYW5nZV9kZXRhaWw6OkJpZGlyZWN0aW9uYWxJdGVyYXRvckNvbmNlcHQ8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBCaWRpcmVjdGlvbmFsUmFuZ2VDb25jZXB0OjppdGVyYXRvcj4pKTsKKyAgICAgICAgQk9PU1RfUkFOR0VfQ09OQ0VQVF9BU1NFUlQoKHJhbmdlX2RldGFpbDo6QmlkaXJlY3Rpb25hbEl0ZXJhdG9yQ29uY2VwdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEJpZGlyZWN0aW9uYWxSYW5nZUNvbmNlcHQ6OmNvbnN0X2l0ZXJhdG9yPikpOworI2VuZGlmCisgICAgfTsKKworICAgIC8vISBDaGVjayBpZiBhIHR5cGUgVCBtb2RlbHMgdGhlIFdyaXRlYWJsZUJpZGlyZWN0aW9uYWxSYW5nZSByYW5nZSBjb25jZXB0LgorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgc3RydWN0IFdyaXRlYWJsZUJpZGlyZWN0aW9uYWxSYW5nZUNvbmNlcHQKKyAgICAgICAgOiBCaWRpcmVjdGlvbmFsUmFuZ2VDb25jZXB0PFQ+CisgICAgICAgICwgV3JpdGVhYmxlUmFuZ2VDb25jZXB0PFQ+CisgICAgeworICAgIH07CisKKyAgICAvLyEgQ2hlY2sgaWYgYSB0eXBlIFQgbW9kZWxzIHRoZSBSYW5kb21BY2Nlc3NSYW5nZSByYW5nZSBjb25jZXB0LgorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgc3RydWN0IFJhbmRvbUFjY2Vzc1JhbmdlQ29uY2VwdCA6IEJpZGlyZWN0aW9uYWxSYW5nZUNvbmNlcHQ8VD4KKyAgICB7CisjaWYgQk9PU1RfUkFOR0VfRU5BQkxFX0NPTkNFUFRfQVNTRVJUCisgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKChyYW5nZV9kZXRhaWw6OlJhbmRvbUFjY2Vzc0l0ZXJhdG9yQ29uY2VwdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIFJhbmRvbUFjY2Vzc1JhbmdlQ29uY2VwdDo6aXRlcmF0b3I+KSk7CisgICAgICAgIEJPT1NUX1JBTkdFX0NPTkNFUFRfQVNTRVJUKChyYW5nZV9kZXRhaWw6OlJhbmRvbUFjY2Vzc0l0ZXJhdG9yQ29uY2VwdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIFJhbmRvbUFjY2Vzc1JhbmdlQ29uY2VwdDo6Y29uc3RfaXRlcmF0b3I+KSk7CisjZW5kaWYKKyAgICB9OworCisgICAgLy8hIENoZWNrIGlmIGEgdHlwZSBUIG1vZGVscyB0aGUgV3JpdGVhYmxlUmFuZG9tQWNjZXNzUmFuZ2UgcmFuZ2UgY29uY2VwdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHN0cnVjdCBXcml0ZWFibGVSYW5kb21BY2Nlc3NSYW5nZUNvbmNlcHQKKyAgICAgICAgOiBSYW5kb21BY2Nlc3NSYW5nZUNvbmNlcHQ8VD4KKyAgICAgICAgLCBXcml0ZWFibGVSYW5nZUNvbmNlcHQ8VD4KKyAgICB7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JBTkdFX0NPTkNFUFRTX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9jb25maWcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0OTAwN2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2NvbmZpZy5ocHAKQEAgLTAsMCArMSw1NCBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfQ09ORklHX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9DT05GSUdfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUKKyNlcnJvciAibWFjcm8gYWxyZWFkeSBkZWZpbmVkISIKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU2NCkpCisjIGRlZmluZSBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHR5cGVuYW1lCisjZWxzZQorIyBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDEzMDApICYmICFkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykKKyMgIGRlZmluZSBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHR5cGVuYW1lCisjIGVsc2UKKyMgIGRlZmluZSBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfUkFOR0VfTk9fQVJSQVlfU1VQUE9SVAorI2Vycm9yICJtYWNybyBhbHJlYWR5IGRlZmluZWQhIgorI2VuZGlmCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9NU1ZDLCA8IDEzMDAgKSB8fCBCT09TVF9XT1JLQVJPVU5EKCBfX01XRVJLU19fLCA8PSAweDMwMDMgKQorI2RlZmluZSBCT09TVF9SQU5HRV9OT19BUlJBWV9TVVBQT1JUIDEKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfUkFOR0VfTk9fQVJSQVlfU1VQUE9SVAorI2RlZmluZSBCT09TVF9SQU5HRV9BUlJBWV9SRUYoKSAoYm9vc3RfcmFuZ2VfYXJyYXkpCisjZGVmaW5lIEJPT1NUX1JBTkdFX05PX1NUQVRJQ19BU1NFUlQKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpICgmYm9vc3RfcmFuZ2VfYXJyYXkpCisjZW5kaWYKKworCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2NvbnN0X2l0ZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvY29uc3RfaXRlcmF0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiNzhlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2NvbnN0X2l0ZXJhdG9yLmhwcApAQCAtMCwwICsxLDY3IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9DT05TVF9JVEVSQVRPUl9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfQ09OU1RfSVRFUkFUT1JfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKworI2lmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvY29uc3RfaXRlcmF0b3IuaHBwPgorI2Vsc2UKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9leHRyYWN0X29wdGlvbmFsX3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jb25zdC5ocHA+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIGRlZmF1bHQKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIAorICAgIG5hbWVzcGFjZSByYW5nZV9kZXRhaWwgeworICAgICAgICBCT09TVF9SQU5HRV9FWFRSQUNUX09QVElPTkFMX1RZUEUoIGNvbnN0X2l0ZXJhdG9yICkKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgc3RydWN0IHJhbmdlX2NvbnN0X2l0ZXJhdG9yIDogcmFuZ2VfZGV0YWlsOjpleHRyYWN0X2NvbnN0X2l0ZXJhdG9yPEM+CisgICAge307CisgICAgCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBwYWlyCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+CisgICAgc3RydWN0IHJhbmdlX2NvbnN0X2l0ZXJhdG9yPCBzdGQ6OnBhaXI8SXRlcmF0b3IsSXRlcmF0b3I+ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgdHlwZTsKKyAgICB9OworICAgIAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gYXJyYXkKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IHN6ID4KKyAgICBzdHJ1Y3QgcmFuZ2VfY29uc3RfaXRlcmF0b3I8IFRbc3pdID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVCogdHlwZTsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2FzX2xpdGVyYWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvYXNfbGl0ZXJhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRiMWI2ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2FzX2xpdGVyYWwuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwNi4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9ERVRBSUxfQVNfTElURVJBTF9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX0FTX0xJVEVSQUxfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2RldGFpbF9zdHIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgdGVtcGxhdGU8IGNsYXNzIFJhbmdlID4KKyAgICBpbmxpbmUgaXRlcmF0b3JfcmFuZ2U8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxSYW5nZT46OnR5cGU+IAorICAgIGFzX2xpdGVyYWwoIFJhbmdlJiByICkKKyAgICB7CisgICAgICAgIHJldHVybiA6Om5kbmJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnN0cl9iZWdpbihyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6c3RyX2VuZChyKSApOworICAgIH0KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2JlZ2luLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2JlZ2luLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWE0M2NmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvYmVnaW4uaHBwCkBAIC0wLDAgKzEsOTQgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX0RFVEFJTF9CRUdJTl9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX0JFR0lOX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gLy8gQk9PU1RfTVNWQworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbW1vbi5ocHA+CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMTApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL3ZhbHVlX3R5cGUuaHBwPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbAorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfYmVnaW47CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBkZWZhdWx0CisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9iZWdpbjxzdGRfY29udGFpbmVyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPgorICAgICAgICAgICAgc3RhdGljIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Qz46OnR5cGUgZnVuKCBDJiBjICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYy5iZWdpbigpOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIHBhaXIKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2JlZ2luPHN0ZF9wYWlyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFAgPgorICAgICAgICAgICAgc3RhdGljIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8UD46OnR5cGUgZnVuKCBjb25zdCBQJiBwICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcC5maXJzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIGFycmF5CisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9iZWdpbjxhcnJheV8+CisgICAgICAgIHsKKyAgICAgICAgI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMxMCkKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBzeiA+CisgICAgICAgICAgICBzdGF0aWMgVCogZnVuKCBUIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJvb3N0X3JhbmdlX2FycmF5OworICAgICAgICAgICAgfQorICAgICAgICAjZWxzZQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0YXRpYyBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3ZhbHVlPFQ+Ojp0eXBlKiBmdW4oVCYgdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgI2VuZGlmCisgICAgICAgIH07CisKKyAgICB9IC8vIG5hbWVzcGFjZSAncmFuZ2VfZGV0YWlsJworCisgICAgbmFtZXNwYWNlIHJhbmdlX2FkbF9iYXJyaWVyCisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgICAgIGlubGluZSBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPEM+Ojp0eXBlCisgICAgICAgIGJlZ2luKCBDJiBjICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJhbmdlX2RldGFpbDo6cmFuZ2VfYmVnaW48IEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGV0YWlsOjpyYW5nZTxDPjo6dHlwZSA+OjpmdW4oIGMgKTsKKyAgICAgICAgfQorICAgIH0KK30gLy8gbmFtZXNwYWNlICdib29zdCcKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbW1vbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9jb21tb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MDc3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9jb21tb24uaHBwCkBAIC0wLDAgKzEsMTE3IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9ERVRBSUxfQ09NTU9OX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfQ09NTU9OX0hQUAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEyMDApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3NmaW5hZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaW50LmhwcD4KKyNpbmNsdWRlIDxjc3RkZGVmPgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIG1pc3NpbmcgcGFydGlhbCBzcGVjaWFsaXphdGlvbiAgd29ya2Fyb3VuZC4KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCituYW1lc3BhY2UgbmRuYm9vc3QgCit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbCAKKyAgICB7ICAgICAgICAKKyAgICAgICAgLy8gMSA9IHN0ZCBjb250YWluZXJzCisgICAgICAgIC8vIDIgPSBzdGQ6OnBhaXIKKyAgICAgICAgLy8gMyA9IGNvbnN0IHN0ZDo6cGFpcgorICAgICAgICAvLyA0ID0gYXJyYXkKKyAgICAgICAgLy8gNSA9IGNvbnN0IGFycmF5CisgICAgICAgIC8vIDYgPSBjaGFyIGFycmF5CisgICAgICAgIC8vIDcgPSB3Y2hhcl90IGFycmF5CisgICAgICAgIC8vIDggPSBjaGFyKgorICAgICAgICAvLyA5ID0gY29uc3QgY2hhcioKKyAgICAgICAgLy8gMTAgPSB3aGFyX3QqCisgICAgICAgIC8vIDExID0gY29uc3Qgd2NoYXJfdCoKKyAgICAgICAgLy8gMTIgPSBzdHJpbmcKKyAgICAgICAgCisgICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPDE+Ojp0eXBlICAgIHN0ZF9jb250YWluZXJfOworICAgICAgICB0eXBlZGVmIG1wbDo6aW50XzwyPjo6dHlwZSAgICBzdGRfcGFpcl87CisgICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPDM+Ojp0eXBlICAgIGNvbnN0X3N0ZF9wYWlyXzsKKyAgICAgICAgdHlwZWRlZiBtcGw6OmludF88ND46OnR5cGUgICAgYXJyYXlfOworICAgICAgICB0eXBlZGVmIG1wbDo6aW50Xzw1Pjo6dHlwZSAgICBjb25zdF9hcnJheV87CisgICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPDY+Ojp0eXBlICAgIGNoYXJfYXJyYXlfOworICAgICAgICB0eXBlZGVmIG1wbDo6aW50Xzw3Pjo6dHlwZSAgICB3Y2hhcl90X2FycmF5XzsKKyAgICAgICAgdHlwZWRlZiBtcGw6OmludF88OD46OnR5cGUgICAgY2hhcl9wdHJfOworICAgICAgICB0eXBlZGVmIG1wbDo6aW50Xzw5Pjo6dHlwZSAgICBjb25zdF9jaGFyX3B0cl87CisgICAgICAgIHR5cGVkZWYgbXBsOjppbnRfPDEwPjo6dHlwZSAgIHdjaGFyX3RfcHRyXzsKKyAgICAgICAgdHlwZWRlZiBtcGw6OmludF88MTE+Ojp0eXBlICAgY29uc3Rfd2NoYXJfdF9wdHJfOworICAgICAgICB0eXBlZGVmIG1wbDo6aW50XzwxMj46OnR5cGUgICBzdHJpbmdfOworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfaGVscGVyCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyBDKiBjOworICAgICAgICAgICAgc3RhdGljIEMgIHB0cjsKKworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKCBib29sLCBpc19wYWlyXyAgICAgICAgICAgICAgICA9IHNpemVvZiggbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6aXNfcGFpcl9pbXBsKCBjICkgKSA9PSBzaXplb2YoIHllc190eXBlICkgKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCggYm9vbCwgaXNfY2hhcl9wdHJfICAgICAgICAgICAgPSBzaXplb2YoIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OmlzX2NoYXJfcHRyX2ltcGwoIHB0ciApICkgPT0gc2l6ZW9mKCB5ZXNfdHlwZSApICk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoIGJvb2wsIGlzX2NvbnN0X2NoYXJfcHRyXyAgICAgID0gc2l6ZW9mKCBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjppc19jb25zdF9jaGFyX3B0cl9pbXBsKCBwdHIgKSApID09IHNpemVvZiggeWVzX3R5cGUgKSApOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKCBib29sLCBpc193Y2hhcl90X3B0cl8gICAgICAgICA9IHNpemVvZiggbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6aXNfd2NoYXJfdF9wdHJfaW1wbCggcHRyICkgKSA9PSBzaXplb2YoIHllc190eXBlICkgKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCggYm9vbCwgaXNfY29uc3Rfd2NoYXJfdF9wdHJfICAgPSBzaXplb2YoIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OmlzX2NvbnN0X3djaGFyX3RfcHRyX2ltcGwoIHB0ciApICkgPT0gc2l6ZW9mKCB5ZXNfdHlwZSApICk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoIGJvb2wsIGlzX2NoYXJfYXJyYXlfICAgICAgICAgID0gc2l6ZW9mKCBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjppc19jaGFyX2FycmF5X2ltcGwoIHB0ciApICkgPT0gc2l6ZW9mKCB5ZXNfdHlwZSApICk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoIGJvb2wsIGlzX3djaGFyX3RfYXJyYXlfICAgICAgID0gc2l6ZW9mKCBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjppc193Y2hhcl90X2FycmF5X2ltcGwoIHB0ciApICkgPT0gc2l6ZW9mKCB5ZXNfdHlwZSApICk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoIGJvb2wsIGlzX3N0cmluZ18gICAgICAgICAgICAgID0gKG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPGlzX2NvbnN0X2NoYXJfcHRyXywgaXNfY29uc3Rfd2NoYXJfdF9wdHJfPjo6dmFsdWUgKSk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoIGJvb2wsIGlzX2FycmF5XyAgICAgICAgICAgICAgID0gbmRuYm9vc3Q6OmlzX2FycmF5PEM+Ojp2YWx1ZSApOworICAgICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgICAgIGNsYXNzIHJhbmdlCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRSAgIG5kbmJvb3N0OjptcGw6OmlmX2M8IDo6bmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6cmFuZ2VfaGVscGVyPEM+Ojppc19wYWlyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnN0ZF9wYWlyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgPjo6dHlwZSBwYWlyX3Q7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnJhbmdlX2hlbHBlcjxDPjo6aXNfYXJyYXlfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjphcnJheV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXJfdCA+Ojp0eXBlIGFycmF5X3Q7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnJhbmdlX2hlbHBlcjxDPjo6aXNfc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6c3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfdCA+Ojp0eXBlIHN0cmluZ190OworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FICAgbmRuYm9vc3Q6Om1wbDo6aWZfYzwgOjpuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjpyYW5nZV9oZWxwZXI8Qz46OmlzX2NvbnN0X2NoYXJfcHRyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6Y29uc3RfY2hhcl9wdHJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdfdCA+Ojp0eXBlIGNvbnN0X2NoYXJfcHRyX3Q7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnJhbmdlX2hlbHBlcjxDPjo6aXNfY2hhcl9wdHJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjpjaGFyX3B0cl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2NoYXJfcHRyX3QgPjo6dHlwZSBjaGFyX3B0cl90OworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FICAgbmRuYm9vc3Q6Om1wbDo6aWZfYzwgOjpuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjpyYW5nZV9oZWxwZXI8Qz46OmlzX2NvbnN0X3djaGFyX3RfcHRyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6Y29uc3Rfd2NoYXJfdF9wdHJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyX3B0cl90ID46OnR5cGUgY29uc3Rfd2NoYXJfcHRyX3Q7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnJhbmdlX2hlbHBlcjxDPjo6aXNfd2NoYXJfdF9wdHJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjp3Y2hhcl90X3B0cl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X3djaGFyX3B0cl90ID46OnR5cGUgd2NoYXJfcHRyX3Q7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnJhbmdlX2hlbHBlcjxDPjo6aXNfd2NoYXJfdF9hcnJheV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OndjaGFyX3RfYXJyYXlfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y2hhcl9wdHJfdCA+Ojp0eXBlIHdjaGFyX2FycmF5X3Q7CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnJhbmdlX2hlbHBlcjxDPjo6aXNfY2hhcl9hcnJheV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OmNoYXJfYXJyYXlfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y2hhcl9hcnJheV90ID46OnR5cGUgY2hhcl9hcnJheV90OworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgICBuZG5ib29zdDo6bXBsOjppZl9jPCA6Om5kbmJvb3N0Ojppc192b2lkPGNoYXJfYXJyYXlfdD46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjpzdGRfY29udGFpbmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcl9hcnJheV90ID46OnR5cGUgdHlwZTsgIAorICAgICAgICB9OyAvLyBjbGFzcyAncmFuZ2UnIAorICAgIH0KK30KKyAgICAgICAgCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvY29uc3RfaXRlcmF0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvY29uc3RfaXRlcmF0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyM2MyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9jb25zdF9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSw3MSBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfREVUQUlMX0NPTlNUX0lURVJBVE9SX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfQ09OU1RfSVRFUkFUT1JfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvY29tbW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvcmVtb3ZlX2V4dGVudC5ocHA+CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gbWlzc2luZyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uICB3b3JrYXJvdW5kLgorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCAKK3sKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsIAorICAgIHsgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfY29uc3RfaXRlcmF0b3JfOworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2NvbnN0X2l0ZXJhdG9yXzxzdGRfY29udGFpbmVyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRSBDOjpjb25zdF9pdGVyYXRvciB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9jb25zdF9pdGVyYXRvcl88c3RkX3BhaXJfPgorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUCA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIFA6OmZpcnN0X3R5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9jb25zdF9pdGVyYXRvcl88YXJyYXlfPgorICAgICAgICB7IAorICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSogdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfSAKKyAgICAKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgY2xhc3MgcmFuZ2VfY29uc3RfaXRlcmF0b3IKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9kZXRhaWw6OnJhbmdlPEM+Ojp0eXBlIGNfdHlwZTsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9kZXRhaWw6OnJhbmdlX2NvbnN0X2l0ZXJhdG9yXzxjX3R5cGU+OjpCT09TVF9ORVNURURfVEVNUExBVEUgcHRzPEM+Ojp0eXBlIHR5cGU7IAorICAgIH07CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9kZXRhaWxfc3RyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2RldGFpbF9zdHIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1MTk5OTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9kZXRhaWxfc3RyLmhwcApAQCAtMCwwICsxLDM3NiBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfREVUQUlMX0RFVEFJTF9TVFJfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX0RFVEFJTF9ERVRBSUxfU1RSX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gLy8gQk9PU1RfTVNWQworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreworICAgIAorICAgIG5hbWVzcGFjZSByYW5nZV9kZXRhaWwKKyAgICB7CisgICAgICAgIC8vCisgICAgICAgIC8vIGl0ZXJhdG9yCisgICAgICAgIC8vCisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9pdGVyYXRvcl88Y2hhcl9hcnJheV8+CisgICAgICAgIHsgCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSogdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfaXRlcmF0b3JfPGNoYXJfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgY2hhciogdHlwZTsgCisgICAgICAgICAgICB9OyAgICAgICAgIAorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2l0ZXJhdG9yXzxjb25zdF9jaGFyX3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IGNoYXIqIHR5cGU7CisgICAgICAgICAgICB9OyAgICAgICAgIAorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2l0ZXJhdG9yXzx3Y2hhcl90X3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHdjaGFyX3QqIHR5cGU7IAorICAgICAgICAgICAgfTsgICAgICAgICAKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9pdGVyYXRvcl88Y29uc3Rfd2NoYXJfdF9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3Qgd2NoYXJfdCogdHlwZTsgCisgICAgICAgICAgICAgfTsgICAgICAgICAKKyAgICAgICAgfTsKKworCisgICAgICAgIC8vCisgICAgICAgIC8vIGNvbnN0IGl0ZXJhdG9yCisgICAgICAgIC8vCisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfY29uc3RfaXRlcmF0b3JfPGNoYXJfYXJyYXlfPgorICAgICAgICB7IAorICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSogdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfY29uc3RfaXRlcmF0b3JfPGNoYXJfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgY2hhciogdHlwZTsgCisgICAgICAgICAgICB9OyAgICAgICAgIAorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2NvbnN0X2l0ZXJhdG9yXzxjb25zdF9jaGFyX3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IGNoYXIqIHR5cGU7IAorICAgICAgICAgICAgfTsgICAgICAgICAKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9jb25zdF9pdGVyYXRvcl88d2NoYXJfdF9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUyA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBjb25zdCB3Y2hhcl90KiB0eXBlOyAKKyAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfY29uc3RfaXRlcmF0b3JfPGNvbnN0X3djaGFyX3RfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBTID4KKyAgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IHdjaGFyX3QqIHR5cGU7IAorICAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07CisgICAgfQorfQorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvZW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvc2l6ZV90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvdmFsdWVfdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbW1vbi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCAKK3sKKyAgICAKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBzdHJfYmVnaW4oKQorICAgICAgICAvLworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9iZWdpbjxjaGFyX3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyBjaGFyKiBmdW4oIGNoYXIqIHMgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBzOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2JlZ2luPGNvbnN0X2NoYXJfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZ1biggY29uc3QgY2hhciogcyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9iZWdpbjx3Y2hhcl90X3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RhdGljIHdjaGFyX3QqIGZ1biggd2NoYXJfdCogcyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfYmVnaW48Y29uc3Rfd2NoYXJfdF9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMgY29uc3Qgd2NoYXJfdCogZnVuKCBjb25zdCB3Y2hhcl90KiBzICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgaW5saW5lIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Qz46OnR5cGUgCisgICAgICAgIHN0cl9iZWdpbiggQyYgYyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByYW5nZV9kZXRhaWw6OnJhbmdlX2JlZ2luPCBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIAorICAgICAgICAgICAgICAgIHJhbmdlX2RldGFpbDo6cmFuZ2U8Qz46OnR5cGUgPjo6ZnVuKCBjICk7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBzdHJfZW5kKCkKKyAgICAgICAgLy8KKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8Y2hhcl9hcnJheV8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBzeiA+CisgICAgICAgICAgICBzdGF0aWMgVCogZnVuKCBUIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OmFycmF5X2VuZCggYm9vc3RfcmFuZ2VfYXJyYXkgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2VuZDx3Y2hhcl90X2FycmF5Xz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IHN6ID4KKyAgICAgICAgICAgIHN0YXRpYyBUKiBmdW4oIFQgQk9PU1RfUkFOR0VfQVJSQVlfUkVGKClbc3pdICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6YXJyYXlfZW5kKCBib29zdF9yYW5nZV9hcnJheSApOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfZW5kPGNoYXJfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgc3RhdGljIGNoYXIqIGZ1biggY2hhciogcyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnN0cl9lbmQoIHMgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8Y29uc3RfY2hhcl9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogZnVuKCBjb25zdCBjaGFyKiBzICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6c3RyX2VuZCggcyApOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2VuZDx3Y2hhcl90X3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyB3Y2hhcl90KiBmdW4oIHdjaGFyX3QqIHMgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjpzdHJfZW5kKCBzICk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8Y29uc3Rfd2NoYXJfdF9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICBzdGF0aWMgY29uc3Qgd2NoYXJfdCogZnVuKCBjb25zdCB3Y2hhcl90KiBzICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6c3RyX2VuZCggcyApOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgaW5saW5lIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Qz46OnR5cGUgCisgICAgICAgIHN0cl9lbmQoIEMmIGMgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmFuZ2VfZGV0YWlsOjpyYW5nZV9lbmQ8IEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgCisgICAgICAgICAgICAgICAgcmFuZ2VfZGV0YWlsOjpyYW5nZTxDPjo6dHlwZSA+OjpmdW4oIGMgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vCisgICAgICAgIC8vIHNpemVfdHlwZQorICAgICAgICAvLworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX3NpemVfdHlwZV88Y2hhcl9hcnJheV8+CisgICAgICAgIHsgCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQSA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplX3R5cGVfPGNoYXJfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpzaXplX3QgdHlwZTsKKyAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplX3R5cGVfPGNvbnN0X2NoYXJfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpzaXplX3QgdHlwZTsKKyAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplX3R5cGVfPHdjaGFyX3RfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpzaXplX3QgdHlwZTsKKyAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplX3R5cGVfPGNvbnN0X3djaGFyX3RfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgc3RkOjpzaXplX3QgdHlwZTsKKyAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07ICAKKworICAgICAgICAvLworICAgICAgICAvLyB2YWx1ZV90eXBlCisgICAgICAgIC8vCisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV92YWx1ZV90eXBlXzxjaGFyX2FycmF5Xz4KKyAgICAgICAgeyAKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGNoYXIgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfdmFsdWVfdHlwZV88Y2hhcl9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHR5cGVkZWYgY2hhciB0eXBlOyAKKyAgICAgICAgICAgICB9OyAgICAgICAgIAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfdmFsdWVfdHlwZV88Y29uc3RfY2hhcl9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgY2hhciB0eXBlOworICAgICAgICAgICAgIH07ICAgICAgICAgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV92YWx1ZV90eXBlXzx3Y2hhcl90X3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUyA+CisgICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgdHlwZWRlZiB3Y2hhcl90IHR5cGU7CisgICAgICAgICAgICAgfTsgICAgICAgICAKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX3ZhbHVlX3R5cGVfPGNvbnN0X3djaGFyX3RfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFMgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgY29uc3Qgd2NoYXJfdCB0eXBlOworICAgICAgICAgICAgfTsgICAgICAgICAKKyAgICAgICAgfTsKKworICAgIH0gLy8gbmFtZXNwYWNlICdyYW5nZV9kZXRhaWwnCisKK30gLy8gbmFtZXNwYWNlICdib29zdCcKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2VuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9lbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExNmNmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9lbmQuaHBwCkBAIC0wLDAgKzEsMTAxIEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9ERVRBSUxfRU5EX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfRU5EX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gLy8gQk9PU1RfTVNWQworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorIyBpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvdmM2L2VuZC5ocHA+CisjZWxzZQorIyBpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvaW1wbGVtZW50YXRpb25faGVscC5ocHA+CisjIGluY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbW1vbi5ocHA+CisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzEwKQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3JlbW92ZV9leHRlbnQuaHBwPgorIyBlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ7CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBkZWZhdWx0CisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8c3RkX2NvbnRhaW5lcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgICAgIHN0YXRpYyBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPEM+Ojp0eXBlCisgICAgICAgICAgICBmdW4oIEMmIGMgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBjLmVuZCgpOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIHBhaXIKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2VuZDxzdGRfcGFpcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQID4KKyAgICAgICAgICAgIHN0YXRpYyBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPFA+Ojp0eXBlCisgICAgICAgICAgICBmdW4oIGNvbnN0IFAmIHAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBwLnNlY29uZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIGFycmF5CisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8YXJyYXlfPgorICAgICAgICB7CisgICAgICAgICNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMTApCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgc3RkOjpzaXplX3Qgc3ogPgorICAgICAgICAgICAgc3RhdGljIFQqIGZ1biggVCBCT09TVF9SQU5HRV9BUlJBWV9SRUYoKVtzel0gKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjphcnJheV9lbmQoIGJvb3N0X3JhbmdlX2FycmF5ICk7CisgICAgICAgICAgICB9CisgICAgICAgICNlbHNlCisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RhdGljIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSogZnVuKFQmIHQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHQgKyByZW1vdmVfZXh0ZW50PFQ+OjpzaXplOworICAgICAgICAgICAgfQorICAgICAgICAjZW5kaWYKKyAgICAgICAgfTsKKworICAgIH0gLy8gbmFtZXNwYWNlICdyYW5nZV9kZXRhaWwnCisKKyAgICBuYW1lc3BhY2UgcmFuZ2VfYWRsX2JhcnJpZXIKKyAgICB7CisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgaW5saW5lIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Qz46OnR5cGUKKyAgICAgICAgZW5kKCBDJiBjICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJhbmdlX2RldGFpbDo6cmFuZ2VfZW5kPCBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2RldGFpbDo6cmFuZ2U8Qz46OnR5cGUgPjo6ZnVuKCBjICk7CisgICAgICAgIH0KKyAgICB9IC8vIG5hbWVzcGFjZSByYW5nZV9hZGxfYmFycmllcgorCit9IC8vIG5hbWVzcGFjZSAnYm9vc3QnCisKKyMgZW5kaWYgLy8gVkM2CisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2V4dHJhY3Rfb3B0aW9uYWxfdHlwZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9leHRyYWN0X29wdGlvbmFsX3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3N2YzN2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9leHRyYWN0X29wdGlvbmFsX3R5cGUuaHBwCkBAIC0wLDAgKzEsNTIgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IEFybm8gU2Nob2VkbCAmIE5laWwgR3JvdmVzIDIwMDkuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisjaWZuZGVmIEJPT1NUX1JBTkdFX0RFVEFJTF9FWFRSQUNUX09QVElPTkFMX1RZUEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1JBTkdFX0RFVEFJTF9FWFRSQUNUX09QVElPTkFMX1RZUEVfSFBQX0lOQ0xVREVECisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmZGVmIEJPT1NUX05PX1BBUlRJQUxfU1BFQ0lBTElaQVRJT05fSU1QTElDSVRfREVGQVVMVF9BUkdTCisKKyNkZWZpbmUgQk9PU1RfUkFOR0VfRVhUUkFDVF9PUFRJT05BTF9UWVBFKCBhX3R5cGVkZWYgKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBleHRyYWN0XyAjIyBhX3R5cGVkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjphX3R5cGVkZWYgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH07CisKKyNlbHNlCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGV4aXN0cyB7IHR5cGVkZWYgdm9pZCB0eXBlOyB9OworICAgIH0KK30KKworLy8gRGVmaW5lcyBleHRyYWN0X3NvbWVfdHlwZWRlZjxUPiB3aGljaCBleHBvc2VzIFQ6OnNvbWVfdHlwZWRlZiBhcworLy8gZXh0cmFjdF9zb21lX3R5cGVkZWY8VD46OnR5cGUgaWYgVDo6c29tZV90eXBlZGVmIGV4aXN0cy4gT3RoZXJ3aXNlCisvLyBleHRyYWN0X3NvbWVfdHlwZWRlZjxUPiBpcyBlbXB0eS4KKyNkZWZpbmUgQk9PU1RfUkFOR0VfRVhUUkFDVF9PUFRJT05BTF9UWVBFKCBhX3R5cGVkZWYgKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMsIHR5cGVuYW1lIEVuYWJsZT12b2lkID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBleHRyYWN0XyAjIyBhX3R5cGVkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7fTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBleHRyYWN0XyAjIyBhX3R5cGVkZWY8IEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAsIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6ZXhpc3RzPCBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6OmFfdHlwZWRlZiA+Ojp0eXBlIFwKKyAgICA+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjphX3R5cGVkZWYgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH07CisKKyNlbmRpZgorCisjZW5kaWYgLy8gaW5jbHVkZSBndWFyZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvaW1wbGVtZW50YXRpb25faGVscC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9pbXBsZW1lbnRhdGlvbl9oZWxwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTgwZDZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvaW1wbGVtZW50YXRpb25faGVscC5ocHAKQEAgLTAsMCArMSwxMDMgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX0RFVEFJTF9JTVBMRU1FTlRBVElPTl9IRUxQX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfSU1QTEVNRU5UQVRJT05fSEVMUF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbW1vbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmbmRlZiBCT09TVF9OT19DV0NIQVIKKyNpbmNsdWRlIDx3Y2hhci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgIG5hbWVzcGFjZSByYW5nZV9kZXRhaWwKKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBib29zdF9yYW5nZV9zaWxlbmNlX3dhcm5pbmcoIGNvbnN0IFQmICkgeyB9CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIGVuZCgpIGhlbHAKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAgICAgaW5saW5lIGNvbnN0IGNoYXIqIHN0cl9lbmQoIGNvbnN0IGNoYXIqIHMsIGNvbnN0IGNoYXIqICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHMgKyBzdHJsZW4oIHMgKTsKKyAgICAgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX0NXQ0hBUgorICAgICAgICBpbmxpbmUgY29uc3Qgd2NoYXJfdCogc3RyX2VuZCggY29uc3Qgd2NoYXJfdCogcywgY29uc3Qgd2NoYXJfdCogKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcyArIHdjc2xlbiggcyApOworICAgICAgICB9CisjZWxzZQorICAgICAgICBpbmxpbmUgY29uc3Qgd2NoYXJfdCogc3RyX2VuZCggY29uc3Qgd2NoYXJfdCogcywgY29uc3Qgd2NoYXJfdCogKQorICAgICAgICB7CisgICAgICAgICAgICBpZiggcyA9PSAwIHx8IHNbMF0gPT0gMCApCisgICAgICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAgICAgICB3aGlsZSggKisrcyAhPSAwICkKKyAgICAgICAgICAgICAgICA7CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIENoYXIgPgorICAgICAgICBpbmxpbmUgQ2hhciogc3RyX2VuZCggQ2hhciogcyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PENoYXIqPiggc3RyX2VuZCggcywgcyApICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3Qgc3ogPgorICAgICAgICBpbmxpbmUgVCogYXJyYXlfZW5kKCBUIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBib29zdF9yYW5nZV9hcnJheSArIHN6OworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IHN6ID4KKyAgICAgICAgaW5saW5lIGNvbnN0IFQqIGFycmF5X2VuZCggY29uc3QgVCBCT09TVF9SQU5HRV9BUlJBWV9SRUYoKVtzel0gKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYm9vc3RfcmFuZ2VfYXJyYXkgKyBzejsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBzaXplKCkgaGVscAorICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgQ2hhciA+CisgICAgICAgIGlubGluZSBzdGQ6OnNpemVfdCBzdHJfc2l6ZSggY29uc3QgQ2hhciogY29uc3QmIHMgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3RyX2VuZCggcyApIC0gczsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBzeiA+CisgICAgICAgIGlubGluZSBzdGQ6OnNpemVfdCBhcnJheV9zaXplKCBUIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGJvb3N0X3JhbmdlX3NpbGVuY2Vfd2FybmluZyggYm9vc3RfcmFuZ2VfYXJyYXkgKTsKKyAgICAgICAgICAgIHJldHVybiBzejsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBzeiA+CisgICAgICAgIGlubGluZSBzdGQ6OnNpemVfdCBhcnJheV9zaXplKCBjb25zdCBUIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGJvb3N0X3JhbmdlX3NpbGVuY2Vfd2FybmluZyggYm9vc3RfcmFuZ2VfYXJyYXkgKTsKKyAgICAgICAgICAgIHJldHVybiBzejsKKyAgICAgICAgfQorCisgICAgfSAvLyBuYW1lc3BhY2UgJ3JhbmdlX2RldGFpbCcKKworfSAvLyBuYW1lc3BhY2UgJ2Jvb3N0JworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvaXRlcmF0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvaXRlcmF0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1OGI1YWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSw3OCBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfREVUQUlMX0lURVJBVE9SX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfSVRFUkFUT1JfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvY29tbW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvcmVtb3ZlX2V4dGVudC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBtaXNzaW5nIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24gIHdvcmthcm91bmQuCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreworICAgIG5hbWVzcGFjZSByYW5nZV9kZXRhaWwgCisgICAgeyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4KKyAgICAgICAgc3RydWN0IHJhbmdlX2l0ZXJhdG9yXyB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBpbnQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfaXRlcmF0b3JfPHN0ZF9jb250YWluZXJfPgorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIEM6Oml0ZXJhdG9yIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2l0ZXJhdG9yXzxzdGRfcGFpcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgUDo6Zmlyc3RfdHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9pdGVyYXRvcl88YXJyYXlfPgorICAgICAgICB7IAorICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICAgICAgc3RydWN0IHB0cworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSogdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIAorICAgIH0gCisKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgY2xhc3MgcmFuZ2VfbXV0YWJsZV9pdGVyYXRvcgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2RldGFpbDo6cmFuZ2U8Qz46OnR5cGUgY190eXBlOworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByYW5nZV9kZXRhaWw6OnJhbmdlX2l0ZXJhdG9yXzxjX3R5cGU+OjpCT09TVF9ORVNURURfVEVNUExBVEUgcHRzPEM+Ojp0eXBlIHR5cGU7IAorICAgIH07Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvbWlzY19jb25jZXB0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL21pc2NfY29uY2VwdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIyYTM5YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL21pc2NfY29uY2VwdC5ocHAKQEAgLTAsMCArMSwzMyBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeSBjb25jZXB0IGNoZWNrcworLy8KKy8vICBDb3B5cmlnaHQgTmVpbCBHcm92ZXMgMjAwOS4gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbgorLy8gIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKyNpZm5kZWYgQk9PU1RfUkFOR0VfREVUQUlMX01JU0NfQ09OQ0VQVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX01JU0NfQ09OQ0VQVF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmNlcHRfY2hlY2suaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisgICAgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgICAgICAgIGNsYXNzIFNhbWVUeXBlQ29uY2VwdAorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIEJPT1NUX0NPTkNFUFRfVVNBR0UoU2FtZVR5cGVDb25jZXB0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNhbWVfdHlwZShhLGIpOworICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzYW1lX3R5cGUoVCxUKSB7fQorICAgICAgICAgICAgVDEgYTsKKyAgICAgICAgICAgIFQyIGI7CisgICAgICAgIH07CisgICAgfQorfQorCisjZW5kaWYgLy8gaW5jbHVkZSBndWFyZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvcmVtb3ZlX2V4dGVudC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9yZW1vdmVfZXh0ZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDg5ZWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvcmVtb3ZlX2V4dGVudC5ocHAKQEAgLTAsMCArMSwxNTcgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IEpvbmF0aGFuIFR1cmthbmlzIDIwMDUuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKworI2lmbmRlZiBCT09TVF9SQU5HRV9ERVRBSUxfUkVNT1ZFX0JPVU5EU19IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX1JFTU9WRV9CT1VORFNfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPiAgLy8gTVNWQywgTk9fSU5UUklOU0lDX1dDSEFSX1QsIHB1dCBzaXplX3QgaW4gc3RkLgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZGVudGl0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCAKK3sKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisgICAgeworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIENhc2UxID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUxID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2UyID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUyID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2UzID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUzID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2U0ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGU0ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2U1ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGU1ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2U2ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGU2ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2U3ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGU3ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2U4ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGU4ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2U5ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGU5ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2UxMCA9IG1wbDo6dHJ1ZV8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUeXBlMTAgPSBtcGw6OnZvaWRfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgQ2FzZTExID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUxMSA9IG1wbDo6dm9pZF8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBDYXNlMTIgPSBtcGw6OnRydWVfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHlwZTEyID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2UxMyA9IG1wbDo6dHJ1ZV8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUeXBlMTMgPSBtcGw6OnZvaWRfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgQ2FzZTE0ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUxNCA9IG1wbDo6dm9pZF8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBDYXNlMTUgPSBtcGw6OnRydWVfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHlwZTE1ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2UxNiA9IG1wbDo6dHJ1ZV8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUeXBlMTYgPSBtcGw6OnZvaWRfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgQ2FzZTE3ID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUxNyA9IG1wbDo6dm9pZF8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBDYXNlMTggPSBtcGw6OnRydWVfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHlwZTE4ID0gbXBsOjp2b2lkXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIENhc2UxOSA9IG1wbDo6dHJ1ZV8sCisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUeXBlMTkgPSBtcGw6OnZvaWRfLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgQ2FzZTIwID0gbXBsOjp0cnVlXywKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGUyMCA9IG1wbDo6dm9pZF8+CisgICAgICAgIHN0cnVjdCBzZWxlY3QgeworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgICAgICAgICAgICAgICBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlMSwgbXBsOjppZGVudGl0eTxUeXBlMT4sIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2UyLCBtcGw6OmlkZW50aXR5PFR5cGUyPiwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTMsIG1wbDo6aWRlbnRpdHk8VHlwZTM+LCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlNCwgbXBsOjppZGVudGl0eTxUeXBlND4sIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2U1LCBtcGw6OmlkZW50aXR5PFR5cGU1PiwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTYsIG1wbDo6aWRlbnRpdHk8VHlwZTY+LCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlNywgbXBsOjppZGVudGl0eTxUeXBlNz4sIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2U4LCBtcGw6OmlkZW50aXR5PFR5cGU4PiwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTksIG1wbDo6aWRlbnRpdHk8VHlwZTk+LCBtcGw6OmlmXzwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2UxMCwgVHlwZTEwLCBtcGw6OnZvaWRfID4gPiA+ID4gPiA+ID4gPiA+CisgICAgICAgICAgICAgICAgICAgID46OnR5cGUgcmVzdWx0MTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTExLCBtcGw6OmlkZW50aXR5PFR5cGUxMT4sIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2UxMiwgbXBsOjppZGVudGl0eTxUeXBlMTI+LCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlMTMsIG1wbDo6aWRlbnRpdHk8VHlwZTEzPiwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTE0LCBtcGw6OmlkZW50aXR5PFR5cGUxND4sIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2UxNSwgbXBsOjppZGVudGl0eTxUeXBlMTU+LCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlMTYsIG1wbDo6aWRlbnRpdHk8VHlwZTE2PiwgbXBsOjpldmFsX2lmPAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTE3LCBtcGw6OmlkZW50aXR5PFR5cGUxNz4sIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhc2UxOCwgbXBsOjppZGVudGl0eTxUeXBlMTg+LCBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlMTksIG1wbDo6aWRlbnRpdHk8VHlwZTE5PiwgbXBsOjppZl88CisgICAgICAgICAgICAgICAgICAgICAgICBDYXNlMjAsIFR5cGUyMCwgbXBsOjp2b2lkXyA+ID4gPiA+ID4gPiA+ID4gPgorICAgICAgICAgICAgICAgICAgICA+IHJlc3VsdDI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lICAgIAorICAgICAgICAgICAgICAgICAgICBtcGw6OmV2YWxfaWY8CisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPHJlc3VsdDEsIG1wbDo6dm9pZF8+LAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1wbDo6aWRlbnRpdHk8cmVzdWx0MT4KKyAgICAgICAgICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0cnVjdCByZW1vdmVfZXh0ZW50IHsKKyAgICAgICAgICAgIHN0YXRpYyBUKiBhcjsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgc2l6ZSA9IHNpemVvZigqYXIpIC8gc2l6ZW9mKCgqYXIpWzBdKSk7CisKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0PAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBib29sW3NpemVdPiwgICAgICAgICAgICAgICAgICBib29sLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjaGFyW3NpemVdPiwgICAgICAgICAgICAgICAgICBjaGFyLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBzaWduZWQgY2hhcltzaXplXT4sICAgICAgICAgICBzaWduZWQgY2hhciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgdW5zaWduZWQgY2hhcltzaXplXT4sICAgICAgICAgdW5zaWduZWQgY2hhciwKKyAgICAgICAgICAgICAgICAgICAgI2lmbmRlZiBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCB3Y2hhcl90W3NpemVdPiwgICAgICAgICAgICAgICB3Y2hhcl90LAorICAgICAgICAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgc2hvcnRbc2l6ZV0+LCAgICAgICAgICAgICAgICAgc2hvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIHVuc2lnbmVkIHNob3J0W3NpemVdPiwgICAgICAgIHVuc2lnbmVkIHNob3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBpbnRbc2l6ZV0+LCAgICAgICAgICAgICAgICAgICBpbnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIHVuc2lnbmVkIGludFtzaXplXT4sICAgICAgICAgIHVuc2lnbmVkIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgbG9uZ1tzaXplXT4sICAgICAgICAgICAgICAgICAgbG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgdW5zaWduZWQgbG9uZ1tzaXplXT4sICAgICAgICAgdW5zaWduZWQgbG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgZmxvYXRbc2l6ZV0+LCAgICAgICAgICAgICAgICAgZmxvYXQsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIGRvdWJsZVtzaXplXT4sICAgICAgICAgICAgICAgIGRvdWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgbG9uZyBkb3VibGVbc2l6ZV0+LCAgICAgICAgICAgbG9uZyBkb3VibGUKKyAgICAgICAgICAgICAgICAgICAgPjo6dHlwZSByZXN1bHQxOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZQorICAgICAgICAgICAgICAgICAgICBzZWxlY3Q8CisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIGNvbnN0IGJvb2xbc2l6ZV0+LCAgICAgICAgICAgIGNvbnN0IGJvb2wsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIGNvbnN0IGNoYXJbc2l6ZV0+LCAgICAgICAgICAgIGNvbnN0IGNoYXIsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIGNvbnN0IHNpZ25lZCBjaGFyW3NpemVdPiwgICAgIGNvbnN0IHNpZ25lZCBjaGFyLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjb25zdCB1bnNpZ25lZCBjaGFyW3NpemVdPiwgICBjb25zdCB1bnNpZ25lZCBjaGFyLAorICAgICAgICAgICAgICAgICAgICAjaWZuZGVmIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIGNvbnN0IHdjaGFyX3Rbc2l6ZV0+LCAgICAgICAgIGNvbnN0IHdjaGFyX3QsCisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjb25zdCBzaG9ydFtzaXplXT4sICAgICAgICAgICBjb25zdCBzaG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgY29uc3QgdW5zaWduZWQgc2hvcnRbc2l6ZV0+LCAgY29uc3QgdW5zaWduZWQgc2hvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPFQsIGNvbnN0IGludFtzaXplXT4sICAgICAgICAgICAgIGNvbnN0IGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgY29uc3QgdW5zaWduZWQgaW50W3NpemVdPiwgICAgY29uc3QgdW5zaWduZWQgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjb25zdCBsb25nW3NpemVdPiwgICAgICAgICAgICBjb25zdCBsb25nLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjb25zdCB1bnNpZ25lZCBsb25nW3NpemVdPiwgICBjb25zdCB1bnNpZ25lZCBsb25nLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjb25zdCBmbG9hdFtzaXplXT4sICAgICAgICAgICBjb25zdCBmbG9hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8VCwgY29uc3QgZG91YmxlW3NpemVdPiwgICAgICAgICAgY29uc3QgZG91YmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTxULCBjb25zdCBsb25nIGRvdWJsZVtzaXplXT4sICAgICBjb25zdCBsb25nIGRvdWJsZQorICAgICAgICAgICAgICAgICAgICA+IHJlc3VsdDI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lCisgICAgICAgICAgICAgICAgICAgIG1wbDo6ZXZhbF9pZjwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8cmVzdWx0MSwgbXBsOjp2b2lkXz4sCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyLAorICAgICAgICAgICAgICAgICAgICAgICAgbXBsOjppZGVudGl0eTxyZXN1bHQxPgorICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlIHR5cGU7CisgICAgICAgIH07CisKKyAgICB9IC8vIG5hbWVzcGFjZSAncmFuZ2VfZGV0YWlsJworCit9IC8vIG5hbWVzcGFjZSAnYm9vc3QnCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9zYWZlX2Jvb2wuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc2FmZV9ib29sLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWQzNGM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc2FmZV9ib29sLmhwcApAQCAtMCwwICsxLDcyIEBACisvLyAgVGhpcyBoZWFkZXIgaW50ZW50aW9uYWxseSBoYXMgbm8gaW5jbHVkZSBndWFyZHMuCisvLworLy8gIENvcHlyaWdodCAoYykgMjAxMCBOZWlsIEdyb3ZlcworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyBUaGlzIGNvZGUgdXRpbGlzZXMgdGhlIGV4cGVyaWVuY2UgZ2FpbmVkIGR1cmluZyB0aGUgZXZvbHV0aW9uIG9mCisvLyA8bmRuYm9vc3Qvc21hcnRfcHRyL29wZXJhdG9yX2Jvb2wuaHBwPgorI2lmbmRlZiBCT09TVF9SQU5HRV9TQUZFX0JPT0xfSU5DTFVERURfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX1NBRkVfQk9PTF9JTkNMVURFRF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbAorICAgIHsKKwordGVtcGxhdGU8Y2xhc3MgRGF0YU1lbWJlclB0cj4KK2NsYXNzIHNhZmVfYm9vbAoreworcHVibGljOgorICAgIHR5cGVkZWYgc2FmZV9ib29sIHRoaXNfdHlwZTsKKworI2lmIChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fU1VOUFJPX0NDLCA8IDB4NTcwKSkgfHwgZGVmaW5lZChfX0NJTlRfKQorICAgIHR5cGVkZWYgYm9vbCB1bnNwZWNpZmllZF9ib29sX3R5cGU7CisgICAgc3RhdGljIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSB0b191bnNwZWNpZmllZF9ib29sKGNvbnN0IGJvb2wgeCwgRGF0YU1lbWJlclB0cikKKyAgICB7CisgICAgICAgIHJldHVybiB4OworICAgIH0KKyNlbGlmIGRlZmluZWQoX01BTkFHRUQpCisgICAgc3RhdGljIHZvaWQgdW5zcGVjaWZpZWRfYm9vbCh0aGlzX3R5cGUqKiopCisgICAgeworICAgIH0KKyAgICB0eXBlZGVmIHZvaWQoKnVuc3BlY2lmaWVkX2Jvb2xfdHlwZSkodGhpc190eXBlKioqKTsKKyAgICBzdGF0aWMgdW5zcGVjaWZpZWRfYm9vbF90eXBlIHRvX3Vuc3BlY2lmaWVkX2Jvb2woY29uc3QgYm9vbCB4LCBEYXRhTWVtYmVyUHRyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHggPyB1bnNwZWNpZmllZF9ib29sIDogMDsKKyAgICB9CisjZWxpZiBcCisgICAgKCBkZWZpbmVkKF9fTVdFUktTX18pICYmIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgPCAweDMyMDApICkgfHwgXAorICAgICggZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fICogMTAwICsgX19HTlVDX01JTk9SX18gPCAzMDQpICkgfHwgXAorICAgICggZGVmaW5lZChfX1NVTlBST19DQykgJiYgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgPD0gMHg1OTApICkKKworICAgIHR5cGVkZWYgYm9vbCAodGhpc190eXBlOjoqdW5zcGVjaWZpZWRfYm9vbF90eXBlKSgpIGNvbnN0OworCisgICAgc3RhdGljIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSB0b191bnNwZWNpZmllZF9ib29sKGNvbnN0IGJvb2wgeCwgRGF0YU1lbWJlclB0cikKKyAgICB7CisgICAgICAgIHJldHVybiB4ID8gJnRoaXNfdHlwZTo6ZGV0YWlsX3NhZmVfYm9vbF9tZW1iZXJfZm4gOiAwOworICAgIH0KK3ByaXZhdGU6CisgICAgYm9vbCBkZXRhaWxfc2FmZV9ib29sX21lbWJlcl9mbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZWxzZQorICAgIHR5cGVkZWYgRGF0YU1lbWJlclB0ciB1bnNwZWNpZmllZF9ib29sX3R5cGU7CisgICAgc3RhdGljIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSB0b191bnNwZWNpZmllZF9ib29sKGNvbnN0IGJvb2wgeCwgRGF0YU1lbWJlclB0ciBwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHggPyBwIDogMDsKKyAgICB9CisjZW5kaWYKK3ByaXZhdGU6CisgICAgc2FmZV9ib29sKCk7CisgICAgc2FmZV9ib29sKGNvbnN0IHNhZmVfYm9vbCYpOworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IHNhZmVfYm9vbCYpOworICAgIH5zYWZlX2Jvb2woKTsKK307CisKKyAgICB9IC8vIG5hbWVzcGFjZSByYW5nZV9kZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBpbmNsdWRlIGd1YXJkCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9zZmluYWUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc2ZpbmFlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTQwYzNhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc2ZpbmFlLmhwcApAQCAtMCwwICsxLDc3IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9ERVRBSUxfU0ZJTkFFX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfU0ZJTkFFX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCisKK25hbWVzcGFjZSBuZG5ib29zdCAKK3sKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisgICAgeyAgICAgICAgICAKKyAgICAgICAgdXNpbmcgdHlwZV90cmFpdHM6Onllc190eXBlOworICAgICAgICB1c2luZyB0eXBlX3RyYWl0czo6bm9fdHlwZTsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIHN0cmluZworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIAorICAgICAgICB5ZXNfdHlwZSBpc19zdHJpbmdfaW1wbCggY29uc3QgY2hhciogY29uc3QgKTsKKyAgICAgICAgeWVzX3R5cGUgaXNfc3RyaW5nX2ltcGwoIGNvbnN0IHdjaGFyX3QqIGNvbnN0ICk7CisgICAgICAgIG5vX3R5cGUgIGlzX3N0cmluZ19pbXBsKCAuLi4gKTsKKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBzdGQ6OnNpemVfdCBzeiA+CisgICAgICAgIHllc190eXBlIGlzX2NoYXJfYXJyYXlfaW1wbCggY2hhciBCT09TVF9SQU5HRV9BUlJBWV9SRUYoKVtzel0gKTsKKyAgICAgICAgdGVtcGxhdGU8IHN0ZDo6c2l6ZV90IHN6ID4KKyAgICAgICAgeWVzX3R5cGUgaXNfY2hhcl9hcnJheV9pbXBsKCBjb25zdCBjaGFyIEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApOworICAgICAgICBub190eXBlICBpc19jaGFyX2FycmF5X2ltcGwoIC4uLiApOworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IHN0ZDo6c2l6ZV90IHN6ID4KKyAgICAgICAgeWVzX3R5cGUgaXNfd2NoYXJfdF9hcnJheV9pbXBsKCB3Y2hhcl90IEJPT1NUX1JBTkdFX0FSUkFZX1JFRigpW3N6XSApOworICAgICAgICB0ZW1wbGF0ZTwgc3RkOjpzaXplX3Qgc3ogPgorICAgICAgICB5ZXNfdHlwZSBpc193Y2hhcl90X2FycmF5X2ltcGwoIGNvbnN0IHdjaGFyX3QgQk9PU1RfUkFOR0VfQVJSQVlfUkVGKClbc3pdICk7CisgICAgICAgIG5vX3R5cGUgIGlzX3djaGFyX3RfYXJyYXlfaW1wbCggLi4uICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHllc190eXBlIGlzX2NoYXJfcHRyX2ltcGwoIGNoYXIqIGNvbnN0ICk7CisgICAgICAgIG5vX3R5cGUgIGlzX2NoYXJfcHRyX2ltcGwoIC4uLiApOworICAgICAgICAKKyAgICAgICAgeWVzX3R5cGUgaXNfY29uc3RfY2hhcl9wdHJfaW1wbCggY29uc3QgY2hhciogY29uc3QgKTsKKyAgICAgICAgbm9fdHlwZSAgaXNfY29uc3RfY2hhcl9wdHJfaW1wbCggLi4uICk7CisKKyAgICAgICAgeWVzX3R5cGUgaXNfd2NoYXJfdF9wdHJfaW1wbCggd2NoYXJfdCogY29uc3QgKTsKKyAgICAgICAgbm9fdHlwZSAgaXNfd2NoYXJfdF9wdHJfaW1wbCggLi4uICk7CisgICAgICAgIAorICAgICAgICB5ZXNfdHlwZSBpc19jb25zdF93Y2hhcl90X3B0cl9pbXBsKCBjb25zdCB3Y2hhcl90KiBjb25zdCApOworICAgICAgICBub190eXBlICBpc19jb25zdF93Y2hhcl90X3B0cl9pbXBsKCAuLi4gKTsKKyAgICAgICAgCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gcGFpcgorICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yID4KKyAgICAgICAgeWVzX3R5cGUgaXNfcGFpcl9pbXBsKCBjb25zdCBzdGQ6OnBhaXI8SXRlcmF0b3IsSXRlcmF0b3I+KiApOworICAgICAgICBub190eXBlICBpc19wYWlyX2ltcGwoIC4uLiApOworCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gdGFncworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAgICAgc3RydWN0IGNoYXJfb3Jfd2NoYXJfdF9hcnJheV90YWcge307CisgICAgICAgIAorICAgIH0gLy8gbmFtZXNwYWNlICdyYW5nZV9kZXRhaWwnCisgICAgCit9IC8vIG5hbWVzcGFjZSAnYm9vc3QnCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc2l6ZV90eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3NpemVfdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMxNDkyMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3NpemVfdHlwZS5ocHAKQEAgLTAsMCArMSw1NSBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfREVUQUlMX1NJWkVfVFlQRV9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX1NJWkVfVFlQRV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9jb21tb24uaHBwPgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIG1pc3NpbmcgcGFydGlhbCBzcGVjaWFsaXphdGlvbiAgd29ya2Fyb3VuZC4KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCisgICAgeworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplX3R5cGVfCisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90IHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX3NpemVfdHlwZV88c3RkX2NvbnRhaW5lcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgQzo6c2l6ZV90eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0KKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICBjbGFzcyByYW5nZV9zaXplCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJhbmdlX2RldGFpbDo6cmFuZ2U8Qz46OnR5cGUgY190eXBlOworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByYW5nZV9kZXRhaWw6OnJhbmdlX3NpemVfdHlwZV88Y190eXBlPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIHB0czxDPjo6dHlwZSB0eXBlOworICAgIH07Cit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RldGFpbC9zdHJfdHlwZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc3RyX3R5cGVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODI5NzYyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvc3RyX3R5cGVzLmhwcApAQCAtMCwwICsxLDM4IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDYuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfREVUQUlMX1NUUl9UWVBFU19IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX1NUUl9UWVBFU19IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL3NpemVfdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3IuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+CisgICAgc3RydWN0IHJhbmdlX211dGFibGVfaXRlcmF0b3I8VCo+CisgICAgeworICAgICAgICB0eXBlZGVmIFQqIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgICBzdHJ1Y3QgcmFuZ2VfY29uc3RfaXRlcmF0b3I8VCo+CisgICAgeworICAgICAgICB0eXBlZGVmIGNvbnN0IFQqIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgICBzdHJ1Y3QgcmFuZ2Vfc2l6ZTxUKj4KKyAgICB7CisgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCB0eXBlOworICAgIH07ICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3ZhbHVlX3R5cGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvdmFsdWVfdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVjOTE5YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3ZhbHVlX3R5cGUuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX0RFVEFJTF9WQUxVRV9UWVBFX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ERVRBSUxfVkFMVUVfVFlQRV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9jb21tb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9yZW1vdmVfZXh0ZW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl90cmFpdHMuaHBwPgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIG1pc3NpbmcgcGFydGlhbCBzcGVjaWFsaXphdGlvbiAgd29ya2Fyb3VuZC4KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCituYW1lc3BhY2UgbmRuYm9vc3QgCit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbCAKKyAgICB7ICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfdmFsdWVfdHlwZV87CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfdmFsdWVfdHlwZV88c3RkX2NvbnRhaW5lcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgQzo6dmFsdWVfdHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV92YWx1ZV90eXBlXzxzdGRfcGFpcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBQID4KKyAgICAgICAgICAgIHN0cnVjdCBwdHMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6Oml0ZXJhdG9yX3ZhbHVlPCBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIFA6OmZpcnN0X3R5cGUgPjo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV92YWx1ZV90eXBlXzxhcnJheV8+CisgICAgICAgIHsgCisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgICAgICBzdHJ1Y3QgcHRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJlbW92ZV9leHRlbnQ8VD46OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIAorICAgIH0gCisgICAgCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPgorICAgIGNsYXNzIHJhbmdlX3ZhbHVlCisgICAgeworICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGV0YWlsOjpyYW5nZTxDPjo6dHlwZSBjX3R5cGU7CisgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGV0YWlsOjpyYW5nZV92YWx1ZV90eXBlXzxjX3R5cGU+OjpCT09TVF9ORVNURURfVEVNUExBVEUgcHRzPEM+Ojp0eXBlIHR5cGU7IAorICAgIH07CisKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3ZjNi9lbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kZXRhaWwvdmM2L2VuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg1M2RlOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3ZjNi9lbmQuaHBwCkBAIC0wLDAgKzEsMTcwIEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9ERVRBSUxfVkM2X0VORF9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfREVUQUlMX1ZDNl9FTkRfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9kZXRhaWwvaW1wbGVtZW50YXRpb25faGVscC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2ltcGxlbWVudGF0aW9uX2hlbHAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL3Jlc3VsdF9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2NvbW1vbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL3JlbW92ZV9leHRlbnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgCit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbAorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfZW5kOworCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gZGVmYXVsdAorICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8c3RkX2NvbnRhaW5lcl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgc3RhdGljIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfcmVzdWx0X2l0ZXJhdG9yPEM+Ojp0eXBlIAorICAgICAgICAgICAgICAgIGZ1biggQyYgYyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYy5lbmQoKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gcGFpcgorICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8c3RkX3BhaXJfPgorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgUCA+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHN0YXRpYyBCT09TVF9SQU5HRV9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3Jlc3VsdF9pdGVyYXRvcjxQPjo6dHlwZSAKKyAgICAgICAgICAgICAgICBmdW4oIGNvbnN0IFAmIHAgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAuc2Vjb25kOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gYXJyYXkKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfZW5kPGFycmF5Xz4gIAorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHN0YXRpYyBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJlbW92ZV9leHRlbnQ8VD46OnR5cGUqCisgICAgICAgICAgICAgICAgZnVuKFQmIHQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdCArIHJlbW92ZV9leHRlbnQ8VD46OnNpemU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICAgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8Y2hhcl9hcnJheV8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgc3RhdGljIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSoKKyAgICAgICAgICAgICAgICBmdW4oVCYgdCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ICsgcmVtb3ZlX2V4dGVudDxUPjo6c2l6ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfZW5kPHdjaGFyX3RfYXJyYXlfPgorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHN0YXRpYyBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJlbW92ZV9leHRlbnQ8VD46OnR5cGUqCisgICAgICAgICAgICAgICAgZnVuKFQmIHQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdCArIHJlbW92ZV9leHRlbnQ8VD46OnNpemU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIHN0cmluZworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByYW5nZV9lbmQ8Y2hhcl9wdHJfPgorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHN0YXRpYyBjaGFyKiBmdW4oIGNoYXIqIHMgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpyYW5nZV9kZXRhaWw6OnN0cl9lbmQoIHMgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2VuZDxjb25zdF9jaGFyX3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZ1biggY29uc3QgY2hhciogcyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6c3RyX2VuZCggcyApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmFuZ2VfZW5kPHdjaGFyX3RfcHRyXz4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICBzdGF0aWMgd2NoYXJfdCogZnVuKCB3Y2hhcl90KiBzICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6cmFuZ2VfZGV0YWlsOjpzdHJfZW5kKCBzICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworCisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJhbmdlX2VuZDxjb25zdF93Y2hhcl90X3B0cl8+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IHdjaGFyX3QqIGZ1biggY29uc3Qgd2NoYXJfdCogcyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnJhbmdlX2RldGFpbDo6c3RyX2VuZCggcyApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIAorICAgIH0gLy8gbmFtZXNwYWNlICdyYW5nZV9kZXRhaWwnCisgICAgCisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEMgPgorICAgIGlubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3Jlc3VsdF9pdGVyYXRvcjxDPjo6dHlwZSAKKyAgICBlbmQoIEMmIGMgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJhbmdlX2RldGFpbDo6cmFuZ2VfZW5kPHJhbmdlX2RldGFpbDo6cmFuZ2U8Qz46OnR5cGU+Ojppbm5lcjxDPjo6ZnVuKCBjICk7CisgICAgfQorICAgIAorfSAvLyBuYW1lc3BhY2UgJ2Jvb3N0JworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kaWZmZXJlbmNlX3R5cGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9kaWZmZXJlbmNlX3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNjA1OGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2RpZmZlcmVuY2VfdHlwZS5ocHAKQEAgLTAsMCArMSwyOSBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfRElGRkVSRU5DRV9UWVBFX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9ESUZGRVJFTkNFX1RZUEVfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfdHJhaXRzLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgdGVtcGxhdGU8IGNsYXNzIFQgPgorICAgIHN0cnVjdCByYW5nZV9kaWZmZXJlbmNlIDogaXRlcmF0b3JfZGlmZmVyZW5jZTwgdHlwZW5hbWUgcmFuZ2VfaXRlcmF0b3I8VD46OnR5cGUgPgorICAgIHsgfTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2Rpc3RhbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZGlzdGFuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyZDkzZmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2Rpc3RhbmNlLmhwcApAQCAtMCwwICsxLDM0IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNi4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9ESVNUQU5DRV9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfRElTVEFOQ0VfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvYmVnaW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGlmZmVyZW5jZV90eXBlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreworCisgICAgdGVtcGxhdGU8IGNsYXNzIFQgPgorICAgIGlubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2RpZmZlcmVuY2U8VD46OnR5cGUgCisgICAgZGlzdGFuY2UoIGNvbnN0IFQmIHIgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6ZGlzdGFuY2UoIG5kbmJvb3N0OjpiZWdpbiggciApLCBuZG5ib29zdDo6ZW5kKCByICkgKTsKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlICdib29zdCcKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2VtcHR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZW1wdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZGQxNzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2VtcHR5LmhwcApAQCAtMCwwICsxLDM0IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9FTVBUWV9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfRU1QVFlfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9iZWdpbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IAoreyAKKworICAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgICBpbmxpbmUgYm9vbCBlbXB0eSggY29uc3QgVCYgciApCisgICAgeworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmJlZ2luKCByICkgPT0gbmRuYm9vc3Q6OmVuZCggciApOworICAgIH0KKworfSAvLyBuYW1lc3BhY2UgJ2Jvb3N0JworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9lbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9lbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhN2NiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2VuZC5ocHAKQEAgLTAsMCArMSwxMzYgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX0VORF9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfRU5EX0hQUAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEyMDApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2NvbmZpZy5ocHA+CisKKyNpZmRlZiBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9lbmQuaHBwPgorI2Vsc2UKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9pbXBsZW1lbnRhdGlvbl9oZWxwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uc3RfaXRlcmF0b3IuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTY0KSkgJiYgXAorICAgICFCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA8IDMpIFwKKyAgICAvKiovCituYW1lc3BhY2UgcmFuZ2VfZGV0YWlsCit7CisjZW5kaWYKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIHByaW1hcnkgdGVtcGxhdGUKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgICAgIGlubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPEM+Ojp0eXBlCisgICAgICAgIHJhbmdlX2VuZCggQyYgYyApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBJZiB5b3UgZ2V0IGEgY29tcGlsZS1lcnJvciBoZXJlLCBpdCBpcyBtb3N0IGxpa2VseSBiZWNhdXNlCisgICAgICAgICAgICAvLyB5b3UgaGF2ZSBub3QgaW1wbGVtZW50ZWQgcmFuZ2VfYmVnaW4oKSBwcm9wZXJseSBpbgorICAgICAgICAgICAgLy8gdGhlIG5hbWVzcGFjZSBvZiBDCisgICAgICAgICAgICAvLworICAgICAgICAgICAgcmV0dXJuIGMuZW5kKCk7CisgICAgICAgIH0KKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIHBhaXIKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBJdGVyYXRvciA+CisgICAgICAgIGlubGluZSBJdGVyYXRvciByYW5nZV9lbmQoIGNvbnN0IHN0ZDo6cGFpcjxJdGVyYXRvcixJdGVyYXRvcj4mIHAgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcC5zZWNvbmQ7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPgorICAgICAgICBpbmxpbmUgSXRlcmF0b3IgcmFuZ2VfZW5kKCBzdGQ6OnBhaXI8SXRlcmF0b3IsSXRlcmF0b3I+JiBwICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHAuc2Vjb25kOworICAgICAgICB9CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBhcnJheQorICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IHN6ID4KKyAgICAgICAgaW5saW5lIGNvbnN0IFQqIHJhbmdlX2VuZCggY29uc3QgVCAoJmEpW3N6XSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByYW5nZV9kZXRhaWw6OmFycmF5X2VuZDxULHN6PiggYSApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IHN6ID4KKyAgICAgICAgaW5saW5lIFQqIHJhbmdlX2VuZCggVCAoJmEpW3N6XSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByYW5nZV9kZXRhaWw6OmFycmF5X2VuZDxULHN6PiggYSApOworICAgICAgICB9CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU2NCkpICYmIFwKKyAgICAhQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKSBcCisgICAgLyoqLworfSAvLyBuYW1lc3BhY2UgJ3JhbmdlX2RldGFpbCcKKyNlbmRpZgorCituYW1lc3BhY2UgcmFuZ2VfYWRsX2JhcnJpZXIKK3sKKwordGVtcGxhdGU8IGNsYXNzIFQgPgoraW5saW5lIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8VD46OnR5cGUgZW5kKCBUJiByICkKK3sKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU2NCkpICYmIFwKKyAgICAhQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKSBcCisgICAgLyoqLworICAgIHVzaW5nIG5hbWVzcGFjZSByYW5nZV9kZXRhaWw7CisjZW5kaWYKKyAgICByZXR1cm4gcmFuZ2VfZW5kKCByICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBUID4KK2lubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPGNvbnN0IFQ+Ojp0eXBlIGVuZCggY29uc3QgVCYgciApCit7CisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAmJiBcCisgICAgIUJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorICAgIC8qKi8KKyAgICB1c2luZyBuYW1lc3BhY2UgcmFuZ2VfZGV0YWlsOworI2VuZGlmCisgICAgcmV0dXJuIHJhbmdlX2VuZCggciApOworfQorCisgICAgfSAvLyBuYW1lc3BhY2UgcmFuZ2VfYWRsX2JhcnJpZXIKK30gLy8gbmFtZXNwYWNlICdib29zdCcKKworI2VuZGlmIC8vIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgIG5hbWVzcGFjZSByYW5nZV9hZGxfYmFycmllcgorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFQgPgorICAgICAgICBpbmxpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxjb25zdCBUPjo6dHlwZQorICAgICAgICBjb25zdF9lbmQoIGNvbnN0IFQmIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnJhbmdlX2FkbF9iYXJyaWVyOjplbmQoIHIgKTsKKyAgICAgICAgfQorICAgIH0gLy8gbmFtZXNwYWNlIHJhbmdlX2FkbF9iYXJyaWVyCisgICAgdXNpbmcgbmFtZXNwYWNlIHJhbmdlX2FkbF9iYXJyaWVyOworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZnVuY3Rpb25zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvZnVuY3Rpb25zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmE1MzVmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9mdW5jdGlvbnMuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA2LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX0ZVTkNUSU9OU19IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfRlVOQ1RJT05TX0hQUAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEyMDApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL3NpemUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2Rpc3RhbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbXB0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvcmJlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9yZW5kLmhwcD4KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcxMGEyZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3IuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX0lURVJBVE9SX0hQUAorI2RlZmluZSBCT09TVF9SQU5HRV9JVEVSQVRPUl9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL211dGFibGVfaXRlcmF0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2NvbnN0X2l0ZXJhdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2NvbnN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZXZhbF9pZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzEwKQorCisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbF92YzdfMQorICAgIHsKKyAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQywgdHlwZW5hbWUgU2lnID0gdm9pZChDKSA+CisgICAgICAgc3RydWN0IHJhbmdlX2l0ZXJhdG9yCisgICAgICAgeworICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1JBTkdFX0RFRFVDRURfVFlQRU5BTUUKKyAgICAgICAgICAgICAgIG1wbDo6ZXZhbF9pZl9jPCBpc19jb25zdDxDPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfY29uc3RfaXRlcmF0b3I8IHR5cGVuYW1lIHJlbW92ZV9jb25zdDxDPjo6dHlwZSA+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlX211dGFibGVfaXRlcmF0b3I8Qz4gPjo6dHlwZSB0eXBlOworICAgICAgIH07CisKKyAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQywgdHlwZW5hbWUgVCA+CisgICAgICAgc3RydWN0IHJhbmdlX2l0ZXJhdG9yPCBDLCB2b2lkKFRbXSkgPgorICAgICAgIHsKKyAgICAgICAgICAgdHlwZWRlZiBUKiB0eXBlOworICAgICAgIH07CisgICAgfQorCisjZW5kaWYKKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICBzdHJ1Y3QgcmFuZ2VfaXRlcmF0b3IKKyAgICB7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzEwKQorCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRQorICAgICAgICAgICAgICAgcmFuZ2VfZGV0YWlsX3ZjN18xOjpyYW5nZV9pdGVyYXRvcjxDPjo6dHlwZSB0eXBlOworCisjZWxzZQorCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUkFOR0VfREVEVUNFRF9UWVBFTkFNRQorICAgICAgICAgICAgbXBsOjpldmFsX2lmX2M8IGlzX2NvbnN0PEM+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9jb25zdF9pdGVyYXRvcjwgdHlwZW5hbWUgcmVtb3ZlX2NvbnN0PEM+Ojp0eXBlID4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VfbXV0YWJsZV9pdGVyYXRvcjxDPiA+Ojp0eXBlIHR5cGU7CisKKyNlbmRpZgorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2YTkwMTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcApAQCAtMCwwICsxLDE2IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBOZWlsIEdyb3ZlcyAyMDA5LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vICBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworI2lmbmRlZiBCT09TVF9SQU5HRV9JVEVSQVRPUl9SQU5HRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfUkFOR0VfSVRFUkFUT1JfUkFOR0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlICJuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZV9jb3JlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZV9pby5ocHAiCisKKyNlbmRpZiAvLyBpbmNsdWRlIGd1YXJkCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlX2NvcmUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZV9jb3JlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGNhNGVhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZV9jb3JlLmhwcApAQCAtMCwwICsxLDY1MyBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgTmVpbCBHcm92ZXMgJiBUaG9yc3RlbiBPdHRvc2VuICYgUGF2b2wgRHJvYmEgMjAwMy0yMDA0LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vICBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworI2lmbmRlZiBCT09TVF9SQU5HRV9JVEVSQVRPUl9SQU5HRV9DT1JFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9SQU5HRV9JVEVSQVRPUl9SQU5HRV9DT1JFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gLy8gRGVmaW5lIF9fU1RMX0NPTkZJR19ILCBpZiBhcHByb3ByaWF0ZS4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIEJPT1NUX1RFU1RFRF9BVCgxNTAwKSkKKyAgICAjcHJhZ21hIHdhcm5pbmcoIHB1c2ggKQorICAgICNwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ5OTYgKQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX3RyYWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfZmFjYWRlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9pbnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZnVuY3Rpb25zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGlmZmVyZW5jZV90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9hbGdvcml0aG0vZXF1YWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9zYWZlX2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKyNpbmNsdWRlIDxpdGVyYXRvcj4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworLyohIFxmaWxlCisgICAgRGVmaW5lcyB0aGUgXGMgaXRlcmF0b3JfY2xhc3MgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLgorICAgIFxjIGl0ZXJhdG9yX3JhbmdlIGlzIGEgc2ltcGxlIHdyYXBwZXIgb2YgaXRlcmF0b3IgcGFpciBpZGlvbS4gSXQgcHJvdmlkZXMKKyAgICBhIHJpY2ggc3Vic2V0IG9mIENvbnRhaW5lciBpbnRlcmZhY2UuCisqLworCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgIG5hbWVzcGFjZSBpdGVyYXRvcl9yYW5nZV9kZXRhaWwKKyAgICB7CisgICAgICAgIC8vCisgICAgICAgIC8vIFRoZSBmdW5jdGlvbnMgYWRsX2JlZ2luIGFuZCBhZGxfZW5kIGFyZSBpbXBsZW1lbnRlZCBpbiBhIHNlcGFyYXRlCisgICAgICAgIC8vIGNsYXNzIGZvciBnY2MtMi45eAorICAgICAgICAvLworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyYXRvclQ+CisgICAgICAgIHN0cnVjdCBpdGVyYXRvcl9yYW5nZV9pbXBsIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICAgICAgc3RhdGljIEl0ZXJhdG9yVCBhZGxfYmVnaW4oIEZvcndhcmRSYW5nZSYgciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEl0ZXJhdG9yVD4oIG5kbmJvb3N0OjpiZWdpbiggciApICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICAgICAgc3RhdGljIEl0ZXJhdG9yVCBhZGxfZW5kKCBGb3J3YXJkUmFuZ2UmIHIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJdGVyYXRvclQ+KCBuZG5ib29zdDo6ZW5kKCByICkgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgTGVmdCwgY2xhc3MgUmlnaHQgPgorICAgICAgICBpbmxpbmUgYm9vbCBsZXNzX3RoYW4oIGNvbnN0IExlZnQmIGwsIGNvbnN0IFJpZ2h0JiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bGV4aWNvZ3JhcGhpY2FsX2NvbXBhcmUoIG5kbmJvb3N0OjpiZWdpbihsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZW5kKGwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjpiZWdpbihyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZW5kKHIpICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBMZWZ0LCBjbGFzcyBSaWdodCA+CisgICAgICAgIGlubGluZSBib29sIGdyZWF0ZXJfdGhhbiggY29uc3QgTGVmdCYgbCwgY29uc3QgUmlnaHQmIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbGVzc190aGFuKHIsbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBMZWZ0LCBjbGFzcyBSaWdodCA+CisgICAgICAgIGlubGluZSBib29sIGxlc3Nfb3JfZXF1YWxfdGhhbiggY29uc3QgTGVmdCYgbCwgY29uc3QgUmlnaHQmIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIWl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6bGVzc190aGFuKHIsbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBMZWZ0LCBjbGFzcyBSaWdodCA+CisgICAgICAgIGlubGluZSBib29sIGdyZWF0ZXJfb3JfZXF1YWxfdGhhbiggY29uc3QgTGVmdCYgbCwgY29uc3QgUmlnaHQmIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIWl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6bGVzc190aGFuKGwscik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIHZlcnNpb24gaXMgbWFpbnRhaW5lZCBzaW5jZSBpdCBpcyB1c2VkIGluIG90aGVyIGJvb3N0IGxpYnJhcmllcworICAgICAgICAvLyBzdWNoIGFzIEJvb3N0LkFzc2lnbgorICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgTGVmdCwgY2xhc3MgUmlnaHQgPgorICAgICAgICBpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBMZWZ0JiBsLCBjb25zdCBSaWdodCYgcikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjplcXVhbChsLCByKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnVjdCByYW5nZV90YWcgeyB9OworICAgICAgICBzdHJ1Y3QgY29uc3RfcmFuZ2VfdGFnIHsgfTsKKyAgICB9CisKKy8vICBpdGVyYXRvciByYW5nZSB0ZW1wbGF0ZSBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyAgICAgICAgLy8hIGl0ZXJhdG9yX3JhbmdlIGNsYXNzCisgICAgICAgIC8qIQorICAgICAgICAgICAgQW4gXGMgaXRlcmF0b3JfcmFuZ2UgZGVsaW1pdHMgYSByYW5nZSBpbiBhIHNlcXVlbmNlIGJ5IGJlZ2lubmluZyBhbmQgZW5kaW5nIGl0ZXJhdG9ycy4KKyAgICAgICAgICAgIEFuIGl0ZXJhdG9yX3JhbmdlIGNhbiBiZSBwYXNzZWQgdG8gYW4gYWxnb3JpdGhtIHdoaWNoIHJlcXVpcmVzIGEgc2VxdWVuY2UgYXMgYW4gaW5wdXQuCisgICAgICAgICAgICBGb3IgZXhhbXBsZSwgdGhlIFxjIHRvdXBwZXIoKSBmdW5jdGlvbiBtYXkgYmUgdXNlZCBtb3N0IGZyZXF1ZW50bHkgb24gc3RyaW5ncywKKyAgICAgICAgICAgIGJ1dCBjYW4gYWxzbyBiZSB1c2VkIG9uIGl0ZXJhdG9yX3JhbmdlczoKKworICAgICAgICAgICAgXGNvZGUKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dG9sb3dlciggZmluZCggcywgIlVQUEVSQ0FTRSBTVFJJTkciICkgKTsKKyAgICAgICAgICAgIFxlbmRjb2RlCisKKyAgICAgICAgICAgIE1hbnkgYWxnb3JpdGhtcyB3b3JraW5nIHdpdGggc2VxdWVuY2VzIHRha2UgYSBwYWlyIG9mIGl0ZXJhdG9ycywKKyAgICAgICAgICAgIGRlbGltaXRpbmcgYSB3b3JraW5nIHJhbmdlLCBhcyBhbiBhcmd1bWVudHMuIFRoZSBcYyBpdGVyYXRvcl9yYW5nZSBjbGFzcyBpcyBhbgorICAgICAgICAgICAgZW5jYXBzdWxhdGlvbiBvZiBhIHJhbmdlIGlkZW50aWZpZWQgYnkgYSBwYWlyIG9mIGl0ZXJhdG9ycy4KKyAgICAgICAgICAgIEl0IHByb3ZpZGVzIGEgY29sbGVjdGlvbiBpbnRlcmZhY2UsCisgICAgICAgICAgICBzbyBpdCBpcyBwb3NzaWJsZSB0byBwYXNzIGFuIGluc3RhbmNlIHRvIGFuIGFsZ29yaXRobSByZXF1aXJpbmcgYSBjb2xsZWN0aW9uIGFzIGFuIGlucHV0LgorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyYXRvclQ+CisgICAgICAgIGNsYXNzIGl0ZXJhdG9yX3JhbmdlCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgcmFuZ2VfZGV0YWlsOjpzYWZlX2Jvb2w8IEl0ZXJhdG9yVCBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvclQ+OjoqID4gc2FmZV9ib29sX3Q7CisgICAgICAgIHByb3RlY3RlZDogLy8gVXNlZCBieSBzdWJfcmFuZ2UKKyAgICAgICAgICAgIC8vISBpbXBsZW1lbnRhdGlvbiBjbGFzcworICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6Oml0ZXJhdG9yX3JhbmdlX2ltcGw8SXRlcmF0b3JUPiBpbXBsOworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICAvLyEgdGhpcyB0eXBlCisgICAgICAgICAgICB0eXBlZGVmIGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4gdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBzYWZlX2Jvb2xfdDo6dW5zcGVjaWZpZWRfYm9vbF90eXBlIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZTsKKyAgICAgICAgICAgIC8vQk9PU1RfQlJPS0VOX0NPTVBJTEVSX1RZUEVfVFJBSVRTX1NQRUNJQUxJWkFUSU9OKHZhbHVlX3R5cGUpOworCisgICAgICAgICAgICAvLyEgRW5jYXBzdWxhdGVkIHZhbHVlIHR5cGUKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRQorICAgICAgICAgICAgICAgIGl0ZXJhdG9yX3ZhbHVlPEl0ZXJhdG9yVD46OnR5cGUgdmFsdWVfdHlwZTsKKworICAgICAgICAgICAgLy8hIERpZmZlcmVuY2UgdHlwZQorICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FCisgICAgICAgICAgICAgICAgaXRlcmF0b3JfZGlmZmVyZW5jZTxJdGVyYXRvclQ+Ojp0eXBlIGRpZmZlcmVuY2VfdHlwZTsKKworICAgICAgICAgICAgLy8hIFNpemUgdHlwZQorICAgICAgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCBzaXplX3R5cGU7IC8vIG5vdGU6IG11c3QgYmUgdW5zaWduZWQKKworICAgICAgICAgICAgLy8hIFRoaXMgdHlwZQorICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvclQ+IHRoaXNfdHlwZTsKKworICAgICAgICAgICAgLy8hIFJlZmVyZW5jZSB0eXBlCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTmVlZGVkIGJlY2F1c2UgdmFsdWUtdHlwZSBpcyB0aGUgc2FtZSBmb3IKKyAgICAgICAgICAgIC8vIGNvbnN0IGFuZCBub24tY29uc3QgaXRlcmF0b3JzCisgICAgICAgICAgICAvLworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FCisgICAgICAgICAgICAgICAgaXRlcmF0b3JfcmVmZXJlbmNlPEl0ZXJhdG9yVD46OnR5cGUgcmVmZXJlbmNlOworCisgICAgICAgICAgICAvLyEgY29uc3RfaXRlcmF0b3IgdHlwZQorICAgICAgICAgICAgLyohCisgICAgICAgICAgICAgICAgVGhlcmUgaXMgbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBjb25zdF9pdGVyYXRvciBhbmQgaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgVGhlc2UgdHlwZWRlZnMgYXJlIHByb3ZpZGVzIHRvIGZ1bGZpbGwgY29udGFpbmVyIGludGVyZmFjZQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHR5cGVkZWYgSXRlcmF0b3JUIGNvbnN0X2l0ZXJhdG9yOworICAgICAgICAgICAgLy8hIGl0ZXJhdG9yIHR5cGUKKyAgICAgICAgICAgIHR5cGVkZWYgSXRlcmF0b3JUIGl0ZXJhdG9yOworCisgICAgICAgIHByaXZhdGU6IC8vIGZvciByZXR1cm4gdmFsdWUgb2Ygb3BlcmF0b3IoKSgpCisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6bXBsOjppZl88IG5kbmJvb3N0OjptcGw6Om9yXzwgbmRuYm9vc3Q6OmlzX2Fic3RyYWN0PCB2YWx1ZV90eXBlID4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfYXJyYXk8IHZhbHVlX3R5cGUgPiA+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlLCB2YWx1ZV90eXBlID46OnR5cGUgYWJzdHJhY3RfdmFsdWVfdHlwZTsKKworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZSgpIDogbV9CZWdpbiggaXRlcmF0b3IoKSApLCBtX0VuZCggaXRlcmF0b3IoKSApCisgICAgICAgICAgICB7IH0KKworICAgICAgICAgICAgLy8hIENvbnN0cnVjdG9yIGZyb20gYSBwYWlyIG9mIGl0ZXJhdG9ycworICAgICAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEl0ZXJhdG9yID4KKyAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlKCBJdGVyYXRvciBCZWdpbiwgSXRlcmF0b3IgRW5kICkgOgorICAgICAgICAgICAgICAgIG1fQmVnaW4oQmVnaW4pLCBtX0VuZChFbmQpCisgICAgICAgICAgICB7fQorCisgICAgICAgICAgICAvLyEgQ29uc3RydWN0b3IgZnJvbSBhIFJhbmdlCisgICAgICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUmFuZ2UgPgorICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2UoIGNvbnN0IFJhbmdlJiByICkgOgorICAgICAgICAgICAgICAgIG1fQmVnaW4oIGltcGw6OmFkbF9iZWdpbiggciApICksIG1fRW5kKCBpbXBsOjphZGxfZW5kKCByICkgKQorICAgICAgICAgICAge30KKworICAgICAgICAgICAgLy8hIENvbnN0cnVjdG9yIGZyb20gYSBSYW5nZQorICAgICAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFJhbmdlID4KKyAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlKCBSYW5nZSYgciApIDoKKyAgICAgICAgICAgICAgICBtX0JlZ2luKCBpbXBsOjphZGxfYmVnaW4oIHIgKSApLCBtX0VuZCggaW1wbDo6YWRsX2VuZCggciApICkKKyAgICAgICAgICAgIHt9CisKKyAgICAgICAgICAgIC8vISBDb25zdHJ1Y3RvciBmcm9tIGEgUmFuZ2UKKyAgICAgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBSYW5nZSA+CisgICAgICAgICAgICBpdGVyYXRvcl9yYW5nZSggY29uc3QgUmFuZ2UmIHIsIGl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6Y29uc3RfcmFuZ2VfdGFnICkgOgorICAgICAgICAgICAgICAgIG1fQmVnaW4oIGltcGw6OmFkbF9iZWdpbiggciApICksIG1fRW5kKCBpbXBsOjphZGxfZW5kKCByICkgKQorICAgICAgICAgICAge30KKworICAgICAgICAgICAgLy8hIENvbnN0cnVjdG9yIGZyb20gYSBSYW5nZQorICAgICAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFJhbmdlID4KKyAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlKCBSYW5nZSYgciwgaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpyYW5nZV90YWcgKSA6CisgICAgICAgICAgICAgICAgbV9CZWdpbiggaW1wbDo6YWRsX2JlZ2luKCByICkgKSwgbV9FbmQoIGltcGw6OmFkbF9lbmQoIHIgKSApCisgICAgICAgICAgICB7fQorCisgICAgICAgICAgICAjaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgICAgICAgICAgdGhpc190eXBlJiBvcGVyYXRvcj0oIGNvbnN0IHRoaXNfdHlwZSYgciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbV9CZWdpbiAgPSByLmJlZ2luKCk7CisgICAgICAgICAgICAgICAgbV9FbmQgICAgPSByLmVuZCgpOworICAgICAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNlbmRpZgorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3IgPgorICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2UmIG9wZXJhdG9yPSggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3I+JiByICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtX0JlZ2luICA9IHIuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICBtX0VuZCAgICA9IHIuZW5kKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgRm9yd2FyZFJhbmdlID4KKyAgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlJiBvcGVyYXRvcj0oIEZvcndhcmRSYW5nZSYgciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbV9CZWdpbiAgPSBpbXBsOjphZGxfYmVnaW4oIHIgKTsKKyAgICAgICAgICAgICAgICBtX0VuZCAgICA9IGltcGw6OmFkbF9lbmQoIHIgKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2UmIG9wZXJhdG9yPSggY29uc3QgRm9yd2FyZFJhbmdlJiByICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtX0JlZ2luICA9IGltcGw6OmFkbF9iZWdpbiggciApOworICAgICAgICAgICAgICAgIG1fRW5kICAgID0gaW1wbDo6YWRsX2VuZCggciApOworICAgICAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSXRlcmF0b3JUIGJlZ2luKCkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9CZWdpbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSXRlcmF0b3JUIGVuZCgpIGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fRW5kOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaWZmZXJlbmNlX3R5cGUgc2l6ZSgpIGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fRW5kIC0gbV9CZWdpbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBlbXB0eSgpIGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fQmVnaW4gPT0gbV9FbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG9wZXJhdG9yIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSgpIGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNhZmVfYm9vbF90Ojp0b191bnNwZWNpZmllZF9ib29sKG1fQmVnaW4gIT0gbV9FbmQsICZpdGVyYXRvcl9yYW5nZTo6bV9CZWdpbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHkoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBlcXVhbCggY29uc3QgaXRlcmF0b3JfcmFuZ2UmIHIgKSBjb25zdAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBtX0JlZ2luID09IHIubV9CZWdpbiAmJiBtX0VuZCA9PSByLm1fRW5kOworICAgICAgICAgICAgfQorCisKKyNpZmRlZiBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oIGNvbnN0IGl0ZXJhdG9yX3JhbmdlJiByICkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmVxdWFsKCAqdGhpcywgciApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sIG9wZXJhdG9yIT0oIGNvbnN0IGl0ZXJhdG9yX3JhbmdlJiByICkgY29uc3QKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIW9wZXJhdG9yPT0ocik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgYm9vbCBvcGVyYXRvcjwoIGNvbnN0IGl0ZXJhdG9yX3JhbmdlJiByICkgY29uc3QKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6bGVzc190aGFuKCAqdGhpcywgciApOworICAgICAgICAgICB9CisgICAgICAgICAgIAorICAgICAgICAgICBib29sIG9wZXJhdG9yPiggY29uc3QgaXRlcmF0b3JfcmFuZ2UmIHIgKSBjb25zdAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpncmVhdGVyX3RoYW4oICp0aGlzLCByICk7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgCisgICAgICAgICAgIGJvb2wgb3BlcmF0b3I8PSggY29uc3QgaXRlcmF0b3JfcmFuZ2UmIHIgKSBjb25zdAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpsZXNzX29yX2VxdWFsX3RoYW4oICp0aGlzLCByICk7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgCisgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+PSggY29uc3QgaXRlcmF0b3JfcmFuZ2UmIHIgKSBjb25zdAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpncmVhdGVyX29yX2VxdWFsX3RoYW4oICp0aGlzLCByICk7CisgICAgICAgICAgIH0KKworI2VuZGlmCisKKyAgICAgICAgcHVibGljOiAvLyBjb252ZW5pZW5jZQorICAgICAgICAgICByZWZlcmVuY2UgZnJvbnQoKSBjb25zdAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICBCT09TVF9BU1NFUlQoICFlbXB0eSgpICk7CisgICAgICAgICAgICAgICByZXR1cm4gKm1fQmVnaW47CisgICAgICAgICAgIH0KKworICAgICAgICAgICByZWZlcmVuY2UgYmFjaygpIGNvbnN0CisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIEJPT1NUX0FTU0VSVCggIWVtcHR5KCkgKTsKKyAgICAgICAgICAgICAgIEl0ZXJhdG9yVCBsYXN0KCBtX0VuZCApOworICAgICAgICAgICAgICAgcmV0dXJuICotLWxhc3Q7CisgICAgICAgICAgIH0KKworICAgICAgICAgICAvLyBwb3BfZnJvbnQoKSAtIGFkZGVkIHRvIG1vZGVsIHRoZSBTaW5nbGVQYXNzUmFuZ2VQcmltaXRpdmVDb25jZXB0CisgICAgICAgICAgIHZvaWQgcG9wX2Zyb250KCkKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgQk9PU1RfQVNTRVJUKCAhZW1wdHkoKSApOworICAgICAgICAgICAgICAgKyttX0JlZ2luOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8gcG9wX2JhY2soKSAtIGFkZGVkIHRvIG1vZGVsIHRoZSBCaWRpcmVjdGlvbmFsUmFuZ2VQcmltaXRpdmVDb25jZXB0CisgICAgICAgICAgIHZvaWQgcG9wX2JhY2soKQorICAgICAgICAgICB7CisgICAgICAgICAgICAgICBCT09TVF9BU1NFUlQoICFlbXB0eSgpICk7CisgICAgICAgICAgICAgICAtLW1fRW5kOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgcmVmZXJlbmNlIG9wZXJhdG9yW10oIGRpZmZlcmVuY2VfdHlwZSBhdCApIGNvbnN0CisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIEJPT1NUX0FTU0VSVCggYXQgPj0gMCAmJiBhdCA8IHNpemUoKSApOworICAgICAgICAgICAgICAgcmV0dXJuIG1fQmVnaW5bYXRdOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgLy8gV2hlbiBzdG9yaW5nIHRyYW5zZm9ybSBpdGVyYXRvcnMsIG9wZXJhdG9yW10oKQorICAgICAgICAgICAvLyBmYWlscyBiZWNhdXNlIGl0IHJldHVybnMgYnkgcmVmZXJlbmNlLiBUaGVyZWZvcmUKKyAgICAgICAgICAgLy8gb3BlcmF0b3IoKSgpIGlzIHByb3ZpZGVkIGZvciB0aGVzZSBjYXNlcy4KKyAgICAgICAgICAgLy8KKyAgICAgICAgICAgYWJzdHJhY3RfdmFsdWVfdHlwZSBvcGVyYXRvcigpKCBkaWZmZXJlbmNlX3R5cGUgYXQgKSBjb25zdAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICBCT09TVF9BU1NFUlQoIGF0ID49IDAgJiYgYXQgPCBzaXplKCkgKTsKKyAgICAgICAgICAgICAgIHJldHVybiBtX0JlZ2luW2F0XTsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgIGl0ZXJhdG9yX3JhbmdlJiBhZHZhbmNlX2JlZ2luKCBkaWZmZXJlbmNlX3R5cGUgbiApCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHN0ZDo6YWR2YW5jZSggbV9CZWdpbiwgbiApOworICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICB9CisKKyAgICAgICAgICAgaXRlcmF0b3JfcmFuZ2UmIGFkdmFuY2VfZW5kKCBkaWZmZXJlbmNlX3R5cGUgbiApCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHN0ZDo6YWR2YW5jZSggbV9FbmQsIG4gKTsKKyAgICAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgICAgfQorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICAvLyBiZWdpbiBhbmQgZW5kIGl0ZXJhdG9ycworICAgICAgICAgICAgSXRlcmF0b3JUIG1fQmVnaW47CisgICAgICAgICAgICBJdGVyYXRvclQgbV9FbmQ7CisKKyAgICAgICAgcHJvdGVjdGVkOgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFsbG93IHN1YmNsYXNzZXMgYW4gZWFzeSB3YXkgdG8gYWNjZXNzIHRoZQorICAgICAgICAgICAgLy8gYmFzZSB0eXBlCisgICAgICAgICAgICAvLworICAgICAgICAgICAgdHlwZWRlZiBpdGVyYXRvcl9yYW5nZSBpdGVyYXRvcl9yYW5nZV87CisgICAgICAgIH07CisKKy8vICBpdGVyYXRvciByYW5nZSBmcmVlLXN0YW5kaW5nIG9wZXJhdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBjb21wYXJpc29uIG9wZXJhdG9ycworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3JULCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KCBjb25zdCBGb3J3YXJkUmFuZ2UmIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmVxdWFsKCBsLCByICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3JULCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KCBjb25zdCBGb3J3YXJkUmFuZ2UmIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIW5kbmJvb3N0OjplcXVhbCggbCwgciApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEl0ZXJhdG9yVCwgY2xhc3MgRm9yd2FyZFJhbmdlID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I8KCBjb25zdCBGb3J3YXJkUmFuZ2UmIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6Omxlc3NfdGhhbiggbCwgciApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3JULCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjw9KCBjb25zdCBGb3J3YXJkUmFuZ2UmIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpsZXNzX29yX2VxdWFsX3RoYW4oIGwsIHIgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEl0ZXJhdG9yVCwgY2xhc3MgRm9yd2FyZFJhbmdlID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I+KCBjb25zdCBGb3J3YXJkUmFuZ2UmIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6OmdyZWF0ZXJfdGhhbiggbCwgciApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3JULCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj49KCBjb25zdCBGb3J3YXJkUmFuZ2UmIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpncmVhdGVyX29yX2VxdWFsX3RoYW4oIGwsIHIgKTsKKyAgICAgICAgfQorCisjaWZkZWYgQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcKKyNlbHNlCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBJdGVyYXRvcjFULCBjbGFzcyBJdGVyYXRvcjJUID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PSggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3IxVD4mIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yMlQ+JiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjplcXVhbCggbCwgciApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEl0ZXJhdG9yVCwgY2xhc3MgRm9yd2FyZFJhbmdlID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PSggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiYgbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9yd2FyZFJhbmdlJiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjplcXVhbCggbCwgciApOworICAgICAgICB9CisKKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3IxVCwgY2xhc3MgSXRlcmF0b3IyVCA+CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yMVQ+JiBsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvcjJUPiYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhbmRuYm9vc3Q6OmVxdWFsKCBsLCByICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3JULCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KCBjb25zdCBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvclQ+JiBsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3J3YXJkUmFuZ2UmIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIW5kbmJvb3N0OjplcXVhbCggbCwgciApOworICAgICAgICB9CisKKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3IxVCwgY2xhc3MgSXRlcmF0b3IyVCA+CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPCggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3IxVD4mIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3IyVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpsZXNzX3RoYW4oIGwsIHIgKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBJdGVyYXRvclQsIGNsYXNzIEZvcndhcmRSYW5nZSA+CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPCggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiYgbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3J3YXJkUmFuZ2UmIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpsZXNzX3RoYW4oIGwsIHIgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEl0ZXJhdG9yMVQsIGNsYXNzIEl0ZXJhdG9yMlQgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjw9KCBjb25zdCBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvcjFUPiYgbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3IyVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpsZXNzX29yX2VxdWFsX3RoYW4oIGwsIHIgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEl0ZXJhdG9yVCwgY2xhc3MgRm9yd2FyZFJhbmdlID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I8PSggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiYgbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9yd2FyZFJhbmdlJiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6bGVzc19vcl9lcXVhbF90aGFuKCBsLCByICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBJdGVyYXRvcjFULCBjbGFzcyBJdGVyYXRvcjJUID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I+KCBjb25zdCBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvcjFUPiYgbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVyYXRvcl9yYW5nZTxJdGVyYXRvcjJUPiYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6OmdyZWF0ZXJfdGhhbiggbCwgciApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgSXRlcmF0b3JULCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj4oIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9yd2FyZFJhbmdlJiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6Z3JlYXRlcl90aGFuKCBsLCByICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBJdGVyYXRvcjFULCBjbGFzcyBJdGVyYXRvcjJUID4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I+PSggY29uc3QgaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3IxVD4mIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yMlQ+JiByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6Z3JlYXRlcl9vcl9lcXVhbF90aGFuKCBsLCByICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBJdGVyYXRvclQsIGNsYXNzIEZvcndhcmRSYW5nZSA+CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPj0oIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZvcndhcmRSYW5nZSYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6OmdyZWF0ZXJfb3JfZXF1YWxfdGhhbiggbCwgciApOworICAgICAgICB9CisKKyNlbmRpZiAvLyBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworCisvLyAgaXRlcmF0b3IgcmFuZ2UgdXRpbGl0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworICAgICAgICAvLyEgaXRlcmF0b3JfcmFuZ2UgY29uc3RydWN0IGhlbHBlcgorICAgICAgICAvKiEKKyAgICAgICAgICAgIENvbnN0cnVjdCBhbiBcYyBpdGVyYXRvcl9yYW5nZSBmcm9tIGEgcGFpciBvZiBpdGVyYXRvcnMKKworICAgICAgICAgICAgXHBhcmFtIEJlZ2luIEEgYmVnaW4gaXRlcmF0b3IKKyAgICAgICAgICAgIFxwYXJhbSBFbmQgQW4gZW5kIGl0ZXJhdG9yCisgICAgICAgICAgICBccmV0dXJuIGl0ZXJhdG9yX3JhbmdlIG9iamVjdAorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3JUID4KKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yX3JhbmdlPCBJdGVyYXRvclQgPgorICAgICAgICBtYWtlX2l0ZXJhdG9yX3JhbmdlKCBJdGVyYXRvclQgQmVnaW4sIEl0ZXJhdG9yVCBFbmQgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2U8SXRlcmF0b3JUPiggQmVnaW4sIEVuZCApOworICAgICAgICB9CisKKyNpZmRlZiBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworCisgICAgICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBSYW5nZSA+CisgICAgICAgIGlubGluZSBpdGVyYXRvcl9yYW5nZTwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxSYW5nZT46OnR5cGUgPgorICAgICAgICBtYWtlX2l0ZXJhdG9yX3JhbmdlKCBSYW5nZSYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZTwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxSYW5nZT46OnR5cGUgPgorICAgICAgICAgICAgICAgICggbmRuYm9vc3Q6OmJlZ2luKCByICksIG5kbmJvb3N0OjplbmQoIHIgKSApOworICAgICAgICB9CisKKyNlbHNlCisgICAgICAgIC8vISBpdGVyYXRvcl9yYW5nZSBjb25zdHJ1Y3QgaGVscGVyCisgICAgICAgIC8qIQorICAgICAgICAgICAgQ29uc3RydWN0IGFuIFxjIGl0ZXJhdG9yX3JhbmdlIGZyb20gYSBcYyBSYW5nZSBjb250YWluaW5nIHRoZSBiZWdpbgorICAgICAgICAgICAgYW5kIGVuZCBpdGVyYXRvcnMuCisgICAgICAgICovCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBGb3J3YXJkUmFuZ2UgPgorICAgICAgICBpbmxpbmUgaXRlcmF0b3JfcmFuZ2U8IEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Rm9yd2FyZFJhbmdlPjo6dHlwZSA+CisgICAgICAgIG1ha2VfaXRlcmF0b3JfcmFuZ2UoIEZvcndhcmRSYW5nZSYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yX3JhbmdlPCBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPEZvcndhcmRSYW5nZT46OnR5cGUgPgorICAgICAgICAgICAgICAgICggciwgaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjpyYW5nZV90YWcoKSApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIEZvcndhcmRSYW5nZSA+CisgICAgICAgIGlubGluZSBpdGVyYXRvcl9yYW5nZTwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxjb25zdCBGb3J3YXJkUmFuZ2U+Ojp0eXBlID4KKyAgICAgICAgbWFrZV9pdGVyYXRvcl9yYW5nZSggY29uc3QgRm9yd2FyZFJhbmdlJiByICkKKyAgICAgICAgeworICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2U8IEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8Y29uc3QgRm9yd2FyZFJhbmdlPjo6dHlwZSA+CisgICAgICAgICAgICAgICAgKCByLCBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6OmNvbnN0X3JhbmdlX3RhZygpICk7CisgICAgICAgIH0KKworI2VuZGlmIC8vIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKKyAgICAgICAgbmFtZXNwYWNlIGl0ZXJhdG9yX3JhbmdlX2RldGFpbAorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUmFuZ2UgPgorICAgICAgICAgICAgaW5saW5lIGl0ZXJhdG9yX3JhbmdlPCBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPFJhbmdlPjo6dHlwZSA+CisgICAgICAgICAgICBtYWtlX3JhbmdlX2ltcGwoIFJhbmdlJiByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2RpZmZlcmVuY2U8UmFuZ2U+Ojp0eXBlIGFkdmFuY2VfYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGlmZmVyZW5jZTxSYW5nZT46OnR5cGUgYWR2YW5jZV9lbmQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gTm90IHdvcnRoIHRoZSBlZmZvcnQKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vaWYoIGFkdmFuY2VfYmVnaW4gPT0gMCAmJiBhZHZhbmNlX2VuZCA9PSAwICkKKyAgICAgICAgICAgICAgICAvLyAgICByZXR1cm4gbWFrZV9pdGVyYXRvcl9yYW5nZSggciApOworICAgICAgICAgICAgICAgIC8vCisKKyAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPFJhbmdlPjo6dHlwZQorICAgICAgICAgICAgICAgICAgICBuZXdfYmVnaW4gPSBuZG5ib29zdDo6YmVnaW4oIHIgKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3X2VuZCAgID0gbmRuYm9vc3Q6OmVuZCggciApOworICAgICAgICAgICAgICAgIHN0ZDo6YWR2YW5jZSggbmV3X2JlZ2luLCBhZHZhbmNlX2JlZ2luICk7CisgICAgICAgICAgICAgICAgc3RkOjphZHZhbmNlKCBuZXdfZW5kLCBhZHZhbmNlX2VuZCApOworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2l0ZXJhdG9yX3JhbmdlKCBuZXdfYmVnaW4sIG5ld19lbmQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisjaWZkZWYgQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcKKworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUmFuZ2UgPgorICAgICAgICBpbmxpbmUgaXRlcmF0b3JfcmFuZ2U8IEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfaXRlcmF0b3I8UmFuZ2U+Ojp0eXBlID4KKyAgICAgICAgbWFrZV9pdGVyYXRvcl9yYW5nZSggUmFuZ2UmIHIsCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGlmZmVyZW5jZTxSYW5nZT46OnR5cGUgYWR2YW5jZV9iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9kaWZmZXJlbmNlPFJhbmdlPjo6dHlwZSBhZHZhbmNlX2VuZCApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vQk9PU1RfQVNTRVJUKCBhZHZhbmNlX2JlZ2luIC0gYWR2YW5jZV9lbmQgPD0gc2l6ZShyKSAmJiAiY3JlYXRpbmcgaW52YWxpZCByYW5nZSIgKTsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcl9yYW5nZV9kZXRhaWw6Om1ha2VfcmFuZ2VfaW1wbCggciwgYWR2YW5jZV9iZWdpbiwgYWR2YW5jZV9lbmQgKTsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBSYW5nZSA+CisgICAgICAgIGlubGluZSBpdGVyYXRvcl9yYW5nZTwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9pdGVyYXRvcjxSYW5nZT46OnR5cGUgPgorICAgICAgICBtYWtlX2l0ZXJhdG9yX3JhbmdlKCBSYW5nZSYgciwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9kaWZmZXJlbmNlPFJhbmdlPjo6dHlwZSBhZHZhbmNlX2JlZ2luLAorICAgICAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2RpZmZlcmVuY2U8UmFuZ2U+Ojp0eXBlIGFkdmFuY2VfZW5kICkKKyAgICAgICAgeworICAgICAgICAgICAgLy9CT09TVF9BU1NFUlQoIGFkdmFuY2VfYmVnaW4gLSBhZHZhbmNlX2VuZCA8PSBzaXplKHIpICYmICJjcmVhdGluZyBpbnZhbGlkIHJhbmdlIiApOworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yX3JhbmdlX2RldGFpbDo6bWFrZV9yYW5nZV9pbXBsKCByLCBhZHZhbmNlX2JlZ2luLCBhZHZhbmNlX2VuZCApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFJhbmdlID4KKyAgICAgICAgaW5saW5lIGl0ZXJhdG9yX3JhbmdlPCBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPGNvbnN0IFJhbmdlPjo6dHlwZSA+CisgICAgICAgIG1ha2VfaXRlcmF0b3JfcmFuZ2UoIGNvbnN0IFJhbmdlJiByLAorICAgICAgICAgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2RpZmZlcmVuY2U8UmFuZ2U+Ojp0eXBlIGFkdmFuY2VfYmVnaW4sCisgICAgICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGlmZmVyZW5jZTxSYW5nZT46OnR5cGUgYWR2YW5jZV9lbmQgKQorICAgICAgICB7CisgICAgICAgICAgICAvL0JPT1NUX0FTU0VSVCggYWR2YW5jZV9iZWdpbiAtIGFkdmFuY2VfZW5kIDw9IHNpemUocikgJiYgImNyZWF0aW5nIGludmFsaWQgcmFuZ2UiICk7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JfcmFuZ2VfZGV0YWlsOjptYWtlX3JhbmdlX2ltcGwoIHIsIGFkdmFuY2VfYmVnaW4sIGFkdmFuY2VfZW5kICk7CisgICAgICAgIH0KKworI2VuZGlmIC8vIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKKyAgICAgICAgLy8hIGNvcHkgYSByYW5nZSBpbnRvIGEgc2VxdWVuY2UKKyAgICAgICAgLyohCisgICAgICAgICAgICBDb25zdHJ1Y3QgYSBuZXcgc2VxdWVuY2Ugb2YgdGhlIHNwZWNpZmllZCB0eXBlIGZyb20gdGhlIGVsZW1lbnRzCisgICAgICAgICAgICBpbiB0aGUgZ2l2ZW4gcmFuZ2UKKworICAgICAgICAgICAgXHBhcmFtIFJhbmdlIEFuIGlucHV0IHJhbmdlCisgICAgICAgICAgICBccmV0dXJuIE5ldyBzZXF1ZW5jZQorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgU2VxVCwgdHlwZW5hbWUgUmFuZ2UgPgorICAgICAgICBpbmxpbmUgU2VxVCBjb3B5X3JhbmdlKCBjb25zdCBSYW5nZSYgciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTZXFUKCBuZG5ib29zdDo6YmVnaW4oIHIgKSwgbmRuYm9vc3Q6OmVuZCggciApICk7CisgICAgICAgIH0KKworfSAvLyBuYW1lc3BhY2UgJ2Jvb3N0JworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCBCT09TVF9URVNURURfQVQoMTUwMCkpCisgICAgI3ByYWdtYSB3YXJuaW5nKCBwb3AgKQorI2VuZGlmCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlX2lvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2VfaW8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ZWQ3ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlX2lvLmhwcApAQCAtMCwwICsxLDkzIEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBOZWlsIEdyb3ZlcyAyMDA5LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vICBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworI2lmbmRlZiBCT09TVF9SQU5HRV9JVEVSQVRPUl9SQU5HRV9JT19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfUkFOR0VfSVRFUkFUT1JfUkFOR0VfSU9fSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgQk9PU1RfVEVTVEVEX0FUKDE1MDApKQorICAgICNwcmFnbWEgd2FybmluZyggcHVzaCApCisgICAgI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlIDogNDk5NiApCisjZW5kaWYKKworLy8gRnJvbSBib29zdC9keW5hbWljX2JpdHNldC5ocHA7IHRoYW5rcyB0byBNYXR0aGlhcyBUcm95ZXIgZm9yIENyYXkgWDEgcGF0Y2guCisjaWZuZGVmIEJPT1NUX09MRF9JT1NUUkVBTVMgCisjIGlmIGRlZmluZWQoX19TVExfQ09ORklHX0gpICYmIFwKKyAgICAhZGVmaW5lZCAoX19TVExfVVNFX05FV19JT1NUUkVBTVMpICYmICFkZWZpbmVkKF9fY3JheXgxKSBcCisgICAgLyoqLworIyAgZGVmaW5lIEJPT1NUX09MRF9JT1NUUkVBTVMKKyMgZW5kaWYKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX09MRF9JT1NUUkVBTVMKKworI2lmbmRlZiBfU1RMUF9OT19JT1NUUkVBTVMKKyMgaWZuZGVmIEJPT1NUX09MRF9JT1NUUkVBTVMKKyMgIGluY2x1ZGUgPG9zdHJlYW0+CisjIGVsc2UKKyMgIGluY2x1ZGUgPG9zdHJlYW0uaD4KKyMgZW5kaWYKKyNlbmRpZiAvLyBfU1RMUF9OT19JT1NUUkVBTVMKKworI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlX2NvcmUuaHBwPgorI2luY2x1ZGUgPGl0ZXJhdG9yPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjc3RkZGVmPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworI2lmbmRlZiBfU1RMUF9OT19JT1NUUkVBTVMKKyMgaWZuZGVmIEJPT1NUX09MRF9JT1NUUkVBTVMgICAKKworICAgICAgICAvLyEgaXRlcmF0b3JfcmFuZ2Ugb3V0cHV0IG9wZXJhdG9yCisgICAgICAgIC8qIQorICAgICAgICAgICAgT3V0cHV0IHRoZSByYW5nZSB0byBhbiBvc3RyZWFtLiBFbGVtZW50cyBhcmUgb3V0cHV0dGVkCisgICAgICAgICAgICBpbiBhIHNlcXVlbmNlIHdpdGhvdXQgc2VwYXJhdG9ycy4KKyAgICAgICAgKi8KKyAgICAgICAgdGVtcGxhdGU8IHR5cGVuYW1lIEl0ZXJhdG9yVCwgdHlwZW5hbWUgRWxlbSwgdHlwZW5hbWUgVHJhaXRzID4KKyAgICAgICAgaW5saW5lIHN0ZDo6YmFzaWNfb3N0cmVhbTxFbGVtLFRyYWl0cz4mIG9wZXJhdG9yPDwoIAorICAgICAgICAgICAgICAgICAgICBzdGQ6OmJhc2ljX29zdHJlYW08RWxlbSwgVHJhaXRzPiYgT3MsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmNvcHkoIHIuYmVnaW4oKSwgci5lbmQoKSwgCisgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRvcl92YWx1ZTxJdGVyYXRvclQ+Ojp0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbGVtLCBUcmFpdHM+KE9zKSApOworICAgICAgICAgICAgcmV0dXJuIE9zOworICAgICAgICB9CisKKyMgZWxzZQorCisgICAgICAgIC8vISBpdGVyYXRvcl9yYW5nZSBvdXRwdXQgb3BlcmF0b3IKKyAgICAgICAgLyohCisgICAgICAgICAgICBPdXRwdXQgdGhlIHJhbmdlIHRvIGFuIG9zdHJlYW0uIEVsZW1lbnRzIGFyZSBvdXRwdXR0ZWQKKyAgICAgICAgICAgIGluIGEgc2VxdWVuY2Ugd2l0aG91dCBzZXBhcmF0b3JzLgorICAgICAgICAqLworICAgICAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3JUID4KKyAgICAgICAgaW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCggCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6b3N0cmVhbSYgT3MsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZXJhdG9yX3JhbmdlPEl0ZXJhdG9yVD4mIHIgKQorICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmNvcHkoIHIuYmVnaW4oKSwgci5lbmQoKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGNoYXI+KE9zKSk7CisgICAgICAgICAgICByZXR1cm4gT3M7CisgICAgICAgIH0KKworIyBlbmRpZgorI2VuZGlmIC8vIF9TVExQX05PX0lPU1RSRUFNUworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjdW5kZWYgQk9PU1RfT0xEX0lPU1RSRUFNUworCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCBCT09TVF9URVNURURfQVQoMTUwMCkpCisgICAgI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjZW5kaWYgLy8gaW5jbHVkZSBndWFyZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9tdXRhYmxlX2l0ZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvbXV0YWJsZV9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ1ZDg2ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvbXV0YWJsZV9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSw2NyBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfTVVUQUJMRV9JVEVSQVRPUl9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfTVVUQUJMRV9JVEVSQVRPUl9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25maWcuaHBwPgorCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9pdGVyYXRvci5ocHA+CisjZWxzZQorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvZGV0YWlsL2V4dHJhY3Rfb3B0aW9uYWxfdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfdHJhaXRzLmhwcD4KKyNpbmNsdWRlIDxjc3RkZGVmPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gZGVmYXVsdAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgCisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbCB7CisgICAgICAgIEJPT1NUX1JBTkdFX0VYVFJBQ1RfT1BUSU9OQUxfVFlQRSggaXRlcmF0b3IgKQorICAgIH0KKworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDID4KKyAgICBzdHJ1Y3QgcmFuZ2VfbXV0YWJsZV9pdGVyYXRvciA6IHJhbmdlX2RldGFpbDo6ZXh0cmFjdF9pdGVyYXRvcjxDPgorICAgIHt9OworICAgIAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gcGFpcgorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgSXRlcmF0b3IgPgorICAgIHN0cnVjdCByYW5nZV9tdXRhYmxlX2l0ZXJhdG9yPCBzdGQ6OnBhaXI8SXRlcmF0b3IsSXRlcmF0b3I+ID4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlcmF0b3IgdHlwZTsKKyAgICB9OworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBhcnJheQorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgc3RkOjpzaXplX3Qgc3ogPgorICAgIHN0cnVjdCByYW5nZV9tdXRhYmxlX2l0ZXJhdG9yPCBUW3N6XSA+CisgICAgeworICAgICAgICB0eXBlZGVmIFQqIHR5cGU7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3JiZWdpbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3JiZWdpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFiMjQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvcmJlZ2luLmhwcApAQCAtMCwwICsxLDY1IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9SQkVHSU5fSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX1JCRUdJTl9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL3JldmVyc2VfaXRlcmF0b3IuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworI2lmZGVmIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKK3RlbXBsYXRlPCBjbGFzcyBDID4KK2lubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3JldmVyc2VfaXRlcmF0b3I8Qz46OnR5cGUKK3JiZWdpbiggQyYgYyApCit7CisgICAgcmV0dXJuIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfcmV2ZXJzZV9pdGVyYXRvcjxDPjo6dHlwZSggbmRuYm9vc3Q6OmVuZCggYyApICk7Cit9CisKKyNlbHNlCisKK3RlbXBsYXRlPCBjbGFzcyBDID4KK2lubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3JldmVyc2VfaXRlcmF0b3I8Qz46OnR5cGUKK3JiZWdpbiggQyYgYyApCit7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3JldmVyc2VfaXRlcmF0b3I8Qz46OnR5cGUKKyAgICAgICAgaXRlcl90eXBlOworICAgIHJldHVybiBpdGVyX3R5cGUoIG5kbmJvb3N0OjplbmQoIGMgKSApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgQyA+CitpbmxpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9yZXZlcnNlX2l0ZXJhdG9yPGNvbnN0IEM+Ojp0eXBlCityYmVnaW4oIGNvbnN0IEMmIGMgKQoreworICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9yZXZlcnNlX2l0ZXJhdG9yPGNvbnN0IEM+Ojp0eXBlCisgICAgICAgIGl0ZXJfdHlwZTsKKyAgICByZXR1cm4gaXRlcl90eXBlKCBuZG5ib29zdDo6ZW5kKCBjICkgKTsKK30KKworI2VuZGlmIC8vIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisKK3RlbXBsYXRlPCBjbGFzcyBUID4KK2lubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3JldmVyc2VfaXRlcmF0b3I8Y29uc3QgVD46OnR5cGUKK2NvbnN0X3JiZWdpbiggY29uc3QgVCYgciApCit7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpyYmVnaW4oIHIgKTsKK30KKworfSAvLyBuYW1lc3BhY2UgJ2Jvb3N0JworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9yZW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvcmVuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1YWU2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvcmVuZC5ocHAKQEAgLTAsMCArMSw2NSBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfUkVORF9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfUkVORF9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9iZWdpbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvcmV2ZXJzZV9pdGVyYXRvci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisjaWZkZWYgQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcKKwordGVtcGxhdGU8IGNsYXNzIEMgPgoraW5saW5lIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfcmV2ZXJzZV9pdGVyYXRvcjxDPjo6dHlwZQorcmVuZCggQyYgYyApCit7CisgICAgcmV0dXJuIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfcmV2ZXJzZV9pdGVyYXRvcjxDPjo6dHlwZSggbmRuYm9vc3Q6OmJlZ2luKCBjICkgKTsKK30KKworI2Vsc2UKKwordGVtcGxhdGU8IGNsYXNzIEMgPgoraW5saW5lIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfcmV2ZXJzZV9pdGVyYXRvcjxDPjo6dHlwZQorcmVuZCggQyYgYyApCit7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3JldmVyc2VfaXRlcmF0b3I8Qz46OnR5cGUKKyAgICAgICAgICAgICAgIGl0ZXJfdHlwZTsKKyAgICByZXR1cm4gaXRlcl90eXBlKCBuZG5ib29zdDo6YmVnaW4oIGMgKSApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgQyA+CitpbmxpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9yZXZlcnNlX2l0ZXJhdG9yPGNvbnN0IEM+Ojp0eXBlCityZW5kKCBjb25zdCBDJiBjICkKK3sKKyAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfcmV2ZXJzZV9pdGVyYXRvcjxjb25zdCBDPjo6dHlwZQorICAgICAgICBpdGVyX3R5cGU7CisgICAgcmV0dXJuIGl0ZXJfdHlwZSggbmRuYm9vc3Q6OmJlZ2luKCBjICkgKTsKK30KKworI2VuZGlmCisKK3RlbXBsYXRlPCBjbGFzcyBUID4KK2lubGluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX3JldmVyc2VfaXRlcmF0b3I8Y29uc3QgVD46OnR5cGUKK2NvbnN0X3JlbmQoIGNvbnN0IFQmIHIgKQoreworICAgIHJldHVybiBuZG5ib29zdDo6cmVuZCggciApOworfQorCit9IC8vIG5hbWVzcGFjZSAnYm9vc3QnCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3Jlc3VsdF9pdGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3Jlc3VsdF9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMwZGQ3NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvcmVzdWx0X2l0ZXJhdG9yLmhwcApAQCAtMCwwICsxLDMzIEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9SRVNVTFRfSVRFUkFUT1JfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX1JFU1VMVF9JVEVSQVRPUl9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgIC8vCisgICAgLy8gVGhpcyBpbnRlcmZhY2UgaXMgZGVwcmVjYXRlZCwgdXNlIHJhbmdlX2l0ZXJhdG9yPFQ+CisgICAgLy8KKyAgICAKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgc3RydWN0IHJhbmdlX3Jlc3VsdF9pdGVyYXRvciA6IHJhbmdlX2l0ZXJhdG9yPEM+CisgICAgeyB9OworICAgIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvcmV2ZXJzZV9pdGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3JldmVyc2VfaXRlcmF0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZmUwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3JldmVyc2VfaXRlcmF0b3IuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX1JFVkVSU0VfSVRFUkFUT1JfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX1JFVkVSU0VfSVRFUkFUT1JfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvcmV2ZXJzZV9pdGVyYXRvci5ocHA+CisKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBkZWZhdWx0CisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgQyA+CisgICAgc3RydWN0IHJhbmdlX3JldmVyc2VfaXRlcmF0b3IKKyAgICB7CisgICAgICAgIHR5cGVkZWYgcmV2ZXJzZV9pdGVyYXRvcjwgCisgICAgICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJhbmdlX2l0ZXJhdG9yPEM+Ojp0eXBlID4gdHlwZTsKKyAgICB9OworICAgIAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9yYW5nZS9zaXplLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2Uvc2l6ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE2NGUwMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2Uvc2l6ZS5ocHAKQEAgLTAsMCArMSw1MiBAQAorLy8gQm9vc3QuUmFuZ2UgbGlicmFyeQorLy8KKy8vICBDb3B5cmlnaHQgVGhvcnN0ZW4gT3R0b3NlbiAyMDAzLTIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9yYW5nZS8KKy8vCisKKyNpZm5kZWYgQk9PU1RfUkFOR0VfU0laRV9IUFAKKyNkZWZpbmUgQk9PU1RfUkFOR0VfU0laRV9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2JlZ2luLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL3NpemVfdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIHJhbmdlX2RldGFpbAorICAgIHsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgU2luZ2xlUGFzc1JhbmdlPgorICAgICAgICBpbmxpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSByYW5nZV9zaXplPGNvbnN0IFNpbmdsZVBhc3NSYW5nZT46OnR5cGUKKyAgICAgICAgcmFuZ2VfY2FsY3VsYXRlX3NpemUoY29uc3QgU2luZ2xlUGFzc1JhbmdlJiBybmcpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVCggKG5kbmJvb3N0OjplbmQocm5nKSAtIG5kbmJvb3N0OjpiZWdpbihybmcpKSA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFjaGFiaWxpdHkgaW52YXJpYW50IGJyb2tlbiEiICk7CisgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmVuZChybmcpIC0gbmRuYm9vc3Q6OmJlZ2luKHJuZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBTaW5nbGVQYXNzUmFuZ2U+CisgICAgaW5saW5lIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2Vfc2l6ZTxjb25zdCBTaW5nbGVQYXNzUmFuZ2U+Ojp0eXBlCisgICAgc2l6ZShjb25zdCBTaW5nbGVQYXNzUmFuZ2UmIHJuZykKKyAgICB7CisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAmJiBcCisgICAgIUJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorICAgIC8qKi8KKyAgICAgICAgdXNpbmcgbmFtZXNwYWNlIHJhbmdlX2RldGFpbDsKKyNlbmRpZgorICAgICAgICByZXR1cm4gcmFuZ2VfY2FsY3VsYXRlX3NpemUocm5nKTsKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlICdib29zdCcKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3NpemVfdHlwZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3NpemVfdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFlOGE4NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2Uvc2l6ZV90eXBlLmhwcApAQCAtMCwwICsxLDg5IEBACisvLyBCb29zdC5SYW5nZSBsaWJyYXJ5CisvLworLy8gIENvcHlyaWdodCBUaG9yc3RlbiBPdHRvc2VuIDIwMDMtMjAwNC4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyAgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24KKy8vICAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3JhbmdlLworLy8KKworI2lmbmRlZiBCT09TVF9SQU5HRV9TSVpFX1RZUEVfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX1NJWkVfVFlQRV9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RpZmZlcmVuY2VfdHlwZS5ocHA+CisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC9zaXplX3R5cGUuaHBwPgorI2Vsc2UKKworI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tYWtlX3Vuc2lnbmVkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY29uc3QuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8dXRpbGl0eT4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIGRldGFpbAorICAgIHsKKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBkZWZhdWx0CisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgY2xhc3MgaGFzX3NpemVfdHlwZQorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGNoYXIgbm9fdHlwZTsKKyAgICAgICAgICAgIHN0cnVjdCB5ZXNfdHlwZSB7IGNoYXIgZHVtbXlbMl07IH07CisKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEM+CisgICAgICAgICAgICBzdGF0aWMgeWVzX3R5cGUgdGVzdChCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6OnNpemVfdHlwZSB4KTsKKworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgQXJnPgorICAgICAgICAgICAgc3RhdGljIG5vX3R5cGUgdGVzdChBcmcgeCk7CisKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YodGVzdDxUPigwKSkgPT0gc2l6ZW9mKHllc190eXBlKTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBFbmFibGVyPXZvaWQ+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBtYWtlX3Vuc2lnbmVkPAorICAgICAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmFuZ2VfZGlmZmVyZW5jZTxDPjo6dHlwZQorICAgICAgICAgICAgPjo6dHlwZSB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEM+CisgICAgICAgIHN0cnVjdCByYW5nZV9zaXplPAorICAgICAgICAgICAgQywKKyAgICAgICAgICAgIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZW5hYmxlX2lmPGhhc19zaXplX3R5cGU8Qz4sIHZvaWQ+Ojp0eXBlCisgICAgICAgID4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6OnNpemVfdHlwZSB0eXBlOworICAgICAgICB9OworCisgICAgfQorCisgICAgdGVtcGxhdGU8IGNsYXNzIFQgPgorICAgIHN0cnVjdCByYW5nZV9zaXplIDoKKyAgICAgICAgZGV0YWlsOjpyYW5nZV9zaXplPFQ+CisgICAgeyB9OworCisgICAgdGVtcGxhdGU8IGNsYXNzIFQgPgorICAgIHN0cnVjdCByYW5nZV9zaXplPGNvbnN0IFQgPgorICAgICAgICA6IGRldGFpbDo6cmFuZ2Vfc2l6ZTxUPgorICAgIHsgfTsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvcmFuZ2UvdmFsdWVfdHlwZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3ZhbHVlX3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NWVkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3JhbmdlL3ZhbHVlX3R5cGUuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKy8vIEJvb3N0LlJhbmdlIGxpYnJhcnkKKy8vCisvLyAgQ29weXJpZ2h0IFRob3JzdGVuIE90dG9zZW4gMjAwMy0yMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcmFuZ2UvCisvLworCisjaWZuZGVmIEJPT1NUX1JBTkdFX1ZBTFVFX1RZUEVfSFBQCisjZGVmaW5lIEJPT1NUX1JBTkdFX1ZBTFVFX1RZUEVfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTIwMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvcmFuZ2UvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9yYW5nZS9pdGVyYXRvci5ocHA+CisKKy8vI2lmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKy8vI2luY2x1ZGUgPG5kbmJvb3N0L3JhbmdlL2RldGFpbC92YWx1ZV90eXBlLmhwcD4KKy8vI2Vsc2UKKworI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX3RyYWl0cy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworICAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgICBzdHJ1Y3QgcmFuZ2VfdmFsdWUgOiBpdGVyYXRvcl92YWx1ZTwgdHlwZW5hbWUgcmFuZ2VfaXRlcmF0b3I8VD46OnR5cGUgPgorICAgIHsgfTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3JlZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3JlZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQyMGJjYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvcmVmLmhwcApAQCAtMCwwICsxLDE4OSBAQAorI2lmbmRlZiBCT09TVF9SRUZfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1JFRl9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvYWRkcmVzc29mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisvLworLy8gIHJlZi5ocHAgLSByZWYvY3JlZiwgdXNlZnVsIGhlbHBlciBmdW5jdGlvbnMKKy8vCisvLyAgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vICBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YKKy8vICBDb3B5cmlnaHQgKEMpIDIwMDIgRGF2aWQgQWJyYWhhbXMKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2JpbmQvcmVmLmh0bWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgcmVmZXJlbmNlX3dyYXBwZXIKK3sgCitwdWJsaWM6CisgICAgdHlwZWRlZiBUIHR5cGU7CisKKyNpZiBkZWZpbmVkKCBCT09TVF9NU1ZDICkgJiYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPCAxMzAwICkKKworICAgIGV4cGxpY2l0IHJlZmVyZW5jZV93cmFwcGVyKFQmIHQpOiB0XygmdCkge30KKworI2Vsc2UKKworICAgIGV4cGxpY2l0IHJlZmVyZW5jZV93cmFwcGVyKFQmIHQpOiB0XyhuZG5ib29zdDo6YWRkcmVzc29mKHQpKSB7fQorCisjZW5kaWYKKworICAgIG9wZXJhdG9yIFQmICgpIGNvbnN0IHsgcmV0dXJuICp0XzsgfQorCisgICAgVCYgZ2V0KCkgY29uc3QgeyByZXR1cm4gKnRfOyB9CisKKyAgICBUKiBnZXRfcG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIHRfOyB9CisKK3ByaXZhdGU6CisKKyAgICBUKiB0XzsKK307CisKKyMgaWYgZGVmaW5lZCggX19CT1JMQU5EQ19fICkgJiYgQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1ODEpICkKKyMgIGRlZmluZSBCT09TVF9SRUZfQ09OU1QKKyMgZWxzZQorIyAgZGVmaW5lIEJPT1NUX1JFRl9DT05TVCBjb25zdAorIyBlbmRpZgorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgcmVmZXJlbmNlX3dyYXBwZXI8VD4gQk9PU1RfUkVGX0NPTlNUIHJlZihUICYgdCkKK3sgCisgICAgcmV0dXJuIHJlZmVyZW5jZV93cmFwcGVyPFQ+KHQpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgcmVmZXJlbmNlX3dyYXBwZXI8VCBjb25zdD4gQk9PU1RfUkVGX0NPTlNUIGNyZWYoVCBjb25zdCAmIHQpCit7CisgICAgcmV0dXJuIHJlZmVyZW5jZV93cmFwcGVyPFQgY29uc3Q+KHQpOworfQorCisjIHVuZGVmIEJPT1NUX1JFRl9DT05TVAorCisjIGlmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBpc19yZWZlcmVuY2Vfd3JhcHBlcgorICAgIDogcHVibGljIG1wbDo6ZmFsc2VfCit7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgdW53cmFwX3JlZmVyZW5jZQoreworIHB1YmxpYzoKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKKyMgIGRlZmluZSBBVVhfUkVGRVJFTkNFX1dSQVBQRVJfTUVUQUZVTkNUSU9OU19ERUYoWCkgXAordGVtcGxhdGU8dHlwZW5hbWUgVD4gXAorY2xhc3MgaXNfcmVmZXJlbmNlX3dyYXBwZXI8IFggPiBcCisgICAgOiBwdWJsaWMgbXBsOjp0cnVlXyBcCit7IFwKK307IFwKK1wKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFwKK2NsYXNzIHVud3JhcF9yZWZlcmVuY2U8IFggPiBcCit7IFwKKyBwdWJsaWM6IFwKKyAgICB0eXBlZGVmIFQgdHlwZTsgXAorfTsgXAorLyoqLworCitBVVhfUkVGRVJFTkNFX1dSQVBQRVJfTUVUQUZVTkNUSU9OU19ERUYocmVmZXJlbmNlX3dyYXBwZXI8VD4pCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1ZfU1BFQ0lBTElaQVRJT05TKQorQVVYX1JFRkVSRU5DRV9XUkFQUEVSX01FVEFGVU5DVElPTlNfREVGKHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0KQorQVVYX1JFRkVSRU5DRV9XUkFQUEVSX01FVEFGVU5DVElPTlNfREVGKHJlZmVyZW5jZV93cmFwcGVyPFQ+IHZvbGF0aWxlKQorQVVYX1JFRkVSRU5DRV9XUkFQUEVSX01FVEFGVU5DVElPTlNfREVGKHJlZmVyZW5jZV93cmFwcGVyPFQ+IGNvbnN0IHZvbGF0aWxlKQorI2VuZGlmCisKKyMgIHVuZGVmIEFVWF9SRUZFUkVOQ0VfV1JBUFBFUl9NRVRBRlVOQ1RJT05TX0RFRgorCisjIGVsc2UgLy8gbm8gcGFydGlhbCBzcGVjaWFsaXphdGlvbgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisgIHR5cGVkZWYgY2hhciAoJnllc19yZWZlcmVuY2Vfd3JhcHBlcl90KVsxXTsKKyAgdHlwZWRlZiBjaGFyICgmbm9fcmVmZXJlbmNlX3dyYXBwZXJfdClbMl07CisgICAgICAKKyAgbm9fcmVmZXJlbmNlX3dyYXBwZXJfdCBpc19yZWZlcmVuY2Vfd3JhcHBlcl90ZXN0KC4uLik7CisKKyAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgeWVzX3JlZmVyZW5jZV93cmFwcGVyX3QgaXNfcmVmZXJlbmNlX3dyYXBwZXJfdGVzdCh0eXBlPCByZWZlcmVuY2Vfd3JhcHBlcjxUPiA+KTsKKworICB0ZW1wbGF0ZTxib29sIHdyYXBwZWQ+CisgIHN0cnVjdCByZWZlcmVuY2VfdW53cmFwcGVyCisgIHsKKyAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgc3RydWN0IGFwcGx5CisgICAgICB7CisgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICB9OworICB9OworCisgIHRlbXBsYXRlPD4KKyAgc3RydWN0IHJlZmVyZW5jZV91bndyYXBwZXI8dHJ1ZT4KKyAgeworICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICBzdHJ1Y3QgYXBwbHkKKyAgICAgIHsKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFQ6OnR5cGUgdHlwZTsKKyAgICAgIH07CisgIH07Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBpc19yZWZlcmVuY2Vfd3JhcHBlcgoreworIHB1YmxpYzoKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gKAorICAgICAgICAgICAgIHNpemVvZihkZXRhaWw6OmlzX3JlZmVyZW5jZV93cmFwcGVyX3Rlc3QodHlwZTxUPigpKSkKKyAgICAgICAgICAgID09IHNpemVvZihkZXRhaWw6Onllc19yZWZlcmVuY2Vfd3JhcHBlcl90KSkpOworICAgIAorICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6bXBsOjpib29sXzx2YWx1ZT4gdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorY2xhc3MgdW53cmFwX3JlZmVyZW5jZQorICAgIDogcHVibGljIGRldGFpbDo6cmVmZXJlbmNlX3Vud3JhcHBlcjwKKyAgICAgICAgaXNfcmVmZXJlbmNlX3dyYXBwZXI8VD46OnZhbHVlCisgICAgICA+Ojp0ZW1wbGF0ZSBhcHBseTxUPgore307CisKKyMgZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIHR5cGVuYW1lIHVud3JhcF9yZWZlcmVuY2U8VD46OnR5cGUmCit1bndyYXBfcmVmKFQmIHQpCit7CisgICAgcmV0dXJuIHQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBUKiBnZXRfcG9pbnRlciggcmVmZXJlbmNlX3dyYXBwZXI8VD4gY29uc3QgJiByICkKK3sKKyAgICByZXR1cm4gci5nZXRfcG9pbnRlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9SRUZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Njb3BlZF9hcnJheS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Njb3BlZF9hcnJheS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYwYjUyZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc2NvcGVkX2FycmF5LmhwcApAQCAtMCwwICsxLDE2IEBACisjaWZuZGVmIEJPT1NUX1NDT1BFRF9BUlJBWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU0NPUEVEX0FSUkFZX0hQUF9JTkNMVURFRAorCisvLyAgKEMpIENvcHlyaWdodCBHcmVnIENvbHZpbiBhbmQgQmVtYW4gRGF3ZXMgMTk5OCwgMTk5OS4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3Njb3BlZF9hcnJheS5odG0KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvc2NvcGVkX2FycmF5LmhwcD4KKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NDT1BFRF9BUlJBWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc2NvcGVkX3B0ci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Njb3BlZF9wdHIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMTc4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Njb3BlZF9wdHIuaHBwCkBAIC0wLDAgKzEsMTYgQEAKKyNpZm5kZWYgQk9PU1RfU0NPUEVEX1BUUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU0NPUEVEX1BUUl9IUFBfSU5DTFVERUQKKworLy8gIChDKSBDb3B5cmlnaHQgR3JlZyBDb2x2aW4gYW5kIEJlbWFuIERhd2VzIDE5OTgsIDE5OTkuCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3NtYXJ0X3B0ci9zY29wZWRfcHRyLmh0bQorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9zY29wZWRfcHRyLmhwcD4KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU0NPUEVEX1BUUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc2hhcmVkX2FycmF5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc2hhcmVkX2FycmF5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGEwODRkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zaGFyZWRfYXJyYXkuaHBwCkBAIC0wLDAgKzEsMTkgQEAKKyNpZm5kZWYgQk9PU1RfU0hBUkVEX0FSUkFZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TSEFSRURfQVJSQVlfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgc2hhcmVkX2FycmF5LmhwcAorLy8KKy8vICAoQykgQ29weXJpZ2h0IEdyZWcgQ29sdmluIGFuZCBCZW1hbiBEYXdlcyAxOTk4LCAxOTk5LgorLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5ocHA+CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TSEFSRURfQVJSQVlfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NoYXJlZF9wdHIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zaGFyZWRfcHRyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTE5MjZhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zaGFyZWRfcHRyLmhwcApAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIEJPT1NUX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgc2hhcmVkX3B0ci5ocHAKKy8vCisvLyAgKEMpIENvcHlyaWdodCBHcmVnIENvbHZpbiBhbmQgQmVtYW4gRGF3ZXMgMTk5OCwgMTk5OS4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHRtIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9zaGFyZWRfcHRyLmhwcD4KKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9hbGxvY2F0ZV9zaGFyZWRfYXJyYXkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvYWxsb2NhdGVfc2hhcmVkX2FycmF5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTc4YmQyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvYWxsb2NhdGVfc2hhcmVkX2FycmF5LmhwcApAQCAtMCwwICsxLDI1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBHbGVuIEpvc2VwaCBGZXJuYW5kZXMKKyAqIGdsZW5mZSBhdCBsaXZlIGRvdCBjb20KKyAqCisgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dAorICogb3IgY29weSBhdCBodHRwOi8vYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAqLworI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfQUxMT0NBVEVfU0hBUkVEX0FSUkFZX0hQUAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfQUxMT0NBVEVfU0hBUkVEX0FSUkFZX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYWxsb2NhdGVfYXJyYXlfaGVscGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X2RlbGV0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdHJhaXRzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2lmX2FycmF5LmhwcD4KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZChjb25zdCBBJiBhbGxvY2F0b3IsIHN0ZDo6c2l6ZV90IHNpemUsIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQSwgdHlwZW5hbWUuLi4gQXJncz4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfc2l6ZV9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZChjb25zdCBBJiBhbGxvY2F0b3IsIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUMltOXT4gYTEoYWxsb2NhdG9yLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMiwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEE+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLCBjb25zdCBUJiBsaXN0KSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVDIgVDM7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIFQzKiBwMyA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUMltOXT4gYTEoYWxsb2NhdG9yLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDMqPihsaXN0KTsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXRfbGlzdChwMiwgcDMpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplLAorICAgICAgICBjb25zdCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSYgbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE0gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgVDMqIHAzID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBNICogc2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDMgPSByZWludGVycHJldF9jYXN0PFQzKj4obGlzdCk7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT50ZW1wbGF0ZSBpbml0X2xpc3Q8TT4ocDIsIHAzKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEE+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLAorICAgICAgICBjb25zdCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSYgbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE0gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemUsCisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgVDMqIHAzID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW05dPiBhMShhbGxvY2F0b3IsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAzID0gcmVpbnRlcnByZXRfY2FzdDxUMyo+KGxpc3QpOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+dGVtcGxhdGUgaW5pdF9saXN0PE0+KHAyLCBwMyk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZChjb25zdCBBJiBhbGxvY2F0b3IsCisgICAgICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZT4gbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBUMyogcDMgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IGxpc3Quc2l6ZSgpICogbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVDJbXT4gYTEoYWxsb2NhdG9yLCBuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDMqPihsaXN0LmJlZ2luKCkpOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdF9saXN0KHAyLCBwMyk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEE+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgYWxsb2NhdGVfc2hhcmVkKGNvbnN0IEEmIGFsbG9jYXRvciwgc3RkOjpzaXplX3Qgc2l6ZSwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUPjo6dHlwZSYmIHZhbHVlKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8VDI+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgYWxsb2NhdGVfc2hhcmVkKGNvbnN0IEEmIGFsbG9jYXRvciwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUPjo6dHlwZSYmIHZhbHVlKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUMltOXT4gYTEoYWxsb2NhdG9yLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMiwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxUMj4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZF9ub2luaXQoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPm5vaW5pdChwMik7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgYWxsb2NhdGVfc2hhcmVkX25vaW5pdChjb25zdCBBJiBhbGxvY2F0b3IpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW05dPiBhMShhbGxvY2F0b3IsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5ub2luaXQocDIpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvYmFkX3dlYWtfcHRyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2JhZF93ZWFrX3B0ci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxMTExYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2JhZF93ZWFrX3B0ci5ocHAKQEAgLTAsMCArMSw1OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfQkFEX1dFQUtfUFRSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfQkFEX1dFQUtfUFRSX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9zbWFydF9wdHIvYmFkX3dlYWtfcHRyLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8ZXhjZXB0aW9uPgorCisjaWZkZWYgX19CT1JMQU5EQ19fCisjIHByYWdtYSB3YXJuIC04MDI2ICAgICAvLyBGdW5jdGlvbnMgd2l0aCBleGNlcC4gc3BlYy4gYXJlIG5vdCBleHBhbmRlZCBpbmxpbmUKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworLy8gVGhlIHN0YW5kYXJkIGxpYnJhcnkgdGhhdCBjb21lcyB3aXRoIEJvcmxhbmQgQysrIDUuNS4xLCA1LjYuNAorLy8gZGVmaW5lcyBzdGQ6OmV4Y2VwdGlvbiBhbmQgaXRzIG1lbWJlcnMgYXMgaGF2aW5nIEMgY2FsbGluZworLy8gY29udmVudGlvbiAoLXBjKS4gV2hlbiB0aGUgZGVmaW5pdGlvbiBvZiBiYWRfd2Vha19wdHIKKy8vIGlzIGNvbXBpbGVkIHdpdGggLXBzLCB0aGUgY29tcGlsZXIgaXNzdWVzIGFuIGVycm9yLgorLy8gSGVuY2UsIHRoZSB0ZW1wb3JhcnkgI3ByYWdtYSBvcHRpb24gLXBjIGJlbG93LgorCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIF9fQk9STEFORENfXyA8PSAweDU2NAorIyBwcmFnbWEgb3B0aW9uIHB1c2ggLXBjCisjZW5kaWYKKworY2xhc3MgYmFkX3dlYWtfcHRyOiBwdWJsaWMgc3RkOjpleGNlcHRpb24KK3sKK3B1YmxpYzoKKworICAgIHZpcnR1YWwgY2hhciBjb25zdCAqIHdoYXQoKSBjb25zdCB0aHJvdygpCisgICAgeworICAgICAgICByZXR1cm4gInRyMTo6YmFkX3dlYWtfcHRyIjsKKyAgICB9Cit9OworCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIF9fQk9STEFORENfXyA8PSAweDU2NAorIyBwcmFnbWEgb3B0aW9uIHBvcAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZmRlZiBfX0JPUkxBTkRDX18KKyMgcHJhZ21hIHdhcm4gLjgwMjYgICAgIC8vIEZ1bmN0aW9ucyB3aXRoIGV4Y2VwLiBzcGVjLiBhcmUgbm90IGV4cGFuZGVkIGlubGluZQorI2VuZGlmCisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfQkFEX1dFQUtfUFRSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FsbG9jYXRlX2FycmF5X2hlbHBlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYWxsb2NhdGVfYXJyYXlfaGVscGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGFkMzgwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FsbG9jYXRlX2FycmF5X2hlbHBlci5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzIAorICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCAKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BTExPQ0FURV9BUlJBWV9IRUxQRVJfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQUxMT0NBVEVfQVJSQVlfSEVMUEVSX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25tZW50X29mLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgWSA9IGNoYXI+CisgICAgICAgIGNsYXNzIGFsbG9jYXRlX2FycmF5X2hlbHBlcjsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgWT4KKyAgICAgICAgY2xhc3MgYWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFRbXSwgWT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQTksIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBZOT4KKyAgICAgICAgICAgIGZyaWVuZCBjbGFzcyBhbGxvY2F0ZV9hcnJheV9oZWxwZXI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDxZPiAgIDo6b3RoZXIgQTI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDxjaGFyPjo6b3RoZXIgQTM7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OnZhbHVlX3R5cGUgICAgICB2YWx1ZV90eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6cG9pbnRlciAgICAgICAgIHBvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpjb25zdF9wb2ludGVyICAgY29uc3RfcG9pbnRlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OnJlZmVyZW5jZSAgICAgICByZWZlcmVuY2U7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpjb25zdF9yZWZlcmVuY2UgY29uc3RfcmVmZXJlbmNlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6c2l6ZV90eXBlICAgICAgIHNpemVfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OmRpZmZlcmVuY2VfdHlwZSBkaWZmZXJlbmNlX3R5cGU7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgc3RydWN0IHJlYmluZCB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBhbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVFtdLCBVPiBvdGhlcjsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBhbGxvY2F0ZV9hcnJheV9oZWxwZXIoY29uc3QgQSYgYWxsb2NhdG9yXywgc3RkOjpzaXplX3Qgc2l6ZV8sIFQqKiBkYXRhXykKKyAgICAgICAgICAgICAgICA6IGFsbG9jYXRvcihhbGxvY2F0b3JfKSwKKyAgICAgICAgICAgICAgICAgIHNpemUoc2l6ZW9mKFQpICogc2l6ZV8pLAorICAgICAgICAgICAgICAgICAgZGF0YShkYXRhXykgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgICAgIGFsbG9jYXRlX2FycmF5X2hlbHBlcihjb25zdCBhbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVFtdLCBVPiYgb3RoZXIpIAorICAgICAgICAgICAgICAgIDogYWxsb2NhdG9yKG90aGVyLmFsbG9jYXRvciksCisgICAgICAgICAgICAgICAgICBzaXplKG90aGVyLnNpemUpLAorICAgICAgICAgICAgICAgICAgZGF0YShvdGhlci5kYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb2ludGVyIGFkZHJlc3MocmVmZXJlbmNlIHZhbHVlKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvci5hZGRyZXNzKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0X3BvaW50ZXIgYWRkcmVzcyhjb25zdF9yZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdG9yLmFkZHJlc3ModmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0b3IubWF4X3NpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvaW50ZXIgYWxsb2NhdGUoc2l6ZV90eXBlIGNvdW50LCBjb25zdCB2b2lkKiB2YWx1ZSA9IDApIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgY2hhciogIHAxID0gQTMoYWxsb2NhdG9yKS5hbGxvY2F0ZShuMSArIHNpemUsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDIgPSBwMSArIG4xOworICAgICAgICAgICAgICAgIHdoaWxlIChzdGQ6OnNpemVfdChwMikgJSBhMSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHAyLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICpkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxUKj4ocDIpOworICAgICAgICAgICAgICAgIHJldHVybiAgcmVpbnRlcnByZXRfY2FzdDxZKj4ocDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBkZWFsbG9jYXRlKHBvaW50ZXIgbWVtb3J5LCBzaXplX3R5cGUgY291bnQpIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgY2hhciogIHAxID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVtb3J5KTsKKyAgICAgICAgICAgICAgICBBMyhhbGxvY2F0b3IpLmRlYWxsb2NhdGUocDEsIG4xICsgc2l6ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGNvbnN0cnVjdChwb2ludGVyIG1lbW9yeSwgY29uc3QgWSYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3IuY29uc3RydWN0KG1lbW9yeSwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBkZXN0cm95KHBvaW50ZXIgbWVtb3J5KSB7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLmRlc3Ryb3kobWVtb3J5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgYWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFRbXSwgVT4mIG90aGVyKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvciA9PSBvdGhlci5hbGxvY2F0b3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW10sIFU+JiBvdGhlcikgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgCisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBBMiBhbGxvY2F0b3I7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBzaXplOworICAgICAgICAgICAgVCoqIGRhdGE7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4sIHR5cGVuYW1lIFk+CisgICAgICAgIGNsYXNzIGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBZPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBOSwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFk5PgorICAgICAgICAgICAgZnJpZW5kIGNsYXNzIGFsbG9jYXRlX2FycmF5X2hlbHBlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6dGVtcGxhdGUgcmViaW5kPFk+ICAgOjpvdGhlciBBMjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6dGVtcGxhdGUgcmViaW5kPGNoYXI+OjpvdGhlciBBMzsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6dmFsdWVfdHlwZSAgICAgIHZhbHVlX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpwb2ludGVyICAgICAgICAgcG9pbnRlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OmNvbnN0X3BvaW50ZXIgICBjb25zdF9wb2ludGVyOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6cmVmZXJlbmNlICAgICAgIHJlZmVyZW5jZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OmNvbnN0X3JlZmVyZW5jZSBjb25zdF9yZWZlcmVuY2U7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpzaXplX3R5cGUgICAgICAgc2l6ZV90eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6ZGlmZmVyZW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBzdHJ1Y3QgcmViaW5kIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBVPiBvdGhlcjsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBhbGxvY2F0ZV9hcnJheV9oZWxwZXIoY29uc3QgQSYgYWxsb2NhdG9yXywgVCoqIGRhdGFfKQorICAgICAgICAgICAgICAgIDogYWxsb2NhdG9yKGFsbG9jYXRvcl8pLAorICAgICAgICAgICAgICAgICAgZGF0YShkYXRhXykgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgICAgIGFsbG9jYXRlX2FycmF5X2hlbHBlcihjb25zdCBhbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVFtOXSwgVT4mIG90aGVyKSAKKyAgICAgICAgICAgICAgICA6IGFsbG9jYXRvcihvdGhlci5hbGxvY2F0b3IpLAorICAgICAgICAgICAgICAgICAgZGF0YShvdGhlci5kYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb2ludGVyIGFkZHJlc3MocmVmZXJlbmNlIHZhbHVlKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvci5hZGRyZXNzKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0X3BvaW50ZXIgYWRkcmVzcyhjb25zdF9yZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdG9yLmFkZHJlc3ModmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0b3IubWF4X3NpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvaW50ZXIgYWxsb2NhdGUoc2l6ZV90eXBlIGNvdW50LCBjb25zdCB2b2lkKiB2YWx1ZSA9IDApIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgY2hhciogIHAxID0gQTMoYWxsb2NhdG9yKS5hbGxvY2F0ZShuMSArIE4xLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgY2hhciogIHAyID0gcDEgKyBuMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RkOjpzaXplX3QocDIpICUgYTEgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBwMi0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KHAyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gIHJlaW50ZXJwcmV0X2Nhc3Q8WSo+KHAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgZGVhbGxvY2F0ZShwb2ludGVyIG1lbW9yeSwgc2l6ZV90eXBlIGNvdW50KSB7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgYTEgPSBuZG5ib29zdDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZTsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IGNvdW50ICogc2l6ZW9mKFkpICsgYTEgLSAxOworICAgICAgICAgICAgICAgIGNoYXIqICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1lbW9yeSk7CisgICAgICAgICAgICAgICAgQTMoYWxsb2NhdG9yKS5kZWFsbG9jYXRlKHAxLCBuMSArIE4xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgY29uc3RydWN0KHBvaW50ZXIgbWVtb3J5LCBjb25zdCBZJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGFsbG9jYXRvci5jb25zdHJ1Y3QobWVtb3J5LCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGRlc3Ryb3kocG9pbnRlciBtZW1vcnkpIHsKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3IuZGVzdHJveShtZW1vcnkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBhbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVFtOXSwgVT4mIG90aGVyKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvciA9PSBvdGhlci5hbGxvY2F0b3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBVPiYgb3RoZXIpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IAorICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgZW51bSB7CisgICAgICAgICAgICAgICAgTjEgPSBOICogc2l6ZW9mKFQpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgQTIgYWxsb2NhdG9yOworICAgICAgICAgICAgVCoqIGRhdGE7CisgICAgICAgIH07CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV9kZWxldGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV9kZWxldGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGRjZmIyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X2RlbGV0ZXIuaHBwCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIEdsZW4gSm9zZXBoIEZlcm5hbmRlcworICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorICogVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0CisgKiBvciBjb3B5IGF0IGh0dHA6Ly9ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorICovCisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVJSQVlfREVMRVRFUl9IUFAKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BUlJBWV9ERUxFVEVSX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV91dGlsaXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2ZvcndhcmQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBjbGFzcyBhcnJheV9kZWxldGVyOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBjbGFzcyBhcnJheV9kZWxldGVyPFRbXT4geworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICBhcnJheV9kZWxldGVyKHN0ZDo6c2l6ZV90IHNpemVfKQorICAgICAgICAgICAgICAgIDogc2l6ZShzaXplXyksCisgICAgICAgICAgICAgICAgICBvYmplY3QoMCkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgfmFycmF5X2RlbGV0ZXIoKSB7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBhcnJheV9kZXN0cm95KG9iamVjdCwgc2l6ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBpbml0KFQqIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXQobWVtb3J5LCBzaXplKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgICAgICB2b2lkIGluaXQoVCogbWVtb3J5LCBUJiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X3ZhbHVlKG1lbW9yeSwgc2l6ZSwgc3BfZm9yd2FyZDxUPih2YWx1ZSkpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICAgICAgICAgIHZvaWQgaW5pdChUKiBtZW1vcnksIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfaW5pdF9hcmdzKG1lbW9yeSwgc2l6ZSwgc3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgICAgICAgICAgb2JqZWN0ID0gbWVtb3J5OworICAgICAgICAgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIHZvaWQgaW5pdF9saXN0KFQqIG1lbW9yeSwgY29uc3QgVCogbGlzdCkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXRfbGlzdChtZW1vcnksIHNpemUsIGxpc3QpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHN0ZDo6c2l6ZV90IE0+CisgICAgICAgICAgICB2b2lkIGluaXRfbGlzdChUKiBtZW1vcnksIGNvbnN0IFQqIGxpc3QpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X2xpc3Q8VCwgTT4obWVtb3J5LCBzaXplLCBsaXN0KTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG5vaW5pdChUKiBtZW1vcnkpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9ub2luaXQobWVtb3J5LCBzaXplKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkoY29uc3Qgdm9pZCopIHsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kob2JqZWN0LCBzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBzaXplOworICAgICAgICAgICAgVCogb2JqZWN0OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorICAgICAgICBjbGFzcyBhcnJheV9kZWxldGVyPFRbTl0+IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgYXJyYXlfZGVsZXRlcigpCisgICAgICAgICAgICAgICAgOiBvYmplY3QoMCkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgfmFycmF5X2RlbGV0ZXIoKSB7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBhcnJheV9kZXN0cm95KG9iamVjdCwgTik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBpbml0KFQqIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXQobWVtb3J5LCBOKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgICAgICB2b2lkIGluaXQoVCogbWVtb3J5LCBUJiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X3ZhbHVlKG1lbW9yeSwgTiwgc3BfZm9yd2FyZDxUPih2YWx1ZSkpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICAgICAgICAgIHZvaWQgaW5pdChUKiBtZW1vcnksIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfaW5pdF9hcmdzKG1lbW9yeSwgTiwgc3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgICAgICAgICAgb2JqZWN0ID0gbWVtb3J5OworICAgICAgICAgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIHZvaWQgaW5pdF9saXN0KFQqIG1lbW9yeSwgY29uc3QgVCogbGlzdCkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXRfbGlzdChtZW1vcnksIE4sIGxpc3QpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHN0ZDo6c2l6ZV90IE0+CisgICAgICAgICAgICB2b2lkIGluaXRfbGlzdChUKiBtZW1vcnksIGNvbnN0IFQqIGxpc3QpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X2xpc3Q8VCwgTT4obWVtb3J5LCBOLCBsaXN0KTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG5vaW5pdChUKiBtZW1vcnkpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9ub2luaXQobWVtb3J5LCBOKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkoY29uc3Qgdm9pZCopIHsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kob2JqZWN0LCBOKTsKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBUKiBvYmplY3Q7CisgICAgICAgIH07CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBkMjM5MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV90cmFpdHMuaHBwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzIAorICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCAKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BUlJBWV9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVJSQVlfVFJBSVRTX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IGFycmF5X2Jhc2UgeworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PFQ+Ojp0eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0cnVjdCBhcnJheV9iYXNlPFRbXT4geworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcnJheV9iYXNlPFQ+Ojp0eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CisgICAgICAgIHN0cnVjdCBhcnJheV9iYXNlPFRbTl0+IHsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXJyYXlfYmFzZTxUPjo6dHlwZSB0eXBlOworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3QgYXJyYXlfdG90YWwgeworICAgICAgICAgICAgZW51bSB7CisgICAgICAgICAgICAgICAgc2l6ZSA9IDEKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CisgICAgICAgIHN0cnVjdCBhcnJheV90b3RhbDxUW05dPiB7CisgICAgICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgICAgICBzaXplID0gTiAqIGFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKKyAgICAgICAgc3RydWN0IGFycmF5X2lubmVyOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3QgYXJyYXlfaW5uZXI8VFtdPiB7CisgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTj4KKyAgICAgICAgc3RydWN0IGFycmF5X2lubmVyPFRbTl0+IHsKKyAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB9OworICAgIH0KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdXRpbGl0eS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdXRpbGl0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ4MmI1NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV91dGlsaXR5LmhwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBHbGVuIEpvc2VwaCBGZXJuYW5kZXMgCisgKiBnbGVuZmUgYXQgbGl2ZSBkb3QgY29tCisgKgorICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIAorICogVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IAorICogb3IgY29weSBhdCBodHRwOi8vYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAqLworI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FSUkFZX1VUSUxJVFlfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVJSQVlfVVRJTElUWV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29uc3RydWN0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBhcnJheV9kZXN0cm95KFQqLCBzdGQ6OnNpemVfdCwgbmRuYm9vc3Q6OnRydWVfdHlwZSkgeworICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X2Rlc3Ryb3koVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBuZG5ib29zdDo6ZmFsc2VfdHlwZSkgeworICAgICAgICAgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gc2l6ZTsgaSA+IDA7ICkgeworICAgICAgICAgICAgICAgIG1lbW9yeVstLWldLn5UKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfZGVzdHJveShUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUpIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpoYXNfdHJpdmlhbF9kZXN0cnVjdG9yPFQ+IHR5cGU7CisgICAgICAgICAgICBhcnJheV9kZXN0cm95KG1lbW9yeSwgc2l6ZSwgdHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfaW5pdChUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUsIG5kbmJvb3N0Ojp0cnVlX3R5cGUpIHsKKyAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICBtZW1vcnlbaV0gPSBUKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfaW5pdChUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUsIG5kbmJvb3N0OjpmYWxzZV90eXBlKSB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoLi4uKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfZGVzdHJveShtZW1vcnksIGkpOworICAgICAgICAgICAgICAgIHRocm93OworICAgICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgOjpuZXcocDEpIFQoKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X2luaXQoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplKSB7CisgICAgICAgICAgICBuZG5ib29zdDo6aGFzX3RyaXZpYWxfZGVmYXVsdF9jb25zdHJ1Y3RvcjxUPiB0eXBlOyAgICAgICAgICAgIAorICAgICAgICAgICAgYXJyYXlfaW5pdChtZW1vcnksIHNpemUsIHR5cGUpOworICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X2luaXRfdmFsdWUoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBUJiYgdmFsdWUpIHsKKyNpZiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorICAgICAgICAgICAgc3RkOjpzaXplX3QgaSA9IDA7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZvciAoOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5ICsgaTsKKyAgICAgICAgICAgICAgICAgICAgOjpuZXcocDEpIFQodmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kobWVtb3J5LCBpKTsKKyAgICAgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgICAgICBpbmxpbmUgdm9pZCBhcnJheV9pbml0X2FyZ3MoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBBcmdzJiYuLi4gYXJncykgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisgICAgICAgICAgICBzdGQ6OnNpemVfdCBpID0gMDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgICAgICA6Om5ldyhwMSkgVChhcmdzLi4uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoICguLi4pIHsKKyAgICAgICAgICAgICAgICBhcnJheV9kZXN0cm95KG1lbW9yeSwgaSk7CisgICAgICAgICAgICAgICAgdGhyb3c7CisgICAgICAgICAgICB9CisjZWxzZQorICAgICAgICAgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5ICsgaTsKKyAgICAgICAgICAgICAgICA6Om5ldyhwMSkgVChhcmdzLi4uKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBhcnJheV9pbml0X2xpc3QoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBjb25zdCBUKiBsaXN0KSB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKGxpc3RbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kobWVtb3J5LCBpKTsKKyAgICAgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKGxpc3RbaV0pOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTj4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfaW5pdF9saXN0KFQqIG1lbW9yeSwgc3RkOjpzaXplX3Qgc2l6ZSwgY29uc3QgVCogbGlzdCkgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisgICAgICAgICAgICBzdGQ6OnNpemVfdCBpID0gMDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgICAgICA6Om5ldyhwMSkgVChsaXN0W2kgJSBOXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoLi4uKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfZGVzdHJveShtZW1vcnksIGkpOworICAgICAgICAgICAgICAgIHRocm93OworICAgICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgOjpuZXcocDEpIFQobGlzdFtpICUgTl0pOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfbm9pbml0KFQqLCBzdGQ6OnNpemVfdCwgbmRuYm9vc3Q6OnRydWVfdHlwZSkgeworICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X25vaW5pdChUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUsIG5kbmJvb3N0OjpmYWxzZV90eXBlKSB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kobWVtb3J5LCBpKTsKKyAgICAgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfbm9pbml0KFQqIG1lbW9yeSwgc3RkOjpzaXplX3Qgc2l6ZSkgeworICAgICAgICAgICAgbmRuYm9vc3Q6Omhhc190cml2aWFsX2RlZmF1bHRfY29uc3RydWN0b3I8VD4gdHlwZTsKKyAgICAgICAgICAgIGFycmF5X25vaW5pdChtZW1vcnksIHNpemUsIHR5cGUpOworICAgICAgICB9CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiNjYxYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnQuaHBwCkBAIC0wLDAgKzEsMTE5IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVRPTUlDX0NPVU5UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2F0b21pY19jb3VudC5ocHAgLSB0aHJlYWQvU01QIHNhZmUgcmVmZXJlbmNlIGNvdW50ZXIKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICB0eXBlZGVmIDxpbXBsZW1lbnRhdGlvbi1kZWZpbmVkPiBuZG5ib29zdDo6ZGV0YWlsOjphdG9taWNfY291bnQ7CisvLworLy8gIGF0b21pY19jb3VudCBhKG4pOworLy8KKy8vICAgIChuIGlzIGNvbnZlcnRpYmxlIHRvIGxvbmcpCisvLworLy8gICAgRWZmZWN0czogQ29uc3RydWN0cyBhbiBhdG9taWNfY291bnQgd2l0aCBhbiBpbml0aWFsIHZhbHVlIG9mIG4KKy8vCisvLyAgYTsKKy8vCisvLyAgICBSZXR1cm5zOiAobG9uZykgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYQorLy8KKy8vICArK2E7CisvLworLy8gICAgRWZmZWN0czogQXRvbWljYWxseSBpbmNyZW1lbnRzIHRoZSB2YWx1ZSBvZiBhCisvLyAgICBSZXR1cm5zOiAobG9uZykgdGhlIG5ldyB2YWx1ZSBvZiBhCisvLworLy8gIC0tYTsKKy8vCisvLyAgICBFZmZlY3RzOiBBdG9taWNhbGx5IGRlY3JlbWVudHMgdGhlIHZhbHVlIG9mIGEKKy8vICAgIFJldHVybnM6IChsb25nKSB0aGUgbmV3IHZhbHVlIG9mIGEKKy8vCisvLyAgICBJbXBvcnRhbnQgbm90ZTogd2hlbiAtLWEgcmV0dXJucyB6ZXJvLCBpdCBtdXN0IGFjdCBhcyBhCisvLyAgICAgIHJlYWQgbWVtb3J5IGJhcnJpZXIgKFJNQik7IGkuZS4gdGhlIGNhbGxpbmcgdGhyZWFkIG11c3QKKy8vICAgICAgaGF2ZSBhIHN5bmNocm9uaXplZCB2aWV3IG9mIHRoZSBtZW1vcnkKKy8vCisvLyAgICBPbiBJbnRlbCBJQS0zMiAoeDg2KSBtZW1vcnkgaXMgYWx3YXlzIHN5bmNocm9uaXplZCwgc28gdGhpcworLy8gICAgICBpcyBub3QgYSBwcm9ibGVtLgorLy8KKy8vICAgIE9uIG1hbnkgYXJjaGl0ZWN0dXJlcyB0aGUgYXRvbWljIGluc3RydWN0aW9ucyBhbHJlYWR5IGFjdCBhcworLy8gICAgICBhIG1lbW9yeSBiYXJyaWVyLgorLy8KKy8vICAgIFRoaXMgcHJvcGVydHkgaXMgbmVjZXNzYXJ5IGZvciBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nLCBzaW5jZQorLy8gICAgICBhIHRocmVhZCBjYW4gdXBkYXRlIHRoZSBjb250ZW50cyBvZiBhIHNoYXJlZCBvYmplY3QsIHRoZW4KKy8vICAgICAgcmVsZWFzZSBpdHMgcmVmZXJlbmNlLCBhbmQgYW5vdGhlciB0aHJlYWQgbWF5IGltbWVkaWF0ZWx5CisvLyAgICAgIHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJlbmNlIGNhdXNpbmcgb2JqZWN0IGRlc3RydWN0aW9uLgorLy8KKy8vICAgIFRoZSBkZXN0cnVjdG9yIG5lZWRzIHRvIGhhdmUgYSBzeW5jaHJvbml6ZWQgdmlldyBvZiB0aGUKKy8vICAgICAgb2JqZWN0IHRvIHBlcmZvcm0gcHJvcGVyIGNsZWFudXAuCisvLworLy8gICAgT3JpZ2luYWwgZXhhbXBsZSBieSBBbGV4YW5kZXIgVGVyZWtob3Y6CisvLworLy8gICAgR2l2ZW46CisvLworLy8gICAgLSBhIG11dGFibGUgc2hhcmVkIG9iamVjdCBPQko7CisvLyAgICAtIHR3byB0aHJlYWRzIFRIUkVBRDEgYW5kIFRIUkVBRDIgZWFjaCBob2xkaW5nIAorLy8gICAgICBhIHByaXZhdGUgc21hcnRfcHRyIG9iamVjdCBwb2ludGluZyB0byB0aGF0IE9CSi4KKy8vCisvLyAgICB0MTogVEhSRUFEMSB1cGRhdGVzIE9CSiAodGhyZWFkLXNhZmUgdmlhIHNvbWUgc3luY2hyb25pemF0aW9uKQorLy8gICAgICBhbmQgYSBmZXcgY3ljbGVzIGxhdGVyIChhZnRlciAidW5sb2NrIikgZGVzdHJveXMgc21hcnRfcHRyOworLy8KKy8vICAgIHQyOiBUSFJFQUQyIGRlc3Ryb3lzIHNtYXJ0X3B0ciBXSVRIT1VUIGRvaW5nIGFueSBzeW5jaHJvbml6YXRpb24gCisvLyAgICAgIHdpdGggcmVzcGVjdCB0byBzaGFyZWQgbXV0YWJsZSBvYmplY3QgT0JKOyBPQkogZGVzdHJ1Y3RvcnMKKy8vICAgICAgYXJlIGNhbGxlZCBkcml2ZW4gYnkgc21hcnRfcHRyIGludGVyZmFjZS4uLgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9oYXNfc3luYy5ocHA+CisKKyNpZm5kZWYgQk9PU1RfSEFTX1RIUkVBRFMKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKwordHlwZWRlZiBsb25nIGF0b21pY19jb3VudDsKKworfQorCit9CisKKyNlbGlmIGRlZmluZWQoQk9PU1RfQUNfVVNFX1BUSFJFQURTKQorIyAgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfcHRocmVhZHMuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApICYmICggZGVmaW5lZCggX19pMzg2X18gKSB8fCBkZWZpbmVkKCBfX3g4Nl82NF9fICkgKQorIyAgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHA+CisKKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfd2luMzIuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9TUF9IQVNfU1lOQyApCisjICBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9zeW5jLmhwcD4KKworI2VsaWYgZGVmaW5lZChfX0dMSUJDUFBfXykgfHwgZGVmaW5lZChfX0dMSUJDWFhfXykKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X2djYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX1BUSFJFQURTKQorCisjICBkZWZpbmUgQk9PU1RfQUNfVVNFX1BUSFJFQURTCisjICBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHA+CisKKyNlbHNlCisKKy8vIFVzZSAjZGVmaW5lIEJPT1NUX0RJU0FCTEVfVEhSRUFEUyB0byBhdm9pZCB0aGUgZXJyb3IKKyNlcnJvciBVbnJlY29nbml6ZWQgdGhyZWFkaW5nIHBsYXRmb3JtCisKKyNlbmRpZgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDg3YmRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfR0NDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwCisvLworLy8gIGF0b21pY19jb3VudCBmb3IgR05VIGxpYnN0ZGMrKyB2MworLy8KKy8vICBodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9wb3J0aW5nL1RocmVhZC1zYWZldHkuaHRtbAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgTGFycyBHdWxsaWsgQmr4bm5lcyA8bGFyc2JqQGx5eC5vcmc+CisvLyAgQ29weXJpZ2h0IDIwMDMtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpZiBfX0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fID49IDQwMgorIyBpbmNsdWRlIDxleHQvYXRvbWljaXR5Lmg+IAorI2Vsc2UgCisjIGluY2x1ZGUgPGJpdHMvYXRvbWljaXR5Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmIGRlZmluZWQoX19HTElCQ1hYX18pIC8vIGcrKyAzLjQrCisKK3VzaW5nIF9fZ251X2N4eDo6X19hdG9taWNfYWRkOwordXNpbmcgX19nbnVfY3h4OjpfX2V4Y2hhbmdlX2FuZF9hZGQ7CisKKyNlbmRpZgorCitjbGFzcyBhdG9taWNfY291bnQKK3sKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IGF0b21pY19jb3VudCggbG9uZyB2ICkgOiB2YWx1ZV8oIHYgKSB7fQorCisgICAgbG9uZyBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBfX2V4Y2hhbmdlX2FuZF9hZGQoICZ2YWx1ZV8sICsxICkgKyAxOworICAgIH0KKworICAgIGxvbmcgb3BlcmF0b3ItLSgpCisgICAgeworICAgICAgICByZXR1cm4gX19leGNoYW5nZV9hbmRfYWRkKCAmdmFsdWVfLCAtMSApIC0gMTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBsb25nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBfX2V4Y2hhbmdlX2FuZF9hZGQoICZ2YWx1ZV8sIDAgKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBhdG9taWNfY291bnQoYXRvbWljX2NvdW50IGNvbnN0ICYpOworICAgIGF0b21pY19jb3VudCAmIG9wZXJhdG9yPShhdG9taWNfY291bnQgY29uc3QgJik7CisKKyAgICBtdXRhYmxlIF9BdG9taWNfd29yZCB2YWx1ZV87Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfR0NDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2NfeDg2LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY0YTJiOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAKQEAgLTAsMCArMSw3NyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfWDg2X0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfWDg2X0hQUF9JTkNMVURFRAorCisvLworLy8gIGJvb3N0L2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAKKy8vCisvLyAgYXRvbWljX2NvdW50IGZvciBnKysgb24gNDg2Ky9BTUQ2NAorLy8KKy8vICBDb3B5cmlnaHQgMjAwNyBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIGF0b21pY19jb3VudAoreworcHVibGljOgorCisgICAgZXhwbGljaXQgYXRvbWljX2NvdW50KCBsb25nIHYgKSA6IHZhbHVlXyggc3RhdGljX2Nhc3Q8IGludCA+KCB2ICkgKSB7fQorCisgICAgbG9uZyBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggJnZhbHVlXywgKzEgKSArIDE7CisgICAgfQorCisgICAgbG9uZyBvcGVyYXRvci0tKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggJnZhbHVlXywgLTEgKSAtIDE7CisgICAgfQorCisgICAgb3BlcmF0b3IgbG9uZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoICZ2YWx1ZV8sIDAgKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBhdG9taWNfY291bnQoYXRvbWljX2NvdW50IGNvbnN0ICYpOworICAgIGF0b21pY19jb3VudCAmIG9wZXJhdG9yPShhdG9taWNfY291bnQgY29uc3QgJik7CisKKyAgICBtdXRhYmxlIGludCB2YWx1ZV87CisKK3ByaXZhdGU6CisKKyAgICBzdGF0aWMgaW50IGF0b21pY19leGNoYW5nZV9hbmRfYWRkKCBpbnQgKiBwdywgaW50IGR2ICkKKyAgICB7CisgICAgICAgIC8vIGludCByID0gKnB3OworICAgICAgICAvLyAqcHcgKz0gZHY7CisgICAgICAgIC8vIHJldHVybiByOworCisgICAgICAgIGludCByOworCisgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fCisgICAgICAgICgKKyAgICAgICAgICAgICJsb2NrXG5cdCIKKyAgICAgICAgICAgICJ4YWRkICUxLCAlMCI6CisgICAgICAgICAgICAiK20iKCAqcHcgKSwgIj1yIiggciApOiAvLyBvdXRwdXRzICglMCwgJTEpCisgICAgICAgICAgICAiMSIoIGR2ICk6IC8vIGlucHV0cyAoJTIgPT0gJTEpCisgICAgICAgICAgICAibWVtb3J5IiwgImNjIiAvLyBjbG9iYmVycworICAgICAgICApOworCisgICAgICAgIHJldHVybiByOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfWDg2X0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3B0aHJlYWRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTQ1NTY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAKQEAgLTAsMCArMSw5NiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9QVEhSRUFEU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfUFRIUkVBRFNfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworLy8KKy8vICBUaGUgZ2VuZXJpYyBwdGhyZWFkX211dGV4LWJhc2VkIGltcGxlbWVudGF0aW9uIHNvbWV0aW1lcyBsZWFkcyB0bworLy8gICAgaW5lZmZpY2llbmNpZXMuIEV4YW1wbGU6IGEgY2xhc3Mgd2l0aCB0d28gYXRvbWljX2NvdW50IG1lbWJlcnMKKy8vICAgIGNhbiBnZXQgYXdheSB3aXRoIGEgc2luZ2xlIG11dGV4LgorLy8KKy8vICBVc2VycyBjYW4gZGV0ZWN0IHRoaXMgc2l0dWF0aW9uIGJ5IGNoZWNraW5nIEJPT1NUX0FDX1VTRV9QVEhSRUFEUy4KKy8vCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIGF0b21pY19jb3VudAoreworcHJpdmF0ZToKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHB1YmxpYzoKKworICAgICAgICBzY29wZWRfbG9jayhwdGhyZWFkX211dGV4X3QgJiBtKTogbV8obSkKKyAgICAgICAgeworICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtXyk7CisgICAgICAgIH0KKworICAgICAgICB+c2NvcGVkX2xvY2soKQorICAgICAgICB7CisgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbV8pOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorCisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAmIG1fOworICAgIH07CisKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IGF0b21pY19jb3VudChsb25nIHYpOiB2YWx1ZV8odikKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhfLCAwKTsKKyAgICB9CisKKyAgICB+YXRvbWljX2NvdW50KCkKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbXV0ZXhfKTsKKyAgICB9CisKKyAgICBsb25nIG9wZXJhdG9yKysoKQorICAgIHsKKyAgICAgICAgc2NvcGVkX2xvY2sgbG9jayhtdXRleF8pOworICAgICAgICByZXR1cm4gKyt2YWx1ZV87CisgICAgfQorCisgICAgbG9uZyBvcGVyYXRvci0tKCkKKyAgICB7CisgICAgICAgIHNjb3BlZF9sb2NrIGxvY2sobXV0ZXhfKTsKKyAgICAgICAgcmV0dXJuIC0tdmFsdWVfOworICAgIH0KKworICAgIG9wZXJhdG9yIGxvbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgc2NvcGVkX2xvY2sgbG9jayhtdXRleF8pOworICAgICAgICByZXR1cm4gdmFsdWVfOworICAgIH0KKworcHJpdmF0ZToKKworICAgIGF0b21pY19jb3VudChhdG9taWNfY291bnQgY29uc3QgJik7CisgICAgYXRvbWljX2NvdW50ICYgb3BlcmF0b3I9KGF0b21pY19jb3VudCBjb25zdCAmKTsKKworICAgIG11dGFibGUgcHRocmVhZF9tdXRleF90IG11dGV4XzsKKyAgICBsb25nIHZhbHVlXzsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9QVEhSRUFEU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfc3luYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3N5bmMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MzAwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3N5bmMuaHBwCkBAIC0wLDAgKzEsNjEgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfU1lOQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfU1lOQ19IUFBfSU5DTFVERUQKKworLy8KKy8vICBib29zdC9kZXRhaWwvYXRvbWljX2NvdW50X3N5bmMuaHBwCisvLworLy8gIGF0b21pY19jb3VudCBmb3IgZysrIDQuMSsKKy8vCisvLyAgaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjLTQuMS4xL2djYy9BdG9taWMtQnVpbHRpbnMuaHRtbAorLy8KKy8vICBDb3B5cmlnaHQgMjAwNyBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpZiBkZWZpbmVkKCBfX2lhNjRfXyApICYmIGRlZmluZWQoIF9fSU5URUxfQ09NUElMRVIgKQorIyBpbmNsdWRlIDxpYTY0aW50cmluLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3MgYXRvbWljX2NvdW50Cit7CitwdWJsaWM6CisKKyAgICBleHBsaWNpdCBhdG9taWNfY291bnQoIGxvbmcgdiApIDogdmFsdWVfKCB2ICkge30KKworICAgIGxvbmcgb3BlcmF0b3IrKygpCisgICAgeworICAgICAgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2goICZ2YWx1ZV8sIDEgKTsKKyAgICB9CisKKyAgICBsb25nIG9wZXJhdG9yLS0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIF9fc3luY19hZGRfYW5kX2ZldGNoKCAmdmFsdWVfLCAtMSApOworICAgIH0KKworICAgIG9wZXJhdG9yIGxvbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIF9fc3luY19mZXRjaF9hbmRfYWRkKCAmdmFsdWVfLCAwICk7CisgICAgfQorCitwcml2YXRlOgorCisgICAgYXRvbWljX2NvdW50KGF0b21pY19jb3VudCBjb25zdCAmKTsKKyAgICBhdG9taWNfY291bnQgJiBvcGVyYXRvcj0oYXRvbWljX2NvdW50IGNvbnN0ICYpOworCisgICAgbXV0YWJsZSBsb25nIHZhbHVlXzsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9TWU5DX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF93aW4zMi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3dpbjMyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDA0NzdhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF93aW4zMi5ocHAKQEAgLTAsMCArMSw2MyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9XSU4zMl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfV0lOMzJfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJvb3N0L2RldGFpbC9hdG9taWNfY291bnRfd2luMzIuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMS0yMDA1IFBldGVyIERpbW92CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9pbnRlcmxvY2tlZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIGF0b21pY19jb3VudAoreworcHVibGljOgorCisgICAgZXhwbGljaXQgYXRvbWljX2NvdW50KCBsb25nIHYgKTogdmFsdWVfKCB2ICkKKyAgICB7CisgICAgfQorCisgICAgbG9uZyBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQoICZ2YWx1ZV8gKTsKKyAgICB9CisKKyAgICBsb25nIG9wZXJhdG9yLS0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCggJnZhbHVlXyApOworICAgIH0KKworICAgIG9wZXJhdG9yIGxvbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgY29uc3Qgdm9sYXRpbGUgJj4oIHZhbHVlXyApOworICAgIH0KKworcHJpdmF0ZToKKworICAgIGF0b21pY19jb3VudCggYXRvbWljX2NvdW50IGNvbnN0ICYgKTsKKyAgICBhdG9taWNfY291bnQgJiBvcGVyYXRvcj0oIGF0b21pY19jb3VudCBjb25zdCAmICk7CisKKyAgICBsb25nIHZhbHVlXzsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9XSU4zMl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OGJiNDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwCkBAIC0wLDAgKzEsNDIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2xpZ2h0d2VpZ2h0X211dGV4LmhwcCAtIGxpZ2h0d2VpZ2h0IG11dGV4CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgdHlwZWRlZiA8dW5zcGVjaWZpZWQ+IG5kbmJvb3N0OjpkZXRhaWw6OmxpZ2h0d2VpZ2h0X211dGV4OworLy8KKy8vICBuZG5ib29zdDo6ZGV0YWlsOjpsaWdodHdlaWdodF9tdXRleCBpcyBhIGhlYWRlci1vbmx5IGltcGxlbWVudGF0aW9uIG9mCisvLyAgYSBzdWJzZXQgb2YgdGhlIE11dGV4IGNvbmNlcHQgcmVxdWlyZW1lbnRzOgorLy8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvaHRtbC90aHJlYWRzL2NvbmNlcHRzLmh0bWwjdGhyZWFkcy5jb25jZXB0cy5NdXRleAorLy8KKy8vICBJdCBtYXBzIHRvIGEgQ1JJVElDQUxfU0VDVElPTiBvbiBXaW5kb3dzIG9yIGEgcHRocmVhZF9tdXRleCBvbiBQT1NJWC4KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfSEFTX1RIUkVBRFMpCisjICBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9ub3AuaHBwPgorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfUFRIUkVBRFMpCisjICBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9wdGhyZWFkcy5ocHA+CisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19XSU5USFJFQURTKSB8fCBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX1dJTjMyX18pIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcD4KKyNlbHNlCisvLyBVc2UgI2RlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMgdG8gYXZvaWQgdGhlIGVycm9yCisjICBlcnJvciBVbnJlY29nbml6ZWQgdGhyZWFkaW5nIHBsYXRmb3JtCisjZW5kaWYKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fbm9wLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fbm9wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGQxZmM1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9ub3AuaHBwCkBAIC0wLDAgKzEsMzcgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MV01fTk9QX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9OT1BfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJvb3N0L2RldGFpbC9sd21fbm9wLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBsaWdodHdlaWdodF9tdXRleAoreworcHVibGljOgorCisgICAgdHlwZWRlZiBsaWdodHdlaWdodF9tdXRleCBzY29wZWRfbG9jazsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9OT1BfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3B0aHJlYWRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fcHRocmVhZHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YmJjOTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3B0aHJlYWRzLmhwcApAQCAtMCwwICsxLDg3IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTFdNX1BUSFJFQURTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9QVEhSRUFEU19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2x3bV9wdGhyZWFkcy5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBsaWdodHdlaWdodF9tdXRleAoreworcHJpdmF0ZToKKworICAgIHB0aHJlYWRfbXV0ZXhfdCBtXzsKKworICAgIGxpZ2h0d2VpZ2h0X211dGV4KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworICAgIGxpZ2h0d2VpZ2h0X211dGV4ICYgb3BlcmF0b3I9KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworCitwdWJsaWM6CisKKyAgICBsaWdodHdlaWdodF9tdXRleCgpCisgICAgeworCisvLyBIUFVYIDEwLjIwIC8gRENFIGhhcyBhIG5vbnN0YW5kYXJkIHB0aHJlYWRfbXV0ZXhfaW5pdAorCisjaWYgZGVmaW5lZChfX2hwdXgpICYmIGRlZmluZWQoX0RFQ1RIUkVBRFNfKQorICAgICAgICBCT09TVF9WRVJJRlkoIHB0aHJlYWRfbXV0ZXhfaW5pdCggJm1fLCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0ICkgPT0gMCApOworI2Vsc2UKKyAgICAgICAgQk9PU1RfVkVSSUZZKCBwdGhyZWFkX211dGV4X2luaXQoICZtXywgMCApID09IDAgKTsKKyNlbmRpZgorICAgIH0KKworICAgIH5saWdodHdlaWdodF9tdXRleCgpCisgICAgeworICAgICAgICBCT09TVF9WRVJJRlkoIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSggJm1fICkgPT0gMCApOworICAgIH0KKworICAgIGNsYXNzIHNjb3BlZF9sb2NrOworICAgIGZyaWVuZCBjbGFzcyBzY29wZWRfbG9jazsKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHByaXZhdGU6CisKKyAgICAgICAgcHRocmVhZF9tdXRleF90ICYgbV87CisKKyAgICAgICAgc2NvcGVkX2xvY2soc2NvcGVkX2xvY2sgY29uc3QgJik7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KHNjb3BlZF9sb2NrIGNvbnN0ICYpOworCisgICAgcHVibGljOgorCisgICAgICAgIHNjb3BlZF9sb2NrKGxpZ2h0d2VpZ2h0X211dGV4ICYgbSk6IG1fKG0ubV8pCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX1ZFUklGWSggcHRocmVhZF9tdXRleF9sb2NrKCAmbV8gKSA9PSAwICk7CisgICAgICAgIH0KKworICAgICAgICB+c2NvcGVkX2xvY2soKQorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9WRVJJRlkoIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKSA9PSAwICk7CisgICAgICAgIH0KKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTFdNX1BUSFJFQURTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV93aW4zMl9jcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTc2YzMyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV93aW4zMl9jcy5ocHAKQEAgLTAsMCArMSwxMDggQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MV01fV0lOMzJfQ1NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTFdNX1dJTjMyX0NTX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaWZkZWYgQk9PU1RfVVNFX1dJTkRPV1NfSAorIyAgaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKyNpZm5kZWYgQk9PU1RfVVNFX1dJTkRPV1NfSAorCitzdHJ1Y3QgY3JpdGljYWxfc2VjdGlvbgoreworICAgIHN0cnVjdCBjcml0aWNhbF9zZWN0aW9uX2RlYnVnICogRGVidWdJbmZvOworICAgIGxvbmcgTG9ja0NvdW50OworICAgIGxvbmcgUmVjdXJzaW9uQ291bnQ7CisgICAgdm9pZCAqIE93bmluZ1RocmVhZDsKKyAgICB2b2lkICogTG9ja1NlbWFwaG9yZTsKKyNpZiBkZWZpbmVkKF9XSU42NCkKKyAgICB1bnNpZ25lZCBfX2ludDY0IFNwaW5Db3VudDsKKyNlbHNlCisgICAgdW5zaWduZWQgbG9uZyBTcGluQ291bnQ7CisjZW5kaWYKK307CisKK2V4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIHZvaWQgX19zdGRjYWxsIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oY3JpdGljYWxfc2VjdGlvbiAqKTsKK2V4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIHZvaWQgX19zdGRjYWxsIEVudGVyQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb24gKik7CitleHRlcm4gIkMiIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSB2b2lkIF9fc3RkY2FsbCBMZWF2ZUNyaXRpY2FsU2VjdGlvbihjcml0aWNhbF9zZWN0aW9uICopOworZXh0ZXJuICJDIiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgdm9pZCBfX3N0ZGNhbGwgRGVsZXRlQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb24gKik7CisKKyNlbHNlCisKK3R5cGVkZWYgOjpDUklUSUNBTF9TRUNUSU9OIGNyaXRpY2FsX3NlY3Rpb247CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1VTRV9XSU5ET1dTX0gKKworY2xhc3MgbGlnaHR3ZWlnaHRfbXV0ZXgKK3sKK3ByaXZhdGU6CisKKyAgICBjcml0aWNhbF9zZWN0aW9uIGNzXzsKKworICAgIGxpZ2h0d2VpZ2h0X211dGV4KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworICAgIGxpZ2h0d2VpZ2h0X211dGV4ICYgb3BlcmF0b3I9KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworCitwdWJsaWM6CisKKyAgICBsaWdodHdlaWdodF9tdXRleCgpCisgICAgeworICAgICAgICBJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uKCZjc18pOworICAgIH0KKworICAgIH5saWdodHdlaWdodF9tdXRleCgpCisgICAgeworICAgICAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJmNzXyk7CisgICAgfQorCisgICAgY2xhc3Mgc2NvcGVkX2xvY2s7CisgICAgZnJpZW5kIGNsYXNzIHNjb3BlZF9sb2NrOworCisgICAgY2xhc3Mgc2NvcGVkX2xvY2sKKyAgICB7CisgICAgcHJpdmF0ZToKKworICAgICAgICBsaWdodHdlaWdodF9tdXRleCAmIG1fOworCisgICAgICAgIHNjb3BlZF9sb2NrKHNjb3BlZF9sb2NrIGNvbnN0ICYpOworICAgICAgICBzY29wZWRfbG9jayAmIG9wZXJhdG9yPShzY29wZWRfbG9jayBjb25zdCAmKTsKKworICAgIHB1YmxpYzoKKworICAgICAgICBleHBsaWNpdCBzY29wZWRfbG9jayhsaWdodHdlaWdodF9tdXRleCAmIG0pOiBtXyhtKQorICAgICAgICB7CisgICAgICAgICAgICBFbnRlckNyaXRpY2FsU2VjdGlvbigmbV8uY3NfKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExlYXZlQ3JpdGljYWxTZWN0aW9uKCZtXy5jc18pOworICAgICAgICB9CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9XSU4zMl9DU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9tYWtlX2FycmF5X2hlbHBlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMDUxMzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIEdsZW4gSm9zZXBoIEZlcm5hbmRlcyAKKyAqIGdsZW5mZSBhdCBsaXZlIGRvdCBjb20KKyAqCisgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgCisgKiBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgCisgKiBvciBjb3B5IGF0IGh0dHA6Ly9ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorICovCisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTUFLRV9BUlJBWV9IRUxQRVJfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTUFLRV9BUlJBWV9IRUxQRVJfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBZID0gY2hhcj4KKyAgICAgICAgY2xhc3MgbWFrZV9hcnJheV9oZWxwZXI7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFk+CisgICAgICAgIGNsYXNzIG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgWT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFkyPgorICAgICAgICAgICAgZnJpZW5kIGNsYXNzIG1ha2VfYXJyYXlfaGVscGVyOworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICB0eXBlZGVmIFkgICAgICAgICAgIHZhbHVlX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIFkqICAgICAgICAgIHBvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IFkqICAgIGNvbnN0X3BvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIFkmICAgICAgICAgIHJlZmVyZW5jZTsKKyAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgWSYgICAgY29uc3RfcmVmZXJlbmNlOworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCBzaXplX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIHB0cmRpZmZfdCAgIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBzdHJ1Y3QgcmViaW5kIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgVT4gb3RoZXI7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbWFrZV9hcnJheV9oZWxwZXIoc3RkOjpzaXplX3Qgc2l6ZV8sIFQqKiBkYXRhXykKKyAgICAgICAgICAgICAgICA6IHNpemUoc2l6ZW9mKFQpICogc2l6ZV8pLAorICAgICAgICAgICAgICAgICAgZGF0YShkYXRhXykgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgICAgIG1ha2VfYXJyYXlfaGVscGVyKGNvbnN0IG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgVT4mIG90aGVyKSAKKyAgICAgICAgICAgICAgICA6IHNpemUob3RoZXIuc2l6ZSksCisgICAgICAgICAgICAgICAgICBkYXRhKG90aGVyLmRhdGEpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvaW50ZXIgYWRkcmVzcyhyZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3RfcG9pbnRlciBhZGRyZXNzKGNvbnN0X3JlZmVyZW5jZSB2YWx1ZSkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAmdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzaXplX3R5cGUgbWF4X3NpemUoKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHN0ZDo6c2l6ZV90PigtMSkgLyBzaXplb2YoWSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb2ludGVyIGFsbG9jYXRlKHNpemVfdHlwZSBjb3VudCwgY29uc3Qgdm9pZCogPSAwKSB7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgYTEgPSBuZG5ib29zdDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZTsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IGNvdW50ICogc2l6ZW9mKFkpICsgYTEgLSAxOworICAgICAgICAgICAgICAgIHZvaWQqICBwMSA9IDo6b3BlcmF0b3IgbmV3KG4xICsgc2l6ZSk7CisgICAgICAgICAgICAgICAgY2hhciogIHAyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHAxKSArIG4xOworICAgICAgICAgICAgICAgIHdoaWxlIChzdGQ6OnNpemVfdChwMikgJSBhMSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHAyLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICpkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxUKj4ocDIpOworICAgICAgICAgICAgICAgIHJldHVybiAgcmVpbnRlcnByZXRfY2FzdDxZKj4ocDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBkZWFsbG9jYXRlKHBvaW50ZXIgbWVtb3J5LCBzaXplX3R5cGUpIHsKKyAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeTsKKyAgICAgICAgICAgICAgICA6Om9wZXJhdG9yIGRlbGV0ZShwMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGNvbnN0cnVjdChwb2ludGVyIG1lbW9yeSwgY29uc3QgWSYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeTsKKyAgICAgICAgICAgICAgICA6Om5ldyhwMSkgWSh2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGRlc3Ryb3kocG9pbnRlciBtZW1vcnkpIHsKKyAgICAgICAgICAgICAgICBtZW1vcnktPn5ZKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgVT4mKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgVT4mIG90aGVyKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IHNpemU7CisgICAgICAgICAgICBUKiogZGF0YTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTiwgdHlwZW5hbWUgWT4KKyAgICAgICAgY2xhc3MgbWFrZV9hcnJheV9oZWxwZXI8VFtOXSwgWT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFkyPgorICAgICAgICAgICAgZnJpZW5kIGNsYXNzIG1ha2VfYXJyYXlfaGVscGVyOworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICB0eXBlZGVmIFkgICAgICAgICAgIHZhbHVlX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIFkqICAgICAgICAgIHBvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IFkqICAgIGNvbnN0X3BvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIFkmICAgICAgICAgIHJlZmVyZW5jZTsKKyAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgWSYgICAgY29uc3RfcmVmZXJlbmNlOworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCBzaXplX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIHB0cmRpZmZfdCAgIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBzdHJ1Y3QgcmViaW5kIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIG1ha2VfYXJyYXlfaGVscGVyPFRbTl0sIFU+IG90aGVyOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIG1ha2VfYXJyYXlfaGVscGVyKFQqKiBkYXRhXykKKyAgICAgICAgICAgICAgICA6IGRhdGEoZGF0YV8pIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgICAgICBtYWtlX2FycmF5X2hlbHBlcihjb25zdCBtYWtlX2FycmF5X2hlbHBlcjxUW05dLCBVPiYgb3RoZXIpIAorICAgICAgICAgICAgICAgIDogZGF0YShvdGhlci5kYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb2ludGVyIGFkZHJlc3MocmVmZXJlbmNlIHZhbHVlKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuICZ2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0X3BvaW50ZXIgYWRkcmVzcyhjb25zdF9yZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oLTEpIC8gc2l6ZW9mKFkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9pbnRlciBhbGxvY2F0ZShzaXplX3R5cGUgY291bnQsIGNvbnN0IHZvaWQqID0gMCkgeworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGExID0gbmRuYm9vc3Q6OmFsaWdubWVudF9vZjxUPjo6dmFsdWU7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBjb3VudCAqIHNpemVvZihZKSArIGExIC0gMTsKKyAgICAgICAgICAgICAgICB2b2lkKiAgcDEgPSA6Om9wZXJhdG9yIG5ldyhuMSArIE4xKTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDIgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocDEpICsgbjE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHN0ZDo6c2l6ZV90KHAyKSAlIGExICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcDItLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKmRhdGEgPSByZWludGVycHJldF9jYXN0PFQqPihwMik7CisgICAgICAgICAgICAgICAgcmV0dXJuICByZWludGVycHJldF9jYXN0PFkqPihwMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGRlYWxsb2NhdGUocG9pbnRlciBtZW1vcnksIHNpemVfdHlwZSkgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5OworICAgICAgICAgICAgICAgIDo6b3BlcmF0b3IgZGVsZXRlKHAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgY29uc3RydWN0KHBvaW50ZXIgbWVtb3J5LCBjb25zdCBZJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5OworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBZKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgZGVzdHJveShwb2ludGVyIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIG1lbW9yeS0+flkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgbWFrZV9hcnJheV9oZWxwZXI8VFtOXSwgVT4mKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IG1ha2VfYXJyYXlfaGVscGVyPFRbTl0sIFU+JiBvdGhlcikgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgCisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgICAgICBOMSA9IE4gKiBzaXplb2YoVCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBUKiogZGF0YTsKKyAgICAgICAgfTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL29wZXJhdG9yX2Jvb2wuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL29wZXJhdG9yX2Jvb2wuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZTE1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvb3BlcmF0b3JfYm9vbC5ocHAKQEAgLTAsMCArMSw2MyBAQAorLy8gIFRoaXMgaGVhZGVyIGludGVudGlvbmFsbHkgaGFzIG5vIGluY2x1ZGUgZ3VhcmRzLgorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwOSwgMjAxMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMgKSAmJiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUiApCisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sICgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggIT0gMDsKKyAgICB9CisKKyNlbGlmICggZGVmaW5lZChfX1NVTlBST19DQykgJiYgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgPCAweDU3MCkgKSB8fCBkZWZpbmVkKF9fQ0lOVF9fKQorCisgICAgb3BlcmF0b3IgYm9vbCAoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4ICE9IDA7CisgICAgfQorCisjZWxpZiBkZWZpbmVkKCBfTUFOQUdFRCApCisKKyAgICBzdGF0aWMgdm9pZCB1bnNwZWNpZmllZF9ib29sKCB0aGlzX3R5cGUqKiogKQorICAgIHsKKyAgICB9CisKKyAgICB0eXBlZGVmIHZvaWQgKCp1bnNwZWNpZmllZF9ib29sX3R5cGUpKCB0aGlzX3R5cGUqKiogKTsKKworICAgIG9wZXJhdG9yIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggPT0gMD8gMDogdW5zcGVjaWZpZWRfYm9vbDsKKyAgICB9CisKKyNlbGlmIFwKKyAgICAoIGRlZmluZWQoX19NV0VSS1NfXykgJiYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzIwMCkgKSB8fCBcCisgICAgKCBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gKiAxMDAgKyBfX0dOVUNfTUlOT1JfXyA8IDMwNCkgKSB8fCBcCisgICAgKCBkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fU1VOUFJPX0NDLCA8PSAweDU5MCkgKQorCisgICAgdHlwZWRlZiBlbGVtZW50X3R5cGUgKiAodGhpc190eXBlOjoqdW5zcGVjaWZpZWRfYm9vbF90eXBlKSgpIGNvbnN0OworCisgICAgb3BlcmF0b3IgdW5zcGVjaWZpZWRfYm9vbF90eXBlKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBweCA9PSAwPyAwOiAmdGhpc190eXBlOjpnZXQ7CisgICAgfQorCisjZWxzZQorCisgICAgdHlwZWRlZiBlbGVtZW50X3R5cGUgKiB0aGlzX3R5cGU6Oip1bnNwZWNpZmllZF9ib29sX3R5cGU7CisKKyAgICBvcGVyYXRvciB1bnNwZWNpZmllZF9ib29sX3R5cGUoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4ID09IDA/IDA6ICZ0aGlzX3R5cGU6OnB4OworICAgIH0KKworI2VuZGlmCisKKyAgICAvLyBvcGVyYXRvciEgaXMgcmVkdW5kYW50LCBidXQgc29tZSBjb21waWxlcnMgbmVlZCBpdAorICAgIGJvb2wgb3BlcmF0b3IhICgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggPT0gMDsKKyAgICB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvcXVpY2tfYWxsb2NhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9xdWlja19hbGxvY2F0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzN2M0ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvcXVpY2tfYWxsb2NhdG9yLmhwcApAQCAtMCwwICsxLDE5OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1FVSUNLX0FMTE9DQVRPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9RVUlDS19BTExPQ0FUT1JfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9xdWlja19hbGxvY2F0b3IuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMyBEYXZpZCBBYnJhaGFtcworLy8gIENvcHlyaWdodCAoYykgMjAwMyBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvdHlwZV93aXRoX2FsaWdubWVudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25tZW50X29mLmhwcD4KKworI2luY2x1ZGUgPG5ldz4gICAgICAgICAgICAgIC8vIDo6b3BlcmF0b3IgbmV3LCA6Om9wZXJhdG9yIGRlbGV0ZQorI2luY2x1ZGUgPGNzdGRkZWY+ICAgICAgICAgIC8vIHN0ZDo6c2l6ZV90CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3RlbXBsYXRlPHVuc2lnbmVkIHNpemUsIHVuc2lnbmVkIGFsaWduXz4gdW5pb24gZnJlZWJsb2NrCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV93aXRoX2FsaWdubWVudDxhbGlnbl8+Ojp0eXBlIGFsaWduZXJfdHlwZTsKKyAgICBhbGlnbmVyX3R5cGUgYWxpZ25lcjsKKyAgICBjaGFyIGJ5dGVzW3NpemVdOworICAgIGZyZWVibG9jayAqIG5leHQ7Cit9OworCit0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbl8+IHN0cnVjdCBhbGxvY2F0b3JfaW1wbAoreworICAgIHR5cGVkZWYgZnJlZWJsb2NrPHNpemUsIGFsaWduXz4gYmxvY2s7CisKKyAgICAvLyBJdCBtYXkgc2VlbSBvZGQgdG8gdXNlIHN1Y2ggc21hbGwgcGFnZXMuCisgICAgLy8KKyAgICAvLyBIb3dldmVyLCBvbiBhIHR5cGljYWwgV2luZG93cyBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMKKyAgICAvLyB0aGUgT1MgYWxsb2NhdG9yLCAibm9ybWFsIHNpemUiIHBhZ2VzIGludGVyYWN0IHdpdGggdGhlCisgICAgLy8gIm9yZGluYXJ5IiBvcGVyYXRvciBuZXcsIHNsb3dpbmcgaXQgZG93biBkcmFtYXRpY2FsbHkuCisgICAgLy8KKyAgICAvLyA1MTIgYnl0ZSBwYWdlcyBhcmUgaGFuZGxlZCBieSB0aGUgc21hbGwgb2JqZWN0IGFsbG9jYXRvciwKKyAgICAvLyBhbmQgZG9uJ3QgaW50ZXJmZXJlIHdpdGggOjpuZXcuCisgICAgLy8KKyAgICAvLyBUaGUgb3RoZXIgYWx0ZXJuYXRpdmUgaXMgdG8gdXNlIG11Y2ggYmlnZ2VyIHBhZ2VzICgxTS4pCisgICAgLy8KKyAgICAvLyBJdCBpcyBzdXJwcmlzaW5nbHkgZWFzeSB0byBoaXQgcGF0aG9sb2dpY2FsIGJlaGF2aW9yIGJ5CisgICAgLy8gdmFyeWluZyB0aGUgcGFnZSBzaXplLiBnKysgMi45NiBvbiBSZWQgSGF0IExpbnV4IDcuMiwKKyAgICAvLyBmb3IgZXhhbXBsZSwgcGFzc2lvbmF0ZWx5IGRpc2xpa2VzIDQ5Ni4gNTEyIHNlZW1zIE9LLgorCisjaWYgZGVmaW5lZChCT09TVF9RQV9QQUdFX1NJWkUpCisKKyAgICBlbnVtIHsgaXRlbXNfcGVyX3BhZ2UgPSBCT09TVF9RQV9QQUdFX1NJWkUgLyBzaXplIH07CisKKyNlbHNlCisKKyAgICBlbnVtIHsgaXRlbXNfcGVyX3BhZ2UgPSA1MTIgLyBzaXplIH07IC8vIDEwNDg1NjAgLyBzaXplCisKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfSEFTX1RIUkVBRFMKKworICAgIHN0YXRpYyBsaWdodHdlaWdodF9tdXRleCAmIG11dGV4KCkKKyAgICB7CisgICAgICAgIHN0YXRpYyBmcmVlYmxvY2s8IHNpemVvZiggbGlnaHR3ZWlnaHRfbXV0ZXggKSwgbmRuYm9vc3Q6OmFsaWdubWVudF9vZjwgbGlnaHR3ZWlnaHRfbXV0ZXggPjo6dmFsdWUgPiBmYm07CisgICAgICAgIHN0YXRpYyBsaWdodHdlaWdodF9tdXRleCAqIHBtID0gbmV3KCAmZmJtICkgbGlnaHR3ZWlnaHRfbXV0ZXg7CisgICAgICAgIHJldHVybiAqcG07CisgICAgfQorCisgICAgc3RhdGljIGxpZ2h0d2VpZ2h0X211dGV4ICogbXV0ZXhfaW5pdDsKKworI2VuZGlmCisKKyAgICBzdGF0aWMgYmxvY2sgKiBmcmVlOworICAgIHN0YXRpYyBibG9jayAqIHBhZ2U7CisgICAgc3RhdGljIHVuc2lnbmVkIGxhc3Q7CisKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgKiBhbGxvYygpCisgICAgeworI2lmZGVmIEJPT1NUX0hBU19USFJFQURTCisgICAgICAgIGxpZ2h0d2VpZ2h0X211dGV4OjpzY29wZWRfbG9jayBsb2NrKCBtdXRleCgpICk7CisjZW5kaWYKKyAgICAgICAgaWYoYmxvY2sgKiB4ID0gZnJlZSkKKyAgICAgICAgeworICAgICAgICAgICAgZnJlZSA9IHgtPm5leHQ7CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKGxhc3QgPT0gaXRlbXNfcGVyX3BhZ2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gIkxpc3RlbiB0byBtZSBjYXJlZnVsbHk6IHRoZXJlIGlzIG5vIG1lbW9yeSBsZWFrIgorICAgICAgICAgICAgICAgIC8vIC0tIFNjb3R0IE1leWVycywgRWZmIEMrKyAybmQgRWQgSXRlbSAxMAorICAgICAgICAgICAgICAgIHBhZ2UgPSA6Om5ldyBibG9ja1tpdGVtc19wZXJfcGFnZV07CisgICAgICAgICAgICAgICAgbGFzdCA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAmcGFnZVtsYXN0KytdOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSB2b2lkICogYWxsb2Moc3RkOjpzaXplX3QgbikKKyAgICB7CisgICAgICAgIGlmKG4gIT0gc2l6ZSkgLy8gY2xhc3Mtc3BlY2lmaWMgbmV3IGNhbGxlZCBmb3IgYSBkZXJpdmVkIG9iamVjdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpvcGVyYXRvciBuZXcobik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisjaWZkZWYgQk9PU1RfSEFTX1RIUkVBRFMKKyAgICAgICAgICAgIGxpZ2h0d2VpZ2h0X211dGV4OjpzY29wZWRfbG9jayBsb2NrKCBtdXRleCgpICk7CisjZW5kaWYKKyAgICAgICAgICAgIGlmKGJsb2NrICogeCA9IGZyZWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZnJlZSA9IHgtPm5leHQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYobGFzdCA9PSBpdGVtc19wZXJfcGFnZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHBhZ2UgPSA6Om5ldyBibG9ja1tpdGVtc19wZXJfcGFnZV07CisgICAgICAgICAgICAgICAgICAgIGxhc3QgPSAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiAmcGFnZVtsYXN0KytdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSB2b2lkIGRlYWxsb2Modm9pZCAqIHB2KQorICAgIHsKKyAgICAgICAgaWYocHYgIT0gMCkgLy8gMTguNC4xLjEvMTMKKyAgICAgICAgeworI2lmZGVmIEJPT1NUX0hBU19USFJFQURTCisgICAgICAgICAgICBsaWdodHdlaWdodF9tdXRleDo6c2NvcGVkX2xvY2sgbG9jayggbXV0ZXgoKSApOworI2VuZGlmCisgICAgICAgICAgICBibG9jayAqIHBiID0gc3RhdGljX2Nhc3Q8YmxvY2sgKj4ocHYpOworICAgICAgICAgICAgcGItPm5leHQgPSBmcmVlOworICAgICAgICAgICAgZnJlZSA9IHBiOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSB2b2lkIGRlYWxsb2Modm9pZCAqIHB2LCBzdGQ6OnNpemVfdCBuKQorICAgIHsKKyAgICAgICAgaWYobiAhPSBzaXplKSAvLyBjbGFzcy1zcGVjaWZpYyBkZWxldGUgY2FsbGVkIGZvciBhIGRlcml2ZWQgb2JqZWN0CisgICAgICAgIHsKKyAgICAgICAgICAgIDo6b3BlcmF0b3IgZGVsZXRlKHB2KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKHB2ICE9IDApIC8vIDE4LjQuMS4xLzEzCisgICAgICAgIHsKKyNpZmRlZiBCT09TVF9IQVNfVEhSRUFEUworICAgICAgICAgICAgbGlnaHR3ZWlnaHRfbXV0ZXg6OnNjb3BlZF9sb2NrIGxvY2soIG11dGV4KCkgKTsKKyNlbmRpZgorICAgICAgICAgICAgYmxvY2sgKiBwYiA9IHN0YXRpY19jYXN0PGJsb2NrICo+KHB2KTsKKyAgICAgICAgICAgIHBiLT5uZXh0ID0gZnJlZTsKKyAgICAgICAgICAgIGZyZWUgPSBwYjsKKyAgICAgICAgfQorICAgIH0KK307CisKKyNpZmRlZiBCT09TVF9IQVNfVEhSRUFEUworCit0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbl8+CisgIGxpZ2h0d2VpZ2h0X211dGV4ICogYWxsb2NhdG9yX2ltcGw8c2l6ZSwgYWxpZ25fPjo6bXV0ZXhfaW5pdCA9ICZhbGxvY2F0b3JfaW1wbDxzaXplLCBhbGlnbl8+OjptdXRleCgpOworCisjZW5kaWYKKwordGVtcGxhdGU8dW5zaWduZWQgc2l6ZSwgdW5zaWduZWQgYWxpZ25fPgorICBmcmVlYmxvY2s8c2l6ZSwgYWxpZ25fPiAqIGFsbG9jYXRvcl9pbXBsPHNpemUsIGFsaWduXz46OmZyZWUgPSAwOworCit0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbl8+CisgIGZyZWVibG9jazxzaXplLCBhbGlnbl8+ICogYWxsb2NhdG9yX2ltcGw8c2l6ZSwgYWxpZ25fPjo6cGFnZSA9IDA7CisKK3RlbXBsYXRlPHVuc2lnbmVkIHNpemUsIHVuc2lnbmVkIGFsaWduXz4KKyAgdW5zaWduZWQgYWxsb2NhdG9yX2ltcGw8c2l6ZSwgYWxpZ25fPjo6bGFzdCA9IGFsbG9jYXRvcl9pbXBsPHNpemUsIGFsaWduXz46Oml0ZW1zX3Blcl9wYWdlOworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IHF1aWNrX2FsbG9jYXRvcjogcHVibGljIGFsbG9jYXRvcl9pbXBsPCBzaXplb2YoVCksIG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlID4KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9RVUlDS19BTExPQ0FUT1JfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2FycmF5X25tdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2FycmF5X25tdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ1M2FmYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfYXJyYXlfbm10LmhwcApAQCAtMCwwICsxLDE1MSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NIQVJFRF9BUlJBWV9OTVRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU0hBUkVEX0FSUkFZX05NVF9IUFBfSU5DTFVERUQKKworLy8KKy8vICBkZXRhaWwvc2hhcmVkX2FycmF5X25tdC5ocHAgLSBzaGFyZWRfYXJyYXkuaHBwIHdpdGhvdXQgbWVtYmVyIHRlbXBsYXRlcworLy8KKy8vICAoQykgQ29weXJpZ2h0IEdyZWcgQ29sdmluIGFuZCBCZW1hbiBEYXdlcyAxOTk4LCAxOTk5LgorLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudC5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAvLyBmb3Igc3RkOjpwdHJkaWZmX3QKKyNpbmNsdWRlIDxhbGdvcml0aG0+ICAgICAgICAvLyBmb3Igc3RkOjpzd2FwCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4gICAgICAgLy8gZm9yIHN0ZDo6bGVzcworI2luY2x1ZGUgPG5ldz4gICAgICAgICAgICAgIC8vIGZvciBzdGQ6OmJhZF9hbGxvYworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3Mgc2hhcmVkX2FycmF5Cit7Citwcml2YXRlOgorCisgICAgdHlwZWRlZiBkZXRhaWw6OmF0b21pY19jb3VudCBjb3VudF90eXBlOworCitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFQgZWxlbWVudF90eXBlOworICAgICAgCisgICAgZXhwbGljaXQgc2hhcmVkX2FycmF5KFQgKiBwID0gMCk6IHB4KHApCisgICAgeworI2lmbmRlZiBCT09TVF9OT19FWENFUFRJT05TCisKKyAgICAgICAgdHJ5ICAvLyBwcmV2ZW50IGxlYWsgaWYgbmV3IHRocm93cworICAgICAgICB7CisgICAgICAgICAgICBwbiA9IG5ldyBjb3VudF90eXBlKDEpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKC4uLikKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfYXJyYXlfZGVsZXRlKHApOworICAgICAgICAgICAgdGhyb3c7CisgICAgICAgIH0KKworI2Vsc2UKKworICAgICAgICBwbiA9IG5ldyBjb3VudF90eXBlKDEpOworCisgICAgICAgIGlmKHBuID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpjaGVja2VkX2FycmF5X2RlbGV0ZShwKTsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oc3RkOjpiYWRfYWxsb2MoKSk7CisgICAgICAgIH0KKworI2VuZGlmCisgICAgfQorCisgICAgfnNoYXJlZF9hcnJheSgpCisgICAgeworICAgICAgICBpZigtLSpwbiA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6Y2hlY2tlZF9hcnJheV9kZWxldGUocHgpOworICAgICAgICAgICAgZGVsZXRlIHBuOworICAgICAgICB9CisgICAgfQorCisgICAgc2hhcmVkX2FycmF5KHNoYXJlZF9hcnJheSBjb25zdCAmIHIpIDogcHgoci5weCkgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgcG4gPSByLnBuOworICAgICAgICArKypwbjsKKyAgICB9CisKKyAgICBzaGFyZWRfYXJyYXkgJiBvcGVyYXRvcj0oc2hhcmVkX2FycmF5IGNvbnN0ICYgcikKKyAgICB7CisgICAgICAgIHNoYXJlZF9hcnJheShyKS5zd2FwKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHZvaWQgcmVzZXQoVCAqIHAgPSAwKQorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKHAgPT0gMCB8fCBwICE9IHB4KTsKKyAgICAgICAgc2hhcmVkX2FycmF5KHApLnN3YXAoKnRoaXMpOworICAgIH0KKworICAgIFQgKiBnZXQoKSBjb25zdCAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICByZXR1cm4gcHg7CisgICAgfQorCisgICAgVCAmIG9wZXJhdG9yW10oc3RkOjpwdHJkaWZmX3QgaSkgY29uc3QgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKHB4ICE9IDApOworICAgICAgICBCT09TVF9BU1NFUlQoaSA+PSAwKTsKKyAgICAgICAgcmV0dXJuIHB4W2ldOworICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgcmV0dXJuICpwbjsKKyAgICB9CisKKyAgICBib29sIHVuaXF1ZSgpIGNvbnN0ICAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIHJldHVybiAqcG4gPT0gMTsKKyAgICB9CisKKyAgICB2b2lkIHN3YXAoc2hhcmVkX2FycmF5PFQ+ICYgb3RoZXIpICAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIHN0ZDo6c3dhcChweCwgb3RoZXIucHgpOworICAgICAgICBzdGQ6OnN3YXAocG4sIG90aGVyLnBuKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBUICogcHg7ICAgICAgICAgICAgLy8gY29udGFpbmVkIHBvaW50ZXIKKyAgICBjb3VudF90eXBlICogcG47ICAgLy8gcHRyIHRvIHJlZmVyZW5jZSBjb3VudGVyCisgICAgICAKK307ICAvLyBzaGFyZWRfYXJyYXkKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShzaGFyZWRfYXJyYXk8VD4gY29uc3QgJiBhLCBzaGFyZWRfYXJyYXk8VT4gY29uc3QgJiBiKQoreworICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYSwgc2hhcmVkX2FycmF5PFU+IGNvbnN0ICYgYikKK3sKKyAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvcjwoc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYSwgc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYikKK3sKKyAgICByZXR1cm4gc3RkOjpsZXNzPFQqPigpKGEuZ2V0KCksIGIuZ2V0KCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIHN3YXAoc2hhcmVkX2FycmF5PFQ+ICYgYSwgc2hhcmVkX2FycmF5PFQ+ICYgYikKK3sKKyAgICBhLnN3YXAoYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NIQVJFRF9BUlJBWV9OTVRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2NvdW50LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfY291bnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MjM1ODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2NvdW50LmhwcApAQCAtMCwwICsxLDYwMyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NIQVJFRF9DT1VOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TSEFSRURfQ09VTlRfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zaGFyZWRfY291bnQuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaWZkZWYgX19CT1JMQU5EQ19fCisjIHByYWdtYSB3YXJuIC04MDI3ICAgICAvLyBGdW5jdGlvbnMgY29udGFpbmluZyB0cnkgYXJlIG5vdCBleHBhbmRlZCBpbmxpbmUKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvYmFkX3dlYWtfcHRyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKy8vIEluIG9yZGVyIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcyB3aXRoIEJvb3N0LlRSMQorLy8gd2UgbWFrZSBzdXJlIHRoYXQgb3VyIGluY2x1ZGUgb2YgPG1lbW9yeT4gZG9lc24ndCB0cnkgdG8KKy8vIHB1bGwgaW4gdGhlIFRSMSBoZWFkZXJzOiB0aGF0J3Mgd2h5IHdlIHVzZSB0aGlzIGhlYWRlciAKKy8vIHJhdGhlciB0aGFuIGluY2x1ZGluZyA8bWVtb3J5PiBkaXJlY3RseToKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvbm9fdHIxL21lbW9yeS5ocHA+ICAvLyBzdGQ6OmF1dG9fcHRyCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4gICAgICAgLy8gc3RkOjpsZXNzCisKKyNpZmRlZiBCT09TVF9OT19FWENFUFRJT05TCisjIGluY2x1ZGUgPG5ldz4gICAgICAgICAgICAgIC8vIHN0ZDo6YmFkX2FsbG9jCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIgKQorIyBpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHA+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorCitpbnQgY29uc3Qgc2hhcmVkX2NvdW50X2lkID0gMHgyQzM1RjEwMTsKK2ludCBjb25zdCAgIHdlYWtfY291bnRfaWQgPSAweDI5OEMzOEE0OworCisjZW5kaWYKKworc3RydWN0IHNwX25vdGhyb3dfdGFnIHt9OworCit0ZW1wbGF0ZTwgY2xhc3MgRCA+IHN0cnVjdCBzcF9pbnBsYWNlX3RhZworeworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IGNsYXNzIHNwX3JlZmVyZW5jZV93cmFwcGVyCit7IAorcHVibGljOgorCisgICAgZXhwbGljaXQgc3BfcmVmZXJlbmNlX3dyYXBwZXIoIFQgJiB0KTogdF8oIG5kbmJvb3N0OjphZGRyZXNzb2YoIHQgKSApCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPCBjbGFzcyBZID4gdm9pZCBvcGVyYXRvcigpKCBZICogcCApIGNvbnN0CisgICAgeworICAgICAgICAoKnRfKSggcCApOworICAgIH0KKworcHJpdmF0ZToKKworICAgIFQgKiB0XzsKK307CisKK3RlbXBsYXRlPCBjbGFzcyBEID4gc3RydWN0IHNwX2NvbnZlcnRfcmVmZXJlbmNlCit7CisgICAgdHlwZWRlZiBEIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgRCA+IHN0cnVjdCBzcF9jb252ZXJ0X3JlZmVyZW5jZTwgRCYgPgoreworICAgIHR5cGVkZWYgc3BfcmVmZXJlbmNlX3dyYXBwZXI8IEQgPiB0eXBlOworfTsKKworI2VuZGlmCisKK2NsYXNzIHdlYWtfY291bnQ7CisKK2NsYXNzIHNoYXJlZF9jb3VudAoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSAqIHBpXzsKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgIGludCBpZF87CisjZW5kaWYKKworICAgIGZyaWVuZCBjbGFzcyB3ZWFrX2NvdW50OworCitwdWJsaWM6CisKKyAgICBzaGFyZWRfY291bnQoKTogcGlfKDApIC8vIG5vdGhyb3cKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+IGV4cGxpY2l0IHNoYXJlZF9jb3VudCggWSAqIHAgKTogcGlfKCAwICkKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworI2lmbmRlZiBCT09TVF9OT19FWENFUFRJT05TCisKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcDxZPiggcCApOworICAgICAgICB9CisgICAgICAgIGNhdGNoKC4uLikKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKCBwICk7CisgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcDxZPiggcCApOworCisgICAgICAgIGlmKCBwaV8gPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpjaGVja2VkX2RlbGV0ZSggcCApOworICAgICAgICAgICAgbmRuYm9vc3Q6OnRocm93X2V4Y2VwdGlvbiggc3RkOjpiYWRfYWxsb2MoKSApOworICAgICAgICB9CisKKyNlbmRpZgorICAgIH0KKworI2lmIGRlZmluZWQoIEJPT1NUX01TVkMgKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9NU1ZDLCA8PSAxMjAwICkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPiBzaGFyZWRfY291bnQoIFkgKiBwLCBEIGQgKTogcGlfKDApCisjZWxzZQorICAgIHRlbXBsYXRlPGNsYXNzIFAsIGNsYXNzIEQ+IHNoYXJlZF9jb3VudCggUCBwLCBEIGQgKTogcGlfKDApCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworI2lmIGRlZmluZWQoIEJPT1NUX01TVkMgKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9NU1ZDLCA8PSAxMjAwICkKKyAgICAgICAgdHlwZWRlZiBZKiBQOworI2VuZGlmCisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgcGlfID0gbmV3IHNwX2NvdW50ZWRfaW1wbF9wZDxQLCBEPihwLCBkKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCguLi4pCisgICAgICAgIHsKKyAgICAgICAgICAgIGQocCk7IC8vIGRlbGV0ZSBwCisgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcGQ8UCwgRD4ocCwgZCk7CisKKyAgICAgICAgaWYocGlfID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGQocCk7IC8vIGRlbGV0ZSBwCisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKHN0ZDo6YmFkX2FsbG9jKCkpOworICAgICAgICB9CisKKyNlbmRpZgorICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORyApCisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgUCwgY2xhc3MgRCA+IHNoYXJlZF9jb3VudCggUCBwLCBzcF9pbnBsYWNlX3RhZzxEPiApOiBwaV8oIDAgKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgcGlfID0gbmV3IHNwX2NvdW50ZWRfaW1wbF9wZDwgUCwgRCA+KCBwICk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goIC4uLiApCisgICAgICAgIHsKKyAgICAgICAgICAgIEQ6Om9wZXJhdG9yX2ZuKCBwICk7IC8vIGRlbGV0ZSBwCisgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcGQ8IFAsIEQgPiggcCApOworCisgICAgICAgIGlmKCBwaV8gPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIEQ6Om9wZXJhdG9yX2ZuKCBwICk7IC8vIGRlbGV0ZSBwCisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKCBzdGQ6OmJhZF9hbGxvYygpICk7CisgICAgICAgIH0KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworICAgIH0KKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORyApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBQLCBjbGFzcyBELCBjbGFzcyBBPiBzaGFyZWRfY291bnQoIFAgcCwgRCBkLCBBIGEgKTogcGlfKCAwICkKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworICAgICAgICB0eXBlZGVmIHNwX2NvdW50ZWRfaW1wbF9wZGE8UCwgRCwgQT4gaW1wbF90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDwgaW1wbF90eXBlID46Om90aGVyIEEyOworCisgICAgICAgIEEyIGEyKCBhICk7CisKKyNpZm5kZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworCisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBwaV8gPSBhMi5hbGxvY2F0ZSggMSwgc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggMCApICk7CisgICAgICAgICAgICBuZXcoIHN0YXRpY19jYXN0PCB2b2lkKiA+KCBwaV8gKSApIGltcGxfdHlwZSggcCwgZCwgYSApOworICAgICAgICB9CisgICAgICAgIGNhdGNoKC4uLikKKyAgICAgICAgeworICAgICAgICAgICAgZCggcCApOworCisgICAgICAgICAgICBpZiggcGlfICE9IDAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGEyLmRlYWxsb2NhdGUoIHN0YXRpY19jYXN0PCBpbXBsX3R5cGUqID4oIHBpXyApLCAxICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRocm93OworICAgICAgICB9CisKKyNlbHNlCisKKyAgICAgICAgcGlfID0gYTIuYWxsb2NhdGUoIDEsIHN0YXRpY19jYXN0PCBpbXBsX3R5cGUqID4oIDAgKSApOworCisgICAgICAgIGlmKCBwaV8gIT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyggc3RhdGljX2Nhc3Q8IHZvaWQqID4oIHBpXyApICkgaW1wbF90eXBlKCBwLCBkLCBhICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBkKCBwICk7CisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKCBzdGQ6OmJhZF9hbGxvYygpICk7CisgICAgICAgIH0KKworI2VuZGlmCisgICAgfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HICkKKworICAgIHRlbXBsYXRlPCBjbGFzcyBQLCBjbGFzcyBELCBjbGFzcyBBID4gc2hhcmVkX2NvdW50KCBQIHAsIHNwX2lucGxhY2VfdGFnPCBEID4sIEEgYSApOiBwaV8oIDAgKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIHR5cGVkZWYgc3BfY291bnRlZF9pbXBsX3BkYTwgUCwgRCwgQSA+IGltcGxfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBOjp0ZW1wbGF0ZSByZWJpbmQ8IGltcGxfdHlwZSA+OjpvdGhlciBBMjsKKworICAgICAgICBBMiBhMiggYSApOworCisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgcGlfID0gYTIuYWxsb2NhdGUoIDEsIHN0YXRpY19jYXN0PCBpbXBsX3R5cGUqID4oIDAgKSApOworICAgICAgICAgICAgbmV3KCBzdGF0aWNfY2FzdDwgdm9pZCogPiggcGlfICkgKSBpbXBsX3R5cGUoIHAsIGEgKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCguLi4pCisgICAgICAgIHsKKyAgICAgICAgICAgIEQ6Om9wZXJhdG9yX2ZuKCBwICk7CisKKyAgICAgICAgICAgIGlmKCBwaV8gIT0gMCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYTIuZGVhbGxvY2F0ZSggc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggcGlfICksIDEgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhyb3c7CisgICAgICAgIH0KKworI2Vsc2UKKworICAgICAgICBwaV8gPSBhMi5hbGxvY2F0ZSggMSwgc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggMCApICk7CisKKyAgICAgICAgaWYoIHBpXyAhPSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgbmV3KCBzdGF0aWNfY2FzdDwgdm9pZCogPiggcGlfICkgKSBpbXBsX3R5cGUoIHAsIGEgKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIEQ6Om9wZXJhdG9yX2ZuKCBwICk7CisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKCBzdGQ6OmJhZF9hbGxvYygpICk7CisgICAgICAgIH0KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworICAgIH0KKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORyApCisKKyNpZm5kZWYgQk9PU1RfTk9fQVVUT19QVFIKKworICAgIC8vIGF1dG9fcHRyPFk+IGlzIHNwZWNpYWwgY2FzZWQgdG8gcHJvdmlkZSB0aGUgc3Ryb25nIGd1YXJhbnRlZQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBleHBsaWNpdCBzaGFyZWRfY291bnQoIHN0ZDo6YXV0b19wdHI8WT4gJiByICk6IHBpXyggbmV3IHNwX2NvdW50ZWRfaW1wbF9wPFk+KCByLmdldCgpICkgKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisjaWZkZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworCisgICAgICAgIGlmKCBwaV8gPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oc3RkOjpiYWRfYWxsb2MoKSk7CisgICAgICAgIH0KKworI2VuZGlmCisKKyAgICAgICAgci5yZWxlYXNlKCk7CisgICAgfQorCisjZW5kaWYgCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSICkKKworICAgIHRlbXBsYXRlPGNsYXNzIFksIGNsYXNzIEQ+CisgICAgZXhwbGljaXQgc2hhcmVkX2NvdW50KCBzdGQ6OnVuaXF1ZV9wdHI8WSwgRD4gJiByICk6IHBpXyggMCApCisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHNoYXJlZF9jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzcF9jb252ZXJ0X3JlZmVyZW5jZTxEPjo6dHlwZSBEMjsKKworICAgICAgICBEMiBkMiggci5nZXRfZGVsZXRlcigpICk7CisgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcGQ8IHR5cGVuYW1lIHN0ZDo6dW5pcXVlX3B0cjxZLCBEPjo6cG9pbnRlciwgRDIgPiggci5nZXQoKSwgZDIgKTsKKworI2lmZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICBpZiggcGlfID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKCBzdGQ6OmJhZF9hbGxvYygpICk7CisgICAgICAgIH0KKworI2VuZGlmCisKKyAgICAgICAgci5yZWxlYXNlKCk7CisgICAgfQorCisjZW5kaWYKKworICAgIH5zaGFyZWRfY291bnQoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggcGlfICE9IDAgKSBwaV8tPnJlbGVhc2UoKTsKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgaWRfID0gMDsKKyNlbmRpZgorICAgIH0KKworICAgIHNoYXJlZF9jb3VudChzaGFyZWRfY291bnQgY29uc3QgJiByKTogcGlfKHIucGlfKSAvLyBub3Rocm93CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHNoYXJlZF9jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgaWYoIHBpXyAhPSAwICkgcGlfLT5hZGRfcmVmX2NvcHkoKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgc2hhcmVkX2NvdW50KHNoYXJlZF9jb3VudCAmJiByKTogcGlfKHIucGlfKSAvLyBub3Rocm93CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHNoYXJlZF9jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgci5waV8gPSAwOworICAgIH0KKworI2VuZGlmCisKKyAgICBleHBsaWNpdCBzaGFyZWRfY291bnQod2Vha19jb3VudCBjb25zdCAmIHIpOyAvLyB0aHJvd3MgYmFkX3dlYWtfcHRyIHdoZW4gci51c2VfY291bnQoKSA9PSAwCisgICAgc2hhcmVkX2NvdW50KCB3ZWFrX2NvdW50IGNvbnN0ICYgciwgc3Bfbm90aHJvd190YWcgKTsgLy8gY29uc3RydWN0cyBhbiBlbXB0eSAqdGhpcyB3aGVuIHIudXNlX2NvdW50KCkgPT0gMAorCisgICAgc2hhcmVkX2NvdW50ICYgb3BlcmF0b3I9IChzaGFyZWRfY291bnQgY29uc3QgJiByKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBzcF9jb3VudGVkX2Jhc2UgKiB0bXAgPSByLnBpXzsKKworICAgICAgICBpZiggdG1wICE9IHBpXyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKCB0bXAgIT0gMCApIHRtcC0+YWRkX3JlZl9jb3B5KCk7CisgICAgICAgICAgICBpZiggcGlfICE9IDAgKSBwaV8tPnJlbGVhc2UoKTsKKyAgICAgICAgICAgIHBpXyA9IHRtcDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB2b2lkIHN3YXAoc2hhcmVkX2NvdW50ICYgcikgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgc3BfY291bnRlZF9iYXNlICogdG1wID0gci5waV87CisgICAgICAgIHIucGlfID0gcGlfOworICAgICAgICBwaV8gPSB0bXA7CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gcGlfICE9IDA/IHBpXy0+dXNlX2NvdW50KCk6IDA7CisgICAgfQorCisgICAgYm9vbCB1bmlxdWUoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gdXNlX2NvdW50KCkgPT0gMTsKKyAgICB9CisKKyAgICBib29sIGVtcHR5KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHBpXyA9PSAwOworICAgIH0KKworICAgIGZyaWVuZCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KHNoYXJlZF9jb3VudCBjb25zdCAmIGEsIHNoYXJlZF9jb3VudCBjb25zdCAmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5waV8gPT0gYi5waV87CisgICAgfQorCisgICAgZnJpZW5kIGlubGluZSBib29sIG9wZXJhdG9yPChzaGFyZWRfY291bnQgY29uc3QgJiBhLCBzaGFyZWRfY291bnQgY29uc3QgJiBiKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bGVzczxzcF9jb3VudGVkX2Jhc2UgKj4oKSggYS5waV8sIGIucGlfICk7CisgICAgfQorCisgICAgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBwaV8/IHBpXy0+Z2V0X2RlbGV0ZXIoIHRpICk6IDA7CisgICAgfQorCisgICAgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBpXz8gcGlfLT5nZXRfdW50eXBlZF9kZWxldGVyKCk6IDA7CisgICAgfQorfTsKKworCitjbGFzcyB3ZWFrX2NvdW50Cit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlICogcGlfOworCisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgaW50IGlkXzsKKyNlbmRpZgorCisgICAgZnJpZW5kIGNsYXNzIHNoYXJlZF9jb3VudDsKKworcHVibGljOgorCisgICAgd2Vha19jb3VudCgpOiBwaV8oMCkgLy8gbm90aHJvdworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyh3ZWFrX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworICAgIH0KKworICAgIHdlYWtfY291bnQoc2hhcmVkX2NvdW50IGNvbnN0ICYgcik6IHBpXyhyLnBpXykgLy8gbm90aHJvdworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyh3ZWFrX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworICAgICAgICBpZihwaV8gIT0gMCkgcGlfLT53ZWFrX2FkZF9yZWYoKTsKKyAgICB9CisKKyAgICB3ZWFrX2NvdW50KHdlYWtfY291bnQgY29uc3QgJiByKTogcGlfKHIucGlfKSAvLyBub3Rocm93CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHdlYWtfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIGlmKHBpXyAhPSAwKSBwaV8tPndlYWtfYWRkX3JlZigpOworICAgIH0KKworLy8gTW92ZSBzdXBwb3J0CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgd2Vha19jb3VudCh3ZWFrX2NvdW50ICYmIHIpOiBwaV8oci5waV8pIC8vIG5vdGhyb3cKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8od2Vha19jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgci5waV8gPSAwOworICAgIH0KKworI2VuZGlmCisKKyAgICB+d2Vha19jb3VudCgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKHBpXyAhPSAwKSBwaV8tPndlYWtfcmVsZWFzZSgpOworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICBpZF8gPSAwOworI2VuZGlmCisgICAgfQorCisgICAgd2Vha19jb3VudCAmIG9wZXJhdG9yPSAoc2hhcmVkX2NvdW50IGNvbnN0ICYgcikgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgc3BfY291bnRlZF9iYXNlICogdG1wID0gci5waV87CisKKyAgICAgICAgaWYoIHRtcCAhPSBwaV8gKQorICAgICAgICB7CisgICAgICAgICAgICBpZih0bXAgIT0gMCkgdG1wLT53ZWFrX2FkZF9yZWYoKTsKKyAgICAgICAgICAgIGlmKHBpXyAhPSAwKSBwaV8tPndlYWtfcmVsZWFzZSgpOworICAgICAgICAgICAgcGlfID0gdG1wOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHdlYWtfY291bnQgJiBvcGVyYXRvcj0gKHdlYWtfY291bnQgY29uc3QgJiByKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBzcF9jb3VudGVkX2Jhc2UgKiB0bXAgPSByLnBpXzsKKworICAgICAgICBpZiggdG1wICE9IHBpXyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKHRtcCAhPSAwKSB0bXAtPndlYWtfYWRkX3JlZigpOworICAgICAgICAgICAgaWYocGlfICE9IDApIHBpXy0+d2Vha19yZWxlYXNlKCk7CisgICAgICAgICAgICBwaV8gPSB0bXA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdm9pZCBzd2FwKHdlYWtfY291bnQgJiByKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBzcF9jb3VudGVkX2Jhc2UgKiB0bXAgPSByLnBpXzsKKyAgICAgICAgci5waV8gPSBwaV87CisgICAgICAgIHBpXyA9IHRtcDsKKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBwaV8gIT0gMD8gcGlfLT51c2VfY291bnQoKTogMDsKKyAgICB9CisKKyAgICBib29sIGVtcHR5KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHBpXyA9PSAwOworICAgIH0KKworICAgIGZyaWVuZCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KHdlYWtfY291bnQgY29uc3QgJiBhLCB3ZWFrX2NvdW50IGNvbnN0ICYgYikKKyAgICB7CisgICAgICAgIHJldHVybiBhLnBpXyA9PSBiLnBpXzsKKyAgICB9CisKKyAgICBmcmllbmQgaW5saW5lIGJvb2wgb3BlcmF0b3I8KHdlYWtfY291bnQgY29uc3QgJiBhLCB3ZWFrX2NvdW50IGNvbnN0ICYgYikKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Omxlc3M8c3BfY291bnRlZF9iYXNlICo+KCkoYS5waV8sIGIucGlfKTsKKyAgICB9Cit9OworCitpbmxpbmUgc2hhcmVkX2NvdW50OjpzaGFyZWRfY291bnQoIHdlYWtfY291bnQgY29uc3QgJiByICk6IHBpXyggci5waV8gKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKK3sKKyAgICBpZiggcGlfID09IDAgfHwgIXBpXy0+YWRkX3JlZl9sb2NrKCkgKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OnRocm93X2V4Y2VwdGlvbiggbmRuYm9vc3Q6OmJhZF93ZWFrX3B0cigpICk7CisgICAgfQorfQorCitpbmxpbmUgc2hhcmVkX2NvdW50OjpzaGFyZWRfY291bnQoIHdlYWtfY291bnQgY29uc3QgJiByLCBzcF9ub3Rocm93X3RhZyApOiBwaV8oIHIucGlfICkKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCit7CisgICAgaWYoIHBpXyAhPSAwICYmICFwaV8tPmFkZF9yZWZfbG9jaygpICkKKyAgICB7CisgICAgICAgIHBpXyA9IDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmZGVmIF9fQk9STEFORENfXworIyBwcmFnbWEgd2FybiAuODAyNyAgICAgLy8gRnVuY3Rpb25zIGNvbnRhaW5pbmcgdHJ5IGFyZSBub3QgZXhwYW5kZWQgaW5saW5lCisjZW5kaWYKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU0hBUkVEX0NPVU5UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9wdHJfbm10LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfcHRyX25tdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZlNmZkZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfcHRyX25tdC5ocHAKQEAgLTAsMCArMSwxODIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TSEFSRURfUFRSX05NVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TSEFSRURfUFRSX05NVF9IUFBfSU5DTFVERUQKKworLy8KKy8vICBkZXRhaWwvc2hhcmVkX3B0cl9ubXQuaHBwIC0gc2hhcmVkX3B0ci5ocHAgd2l0aG91dCBtZW1iZXIgdGVtcGxhdGVzCisvLworLy8gIChDKSBDb3B5cmlnaHQgR3JlZyBDb2x2aW4gYW5kIEJlbWFuIERhd2VzIDE5OTgsIDE5OTkuCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9zbWFydF9wdHIvc2hhcmVkX3B0ci5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudC5ocHA+CisKKyNpZm5kZWYgQk9PU1RfTk9fQVVUT19QVFIKKyMgaW5jbHVkZSA8bWVtb3J5PiAgICAgICAgICAvLyBmb3Igc3RkOjphdXRvX3B0cgorI2VuZGlmCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+ICAgICAgICAvLyBmb3Igc3RkOjpzd2FwCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4gICAgICAgLy8gZm9yIHN0ZDo6bGVzcworI2luY2x1ZGUgPG5ldz4gICAgICAgICAgICAgIC8vIGZvciBzdGQ6OmJhZF9hbGxvYworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3Mgc2hhcmVkX3B0cgoreworcHJpdmF0ZToKKworICAgIHR5cGVkZWYgZGV0YWlsOjphdG9taWNfY291bnQgY291bnRfdHlwZTsKKworcHVibGljOgorCisgICAgdHlwZWRlZiBUIGVsZW1lbnRfdHlwZTsKKyAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKKworICAgIGV4cGxpY2l0IHNoYXJlZF9wdHIoVCAqIHAgPSAwKTogcHgocCkKKyAgICB7CisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICB0cnkgIC8vIHByZXZlbnQgbGVhayBpZiBuZXcgdGhyb3dzCisgICAgICAgIHsKKyAgICAgICAgICAgIHBuID0gbmV3IGNvdW50X3R5cGUoMSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goLi4uKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6Y2hlY2tlZF9kZWxldGUocCk7CisgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHBuID0gbmV3IGNvdW50X3R5cGUoMSk7CisKKyAgICAgICAgaWYocG4gPT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKHApOworICAgICAgICAgICAgbmRuYm9vc3Q6OnRocm93X2V4Y2VwdGlvbihzdGQ6OmJhZF9hbGxvYygpKTsKKyAgICAgICAgfQorCisjZW5kaWYKKyAgICB9CisKKyAgICB+c2hhcmVkX3B0cigpCisgICAgeworICAgICAgICBpZigtLSpwbiA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6Y2hlY2tlZF9kZWxldGUocHgpOworICAgICAgICAgICAgZGVsZXRlIHBuOworICAgICAgICB9CisgICAgfQorCisgICAgc2hhcmVkX3B0cihzaGFyZWRfcHRyIGNvbnN0ICYgcik6IHB4KHIucHgpICAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIHBuID0gci5wbjsKKyAgICAgICAgKysqcG47CisgICAgfQorCisgICAgc2hhcmVkX3B0ciAmIG9wZXJhdG9yPShzaGFyZWRfcHRyIGNvbnN0ICYgcikKKyAgICB7CisgICAgICAgIHNoYXJlZF9wdHIocikuc3dhcCgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNpZm5kZWYgQk9PU1RfTk9fQVVUT19QVFIKKworICAgIGV4cGxpY2l0IHNoYXJlZF9wdHIoc3RkOjphdXRvX3B0cjxUPiAmIHIpCisgICAgeyAKKyAgICAgICAgcG4gPSBuZXcgY291bnRfdHlwZSgxKTsgLy8gbWF5IHRocm93CisgICAgICAgIHB4ID0gci5yZWxlYXNlKCk7IC8vIGZpeDogbW92ZWQgaGVyZSB0byBzdG9wIGxlYWsgaWYgbmV3IHRocm93cworICAgIH0gCisKKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KHN0ZDo6YXV0b19wdHI8VD4gJiByKQorICAgIHsKKyAgICAgICAgc2hhcmVkX3B0cihyKS5zd2FwKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIHJlc2V0KFQgKiBwID0gMCkKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVChwID09IDAgfHwgcCAhPSBweCk7CisgICAgICAgIHNoYXJlZF9wdHIocCkuc3dhcCgqdGhpcyk7CisgICAgfQorCisgICAgVCAmIG9wZXJhdG9yKigpIGNvbnN0ICAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVChweCAhPSAwKTsKKyAgICAgICAgcmV0dXJuICpweDsKKyAgICB9CisKKyAgICBUICogb3BlcmF0b3ItPigpIGNvbnN0ICAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVChweCAhPSAwKTsKKyAgICAgICAgcmV0dXJuIHB4OworICAgIH0KKworICAgIFQgKiBnZXQoKSBjb25zdCAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICByZXR1cm4gcHg7CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICByZXR1cm4gKnBuOworICAgIH0KKworICAgIGJvb2wgdW5pcXVlKCkgY29uc3QgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgcmV0dXJuICpwbiA9PSAxOworICAgIH0KKyAgICAKKyAgICB2b2lkIHN3YXAoc2hhcmVkX3B0cjxUPiAmIG90aGVyKSAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICBzdGQ6OnN3YXAocHgsIG90aGVyLnB4KTsKKyAgICAgICAgc3RkOjpzd2FwKHBuLCBvdGhlci5wbik7CisgICAgfQorCitwcml2YXRlOgorCisgICAgVCAqIHB4OyAgICAgICAgICAgIC8vIGNvbnRhaW5lZCBwb2ludGVyCisgICAgY291bnRfdHlwZSAqIHBuOyAgIC8vIHB0ciB0byByZWZlcmVuY2UgY291bnRlcgorfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYSwgc2hhcmVkX3B0cjxVPiBjb25zdCAmIGIpCit7CisgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYSwgc2hhcmVkX3B0cjxVPiBjb25zdCAmIGIpCit7CisgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I8KHNoYXJlZF9wdHI8VD4gY29uc3QgJiBhLCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYikKK3sKKyAgICByZXR1cm4gc3RkOjpsZXNzPFQqPigpKGEuZ2V0KCksIGIuZ2V0KCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIHN3YXAoc2hhcmVkX3B0cjxUPiAmIGEsIHNoYXJlZF9wdHI8VD4gJiBiKQoreworICAgIGEuc3dhcChiKTsKK30KKworLy8gZ2V0X3BvaW50ZXIoKSBlbmFibGVzIG5kbmJvb3N0OjptZW1fZm4gdG8gcmVjb2duaXplIHNoYXJlZF9wdHIKKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIFQgKiBnZXRfcG9pbnRlcihzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCkKK3sKKyAgICByZXR1cm4gcC5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU0hBUkVEX1BUUl9OTVRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY29udmVydGlibGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvbnZlcnRpYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGU1NDYzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvbnZlcnRpYmxlLmhwcApAQCAtMCwwICsxLDkxIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09OVkVSVElCTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09OVkVSVElCTEVfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLyAgZGV0YWlsL3NwX2NvbnZlcnRpYmxlLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkgJiYgZGVmaW5lZCggQk9PU1RfTk9fU0ZJTkFFICkKKyMgZGVmaW5lIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApICYmIGRlZmluZWQoIF9fR05VQ19fICkgJiYgKCBfX0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fIDwgMzAzICkKKyMgZGVmaW5lIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApICYmIGRlZmluZWQoIF9fQk9STEFORENfXyApICYmICggX19CT1JMQU5EQ19fIDwgMHg2MzAgKQorIyBkZWZpbmUgQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKwordGVtcGxhdGU8IGNsYXNzIFksIGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfY29udmVydGlibGUKK3sKKyAgICB0eXBlZGVmIGNoYXIgKCZ5ZXMpIFsxXTsKKyAgICB0eXBlZGVmIGNoYXIgKCZubykgIFsyXTsKKworICAgIHN0YXRpYyB5ZXMgZiggVCogKTsKKyAgICBzdGF0aWMgbm8gIGYoIC4uLiApOworCisgICAgZW51bSBfdnQgeyB2YWx1ZSA9IHNpemVvZiggKGYpKCBzdGF0aWNfY2FzdDxZKj4oMCkgKSApID09IHNpemVvZih5ZXMpIH07Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgWSwgY2xhc3MgVCA+IHN0cnVjdCBzcF9jb252ZXJ0aWJsZTwgWSwgVFtdID4KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gZmFsc2UgfTsKK307CisKK3RlbXBsYXRlPCBjbGFzcyBZLCBjbGFzcyBUID4gc3RydWN0IHNwX2NvbnZlcnRpYmxlPCBZW10sIFRbXSA+Cit7CisgICAgZW51bSBfdnQgeyB2YWx1ZSA9IHNwX2NvbnZlcnRpYmxlPCBZWzFdLCBUWzFdID46OnZhbHVlIH07Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgWSwgc3RkOjpzaXplX3QgTiwgY2xhc3MgVCA+IHN0cnVjdCBzcF9jb252ZXJ0aWJsZTwgWVtOXSwgVFtdID4KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gc3BfY29udmVydGlibGU8IFlbMV0sIFRbMV0gPjo6dmFsdWUgfTsKK307CisKK3N0cnVjdCBzcF9lbXB0eQoreworfTsKKwordGVtcGxhdGU8IGJvb2wgPiBzdHJ1Y3Qgc3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlX2ltcGw7CisKK3RlbXBsYXRlPD4gc3RydWN0IHNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZV9pbXBsPHRydWU+Cit7CisgICAgdHlwZWRlZiBzcF9lbXB0eSB0eXBlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlX2ltcGw8ZmFsc2U+Cit7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgWSwgY2xhc3MgVCA+IHN0cnVjdCBzcF9lbmFibGVfaWZfY29udmVydGlibGU6IHB1YmxpYyBzcF9lbmFibGVfaWZfY29udmVydGlibGVfaW1wbDwgc3BfY29udmVydGlibGU8IFksIFQgPjo6dmFsdWUgPgoreworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUgKQorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT05WRVJUSUJMRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTliNWI4MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2UuaHBwCkBAIC0wLDAgKzEsNzkgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgMjAwNSwgMjAwNiBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaGFzX3N5bmMuaHBwPgorCisjaWYgZGVmaW5lZCggQk9PU1RfU1BfRElTQUJMRV9USFJFQURTICkKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfbnQuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9TUF9VU0VfU1BJTkxPQ0sgKQorIyBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zcGluLmhwcD4KKworI2VsaWYgZGVmaW5lZCggQk9PU1RfU1BfVVNFX1BUSFJFQURTICkKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfcHQuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9ESVNBQkxFX1RIUkVBRFMgKSAmJiAhZGVmaW5lZCggQk9PU1RfU1BfRU5BQkxFX1RIUkVBRFMgKSAmJiAhZGVmaW5lZCggQk9PU1RfRElTQUJMRV9XSU4zMiApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19TTkNfXyApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NuY19wczMuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApICYmICggZGVmaW5lZCggX19pMzg2X18gKSB8fCBkZWZpbmVkKCBfX3g4Nl82NF9fICkgKSAmJiAhZGVmaW5lZChfX1BBVEhTQ0FMRV9fKQorIyBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcD4KKworI2VsaWYgZGVmaW5lZChfX0hQX2FDQykgJiYgZGVmaW5lZChfX2lhNjQpCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2FjY19pYTY0LmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKSAmJiBkZWZpbmVkKCBfX2lhNjRfXyApICYmICFkZWZpbmVkKCBfX0lOVEVMX0NPTVBJTEVSICkgJiYgIWRlZmluZWQoX19QQVRIU0NBTEVfXykKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX2lhNjQuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBfX0lCTUNQUF9fICkgJiYgZGVmaW5lZCggX19wb3dlcnBjICkKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdmFjcHBfcHBjLmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19NV0VSS1NfXyApICYmIGRlZmluZWQoIF9fUE9XRVJQQ19fICkKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfY3dfcHBjLmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKSAmJiAoIGRlZmluZWQoIF9fcG93ZXJwY19fICkgfHwgZGVmaW5lZCggX19wcGNfXyApIHx8IGRlZmluZWQoIF9fcHBjICkgKSAmJiAhZGVmaW5lZChfX1BBVEhTQ0FMRV9fKSAmJiAhZGVmaW5lZCggX0FJWCApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19wcGMuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApICYmICggZGVmaW5lZCggX19taXBzX18gKSB8fCBkZWZpbmVkKCBfbWlwcyApICkgJiYgIWRlZmluZWQoX19QQVRIU0NBTEVfXykKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX21pcHMuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9TUF9IQVNfU1lOQyApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3N5bmMuaHBwPgorCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoIGRlZmluZWQoIF9fc3BhcmN2OSApIHx8ICggZGVmaW5lZCggX19zcGFyY3Y4ICkgJiYgKCBfX0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fID49IDQwMiApICkgKQorIyBpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2Nfc3BhcmMuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBXSU4zMiApIHx8IGRlZmluZWQoIF9XSU4zMiApIHx8IGRlZmluZWQoIF9fV0lOMzJfXyApIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdzMyLmhwcD4KKworI2VsaWYgZGVmaW5lZCggX0FJWCApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2FpeC5ocHA+CisKKyNlbGlmICFkZWZpbmVkKCBCT09TVF9IQVNfVEhSRUFEUyApCisjIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcD4KKworI2Vsc2UKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHA+CisKKyNlbmRpZgorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2FjY19pYTY0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWNjX2lhNjQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ZGFkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2FjY19pYTY0LmhwcApAQCAtMCwwICsxLDE1MSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9BQ0NfSUE2NF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQUNDX0lBNjRfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9hY2NfaWE2NC5ocHAgLSBhQysrIG9uIEhQLVVYIElBNjQKKy8vCisvLyAgQ29weXJpZ2h0IDIwMDcgQmFydWNoIFppbGJlcgorLy8gIENvcHlyaWdodCAyMDA3IEJvcmlzIEd1YmVua28KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisjaW5jbHVkZSA8bWFjaGluZS9zeXMvaW5saW5lLmg+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyArKypwdzsKKworICAgIF9Bc21fZmV0Y2hhZGQoX0ZBU1pfVywgX1NFTV9SRUwsIHB3LCArMSwgX0xESElOVF9OT05FKTsKK30gCisKK2lubGluZSBpbnQgYXRvbWljX2RlY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vIHJldHVybiAtLSpwdzsKKworICAgIGludCByID0gc3RhdGljX2Nhc3Q8aW50PihfQXNtX2ZldGNoYWRkKF9GQVNaX1csIF9TRU1fUkVMLCBwdywgLTEsIF9MREhJTlRfTk9ORSkpOworICAgIGlmICgxID09IHIpCisgICAgeworICAgICAgICBfQXNtX21mKCk7CisgICAgfQorICAgIAorICAgIHJldHVybiByIC0gMTsKK30KKworaW5saW5lIGludCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gaWYoICpwdyAhPSAwICkgKysqcHc7CisgICAgLy8gcmV0dXJuICpwdzsKKworICAgIGludCB2ID0gKnB3OworICAgIAorICAgIGZvciAoOzspCisgICAgeworICAgICAgICBpZiAoMCA9PSB2KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgX0FzbV9tb3ZfdG9fYXIoX0FSRUdfQ0NWLAorICAgICAgICAgICAgICAgICAgICAgICB2LAorICAgICAgICAgICAgICAgICAgICAgICAoX1VQX0NBTExfRkVOQ0UgfCBfVVBfU1lTX0ZFTkNFIHwgX0RPV05fQ0FMTF9GRU5DRSB8IF9ET1dOX1NZU19GRU5DRSkpOworICAgICAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oX0FzbV9jbXB4Y2hnKF9TWl9XLCBfU0VNX0FDUSwgcHcsIHYgKyAxLCBfTERISU5UX05PTkUpKTsKKyAgICAgICAgaWYgKHIgPT0gdikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHIgKyAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2ID0gcjsKKyAgICB9Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4oIHVzZV9jb3VudF8gKTsgLy8gVE9ETyB1c2UgbGQuYWNxIGhlcmUKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0FDQ19JQTY0X0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9haXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9haXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YTcyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2FpeC5ocHAKQEAgLTAsMCArMSwxNDMgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQUlYX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9BSVhfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9haXguaHBwCisvLyAgIGJhc2VkIG9uOiBkZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNSBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAyMDA2IE1pY2hhZWwgdmFuIGRlciBXZXN0aHVpemVuCisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vCisvLyAgTG9jay1mcmVlIGFsZ29yaXRobSBieSBBbGV4YW5kZXIgVGVyZWtob3YKKy8vCisvLyAgVGhhbmtzIHRvIEJlbiBIaXRjaGluZ3MgZm9yIHRoZSAjd2VhayArICgjc2hhcmVkICE9IDApCisvLyAgZm9ybXVsYXRpb24KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorI2luY2x1ZGUgPGJ1aWx0aW5zLmg+CisjaW5jbHVkZSA8c3lzL2F0b21pY19vcC5oPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCBhdG9taWNfaW5jcmVtZW50KCBpbnQzMl90KiBwdyApCit7CisgICAgLy8gKysqcHc7CisKKyAgICBmZXRjaF9hbmRfYWRkKCBwdywgMSApOworfQorCitpbmxpbmUgaW50MzJfdCBhdG9taWNfZGVjcmVtZW50KCBpbnQzMl90ICogcHcgKQoreworICAgIC8vIHJldHVybiAtLSpwdzsKKworICAgIGludDMyX3Qgb3JpZ2luYWxWYWx1ZTsKKworICAgIF9fbHdzeW5jKCk7CisgICAgb3JpZ2luYWxWYWx1ZSA9IGZldGNoX2FuZF9hZGQoIHB3LCAtMSApOworICAgIF9faXN5bmMoKTsKKworICAgIHJldHVybiAob3JpZ2luYWxWYWx1ZSAtIDEpOworfQorCitpbmxpbmUgaW50MzJfdCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBpbnQzMl90ICogcHcgKQoreworICAgIC8vIGlmKCAqcHcgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiAqcHc7CisKKyAgICBpbnQzMl90IHRtcCA9IGZldGNoX2FuZF9hZGQoIHB3LCAwICk7CisgICAgZm9yKCA7OyApCisgICAgeworICAgICAgICBpZiggdG1wID09IDAgKSByZXR1cm4gMDsKKyAgICAgICAgaWYoIGNvbXBhcmVfYW5kX3N3YXAoIHB3LCAmdG1wLCB0bXAgKyAxICkgKSByZXR1cm4gKHRtcCArIDEpOworICAgIH0KK30KKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBpbnQzMl90IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50MzJfdCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ1c2VfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmd2Vha19jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gZmV0Y2hfYW5kX2FkZCggY29uc3RfY2FzdDxpbnQzMl90Kj4oJnVzZV9jb3VudF8pLCAwICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9BSVhfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY0M2UzNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfY3dfcHBjLmhwcApAQCAtMCwwICsxLDE3MSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9DV19QUENfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0NXX1BQQ19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9jd19wcGMuaHBwIC0gQ29kZVdhcnJpb3Igb24gUG93ZXJQQworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA1IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vCisvLyAgTG9jay1mcmVlIGFsZ29yaXRobSBieSBBbGV4YW5kZXIgVGVyZWtob3YKKy8vCisvLyAgVGhhbmtzIHRvIEJlbiBIaXRjaGluZ3MgZm9yIHRoZSAjd2VhayArICgjc2hhcmVkICE9IDApCisvLyAgZm9ybXVsYXRpb24KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCBhdG9taWNfaW5jcmVtZW50KCByZWdpc3RlciBsb25nICogcHcgKQoreworICAgIHJlZ2lzdGVyIGludCBhOworCisgICAgYXNtCisgICAgeworbG9vcDoKKworICAgIGx3YXJ4ICAgYSwgMCwgcHcKKyAgICBhZGRpICAgIGEsIGEsIDEKKyAgICBzdHdjeC4gIGEsIDAsIHB3CisgICAgYm5lLSAgICBsb29wCisgICAgfQorfQorCitpbmxpbmUgbG9uZyBhdG9taWNfZGVjcmVtZW50KCByZWdpc3RlciBsb25nICogcHcgKQoreworICAgIHJlZ2lzdGVyIGludCBhOworCisgICAgYXNtCisgICAgeworICAgIHN5bmMKKworbG9vcDoKKworICAgIGx3YXJ4ICAgYSwgMCwgcHcKKyAgICBhZGRpICAgIGEsIGEsIC0xCisgICAgc3R3Y3guICBhLCAwLCBwdworICAgIGJuZS0gICAgbG9vcAorCisgICAgaXN5bmMKKyAgICB9CisKKyAgICByZXR1cm4gYTsKK30KKworaW5saW5lIGxvbmcgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggcmVnaXN0ZXIgbG9uZyAqIHB3ICkKK3sKKyAgICByZWdpc3RlciBpbnQgYTsKKworICAgIGFzbQorICAgIHsKK2xvb3A6CisKKyAgICBsd2FyeCAgIGEsIDAsIHB3CisgICAgY21wd2kgICBhLCAwCisgICAgYmVxICAgICBzdG9yZQorCisgICAgYWRkaSAgICBhLCBhLCAxCisKK3N0b3JlOgorCisgICAgc3R3Y3guICBhLCAwLCBwdworICAgIGJuZS0gICAgbG9vcAorICAgIH0KKworICAgIHJldHVybiBhOworfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGxvbmcgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBsb25nIHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGNvbnN0IHZvbGF0aWxlICY+KCB1c2VfY291bnRfICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9DV19QUENfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19pYTY0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX2lhNjQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNjUyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19pYTY0LmhwcApAQCAtMCwwICsxLDE1OCBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfSUE2NF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX0lBNjRfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfaWE2NC5ocHAgLSBnKysgb24gSUE2NAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA2IFBldGVyIERpbW92CisvLyAgQ29weXJpZ2h0IDIwMDUgQmVuIEh1dGNoaW5ncworLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLworLy8gIExvY2stZnJlZSBhbGdvcml0aG0gYnkgQWxleGFuZGVyIFRlcmVraG92CisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vICsrKnB3OworCisgICAgaW50IHRtcDsKKworICAgIC8vIE5vIGJhcnJpZXIgaXMgcmVxdWlyZWQgaGVyZSBidXQgZmV0Y2hhZGQgYWx3YXlzIGhhcyBhbiBhY3F1aXJlIG9yCisgICAgLy8gcmVsZWFzZSBiYXJyaWVyIGFzc29jaWF0ZWQgd2l0aCBpdC4gIFdlIGNob29zZSByZWxlYXNlIGFzIGl0IHNob3VsZCBiZQorICAgIC8vIGNoZWFwZXIuCisgICAgX19hc21fXyAoImZldGNoYWRkNC5yZWwgJTA9JTEsMSIgOgorICAgICAgICAgIj1yIih0bXApLCAiPW0iKCpwdykgOgorICAgICAgICAgIm0iKCAqcHcgKSk7Cit9CisKK2lubGluZSBpbnQgYXRvbWljX2RlY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vIHJldHVybiAtLSpwdzsKKworICAgIGludCBydjsKKworICAgIF9fYXNtX18gKCIgICAgIGZldGNoYWRkNC5yZWwgJTA9JTEsLTEgOzsgXG4iCisgICAgICAgICAgICAgIiAgICAgY21wLmVxICAgICAgICBwNyxwMD0xLCUwIDs7IFxuIgorICAgICAgICAgICAgICIocDcpIGxkNC5hY3EgICAgICAgJTA9JTEgICAgIiA6CisgICAgICAgICAgICAgIj0mciIocnYpLCAiPW0iKCpwdykgOgorICAgICAgICAgICAgICJtIiggKnB3ICkgOgorICAgICAgICAgICAgICJwNyIpOworCisgICAgcmV0dXJuIHJ2OworfQorCitpbmxpbmUgaW50IGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyBpZiggKnB3ICE9IDAgKSArKypwdzsKKyAgICAvLyByZXR1cm4gKnB3OworCisgICAgaW50IHJ2LCB0bXAsIHRtcDI7CisKKyAgICBfX2FzbV9fICgiMDogICBsZDQgICAgICAgICAgJTA9JTMgICAgICAgICAgIDs7IFxuIgorICAgICAgICAgIiAgICAgY21wLmVxICAgICAgIHA3LHAwPTAsJTAgICAgICAgIDs7IFxuIgorICAgICAgICAgIihwNykgYnIuY29uZC5zcG50IDFmICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAgIiAgICAgbW92ICAgICAgICAgIGFyLmNjdj0lMCAgICAgICAgIFxuIgorICAgICAgICAgIiAgICAgYWRkICAgICAgICAgICUxPTEsJTAgICAgICAgICAgIDs7IFxuIgorICAgICAgICAgIiAgICAgY21weGNoZzQuYWNxICUyPSUzLCUxLGFyLmNjdiA7OyBcbiIKKyAgICAgICAgICIgICAgIGNtcC5uZSAgICAgICBwNyxwMD0lMCwlMiAgICAgICA7OyBcbiIKKyAgICAgICAgICIocDcpIGJyLmNvbmQuc3BudCAwYiAgICAgICAgICAgICAgICBcbiIKKyAgICAgICAgICIgICAgIG1vdiAgICAgICAgICAlMD0lMSAgICAgICAgICAgICA7OyBcbiIKKyAgICAgICAgICIxOiIgOiAKKyAgICAgICAgICI9JnIiKHJ2KSwgIj0mciIodG1wKSwgIj0mciIodG1wMiksICI9bSIoKnB3KSA6CisgICAgICAgICAibSIoICpwdyApIDoKKyAgICAgICAgICJhci5jY3YiLCAicDciKTsKKworICAgIHJldHVybiBydjsKK30KKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBpbnQgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBpbnQgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmdXNlX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJndlYWtfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludCBjb25zdCB2b2xhdGlsZSAmPiggdXNlX2NvdW50XyApOyAvLyBUT0RPIHVzZSBsZC5hY3EgaGVyZQorICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX0lBNjRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19taXBzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX21pcHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMWIyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19taXBzLmhwcApAQCAtMCwwICsxLDE4MiBAQAorI2lmbmRlZiBCT09TVF9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19NSVBTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19NSVBTX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19taXBzLmhwcCAtIGcrKyBvbiBNSVBTCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOSwgU3BpcmVudCBDb21tdW5pY2F0aW9ucywgSW5jLgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLworLy8gIExvY2stZnJlZSBhbGdvcml0aG0gYnkgQWxleGFuZGVyIFRlcmVraG92CisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vICsrKnB3OworCisgICAgaW50IHRtcDsKKworICAgIF9fYXNtX18gX192b2xhdGlsZV9fCisgICAgKAorICAgICAgICAiMDpcblx0IgorICAgICAgICAiLnNldCBwdXNoXG5cdCIKKyAgICAgICAgIi5zZXQgbWlwczJcblx0IgorICAgICAgICAibGwgJTAsICUxXG5cdCIKKyAgICAgICAgImFkZGl1ICUwLCAxXG5cdCIKKyAgICAgICAgInNjICUwLCAlMVxuXHQiCisgICAgICAgICIuc2V0IHBvcFxuXHQiCisgICAgICAgICJiZXF6ICUwLCAwYiI6CisgICAgICAgICI9JnIiKCB0bXAgKSwgIj1tIiggKnB3ICk6CisgICAgICAgICJtIiggKnB3ICkKKyAgICApOworfQorCitpbmxpbmUgaW50IGF0b21pY19kZWNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyByZXR1cm4gLS0qcHc7CisKKyAgICBpbnQgcnYsIHRtcDsKKworICAgIF9fYXNtX18gX192b2xhdGlsZV9fCisgICAgKAorICAgICAgICAiMDpcblx0IgorICAgICAgICAiLnNldCBwdXNoXG5cdCIKKyAgICAgICAgIi5zZXQgbWlwczJcblx0IgorICAgICAgICAibGwgJTEsICUyXG5cdCIKKyAgICAgICAgImFkZGl1ICUwLCAlMSwgLTFcblx0IgorICAgICAgICAic2MgJTAsICUyXG5cdCIKKyAgICAgICAgIi5zZXQgcG9wXG5cdCIKKyAgICAgICAgImJlcXogJTAsIDBiXG5cdCIKKyAgICAgICAgImFkZGl1ICUwLCAlMSwgLTEiOgorICAgICAgICAiPSZyIiggcnYgKSwgIj0mciIoIHRtcCApLCAiPW0iKCAqcHcgKToKKyAgICAgICAgIm0iKCAqcHcgKToKKyAgICAgICAgIm1lbW9yeSIKKyAgICApOworCisgICAgcmV0dXJuIHJ2OworfQorCitpbmxpbmUgaW50IGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyBpZiggKnB3ICE9IDAgKSArKypwdzsKKyAgICAvLyByZXR1cm4gKnB3OworCisgICAgaW50IHJ2LCB0bXA7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAgICgKKyAgICAgICAgIjA6XG5cdCIKKyAgICAgICAgIi5zZXQgcHVzaFxuXHQiCisgICAgICAgICIuc2V0IG1pcHMyXG5cdCIKKyAgICAgICAgImxsICUwLCAlMlxuXHQiCisgICAgICAgICJiZXF6ICUwLCAxZlxuXHQiCisgICAgICAgICJhZGRpdSAlMSwgJTAsIDFcblx0IgorICAgICAgICAic2MgJTEsICUyXG5cdCIKKyAgICAgICAgIi5zZXQgcG9wXG5cdCIKKyAgICAgICAgImJlcXogJTEsIDBiXG5cdCIKKyAgICAgICAgImFkZGl1ICUwLCAlMCwgMVxuXHQiCisgICAgICAgICIxOiI6CisgICAgICAgICI9JnIiKCBydiApLCAiPSZyIiggdG1wICksICI9bSIoICpwdyApOgorICAgICAgICAibSIoICpwdyApOgorICAgICAgICAibWVtb3J5IgorICAgICk7CisKKyAgICByZXR1cm4gcnY7Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4oIHVzZV9jb3VudF8gKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX01JUFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19wcGMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmVhY2QwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcApAQCAtMCwwICsxLDE4MiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfUFBDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfUFBDX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19wcGMuaHBwIC0gZysrIG9uIFBvd2VyUEMKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLworLy8gIExvY2stZnJlZSBhbGdvcml0aG0gYnkgQWxleGFuZGVyIFRlcmVraG92CisvLworLy8gIFRoYW5rcyB0byBCZW4gSGl0Y2hpbmdzIGZvciB0aGUgI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorLy8gIGZvcm11bGF0aW9uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vICsrKnB3OworCisgICAgaW50IHRtcDsKKworICAgIF9fYXNtX18KKyAgICAoCisgICAgICAgICIwOlxuXHQiCisgICAgICAgICJsd2FyeCAlMSwgMCwgJTJcblx0IgorICAgICAgICAiYWRkaSAlMSwgJTEsIDFcblx0IgorICAgICAgICAic3R3Y3guICUxLCAwLCAlMlxuXHQiCisgICAgICAgICJibmUtIDBiIjoKKworICAgICAgICAiPW0iKCAqcHcgKSwgIj0mYiIoIHRtcCApOgorICAgICAgICAiciIoIHB3ICksICJtIiggKnB3ICk6CisgICAgICAgICJjYyIKKyAgICApOworfQorCitpbmxpbmUgaW50IGF0b21pY19kZWNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyByZXR1cm4gLS0qcHc7CisKKyAgICBpbnQgcnY7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAgICgKKyAgICAgICAgInN5bmNcblx0IgorICAgICAgICAiMDpcblx0IgorICAgICAgICAibHdhcnggJTEsIDAsICUyXG5cdCIKKyAgICAgICAgImFkZGkgJTEsICUxLCAtMVxuXHQiCisgICAgICAgICJzdHdjeC4gJTEsIDAsICUyXG5cdCIKKyAgICAgICAgImJuZS0gMGJcblx0IgorICAgICAgICAiaXN5bmMiOgorCisgICAgICAgICI9bSIoICpwdyApLCAiPSZiIiggcnYgKToKKyAgICAgICAgInIiKCBwdyApLCAibSIoICpwdyApOgorICAgICAgICAibWVtb3J5IiwgImNjIgorICAgICk7CisKKyAgICByZXR1cm4gcnY7Cit9CisKK2lubGluZSBpbnQgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vIGlmKCAqcHcgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiAqcHc7CisKKyAgICBpbnQgcnY7CisKKyAgICBfX2FzbV9fCisgICAgKAorICAgICAgICAiMDpcblx0IgorICAgICAgICAibHdhcnggJTEsIDAsICUyXG5cdCIKKyAgICAgICAgImNtcHdpICUxLCAwXG5cdCIKKyAgICAgICAgImJlcSAxZlxuXHQiCisgICAgICAgICJhZGRpICUxLCAlMSwgMVxuXHQiCisgICAgICAgICIxOlxuXHQiCisgICAgICAgICJzdHdjeC4gJTEsIDAsICUyXG5cdCIKKyAgICAgICAgImJuZS0gMGIiOgorCisgICAgICAgICI9bSIoICpwdyApLCAiPSZiIiggcnYgKToKKyAgICAgICAgInIiKCBwdyApLCAibSIoICpwdyApOgorICAgICAgICAiY2MiCisgICAgKTsKKworICAgIHJldHVybiBydjsKK30KKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBpbnQgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBpbnQgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmdXNlX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJndlYWtfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludCBjb25zdCB2b2xhdGlsZSAmPiggdXNlX2NvdW50XyApOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1BQQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWUxYjRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2Nfc3BhcmMuaHBwCkBAIC0wLDAgKzEsMTY3IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19TUEFSQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1NQQVJDX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcCAtIGcrKyBvbiBTcGFyYyBWOCsKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2IFBpb3RyIFd5ZGVyc2tpCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2IFRvbWFzIFB1dmVybGUKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDYgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLy8KKy8vICBUaGFua3MgdG8gTWljaGFlbCB2YW4gZGVyIFdlc3RodWl6ZW4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4gLy8gaW50MzJfdAorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgaW50MzJfdCBjb21wYXJlX2FuZF9zd2FwKCBpbnQzMl90ICogZGVzdF8sIGludDMyX3QgY29tcGFyZV8sIGludDMyX3Qgc3dhcF8gKQoreworICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCAiY2FzIFslMV0sICUyLCAlMCIKKyAgICAgICAgICAgICAgICAgICAgICAgIDogIityIiAoc3dhcF8pCisgICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAoZGVzdF8pLCAiciIgKGNvbXBhcmVfKQorICAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5IiApOworCisgICAgcmV0dXJuIHN3YXBfOworfQorCitpbmxpbmUgaW50MzJfdCBhdG9taWNfZmV0Y2hfYW5kX2FkZCggaW50MzJfdCAqIHB3LCBpbnQzMl90IGR2ICkKK3sKKyAgICAvLyBsb25nIHIgPSAqcHc7CisgICAgLy8gKnB3ICs9IGR2OworICAgIC8vIHJldHVybiByOworCisgICAgZm9yKCA7OyApCisgICAgeworICAgICAgICBpbnQzMl90IHIgPSAqcHc7CisKKyAgICAgICAgaWYoIF9fYnVpbHRpbl9leHBlY3QoKGNvbXBhcmVfYW5kX3N3YXAocHcsIHIsIHIgKyBkdikgPT0gciksIDEpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludDMyX3QgKiBwdyApCit7CisgICAgYXRvbWljX2ZldGNoX2FuZF9hZGQoIHB3LCAxICk7Cit9CisKK2lubGluZSBpbnQzMl90IGF0b21pY19kZWNyZW1lbnQoIGludDMyX3QgKiBwdyApCit7CisgICAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmRfYWRkKCBwdywgLTEgKTsKK30KKworaW5saW5lIGludDMyX3QgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50MzJfdCAqIHB3ICkKK3sKKyAgICAvLyBsb25nIHIgPSAqcHc7CisgICAgLy8gaWYoIHIgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiByOworCisgICAgZm9yKCA7OyApCisgICAgeworICAgICAgICBpbnQzMl90IHIgPSAqcHc7CisKKyAgICAgICAgaWYoIHIgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByOworICAgICAgICB9CisKKyAgICAgICAgaWYoIF9fYnVpbHRpbl9leHBlY3QoICggY29tcGFyZV9hbmRfc3dhcCggcHcsIHIsIHIgKyAxICkgPT0gciApLCAxICkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorICAgIH0gICAgCit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50MzJfdCB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGludDMyX3Qgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmdXNlX2NvdW50XyApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJndlYWtfY291bnRfICkgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8IGludDMyX3QgY29uc3Qgdm9sYXRpbGUgJiA+KCB1c2VfY291bnRfICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfU1BBUkNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY194ODYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGEzNzk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcApAQCAtMCwwICsxLDE3NCBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfWDg2X0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfWDg2X0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY194ODYuaHBwIC0gZysrIG9uIDQ4Nisgb3IgQU1ENjQKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLworLy8gIExvY2stZnJlZSBhbGdvcml0aG0gYnkgQWxleGFuZGVyIFRlcmVraG92CisvLworLy8gIFRoYW5rcyB0byBCZW4gSGl0Y2hpbmdzIGZvciB0aGUgI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorLy8gIGZvcm11bGF0aW9uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIGludCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggaW50ICogcHcsIGludCBkdiApCit7CisgICAgLy8gaW50IHIgPSAqcHc7CisgICAgLy8gKnB3ICs9IGR2OworICAgIC8vIHJldHVybiByOworCisgICAgaW50IHI7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAgICgKKyAgICAgICAgImxvY2tcblx0IgorICAgICAgICAieGFkZCAlMSwgJTAiOgorICAgICAgICAiPW0iKCAqcHcgKSwgIj1yIiggciApOiAvLyBvdXRwdXRzICglMCwgJTEpCisgICAgICAgICJtIiggKnB3ICksICIxIiggZHYgKTogLy8gaW5wdXRzICglMiwgJTMgPT0gJTEpCisgICAgICAgICJtZW1vcnkiLCAiY2MiIC8vIGNsb2JiZXJzCisgICAgKTsKKworICAgIHJldHVybiByOworfQorCitpbmxpbmUgdm9pZCBhdG9taWNfaW5jcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy9hdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggcHcsIDEgKTsKKworICAgIF9fYXNtX18KKyAgICAoCisgICAgICAgICJsb2NrXG5cdCIKKyAgICAgICAgImluY2wgJTAiOgorICAgICAgICAiPW0iKCAqcHcgKTogLy8gb3V0cHV0ICglMCkKKyAgICAgICAgIm0iKCAqcHcgKTogLy8gaW5wdXQgKCUxKQorICAgICAgICAiY2MiIC8vIGNsb2JiZXJzCisgICAgKTsKK30KKworaW5saW5lIGludCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gaW50IHJ2ID0gKnB3OworICAgIC8vIGlmKCBydiAhPSAwICkgKysqcHc7CisgICAgLy8gcmV0dXJuIHJ2OworCisgICAgaW50IHJ2LCB0bXA7CisKKyAgICBfX2FzbV9fCisgICAgKAorICAgICAgICAibW92bCAlMCwgJSVlYXhcblx0IgorICAgICAgICAiMDpcblx0IgorICAgICAgICAidGVzdCAlJWVheCwgJSVlYXhcblx0IgorICAgICAgICAiamUgMWZcblx0IgorICAgICAgICAibW92bCAlJWVheCwgJTJcblx0IgorICAgICAgICAiaW5jbCAlMlxuXHQiCisgICAgICAgICJsb2NrXG5cdCIKKyAgICAgICAgImNtcHhjaGdsICUyLCAlMFxuXHQiCisgICAgICAgICJqbmUgMGJcblx0IgorICAgICAgICAiMToiOgorICAgICAgICAiPW0iKCAqcHcgKSwgIj0mYSIoIHJ2ICksICI9JnIiKCB0bXAgKTogLy8gb3V0cHV0cyAoJTAsICUxLCAlMikKKyAgICAgICAgIm0iKCAqcHcgKTogLy8gaW5wdXQgKCUzKQorICAgICAgICAiY2MiIC8vIGNsb2JiZXJzCisgICAgKTsKKworICAgIHJldHVybiBydjsKK30KKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBpbnQgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBpbnQgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggJnVzZV9jb3VudF8sIC0xICkgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggJndlYWtfY291bnRfLCAtMSApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4oIHVzZV9jb3VudF8gKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19YODZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NDJmMWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcApAQCAtMCwwICsxLDEwOCBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9OVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfTlRfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfbnQuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBsb25nIHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgbG9uZyB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgICsrdXNlX2NvdW50XzsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgaWYoIHVzZV9jb3VudF8gPT0gMCApIHJldHVybiBmYWxzZTsKKyAgICAgICAgKyt1c2VfY291bnRfOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggLS11c2VfY291bnRfID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgKyt3ZWFrX2NvdW50XzsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCAtLXdlYWtfY291bnRfID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiB1c2VfY291bnRfOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfTlRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3B0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfcHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYzQyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3B0LmhwcApAQCAtMCwwICsxLDEzNiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9QVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfUFRfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfcHQuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgbG9uZyB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGxvbmcgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworICAgIG11dGFibGUgcHRocmVhZF9tdXRleF90IG1fOworCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworLy8gSFBVWCAxMC4yMCAvIERDRSBoYXMgYSBub25zdGFuZGFyZCBwdGhyZWFkX211dGV4X2luaXQKKworI2lmIGRlZmluZWQoX19ocHV4KSAmJiBkZWZpbmVkKF9ERUNUSFJFQURTXykKKyAgICAgICAgcHRocmVhZF9tdXRleF9pbml0KCAmbV8sIHB0aHJlYWRfbXV0ZXhhdHRyX2RlZmF1bHQgKTsKKyNlbHNlCisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCggJm1fLCAwICk7CisjZW5kaWYKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2Rlc3Ryb3koICZtXyApOworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soICZtXyApOworICAgICAgICArK3VzZV9jb3VudF87CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCAmbV8gKTsKKyAgICAgICAgYm9vbCByID0gdXNlX2NvdW50XyA9PSAwPyBmYWxzZTogKCArK3VzZV9jb3VudF8sIHRydWUgKTsKKyAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soICZtXyApOworICAgICAgICByZXR1cm4gcjsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soICZtXyApOworICAgICAgICBsb25nIG5ld191c2VfY291bnQgPSAtLXVzZV9jb3VudF87CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKTsKKworICAgICAgICBpZiggbmV3X3VzZV9jb3VudCA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm1fICk7CisgICAgICAgICsrd2Vha19jb3VudF87CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm1fICk7CisgICAgICAgIGxvbmcgbmV3X3dlYWtfY291bnQgPSAtLXdlYWtfY291bnRfOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm1fICk7CisKKyAgICAgICAgaWYoIG5ld193ZWFrX2NvdW50ID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm1fICk7CisgICAgICAgIGxvbmcgciA9IHVzZV9jb3VudF87CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKTsKKworICAgICAgICByZXR1cm4gcjsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1BUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zbmNfcHMzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc25jX3BzMy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYwOWQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc25jX3BzMy5ocHAKQEAgLTAsMCArMSwxNjIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU05DX1BTM19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU05DX1BTM19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2Nfc3BhcmMuaHBwIC0gZysrIG9uIFNwYXJjIFY4KworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDYgUGlvdHIgV3lkZXJza2kKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDYgVG9tYXMgUHV2ZXJsZQorLy8gIENvcHlyaWdodCAoYykgMjAwNiBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAoYykgMjAxMSBFbWlsIERvdGNoZXZza2kKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLy8KKy8vICBUaGFua3MgdG8gTWljaGFlbCB2YW4gZGVyIFdlc3RodWl6ZW4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4gLy8gdWludDMyX3QKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHVpbnQzMl90IGNvbXBhcmVfYW5kX3N3YXAoIHVpbnQzMl90ICogZGVzdF8sIHVpbnQzMl90IGNvbXBhcmVfLCB1aW50MzJfdCBzd2FwXyApCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9jZWxsQXRvbWljQ29tcGFyZUFuZFN3YXAzMihkZXN0Xyxjb21wYXJlXyxzd2FwXyk7Cit9CisKK2lubGluZSB1aW50MzJfdCBhdG9taWNfZmV0Y2hfYW5kX2FkZCggdWludDMyX3QgKiBwdywgdWludDMyX3QgZHYgKQoreworICAgIC8vIGxvbmcgciA9ICpwdzsKKyAgICAvLyAqcHcgKz0gZHY7CisgICAgLy8gcmV0dXJuIHI7CisKKyAgICBmb3IoIDs7ICkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHIgPSAqcHc7CisKKyAgICAgICAgaWYoIF9fYnVpbHRpbl9leHBlY3QoKGNvbXBhcmVfYW5kX3N3YXAocHcsIHIsIHIgKyBkdikgPT0gciksIDEpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIHVpbnQzMl90ICogcHcgKQoreworICAgICh2b2lkKSBfX2J1aWx0aW5fY2VsbEF0b21pY0luY3IzMiggcHcgKTsKK30KKworaW5saW5lIHVpbnQzMl90IGF0b21pY19kZWNyZW1lbnQoIHVpbnQzMl90ICogcHcgKQoreworICAgIHJldHVybiBfX2J1aWx0aW5fY2VsbEF0b21pY0RlY3IzMiggcHcgKTsKK30KKworaW5saW5lIHVpbnQzMl90IGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIHVpbnQzMl90ICogcHcgKQoreworICAgIC8vIGxvbmcgciA9ICpwdzsKKyAgICAvLyBpZiggciAhPSAwICkgKysqcHc7CisgICAgLy8gcmV0dXJuIHI7CisKKyAgICBmb3IoIDs7ICkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHIgPSAqcHc7CisKKyAgICAgICAgaWYoIHIgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByOworICAgICAgICB9CisKKyAgICAgICAgaWYoIF9fYnVpbHRpbl9leHBlY3QoICggY29tcGFyZV9hbmRfc3dhcCggcHcsIHIsIHIgKyAxICkgPT0gciApLCAxICkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorICAgIH0gICAgCit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgdWludDMyX3QgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICB1aW50MzJfdCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ1c2VfY291bnRfICkgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmd2Vha19jb3VudF8gKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDwgdWludDMyX3QgY29uc3Qgdm9sYXRpbGUgJiA+KCB1c2VfY291bnRfICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9TTkNfUFMzX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zcGluLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlkM2E4NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHAKQEAgLTAsMCArMSwxMzIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU1BJTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU1BJTl9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zcGluLmhwcCAtIHNwaW5sb2NrIHBvb2wgYXRvbWljIGVtdWxhdGlvbgorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wb29sLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIGludCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggaW50ICogcHcsIGludCBkdiApCit7CisgICAgc3BpbmxvY2tfcG9vbDwxPjo6c2NvcGVkX2xvY2sgbG9jayggcHcgKTsKKworICAgIGludCByID0gKnB3OworICAgICpwdyArPSBkdjsKKyAgICByZXR1cm4gcjsKK30KKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIHNwaW5sb2NrX3Bvb2w8MT46OnNjb3BlZF9sb2NrIGxvY2soIHB3ICk7CisgICAgKysqcHc7Cit9CisKK2lubGluZSBpbnQgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIHNwaW5sb2NrX3Bvb2w8MT46OnNjb3BlZF9sb2NrIGxvY2soIHB3ICk7CisKKyAgICBpbnQgcnYgPSAqcHc7CisgICAgaWYoIHJ2ICE9IDAgKSArKypwdzsKKyAgICByZXR1cm4gcnY7Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoICZ1c2VfY291bnRfLCAtMSApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoICZ3ZWFrX2NvdW50XywgLTEgKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICBzcGlubG9ja19wb29sPDE+OjpzY29wZWRfbG9jayBsb2NrKCAmdXNlX2NvdW50XyApOworICAgICAgICByZXR1cm4gdXNlX2NvdW50XzsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1NQSU5fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3N5bmMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zeW5jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWU3ZmFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zeW5jLmhwcApAQCAtMCwwICsxLDE1NiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9TWU5DX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9TWU5DX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3luYy5ocHAgLSBnKysgNC4xKyBfX3N5bmMgaW50cmluc2ljcworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDcgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKworI2lmIGRlZmluZWQoIF9faWE2NF9fICkgJiYgZGVmaW5lZCggX19JTlRFTF9DT01QSUxFUiApCisjIGluY2x1ZGUgPGlhNjRpbnRyaW4uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCisjaWYgSU5UX01BWCA+PSAyMTQ3NDgzNjQ3CisKK3R5cGVkZWYgaW50IHNwX2ludDMyX3Q7CisKKyNlbHNlCisKK3R5cGVkZWYgbG9uZyBzcF9pbnQzMl90OworCisjZW5kaWYKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggc3BfaW50MzJfdCAqIHB3ICkKK3sKKyAgICBfX3N5bmNfZmV0Y2hfYW5kX2FkZCggcHcsIDEgKTsKK30KKworaW5saW5lIHNwX2ludDMyX3QgYXRvbWljX2RlY3JlbWVudCggc3BfaW50MzJfdCAqIHB3ICkKK3sKKyAgICByZXR1cm4gX19zeW5jX2ZldGNoX2FuZF9hZGQoIHB3LCAtMSApOworfQorCitpbmxpbmUgc3BfaW50MzJfdCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBzcF9pbnQzMl90ICogcHcgKQoreworICAgIC8vIGxvbmcgciA9ICpwdzsKKyAgICAvLyBpZiggciAhPSAwICkgKysqcHc7CisgICAgLy8gcmV0dXJuIHI7CisKKyAgICBzcF9pbnQzMl90IHIgPSAqcHc7CisKKyAgICBmb3IoIDs7ICkKKyAgICB7CisgICAgICAgIGlmKCByID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorCisgICAgICAgIHNwX2ludDMyX3QgcjIgPSBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3YXAoIHB3LCByLCByICsgMSApOworCisgICAgICAgIGlmKCByMiA9PSByICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICByID0gcjI7CisgICAgICAgIH0KKyAgICB9ICAgIAorfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIHNwX2ludDMyX3QgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBzcF9pbnQzMl90IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBjb25zdF9jYXN0PCBzcF9pbnQzMl90IGNvbnN0IHZvbGF0aWxlICYgPiggdXNlX2NvdW50XyApOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU1lOQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdmFjcHBfcHBjLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdmFjcHBfcHBjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmZhZTRkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV92YWNwcF9wcGMuaHBwCkBAIC0wLDAgKzEsMTUxIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1ZBQ1BQX1BQQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfVkFDUFBfUFBDX0hQUF9JTkNMVURFRAorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfdmFjcHBfcHBjLmhwcCAtIHhsQyh2YWNwcCkgb24gUE9XRVIKKy8vICAgYmFzZWQgb246IGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfdzMyLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA1IFBldGVyIERpbW92CisvLyAgQ29weXJpZ2h0IDIwMDYgTWljaGFlbCB2YW4gZGVyIFdlc3RodWl6ZW4KKy8vICBDb3B5cmlnaHQgMjAxMiBJQk0gQ29ycC4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKy8vICBUaGFua3MgdG8gQmVuIEhpdGNoaW5ncyBmb3IgdGhlICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKy8vICBmb3JtdWxhdGlvbgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK2V4dGVybiAiYnVpbHRpbiIgdm9pZCBfX2x3c3luYyh2b2lkKTsKK2V4dGVybiAiYnVpbHRpbiIgdm9pZCBfX2lzeW5jKHZvaWQpOworZXh0ZXJuICJidWlsdGluIiBpbnQgX19mZXRjaF9hbmRfYWRkKHZvbGF0aWxlIGludCogYWRkciwgaW50IHZhbCk7CitleHRlcm4gImJ1aWx0aW4iIGludCBfX2NvbXBhcmVfYW5kX3N3YXAodm9sYXRpbGUgaW50KiwgaW50KiwgaW50KTsKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50ICpwdyApCit7CisgICAvLyArKypwdzsKKyAgIF9fbHdzeW5jKCk7CisgICBfX2ZldGNoX2FuZF9hZGQocHcsIDEpOworICAgX19pc3luYygpOworfSAKKworaW5saW5lIGludCBhdG9taWNfZGVjcmVtZW50KCBpbnQgKnB3ICkKK3sKKyAgIC8vIHJldHVybiAtLSpwdzsKKyAgIF9fbHdzeW5jKCk7CisgICBpbnQgb3JpZ2luYWxWYWx1ZSA9IF9fZmV0Y2hfYW5kX2FkZChwdywgLTEpOworICAgX19pc3luYygpOworCisgICByZXR1cm4gKG9yaWdpbmFsVmFsdWUgLSAxKTsKK30KKworaW5saW5lIGludCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBpbnQgKnB3ICkKK3sKKyAgIC8vIGlmKCAqcHcgIT0gMCApICsrKnB3OworICAgLy8gcmV0dXJuICpwdzsKKworICAgX19sd3N5bmMoKTsKKyAgIGludCB2ID0gKmNvbnN0X2Nhc3Q8dm9sYXRpbGUgaW50Kj4ocHcpOworICAgZm9yICg7OykKKyAgIC8vIGxvb3AgdW50aWwgc3RhdGUgaXMga25vd24KKyAgIHsKKyAgICAgIGlmICh2ID09IDApIHJldHVybiAwOworICAgICAgaWYgKF9fY29tcGFyZV9hbmRfc3dhcChwdywgJnYsIHYgKyAxKSkKKyAgICAgIHsKKyAgICAgICAgIF9faXN5bmMoKTsgcmV0dXJuICh2ICsgMSk7CisgICAgICB9CisgICB9Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisgICAgY2hhciBwYWRbNjRdIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDY0KSkpOworICAgICAgICAgICAgLy8gcGFkIHRvIHByZXZlbnQgZmFsc2Ugc2hhcmluZworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmdXNlX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJndlYWtfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuICpjb25zdF9jYXN0PHZvbGF0aWxlIGludCo+KCZ1c2VfY291bnRfKTsgCisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9WQUNQUF9QUENfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgzZmM3OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdzMyLmhwcApAQCAtMCwwICsxLDEzMSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9XMzJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1czMl9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV93MzIuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKy8vICBUaGFua3MgdG8gQmVuIEhpdGNoaW5ncyBmb3IgdGhlICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKy8vICBmb3JtdWxhdGlvbgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9pbnRlcmxvY2tlZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgbG9uZyB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGxvbmcgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIGZvciggOzsgKQorICAgICAgICB7CisgICAgICAgICAgICBsb25nIHRtcCA9IHN0YXRpY19jYXN0PCBsb25nIGNvbnN0IHZvbGF0aWxlJiA+KCB1c2VfY291bnRfICk7CisgICAgICAgICAgICBpZiggdG1wID09IDAgKSByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKCBCT09TVF9NU1ZDICkgJiYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPT0gMTIwMCApCisKKyAgICAgICAgICAgIC8vIHdvcmsgYXJvdW5kIGEgY29kZSBnZW5lcmF0aW9uIGJ1ZworCisgICAgICAgICAgICBsb25nIHRtcDIgPSB0bXAgKyAxOworICAgICAgICAgICAgaWYoIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UoICZ1c2VfY291bnRfLCB0bXAyLCB0bXAgKSA9PSB0bXAyIC0gMSApIHJldHVybiB0cnVlOworCisjZWxzZQorCisgICAgICAgICAgICBpZiggQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRSggJnVzZV9jb3VudF8sIHRtcCArIDEsIHRtcCApID09IHRtcCApIHJldHVybiB0cnVlOworCisjZW5kaWYKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBCT09TVF9JTlRFUkxPQ0tFRF9ERUNSRU1FTlQoICZ1c2VfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCggJndlYWtfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgY29uc3Qgdm9sYXRpbGUgJj4oIHVzZV9jb3VudF8gKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1czMl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwM2EyNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwCkBAIC0wLDAgKzEsMjU0IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9JTVBMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfSU1QTF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfaW1wbC5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9TUF9VU0VfU1REX0FMTE9DQVRPUikgJiYgZGVmaW5lZChCT09TVF9TUF9VU0VfUVVJQ0tfQUxMT0NBVE9SKQorIyBlcnJvciBCT09TVF9TUF9VU0VfU1REX0FMTE9DQVRPUiBhbmQgQk9PU1RfU1BfVVNFX1FVSUNLX0FMTE9DQVRPUiBhcmUgaW5jb21wYXRpYmxlLgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2UuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9TUF9VU0VfUVVJQ0tfQUxMT0NBVE9SKQorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvcXVpY2tfYWxsb2NhdG9yLmhwcD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9TUF9VU0VfU1REX0FMTE9DQVRPUikKKyNpbmNsdWRlIDxtZW1vcnk+ICAgICAgICAgICAvLyBzdGQ6OmFsbG9jYXRvcgorI2VuZGlmCisKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAvLyBzdGQ6OnNpemVfdAorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorCit2b2lkIHNwX3NjYWxhcl9jb25zdHJ1Y3Rvcl9ob29rKCB2b2lkICogcHgsIHN0ZDo6c2l6ZV90IHNpemUsIHZvaWQgKiBwbiApOwordm9pZCBzcF9zY2FsYXJfZGVzdHJ1Y3Rvcl9ob29rKCB2b2lkICogcHgsIHN0ZDo6c2l6ZV90IHNpemUsIHZvaWQgKiBwbiApOworCisjZW5kaWYKKworbmFtZXNwYWNlIGRldGFpbAoreworCit0ZW1wbGF0ZTxjbGFzcyBYPiBjbGFzcyBzcF9jb3VudGVkX2ltcGxfcDogcHVibGljIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIFggKiBweF87CisKKyAgICBzcF9jb3VudGVkX2ltcGxfcCggc3BfY291bnRlZF9pbXBsX3AgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfaW1wbF9wICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9pbXBsX3AgY29uc3QgJiApOworCisgICAgdHlwZWRlZiBzcF9jb3VudGVkX2ltcGxfcDxYPiB0aGlzX3R5cGU7CisKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IHNwX2NvdW50ZWRfaW1wbF9wKCBYICogcHggKTogcHhfKCBweCApCisgICAgeworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICBuZG5ib29zdDo6c3Bfc2NhbGFyX2NvbnN0cnVjdG9yX2hvb2soIHB4LCBzaXplb2YoWCksIHRoaXMgKTsKKyNlbmRpZgorICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgLy8gbm90aHJvdworICAgIHsKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgbmRuYm9vc3Q6OnNwX3NjYWxhcl9kZXN0cnVjdG9yX2hvb2soIHB4Xywgc2l6ZW9mKFgpLCB0aGlzICk7CisjZW5kaWYKKyAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKCBweF8gKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAmICkKKyAgICB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisjaWYgZGVmaW5lZChCT09TVF9TUF9VU0VfU1REX0FMTE9DQVRPUikKKworICAgIHZvaWQgKiBvcGVyYXRvciBuZXcoIHN0ZDo6c2l6ZV90ICkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6OmFsbG9jYXRvcjx0aGlzX3R5cGU+KCkuYWxsb2NhdGUoIDEsIHN0YXRpY19jYXN0PHRoaXNfdHlwZSAqPigwKSApOworICAgIH0KKworICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKCB2b2lkICogcCApCisgICAgeworICAgICAgICBzdGQ6OmFsbG9jYXRvcjx0aGlzX3R5cGU+KCkuZGVhbGxvY2F0ZSggc3RhdGljX2Nhc3Q8dGhpc190eXBlICo+KHApLCAxICk7CisgICAgfQorCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1FVSUNLX0FMTE9DQVRPUikKKworICAgIHZvaWQgKiBvcGVyYXRvciBuZXcoIHN0ZDo6c2l6ZV90ICkKKyAgICB7CisgICAgICAgIHJldHVybiBxdWlja19hbGxvY2F0b3I8dGhpc190eXBlPjo6YWxsb2MoKTsKKyAgICB9CisKKyAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSggdm9pZCAqIHAgKQorICAgIHsKKyAgICAgICAgcXVpY2tfYWxsb2NhdG9yPHRoaXNfdHlwZT46OmRlYWxsb2MoIHAgKTsKKyAgICB9CisKKyNlbmRpZgorfTsKKworLy8KKy8vIEJvcmxhbmQncyBDb2RlZ3VhcmQgdHJpcHMgdXAgb3ZlciB0aGUgLVZ4LSBvcHRpb24gaGVyZToKKy8vCisjaWZkZWYgX19DT0RFR1VBUkRfXworIyBwcmFnbWEgb3B0aW9uIHB1c2ggLVZ4LQorI2VuZGlmCisKK3RlbXBsYXRlPGNsYXNzIFAsIGNsYXNzIEQ+IGNsYXNzIHNwX2NvdW50ZWRfaW1wbF9wZDogcHVibGljIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIFAgcHRyOyAvLyBjb3B5IGNvbnN0cnVjdG9yIG11c3Qgbm90IHRocm93CisgICAgRCBkZWw7IC8vIGNvcHkgY29uc3RydWN0b3IgbXVzdCBub3QgdGhyb3cKKworICAgIHNwX2NvdW50ZWRfaW1wbF9wZCggc3BfY291bnRlZF9pbXBsX3BkIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2ltcGxfcGQgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2ltcGxfcGQgY29uc3QgJiApOworCisgICAgdHlwZWRlZiBzcF9jb3VudGVkX2ltcGxfcGQ8UCwgRD4gdGhpc190eXBlOworCitwdWJsaWM6CisKKyAgICAvLyBwcmU6IGQocCkgbXVzdCBub3QgdGhyb3cKKworICAgIHNwX2NvdW50ZWRfaW1wbF9wZCggUCBwLCBEICYgZCApOiBwdHIoIHAgKSwgZGVsKCBkICkKKyAgICB7CisgICAgfQorCisgICAgc3BfY291bnRlZF9pbXBsX3BkKCBQIHAgKTogcHRyKCBwICksIGRlbCgpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsKCBwdHIgKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAmIHRpICkKKyAgICB7CisgICAgICAgIHJldHVybiB0aSA9PSBCT09TVF9TUF9UWVBFSUQoRCk/ICZyZWludGVycHJldF9jYXN0PGNoYXImPiggZGVsICk6IDA7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpCisgICAgeworICAgICAgICByZXR1cm4gJnJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciY+KCBkZWwgKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX1VTRV9TVERfQUxMT0NBVE9SKQorCisgICAgdm9pZCAqIG9wZXJhdG9yIG5ldyggc3RkOjpzaXplX3QgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6YWxsb2NhdG9yPHRoaXNfdHlwZT4oKS5hbGxvY2F0ZSggMSwgc3RhdGljX2Nhc3Q8dGhpc190eXBlICo+KDApICk7CisgICAgfQorCisgICAgdm9pZCBvcGVyYXRvciBkZWxldGUoIHZvaWQgKiBwICkKKyAgICB7CisgICAgICAgIHN0ZDo6YWxsb2NhdG9yPHRoaXNfdHlwZT4oKS5kZWFsbG9jYXRlKCBzdGF0aWNfY2FzdDx0aGlzX3R5cGUgKj4ocCksIDEgKTsKKyAgICB9CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9TUF9VU0VfUVVJQ0tfQUxMT0NBVE9SKQorCisgICAgdm9pZCAqIG9wZXJhdG9yIG5ldyggc3RkOjpzaXplX3QgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHF1aWNrX2FsbG9jYXRvcjx0aGlzX3R5cGU+OjphbGxvYygpOworICAgIH0KKworICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKCB2b2lkICogcCApCisgICAgeworICAgICAgICBxdWlja19hbGxvY2F0b3I8dGhpc190eXBlPjo6ZGVhbGxvYyggcCApOworICAgIH0KKworI2VuZGlmCit9OworCit0ZW1wbGF0ZTxjbGFzcyBQLCBjbGFzcyBELCBjbGFzcyBBPiBjbGFzcyBzcF9jb3VudGVkX2ltcGxfcGRhOiBwdWJsaWMgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgUCBwXzsgLy8gY29weSBjb25zdHJ1Y3RvciBtdXN0IG5vdCB0aHJvdworICAgIEQgZF87IC8vIGNvcHkgY29uc3RydWN0b3IgbXVzdCBub3QgdGhyb3cKKyAgICBBIGFfOyAvLyBjb3B5IGNvbnN0cnVjdG9yIG11c3Qgbm90IHRocm93CisKKyAgICBzcF9jb3VudGVkX2ltcGxfcGRhKCBzcF9jb3VudGVkX2ltcGxfcGRhIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2ltcGxfcGRhICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9pbXBsX3BkYSBjb25zdCAmICk7CisKKyAgICB0eXBlZGVmIHNwX2NvdW50ZWRfaW1wbF9wZGE8UCwgRCwgQT4gdGhpc190eXBlOworCitwdWJsaWM6CisKKyAgICAvLyBwcmU6IGQoIHAgKSBtdXN0IG5vdCB0aHJvdworCisgICAgc3BfY291bnRlZF9pbXBsX3BkYSggUCBwLCBEICYgZCwgQSBhICk6IHBfKCBwICksIGRfKCBkICksIGFfKCBhICkKKyAgICB7CisgICAgfQorCisgICAgc3BfY291bnRlZF9pbXBsX3BkYSggUCBwLCBBIGEgKTogcF8oIHAgKSwgZF8oKSwgYV8oIGEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRfKCBwXyApOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBOjp0ZW1wbGF0ZSByZWJpbmQ8IHRoaXNfdHlwZSA+OjpvdGhlciBBMjsKKworICAgICAgICBBMiBhMiggYV8gKTsKKworICAgICAgICB0aGlzLT5+dGhpc190eXBlKCk7CisgICAgICAgIGEyLmRlYWxsb2NhdGUoIHRoaXMsIDEgKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAmIHRpICkKKyAgICB7CisgICAgICAgIHJldHVybiB0aSA9PSBCT09TVF9TUF9UWVBFSUQoIEQgKT8gJnJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciY+KCBkXyApOiAwOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZyZWludGVycHJldF9jYXN0PGNoYXImPiggZF8gKTsKKyAgICB9Cit9OworCisjaWZkZWYgX19DT0RFR1VBUkRfXworIyBwcmFnbWEgb3B0aW9uIHBvcAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0lNUExfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfZm9yd2FyZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIyZDlhNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9mb3J3YXJkLmhwcApAQCAtMCwwICsxLDM5IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfRk9SV0FSRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9GT1JXQVJEX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF9mb3J3YXJkLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgMjAwOCwyMDEyIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IFQmJiBzcF9mb3J3YXJkKCBUICYgdCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PCBUJiYgPiggdCApOworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0ZPUldBUkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaGFzX3N5bmMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2hhc19zeW5jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmRlMjFkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2hhc19zeW5jLmhwcApAQCAtMCwwICsxLDY5IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfSEFTX1NZTkNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfSEFTX1NZTkNfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaGFzX3N5bmMuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBEZWZpbmVzIHRoZSBCT09TVF9TUF9IQVNfU1lOQyBtYWNybyBpZiB0aGUgX19zeW5jXyogaW50cmluc2ljcworLy8gIGFyZSBhdmFpbGFibGUuCisvLworCisjaWZuZGVmIEJPT1NUX1NQX05PX1NZTkMKKworI2lmIGRlZmluZWQoIF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FORF9TV0FQXzQgKQorCisjIGRlZmluZSBCT09TVF9TUF9IQVNfU1lOQworCisjZWxpZiBkZWZpbmVkKCBfX0lCTUNQUF9fICkgJiYgKCBfX0lCTUNQUF9fID49IDEyMTAgKQorCisjIGRlZmluZSBCT09TVF9TUF9IQVNfU1lOQworCisjZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApICYmICggX19HTlVDX18gKiAxMDAgKyBfX0dOVUNfTUlOT1JfXyA+PSA0MDEgKQorCisjZGVmaW5lIEJPT1NUX1NQX0hBU19TWU5DCisKKyNpZiBkZWZpbmVkKCBfX2FybV9fICkgIHx8IGRlZmluZWQoIF9fYXJtZWxfXyApCisjdW5kZWYgQk9PU1RfU1BfSEFTX1NZTkMKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggX19ocHBhICkgfHwgZGVmaW5lZCggX19ocHBhX18gKQorI3VuZGVmIEJPT1NUX1NQX0hBU19TWU5DCisjZW5kaWYKKworI2lmIGRlZmluZWQoIF9fbTY4a19fICkKKyN1bmRlZiBCT09TVF9TUF9IQVNfU1lOQworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX3NoX18gKQorI3VuZGVmIEJPT1NUX1NQX0hBU19TWU5DCisjZW5kaWYKKworI2lmIGRlZmluZWQoIF9fc3BhcmNfXyApCisjdW5kZWYgQk9PU1RfU1BfSEFTX1NZTkMKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggX19JTlRFTF9DT01QSUxFUiApICYmICFkZWZpbmVkKCBfX2lhNjRfXyApICYmICggX19JTlRFTF9DT01QSUxFUiA8IDExMTAgKQorI3VuZGVmIEJPT1NUX1NQX0hBU19TWU5DCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19QQVRIU0NBTEVfXykgJiYgKChfX1BBVEhDQ19fID09IDQpICYmIChfX1BBVEhDQ19NSU5PUl9fIDwgOSkpIAorI3VuZGVmIEJPT1NUX1NQX0hBU19TWU5DCisjZW5kaWYKKworI2VuZGlmCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NQX05PX1NZTkMKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9IQVNfU1lOQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9pZl9hcnJheS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaWZfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmOWQ1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaWZfYXJyYXkuaHBwCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzIAorICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCAKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9JRl9BUlJBWV9IUFAKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9JRl9BUlJBWV9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9zaGFyZWRfcHRyLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gCisgICAgICAgIHN0cnVjdCBzcF9pZl9hcnJheTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IHNwX2lmX2FycmF5PFRbXT4geworICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUW10+IHR5cGU7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0cnVjdCBzcF9pZl9zaXplX2FycmF5OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorICAgICAgICBzdHJ1Y3Qgc3BfaWZfc2l6ZV9hcnJheTxUW05dPiB7CisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFRbTl0+IHR5cGU7CisgICAgICAgIH07CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9udWxscHRyX3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX251bGxwdHJfdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNlMmE5YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9udWxscHRyX3QuaHBwCkBAIC0wLDAgKzEsNDUgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9OVUxMUFRSX1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfTlVMTFBUUl9UX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF9udWxscHRyX3QuaHBwCisvLworLy8gIENvcHlyaWdodCAyMDEzIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmIGRlZmluZWQoIF9fY2xhbmdfXyApICYmICFkZWZpbmVkKCBfTElCQ1BQX1ZFUlNJT04gKSAmJiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUgKQorCisgICAgdHlwZWRlZiBkZWNsdHlwZShudWxscHRyKSBzcF9udWxscHRyX3Q7CisKKyNlbHNlCisKKyAgICB0eXBlZGVmIHN0ZDo6bnVsbHB0cl90IHNwX251bGxwdHJfdDsKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX05VTExQVFIgKQorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9OVUxMUFRSX1RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2suaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjZjODA3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrLmhwcApAQCAtMCwwICsxLDU2IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJvb3N0L2RldGFpbC9zcGlubG9jay5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIHN0cnVjdCBzcGlubG9jaworLy8gIHsKKy8vICAgICAgdm9pZCBsb2NrKCk7CisvLyAgICAgIGJvb2wgdHJ5X2xvY2soKTsKKy8vICAgICAgdm9pZCB1bmxvY2soKTsKKy8vCisvLyAgICAgIGNsYXNzIHNjb3BlZF9sb2NrOworLy8gIH07CisvLworLy8gICNkZWZpbmUgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQgPHVuc3BlY2lmaWVkPgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9oYXNfc3luYy5ocHA+CisKKyNpZiBkZWZpbmVkKCBCT09TVF9TUF9VU0VfUFRIUkVBRFMgKQorIyAgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wdC5ocHA+CisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIGRlZmluZWQoIF9fYXJtX18gKSAmJiAhZGVmaW5lZCggX190aHVtYl9fICkKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHA+CisKKyNlbGlmIGRlZmluZWQoIEJPT1NUX1NQX0hBU19TWU5DICkKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfc3luYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja193MzIuaHBwPgorCisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19QVEhSRUFEUykKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcHQuaHBwPgorCisjZWxpZiAhZGVmaW5lZChCT09TVF9IQVNfVEhSRUFEUykKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfbnQuaHBwPgorCisjZWxzZQorIyAgZXJyb3IgVW5yZWNvZ25pemVkIHRocmVhZGluZyBwbGF0Zm9ybQorI2VuZGlmCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1NWZiZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19nY2NfYXJtLmhwcApAQCAtMCwwICsxLDEyMCBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX0dDQ19BUk1fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfR0NDX0FSTV9IUFBfSU5DTFVERUQKKworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTEgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3lpZWxkX2suaHBwPgorCisjaWYgZGVmaW5lZChfX0FSTV9BUkNIXzdfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzdBX18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF83Ul9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN01fXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzdFTV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1NfXykKKworIyBkZWZpbmUgQk9PU1RfU1BfQVJNX0JBUlJJRVIgImRtYiIKKyMgZGVmaW5lIEJPT1NUX1NQX0FSTV9IQVNfTERSRVgKKworI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzZfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZKX18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF82S19fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNlpfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZaS19fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNlQyX18pCisKKyMgZGVmaW5lIEJPT1NUX1NQX0FSTV9CQVJSSUVSICJtY3IgcDE1LCAwLCByMCwgYzcsIGMxMCwgNSIKKyMgZGVmaW5lIEJPT1NUX1NQX0FSTV9IQVNfTERSRVgKKworI2Vsc2UKKworIyBkZWZpbmUgQk9PU1RfU1BfQVJNX0JBUlJJRVIgIiIKKworI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwaW5sb2NrCit7CitwdWJsaWM6CisKKyAgICBpbnQgdl87CisKK3B1YmxpYzoKKworICAgIGJvb2wgdHJ5X2xvY2soKQorICAgIHsKKyAgICAgICAgaW50IHI7CisKKyNpZmRlZiBCT09TVF9TUF9BUk1fSEFTX0xEUkVYCisKKyAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAgICAgICAibGRyZXggJTAsIFslMl07IFxuIgorICAgICAgICAgICAgImNtcCAlMCwgJTE7IFxuIgorICAgICAgICAgICAgInN0cmV4bmUgJTAsICUxLCBbJTJdOyBcbiIKKyAgICAgICAgICAgIEJPT1NUX1NQX0FSTV9CQVJSSUVSIDoKKyAgICAgICAgICAgICI9JnIiKCByICk6IC8vIG91dHB1dHMKKyAgICAgICAgICAgICJyIiggMSApLCAiciIoICZ2XyApOiAvLyBpbnB1dHMKKyAgICAgICAgICAgICJtZW1vcnkiLCAiY2MiICk7CisKKyNlbHNlCisKKyAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAgICAgICAic3dwICUwLCAlMSwgWyUyXTtcbiIKKyAgICAgICAgICAgIEJPT1NUX1NQX0FSTV9CQVJSSUVSIDoKKyAgICAgICAgICAgICI9JnIiKCByICk6IC8vIG91dHB1dHMKKyAgICAgICAgICAgICJyIiggMSApLCAiciIoICZ2XyApOiAvLyBpbnB1dHMKKyAgICAgICAgICAgICJtZW1vcnkiLCAiY2MiICk7CisKKyNlbmRpZgorCisgICAgICAgIHJldHVybiByID09IDA7CisgICAgfQorCisgICAgdm9pZCBsb2NrKCkKKyAgICB7CisgICAgICAgIGZvciggdW5zaWduZWQgayA9IDA7ICF0cnlfbG9jaygpOyArK2sgKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjp5aWVsZCggayApOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB1bmxvY2soKQorICAgIHsKKyAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIEJPT1NUX1NQX0FSTV9CQVJSSUVSIDo6OiAibWVtb3J5IiApOworICAgICAgICAqY29uc3RfY2FzdDwgaW50IHZvbGF0aWxlKiA+KCAmdl8gKSA9IDA7CisgICAgfQorCitwdWJsaWM6CisKKyAgICBjbGFzcyBzY29wZWRfbG9jaworICAgIHsKKyAgICBwcml2YXRlOgorCisgICAgICAgIHNwaW5sb2NrICYgc3BfOworCisgICAgICAgIHNjb3BlZF9sb2NrKCBzY29wZWRfbG9jayBjb25zdCAmICk7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KCBzY29wZWRfbG9jayBjb25zdCAmICk7CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgZXhwbGljaXQgc2NvcGVkX2xvY2soIHNwaW5sb2NrICYgc3AgKTogc3BfKCBzcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwLmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwXy51bmxvY2soKTsKKyAgICAgICAgfQorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQgezB9CisKKyN1bmRlZiBCT09TVF9TUF9BUk1fQkFSUklFUgorI3VuZGVmIEJPT1NUX1NQX0FSTV9IQVNfTERSRVgKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19HQ0NfQVJNX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX250LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19udC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTljYzcxNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19udC5ocHAKQEAgLTAsMCArMSw4OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX05UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX05UX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDggUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9hc3NlcnQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBzcGlubG9jaworeworcHVibGljOgorCisgICAgYm9vbCBsb2NrZWRfOworCitwdWJsaWM6CisKKyAgICBpbmxpbmUgYm9vbCB0cnlfbG9jaygpCisgICAgeworICAgICAgICBpZiggbG9ja2VkXyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvY2tlZF8gPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBsb2NrKCkKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggIWxvY2tlZF8gKTsKKyAgICAgICAgbG9ja2VkXyA9IHRydWU7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgdW5sb2NrKCkKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggbG9ja2VkXyApOworICAgICAgICBsb2NrZWRfID0gZmFsc2U7CisgICAgfQorCitwdWJsaWM6CisKKyAgICBjbGFzcyBzY29wZWRfbG9jaworICAgIHsKKyAgICBwcml2YXRlOgorCisgICAgICAgIHNwaW5sb2NrICYgc3BfOworCisgICAgICAgIHNjb3BlZF9sb2NrKCBzY29wZWRfbG9jayBjb25zdCAmICk7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KCBzY29wZWRfbG9jayBjb25zdCAmICk7CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgZXhwbGljaXQgc2NvcGVkX2xvY2soIHNwaW5sb2NrICYgc3AgKTogc3BfKCBzcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwLmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwXy51bmxvY2soKTsKKyAgICAgICAgfQorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQgeyBmYWxzZSB9CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfTlRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIzYTA0NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wb29sLmhwcApAQCAtMCwwICsxLDkxIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfUE9PTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19QT09MX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIHNwaW5sb2NrX3Bvb2w8MD4gaXMgcmVzZXJ2ZWQgZm9yIGF0b21pYzw+LCB3aGVuL2lmIGl0IGFycml2ZXMKKy8vICBzcGlubG9ja19wb29sPDE+IGlzIHJlc2VydmVkIGZvciBzaGFyZWRfcHRyIHJlZmVyZW5jZSBjb3VudHMKKy8vICBzcGlubG9ja19wb29sPDI+IGlzIHJlc2VydmVkIGZvciBzaGFyZWRfcHRyIGF0b21pYyBhY2Nlc3MKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2suaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3RlbXBsYXRlPCBpbnQgSSA+IGNsYXNzIHNwaW5sb2NrX3Bvb2wKK3sKK3ByaXZhdGU6CisKKyAgICBzdGF0aWMgc3BpbmxvY2sgcG9vbF9bIDQxIF07CisKK3B1YmxpYzoKKworICAgIHN0YXRpYyBzcGlubG9jayAmIHNwaW5sb2NrX2Zvciggdm9pZCBjb25zdCAqIHB2ICkKKyAgICB7CisjaWYgZGVmaW5lZChfX1ZNUykgJiYgX19JTklUSUFMX1BPSU5URVJfU0laRSA9PSA2NCAgCisgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSByZWludGVycHJldF9jYXN0PCB1bnNpZ25lZCBsb25nIGxvbmcgPiggcHYgKSAlIDQxOworI2Vsc2UgIAorICAgICAgICBzdGQ6OnNpemVfdCBpID0gcmVpbnRlcnByZXRfY2FzdDwgc3RkOjpzaXplX3QgPiggcHYgKSAlIDQxOworI2VuZGlmICAKKyAgICAgICAgcmV0dXJuIHBvb2xfWyBpIF07CisgICAgfQorCisgICAgY2xhc3Mgc2NvcGVkX2xvY2sKKyAgICB7CisgICAgcHJpdmF0ZToKKworICAgICAgICBzcGlubG9jayAmIHNwXzsKKworICAgICAgICBzY29wZWRfbG9jayggc2NvcGVkX2xvY2sgY29uc3QgJiApOworICAgICAgICBzY29wZWRfbG9jayAmIG9wZXJhdG9yPSggc2NvcGVkX2xvY2sgY29uc3QgJiApOworCisgICAgcHVibGljOgorCisgICAgICAgIGV4cGxpY2l0IHNjb3BlZF9sb2NrKCB2b2lkIGNvbnN0ICogcHYgKTogc3BfKCBzcGlubG9ja19mb3IoIHB2ICkgKQorICAgICAgICB7CisgICAgICAgICAgICBzcF8ubG9jaygpOworICAgICAgICB9CisKKyAgICAgICAgfnNjb3BlZF9sb2NrKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3BfLnVubG9jaygpOworICAgICAgICB9CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBpbnQgSSA+IHNwaW5sb2NrIHNwaW5sb2NrX3Bvb2w8IEkgPjo6cG9vbF9bIDQxIF0gPQoreworICAgIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgCisgICAgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCAKKyAgICBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIAorICAgIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgCisgICAgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCAKKyAgICBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIAorICAgIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgCisgICAgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCAKKyAgICBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVAorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1BPT0xfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcHQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3B0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDhiMWViCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3B0LmhwcApAQCAtMCwwICsxLDc5IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfUFRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfUFRfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3Mgc3BpbmxvY2sKK3sKK3B1YmxpYzoKKworICAgIHB0aHJlYWRfbXV0ZXhfdCB2XzsKKworcHVibGljOgorCisgICAgYm9vbCB0cnlfbG9jaygpCisgICAgeworICAgICAgICByZXR1cm4gcHRocmVhZF9tdXRleF90cnlsb2NrKCAmdl8gKSA9PSAwOworICAgIH0KKworICAgIHZvaWQgbG9jaygpCisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soICZ2XyApOworICAgIH0KKworICAgIHZvaWQgdW5sb2NrKCkKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmdl8gKTsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHByaXZhdGU6CisKKyAgICAgICAgc3BpbmxvY2sgJiBzcF87CisKKyAgICAgICAgc2NvcGVkX2xvY2soIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKyAgICAgICAgc2NvcGVkX2xvY2sgJiBvcGVyYXRvcj0oIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKworICAgIHB1YmxpYzoKKworICAgICAgICBleHBsaWNpdCBzY29wZWRfbG9jayggc3BpbmxvY2sgJiBzcCApOiBzcF8oIHNwICkKKyAgICAgICAgeworICAgICAgICAgICAgc3AubG9jaygpOworICAgICAgICB9CisKKyAgICAgICAgfnNjb3BlZF9sb2NrKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3BfLnVubG9jaygpOworICAgICAgICB9CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2RlZmluZSBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCB7IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVIgfQorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1BUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3N5bmMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3N5bmMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMWRmODUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfc3luYy5ocHAKQEAgLTAsMCArMSw4NyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1NZTkNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfU1lOQ19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC95aWVsZF9rLmhwcD4KKworI2lmIGRlZmluZWQoIF9faWE2NF9fICkgJiYgZGVmaW5lZCggX19JTlRFTF9DT01QSUxFUiApCisjIGluY2x1ZGUgPGlhNjRpbnRyaW4uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBzcGlubG9jaworeworcHVibGljOgorCisgICAgaW50IHZfOworCitwdWJsaWM6CisKKyAgICBib29sIHRyeV9sb2NrKCkKKyAgICB7CisgICAgICAgIGludCByID0gX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KCAmdl8sIDEgKTsKKyAgICAgICAgcmV0dXJuIHIgPT0gMDsKKyAgICB9CisKKyAgICB2b2lkIGxvY2soKQorICAgIHsKKyAgICAgICAgZm9yKCB1bnNpZ25lZCBrID0gMDsgIXRyeV9sb2NrKCk7ICsrayApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnlpZWxkKCBrICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHVubG9jaygpCisgICAgeworICAgICAgICBfX3N5bmNfbG9ja19yZWxlYXNlKCAmdl8gKTsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHByaXZhdGU6CisKKyAgICAgICAgc3BpbmxvY2sgJiBzcF87CisKKyAgICAgICAgc2NvcGVkX2xvY2soIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKyAgICAgICAgc2NvcGVkX2xvY2sgJiBvcGVyYXRvcj0oIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKworICAgIHB1YmxpYzoKKworICAgICAgICBleHBsaWNpdCBzY29wZWRfbG9jayggc3BpbmxvY2sgJiBzcCApOiBzcF8oIHNwICkKKyAgICAgICAgeworICAgICAgICAgICAgc3AubG9jaygpOworICAgICAgICB9CisKKyAgICAgICAgfnNjb3BlZF9sb2NrKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3BfLnVubG9jaygpOworICAgICAgICB9CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2RlZmluZSBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCB7MH0KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19TWU5DX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3czMi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfdzMyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTNiNWExCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3czMi5ocHAKQEAgLTAsMCArMSwxMTMgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19XMzJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfVzMyX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDggUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvaW50ZXJsb2NrZWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwveWllbGRfay5ocHA+CisKKy8vIEJPT1NUX0NPTVBJTEVSX0ZFTkNFCisKKyNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVJfRkVOQ0UgX19tZW1vcnlfYmFycmllcigpOworCisjZWxpZiBkZWZpbmVkKCBfTVNDX1ZFUiApICYmIF9NU0NfVkVSID49IDEzMTAKKworZXh0ZXJuICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKCk7CisjcHJhZ21hIGludHJpbnNpYyggX1JlYWRXcml0ZUJhcnJpZXIgKQorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0ZFTkNFIF9SZWFkV3JpdGVCYXJyaWVyKCk7CisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVJfRkVOQ0UgX19hc21fXyBfX3ZvbGF0aWxlX18oICIiIDogOiA6ICJtZW1vcnkiICk7CisKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVJfRkVOQ0UKKworI2VuZGlmCisKKy8vCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwaW5sb2NrCit7CitwdWJsaWM6CisKKyAgICBsb25nIHZfOworCitwdWJsaWM6CisKKyAgICBib29sIHRyeV9sb2NrKCkKKyAgICB7CisgICAgICAgIGxvbmcgciA9IEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFKCAmdl8sIDEgKTsKKworICAgICAgICBCT09TVF9DT01QSUxFUl9GRU5DRQorCisgICAgICAgIHJldHVybiByID09IDA7CisgICAgfQorCisgICAgdm9pZCBsb2NrKCkKKyAgICB7CisgICAgICAgIGZvciggdW5zaWduZWQgayA9IDA7ICF0cnlfbG9jaygpOyArK2sgKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjp5aWVsZCggayApOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB1bmxvY2soKQorICAgIHsKKyAgICAgICAgQk9PU1RfQ09NUElMRVJfRkVOQ0UKKyAgICAgICAgKmNvbnN0X2Nhc3Q8IGxvbmcgdm9sYXRpbGUqID4oICZ2XyApID0gMDsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHByaXZhdGU6CisKKyAgICAgICAgc3BpbmxvY2sgJiBzcF87CisKKyAgICAgICAgc2NvcGVkX2xvY2soIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKyAgICAgICAgc2NvcGVkX2xvY2sgJiBvcGVyYXRvcj0oIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKworICAgIHB1YmxpYzoKKworICAgICAgICBleHBsaWNpdCBzY29wZWRfbG9jayggc3BpbmxvY2sgJiBzcCApOiBzcF8oIHNwICkKKyAgICAgICAgeworICAgICAgICAgICAgc3AubG9jaygpOworICAgICAgICB9CisKKyAgICAgICAgfnNjb3BlZF9sb2NrKCkKKyAgICAgICAgeworICAgICAgICAgICAgc3BfLnVubG9jaygpOworICAgICAgICB9CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2RlZmluZSBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCB7MH0KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19XMzJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwveWllbGRfay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwveWllbGRfay5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRjNDQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC95aWVsZF9rLmhwcApAQCAtMCwwICsxLDE0OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1lJRUxEX0tfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfWUlFTERfS19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgeWllbGRfay5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4IFBldGVyIERpbW92CisvLworLy8gIHZvaWQgeWllbGQoIHVuc2lnbmVkIGsgKTsKKy8vCisvLyAgVHlwaWNhbCB1c2U6CisvLworLy8gIGZvciggdW5zaWduZWQgayA9IDA7ICF0cnlfbG9jaygpOyArK2sgKSB5aWVsZCggayApOworLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gQk9PU1RfU01UX1BBVVNFCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxMzEwICYmICggZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZpbmVkKF9NX1g2NCkgKQorCitleHRlcm4gIkMiIHZvaWQgX21tX3BhdXNlKCk7CisjcHJhZ21hIGludHJpbnNpYyggX21tX3BhdXNlICkKKworI2RlZmluZSBCT09TVF9TTVRfUEFVU0UgX21tX3BhdXNlKCk7CisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmICggZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSApCisKKyNkZWZpbmUgQk9PU1RfU01UX1BBVVNFIF9fYXNtX18gX192b2xhdGlsZV9fKCAicmVwOyBub3AiIDogOiA6ICJtZW1vcnkiICk7CisKKyNlbmRpZgorCisvLworCisjaWYgZGVmaW5lZCggV0lOMzIgKSB8fCBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBfX1dJTjMyX18gKSB8fCBkZWZpbmVkKCBfX0NZR1dJTl9fICkKKworI2lmIGRlZmluZWQoIEJPT1NUX1VTRV9XSU5ET1dTX0ggKQorIyBpbmNsdWRlIDx3aW5kb3dzLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmICFkZWZpbmVkKCBCT09TVF9VU0VfV0lORE9XU19IICkKKyAgZXh0ZXJuICJDIiB2b2lkIF9fc3RkY2FsbCBTbGVlcCggdW5zaWduZWQgbG9uZyBtcyApOworI2VuZGlmCisKK2lubGluZSB2b2lkIHlpZWxkKCB1bnNpZ25lZCBrICkKK3sKKyAgICBpZiggayA8IDQgKQorICAgIHsKKyAgICB9CisjaWYgZGVmaW5lZCggQk9PU1RfU01UX1BBVVNFICkKKyAgICBlbHNlIGlmKCBrIDwgMTYgKQorICAgIHsKKyAgICAgICAgQk9PU1RfU01UX1BBVVNFCisgICAgfQorI2VuZGlmCisgICAgZWxzZSBpZiggayA8IDMyICkKKyAgICB7CisgICAgICAgIFNsZWVwKCAwICk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIFNsZWVwKCAxICk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VsaWYgZGVmaW5lZCggQk9PU1RfSEFTX1BUSFJFQURTICkKKworI2luY2x1ZGUgPHNjaGVkLmg+CisjaW5jbHVkZSA8dGltZS5oPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCB5aWVsZCggdW5zaWduZWQgayApCit7CisgICAgaWYoIGsgPCA0ICkKKyAgICB7CisgICAgfQorI2lmIGRlZmluZWQoIEJPT1NUX1NNVF9QQVVTRSApCisgICAgZWxzZSBpZiggayA8IDE2ICkKKyAgICB7CisgICAgICAgIEJPT1NUX1NNVF9QQVVTRQorICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYoIGsgPCAzMiB8fCBrICYgMSApCisgICAgeworICAgICAgICBzY2hlZF95aWVsZCgpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvLyBnKysgLVdleHRyYSB3YXJucyBvbiB7fSBvciB7MH0KKyAgICAgICAgc3RydWN0IHRpbWVzcGVjIHJxdHAgPSB7IDAsIDAgfTsKKworICAgICAgICAvLyBQT1NJWCBzYXlzIHRoYXQgdGltZXNwZWMgaGFzIHR2X3NlYyBhbmQgdHZfbnNlYworICAgICAgICAvLyBCdXQgaXQgZG9lc24ndCBndWFyYW50ZWUgb3JkZXIgb3IgcGxhY2VtZW50CisKKyAgICAgICAgcnF0cC50dl9zZWMgPSAwOworICAgICAgICBycXRwLnR2X25zZWMgPSAxMDAwOworCisgICAgICAgIG5hbm9zbGVlcCggJnJxdHAsIDAgKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZWxzZQorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCB5aWVsZCggdW5zaWduZWQgKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfWUlFTERfS19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjliMTI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWQuaHBwCkBAIC0wLDAgKzEsMjIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX01BS0VfU0hBUkVEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfTUFLRV9TSEFSRURfSFBQX0lOQ0xVREVECisKKy8vICBtYWtlX3NoYXJlZC5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA3LCAyMDA4LCAyMDEyIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmh0bWwKKy8vICBmb3IgZG9jdW1lbnRhdGlvbi4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9vYmplY3QuaHBwPgorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKSAmJiAhZGVmaW5lZCggQk9PU1RfTk9fU0ZJTkFFICkKKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkX2FycmF5LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2FsbG9jYXRlX3NoYXJlZF9hcnJheS5ocHA+CisjZW5kaWYKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX01BS0VfU0hBUkVEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfYXJyYXkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1YjA5MmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9hcnJheS5ocHAKQEAgLTAsMCArMSwyNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzCisgKiBnbGVuZmUgYXQgbGl2ZSBkb3QgY29tCisgKgorICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisgKiBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX01BS0VfU0hBUkVEX0FSUkFZX0hQUAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfTUFLRV9TSEFSRURfQVJSQVlfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV9kZWxldGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X3RyYWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9tYWtlX2FycmF5X2hlbHBlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9pZl9hcnJheS5ocHA+CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QpCisjaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoc3RkOjpzaXplX3Qgc2l6ZSkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IHNpemUgKiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemU7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW10+IGExKG4xLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+IGQxKG4xKTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0KHAyKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZChzdGQ6OnNpemVfdCBzaXplLCBBcmdzJiYuLi4gYXJncykgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IHNpemUgKiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemU7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW10+IGExKG4xLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+IGQxKG4xKTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0KHAyLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZChBcmdzJiYuLi4gYXJncykgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE4gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUPjo6c2l6ZQorICAgICAgICB9OworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltOXT4gYTEoJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4gZDE7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisjZW5kaWYKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoY29uc3QgVCYgbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE4gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUPjo6c2l6ZQorICAgICAgICB9OworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBUMyogcDMgPSAwOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltOXT4gYTEoJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4gZDE7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+KiBEMjsKKyAgICAgICAgcDMgPSByZWludGVycHJldF9jYXN0PFQzKj4obGlzdCk7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0X2xpc3QocDIsIHAzKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoc3RkOjpzaXplX3Qgc2l6ZSwKKyAgICAgICAgY29uc3QgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUmIGxpc3QpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBUMiBUMzsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBNID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIFQzKiBwMyA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gTSAqIHNpemU7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW10+IGExKG4xLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+IGQxKG4xKTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiogRDI7CisgICAgICAgIHAzID0gcmVpbnRlcnByZXRfY2FzdDxUMyo+KGxpc3QpOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+dGVtcGxhdGUgaW5pdF9saXN0PE0+KHAyLCBwMyk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoY29uc3QgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUmIGxpc3QpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBUMiBUMzsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBNID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplLAorICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIFQzKiBwMyA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW05dPiBhMSgmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDMqPihsaXN0KTsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPnRlbXBsYXRlIGluaXRfbGlzdDxNPihwMiwgcDMpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGU+IGxpc3QpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBUMiBUMzsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgVDMqIHAzID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBsaXN0LnNpemUoKSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6bWFrZV9hcnJheV9oZWxwZXI8VDJbXT4gYTEobjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDMgPSByZWludGVycHJldF9jYXN0PFQzKj4obGlzdC5iZWdpbigpKTsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXRfbGlzdChwMiwgcDMpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisjZW5kaWYKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkKHN0ZDo6c2l6ZV90IHNpemUsCisgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VD46OnR5cGUmJiB2YWx1ZSkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IHNpemUgKiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemU7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW10+IGExKG4xLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+IGQxKG4xKTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0KHAyLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPFQyPih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfc2l6ZV9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkKHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VD46OnR5cGUmJiB2YWx1ZSkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE4gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUPjo6c2l6ZQorICAgICAgICB9OworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltOXT4gYTEoJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4gZDE7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8VDI+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNlbmRpZgorI2VuZGlmCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZF9ub2luaXQoc3RkOjpzaXplX3Qgc2l6ZSkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IHNpemUgKiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemU7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW10+IGExKG4xLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+IGQxKG4xKTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5ub2luaXQocDIpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfc2l6ZV9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkX25vaW5pdCgpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6bWFrZV9hcnJheV9oZWxwZXI8VDJbTl0+IGExKCZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5ub2luaXQocDIpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfb2JqZWN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkX29iamVjdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEzZGZjMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkX29iamVjdC5ocHAKQEAgLTAsMCArMSwxMDMyIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9NQUtFX1NIQVJFRF9PQkpFQ1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9NQUtFX1NIQVJFRF9PQkpFQ1RfSFBQX0lOQ0xVREVECisKKy8vICBtYWtlX3NoYXJlZF9vYmplY3QuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwNywgMjAwOCwgMjAxMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3NtYXJ0X3B0ci9tYWtlX3NoYXJlZC5odG1sCisvLyAgZm9yIGRvY3VtZW50YXRpb24uCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9zaGFyZWRfcHRyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2ZvcndhcmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3R5cGVfd2l0aF9hbGlnbm1lbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHA+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDxuZXc+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3RlbXBsYXRlPCBzdGQ6OnNpemVfdCBOLCBzdGQ6OnNpemVfdCBBID4gc3RydWN0IHNwX2FsaWduZWRfc3RvcmFnZQoreworICAgIHVuaW9uIHR5cGUKKyAgICB7CisgICAgICAgIGNoYXIgZGF0YV9bIE4gXTsKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnR5cGVfd2l0aF9hbGlnbm1lbnQ8IEEgPjo6dHlwZSBhbGlnbl87CisgICAgfTsKK307CisKK3RlbXBsYXRlPCBjbGFzcyBUID4gY2xhc3Mgc3BfbXNfZGVsZXRlcgoreworcHJpdmF0ZToKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgc3BfYWxpZ25lZF9zdG9yYWdlPCBzaXplb2YoIFQgKSwgOjpuZG5ib29zdDo6YWxpZ25tZW50X29mPCBUID46OnZhbHVlID46OnR5cGUgc3RvcmFnZV90eXBlOworCisgICAgYm9vbCBpbml0aWFsaXplZF87CisgICAgc3RvcmFnZV90eXBlIHN0b3JhZ2VfOworCitwcml2YXRlOgorCisgICAgdm9pZCBkZXN0cm95KCkKKyAgICB7CisgICAgICAgIGlmKCBpbml0aWFsaXplZF8gKQorICAgICAgICB7CisjaWYgZGVmaW5lZCggX19HTlVDX18gKQorCisgICAgICAgICAgICAvLyBmaXhlcyBpbmNvcnJlY3QgYWxpYXNpbmcgd2FybmluZworICAgICAgICAgICAgVCAqIHAgPSByZWludGVycHJldF9jYXN0PCBUKiA+KCBzdG9yYWdlXy5kYXRhXyApOworICAgICAgICAgICAgcC0+flQoKTsKKworI2Vsc2UKKworICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDwgVCogPiggc3RvcmFnZV8uZGF0YV8gKS0+flQoKTsKKworI2VuZGlmCisKKyAgICAgICAgICAgIGluaXRpYWxpemVkXyA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCitwdWJsaWM6CisKKyAgICBzcF9tc19kZWxldGVyKCkgQk9PU1RfTk9FWENFUFQgOiBpbml0aWFsaXplZF8oIGZhbHNlICkKKyAgICB7CisgICAgfQorCisgICAgLy8gb3B0aW1pemF0aW9uOiBkbyBub3QgY29weSBzdG9yYWdlXworICAgIHNwX21zX2RlbGV0ZXIoIHNwX21zX2RlbGV0ZXIgY29uc3QgJiApIEJPT1NUX05PRVhDRVBUIDogaW5pdGlhbGl6ZWRfKCBmYWxzZSApCisgICAgeworICAgIH0KKworICAgIH5zcF9tc19kZWxldGVyKCkKKyAgICB7CisgICAgICAgIGRlc3Ryb3koKTsKKyAgICB9CisKKyAgICB2b2lkIG9wZXJhdG9yKCkoIFQgKiApCisgICAgeworICAgICAgICBkZXN0cm95KCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgb3BlcmF0b3JfZm4oIFQqICkgLy8gb3BlcmF0b3IoKSBjYW4ndCBiZSBzdGF0aWMKKyAgICB7CisgICAgfQorCisgICAgdm9pZCAqIGFkZHJlc3MoKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0b3JhZ2VfLmRhdGFfOworICAgIH0KKworICAgIHZvaWQgc2V0X2luaXRpYWxpemVkKCkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIGluaXRpYWxpemVkXyA9IHRydWU7CisgICAgfQorfTsKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfaWZfbm90X2FycmF5Cit7CisgICAgdHlwZWRlZiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9pZl9ub3RfYXJyYXk8IFRbXSA+Cit7Cit9OworCisjaWYgIWRlZmluZWQoIF9fQk9STEFORENfXyApIHx8ICFCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIDwgMHg2MDAgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiA+IHN0cnVjdCBzcF9pZl9ub3RfYXJyYXk8IFRbTl0gPgoreworfTsKKworI2VuZGlmCisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORyApCisjIGRlZmluZSBCT09TVF9TUF9NU0QoIFQgKSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pbnBsYWNlX3RhZzwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ID4oKQorI2Vsc2UKKyMgZGVmaW5lIEJPT1NUX1NQX01TRCggVCApIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPigpCisjZW5kaWYKKworLy8gWmVyby1hcmd1bWVudCB2ZXJzaW9ucworLy8KKy8vIFVzZWQgZXZlbiB3aGVuIHZhcmlhZGljIHRlbXBsYXRlcyBhcmUgYXZhaWxhYmxlIGJlY2F1c2Ugb2YgdGhlIG5ldyBUKCkgdnMgbmV3IFQgaXNzdWUKKwordGVtcGxhdGU8IGNsYXNzIFQgPiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCgpCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgpOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQgPiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZF9ub2luaXQoKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQ7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSA+IHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBID4gdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkX25vaW5pdCggQSBjb25zdCAmIGEgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQ7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUyApICYmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKy8vIFZhcmlhZGljIHRlbXBsYXRlcywgcnZhbHVlIHJlZmVyZW5jZQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQXJnMSwgY2xhc3MuLi4gQXJncyA+IHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBcmcxICYmIGFyZzEsIEFyZ3MgJiYgLi4uIGFyZ3MgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QXJnMT4oIGFyZzEgKSwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBcmdzPiggYXJncyApLi4uICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQXJnMSwgY2xhc3MuLi4gQXJncyA+IHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEFyZzEgJiYgYXJnMSwgQXJncyAmJiAuLi4gYXJncyApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBcmcxPiggYXJnMSApLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEFyZ3M+KCBhcmdzICkuLi4gKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKKyNlbGlmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKy8vIEZvciBleGFtcGxlIE1TVkMgMTAuMAorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExICYmIGExICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTE+KCBhMSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMj4oIGEyICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSAmJiBhMSwgQTIgJiYgYTIgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMyApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTE+KCBhMSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMj4oIGEyICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEzPiggYTMgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMsIEE0ICYmIGE0ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTE+KCBhMSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMj4oIGEyICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEzPiggYTMgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTQ+KCBhNCApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNT4oIGE1ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUsIEE2ICYmIGE2ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTE+KCBhMSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMj4oIGEyICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEzPiggYTMgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTQ+KCBhNCApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNT4oIGE1ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE2PiggYTYgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMsIEE0ICYmIGE0LCBBNSAmJiBhNSwgQTYgJiYgYTYsIEE3ICYmIGE3ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE3PiggYTcgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiwgQTcgJiYgYTcgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE3PiggYTcgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUsIEE2ICYmIGE2LCBBNyAmJiBhNywgQTggJiYgYTggKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTE+KCBhMSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMj4oIGEyICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEzPiggYTMgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTQ+KCBhNCApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNT4oIGE1ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE2PiggYTYgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTc+KCBhNyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBOD4oIGE4ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUsIEE2ICYmIGE2LCBBNyAmJiBhNywgQTggJiYgYTggKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE3PiggYTcgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTg+KCBhOCApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUsIEE2ICYmIGE2LCBBNyAmJiBhNywgQTggJiYgYTgsIEE5ICYmIGE5ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE3PiggYTcgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTg+KCBhOCApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBOT4oIGE5ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTkgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiwgQTcgJiYgYTcsIEE4ICYmIGE4LCBBOSAmJiBhOSApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTE+KCBhMSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMj4oIGEyICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEzPiggYTMgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTQ+KCBhNCApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNT4oIGE1ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE2PiggYTYgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTc+KCBhNyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBOD4oIGE4ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE5PiggYTkgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCisjZWxzZQorCisvLyBDKyswMyB2ZXJzaW9uCisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgY29uc3QgJiBhMSApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyLCBhMywgYTQgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyLCBhMywgYTQsIGE1ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNyA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNiwgQTcgY29uc3QgJiBhNyApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNyA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNyApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNiwgQTcgY29uc3QgJiBhNywgQTggY29uc3QgJiBhOCApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcsIEE4IGNvbnN0ICYgYTggKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCwgY2xhc3MgQTkgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcsIEE4IGNvbnN0ICYgYTgsIEE5IGNvbnN0ICYgYTkgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcsIEE4IGNvbnN0ICYgYTgsIEE5IGNvbnN0ICYgYTkgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKKyNlbmRpZgorCisjdW5kZWYgQk9PU1RfU1BfTVNECisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9NQUtFX1NIQVJFRF9PQkpFQ1RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9zY29wZWRfYXJyYXkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvc2NvcGVkX2FycmF5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTg0ZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvc2NvcGVkX2FycmF5LmhwcApAQCAtMCwwICsxLDEzMiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfU0NPUEVEX0FSUkFZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfU0NPUEVEX0FSUkFZX0hQUF9JTkNMVURFRAorCisvLyAgKEMpIENvcHlyaWdodCBHcmVnIENvbHZpbiBhbmQgQmVtYW4gRGF3ZXMgMTk5OCwgMTk5OS4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3Njb3BlZF9hcnJheS5odG0KKy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY2hlY2tlZF9kZWxldGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfbnVsbHB0cl90LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2luY2x1ZGUgPGNzdGRkZWY+ICAgICAgICAgICAgLy8gZm9yIHN0ZDo6cHRyZGlmZl90CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisvLyBEZWJ1ZyBob29rcworCisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisKK3ZvaWQgc3BfYXJyYXlfY29uc3RydWN0b3JfaG9vayh2b2lkICogcCk7Cit2b2lkIHNwX2FycmF5X2Rlc3RydWN0b3JfaG9vayh2b2lkICogcCk7CisKKyNlbmRpZgorCisvLyAgc2NvcGVkX2FycmF5IGV4dGVuZHMgc2NvcGVkX3B0ciB0byBhcnJheXMuIERlbGV0aW9uIG9mIHRoZSBhcnJheSBwb2ludGVkIHRvCisvLyAgaXMgZ3VhcmFudGVlZCwgZWl0aGVyIG9uIGRlc3RydWN0aW9uIG9mIHRoZSBzY29wZWRfYXJyYXkgb3IgdmlhIGFuIGV4cGxpY2l0CisvLyAgcmVzZXQoKS4gVXNlIHNoYXJlZF9hcnJheSBvciBzdGQ6OnZlY3RvciBpZiB5b3VyIG5lZWRzIGFyZSBtb3JlIGNvbXBsZXguCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIHNjb3BlZF9hcnJheSAvLyBub25jb3B5YWJsZQoreworcHJpdmF0ZToKKworICAgIFQgKiBweDsKKworICAgIHNjb3BlZF9hcnJheShzY29wZWRfYXJyYXkgY29uc3QgJik7CisgICAgc2NvcGVkX2FycmF5ICYgb3BlcmF0b3I9KHNjb3BlZF9hcnJheSBjb25zdCAmKTsKKworICAgIHR5cGVkZWYgc2NvcGVkX2FycmF5PFQ+IHRoaXNfdHlwZTsKKworICAgIHZvaWQgb3BlcmF0b3I9PSggc2NvcGVkX2FycmF5IGNvbnN0JiApIGNvbnN0OworICAgIHZvaWQgb3BlcmF0b3IhPSggc2NvcGVkX2FycmF5IGNvbnN0JiApIGNvbnN0OworCitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFQgZWxlbWVudF90eXBlOworCisgICAgZXhwbGljaXQgc2NvcGVkX2FycmF5KCBUICogcCA9IDAgKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCBwICkKKyAgICB7CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgIG5kbmJvb3N0OjpzcF9hcnJheV9jb25zdHJ1Y3Rvcl9ob29rKCBweCApOworI2VuZGlmCisgICAgfQorCisgICAgfnNjb3BlZF9hcnJheSgpIC8vIG5ldmVyIHRocm93cworICAgIHsKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgbmRuYm9vc3Q6OnNwX2FycmF5X2Rlc3RydWN0b3JfaG9vayggcHggKTsKKyNlbmRpZgorICAgICAgICBuZG5ib29zdDo6Y2hlY2tlZF9hcnJheV9kZWxldGUoIHB4ICk7CisgICAgfQorCisgICAgdm9pZCByZXNldChUICogcCA9IDApIC8vIG5ldmVyIHRocm93cyAoYnV0IGhhcyBhIEJPT1NUX0FTU0VSVCBpbiBpdCwgc28gbm90IG1hcmtlZCB3aXRoIEJPT1NUX05PRVhDRVBUKQorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBwID09IDAgfHwgcCAhPSBweCApOyAvLyBjYXRjaCBzZWxmLXJlc2V0IGVycm9ycworICAgICAgICB0aGlzX3R5cGUocCkuc3dhcCgqdGhpcyk7CisgICAgfQorCisgICAgVCAmIG9wZXJhdG9yW10oc3RkOjpwdHJkaWZmX3QgaSkgY29uc3QgLy8gbmV2ZXIgdGhyb3dzIChidXQgaGFzIGEgQk9PU1RfQVNTRVJUIGluIGl0LCBzbyBub3QgbWFya2VkIHdpdGggQk9PU1RfTk9FWENFUFQpCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQoIHB4ICE9IDAgKTsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBpID49IDAgKTsKKyAgICAgICAgcmV0dXJuIHB4W2ldOworICAgIH0KKworICAgIFQgKiBnZXQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4OworICAgIH0KKworLy8gaW1wbGljaXQgY29udmVyc2lvbiB0byAiYm9vbCIKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL29wZXJhdG9yX2Jvb2wuaHBwPgorCisgICAgdm9pZCBzd2FwKHNjb3BlZF9hcnJheSAmIGIpIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICBUICogdG1wID0gYi5weDsKKyAgICAgICAgYi5weCA9IHB4OworICAgICAgICBweCA9IHRtcDsKKyAgICB9Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX05VTExQVFIgKQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KCBzY29wZWRfYXJyYXk8VD4gY29uc3QgJiBwLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBwLmdldCgpID09IDA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBib29sIG9wZXJhdG9yPT0oIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCwgc2NvcGVkX2FycmF5PFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgPT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPSggc2NvcGVkX2FycmF5PFQ+IGNvbnN0ICYgcCwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90ICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gcC5nZXQoKSAhPSAwOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QsIHNjb3BlZF9hcnJheTxUPiBjb25zdCAmIHAgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBwLmdldCgpICE9IDA7Cit9CisKKyNlbmRpZgorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCBzd2FwKHNjb3BlZF9hcnJheTxUPiAmIGEsIHNjb3BlZF9hcnJheTxUPiAmIGIpIEJPT1NUX05PRVhDRVBUCit7CisgICAgYS5zd2FwKGIpOworfQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX1NDT1BFRF9BUlJBWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3Njb3BlZF9wdHIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvc2NvcGVkX3B0ci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VlMjUyYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3Njb3BlZF9wdHIuaHBwCkBAIC0wLDAgKzEsMTU3IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9TQ09QRURfUFRSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfU0NPUEVEX1BUUl9IUFBfSU5DTFVERUQKKworLy8gIChDKSBDb3B5cmlnaHQgR3JlZyBDb2x2aW4gYW5kIEJlbWFuIERhd2VzIDE5OTgsIDE5OTkuCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3NtYXJ0X3B0ci9zY29wZWRfcHRyLmh0bQorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9udWxscHRyX3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmbmRlZiBCT09TVF9OT19BVVRPX1BUUgorIyBpbmNsdWRlIDxtZW1vcnk+ICAgICAgICAgIC8vIGZvciBzdGQ6OmF1dG9fcHRyCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKy8vIERlYnVnIGhvb2tzCisKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKwordm9pZCBzcF9zY2FsYXJfY29uc3RydWN0b3JfaG9vayh2b2lkICogcCk7Cit2b2lkIHNwX3NjYWxhcl9kZXN0cnVjdG9yX2hvb2sodm9pZCAqIHApOworCisjZW5kaWYKKworLy8gIHNjb3BlZF9wdHIgbWltaWNzIGEgYnVpbHQtaW4gcG9pbnRlciBleGNlcHQgdGhhdCBpdCBndWFyYW50ZWVzIGRlbGV0aW9uCisvLyAgb2YgdGhlIG9iamVjdCBwb2ludGVkIHRvLCBlaXRoZXIgb24gZGVzdHJ1Y3Rpb24gb2YgdGhlIHNjb3BlZF9wdHIgb3IgdmlhCisvLyAgYW4gZXhwbGljaXQgcmVzZXQoKS4gc2NvcGVkX3B0ciBpcyBhIHNpbXBsZSBzb2x1dGlvbiBmb3Igc2ltcGxlIG5lZWRzOworLy8gIHVzZSBzaGFyZWRfcHRyIG9yIHN0ZDo6YXV0b19wdHIgaWYgeW91ciBuZWVkcyBhcmUgbW9yZSBjb21wbGV4LgorCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBzY29wZWRfcHRyIC8vIG5vbmNvcHlhYmxlCit7Citwcml2YXRlOgorCisgICAgVCAqIHB4OworCisgICAgc2NvcGVkX3B0cihzY29wZWRfcHRyIGNvbnN0ICYpOworICAgIHNjb3BlZF9wdHIgJiBvcGVyYXRvcj0oc2NvcGVkX3B0ciBjb25zdCAmKTsKKworICAgIHR5cGVkZWYgc2NvcGVkX3B0cjxUPiB0aGlzX3R5cGU7CisKKyAgICB2b2lkIG9wZXJhdG9yPT0oIHNjb3BlZF9wdHIgY29uc3QmICkgY29uc3Q7CisgICAgdm9pZCBvcGVyYXRvciE9KCBzY29wZWRfcHRyIGNvbnN0JiApIGNvbnN0OworCitwdWJsaWM6CisKKyAgICB0eXBlZGVmIFQgZWxlbWVudF90eXBlOworCisgICAgZXhwbGljaXQgc2NvcGVkX3B0ciggVCAqIHAgPSAwICk6IHB4KCBwICkgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICBuZG5ib29zdDo6c3Bfc2NhbGFyX2NvbnN0cnVjdG9yX2hvb2soIHB4ICk7CisjZW5kaWYKKyAgICB9CisKKyNpZm5kZWYgQk9PU1RfTk9fQVVUT19QVFIKKworICAgIGV4cGxpY2l0IHNjb3BlZF9wdHIoIHN0ZDo6YXV0b19wdHI8VD4gcCApIEJPT1NUX05PRVhDRVBUIDogcHgoIHAucmVsZWFzZSgpICkKKyAgICB7CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgIG5kbmJvb3N0OjpzcF9zY2FsYXJfY29uc3RydWN0b3JfaG9vayggcHggKTsKKyNlbmRpZgorICAgIH0KKworI2VuZGlmCisKKyAgICB+c2NvcGVkX3B0cigpIC8vIG5ldmVyIHRocm93cworICAgIHsKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgbmRuYm9vc3Q6OnNwX3NjYWxhcl9kZXN0cnVjdG9yX2hvb2soIHB4ICk7CisjZW5kaWYKKyAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKCBweCApOworICAgIH0KKworICAgIHZvaWQgcmVzZXQoVCAqIHAgPSAwKSAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcCA9PSAwIHx8IHAgIT0gcHggKTsgLy8gY2F0Y2ggc2VsZi1yZXNldCBlcnJvcnMKKyAgICAgICAgdGhpc190eXBlKHApLnN3YXAoKnRoaXMpOworICAgIH0KKworICAgIFQgJiBvcGVyYXRvciooKSBjb25zdCAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcHggIT0gMCApOworICAgICAgICByZXR1cm4gKnB4OworICAgIH0KKworICAgIFQgKiBvcGVyYXRvci0+KCkgY29uc3QgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQoIHB4ICE9IDAgKTsKKyAgICAgICAgcmV0dXJuIHB4OworICAgIH0KKworICAgIFQgKiBnZXQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4OworICAgIH0KKworLy8gaW1wbGljaXQgY29udmVyc2lvbiB0byAiYm9vbCIKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL29wZXJhdG9yX2Jvb2wuaHBwPgorCisgICAgdm9pZCBzd2FwKHNjb3BlZF9wdHIgJiBiKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgVCAqIHRtcCA9IGIucHg7CisgICAgICAgIGIucHggPSBweDsKKyAgICAgICAgcHggPSB0bXA7CisgICAgfQorfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PSggc2NvcGVkX3B0cjxUPiBjb25zdCAmIHAsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgPT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PSggbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90LCBzY29wZWRfcHRyPFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgPT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPSggc2NvcGVkX3B0cjxUPiBjb25zdCAmIHAsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgIT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPSggbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90LCBzY29wZWRfcHRyPFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgIT0gMDsKK30KKworI2VuZGlmCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIHN3YXAoc2NvcGVkX3B0cjxUPiAmIGEsIHNjb3BlZF9wdHI8VD4gJiBiKSBCT09TVF9OT0VYQ0VQVAoreworICAgIGEuc3dhcChiKTsKK30KKworLy8gZ2V0X3BvaW50ZXIocCkgaXMgYSBnZW5lcmljIHdheSB0byBzYXkgcC5nZXQoKQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgVCAqIGdldF9wb2ludGVyKHNjb3BlZF9wdHI8VD4gY29uc3QgJiBwKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBwLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfU0NPUEVEX1BUUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9zaGFyZWRfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NjI2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3NtYXJ0X3B0ci9zaGFyZWRfYXJyYXkuaHBwCkBAIC0wLDAgKzEsMjkwIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9TSEFSRURfQVJSQVlfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9TSEFSRURfQVJSQVlfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgc2hhcmVkX2FycmF5LmhwcAorLy8KKy8vICAoQykgQ29weXJpZ2h0IEdyZWcgQ29sdmluIGFuZCBCZW1hbiBEYXdlcyAxOTk4LCAxOTk5LgorLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAxMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9hcnJheS5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gICAvLyBmb3IgYnJva2VuIGNvbXBpbGVyIHdvcmthcm91bmRzCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMpICYmICFkZWZpbmVkKEJPT1NUX01TVkM2X01FTUJFUl9URU1QTEFURVMpCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfYXJyYXlfbm10LmhwcD4KKyNlbHNlCisKKyNpbmNsdWRlIDxtZW1vcnk+ICAgICAgICAgICAgIC8vIFRSMSBjeWNsaWMgaW5jbHVzaW9uIGZpeAorCisjaW5jbHVkZSA8bmRuYm9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfY291bnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfbnVsbHB0cl90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAgIC8vIGZvciBzdGQ6OnB0cmRpZmZfdAorI2luY2x1ZGUgPGFsZ29yaXRobT4gICAgICAgICAgLy8gZm9yIHN0ZDo6c3dhcAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+ICAgICAgICAgLy8gZm9yIHN0ZDo6bGVzcworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworLy8KKy8vICBzaGFyZWRfYXJyYXkKKy8vCisvLyAgc2hhcmVkX2FycmF5IGV4dGVuZHMgc2hhcmVkX3B0ciB0byBhcnJheXMuCisvLyAgVGhlIGFycmF5IHBvaW50ZWQgdG8gaXMgZGVsZXRlZCB3aGVuIHRoZSBsYXN0IHNoYXJlZF9hcnJheSBwb2ludGluZyB0byBpdAorLy8gIGlzIGRlc3Ryb3llZCBvciByZXNldC4KKy8vCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIHNoYXJlZF9hcnJheQoreworcHJpdmF0ZToKKworICAgIC8vIEJvcmxhbmQgNS41LjEgc3BlY2lmaWMgd29ya2Fyb3VuZHMKKyAgICB0eXBlZGVmIGNoZWNrZWRfYXJyYXlfZGVsZXRlcjxUPiBkZWxldGVyOworICAgIHR5cGVkZWYgc2hhcmVkX2FycmF5PFQ+IHRoaXNfdHlwZTsKKworcHVibGljOgorCisgICAgdHlwZWRlZiBUIGVsZW1lbnRfdHlwZTsKKworICAgIHNoYXJlZF9hcnJheSgpIEJPT1NUX05PRVhDRVBUIDogcHgoIDAgKSwgcG4oKQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIGV4cGxpY2l0IHNoYXJlZF9hcnJheSggWSAqIHAgKTogcHgoIHAgKSwgcG4oIHAsIGNoZWNrZWRfYXJyYXlfZGVsZXRlcjxZPigpICkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWVtdLCBUW10gPigpOworICAgIH0KKworICAgIC8vCisgICAgLy8gUmVxdWlyZW1lbnRzOiBEJ3MgY29weSBjb25zdHJ1Y3RvciBtdXN0IG5vdCB0aHJvdworICAgIC8vCisgICAgLy8gc2hhcmVkX2FycmF5IHdpbGwgcmVsZWFzZSBwIGJ5IGNhbGxpbmcgZChwKQorICAgIC8vCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPiBzaGFyZWRfYXJyYXkoIFkgKiBwLCBEIGQgKTogcHgoIHAgKSwgcG4oIHAsIGQgKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZW10sIFRbXSA+KCk7CisgICAgfQorCisgICAgLy8gQXMgYWJvdmUsIGJ1dCB3aXRoIGFsbG9jYXRvci4gQSdzIGNvcHkgY29uc3RydWN0b3Igc2hhbGwgbm90IHRocm93LgorCisgICAgdGVtcGxhdGU8Y2xhc3MgWSwgY2xhc3MgRCwgY2xhc3MgQT4gc2hhcmVkX2FycmF5KCBZICogcCwgRCBkLCBBIGEgKTogcHgoIHAgKSwgcG4oIHAsIGQsIGEgKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZW10sIFRbXSA+KCk7CisgICAgfQorCisvLyAgZ2VuZXJhdGVkIGNvcHkgY29uc3RydWN0b3IsIGRlc3RydWN0b3IgYXJlIGZpbmUuLi4KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKy8vIC4uLiBleGNlcHQgaW4gQysrMHgsIG1vdmUgZGlzYWJsZXMgdGhlIGltcGxpY2l0IGNvcHkKKworICAgIHNoYXJlZF9hcnJheSggc2hhcmVkX2FycmF5IGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oIHIucG4gKQorICAgIHsKKyAgICB9CisKKyAgICBzaGFyZWRfYXJyYXkoIHNoYXJlZF9hcnJheSAmJiByICkgQk9PU1RfTk9FWENFUFQgOiBweCggci5weCApLCBwbigpCisgICAgeworICAgICAgICBwbi5zd2FwKCByLnBuICk7CisgICAgICAgIHIucHggPSAwOworICAgIH0KKworI2VuZGlmCisKKyAgICAvLyBjb252ZXJzaW9uCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApCisKKyAgICBzaGFyZWRfYXJyYXkoIHNoYXJlZF9hcnJheTxZPiBjb25zdCAmIHIsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZTwgWVtdLCBUW10gPjo6dHlwZSA9IG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VtcHR5KCkgKQorCisjZWxzZQorCisgICAgc2hhcmVkX2FycmF5KCBzaGFyZWRfYXJyYXk8WT4gY29uc3QgJiByICkKKworI2VuZGlmCisgICAgQk9PU1RfTk9FWENFUFQgOiBweCggci5weCApLCBwbiggci5wbiApIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZW10sIFRbXSA+KCk7CisgICAgfQorCisgICAgLy8gYWxpYXNpbmcKKworICAgIHRlbXBsYXRlPCBjbGFzcyBZID4KKyAgICBzaGFyZWRfYXJyYXkoIHNoYXJlZF9hcnJheTxZPiBjb25zdCAmIHIsIGVsZW1lbnRfdHlwZSAqIHAgKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCBwICksIHBuKCByLnBuICkKKyAgICB7CisgICAgfQorCisgICAgLy8gYXNzaWdubWVudAorCisgICAgc2hhcmVkX2FycmF5ICYgb3BlcmF0b3I9KCBzaGFyZWRfYXJyYXkgY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggciApLnN3YXAoICp0aGlzICk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9NU1ZDKSB8fCAoQk9PU1RfTVNWQyA+PSAxNDAwKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfYXJyYXkgJiBvcGVyYXRvcj0oIHNoYXJlZF9hcnJheTxZPiBjb25zdCAmIHIgKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCByICkuc3dhcCggKnRoaXMgKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgc2hhcmVkX2FycmF5ICYgb3BlcmF0b3I9KCBzaGFyZWRfYXJyYXkgJiYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHN0YXRpY19jYXN0PCBzaGFyZWRfYXJyYXkgJiYgPiggciApICkuc3dhcCggKnRoaXMgKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgc2hhcmVkX2FycmF5ICYgb3BlcmF0b3I9KCBzaGFyZWRfYXJyYXk8WT4gJiYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHN0YXRpY19jYXN0PCBzaGFyZWRfYXJyYXk8WT4gJiYgPiggciApICkuc3dhcCggKnRoaXMgKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIHJlc2V0KCkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSgpLnN3YXAoICp0aGlzICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gdm9pZCByZXNldCggWSAqIHAgKSAvLyBZIG11c3QgYmUgY29tcGxldGUKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcCA9PSAwIHx8IHAgIT0gcHggKTsgLy8gY2F0Y2ggc2VsZi1yZXNldCBlcnJvcnMKKyAgICAgICAgdGhpc190eXBlKCBwICkuc3dhcCggKnRoaXMgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPiB2b2lkIHJlc2V0KCBZICogcCwgRCBkICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggcCwgZCApLnN3YXAoICp0aGlzICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWSwgY2xhc3MgRCwgY2xhc3MgQT4gdm9pZCByZXNldCggWSAqIHAsIEQgZCwgQSBhICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggcCwgZCwgYSApLnN3YXAoICp0aGlzICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gdm9pZCByZXNldCggc2hhcmVkX2FycmF5PFk+IGNvbnN0ICYgciwgZWxlbWVudF90eXBlICogcCApCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHIsIHAgKS5zd2FwKCAqdGhpcyApOworICAgIH0KKworICAgIFQgJiBvcGVyYXRvcltdIChzdGQ6OnB0cmRpZmZfdCBpKSBjb25zdCAvLyBuZXZlciB0aHJvd3MgKGJ1dCBoYXMgYSBCT09TVF9BU1NFUlQgaW4gaXQsIHNvIG5vdCBtYXJrZWQgd2l0aCBCT09TVF9OT0VYQ0VQVCkKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVChweCAhPSAwKTsKKyAgICAgICAgQk9PU1RfQVNTRVJUKGkgPj0gMCk7CisgICAgICAgIHJldHVybiBweFtpXTsKKyAgICB9CisgICAgCisgICAgVCAqIGdldCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHg7CisgICAgfQorCisvLyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvICJib29sIgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvb3BlcmF0b3JfYm9vbC5ocHA+CisKKyAgICBib29sIHVuaXF1ZSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4udW5pcXVlKCk7CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBuLnVzZV9jb3VudCgpOworICAgIH0KKworICAgIHZvaWQgc3dhcChzaGFyZWRfYXJyYXk8VD4gJiBvdGhlcikgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHN0ZDo6c3dhcChweCwgb3RoZXIucHgpOworICAgICAgICBwbi5zd2FwKG90aGVyLnBuKTsKKyAgICB9CisKKyAgICB2b2lkICogX2ludGVybmFsX2dldF9kZWxldGVyKCBuZG5ib29zdDo6ZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBwbi5nZXRfZGVsZXRlciggdGkgKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBmcmllbmQgY2xhc3Mgc2hhcmVkX2FycmF5OworCisgICAgVCAqIHB4OyAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lZCBwb2ludGVyCisgICAgZGV0YWlsOjpzaGFyZWRfY291bnQgcG47ICAgIC8vIHJlZmVyZW5jZSBjb3VudGVyCisKK307ICAvLyBzaGFyZWRfYXJyYXkKKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShzaGFyZWRfYXJyYXk8VD4gY29uc3QgJiBhLCBzaGFyZWRfYXJyYXk8VD4gY29uc3QgJiBiKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBib29sIG9wZXJhdG9yIT0oc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYSwgc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOworfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX05VTExQVFIgKQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KCBzaGFyZWRfYXJyYXk8VD4gY29uc3QgJiBwLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBwLmdldCgpID09IDA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBib29sIG9wZXJhdG9yPT0oIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCwgc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgPT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPSggc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgcCwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90ICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gcC5nZXQoKSAhPSAwOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QsIHNoYXJlZF9hcnJheTxUPiBjb25zdCAmIHAgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBwLmdldCgpICE9IDA7Cit9CisKKyNlbmRpZgorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvcjwoc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYSwgc2hhcmVkX2FycmF5PFQ+IGNvbnN0ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gc3RkOjpsZXNzPFQqPigpKGEuZ2V0KCksIGIuZ2V0KCkpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIHN3YXAoc2hhcmVkX2FycmF5PFQ+ICYgYSwgc2hhcmVkX2FycmF5PFQ+ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICBhLnN3YXAoYik7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBELCBjbGFzcyBUID4gRCAqIGdldF9kZWxldGVyKCBzaGFyZWRfYXJyYXk8VD4gY29uc3QgJiBwICkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8IEQgKiA+KCBwLl9pbnRlcm5hbF9nZXRfZGVsZXRlciggQk9PU1RfU1BfVFlQRUlEKEQpICkgKTsKK30KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWYgZGVmaW5lZChCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTKSAmJiAhZGVmaW5lZChCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTKQorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX1NIQVJFRF9BUlJBWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJiOWFjYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwCkBAIC0wLDAgKzEsMTAzNSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfU0hBUkVEX1BUUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgc2hhcmVkX3B0ci5ocHAKKy8vCisvLyAgKEMpIENvcHlyaWdodCBHcmVnIENvbHZpbiBhbmQgQmVtYW4gRGF3ZXMgMTk5OCwgMTk5OS4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHRtIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+ICAgLy8gZm9yIGJyb2tlbiBjb21waWxlciB3b3JrYXJvdW5kcworCisjaWYgZGVmaW5lZChCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTKSAmJiAhZGVmaW5lZChCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTKQorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX3B0cl9ubXQuaHBwPgorI2Vsc2UKKworLy8gSW4gb3JkZXIgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHdpdGggQm9vc3QuVFIxCisvLyB3ZSBtYWtlIHN1cmUgdGhhdCBvdXIgaW5jbHVkZSBvZiA8bWVtb3J5PiBkb2Vzbid0IHRyeSB0bworLy8gcHVsbCBpbiB0aGUgVFIxIGhlYWRlcnM6IHRoYXQncyB3aHkgd2UgdXNlIHRoaXMgaGVhZGVyIAorLy8gcmF0aGVyIHRoYW4gaW5jbHVkaW5nIDxtZW1vcnk+IGRpcmVjdGx5OgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy9ub190cjEvbWVtb3J5LmhwcD4gIC8vIHN0ZDo6YXV0b19wdHIKKworI2luY2x1ZGUgPG5kbmJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY2hlY2tlZF9kZWxldGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfY291bnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvbnZlcnRpYmxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX251bGxwdHJfdC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9TUF9OT19BVE9NSUNfQUNDRVNTKQorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbWVtb3J5X29yZGVyLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPiAgICAgICAgICAgIC8vIGZvciBzdGQ6OnN3YXAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPiAgICAgICAgICAgLy8gZm9yIHN0ZDo6bGVzcworI2luY2x1ZGUgPHR5cGVpbmZvPiAgICAgICAgICAgICAvLyBmb3Igc3RkOjpiYWRfY2FzdAorI2luY2x1ZGUgPGNzdGRkZWY+ICAgICAgICAgICAgICAvLyBmb3Igc3RkOjpzaXplX3QKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0lPU1RSRUFNKQorI2lmICFkZWZpbmVkKEJPT1NUX05PX0lPU0ZXRCkKKyNpbmNsdWRlIDxpb3Nmd2Q+ICAgICAgICAgICAgICAgLy8gZm9yIHN0ZDo6YmFzaWNfb3N0cmVhbQorI2Vsc2UKKyNpbmNsdWRlIDxvc3RyZWFtPgorI2VuZGlmCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIHNoYXJlZF9wdHI7Cit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyB3ZWFrX3B0cjsKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIGVuYWJsZV9zaGFyZWRfZnJvbV90aGlzOworY2xhc3MgZW5hYmxlX3NoYXJlZF9mcm9tX3JhdzsKKworbmFtZXNwYWNlIGRldGFpbAoreworCisvLyBzcF9lbGVtZW50LCBlbGVtZW50X3R5cGUKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfZWxlbWVudAoreworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfZWxlbWVudDwgVFtdID4KK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKKyNpZiAhZGVmaW5lZCggX19CT1JMQU5EQ19fICkgfHwgIUJPT1NUX1dPUktBUk9VTkQoIF9fQk9STEFORENfXywgPCAweDYwMCApCisKK3RlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBOID4gc3RydWN0IHNwX2VsZW1lbnQ8IFRbTl0gPgoreworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKworI2VuZGlmCisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKKy8vIHNwX2RlcmVmZXJlbmNlLCByZXR1cm4gdHlwZSBvZiBvcGVyYXRvcioKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfZGVyZWZlcmVuY2UKK3sKKyAgICB0eXBlZGVmIFQgJiB0eXBlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qgc3BfZGVyZWZlcmVuY2U8IHZvaWQgPgoreworICAgIHR5cGVkZWYgdm9pZCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBzcF9kZXJlZmVyZW5jZTwgdm9pZCBjb25zdCA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzcF9kZXJlZmVyZW5jZTwgdm9pZCB2b2xhdGlsZSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzcF9kZXJlZmVyZW5jZTwgdm9pZCBjb25zdCB2b2xhdGlsZSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjZW5kaWYgLy8gIWRlZmluZWQoQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMpCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHNwX2RlcmVmZXJlbmNlPCBUW10gPgoreworICAgIHR5cGVkZWYgdm9pZCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSB8fCAhQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCA8IDB4NjAwICkKKwordGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4gPiBzdHJ1Y3Qgc3BfZGVyZWZlcmVuY2U8IFRbTl0gPgoreworICAgIHR5cGVkZWYgdm9pZCB0eXBlOworfTsKKworI2VuZGlmCisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKKy8vIHNwX21lbWJlcl9hY2Nlc3MsIHJldHVybiB0eXBlIG9mIG9wZXJhdG9yLT4KKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfbWVtYmVyX2FjY2VzcworeworICAgIHR5cGVkZWYgVCAqIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9tZW1iZXJfYWNjZXNzPCBUW10gPgoreworICAgIHR5cGVkZWYgdm9pZCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSB8fCAhQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCA8IDB4NjAwICkKKwordGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4gPiBzdHJ1Y3Qgc3BfbWVtYmVyX2FjY2VzczwgVFtOXSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjZW5kaWYKKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworLy8gc3BfYXJyYXlfYWNjZXNzLCByZXR1cm4gdHlwZSBvZiBvcGVyYXRvcltdCisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHNwX2FycmF5X2FjY2VzcworeworICAgIHR5cGVkZWYgdm9pZCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfYXJyYXlfYWNjZXNzPCBUW10gPgoreworICAgIHR5cGVkZWYgVCAmIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIF9fQk9STEFORENfXyApIHx8ICFCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIDwgMHg2MDAgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiA+IHN0cnVjdCBzcF9hcnJheV9hY2Nlc3M8IFRbTl0gPgoreworICAgIHR5cGVkZWYgVCAmIHR5cGU7Cit9OworCisjZW5kaWYKKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworLy8gc3BfZXh0ZW50LCBmb3Igb3BlcmF0b3JbXSBpbmRleCBjaGVjaworCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9leHRlbnQKK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gMCB9OworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4gPiBzdHJ1Y3Qgc3BfZXh0ZW50PCBUW05dID4KK3sKKyAgICBlbnVtIF92dCB7IHZhbHVlID0gTiB9OworfTsKKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworLy8gZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMgc3VwcG9ydAorCit0ZW1wbGF0ZTwgY2xhc3MgWCwgY2xhc3MgWSwgY2xhc3MgVCA+IGlubGluZSB2b2lkIHNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCBuZG5ib29zdDo6c2hhcmVkX3B0cjxYPiBjb25zdCAqIHBweCwgWSBjb25zdCAqIHB5LCBuZG5ib29zdDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM8IFQgPiBjb25zdCAqIHBlICkKK3sKKyAgICBpZiggcGUgIT0gMCApCisgICAgeworICAgICAgICBwZS0+X2ludGVybmFsX2FjY2VwdF9vd25lciggcHB4LCBjb25zdF9jYXN0PCBZKiA+KCBweSApICk7CisgICAgfQorfQorCit0ZW1wbGF0ZTwgY2xhc3MgWCwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCBuZG5ib29zdDo6c2hhcmVkX3B0cjxYPiAqIHBweCwgWSBjb25zdCAqIHB5LCBuZG5ib29zdDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3JhdyBjb25zdCAqIHBlICk7CisKKyNpZmRlZiBfTUFOQUdFRAorCisvLyBBdm9pZCBDNDc5MywgLi4uIGNhdXNlcyBuYXRpdmUgY29kZSBnZW5lcmF0aW9uCisKK3N0cnVjdCBzcF9hbnlfcG9pbnRlcgoreworICAgIHRlbXBsYXRlPGNsYXNzIFQ+IHNwX2FueV9wb2ludGVyKCBUKiApIHt9Cit9OworCitpbmxpbmUgdm9pZCBzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggc3BfYW55X3BvaW50ZXIsIHNwX2FueV9wb2ludGVyLCBzcF9hbnlfcG9pbnRlciApCit7Cit9CisKKyNlbHNlIC8vIF9NQU5BR0VECisKK2lubGluZSB2b2lkIHNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAuLi4gKQoreworfQorCisjZW5kaWYgLy8gX01BTkFHRUQKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19TRklOQUUgKSAmJiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApICYmICFkZWZpbmVkKCBCT09TVF9OT19BVVRPX1BUUiApCisKKy8vIHJ2YWx1ZSBhdXRvX3B0ciBzdXBwb3J0IGJhc2VkIG9uIGEgdGVjaG5pcXVlIGJ5IERhdmUgQWJyYWhhbXMKKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIFIgPiBzdHJ1Y3Qgc3BfZW5hYmxlX2lmX2F1dG9fcHRyCit7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgUiA+IHN0cnVjdCBzcF9lbmFibGVfaWZfYXV0b19wdHI8IHN0ZDo6YXV0b19wdHI8IFQgPiwgUiA+Cit7CisgICAgdHlwZWRlZiBSIHR5cGU7Cit9OyAKKworI2VuZGlmCisKKy8vIHNwX2Fzc2VydF9jb252ZXJ0aWJsZQorCit0ZW1wbGF0ZTwgY2xhc3MgWSwgY2xhc3MgVCA+IGlubGluZSB2b2lkIHNwX2Fzc2VydF9jb252ZXJ0aWJsZSgpCit7CisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworICAgIC8vIHN0YXRpY19hc3NlcnQoIHNwX2NvbnZlcnRpYmxlPCBZLCBUID46OnZhbHVlICk7CisgICAgdHlwZWRlZiBjaGFyIHRtcFsgc3BfY29udmVydGlibGU8IFksIFQgPjo6dmFsdWU/IDE6IC0xIF07CisgICAgKHZvaWQpc2l6ZW9mKCB0bXAgKTsKKworI2Vsc2UKKworICAgIFQqIHAgPSBzdGF0aWNfY2FzdDwgWSogPiggMCApOworICAgICh2b2lkKXA7CisKKyNlbmRpZgorfQorCisvLyBwb2ludGVyIGNvbnN0cnVjdG9yIGhlbHBlcgorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX3BvaW50ZXJfY29uc3RydWN0KCBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+ICogcHB4LCBZICogcCwgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50ICYgcG4gKQoreworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCggcCApLnN3YXAoIHBuICk7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoIHBweCwgcCwgcCApOworfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX3BvaW50ZXJfY29uc3RydWN0KCBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVFtdID4gKiAvKnBweCovLCBZICogcCwgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50ICYgcG4gKQoreworICAgIHNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWVtdLCBUW10gPigpOworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCggcCwgbmRuYm9vc3Q6OmNoZWNrZWRfYXJyYXlfZGVsZXRlcjwgVCA+KCkgKS5zd2FwKCBwbiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX3BvaW50ZXJfY29uc3RydWN0KCBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVFtOXSA+ICogLypwcHgqLywgWSAqIHAsIG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCAmIHBuICkKK3sKKyAgICBzcF9hc3NlcnRfY29udmVydGlibGU8IFlbTl0sIFRbTl0gPigpOworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCggcCwgbmRuYm9vc3Q6OmNoZWNrZWRfYXJyYXlfZGVsZXRlcjwgVCA+KCkgKS5zd2FwKCBwbiApOworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCisvLyBkZWxldGVyIGNvbnN0cnVjdG9yIGhlbHBlcgorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX2RlbGV0ZXJfY29uc3RydWN0KCBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+ICogcHB4LCBZICogcCApCit7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoIHBweCwgcCwgcCApOworfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX2RlbGV0ZXJfY29uc3RydWN0KCBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVFtdID4gKiAvKnBweCovLCBZICogLypwKi8gKQoreworICAgIHNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWVtdLCBUW10gPigpOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiwgY2xhc3MgWSA+IGlubGluZSB2b2lkIHNwX2RlbGV0ZXJfY29uc3RydWN0KCBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVFtOXSA+ICogLypwcHgqLywgWSAqIC8qcCovICkKK3sKKyAgICBzcF9hc3NlcnRfY29udmVydGlibGU8IFlbTl0sIFRbTl0gPigpOworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworCisvLworLy8gIHNoYXJlZF9wdHIKKy8vCisvLyAgQW4gZW5oYW5jZWQgcmVsYXRpdmUgb2Ygc2NvcGVkX3B0ciB3aXRoIHJlZmVyZW5jZSBjb3VudGVkIGNvcHkgc2VtYW50aWNzLgorLy8gIFRoZSBvYmplY3QgcG9pbnRlZCB0byBpcyBkZWxldGVkIHdoZW4gdGhlIGxhc3Qgc2hhcmVkX3B0ciBwb2ludGluZyB0byBpdAorLy8gIGlzIGRlc3Ryb3llZCBvciByZXNldC4KKy8vCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIHNoYXJlZF9wdHIKK3sKK3ByaXZhdGU6CisKKyAgICAvLyBCb3JsYW5kIDUuNS4xIHNwZWNpZmljIHdvcmthcm91bmQKKyAgICB0eXBlZGVmIHNoYXJlZF9wdHI8VD4gdGhpc190eXBlOworCitwdWJsaWM6CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VsZW1lbnQ8IFQgPjo6dHlwZSBlbGVtZW50X3R5cGU7CisKKyAgICBzaGFyZWRfcHRyKCkgQk9PU1RfTk9FWENFUFQgOiBweCggMCApLCBwbigpIC8vIG5ldmVyIHRocm93cyBpbiAxLjMwKworICAgIHsKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUiApCisKKyAgICBzaGFyZWRfcHRyKCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QgKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCAwICksIHBuKCkgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIGV4cGxpY2l0IHNoYXJlZF9wdHIoIFkgKiBwICk6IHB4KCBwICksIHBuKCkgLy8gWSBtdXN0IGJlIGNvbXBsZXRlCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9wb2ludGVyX2NvbnN0cnVjdCggdGhpcywgcCwgcG4gKTsKKyAgICB9CisKKyAgICAvLworICAgIC8vIFJlcXVpcmVtZW50czogRCdzIGNvcHkgY29uc3RydWN0b3IgbXVzdCBub3QgdGhyb3cKKyAgICAvLworICAgIC8vIHNoYXJlZF9wdHIgd2lsbCByZWxlYXNlIHAgYnkgY2FsbGluZyBkKHApCisgICAgLy8KKworICAgIHRlbXBsYXRlPGNsYXNzIFksIGNsYXNzIEQ+IHNoYXJlZF9wdHIoIFkgKiBwLCBEIGQgKTogcHgoIHAgKSwgcG4oIHAsIGQgKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZGVsZXRlcl9jb25zdHJ1Y3QoIHRoaXMsIHAgKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUiApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEPiBzaGFyZWRfcHRyKCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QgcCwgRCBkICk6IHB4KCBwICksIHBuKCBwLCBkICkKKyAgICB7CisgICAgfQorCisjZW5kaWYKKworICAgIC8vIEFzIGFib3ZlLCBidXQgd2l0aCBhbGxvY2F0b3IuIEEncyBjb3B5IGNvbnN0cnVjdG9yIHNoYWxsIG5vdCB0aHJvdy4KKworICAgIHRlbXBsYXRlPGNsYXNzIFksIGNsYXNzIEQsIGNsYXNzIEE+IHNoYXJlZF9wdHIoIFkgKiBwLCBEIGQsIEEgYSApOiBweCggcCApLCBwbiggcCwgZCwgYSApCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9kZWxldGVyX2NvbnN0cnVjdCggdGhpcywgcCApOworICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKworICAgIHRlbXBsYXRlPGNsYXNzIEQsIGNsYXNzIEE+IHNoYXJlZF9wdHIoIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCBwLCBEIGQsIEEgYSApOiBweCggcCApLCBwbiggcCwgZCwgYSApCisgICAgeworICAgIH0KKworI2VuZGlmCisKKy8vICBnZW5lcmF0ZWQgY29weSBjb25zdHJ1Y3RvciwgZGVzdHJ1Y3RvciBhcmUgZmluZS4uLgorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTICkKKworLy8gLi4uIGV4Y2VwdCBpbiBDKysweCwgbW92ZSBkaXNhYmxlcyB0aGUgaW1wbGljaXQgY29weQorCisgICAgc2hhcmVkX3B0ciggc2hhcmVkX3B0ciBjb25zdCAmIHIgKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCByLnB4ICksIHBuKCByLnBuICkKKyAgICB7CisgICAgfQorCisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgZXhwbGljaXQgc2hhcmVkX3B0ciggd2Vha19wdHI8WT4gY29uc3QgJiByICk6IHBuKCByLnBuICkgLy8gbWF5IHRocm93CisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9hc3NlcnRfY29udmVydGlibGU8IFksIFQgPigpOworCisgICAgICAgIC8vIGl0IGlzIG5vdyBzYWZlIHRvIGNvcHkgci5weCwgYXMgcG4oci5wbikgZGlkIG5vdCB0aHJvdworICAgICAgICBweCA9IHIucHg7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfcHRyKCB3ZWFrX3B0cjxZPiBjb25zdCAmIHIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX25vdGhyb3dfdGFnICkKKyAgICBCT09TVF9OT0VYQ0VQVCA6IHB4KCAwICksIHBuKCByLnBuLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9ub3Rocm93X3RhZygpICkKKyAgICB7CisgICAgICAgIGlmKCAhcG4uZW1wdHkoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHB4ID0gci5weDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworICAgIHNoYXJlZF9wdHIoIHNoYXJlZF9wdHI8WT4gY29uc3QgJiByLCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfaWZfY29udmVydGlibGU8WSxUPjo6dHlwZSA9IG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VtcHR5KCkgKQorCisjZWxzZQorCisgICAgc2hhcmVkX3B0ciggc2hhcmVkX3B0cjxZPiBjb25zdCAmIHIgKQorCisjZW5kaWYKKyAgICBCT09TVF9OT0VYQ0VQVCA6IHB4KCByLnB4ICksIHBuKCByLnBuICkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisgICAgfQorCisgICAgLy8gYWxpYXNpbmcKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgWSA+CisgICAgc2hhcmVkX3B0ciggc2hhcmVkX3B0cjxZPiBjb25zdCAmIHIsIGVsZW1lbnRfdHlwZSAqIHAgKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCBwICksIHBuKCByLnBuICkKKyAgICB7CisgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX0FVVE9fUFRSCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIGV4cGxpY2l0IHNoYXJlZF9wdHIoIHN0ZDo6YXV0b19wdHI8WT4gJiByICk6IHB4KHIuZ2V0KCkpLCBwbigpCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9hc3NlcnRfY29udmVydGlibGU8IFksIFQgPigpOworCisgICAgICAgIFkgKiB0bXAgPSByLmdldCgpOworICAgICAgICBwbiA9IG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCggciApOworCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2RlbGV0ZXJfY29uc3RydWN0KCB0aGlzLCB0bXAgKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfcHRyKCBzdGQ6OmF1dG9fcHRyPFk+ICYmIHIgKTogcHgoci5nZXQoKSksIHBuKCkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgWSAqIHRtcCA9IHIuZ2V0KCk7CisgICAgICAgIHBuID0gbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50KCByICk7CisKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZGVsZXRlcl9jb25zdHJ1Y3QoIHRoaXMsIHRtcCApOworICAgIH0KKworI2VsaWYgIWRlZmluZWQoIEJPT1NUX05PX1NGSU5BRSApICYmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworICAgIHRlbXBsYXRlPGNsYXNzIEFwPgorICAgIGV4cGxpY2l0IHNoYXJlZF9wdHIoIEFwIHIsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9pZl9hdXRvX3B0cjxBcCwgaW50Pjo6dHlwZSA9IDAgKTogcHgoIHIuZ2V0KCkgKSwgcG4oKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBcDo6ZWxlbWVudF90eXBlIFk7CisKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZLCBUID4oKTsKKworICAgICAgICBZICogdG1wID0gci5nZXQoKTsKKyAgICAgICAgcG4gPSBuZG5ib29zdDo6ZGV0YWlsOjpzaGFyZWRfY291bnQoIHIgKTsKKworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9kZWxldGVyX2NvbnN0cnVjdCggdGhpcywgdG1wICk7CisgICAgfQorCisjZW5kaWYgLy8gQk9PU1RfTk9fU0ZJTkFFLCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyNlbmRpZiAvLyBCT09TVF9OT19BVVRPX1BUUgorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUiApICYmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgWSwgY2xhc3MgRCA+CisgICAgc2hhcmVkX3B0ciggc3RkOjp1bmlxdWVfcHRyPCBZLCBEID4gJiYgciApOiBweCggci5nZXQoKSApLCBwbigpCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9hc3NlcnRfY29udmVydGlibGU8IFksIFQgPigpOworCisgICAgICAgIHR5cGVuYW1lIHN0ZDo6dW5pcXVlX3B0cjwgWSwgRCA+Ojpwb2ludGVyIHRtcCA9IHIuZ2V0KCk7CisgICAgICAgIHBuID0gbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50KCByICk7CisKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZGVsZXRlcl9jb25zdHJ1Y3QoIHRoaXMsIHRtcCApOworICAgIH0KKworI2VuZGlmCisKKyAgICAvLyBhc3NpZ25tZW50CisKKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KCBzaGFyZWRfcHRyIGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUocikuc3dhcCgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9NU1ZDKSB8fCAoQk9PU1RfTVNWQyA+PSAxNDAwKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KHNoYXJlZF9wdHI8WT4gY29uc3QgJiByKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgdGhpc190eXBlKHIpLnN3YXAoKnRoaXMpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9OT19BVVRPX1BUUgorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KCBzdGQ6OmF1dG9fcHRyPFk+ICYgciApCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHIgKS5zd2FwKCAqdGhpcyApOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTICkKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgc2hhcmVkX3B0ciAmIG9wZXJhdG9yPSggc3RkOjphdXRvX3B0cjxZPiAmJiByICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggc3RhdGljX2Nhc3Q8IHN0ZDo6YXV0b19wdHI8WT4gJiYgPiggciApICkuc3dhcCggKnRoaXMgKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VsaWYgIWRlZmluZWQoIEJPT1NUX05PX1NGSU5BRSApICYmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworICAgIHRlbXBsYXRlPGNsYXNzIEFwPgorICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9pZl9hdXRvX3B0cjwgQXAsIHNoYXJlZF9wdHIgJiA+Ojp0eXBlIG9wZXJhdG9yPSggQXAgciApCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHIgKS5zd2FwKCAqdGhpcyApOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjZW5kaWYgLy8gQk9PU1RfTk9fU0ZJTkFFLCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyNlbmRpZiAvLyBCT09TVF9OT19BVVRPX1BUUgorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUiApICYmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPgorICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oIHN0ZDo6dW5pcXVlX3B0cjxZLCBEPiAmJiByICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggc3RhdGljX2Nhc3Q8IHN0ZDo6dW5pcXVlX3B0cjxZLCBEPiAmJiA+KCByICkgKS5zd2FwKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKy8vIE1vdmUgc3VwcG9ydAorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTICkKKworICAgIHNoYXJlZF9wdHIoIHNoYXJlZF9wdHIgJiYgciApIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oKQorICAgIHsKKyAgICAgICAgcG4uc3dhcCggci5wbiApOworICAgICAgICByLnB4ID0gMDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApCisKKyAgICBzaGFyZWRfcHRyKCBzaGFyZWRfcHRyPFk+ICYmIHIsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZTxZLFQ+Ojp0eXBlID0gbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW1wdHkoKSApCisKKyNlbHNlCisKKyAgICBzaGFyZWRfcHRyKCBzaGFyZWRfcHRyPFk+ICYmIHIgKQorCisjZW5kaWYKKyAgICBCT09TVF9OT0VYQ0VQVCA6IHB4KCByLnB4ICksIHBuKCkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgcG4uc3dhcCggci5wbiApOworICAgICAgICByLnB4ID0gMDsKKyAgICB9CisKKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KCBzaGFyZWRfcHRyICYmIHIgKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBzdGF0aWNfY2FzdDwgc2hhcmVkX3B0ciAmJiA+KCByICkgKS5zd2FwKCAqdGhpcyApOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KCBzaGFyZWRfcHRyPFk+ICYmIHIgKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBzdGF0aWNfY2FzdDwgc2hhcmVkX3B0cjxZPiAmJiA+KCByICkgKS5zd2FwKCAqdGhpcyApOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKworICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCApIEJPT1NUX05PRVhDRVBUIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgdGhpc190eXBlKCkuc3dhcCgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdm9pZCByZXNldCgpIEJPT1NUX05PRVhDRVBUIC8vIG5ldmVyIHRocm93cyBpbiAxLjMwKworICAgIHsKKyAgICAgICAgdGhpc190eXBlKCkuc3dhcCgqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gdm9pZCByZXNldCggWSAqIHAgKSAvLyBZIG11c3QgYmUgY29tcGxldGUKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcCA9PSAwIHx8IHAgIT0gcHggKTsgLy8gY2F0Y2ggc2VsZi1yZXNldCBlcnJvcnMKKyAgICAgICAgdGhpc190eXBlKCBwICkuc3dhcCggKnRoaXMgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPiB2b2lkIHJlc2V0KCBZICogcCwgRCBkICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggcCwgZCApLnN3YXAoICp0aGlzICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWSwgY2xhc3MgRCwgY2xhc3MgQT4gdm9pZCByZXNldCggWSAqIHAsIEQgZCwgQSBhICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggcCwgZCwgYSApLnN3YXAoICp0aGlzICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gdm9pZCByZXNldCggc2hhcmVkX3B0cjxZPiBjb25zdCAmIHIsIGVsZW1lbnRfdHlwZSAqIHAgKQorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCByLCBwICkuc3dhcCggKnRoaXMgKTsKKyAgICB9CisgICAgCisgICAgLy8gbmV2ZXIgdGhyb3dzIChidXQgaGFzIGEgQk9PU1RfQVNTRVJUIGluIGl0LCBzbyBub3QgbWFya2VkIHdpdGggQk9PU1RfTk9FWENFUFQpCisgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZGVyZWZlcmVuY2U8IFQgPjo6dHlwZSBvcGVyYXRvciogKCkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcHggIT0gMCApOworICAgICAgICByZXR1cm4gKnB4OworICAgIH0KKyAgICAKKyAgICAvLyBuZXZlciB0aHJvd3MgKGJ1dCBoYXMgYSBCT09TVF9BU1NFUlQgaW4gaXQsIHNvIG5vdCBtYXJrZWQgd2l0aCBCT09TVF9OT0VYQ0VQVCkKKyAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tZW1iZXJfYWNjZXNzPCBUID46OnR5cGUgb3BlcmF0b3ItPiAoKSBjb25zdCAKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcHggIT0gMCApOworICAgICAgICByZXR1cm4gcHg7CisgICAgfQorICAgIAorICAgIC8vIG5ldmVyIHRocm93cyAoYnV0IGhhcyBhIEJPT1NUX0FTU0VSVCBpbiBpdCwgc28gbm90IG1hcmtlZCB3aXRoIEJPT1NUX05PRVhDRVBUKQorICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2FycmF5X2FjY2VzczwgVCA+Ojp0eXBlIG9wZXJhdG9yW10gKCBzdGQ6OnB0cmRpZmZfdCBpICkgY29uc3QKKyAgICB7CisgICAgICAgIEJPT1NUX0FTU0VSVCggcHggIT0gMCApOworICAgICAgICBCT09TVF9BU1NFUlQoIGkgPj0gMCAmJiAoIGkgPCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9leHRlbnQ8IFQgPjo6dmFsdWUgfHwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZXh0ZW50PCBUID46OnZhbHVlID09IDAgKSApOworCisgICAgICAgIHJldHVybiBweFsgaSBdOworICAgIH0KKworICAgIGVsZW1lbnRfdHlwZSAqIGdldCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHg7CisgICAgfQorCisvLyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvICJib29sIgorI2luY2x1ZGUgPG5kbmJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvb3BlcmF0b3JfYm9vbC5ocHA+CisKKyAgICBib29sIHVuaXF1ZSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4udW5pcXVlKCk7CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBuLnVzZV9jb3VudCgpOworICAgIH0KKworICAgIHZvaWQgc3dhcCggc2hhcmVkX3B0ciAmIG90aGVyICkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHN0ZDo6c3dhcChweCwgb3RoZXIucHgpOworICAgICAgICBwbi5zd2FwKG90aGVyLnBuKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBib29sIG93bmVyX2JlZm9yZSggc2hhcmVkX3B0cjxZPiBjb25zdCAmIHJocyApIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4gPCByaHMucG47CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gYm9vbCBvd25lcl9iZWZvcmUoIHdlYWtfcHRyPFk+IGNvbnN0ICYgcmhzICkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBwbiA8IHJocy5wbjsKKyAgICB9CisKKyAgICB2b2lkICogX2ludGVybmFsX2dldF9kZWxldGVyKCBuZG5ib29zdDo6ZGV0YWlsOjpzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBwbi5nZXRfZGVsZXRlciggdGkgKTsKKyAgICB9CisKKyAgICB2b2lkICogX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBuLmdldF91bnR5cGVkX2RlbGV0ZXIoKTsKKyAgICB9CisKKyAgICBib29sIF9pbnRlcm5hbF9lcXVpdiggc2hhcmVkX3B0ciBjb25zdCAmIHIgKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4ID09IHIucHggJiYgcG4gPT0gci5wbjsKKyAgICB9CisKKy8vIFRhc3RlbGVzcyBhcyB0aGlzIG1heSBzZWVtLCBtYWtpbmcgYWxsIG1lbWJlcnMgcHVibGljIGFsbG93cyBtZW1iZXIgdGVtcGxhdGVzCisvLyB0byB3b3JrIGluIHRoZSBhYnNlbmNlIG9mIG1lbWJlciB0ZW1wbGF0ZSBmcmllbmRzLiAoTWF0dGhldyBMYW5nc3RvbikKKworI2lmbmRlZiBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworCitwcml2YXRlOgorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gZnJpZW5kIGNsYXNzIHNoYXJlZF9wdHI7CisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gZnJpZW5kIGNsYXNzIHdlYWtfcHRyOworCisKKyNlbmRpZgorCisgICAgZWxlbWVudF90eXBlICogcHg7ICAgICAgICAgICAgICAgICAvLyBjb250YWluZWQgcG9pbnRlcgorICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCBwbjsgICAgLy8gcmVmZXJlbmNlIGNvdW50ZXIKKworfTsgIC8vIHNoYXJlZF9wdHIKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYSwgc2hhcmVkX3B0cjxVPiBjb25zdCAmIGIpIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYSwgc2hhcmVkX3B0cjxVPiBjb25zdCAmIGIpIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsKK30KKworI2lmIF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPD0gOTYKKworLy8gUmVzb2x2ZSB0aGUgYW1iaWd1aXR5IGJldHdlZW4gb3VyIG9wIT0gYW5kIHRoZSBvbmUgaW4gcmVsX29wcworCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KHNoYXJlZF9wdHI8VD4gY29uc3QgJiBhLCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOworfQorCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PSggc2hhcmVkX3B0cjxUPiBjb25zdCAmIHAsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgPT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PSggbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90LCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgPT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPSggc2hhcmVkX3B0cjxUPiBjb25zdCAmIHAsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgIT0gMDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPSggbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90LCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCkgIT0gMDsKK30KKworI2VuZGlmCisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IGlubGluZSBib29sIG9wZXJhdG9yPChzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYSwgc2hhcmVkX3B0cjxVPiBjb25zdCAmIGIpIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIGEub3duZXJfYmVmb3JlKCBiICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIHN3YXAoc2hhcmVkX3B0cjxUPiAmIGEsIHNoYXJlZF9wdHI8VD4gJiBiKSBCT09TVF9OT0VYQ0VQVAoreworICAgIGEuc3dhcChiKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gc2hhcmVkX3B0cjxUPiBzdGF0aWNfcG9pbnRlcl9jYXN0KCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUCit7CisgICAgKHZvaWQpIHN0YXRpY19jYXN0PCBUKiA+KCBzdGF0aWNfY2FzdDwgVSogPiggMCApICk7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNoYXJlZF9wdHI8VD46OmVsZW1lbnRfdHlwZSBFOworCisgICAgRSAqIHAgPSBzdGF0aWNfY2FzdDwgRSogPiggci5nZXQoKSApOworICAgIHJldHVybiBzaGFyZWRfcHRyPFQ+KCByLCBwICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IHNoYXJlZF9wdHI8VD4gY29uc3RfcG9pbnRlcl9jYXN0KCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUCit7CisgICAgKHZvaWQpIGNvbnN0X2Nhc3Q8IFQqID4oIHN0YXRpY19jYXN0PCBVKiA+KCAwICkgKTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2hhcmVkX3B0cjxUPjo6ZWxlbWVudF90eXBlIEU7CisKKyAgICBFICogcCA9IGNvbnN0X2Nhc3Q8IEUqID4oIHIuZ2V0KCkgKTsKKyAgICByZXR1cm4gc2hhcmVkX3B0cjxUPiggciwgcCApOworfQorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBzaGFyZWRfcHRyPFQ+IGR5bmFtaWNfcG9pbnRlcl9jYXN0KCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUCit7CisgICAgKHZvaWQpIGR5bmFtaWNfY2FzdDwgVCogPiggc3RhdGljX2Nhc3Q8IFUqID4oIDAgKSApOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzaGFyZWRfcHRyPFQ+OjplbGVtZW50X3R5cGUgRTsKKworICAgIEUgKiBwID0gZHluYW1pY19jYXN0PCBFKiA+KCByLmdldCgpICk7CisgICAgcmV0dXJuIHA/IHNoYXJlZF9wdHI8VD4oIHIsIHAgKTogc2hhcmVkX3B0cjxUPigpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBzaGFyZWRfcHRyPFQ+IHJlaW50ZXJwcmV0X3BvaW50ZXJfY2FzdCggc2hhcmVkX3B0cjxVPiBjb25zdCAmIHIgKSBCT09TVF9OT0VYQ0VQVAoreworICAgICh2b2lkKSByZWludGVycHJldF9jYXN0PCBUKiA+KCBzdGF0aWNfY2FzdDwgVSogPiggMCApICk7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNoYXJlZF9wdHI8VD46OmVsZW1lbnRfdHlwZSBFOworCisgICAgRSAqIHAgPSByZWludGVycHJldF9jYXN0PCBFKiA+KCByLmdldCgpICk7CisgICAgcmV0dXJuIHNoYXJlZF9wdHI8VD4oIHIsIHAgKTsKK30KKworLy8gZ2V0X3BvaW50ZXIoKSBlbmFibGVzIG5kbmJvb3N0OjptZW1fZm4gdG8gcmVjb2duaXplIHNoYXJlZF9wdHIKKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIHR5cGVuYW1lIHNoYXJlZF9wdHI8VD46OmVsZW1lbnRfdHlwZSAqIGdldF9wb2ludGVyKHNoYXJlZF9wdHI8VD4gY29uc3QgJiBwKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBwLmdldCgpOworfQorCisvLyBvcGVyYXRvcjw8CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JT1NUUkVBTSkKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVEX0lPU1RSRUFNUykgfHwgKCBkZWZpbmVkKF9fR05VQ19fKSAmJiAgKF9fR05VQ19fIDwgMykgKQorCit0ZW1wbGF0ZTxjbGFzcyBZPiBzdGQ6Om9zdHJlYW0gJiBvcGVyYXRvcjw8IChzdGQ6Om9zdHJlYW0gJiBvcywgc2hhcmVkX3B0cjxZPiBjb25zdCAmIHApCit7CisgICAgb3MgPDwgcC5nZXQoKTsKKyAgICByZXR1cm4gb3M7Cit9CisKKyNlbHNlCisKKy8vIGluIFNUTHBvcnQncyBuby1pb3N0cmVhbXMgbW9kZSBubyBpb3N0cmVhbSBzeW1ib2xzIGNhbiBiZSB1c2VkCisjaWZuZGVmIF9TVExQX05PX0lPU1RSRUFNUworCisjIGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDAgJiYgX19TR0lfU1RMX1BPUlQpCisvLyBNU1ZDNiBoYXMgcHJvYmxlbXMgZmluZGluZyBzdGQ6OmJhc2ljX29zdHJlYW0gdGhyb3VnaCB0aGUgdXNpbmcgZGVjbGFyYXRpb24gaW4gbmFtZXNwYWNlIF9TVEwKK3VzaW5nIHN0ZDo6YmFzaWNfb3N0cmVhbTsKK3RlbXBsYXRlPGNsYXNzIEUsIGNsYXNzIFQsIGNsYXNzIFk+IGJhc2ljX29zdHJlYW08RSwgVD4gJiBvcGVyYXRvcjw8IChiYXNpY19vc3RyZWFtPEUsIFQ+ICYgb3MsIHNoYXJlZF9wdHI8WT4gY29uc3QgJiBwKQorIyBlbHNlCit0ZW1wbGF0ZTxjbGFzcyBFLCBjbGFzcyBULCBjbGFzcyBZPiBzdGQ6OmJhc2ljX29zdHJlYW08RSwgVD4gJiBvcGVyYXRvcjw8IChzdGQ6OmJhc2ljX29zdHJlYW08RSwgVD4gJiBvcywgc2hhcmVkX3B0cjxZPiBjb25zdCAmIHApCisjIGVuZGlmCit7CisgICAgb3MgPDwgcC5nZXQoKTsKKyAgICByZXR1cm4gb3M7Cit9CisKKyNlbmRpZiAvLyBfU1RMUF9OT19JT1NUUkVBTVMKKworI2VuZGlmIC8vIF9fR05VQ19fIDwgMworCisjZW5kaWYgLy8gIWRlZmluZWQoQk9PU1RfTk9fSU9TVFJFQU0pCisKKy8vIGdldF9kZWxldGVyCisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmICggZGVmaW5lZChfX0dOVUNfXykgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKSApIHx8IFwKKyAgICAoIGRlZmluZWQoX19FREdfVkVSU0lPTl9fKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KSApIHx8IFwKKyAgICAoIGRlZmluZWQoX19IUF9hQ0MpICYmIEJPT1NUX1dPUktBUk9VTkQoX19IUF9hQ0MsIDw9IDMzNTAwKSApCisKKy8vIGcrKyAyLjl4IGRvZXNuJ3QgYWxsb3cgc3RhdGljX2Nhc3Q8WCBjb25zdCAqPih2b2lkICopCisvLyBhcHBhcmVudGx5IEVERyAyLjM4IGFuZCBIUCBhQ0MgQS4wMy4zNSBhbHNvIGRvbid0IGFjY2VwdCBpdAorCit0ZW1wbGF0ZTxjbGFzcyBELCBjbGFzcyBUPiBEICogYmFzaWNfZ2V0X2RlbGV0ZXIoc2hhcmVkX3B0cjxUPiBjb25zdCAmIHApCit7CisgICAgdm9pZCBjb25zdCAqIHEgPSBwLl9pbnRlcm5hbF9nZXRfZGVsZXRlcihCT09TVF9TUF9UWVBFSUQoRCkpOworICAgIHJldHVybiBjb25zdF9jYXN0PEQgKj4oc3RhdGljX2Nhc3Q8RCBjb25zdCAqPihxKSk7Cit9CisKKyNlbHNlCisKK3RlbXBsYXRlPGNsYXNzIEQsIGNsYXNzIFQ+IEQgKiBiYXNpY19nZXRfZGVsZXRlciggc2hhcmVkX3B0cjxUPiBjb25zdCAmIHAgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEICo+KCBwLl9pbnRlcm5hbF9nZXRfZGVsZXRlcihCT09TVF9TUF9UWVBFSUQoRCkpICk7Cit9CisKKyNlbmRpZgorCitjbGFzcyBlc2Z0Ml9kZWxldGVyX3dyYXBwZXIKK3sKK3ByaXZhdGU6CisKKyAgICBzaGFyZWRfcHRyPHZvaWQ+IGRlbGV0ZXJfOworCitwdWJsaWM6CisKKyAgICBlc2Z0Ml9kZWxldGVyX3dyYXBwZXIoKQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA+IHZvaWQgc2V0X2RlbGV0ZXIoIHNoYXJlZF9wdHI8VD4gY29uc3QgJiBkZWxldGVyICkKKyAgICB7CisgICAgICAgIGRlbGV0ZXJfID0gZGVsZXRlcjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEPiBEKiBnZXRfZGVsZXRlcigpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmRldGFpbDo6YmFzaWNfZ2V0X2RlbGV0ZXI8RD4oIGRlbGV0ZXJfICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8IGNsYXNzIFQ+IHZvaWQgb3BlcmF0b3IoKSggVCogKQorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBkZWxldGVyXy51c2VfY291bnQoKSA8PSAxICk7CisgICAgICAgIGRlbGV0ZXJfLnJlc2V0KCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK3RlbXBsYXRlPGNsYXNzIEQsIGNsYXNzIFQ+IEQgKiBnZXRfZGVsZXRlciggc2hhcmVkX3B0cjxUPiBjb25zdCAmIHAgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIEQgKmRlbCA9IG5kbmJvb3N0OjpkZXRhaWw6OmJhc2ljX2dldF9kZWxldGVyPEQ+KHApOworCisgICAgaWYoZGVsID09IDApCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjplc2Z0Ml9kZWxldGVyX3dyYXBwZXIgKmRlbF93cmFwcGVyID0gbmRuYm9vc3Q6OmRldGFpbDo6YmFzaWNfZ2V0X2RlbGV0ZXI8bmRuYm9vc3Q6OmRldGFpbDo6ZXNmdDJfZGVsZXRlcl93cmFwcGVyPihwKTsKKy8vIFRoZSBmb2xsb3dpbmcgZ2V0X2RlbGV0ZXIgbWV0aG9kIGNhbGwgaXMgZnVsbHkgcXVhbGlmaWVkIGJlY2F1c2UKKy8vIG9sZGVyIHZlcnNpb25zIG9mIGdjYyAoMi45NSwgMy4yLjMpIGZhaWwgdG8gY29tcGlsZSBpdCB3aGVuIHdyaXR0ZW4gZGVsX3dyYXBwZXItPmdldF9kZWxldGVyPEQ+KCkKKyAgICAgICAgaWYoZGVsX3dyYXBwZXIpIGRlbCA9IGRlbF93cmFwcGVyLT46Om5kbmJvb3N0OjpkZXRhaWw6OmVzZnQyX2RlbGV0ZXJfd3JhcHBlcjo6Z2V0X2RlbGV0ZXI8RD4oKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVsOworfQorCisvLyBhdG9taWMgYWNjZXNzCisKKyNpZiAhZGVmaW5lZChCT09TVF9TUF9OT19BVE9NSUNfQUNDRVNTKQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBhdG9taWNfaXNfbG9ja19mcmVlKCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICogLypwKi8gKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gc2hhcmVkX3B0cjxUPiBhdG9taWNfbG9hZCggc2hhcmVkX3B0cjxUPiBjb25zdCAqIHAgKQoreworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwaW5sb2NrX3Bvb2w8Mj46OnNjb3BlZF9sb2NrIGxvY2soIHAgKTsKKyAgICByZXR1cm4gKnA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBzaGFyZWRfcHRyPFQ+IGF0b21pY19sb2FkX2V4cGxpY2l0KCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICogcCwgbWVtb3J5X29yZGVyIC8qbW8qLyApCit7CisgICAgcmV0dXJuIGF0b21pY19sb2FkKCBwICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgYXRvbWljX3N0b3JlKCBzaGFyZWRfcHRyPFQ+ICogcCwgc2hhcmVkX3B0cjxUPiByICkKK3sKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcGlubG9ja19wb29sPDI+OjpzY29wZWRfbG9jayBsb2NrKCBwICk7CisgICAgcC0+c3dhcCggciApOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCBhdG9taWNfc3RvcmVfZXhwbGljaXQoIHNoYXJlZF9wdHI8VD4gKiBwLCBzaGFyZWRfcHRyPFQ+IHIsIG1lbW9yeV9vcmRlciAvKm1vKi8gKQoreworICAgIGF0b21pY19zdG9yZSggcCwgciApOyAvLyBzdGQ6Om1vdmUoIHIgKQorfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBzaGFyZWRfcHRyPFQ+IGF0b21pY19leGNoYW5nZSggc2hhcmVkX3B0cjxUPiAqIHAsIHNoYXJlZF9wdHI8VD4gciApCit7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BpbmxvY2sgJiBzcCA9IG5kbmJvb3N0OjpkZXRhaWw6OnNwaW5sb2NrX3Bvb2w8Mj46OnNwaW5sb2NrX2ZvciggcCApOworCisgICAgc3AubG9jaygpOworICAgIHAtPnN3YXAoIHIgKTsKKyAgICBzcC51bmxvY2soKTsKKworICAgIHJldHVybiByOyAvLyByZXR1cm4gc3RkOjptb3ZlKCByICkKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gc2hhcmVkX3B0cjxUPiBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQoIHNoYXJlZF9wdHI8VD4gKiBwLCBzaGFyZWRfcHRyPFQ+IHIsIG1lbW9yeV9vcmRlciAvKm1vKi8gKQoreworICAgIHJldHVybiBhdG9taWNfZXhjaGFuZ2UoIHAsIHIgKTsgLy8gc3RkOjptb3ZlKCByICkKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gYm9vbCBhdG9taWNfY29tcGFyZV9leGNoYW5nZSggc2hhcmVkX3B0cjxUPiAqIHAsIHNoYXJlZF9wdHI8VD4gKiB2LCBzaGFyZWRfcHRyPFQ+IHcgKQoreworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwaW5sb2NrICYgc3AgPSBuZG5ib29zdDo6ZGV0YWlsOjpzcGlubG9ja19wb29sPDI+OjpzcGlubG9ja19mb3IoIHAgKTsKKworICAgIHNwLmxvY2soKTsKKworICAgIGlmKCBwLT5faW50ZXJuYWxfZXF1aXYoICp2ICkgKQorICAgIHsKKyAgICAgICAgcC0+c3dhcCggdyApOworCisgICAgICAgIHNwLnVubG9jaygpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBzaGFyZWRfcHRyPFQ+IHRtcCggKnAgKTsKKworICAgICAgICBzcC51bmxvY2soKTsKKworICAgICAgICB0bXAuc3dhcCggKnYgKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIGJvb2wgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfZXhwbGljaXQoIHNoYXJlZF9wdHI8VD4gKiBwLCBzaGFyZWRfcHRyPFQ+ICogdiwgc2hhcmVkX3B0cjxUPiB3LCBtZW1vcnlfb3JkZXIgLypzdWNjZXNzKi8sIG1lbW9yeV9vcmRlciAvKmZhaWx1cmUqLyApCit7CisgICAgcmV0dXJuIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlKCBwLCB2LCB3ICk7IC8vIHN0ZDo6bW92ZSggdyApCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChCT09TVF9TUF9OT19BVE9NSUNfQUNDRVNTKQorCisvLyBoYXNoX3ZhbHVlCisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IGhhc2g7CisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RkOjpzaXplX3QgaGFzaF92YWx1ZSggbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gY29uc3QgJiBwICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gbmRuYm9vc3Q6Omhhc2g8IFQqID4oKSggcC5nZXQoKSApOworfQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZiBkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMpICYmICFkZWZpbmVkKEJPT1NUX01TVkM2X01FTUJFUl9URU1QTEFURVMpCisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfU0hBUkVEX1BUUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3dlYWtfcHRyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3Qvc21hcnRfcHRyL3dlYWtfcHRyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTI2OGE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zbWFydF9wdHIvd2Vha19wdHIuaHBwCkBAIC0wLDAgKzEsMjUzIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9XRUFLX1BUUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX1dFQUtfUFRSX0hQUF9JTkNMVURFRAorCisvLworLy8gIHdlYWtfcHRyLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3NtYXJ0X3B0ci93ZWFrX3B0ci5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8bWVtb3J5PiAvLyBib29zdC5UUjEgaW5jbHVkZSBvcmRlciBmaXgKKyNpbmNsdWRlIDxuZG5ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9jb3VudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3Mgd2Vha19wdHIKK3sKK3ByaXZhdGU6CisKKyAgICAvLyBCb3JsYW5kIDUuNS4xIHNwZWNpZmljIHdvcmthcm91bmRzCisgICAgdHlwZWRlZiB3ZWFrX3B0cjxUPiB0aGlzX3R5cGU7CisKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZWxlbWVudDwgVCA+Ojp0eXBlIGVsZW1lbnRfdHlwZTsKKworICAgIHdlYWtfcHRyKCkgQk9PU1RfTk9FWENFUFQgOiBweCgwKSwgcG4oKSAvLyBuZXZlciB0aHJvd3MgaW4gMS4zMCsKKyAgICB7CisgICAgfQorCisvLyAgZ2VuZXJhdGVkIGNvcHkgY29uc3RydWN0b3IsIGFzc2lnbm1lbnQsIGRlc3RydWN0b3IgYXJlIGZpbmUuLi4KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKy8vIC4uLiBleGNlcHQgaW4gQysrMHgsIG1vdmUgZGlzYWJsZXMgdGhlIGltcGxpY2l0IGNvcHkKKworICAgIHdlYWtfcHRyKCB3ZWFrX3B0ciBjb25zdCAmIHIgKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCByLnB4ICksIHBuKCByLnBuICkKKyAgICB7CisgICAgfQorCisgICAgd2Vha19wdHIgJiBvcGVyYXRvcj0oIHdlYWtfcHRyIGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICBweCA9IHIucHg7CisgICAgICAgIHBuID0gci5wbjsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKy8vCisvLyAgVGhlICJvYnZpb3VzIiBjb252ZXJ0aW5nIGNvbnN0cnVjdG9yIGltcGxlbWVudGF0aW9uOgorLy8KKy8vICB0ZW1wbGF0ZTxjbGFzcyBZPgorLy8gIHdlYWtfcHRyKHdlYWtfcHRyPFk+IGNvbnN0ICYgcik6IHB4KHIucHgpLCBwbihyLnBuKSAvLyBuZXZlciB0aHJvd3MKKy8vICB7CisvLyAgfQorLy8KKy8vICBoYXMgYSBzZXJpb3VzIHByb2JsZW0uCisvLworLy8gIHIucHggbWF5IGFscmVhZHkgaGF2ZSBiZWVuIGludmFsaWRhdGVkLiBUaGUgcHgoci5weCkKKy8vICBjb252ZXJzaW9uIG1heSByZXF1aXJlIGFjY2VzcyB0byAqci5weCAodmlydHVhbCBpbmhlcml0YW5jZSkuCisvLworLy8gIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBhdm9pZCBzcHVyaW91cyBhY2Nlc3MgdmlvbGF0aW9ucyBzaW5jZQorLy8gIGluIG11bHRpdGhyZWFkZWQgcHJvZ3JhbXMgci5weCBtYXkgYmUgaW52YWxpZGF0ZWQgYXQgYW55IHBvaW50LgorLy8KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworICAgIHdlYWtfcHRyKCB3ZWFrX3B0cjxZPiBjb25zdCAmIHIsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZTxZLFQ+Ojp0eXBlID0gbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW1wdHkoKSApCisKKyNlbHNlCisKKyAgICB3ZWFrX3B0ciggd2Vha19wdHI8WT4gY29uc3QgJiByICkKKworI2VuZGlmCisgICAgQk9PU1RfTk9FWENFUFQgOiBweChyLmxvY2soKS5nZXQoKSksIHBuKHIucG4pCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9hc3NlcnRfY29udmVydGlibGU8IFksIFQgPigpOworICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApCisKKyAgICB3ZWFrX3B0ciggd2Vha19wdHI8WT4gJiYgciwgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlPFksVD46OnR5cGUgPSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbXB0eSgpICkKKworI2Vsc2UKKworICAgIHdlYWtfcHRyKCB3ZWFrX3B0cjxZPiAmJiByICkKKworI2VuZGlmCisgICAgQk9PU1RfTk9FWENFUFQgOiBweCggci5sb2NrKCkuZ2V0KCkgKSwgcG4oIHN0YXRpY19jYXN0PCBuZG5ib29zdDo6ZGV0YWlsOjp3ZWFrX2NvdW50ICYmID4oIHIucG4gKSApCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9hc3NlcnRfY29udmVydGlibGU8IFksIFQgPigpOworICAgICAgICByLnB4ID0gMDsKKyAgICB9CisKKyAgICAvLyBmb3IgYmV0dGVyIGVmZmljaWVuY3kgaW4gdGhlIFQgPT0gWSBjYXNlCisgICAgd2Vha19wdHIoIHdlYWtfcHRyICYmIHIgKQorICAgIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oIHN0YXRpY19jYXN0PCBuZG5ib29zdDo6ZGV0YWlsOjp3ZWFrX2NvdW50ICYmID4oIHIucG4gKSApCisgICAgeworICAgICAgICByLnB4ID0gMDsKKyAgICB9CisKKyAgICAvLyBmb3IgYmV0dGVyIGVmZmljaWVuY3kgaW4gdGhlIFQgPT0gWSBjYXNlCisgICAgd2Vha19wdHIgJiBvcGVyYXRvcj0oIHdlYWtfcHRyICYmIHIgKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBzdGF0aWNfY2FzdDwgd2Vha19wdHIgJiYgPiggciApICkuc3dhcCggKnRoaXMgKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworCisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworICAgIHdlYWtfcHRyKCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgciwgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlPFksVD46OnR5cGUgPSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbXB0eSgpICkKKworI2Vsc2UKKworICAgIHdlYWtfcHRyKCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgciApCisKKyNlbmRpZgorICAgIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oIHIucG4gKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZLCBUID4oKTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9NU1ZDKSB8fCAoQk9PU1RfTVNWQyA+PSAxMzAwKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICB3ZWFrX3B0ciAmIG9wZXJhdG9yPSggd2Vha19wdHI8WT4gY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgcHggPSByLmxvY2soKS5nZXQoKTsKKyAgICAgICAgcG4gPSByLnBuOworCisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICB3ZWFrX3B0ciAmIG9wZXJhdG9yPSggd2Vha19wdHI8WT4gJiYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHN0YXRpY19jYXN0PCB3ZWFrX3B0cjxZPiAmJiA+KCByICkgKS5zd2FwKCAqdGhpcyApOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgd2Vha19wdHIgJiBvcGVyYXRvcj0oIHNoYXJlZF9wdHI8WT4gY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgcHggPSByLnB4OworICAgICAgICBwbiA9IHIucG47CisKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKyAgICBzaGFyZWRfcHRyPFQ+IGxvY2soKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHNoYXJlZF9wdHI8VD4oICp0aGlzLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9ub3Rocm93X3RhZygpICk7CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBuLnVzZV9jb3VudCgpOworICAgIH0KKworICAgIGJvb2wgZXhwaXJlZCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4udXNlX2NvdW50KCkgPT0gMDsKKyAgICB9CisKKyAgICBib29sIF9lbXB0eSgpIGNvbnN0IC8vIGV4dGVuc2lvbiwgbm90IGluIHN0ZDo6d2Vha19wdHIKKyAgICB7CisgICAgICAgIHJldHVybiBwbi5lbXB0eSgpOworICAgIH0KKworICAgIHZvaWQgcmVzZXQoKSBCT09TVF9OT0VYQ0VQVCAvLyBuZXZlciB0aHJvd3MgaW4gMS4zMCsKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSgpLnN3YXAoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3dhcCh0aGlzX3R5cGUgJiBvdGhlcikgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHN0ZDo6c3dhcChweCwgb3RoZXIucHgpOworICAgICAgICBwbi5zd2FwKG90aGVyLnBuKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBZPgorICAgIHZvaWQgX2ludGVybmFsX2FsaWFzaW5nX2Fzc2lnbih3ZWFrX3B0cjxZPiBjb25zdCAmIHIsIGVsZW1lbnRfdHlwZSAqIHB4MikKKyAgICB7CisgICAgICAgIHB4ID0gcHgyOworICAgICAgICBwbiA9IHIucG47CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4gYm9vbCBvd25lcl9iZWZvcmUoIHdlYWtfcHRyPFk+IGNvbnN0ICYgcmhzICkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBwbiA8IHJocy5wbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBib29sIG93bmVyX2JlZm9yZSggc2hhcmVkX3B0cjxZPiBjb25zdCAmIHJocyApIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4gPCByaHMucG47CisgICAgfQorCisvLyBUYXN0ZWxlc3MgYXMgdGhpcyBtYXkgc2VlbSwgbWFraW5nIGFsbCBtZW1iZXJzIHB1YmxpYyBhbGxvd3MgbWVtYmVyIHRlbXBsYXRlcworLy8gdG8gd29yayBpbiB0aGUgYWJzZW5jZSBvZiBtZW1iZXIgdGVtcGxhdGUgZnJpZW5kcy4gKE1hdHRoZXcgTGFuZ3N0b24pCisKKyNpZm5kZWYgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKworcHJpdmF0ZToKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+IGZyaWVuZCBjbGFzcyB3ZWFrX3B0cjsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBmcmllbmQgY2xhc3Mgc2hhcmVkX3B0cjsKKworI2VuZGlmCisKKyAgICBlbGVtZW50X3R5cGUgKiBweDsgICAgICAgICAgICAvLyBjb250YWluZWQgcG9pbnRlcgorICAgIG5kbmJvb3N0OjpkZXRhaWw6OndlYWtfY291bnQgcG47IC8vIHJlZmVyZW5jZSBjb3VudGVyCisKK307ICAvLyB3ZWFrX3B0cgorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcjwod2Vha19wdHI8VD4gY29uc3QgJiBhLCB3ZWFrX3B0cjxVPiBjb25zdCAmIGIpIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIGEub3duZXJfYmVmb3JlKCBiICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgc3dhcCh3ZWFrX3B0cjxUPiAmIGEsIHdlYWtfcHRyPFQ+ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICBhLnN3YXAoYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfV0VBS19QVFJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODVjYjJiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcApAQCAtMCwwICsxLDE5NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc3RhdGljX2Fzc2VydCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLyoKKyBSZXZpc2lvbiBoaXN0b3J5OgorICAgMDIgQXVndXN0IDIwMDAKKyAgICAgIEluaXRpYWwgdmVyc2lvbi4KKyovCisKKyNpZm5kZWYgQk9PU1RfU1RBVElDX0FTU0VSVF9IUFAKKyNkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisvLworLy8gVGhpcyBpcyBob3JyaWJsZSwgYnV0IGl0IHNlZW1zIHRvIGJlIHRoZSBvbmx5IHdlIGNhbiBzaHV0IHVwIHRoZQorLy8gImFub255bW91cyB2YXJpYWRpYyBtYWNyb3Mgd2VyZSBpbnRyb2R1Y2VkIGluIEM5OSBbLVd2YXJpYWRpYy1tYWNyb3NdIgorLy8gd2FybmluZyB0aGF0IGdldCBzcGV3ZWQgb3V0IG90aGVyd2lzZSBpbiBub24tQysrMTEgbW9kZS4KKy8vCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjICBpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9NU0coIC4uLiApIHN0YXRpY19hc3NlcnQoX19WQV9BUkdTX18pCisjICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9NU0coIEIsIE1zZyApIEJPT1NUX1NUQVRJQ19BU1NFUlQoIEIgKQorIyAgZW5kaWYKKyNlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9NU0coIEIsIE1zZyApIEJPT1NUX1NUQVRJQ19BU1NFUlQoIEIgKQorI2VuZGlmCisKKyNpZmRlZiBfX0JPUkxBTkRDX18KKy8vCisvLyB3b3JrYXJvdW5kIGZvciBidWdneSBpbnRlZ3JhbC1jb25zdGFudCBleHByZXNzaW9uIHN1cHBvcnQ6CisjZGVmaW5lIEJPT1NUX0JVR0dZX0lOVEVHUkFMX0NPTlNUQU5UX0VYUFJFU1NJT05TCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA9PSAzKSAmJiAoKF9fR05VQ19NSU5PUl9fID09IDMpIHx8IChfX0dOVUNfTUlOT1JfXyA9PSA0KSkKKy8vIGdjYyAzLjMgYW5kIDMuNCBkb24ndCBwcm9kdWNlIGdvb2QgZXJyb3IgbWVzc2FnZXMgd2l0aCB0aGUgZGVmYXVsdCB2ZXJzaW9uOgorIyAgZGVmaW5lIEJPT1NUX1NBX0dDQ19XT1JLQVJPVU5ECisjZW5kaWYKKworLy8KKy8vIElmIHRoZSBjb21waWxlciBpc3N1ZXMgd2FybmluZ3MgYWJvdXQgb2xkIEMgc3R5bGUgY2FzdHMsCisvLyB0aGVuIGVuYWJsZSB0aGlzOgorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKF9fR05VQ19fID4gMykgfHwgKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01JTk9SX18gPj0gNCkpKQorIyAgaWZuZGVmIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUKCAuLi4gKSAoKF9fVkFfQVJHU19fKSA9PSAwID8gZmFsc2UgOiB0cnVlKQorIyAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUKCB4ICkgKCh4KSA9PSAwID8gZmFsc2UgOiB0cnVlKQorIyAgZW5kaWYKKyNlbHNlCisjICBpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9CT09MX0NBU1QoIC4uLiApIChib29sKShfX1ZBX0FSR1NfXykKKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCh4KSAoYm9vbCkoeCkKKyMgIGVuZGlmCisjZW5kaWYKKy8vCisvLyBJZiB0aGUgY29tcGlsZXIgd2FybnMgYWJvdXQgdW51c2VkIHR5cGVkZWZzIHRoZW4gZW5hYmxlIHRoaXM6CisvLworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoX19HTlVDX18gPiA0KSB8fCAoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+PSA3KSkpCisjICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9VTlVTRURfQVRUUklCVVRFIF9fYXR0cmlidXRlX18oKHVudXNlZCkpCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfVU5VU0VEX0FUVFJJQlVURQorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorIyAgaWZuZGVmIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIC4uLiApIHN0YXRpY19hc3NlcnQoX19WQV9BUkdTX18sICNfX1ZBX0FSR1NfXykKKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkgc3RhdGljX2Fzc2VydChCLCAjQikKKyMgIGVuZGlmCisjZWxzZQorCituYW1lc3BhY2UgbmRuYm9vc3R7CisKKy8vIEhQIGFDQyBjYW5ub3QgZGVhbCB3aXRoIG1pc3NpbmcgbmFtZXMgZm9yIHRlbXBsYXRlIHZhbHVlIHBhcmFtZXRlcnMKK3RlbXBsYXRlIDxib29sIHg+IHN0cnVjdCBTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU7CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8dHJ1ZT4geyBlbnVtIHsgdmFsdWUgPSAxIH07IH07CisKKy8vIEhQIGFDQyBjYW5ub3QgZGVhbCB3aXRoIG1pc3NpbmcgbmFtZXMgZm9yIHRlbXBsYXRlIHZhbHVlIHBhcmFtZXRlcnMKK3RlbXBsYXRlPGludCB4PiBzdHJ1Y3Qgc3RhdGljX2Fzc2VydF90ZXN0e307CisKK30KKworLy8KKy8vIEltcGxpY2l0IGluc3RhbnRpYXRpb24gcmVxdWlyZXMgdGhhdCBhbGwgbWVtYmVyIGRlY2xhcmF0aW9ucyBiZQorLy8gaW5zdGFudGlhdGVkLCBidXQgdGhhdCB0aGUgZGVmaW5pdGlvbnMgYXJlICpub3QqIGluc3RhbnRpYXRlZC4KKy8vCisvLyBJdCdzIG5vdCBwYXJ0aWN1bGFybHkgY2xlYXIgaG93IHRoaXMgYXBwbGllcyB0byBlbnVtJ3Mgb3IgdHlwZWRlZnM7CisvLyBib3RoIGFyZSBkZXNjcmliZWQgYXMgZGVjbGFyYXRpb25zIFs3LjEuM10gYW5kIFs3LjJdIGluIHRoZSBzdGFuZGFyZCwKKy8vIGhvd2V2ZXIgc29tZSBjb21waWxlcnMgdXNlICJkZWxheWVkIGV2YWx1YXRpb24iIG9mIG9uZSBvciBtb3JlIG9mCisvLyB0aGVzZSB3aGVuIGltcGxpY2l0bHkgaW5zdGFudGlhdGluZyB0ZW1wbGF0ZXMuICBXZSB1c2UgdHlwZWRlZiBkZWNsYXJhdGlvbnMKKy8vIGJ5IGRlZmF1bHQsIGJ1dCB0cnkgZGVmaW5pbmcgQk9PU1RfVVNFX0VOVU1fU1RBVElDX0FTU0VSVCBpZiB0aGUgZW51bQorLy8gdmVyc2lvbiBnZXRzIGJldHRlciByZXN1bHRzIGZyb20geW91ciBjb21waWxlci4uLgorLy8KKy8vIEltcGxlbWVudGF0aW9uOgorLy8gQm90aCBvZiB0aGVzZSB2ZXJzaW9ucyByZWx5IG9uIHNpemVvZihpbmNvbXBsZXRlX3R5cGUpIGdlbmVyYXRpbmcgYW4gZXJyb3IKKy8vIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgaW5jb21wbGV0ZSB0eXBlLiAgV2UgdXNlCisvLyAiU1RBVElDX0FTU0VSVElPTl9GQUlMVVJFIiBhcyB0aGUgdHlwZSBuYW1lIGhlcmUgdG8gZ2VuZXJhdGUKKy8vIGFuIGV5ZSBjYXRjaGluZyBlcnJvciBtZXNzYWdlLiAgVGhlIHJlc3VsdCBvZiB0aGUgc2l6ZW9mIGV4cHJlc3Npb24gaXMgZWl0aGVyCisvLyB1c2VkIGFzIGFuIGVudW0gaW5pdGlhbGlzZXIsIG9yIGFzIGEgdGVtcGxhdGUgYXJndW1lbnQgZGVwZW5kaW5nIHdoaWNoIHZlcnNpb24KKy8vIGlzIGluIHVzZS4uLgorLy8gTm90ZSB0aGF0IHRoZSBhcmd1bWVudCB0byB0aGUgYXNzZXJ0IGlzIGV4cGxpY2l0bHkgY2FzdCB0byBib29sIHVzaW5nIG9sZC0KKy8vIHN0eWxlIGNhc3RzOiB0b28gbWFueSBjb21waWxlcnMgY3VycmVudGx5IGhhdmUgcHJvYmxlbXMgd2l0aCBzdGF0aWNfY2FzdAorLy8gd2hlbiB1c2VkIGluc2lkZSBpbnRlZ3JhbCBjb25zdGFudCBleHByZXNzaW9ucy4KKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfQlVHR1lfSU5URUdSQUxfQ09OU1RBTlRfRVhQUkVTU0lPTlMpCisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTMwMCkKKy8vIF9fTElORV9fIG1hY3JvIGJyb2tlbiB3aGVuIC1aSSBpcyB1c2VkIHNlZSBRMTk5MDU3CisvLyBmb3J0dW5hdGVseSBNU1ZDIGlnbm9yZXMgZHVwbGljYXRlIHR5cGVkZWYncy4KKyNkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCggQiApIFwKKyAgIHR5cGVkZWYgOjpuZG5ib29zdDo6c3RhdGljX2Fzc2VydF90ZXN0PFwKKyAgICAgIHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IChib29sKSggQiApID4pXAorICAgICAgPiBib29zdF9zdGF0aWNfYXNzZXJ0X3R5cGVkZWZfCisjZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TKQorI2RlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkgXAorICAgdHlwZWRlZiA6Om5kbmJvb3N0OjpzdGF0aWNfYXNzZXJ0X3Rlc3Q8XAorICAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OlNUQVRJQ19BU1NFUlRJT05fRkFJTFVSRTwgQk9PU1RfU1RBVElDX0FTU0VSVF9CT09MX0NBU1QgKCBCICkgPik+XAorICAgICAgICAgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X3R5cGVkZWZfLCBfX0NPVU5URVJfXykKKyNlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykKKyNkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCguLi4pIFwKKyAgIHR5cGVkZWYgOjpuZG5ib29zdDo6c3RhdGljX2Fzc2VydF90ZXN0PFwKKyAgICAgIHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUIChfX1ZBX0FSR1NfXykgPik+XAorICAgICAgICAgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X3R5cGVkZWZfLCBfX0NPVU5URVJfXykKKyNlbGlmIChkZWZpbmVkKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OKSB8fCBkZWZpbmVkKEJPT1NUX1NBX0dDQ19XT1JLQVJPVU5EKSkgICYmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TKQorLy8gYWd1cnQgMTUvc2VwLzAyOiBhIHNwZWNpYWwgY2FyZSBpcyBuZWVkZWQgdG8gZm9yY2UgSW50ZWwgQysrIGlzc3VlIGFuIGVycm9yIAorLy8gaW5zdGVhZCBvZiB3YXJuaW5nIGluIGNhc2Ugb2YgZmFpbHVyZQorIyBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCggQiApIFwKKyAgICB0eXBlZGVmIGNoYXIgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X3R5cGVkZWZfLCBfX0xJTkVfXykgXAorICAgICAgICBbIDo6bmRuYm9vc3Q6OlNUQVRJQ19BU1NFUlRJT05fRkFJTFVSRTwgQk9PU1RfU1RBVElDX0FTU0VSVF9CT09MX0NBU1QoIEIgKSA+Ojp2YWx1ZSBdCisjZWxpZiAoZGVmaW5lZChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikgfHwgZGVmaW5lZChCT09TVF9TQV9HQ0NfV09SS0FST1VORCkpICAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MpCisvLyBhZ3VydCAxNS9zZXAvMDI6IGEgc3BlY2lhbCBjYXJlIGlzIG5lZWRlZCB0byBmb3JjZSBJbnRlbCBDKysgaXNzdWUgYW4gZXJyb3IgCisvLyBpbnN0ZWFkIG9mIHdhcm5pbmcgaW4gY2FzZSBvZiBmYWlsdXJlCisjIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKC4uLikgXAorICAgIHR5cGVkZWYgY2hhciBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfdHlwZWRlZl8sIF9fTElORV9fKSBcCisgICAgICAgIFsgOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCggX19WQV9BUkdTX18gKSA+Ojp2YWx1ZSBdCisjZWxpZiBkZWZpbmVkKF9fc2dpKQorLy8gc3BlY2lhbCB2ZXJzaW9uIGZvciBTR0kgTUlQU3BybyBjb21waWxlcgorI2RlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkgXAorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIFwKKyAgICAgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X3Rlc3RfLCBfX0xJTkVfXykgPSAoIEIgKSk7IFwKKyAgIHR5cGVkZWYgOjpuZG5ib29zdDo6c3RhdGljX2Fzc2VydF90ZXN0PFwKKyAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OlNUQVRJQ19BU1NFUlRJT05fRkFJTFVSRTwgXAorICAgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90ZXN0XywgX19MSU5FX18pID4pPlwKKyAgICAgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXywgX19MSU5FX18pCisjZWxpZiBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIDw9IDB4MzAwMykKKy8vIHNwZWNpYWwgdmVyc2lvbiBmb3IgQ29kZVdhcnJpb3IgPD0gOC54CisjZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIEIgKSBcCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCBcCisgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90ZXN0XywgX19MSU5FX18pID0gXAorICAgICAgIHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUKCBCICkgPikgKQorI2Vsc2UKKy8vIGdlbmVyaWMgdmVyc2lvbgorIyAgaWZuZGVmIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIC4uLiApIFwKKyAgICAgICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6c3RhdGljX2Fzc2VydF90ZXN0PFwKKyAgICAgICAgICAgIHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUKCBfX1ZBX0FSR1NfXyApID4pPlwKKyAgICAgICAgICAgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXywgX19MSU5FX18pIEJPT1NUX1NUQVRJQ19BU1NFUlRfVU5VU0VEX0FUVFJJQlVURQorIyAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIEIgKSBcCisgICAgICAgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OnN0YXRpY19hc3NlcnRfdGVzdDxcCisgICAgICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCggQiApID4pPlwKKyAgICAgICAgICAgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXywgX19MSU5FX18pIEJPT1NUX1NUQVRJQ19BU1NFUlRfVU5VU0VEX0FUVFJJQlVURQorIyAgZW5kaWYKKyNlbmRpZgorCisjZWxzZQorLy8gYWx0ZXJuYXRpdmUgZW51bSBiYXNlZCBpbXBsZW1lbnRhdGlvbjoKKyMgIGlmbmRlZiBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyMgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIC4uLiApIFwKKyAgICAgICAgIGVudW0geyBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfZW51bV8sIF9fTElORV9fKSBcCisgICAgICAgICAgICA9IHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IChib29sKSggX19WQV9BUkdTX18gKSA+KSB9CisjICBlbHNlCisjICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKEIpIFwKKyAgICAgICAgIGVudW0geyBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfZW51bV8sIF9fTElORV9fKSBcCisgICAgICAgICAgICA9IHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IChib29sKSggQiApID4pIH0KKyMgIGVuZGlmCisjZW5kaWYKKyNlbmRpZiAvLyBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQpCisKKyNlbmRpZiAvLyBCT09TVF9TVEFUSUNfQVNTRVJUX0hQUAorCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3Qvc3dhcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3N3YXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NWZlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3N3YXAuaHBwCkBAIC0wLDAgKzEsMTIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNyBKb3NlcGggR2F1dGVyaW4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfU1dBUF9IUFAKKyNkZWZpbmUgQk9PU1RfU1dBUF9IUFAKKworI2luY2x1ZGUgIm5kbmJvb3N0L3V0aWxpdHkvc3dhcC5ocHAiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RlYnVnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZWJ1Zy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkNWQzMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZWJ1Zy5ocHAKQEAgLTAsMCArMSwxMDEgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDYtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBwb3J0YWJsZSBkZWJ1ZyBpbnRlcmZhY2VzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0RFQlVHX0FQSV9IUFBfMTEyMDA2R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfREVCVUdfQVBJX0hQUF8xMTIwMDZHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jYWxsYmFjay5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jhc2ljX2NzdHJpbmcuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZWJ1ZyB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgY2hlY2sgaWYgcHJvZ3JhbSBpcyBydW5uaW5nIHVuZGVyIGRlYnVnZ2VyICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworYm9vbCBCT09TVF9URVNUX0RFQ0wgdW5kZXJfZGVidWdnZXIoKTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgIGNhdXNlIHByb2dyYW0gdG8gYnJlYWsgZXhlY3V0aW9uICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgaW4gZGVidWdnZXIgYXQgY2FsbCBwb2ludCAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordm9pZCBCT09TVF9URVNUX0RFQ0wgZGVidWdnZXJfYnJlYWsoKTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICBndWkgZGVidWdnZXIgc2V0dXAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdHJ1Y3QgZGJnX3N0YXJ0dXBfaW5mbyB7CisgICAgbG9uZyAgICAgICAgICAgICAgICAgICAgcGlkOworICAgIGJvb2wgICAgICAgICAgICAgICAgICAgIGJyZWFrX29yX2NvbnRpbnVlOworICAgIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIGJpbmFyeV9wYXRoOworICAgIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIGRpc3BsYXk7CisgICAgdW5pdF90ZXN0Ojpjb25zdF9zdHJpbmcgaW5pdF9kb25lX2xvY2s7Cit9OworCit0eXBlZGVmIHVuaXRfdGVzdDo6Y2FsbGJhY2sxPGRiZ19zdGFydHVwX2luZm8gY29uc3QmPiBkYmdfc3RhcnRlcjsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIGRlYnVnZ2VyIHNldHVwICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjaWYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPDEzMDApCisKK3N0ZDo6c3RyaW5nIEJPT1NUX1RFU1RfREVDTCBzZXRfZGVidWdnZXIoIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIGRiZ19pZCApOworCisjZWxzZSAKKworc3RkOjpzdHJpbmcgQk9PU1RfVEVTVF9ERUNMIHNldF9kZWJ1Z2dlciggdW5pdF90ZXN0Ojpjb25zdF9zdHJpbmcgZGJnX2lkLCBkYmdfc3RhcnRlciBzID0gZGJnX3N0YXJ0ZXIoKSApOworCisjZW5kaWYKKworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgYXR0YWNoIGRlYnVnZ2VyIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2Jvb2wgQk9PU1RfVEVTVF9ERUNMIGF0dGFjaF9kZWJ1Z2dlciggYm9vbCBicmVha19vcl9jb250aW51ZSA9IHRydWUgKTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgc3dpdGNoIG9uL29mZiBkZXRlY3QgbWVtb3J5IGxlYWtzIGZlYXR1cmUgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkIEJPT1NUX1RFU1RfREVDTCBkZXRlY3RfbWVtb3J5X2xlYWtzKCBib29sIG9uX29mZiApOworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICBjYXVzZSBwcm9ncmFtIHRvIGJyZWFrIGV4ZWN1dGlvbiBpbiAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICBkZWJ1Z2dlciBhdCBzcGVjaWZpYyBhbGxvY2F0aW9uIHBvaW50ICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkIEJPT1NUX1RFU1RfREVDTCBicmVha19tZW1vcnlfYWxsb2MoIGxvbmcgbWVtX2FsbG9jX29yZGVyX251bSApOworCit9IC8vIG5hbWVzcGFjZSBkZWJ1ZworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZGVidWdfY29uZmlnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZWJ1Z19jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YzIxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZGVidWdfY29uZmlnLmhwcApAQCAtMCwwICsxLDI0IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA2LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IHVzZXIncyBjb25maWcgZm9yIEJvb3N0LlRlc3QgZGVidWdnaW5nIHN1cHBvcnQKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfREVCVUdfQ09ORklHX0hQUF8xMTIwMDZHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9ERUJVR19DT05GSUdfSFBQXzExMjAwNkdFUgorCisvLyAnOycgc2VwYXJhdGVkIGxpc3Qgb2Ygc3VwcG9ydGVkIGRlYnVnZ2VycworLy8gI2RlZmluZSBCT09TVF9URVNUX0RCR19MSVNUIGdkYjtkYngKKworLy8gbWF4aW11bSBzaXplIG9mIC9wcm9jL3BpZC9zdGF0IGZpbGUKKy8vICNkZWZpbmUgQk9PU1RfVEVTVF9TVEFUX0xJTkVfTUFYCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNmFlNjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHAKQEAgLTAsMCArMSwxMDQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA2MzQ0MSAkCisvLworLy8gIERlc2NyaXB0aW9uIDogYXMgYSBjZW50cmFsIHBsYWNlIGZvciBnbG9iYWwgY29uZmlndXJhdGlvbiBzd2l0Y2hlcworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9DT05GSUdfSFBQXzA3MTg5NEdFUgorI2RlZmluZSBCT09TVF9URVNUX0NPTkZJR19IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gLy8gY29tcGlsZXJzIHdvcmthcm91bmRzCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU3MCkpIHx8IFwKKyAgICBCT09TVF9XT1JLQVJPVU5EKF9fSUJNQ1BQX18sIEJPT1NUX1RFU1RFRF9BVCg2MDApKSAgICAgfHwgXAorICAgIChkZWZpbmVkIF9fc2dpICYmIEJPT1NUX1dPUktBUk9VTkQoX0NPTVBJTEVSX1ZFUlNJT04sIEJPT1NUX1RFU1RFRF9BVCg3MzApKSkKKyMgIGRlZmluZSBCT09TVF9URVNUX1NISUZURURfTElORQorI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpIHx8IChkZWZpbmVkKF9fQk9STEFORENfXykgJiYgIWRlZmluZWQoQk9PU1RfRElTQUJMRV9XSU4zMikpCisjICBkZWZpbmUgQk9PU1RfVEVTVF9DQUxMX0RFQ0wgX19jZGVjbAorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9URVNUX0NBTExfREVDTCAvKiovCisjZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1NURF9MT0NBTEUpICYmICAgICAgICAgICAgXAorICAgICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMxMCkgICYmICAgXAorICAgICFkZWZpbmVkKF9fTVdFUktTX18pIAorIyAgZGVmaW5lIEJPT1NUX1RFU1RfVVNFX1NURF9MT0NBTEUgMQorI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPD0gMHg1NzApICAgICAgICAgICAgfHwgXAorICAgIEJPT1NUX1dPUktBUk9VTkQoIF9fQ09NT19fLCA8PSAweDQzMyApICAgICAgICAgICAgICB8fCBcCisgICAgQk9PU1RfV09SS0FST1VORCggX19JTlRFTF9DT01QSUxFUiwgPD0gODAwICkgICAgICAgIHx8IFwKKyAgICBkZWZpbmVkKF9fc2dpKSAmJiBfQ09NUElMRVJfVkVSU0lPTiA8PSA3MzAgICAgICAgICAgfHwgXAorICAgIEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgQk9PU1RfVEVTVEVEX0FUKDYwMCkpICB8fCBcCisgICAgZGVmaW5lZChfX0RFQ0NYWCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFwKKyAgICBkZWZpbmVkKF9fRE1DX18pCisjICBkZWZpbmUgQk9PU1RfVEVTVF9OT19QUk9URUNURURfVVNJTkcKKyNlbmRpZgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxNDAwKQorI2RlZmluZSBCT09TVF9URVNUX1BST1RFQ1RFRF9WSVJUVUFMIHZpcnR1YWwKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1RFU1RfUFJPVEVDVEVEX1ZJUlRVQUwKKyNlbmRpZgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAmJiBcCisgICAgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPDEzMTApICYmIFwKKyAgICAhQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgQk9PU1RfVEVTVEVEX0FUKDB4NTMwKSkKKyMgIGRlZmluZSBCT09TVF9URVNUX1NVUFBPUlRfSU5URVJBQ1RJT05fVEVTVElORyAxCisjZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmIGRlZmluZWQoQk9PU1RfQUxMX0RZTl9MSU5LKSAmJiAhZGVmaW5lZChCT09TVF9URVNUX0RZTl9MSU5LKQorIyAgZGVmaW5lIEJPT1NUX1RFU1RfRFlOX0xJTksKKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9URVNUX0lOQ0xVREVEKQorIyAgdW5kZWYgQk9PU1RfVEVTVF9EWU5fTElOSworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX1RFU1RfRFlOX0xJTkspCisjICBkZWZpbmUgQk9PU1RfVEVTVF9BTFRFUk5BVElWRV9JTklUX0FQSQorCisjICBpZmRlZiBCT09TVF9URVNUX1NPVVJDRQorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9ERUNMIEJPT1NUX1NZTUJPTF9FWFBPUlQKKyMgIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1RFU1RfREVDTCBCT09TVF9TWU1CT0xfSU1QT1JUCisjICBlbmRpZiAgLy8gQk9PU1RfVEVTVF9TT1VSQ0UKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfVEVTVF9ERUNMCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RFU1RfTUFJTikgJiYgZGVmaW5lZChCT09TVF9BVVRPX1RFU1RfTUFJTikKKyNkZWZpbmUgQk9PU1RfVEVTVF9NQUlOIEJPT1NUX0FVVE9fVEVTVF9NQUlOCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RFU1RfTUFJTikgJiYgZGVmaW5lZChCT09TVF9URVNUX01PRFVMRSkKKyNkZWZpbmUgQk9PU1RfVEVTVF9NQUlOIEJPT1NUX1RFU1RfTU9EVUxFCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfQ09ORklHX0hQUF8wNzE4OTRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDY3ZmIwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDQtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZW5hYmxlIHByZXZpb3NseSBzdXBwcmVzc2VkIHdhcm5pbmdzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmZGVmIEJPT1NUX01TVkMKKyMgcHJhZ21hIHdhcm5pbmcoZGVmYXVsdDogNDUxMSkgLy8gY29weSBjb25zdHJ1Y3RvciBjYW4ndCBub3QgYmUgZ2VuZXJhdGVkCisjIHByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6IDQ1MTIpIC8vIGFzc2lnbm1lbnQgb3BlcmF0b3IgY2FuJ3Qgbm90IGJlIGdlbmVyYXRlZAorIyBwcmFnbWEgd2FybmluZyhkZWZhdWx0OiA0MTAwKSAvLyB1bnJlZmVyZW5jZWQgZm9ybWFsIHBhcmFtZXRlciAKKyMgcHJhZ21hIHdhcm5pbmcoZGVmYXVsdDogNDk5NikgLy8gPHN5bWJvbD4gd2FzIGRlY2xhcmVkIGRlcHJlY2F0ZWQgCisjIHByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6IDQzNTUpIC8vICd0aGlzJyA6IHVzZWQgaW4gYmFzZSBtZW1iZXIgaW5pdGlhbGl6ZXIgbGlzdAorIyBwcmFnbWEgd2FybmluZyhkZWZhdWx0OiA0NzA2KSAvLyBhc3NpZ25tZW50IHdpdGhpbiBjb25kaXRpb25hbCBleHByZXNzaW9uCisjIHByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6IDQyNTEpIC8vIGNsYXNzICdBPFQ+JyBuZWVkcyB0byBoYXZlIGRsbC1pbnRlcmZhY2UgdG8gYmUgdXNlZCBieSBjbGllbnRzIG9mIGNsYXNzICdCJworIyBwcmFnbWEgd2FybmluZyhkZWZhdWx0OiA0MTI3KSAvLyBjb25kaXRpb25hbCBleHByZXNzaW9uIGlzIGNvbnN0YW50CisjIHByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6IDQyOTApIC8vIEMrKyBleGNlcHRpb24gc3BlY2lmaWNhdGlvbiBpZ25vcmVkIGV4Y2VwdCB0byAuLi4KKyMgcHJhZ21hIHdhcm5pbmcoZGVmYXVsdDogNDE4MCkgLy8gcXVhbGlmaWVyIGFwcGxpZWQgdG8gZnVuY3Rpb24gdHlwZSBoYXMgbm8gbWVhbmluZzsgaWdub3JlZAorIyBwcmFnbWEgd2FybmluZyhkZWZhdWx0OiA0Mjc1KSAvLyBub24gZGxsLWludGVyZmFjZSBjbGFzcyAuLi4gdXNlZCBhcyBiYXNlIGZvciBkbGwtaW50ZXJmYWNlIGNsYXNzIC4uLgorIyBwcmFnbWEgd2FybmluZyhkZWZhdWx0OiA0MjY3KSAvLyAndmFyJyA6IGNvbnZlcnNpb24gZnJvbSAnc2l6ZV90JyB0byAndHlwZScsIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YQorIyBwcmFnbWEgd2FybmluZyhkZWZhdWx0OiA0NTExKSAvLyAnY2xhc3MnIDogY29weSBjb25zdHJ1Y3RvciBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkCisjIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZGV0YWlsL2Z3ZF9kZWNsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGQyYTg3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHAKQEAgLTAsMCArMSw0OCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBjb250YWlucyBmb3J3YXJkIGVjbGFyYXRpb25zIGZvciBCb29zdC5UZXN0IGRhdGEgdHlwZXMKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfRldEX0RFQ0xfSFBQXzAxMTYwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX0ZXRF9ERUNMX0hQUF8wMTE2MDVHRVIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworY2xhc3MgIGV4ZWN1dGlvbl9tb25pdG9yOworY2xhc3MgIGV4ZWN1dGlvbl9leGNlcHRpb247CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCitjbGFzcyAgdGVzdF91bml0OworY2xhc3MgIHRlc3RfY2FzZTsKK2NsYXNzICB0ZXN0X3N1aXRlOworY2xhc3MgIG1hc3Rlcl90ZXN0X3N1aXRlX3Q7CisKK2NsYXNzICB0ZXN0X3RyZWVfdmlzaXRvcjsKK2NsYXNzICB0ZXN0X29ic2VydmVyOworCisvLyBzaW5nbGV0b25zCitjbGFzcyAgdW5pdF90ZXN0X21vbml0b3JfdDsKK2NsYXNzICB1bml0X3Rlc3RfbG9nX3Q7CisKK2NsYXNzICB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlcjsKK3N0cnVjdCBsb2dfZW50cnlfZGF0YTsKK3N0cnVjdCBsb2dfY2hlY2twb2ludF9kYXRhOworCitjbGFzcyBsYXp5X29zdHJlYW07CisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9GV0RfREVDTF9IUFBfMDExNjA1R0VSCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvZ2xvYmFsX3R5cGVkZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg3MzI3YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvZ2xvYmFsX3R5cGVkZWYuaHBwCkBAIC0wLDAgKzEsODggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogc29tZSB0cml2aWFsIGdsb2JhbCB0eXBlZGVmcworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9HTE9CQUxfVFlQRURFRl9IUFBfMDIxMDA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfR0xPQkFMX1RZUEVERUZfSFBQXzAyMTAwNUdFUgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jhc2ljX2NzdHJpbmcuaHBwPgorI2RlZmluZSBCT09TVF9URVNUX0woIHMgKSAgICAgICAgIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmNvbnN0X3N0cmluZyggcywgc2l6ZW9mKCBzICkgLSAxICkKKyNkZWZpbmUgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIHMgKSBCT09TVF9URVNUX0woIEJPT1NUX1NUUklOR0laRSggcyApICkKKyNkZWZpbmUgQk9PU1RfVEVTVF9FTVBUWV9TVFJJTkcgICBCT09TVF9URVNUX0woICIiICkKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyAgIGNvdW50ZXJfdDsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworZW51bSByZXBvcnRfbGV2ZWwgIHsgSU5WX1JFUE9SVF9MRVZFTCwgQ09ORklSTUFUSU9OX1JFUE9SVCwgU0hPUlRfUkVQT1JULCBERVRBSUxFRF9SRVBPUlQsIE5PX1JFUE9SVCB9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitlbnVtIG91dHB1dF9mb3JtYXQgeyBJTlZfT0YsIENMRiAvKiBjb21waWxlciBsb2cgZm9ybWF0ICovLCBYTUwgLyogWE1MICovIH07CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2VudW0gdGVzdF91bml0X3R5cGUgeyB0dXRfY2FzZSA9IDB4MDEsIHR1dF9zdWl0ZSA9IDB4MTAsIHR1dF9hbnkgPSAweDExIH07CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyAgIHRlc3RfdW5pdF9pZDsKKworY29uc3QgdGVzdF91bml0X2lkIElOVl9URVNUX1VOSVRfSUQgID0gMHhGRkZGRkZGRjsKK2NvbnN0IHRlc3RfdW5pdF9pZCBNQVhfVEVTVF9DQVNFX0lEICA9IDB4RkZGRkZGRkU7Citjb25zdCB0ZXN0X3VuaXRfaWQgTUlOX1RFU1RfQ0FTRV9JRCAgPSAweDAwMDEwMDAwOworY29uc3QgdGVzdF91bml0X2lkIE1BWF9URVNUX1NVSVRFX0lEID0gMHgwMDAwRkYwMDsKK2NvbnN0IHRlc3RfdW5pdF9pZCBNSU5fVEVTVF9TVUlURV9JRCA9IDB4MDAwMDAwMDE7CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSB1dF9kZXRhaWwgeworCitpbmxpbmUgdGVzdF91bml0X3R5cGUKK3Rlc3RfaWRfMl91bml0X3R5cGUoIHRlc3RfdW5pdF9pZCBpZCApCit7CisgICAgcmV0dXJuIChpZCAmIDB4RkZGRjAwMDApICE9IDAgPyB0dXRfY2FzZSA6IHR1dF9zdWl0ZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gaGVscGVyIHRlbXBsYXRlcyB0byBwcmV2ZW50IE9EUiB2aW9sYXRpb25zIAordGVtcGxhdGU8Y2xhc3MgVD4gCitzdHJ1Y3Qgc3RhdGljX2NvbnN0YW50IHsgCisgICAgc3RhdGljIFQgdmFsdWU7IAorfTsgCisKK3RlbXBsYXRlPGNsYXNzIFQ+IAorVCBzdGF0aWNfY29uc3RhbnQ8VD46OnZhbHVlOyAKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8gCisKK30gLy8gbmFtZXNwYWNlIHV0X2RldGFpbAorCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0dMT0JBTF9UWVBFREVGX0hQUF8wMjEwMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvbG9nX2xldmVsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvbG9nX2xldmVsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGU2OWY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9sb2dfbGV2ZWwuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogc2hhcmVkIGRlZmluaXRpb24gZm9yIHVuaXQgdGVzdCBsb2cgbGV2ZWxzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0xPR19MRVZFTF9IUFBfMDExNjA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfTE9HX0xFVkVMX0hQUF8wMTE2MDVHRVIKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgbG9nIGxldmVscyAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKy8vICBlYWNoIGxvZyBsZXZlbCBpbmNsdWRlcyBhbGwgc3Vic2VxdWVudCBoaWdoZXIgbG9naW5nIGxldmVscworZW51bSAgICAgICAgICAgIGxvZ19sZXZlbCB7CisgICAgaW52YWxpZF9sb2dfbGV2ZWwgICAgICAgID0gLTEsCisgICAgbG9nX3N1Y2Nlc3NmdWxfdGVzdHMgICAgID0gMCwKKyAgICBsb2dfdGVzdF91bml0cyAgICAgICAgICAgPSAxLAorICAgIGxvZ19tZXNzYWdlcyAgICAgICAgICAgICA9IDIsCisgICAgbG9nX3dhcm5pbmdzICAgICAgICAgICAgID0gMywKKyAgICBsb2dfYWxsX2Vycm9ycyAgICAgICAgICAgPSA0LCAvLyByZXBvcnRlZCBieSB1bml0IHRlc3QgbWFjcm9zCisgICAgbG9nX2NwcF9leGNlcHRpb25fZXJyb3JzID0gNSwgLy8gdW5jYXVnaHQgQysrIGV4Y2VwdGlvbnMKKyAgICBsb2dfc3lzdGVtX2Vycm9ycyAgICAgICAgPSA2LCAvLyBpbmNsdWRpbmcgdGltZW91dHMsIHNpZ25hbHMsIHRyYXBzCisgICAgbG9nX2ZhdGFsX2Vycm9ycyAgICAgICAgID0gNywgLy8gaW5jbHVkaW5nIHVuaXQgdGVzdCBtYWNyb3Mgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYXRhbCBzeXN0ZW0gZXJyb3JzCisgICAgbG9nX25vdGhpbmcgICAgICAgICAgICAgID0gOAorfTsKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0Cit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9MT0dfTEVWRUxfSFBQXzAxMTYwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDcxMjI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHAKQEAgLTAsMCArMSwzMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNC0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzdXBwcmVzcyBzb21lIHdhcm5pbmdzIAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZmRlZiBCT09TVF9NU1ZDCisjIHByYWdtYSB3YXJuaW5nKHB1c2gpCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ1MTEpIC8vIGNvcHkgY29uc3RydWN0b3IgY2FuJ3Qgbm90IGJlIGdlbmVyYXRlZAorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NTEyKSAvLyBhc3NpZ25tZW50IG9wZXJhdG9yIGNhbid0IG5vdCBiZSBnZW5lcmF0ZWQKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDEwMCkgLy8gdW5yZWZlcmVuY2VkIGZvcm1hbCBwYXJhbWV0ZXIgCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ5OTYpIC8vIDxzeW1ib2w+IHdhcyBkZWNsYXJlZCBkZXByZWNhdGVkIAorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MzU1KSAvLyAndGhpcycgOiB1c2VkIGluIGJhc2UgbWVtYmVyIGluaXRpYWxpemVyIGxpc3QKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDcwNikgLy8gYXNzaWdubWVudCB3aXRoaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbgorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MjUxKSAvLyBjbGFzcyAnQTxUPicgbmVlZHMgdG8gaGF2ZSBkbGwtaW50ZXJmYWNlIHRvIGJlIHVzZWQgYnkgY2xpZW50cyBvZiBjbGFzcyAnQicKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDEyNykgLy8gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudAorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MjkwKSAvLyBDKysgZXhjZXB0aW9uIHNwZWNpZmljYXRpb24gaWdub3JlZCBleGNlcHQgdG8gLi4uCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQxODApIC8vIHF1YWxpZmllciBhcHBsaWVkIHRvIGZ1bmN0aW9uIHR5cGUgaGFzIG5vIG1lYW5pbmc7IGlnbm9yZWQKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDI3NSkgLy8gbm9uIGRsbC1pbnRlcmZhY2UgY2xhc3MgLi4uIHVzZWQgYXMgYmFzZSBmb3IgZGxsLWludGVyZmFjZSBjbGFzcyAuLi4KKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDI2NykgLy8gJ3ZhcicgOiBjb252ZXJzaW9uIGZyb20gJ3NpemVfdCcgdG8gJ3R5cGUnLCBwb3NzaWJsZSBsb3NzIG9mIGRhdGEKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDUxMSkgLy8gJ2NsYXNzJyA6IGNvcHkgY29uc3RydWN0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZAorI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC91bml0X3Rlc3RfcGFyYW1ldGVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY0NjkyYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaHBwCkBAIC0wLDAgKzEsNjkgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogc3RvcmFnZSBmb3IgdW5pdCB0ZXN0IGZyYW1ld29yayBwYXJhbWV0ZXJzIGluZm9ybWF0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX1VOSVRfVEVTVF9QQVJBTUVURVJTX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9VTklUX1RFU1RfUEFSQU1FVEVSU19IUFBfMDcxODk0R0VSCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvbG9nX2xldmVsLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8aW9zZndkPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICBydW50aW1lX2NvbmZpZyAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgcnVudGltZV9jb25maWcgeworCitCT09TVF9URVNUX0RFQ0wgdm9pZCAgICAgICAgICAgICAgICAgICAgIGluaXQoIGludCYgYXJnYywgY2hhcioqIGFyZ3YgKTsKKworQk9PU1RfVEVTVF9ERUNMIHVuaXRfdGVzdDo6bG9nX2xldmVsICAgICBsb2dfbGV2ZWwoKTsKK0JPT1NUX1RFU1RfREVDTCBib29sICAgICAgICAgICAgICAgICAgICAgbm9fcmVzdWx0X2NvZGUoKTsKK0JPT1NUX1RFU1RfREVDTCB1bml0X3Rlc3Q6OnJlcG9ydF9sZXZlbCAgcmVwb3J0X2xldmVsKCk7CitCT09TVF9URVNUX0RFQ0wgY29uc3Rfc3RyaW5nICAgICAgICAgICAgIHRlc3RfdG9fcnVuKCk7CitCT09TVF9URVNUX0RFQ0wgY29uc3Rfc3RyaW5nICAgICAgICAgICAgIGJyZWFrX2V4ZWNfcGF0aCgpOworQk9PU1RfVEVTVF9ERUNMIGJvb2wgICAgICAgICAgICAgICAgICAgICBzYXZlX3BhdHRlcm4oKTsKK0JPT1NUX1RFU1RfREVDTCBib29sICAgICAgICAgICAgICAgICAgICAgc2hvd19idWlsZF9pbmZvKCk7CitCT09TVF9URVNUX0RFQ0wgYm9vbCAgICAgICAgICAgICAgICAgICAgIHNob3dfcHJvZ3Jlc3MoKTsKK0JPT1NUX1RFU1RfREVDTCBib29sICAgICAgICAgICAgICAgICAgICAgY2F0Y2hfc3lzX2Vycm9ycygpOworQk9PU1RfVEVTVF9ERUNMIGJvb2wgICAgICAgICAgICAgICAgICAgICBhdXRvX3N0YXJ0X2RiZygpOworQk9PU1RfVEVTVF9ERUNMIGJvb2wgICAgICAgICAgICAgICAgICAgICB1c2VfYWx0X3N0YWNrKCk7CitCT09TVF9URVNUX0RFQ0wgYm9vbCAgICAgICAgICAgICAgICAgICAgIGRldGVjdF9mcF9leGNlcHRpb25zKCk7CitCT09TVF9URVNUX0RFQ0wgb3V0cHV0X2Zvcm1hdCAgICAgICAgICAgIHJlcG9ydF9mb3JtYXQoKTsKK0JPT1NUX1RFU1RfREVDTCBvdXRwdXRfZm9ybWF0ICAgICAgICAgICAgbG9nX2Zvcm1hdCgpOworQk9PU1RfVEVTVF9ERUNMIHN0ZDo6b3N0cmVhbSogICAgICAgICAgICByZXBvcnRfc2luaygpOworQk9PU1RfVEVTVF9ERUNMIHN0ZDo6b3N0cmVhbSogICAgICAgICAgICBsb2dfc2luaygpOworQk9PU1RfVEVTVF9ERUNMIGxvbmcgICAgICAgICAgICAgICAgICAgICBkZXRlY3RfbWVtb3J5X2xlYWtzKCk7CitCT09TVF9URVNUX0RFQ0wgaW50ICAgICAgICAgICAgICAgICAgICAgIHJhbmRvbV9zZWVkKCk7CisKK30gLy8gbmFtZXNwYWNlIHJ1bnRpbWVfY29uZmlnCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfVU5JVF9URVNUX1BBUkFNRVRFUlNfSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2RldGFpbC93b3JrYXJvdW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU0OTcyYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHAKQEAgLTAsMCArMSw2NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBjb250YWlucyBtaWNzLiB3b3JrYXJvdW5kcyAKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfV09SS0FST1VORF9IUFBfMDIxMDA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfV09SS0FST1VORF9IUFBfMDIxMDA1R0VSCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4gLy8gY29tcGlsZXJzIHdvcmthcm91bmRzIGFuZCBzdGQ6OnB0cmRpZmZfdAorCisvLyBTVEwKKyNpbmNsdWRlIDxpdGVyYXRvcj4gICAgIC8vIGZvciBzdGQ6OmRpc3RhbmNlCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworI2lmZGVmIEJPT1NUX05PX1NURF9ESVNUQU5DRQordGVtcGxhdGUgPGNsYXNzIFQ+CitzdGQ6OnB0cmRpZmZfdCBkaXN0YW5jZSggVCBjb25zdCYgeF8sIFQgY29uc3QmIHlfICkKK3sgCisgICAgc3RkOjpwdHJkaWZmX3QgcmVzID0gMDsKKworICAgIHN0ZDo6ZGlzdGFuY2UoIHhfLCB5XywgcmVzICk7CisKKyAgICByZXR1cm4gcmVzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZWxzZQordXNpbmcgc3RkOjpkaXN0YW5jZTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW5saW5lIHZvaWQgaWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKGNvbnN0IFQmKSB7fQorCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK25hbWVzcGFjZSB1bml0X3Rlc3RfZnJhbWV3b3JrID0gdW5pdF90ZXN0OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfV09SS0FST1VORF9IUFBfMDIxMDA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZXhlY3V0aW9uX21vbml0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDc1Njg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcApAQCAtMCwwICsxLDI2MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwMS0yMDA4LgorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMjAwMS4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBhYnN0cmFjdCBtb25pdG9yIGludGVyZmFjZXMgYW5kIGltcGxlbWVudHMgZXhlY3V0aW9uIGV4Y2VwdGlvbgorLy8gIFRoZSBvcmlnaW5hbCBCb29zdCBUZXN0IExpYnJhcnkgaW5jbHVkZWQgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIGZ1bmN0aW9uCisvLyAgbmFtZWQgY2F0Y2hfZXhjZXB0aW9ucygpIHdoaWNoIGNhdWdodCBvdGhlcndpc2UgdW5jYXVnaHQgQysrIGV4Y2VwdGlvbnMuCisvLyAgSXQgd2FzIGRlcml2ZWQgZnJvbSBhbiBleGlzdGluZyB0ZXN0IGZyYW1ld29yayBieSBCZW1hbiBEYXdlcy4gIFRoZQorLy8gIGludGVudCB3YXMgdG8gZXhwYW5kIGxhdGVyIHRvIGNhdGNoIG90aGVyIGRldGVjdGFibGUgYnV0IHBsYXRmb3JtIGRlcGVuZGVudAorLy8gIGVycm9yIGV2ZW50cyBsaWtlIFVuaXggc2lnbmFscyBvciBXaW5kb3dzIHN0cnVjdHVyZWQgQyBleGNlcHRpb25zLgorLy8KKy8vICBSZXF1ZXN0cyBmcm9tIGVhcmx5IGFkb3B0ZXJzIG9mIHRoZSBCb29zdCBUZXN0IExpYnJhcnkgaW5jbHVkZWQKKy8vICBjb25maWd1cmFibGUgbGV2ZWxzIG9mIGVycm9yIG1lc3NhZ2UgZGV0YWlsLCBlbGltaW5hdGlvbiBvZiB0ZW1wbGF0ZXMsCisvLyAgc2VwYXJhdGlvbiBvZiBlcnJvciByZXBvcnRpbmcsIGFuZCBtYWtpbmcgdGhlIGNhdGNoX2V4Y2VwdGlvbnMoKSBmYWNpbGl0aWVzCisvLyAgYXZhaWxhYmxlIGFzIGEgcHVibGljIGludGVyZmFjZS4gIFN1cHBvcnQgZm9yIHVuaXQgdGVzdGluZyBhbHNvIHN0cmV0Y2hlZAorLy8gIHRoZSBmdW5jdGlvbiBiYXNlZCBkZXNpZ24uICBJbXBsZW1lbnRhdGlvbiB3aXRoaW4gdGhlIGhlYWRlciBiZWNhbWUgbGVzcworLy8gIGF0dHJhY3RpdmUgZHVlIHRvIHRoZSBuZWVkIHRvIGluY2x1ZGUgbWFueSBodWdlIHN5c3RlbSBkZXBlbmRlbnQgaGVhZGVycywKKy8vICBhbHRob3VnaCBzdGlsbCBwcmVmZXJhYmxlIGluIGNlcnRhaW4gY2FzZXMuCisvLworLy8gIEFsbCB0aG9zZSBpc3N1ZXMgaGF2ZSBiZWVuIGFkZHJlc3NlZCBieSBpbnRyb2R1Y2luZyB0aGUgY2xhc3MtYmFzZWQKKy8vICBkZXNpZ24gcHJlc2VudGVkIGhlcmUuCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0VYRUNVVElPTl9NT05JVE9SX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9FWEVDVVRJT05fTU9OSVRPUl9IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZndkX2RlY2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2FsbGJhY2suaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2xhc3NfcHJvcGVydGllcy5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3Qvc2NvcGVkX3B0ci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc2NvcGVkX2FycmF5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkbGliLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICBkZXRhaWw6OnRyYW5zbGF0ZV9leGNlcHRpb25fYmFzZSAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIHRyYW5zbGF0ZV9leGNlcHRpb25fYmFzZSB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICB0cmFuc2xhdGVfZXhjZXB0aW9uX2Jhc2UoIG5kbmJvb3N0OjpzY29wZWRfcHRyPHRyYW5zbGF0ZV9leGNlcHRpb25fYmFzZT4mIG5leHQgKQorICAgIHsKKyAgICAgICAgbmV4dC5zd2FwKCBtX25leHQgKTsKKyAgICB9CisKKyAgICAvLyBEZXN0cnVjdG9yCisgICAgdmlydHVhbCAgICAgfnRyYW5zbGF0ZV9leGNlcHRpb25fYmFzZSgpIHt9CisKKyAgICB2aXJ0dWFsIGludCBvcGVyYXRvcigpKCB1bml0X3Rlc3Q6OmNhbGxiYWNrMDxpbnQ+IGNvbnN0JiBGICkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgbmRuYm9vc3Q6OnNjb3BlZF9wdHI8dHJhbnNsYXRlX2V4Y2VwdGlvbl9iYXNlPiBtX25leHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICBleGVjdXRpb25fZXhjZXB0aW9uICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworICAgIAorLy8gIGRlc2lnbiByYXRpb25hbGU6IGZlYXIgb2YgYmVpbmcgb3V0IChvciBuZWFybHkgb3V0KSBvZiBtZW1vcnkuCisgICAgCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgZXhlY3V0aW9uX2V4Y2VwdGlvbiB7CisgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5pdF90ZXN0Ojpjb25zdF9zdHJpbmcgY29uc3Rfc3RyaW5nOworcHVibGljOgorICAgIGVudW0gZXJyb3JfY29kZSB7CisgICAgICAgIC8vICBUaGVzZSB2YWx1ZXMgYXJlIHNvbWV0aW1lcyB1c2VkIGFzIHByb2dyYW0gcmV0dXJuIGNvZGVzLgorICAgICAgICAvLyAgVGhlIHBhcnRpY3VsYXIgdmFsdWVzIGhhdmUgYmVlbiBjaG9zZW4gdG8gYXZvaWQgY29uZmxpY3RzIHdpdGgKKyAgICAgICAgLy8gIGNvbW1vbmx5IHVzZWQgcHJvZ3JhbSByZXR1cm4gY29kZXM6IHZhbHVlcyA8IDEwMCBhcmUgb2Z0ZW4gdXNlcgorICAgICAgICAvLyAgYXNzaWduZWQsIHZhbHVlcyA+IDI1NSBhcmUgc29tZXRpbWVzIHVzZWQgdG8gcmVwb3J0IHN5c3RlbSBlcnJvcnMuCisgICAgICAgIC8vICBHYXBzIGluIHZhbHVlcyBhbGxvdyBmb3Igb3JkZXJseSBleHBhbnNpb24uCisgICAgICAgIAorICAgICAgICBub19lcnJvciAgICAgICAgICAgICAgID0gMCwgICAvLyBmb3IgY29tcGxldGVuZXNzIG9ubHk7IG5ldmVyIHJldHVybmVkCisgICAgICAgIHVzZXJfZXJyb3IgICAgICAgICAgICAgPSAyMDAsIC8vIHVzZXIgcmVwb3J0ZWQgbm9uLWZhdGFsIGVycm9yCisgICAgICAgIGNwcF9leGNlcHRpb25fZXJyb3IgICAgPSAyMDUsIC8vIHNlZSBub3RlICgxKSBiZWxvdworICAgICAgICBzeXN0ZW1fZXJyb3IgICAgICAgICAgID0gMjEwLCAvLyBzZWUgbm90ZSAoMikgYmVsb3cKKyAgICAgICAgdGltZW91dF9lcnJvciAgICAgICAgICA9IDIxNSwgLy8gb25seSBkZXRlY3RhYmxlIG9uIGNlcnRhaW4gcGxhdGZvcm1zCisgICAgICAgIHVzZXJfZmF0YWxfZXJyb3IgICAgICAgPSAyMjAsIC8vIHVzZXIgcmVwb3J0ZWQgZmF0YWwgZXJyb3IKKyAgICAgICAgc3lzdGVtX2ZhdGFsX2Vycm9yICAgICA9IDIyNSAgLy8gc2VlIG5vdGUgKDIpIGJlbG93CisgICAgICAgIAorICAgICAgICAvLyAgTm90ZSAxOiBPbmx5IHVuY2F1Z2h0IEMrKyBleGNlcHRpb25zIGFyZSB0cmVhdGVkIGFzIGVycm9ycy4KKyAgICAgICAgLy8gIElmIHRoZSBhcHBsaWNhdGlvbiBjYXRjaGVzIGEgQysrIGV4Y2VwdGlvbiwgaXQgd2lsbCBuZXZlciByZWFjaAorICAgICAgICAvLyAgdGhlIGV4ZWN1dGlvbl9tb25pdG9yLgorICAgICAgICAKKyAgICAgICAgLy8gIE5vdGUgMjogVGhlc2UgZXJyb3JzIGluY2x1ZGUgVW5peCBzaWduYWxzIGFuZCBXaW5kb3dzIHN0cnVjdHVyZWQKKyAgICAgICAgLy8gIGV4Y2VwdGlvbnMuICBUaGV5IGFyZSBvZnRlbiBpbml0aWF0ZWQgYnkgaGFyZHdhcmUgdHJhcHMuCisgICAgICAgIC8vCisgICAgICAgIC8vICBUaGUgaW1wbGVtZW50YXRpb24gZGVjaWRlcyB3aGF0IGlzIGEgZmF0YWxfc3lzdGVtX2V4Y2VwdGlvbiBhbmQgd2hhdCBpcworICAgICAgICAvLyAganVzdCBhIHN5c3RlbV9leGNlcHRpb24uICBGYXRhbCBlcnJvcnMgYXJlIHNvIGxpa2VseSB0byBoYXZlIGNvcnJ1cHRlZAorICAgICAgICAvLyAgbWFjaGluZSBzdGF0ZSAobGlrZSBhIHN0YWNrIG92ZXJmbG93IG9yIGFkZHJlc3NpbmcgZXhjZXB0aW9uKSB0aGF0IGl0CisgICAgICAgIC8vICBpcyB1bnJlYXNvbmFibGUgdG8gY29udGludWUgZXhlY3V0aW9uLgorICAgIH07CisgICAgCisgICAgc3RydWN0IEJPT1NUX1RFU1RfREVDTCBsb2NhdGlvbiB7CisgICAgICAgIGV4cGxpY2l0ICAgIGxvY2F0aW9uKCBjaGFyIGNvbnN0KiBmaWxlX25hbWUgPSAwLCBzaXplX3QgbGluZV9udW0gPSAwLCBjaGFyIGNvbnN0KiBmdW5jID0gMCApOworCisgICAgICAgIGNvbnN0X3N0cmluZyAgICBtX2ZpbGVfbmFtZTsKKyAgICAgICAgc2l6ZV90ICAgICAgICAgIG1fbGluZV9udW07CisgICAgICAgIGNvbnN0X3N0cmluZyAgICBtX2Z1bmN0aW9uOworICAgIH07CisKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4ZWN1dGlvbl9leGNlcHRpb24oIGVycm9yX2NvZGUgZWNfLCBjb25zdF9zdHJpbmcgd2hhdF9tc2dfLCBsb2NhdGlvbiBjb25zdCYgbG9jYXRpb25fICk7IC8vIG1heCBsZW5ndGggMjU2IGluYyAnXDAnCisKKyAgICAvLyBBY2Nlc3MgbWV0aG9kcworICAgIGVycm9yX2NvZGUgICAgICBjb2RlKCkgY29uc3QgICAgeyByZXR1cm4gbV9lcnJvcl9jb2RlOyB9CisgICAgY29uc3Rfc3RyaW5nICAgIHdoYXQoKSBjb25zdCAgICB7IHJldHVybiBtX3doYXQ7IH0KKyAgICBsb2NhdGlvbiBjb25zdCYgd2hlcmUoKSBjb25zdCAgIHsgcmV0dXJuIG1fbG9jYXRpb247IH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBlcnJvcl9jb2RlICAgICAgbV9lcnJvcl9jb2RlOworICAgIGNvbnN0X3N0cmluZyAgICBtX3doYXQ7CisgICAgbG9jYXRpb24gICAgICAgIG1fbG9jYXRpb247Cit9OyAvLyBleGVjdXRpb25fZXhjZXB0aW9uCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIGV4ZWN1dGlvbl9tb25pdG9yICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIGV4ZWN1dGlvbl9tb25pdG9yIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4ZWN1dGlvbl9tb25pdG9yKCkKKyAgICA6IHBfY2F0Y2hfc3lzdGVtX2Vycm9ycyggdHJ1ZSApCisgICAgLCBwX2F1dG9fc3RhcnRfZGJnKCBmYWxzZSApCisgICAgLCBwX3RpbWVvdXQoIDAgKQorICAgICwgcF91c2VfYWx0X3N0YWNrKCB0cnVlICkKKyAgICAsIHBfZGV0ZWN0X2ZwX2V4Y2VwdGlvbnMoIGZhbHNlICkKKyAgICB7fQorCisgICAgLy8gUHVibGljIHByb3BlcnRpZXMKKyAgICAKKyAgICAvLyAgVGhlIHBfY2F0Y2hfc3lzdGVtX2Vycm9ycyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIG1vbml0b3Igc2hvdWxkIAorICAgIC8vICB0cnkgdG8gY2F0Y2ggc3lzdGVtIGVycm9ycy9leGNlcHRpb25zIHRoYXQgd291bGQgY2F1c2UgcHJvZ3JhbSB0byBjcmFzaCAKKyAgICAvLyAgaW4gcmVndWxhciBjYXNlCisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8Ym9vbD4gcF9jYXRjaF9zeXN0ZW1fZXJyb3JzOyAKKyAgICAvLyAgVGhlIHBfYXV0b19zdGFydF9kYmcgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBtb25pdG9yIHNob3VsZCAKKyAgICAvLyAgdHJ5IHRvIGF0dGFjaCBkZWJ1Z2dlciBpbiBjYXNlIG9mIGNhdWdodCBzeXN0ZW0gZXJyb3IKKyAgICB1bml0X3Rlc3Q6OnJlYWR3cml0ZV9wcm9wZXJ0eTxib29sPiBwX2F1dG9fc3RhcnRfZGJnOworICAgIC8vICBUaGUgcF90aW1lb3V0IHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHNlY29uZHMgdGhhdCBlbGFwc2UgYmVmb3JlCisgICAgLy8gIGEgdGltZXJfZXJyb3Igb2NjdXJzLiAgTWF5IGJlIGlnbm9yZWQgb24gc29tZSBwbGF0Zm9ybXMuCisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8aW50PiAgcF90aW1lb3V0OworICAgIC8vICBUaGUgcF91c2VfYWx0X3N0YWNrIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hldGhlciB0aGUgbW9uaXRvciBzaG91bGQKKyAgICAvLyAgdXNlIGFsdGVybmF0aXZlIHN0YWNrIGZvciB0aGUgc2lnbmFsIGNhdGNoaW5nCisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8Ym9vbD4gcF91c2VfYWx0X3N0YWNrOworICAgIC8vICBUaGUgcF9kZXRlY3RfZnBfZXhjZXB0aW9ucyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIG1vbml0b3Igc2hvdWxkCisgICAgLy8gIHRyeSB0byBkZXRlY3QgaGFyZHdhcmUgZmxvYXRpbmcgcG9pbnQgZXhjZXB0aW9ucworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PGJvb2w+IHBfZGV0ZWN0X2ZwX2V4Y2VwdGlvbnM7CisKKyAgICBpbnQgICAgICAgICBleGVjdXRlKCB1bml0X3Rlc3Q6OmNhbGxiYWNrMDxpbnQ+IGNvbnN0JiBGICk7IAorICAgIC8vICBSZXR1cm5zOiAgVmFsdWUgcmV0dXJuZWQgYnkgZnVuY3Rpb24gY2FsbCBGKCkuCisgICAgLy8KKyAgICAvLyAgRWZmZWN0czogIENhbGxzIGV4ZWN1dGVzIHN1cHBsaWVkIGZ1bmN0aW9uIEYgaW5zaWRlIGEgdHJ5L2NhdGNoIGJsb2NrIHdoaWNoIGFsc28gbWF5CisgICAgLy8gIGluY2x1ZGUgb3RoZXIgdW5zcGVjaWZpZWQgcGxhdGZvcm0gZGVwZW5kZW50IGVycm9yIGRldGVjdGlvbiBjb2RlLgorICAgIC8vCisgICAgLy8gIFRocm93czogZXhlY3V0aW9uX2V4Y2VwdGlvbiBvbiBhbiB1bmNhdWdodCBDKysgZXhjZXB0aW9uLAorICAgIC8vICBhIGhhcmR3YXJlIG9yIHNvZnR3YXJlIHNpZ25hbCwgdHJhcCwgb3Igb3RoZXIgZXhjZXB0aW9uLgorICAgIC8vCisgICAgLy8gIE5vdGU6IGV4ZWN1dGUoKSBkb2Vzbid0IGNvbnNpZGVyIGl0IGFuIGVycm9yIGZvciBGIHRvIHJldHVybiBhIG5vbi16ZXJvIHZhbHVlLgorICAgIAorICAgIC8vIHJlZ2lzdGVyIGN1c3RvbSAodXNlciBzdXBwbGllZCkgZXhjZXB0aW9uIHRyYW5zbGF0b3IKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFeGNlcHRpb24sIHR5cGVuYW1lIEV4Y2VwdGlvblRyYW5zbGF0b3I+CisgICAgdm9pZCAgICAgICAgcmVnaXN0ZXJfZXhjZXB0aW9uX3RyYW5zbGF0b3IoIEV4Y2VwdGlvblRyYW5zbGF0b3IgY29uc3QmIHRyLCBuZG5ib29zdDo6dHlwZTxFeGNlcHRpb24+KiA9IDAgKTsKKworcHJpdmF0ZToKKyAgICAvLyBpbXBsZW1lbnRhdGlvbiBoZWxwZXJzCisgICAgaW50ICAgICAgICAgY2F0Y2hfc2lnbmFscyggdW5pdF90ZXN0OjpjYWxsYmFjazA8aW50PiBjb25zdCYgRiApOworCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgbmRuYm9vc3Q6OnNjb3BlZF9wdHI8ZGV0YWlsOjp0cmFuc2xhdGVfZXhjZXB0aW9uX2Jhc2U+IG1fY3VzdG9tX3RyYW5zbGF0b3JzOworICAgIG5kbmJvb3N0OjpzY29wZWRfYXJyYXk8Y2hhcj4gICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FsdF9zdGFjazsKK307IC8vIGV4ZWN1dGlvbl9tb25pdG9yCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICBkZXRhaWw6OnRyYW5zbGF0ZV9leGNlcHRpb24gICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIEV4Y2VwdGlvbiwgdHlwZW5hbWUgRXhjZXB0aW9uVHJhbnNsYXRvcj4KK2NsYXNzIHRyYW5zbGF0ZV9leGNlcHRpb24gOiBwdWJsaWMgdHJhbnNsYXRlX2V4Y2VwdGlvbl9iYXNlCit7CisgICAgdHlwZWRlZiBuZG5ib29zdDo6c2NvcGVkX3B0cjx0cmFuc2xhdGVfZXhjZXB0aW9uX2Jhc2U+IGJhc2VfcHRyOworcHVibGljOgorICAgIGV4cGxpY2l0ICAgIHRyYW5zbGF0ZV9leGNlcHRpb24oIEV4Y2VwdGlvblRyYW5zbGF0b3IgY29uc3QmIHRyLCBiYXNlX3B0ciYgbmV4dCApCisgICAgOiB0cmFuc2xhdGVfZXhjZXB0aW9uX2Jhc2UoIG5leHQgKSwgbV90cmFuc2xhdG9yKCB0ciApIHt9CisKKyAgICBpbnQgb3BlcmF0b3IoKSggdW5pdF90ZXN0OjpjYWxsYmFjazA8aW50PiBjb25zdCYgRiApCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIG1fbmV4dCA/ICgqbV9uZXh0KSggRiApIDogRigpOworICAgICAgICB9IGNhdGNoKCBFeGNlcHRpb24gY29uc3QmIGUgKSB7CisgICAgICAgICAgICBtX3RyYW5zbGF0b3IoIGUgKTsKKyAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6ZXhpdF9leGNlcHRpb25fZmFpbHVyZTsKKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBFeGNlcHRpb25UcmFuc2xhdG9yIG1fdHJhbnNsYXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit0ZW1wbGF0ZTx0eXBlbmFtZSBFeGNlcHRpb24sIHR5cGVuYW1lIEV4Y2VwdGlvblRyYW5zbGF0b3I+Cit2b2lkCitleGVjdXRpb25fbW9uaXRvcjo6cmVnaXN0ZXJfZXhjZXB0aW9uX3RyYW5zbGF0b3IoIEV4Y2VwdGlvblRyYW5zbGF0b3IgY29uc3QmIHRyLCBuZG5ib29zdDo6dHlwZTxFeGNlcHRpb24+KiApCit7CisgICAgbV9jdXN0b21fdHJhbnNsYXRvcnMucmVzZXQoIAorICAgICAgICBuZXcgZGV0YWlsOjp0cmFuc2xhdGVfZXhjZXB0aW9uPEV4Y2VwdGlvbixFeGNlcHRpb25UcmFuc2xhdG9yPiggdHIsbV9jdXN0b21fdHJhbnNsYXRvcnMgKSApOworfQorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICBleGVjdXRpb25fYWJvcnRlZCAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0cnVjdCBleGVjdXRpb25fYWJvcnRlZCB7fTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgc3lzdGVtX2Vycm9yICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBzeXN0ZW1fZXJyb3IgeworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9yCisgICAgZXhwbGljaXQgICAgc3lzdGVtX2Vycm9yKCBjaGFyIGNvbnN0KiBleHAgKTsKKworICAgIHVuaXRfdGVzdDo6cmVhZG9ubHlfcHJvcGVydHk8bG9uZz4gICAgICAgICAgcF9lcnJubzsgCisgICAgdW5pdF90ZXN0OjpyZWFkb25seV9wcm9wZXJ0eTxjaGFyIGNvbnN0Kj4gICBwX2ZhaWxlZF9leHA7IAorfTsKKworI2RlZmluZSBCT09TVF9URVNUX1NZU19BU1NFUlQoIGV4cCApIGlmKCAoZXhwKSApIDsgZWxzZSB0aHJvdyA6Om5kbmJvb3N0OjpzeXN0ZW1fZXJyb3IoIEJPT1NUX1NUUklOR0laRSggZXhwICkgKQorCit9ICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2Zsb2F0aW5nX3BvaW50X2NvbXBhcmlzb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2Zsb2F0aW5nX3BvaW50X2NvbXBhcmlzb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMWYyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZmxvYXRpbmdfcG9pbnRfY29tcGFyaXNvbi5ocHAKQEAgLTAsMCArMSwyODYgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBhbGdvaXJ0aG1zIGZvciBjb21wYXJpbmcgMiBmbG9hdGluZyBwb2ludCB2YWx1ZXMKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfRkxPQVRJTkdfUE9JTlRfQ09NUEFSSVNPTl9IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfRkxPQVRJTkdfUE9JTlRfQ09NUEFSSVNPTl9IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3ByZWRpY2F0ZV9yZXN1bHQuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+ICAvLyBmb3Igc3RkOjpudW1lcmljX2xpbWl0cworI2luY2x1ZGUgPG5kbmJvb3N0L251bWVyaWMvY29udmVyc2lvbi9jb252ZXJzaW9uX3RyYWl0cy5ocHA+IC8vIGZvciBudW1lcmljOjpjb252ZXJzaW9uX3RyYWl0cworI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdGVzdF90b29scyB7CisKK3VzaW5nIHVuaXRfdGVzdDo6cmVhZG9ubHlfcHJvcGVydHk7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgZmxvYXRpbmdfcG9pbnRfY29tcGFyaXNvbl90eXBlICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworZW51bSBmbG9hdGluZ19wb2ludF9jb21wYXJpc29uX3R5cGUgeworICAgIEZQQ19TVFJPTkcsIC8vICJWZXJ5IGNsb3NlIiAgIC0gZXF1YXRpb24gMScgaW4gZG9jcywgdGhlIGRlZmF1bHQKKyAgICBGUENfV0VBSyAgICAvLyAiQ2xvc2UgZW5vdWdoIiAtIGVxdWF0aW9uIDInIGluIGRvY3MuCisKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICAgZGV0YWlscyAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIHR0X2RldGFpbCB7CisKKy8vIEZQVCBpcyBGbG9hdGluZy1Qb2ludCBUeXBlOiBmbG9hdCwgZG91YmxlLCBsb25nIGRvdWJsZSBvciBVc2VyLURlZmluZWQuCit0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQ+CitpbmxpbmUgRlBUCitmcHRfYWJzKCBGUFQgZnB2ICkgCit7CisgICAgcmV0dXJuIGZwdiA8IHN0YXRpY19jYXN0PEZQVD4oMCkgPyAtZnB2IDogZnB2OworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQ+CitzdHJ1Y3QgZnB0X2xpbWl0cyB7CisgICAgc3RhdGljIEZQVCAgICBtaW5fdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8RlBUPjo6aXNfc3BlY2lhbGl6ZWQKKyAgICAgICAgICAgICAgICAgICAgPyAoc3RkOjpudW1lcmljX2xpbWl0czxGUFQ+OjptaW4pKCkKKyAgICAgICAgICAgICAgICAgICAgOiAwOworICAgIH0KKyAgICBzdGF0aWMgRlBUICAgIG1heF92YWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxGUFQ+Ojppc19zcGVjaWFsaXplZAorICAgICAgICAgICAgICAgICAgICA/IChzdGQ6Om51bWVyaWNfbGltaXRzPEZQVD46Om1heCkoKQorICAgICAgICAgICAgICAgICAgICA6IHN0YXRpY19jYXN0PEZQVD4oMTAwMDAwMCk7IC8vIGZvciB0aGUgb3VyIHB1cnB1c2VzIGl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB3aGF0IHZhbHVlIGlzIHJldHVybmVkIGhlcmUKKyAgICB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyBib3RoIGYxIGFuZCBmMiBhcmUgdW5zaWduZWQgaGVyZQordGVtcGxhdGU8dHlwZW5hbWUgRlBUPgoraW5saW5lIEZQVAorc2FmZV9mcHRfZGl2aXNpb24oIEZQVCBmMSwgRlBUIGYyICkKK3sKKyAgICAvLyBBdm9pZCBvdmVyZmxvdy4KKyAgICBpZiggKGYyIDwgc3RhdGljX2Nhc3Q8RlBUPigxKSkgICYmIChmMSA+IGYyKmZwdF9saW1pdHM8RlBUPjo6bWF4X3ZhbHVlKCkpICkKKyAgICAgICAgcmV0dXJuIGZwdF9saW1pdHM8RlBUPjo6bWF4X3ZhbHVlKCk7CisKKyAgICAvLyBBdm9pZCB1bmRlcmZsb3cuCisgICAgaWYoIChmMSA9PSBzdGF0aWNfY2FzdDxGUFQ+KDApKSB8fAorICAgICAgICAoKGYyID4gc3RhdGljX2Nhc3Q8RlBUPigxKSkgJiYgKGYxIDwgZjIqZnB0X2xpbWl0czxGUFQ+OjptaW5fdmFsdWUoKSkpICkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZQVD4oMCk7CisKKyAgICByZXR1cm4gZjEvZjI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHR0X2RldGFpbAorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICB0b2xlcmFuY2UgcHJlc2VudGF0aW9uIHR5cGVzICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIEZQVD4KK3N0cnVjdCBwZXJjZW50X3RvbGVyYW5jZV90IHsKKyAgICBleHBsaWNpdCAgICBwZXJjZW50X3RvbGVyYW5jZV90KCBGUFQgdiApIDogbV92YWx1ZSggdiApIHt9CisKKyAgICBGUFQgbV92YWx1ZTsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIE91dCx0eXBlbmFtZSBGUFQ+CitPdXQmIG9wZXJhdG9yPDwoIE91dCYgb3V0LCBwZXJjZW50X3RvbGVyYW5jZV90PEZQVD4gdCApCit7CisgICAgcmV0dXJuIG91dCA8PCB0Lm1fdmFsdWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIEZQVD4KK2lubGluZSBwZXJjZW50X3RvbGVyYW5jZV90PEZQVD4KK3BlcmNlbnRfdG9sZXJhbmNlKCBGUFQgdiApCit7CisgICAgcmV0dXJuIHBlcmNlbnRfdG9sZXJhbmNlX3Q8RlBUPiggdiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQ+CitzdHJ1Y3QgZnJhY3Rpb25fdG9sZXJhbmNlX3QgeworICAgIGV4cGxpY2l0IGZyYWN0aW9uX3RvbGVyYW5jZV90KCBGUFQgdiApIDogbV92YWx1ZSggdiApIHt9CisKKyAgICBGUFQgbV92YWx1ZTsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIE91dCx0eXBlbmFtZSBGUFQ+CitPdXQmIG9wZXJhdG9yPDwoIE91dCYgb3V0LCBmcmFjdGlvbl90b2xlcmFuY2VfdDxGUFQ+IHQgKQoreworICAgIHJldHVybiBvdXQgPDwgdC5tX3ZhbHVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQ+CitpbmxpbmUgZnJhY3Rpb25fdG9sZXJhbmNlX3Q8RlBUPgorZnJhY3Rpb25fdG9sZXJhbmNlKCBGUFQgdiApCit7CisgICAgcmV0dXJuIGZyYWN0aW9uX3RvbGVyYW5jZV90PEZQVD4oIHYgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIGNsb3NlX2F0X3RvbGVyYW5jZSAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQ+CitjbGFzcyBjbG9zZV9hdF90b2xlcmFuY2UgeworcHVibGljOgorICAgIC8vIFB1YmxpYyB0eXBlZGVmcworICAgIHR5cGVkZWYgYm9vbCByZXN1bHRfdHlwZTsKKworICAgIC8vIENvbnN0cnVjdG9yCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVG9sZXJhbmNlQmFzZVR5cGU+CisgICAgZXhwbGljaXQgICAgY2xvc2VfYXRfdG9sZXJhbmNlKCBwZXJjZW50X3RvbGVyYW5jZV90PFRvbGVyYW5jZUJhc2VUeXBlPiAgdG9sZXJhbmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nX3BvaW50X2NvbXBhcmlzb25fdHlwZSAgICAgICAgICBmcGNfdHlwZSA9IEZQQ19TVFJPTkcgKSAKKyAgICA6IHBfZnJhY3Rpb25fdG9sZXJhbmNlKCB0dF9kZXRhaWw6OmZwdF9hYnMoIHN0YXRpY19jYXN0PEZQVD4oMC4wMSkqdG9sZXJhbmNlLm1fdmFsdWUgKSApCisgICAgLCBwX3N0cm9uZ19vcl93ZWFrKCBmcGNfdHlwZSA9PSAgRlBDX1NUUk9ORyApCisgICAgLCBtX3JlcG9ydF9tb2RpZmllciggMTAwLiApCisgICAge30KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUb2xlcmFuY2VCYXNlVHlwZT4KKyAgICBleHBsaWNpdCAgICBjbG9zZV9hdF90b2xlcmFuY2UoIGZyYWN0aW9uX3RvbGVyYW5jZV90PFRvbGVyYW5jZUJhc2VUeXBlPiB0b2xlcmFuY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdfcG9pbnRfY29tcGFyaXNvbl90eXBlICAgICAgICAgIGZwY190eXBlID0gRlBDX1NUUk9ORyApIAorICAgIDogcF9mcmFjdGlvbl90b2xlcmFuY2UoIHR0X2RldGFpbDo6ZnB0X2FicyggdG9sZXJhbmNlLm1fdmFsdWUgKSApCisgICAgLCBwX3N0cm9uZ19vcl93ZWFrKCBmcGNfdHlwZSA9PSAgRlBDX1NUUk9ORyApCisgICAgLCBtX3JlcG9ydF9tb2RpZmllciggMS4gKQorICAgIHt9CisKKyAgICBwcmVkaWNhdGVfcmVzdWx0ICAgICAgICBvcGVyYXRvcigpKCBGUFQgbGVmdCwgRlBUIHJpZ2h0ICkgY29uc3QKKyAgICB7CisgICAgICAgIEZQVCBkaWZmID0gdHRfZGV0YWlsOjpmcHRfYWJzKCBsZWZ0IC0gcmlnaHQgKTsKKyAgICAgICAgRlBUIGQxICAgPSB0dF9kZXRhaWw6OnNhZmVfZnB0X2RpdmlzaW9uKCBkaWZmLCB0dF9kZXRhaWw6OmZwdF9hYnMoIHJpZ2h0ICkgKTsKKyAgICAgICAgRlBUIGQyICAgPSB0dF9kZXRhaWw6OnNhZmVfZnB0X2RpdmlzaW9uKCBkaWZmLCB0dF9kZXRhaWw6OmZwdF9hYnMoIGxlZnQgKSApOworICAgICAgICAKKyAgICAgICAgcHJlZGljYXRlX3Jlc3VsdCByZXMoIHBfc3Ryb25nX29yX3dlYWsgCisgICAgICAgICAgICA/IChkMSA8PSBwX2ZyYWN0aW9uX3RvbGVyYW5jZS5nZXQoKSAmJiBkMiA8PSBwX2ZyYWN0aW9uX3RvbGVyYW5jZS5nZXQoKSkgCisgICAgICAgICAgICA6IChkMSA8PSBwX2ZyYWN0aW9uX3RvbGVyYW5jZS5nZXQoKSB8fCBkMiA8PSBwX2ZyYWN0aW9uX3RvbGVyYW5jZS5nZXQoKSkgKTsKKworICAgICAgICBpZiggIXJlcyApCisgICAgICAgICAgICByZXMubWVzc2FnZSgpIDw8ICgoIGQxIDw9IHBfZnJhY3Rpb25fdG9sZXJhbmNlLmdldCgpID8gZDIgOiBkMSApICogbV9yZXBvcnRfbW9kaWZpZXIpOworCisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCisgICAgLy8gUHVibGljIHByb3BlcnRpZXMKKyAgICByZWFkb25seV9wcm9wZXJ0eTxGUFQ+ICBwX2ZyYWN0aW9uX3RvbGVyYW5jZTsKKyAgICByZWFkb25seV9wcm9wZXJ0eTxib29sPiBwX3N0cm9uZ19vcl93ZWFrOworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBGUFQgICAgICAgICAgICAgICAgICAgICBtX3JlcG9ydF9tb2RpZmllcjsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIGNoZWNrX2lzX2Nsb3NlICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RydWN0IEJPT1NUX1RFU1RfREVDTCBjaGVja19pc19jbG9zZV90IHsKKyAgICAvLyBQdWJsaWMgdHlwZWRlZnMKKyAgICB0eXBlZGVmIGJvb2wgcmVzdWx0X3R5cGU7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQxLCB0eXBlbmFtZSBGUFQyLCB0eXBlbmFtZSBUb2xlcmFuY2VCYXNlVHlwZT4KKyAgICBwcmVkaWNhdGVfcmVzdWx0CisgICAgb3BlcmF0b3IoKSggRlBUMSBsZWZ0LCBGUFQyIHJpZ2h0LCBwZXJjZW50X3RvbGVyYW5jZV90PFRvbGVyYW5jZUJhc2VUeXBlPiB0b2xlcmFuY2UsIAorICAgICAgICAgICAgICAgIGZsb2F0aW5nX3BvaW50X2NvbXBhcmlzb25fdHlwZSBmcGNfdHlwZSA9IEZQQ19TVFJPTkcgKSBjb25zdAorICAgIHsKKyAgICAgICAgLy8gZGVkdWNlICJiZXR0ZXIiIHR5cGUgZnJvbSB0eXBlcyBvZiBhcmd1bWVudHMgYmVpbmcgY29tcGFyZWQKKyAgICAgICAgLy8gaWYgb25lIHR5cGUgaXMgZmxvYXRpbmcgYW5kIHRoZSBzZWNvbmQgaW50ZWdyYWwgd2UgdXNlIGZsb2F0aW5nIHR5cGUgYW5kIAorICAgICAgICAvLyB2YWx1ZSBvZiBpbnRlZ3JhbCB0eXBlIGlzIHByb21vdGVkIHRvIHRoZSBmbG9hdGluZy4gVGhlIHNhbWUgZm9yIGZsb2F0IGFuZCBkb3VibGUKKyAgICAgICAgLy8gQnV0IHdlIGRvbid0IHdhbnQgdG8gY29tcGFyZSB0d28gdmFsdWVzIG9mIGludGVncmFsIHR5cGVzIHVzaW5nIHRoaXMgdG9vbC4KKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBudW1lcmljOjpjb252ZXJzaW9uX3RyYWl0czxGUFQxLEZQVDI+OjpzdXBlcnR5cGUgRlBUOworICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCAhaXNfaW50ZWdyYWw8RlBUPjo6dmFsdWUgKTsKKworICAgICAgICBjbG9zZV9hdF90b2xlcmFuY2U8RlBUPiBwcmVkKCB0b2xlcmFuY2UsIGZwY190eXBlICk7CisKKyAgICAgICAgcmV0dXJuIHByZWQoIGxlZnQsIHJpZ2h0ICk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZQVDEsIHR5cGVuYW1lIEZQVDIsIHR5cGVuYW1lIFRvbGVyYW5jZUJhc2VUeXBlPgorICAgIHByZWRpY2F0ZV9yZXN1bHQKKyAgICBvcGVyYXRvcigpKCBGUFQxIGxlZnQsIEZQVDIgcmlnaHQsIGZyYWN0aW9uX3RvbGVyYW5jZV90PFRvbGVyYW5jZUJhc2VUeXBlPiB0b2xlcmFuY2UsIAorICAgICAgICAgICAgICAgIGZsb2F0aW5nX3BvaW50X2NvbXBhcmlzb25fdHlwZSBmcGNfdHlwZSA9IEZQQ19TVFJPTkcgKSBjb25zdAorICAgIHsKKyAgICAgICAgLy8gc2FtZSBhcyBpbiBhIGNvbW1lbnQgYWJvdmUKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBudW1lcmljOjpjb252ZXJzaW9uX3RyYWl0czxGUFQxLEZQVDI+OjpzdXBlcnR5cGUgRlBUOworICAgICAgICBCT09TVF9TVEFUSUNfQVNTRVJUKCAhaXNfaW50ZWdyYWw8RlBUPjo6dmFsdWUgKTsKKworICAgICAgICBjbG9zZV9hdF90b2xlcmFuY2U8RlBUPiBwcmVkKCB0b2xlcmFuY2UsIGZwY190eXBlICk7CisKKyAgICAgICAgcmV0dXJuIHByZWQoIGxlZnQsIHJpZ2h0ICk7CisgICAgfQorfTsKKworbmFtZXNwYWNlIHsKK2NoZWNrX2lzX2Nsb3NlX3QgY29uc3QmIGNoZWNrX2lzX2Nsb3NlID0gdW5pdF90ZXN0Ojp1dF9kZXRhaWw6OnN0YXRpY19jb25zdGFudDxjaGVja19pc19jbG9zZV90Pjo6dmFsdWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIGNoZWNrX2lzX3NtYWxsICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RydWN0IEJPT1NUX1RFU1RfREVDTCBjaGVja19pc19zbWFsbF90IHsKKyAgICAvLyBQdWJsaWMgdHlwZWRlZnMKKyAgICB0eXBlZGVmIGJvb2wgcmVzdWx0X3R5cGU7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGUFQ+CisgICAgYm9vbAorICAgIG9wZXJhdG9yKCkoIEZQVCBmcHYsIEZQVCB0b2xlcmFuY2UgKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHR0X2RldGFpbDo6ZnB0X2FicyggZnB2ICkgPCB0dF9kZXRhaWw6OmZwdF9hYnMoIHRvbGVyYW5jZSApOworICAgIH0KK307CisKK25hbWVzcGFjZSB7CitjaGVja19pc19zbWFsbF90IGNvbnN0JiBjaGVja19pc19zbWFsbCA9IHVuaXRfdGVzdDo6dXRfZGV0YWlsOjpzdGF0aWNfY29uc3RhbnQ8Y2hlY2tfaXNfc21hbGxfdD46OnZhbHVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB0ZXN0X3Rvb2xzCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfRkxPQVRJTkdfUE9JTlRfQ09NQVBBUklTT05fSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvZnJhbWV3b3JrLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2QyNDlkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHAKQEAgLTAsMCArMSwxMTIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBmcmFtZXdvcmsgaW50ZXJmYWNlCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0ZSQU1FV09SS19IUFBfMDIwODA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfRlJBTUVXT1JLX0hQUF8wMjA4MDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy90cml2aWFsX3NpbmdsZXRvbi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgaW5pdF91bml0X3Rlc3RfZnVuYyAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2lmZGVmIEJPT1NUX1RFU1RfQUxURVJOQVRJVkVfSU5JVF9BUEkKK3R5cGVkZWYgYm9vbCAgICAgICAgKCppbml0X3VuaXRfdGVzdF9mdW5jKSgpOworI2Vsc2UKK3R5cGVkZWYgdGVzdF9zdWl0ZSogKCppbml0X3VuaXRfdGVzdF9mdW5jKSggaW50LCBjaGFyKiBbXSApOworI2VuZGlmCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmsgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIGZyYW1ld29yayB7CisKKy8vIGluaXRpYWxpemF0aW9uCitCT09TVF9URVNUX0RFQ0wgdm9pZCAgICBpbml0KCBpbml0X3VuaXRfdGVzdF9mdW5jIGluaXRfZnVuYywgaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApOworQk9PU1RfVEVTVF9ERUNMIGJvb2wgICAgaXNfaW5pdGlhbGl6ZWQoKTsKKworLy8gbXV0YXRpb24gYWNjZXNzIG1ldGhvZHMKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIHJlZ2lzdGVyX3Rlc3RfdW5pdCggdGVzdF9jYXNlKiB0YyApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgcmVnaXN0ZXJfdGVzdF91bml0KCB0ZXN0X3N1aXRlKiB0cyApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgZGVyZWdpc3Rlcl90ZXN0X3VuaXQoIHRlc3RfdW5pdCogdHUgKTsKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIGNsZWFyKCk7CisKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIHJlZ2lzdGVyX29ic2VydmVyKCB0ZXN0X29ic2VydmVyJiApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgZGVyZWdpc3Rlcl9vYnNlcnZlciggdGVzdF9vYnNlcnZlciYgKTsKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIHJlc2V0X29ic2VydmVycygpOworCitCT09TVF9URVNUX0RFQ0wgbWFzdGVyX3Rlc3Rfc3VpdGVfdCYgbWFzdGVyX3Rlc3Rfc3VpdGUoKTsKKworLy8gY29uc3RhbnQgYWNjZXNzIG1ldGhvZHMKK0JPT1NUX1RFU1RfREVDTCB0ZXN0X2Nhc2UgY29uc3QmICAgIGN1cnJlbnRfdGVzdF9jYXNlKCk7CisKK0JPT1NUX1RFU1RfREVDTCB0ZXN0X3VuaXQmICBnZXQoIHRlc3RfdW5pdF9pZCwgdGVzdF91bml0X3R5cGUgKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFVuaXRUeXBlPgorVW5pdFR5cGUmICAgICAgICAgICAgICAgZ2V0KCB0ZXN0X3VuaXRfaWQgaWQgKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxVbml0VHlwZSY+KCBnZXQoIGlkLCBzdGF0aWNfY2FzdDx0ZXN0X3VuaXRfdHlwZT4oVW5pdFR5cGU6OnR5cGUpICkgKTsKK30KKworLy8gdGVzdCBpbml0aWF0aW9uCitCT09TVF9URVNUX0RFQ0wgdm9pZCAgICBydW4oIHRlc3RfdW5pdF9pZCA9IElOVl9URVNUX1VOSVRfSUQsIGJvb2wgY29udGludWVfdGVzdCA9IHRydWUgKTsKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIHJ1biggdGVzdF91bml0IGNvbnN0KiwgYm9vbCBjb250aW51ZV90ZXN0ID0gdHJ1ZSApOworCisvLyBwdWJsaWMgdGVzdCBldmVudHMgZGlzcGF0Y2hlcnMKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIGFzc2VydGlvbl9yZXN1bHQoIGJvb2wgcGFzc2VkICk7CitCT09TVF9URVNUX0RFQ0wgdm9pZCAgICBleGNlcHRpb25fY2F1Z2h0KCBleGVjdXRpb25fZXhjZXB0aW9uIGNvbnN0JiApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgdGVzdF91bml0X2Fib3J0ZWQoIHRlc3RfdW5pdCBjb25zdCYgKTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIGZyYW1ld29yayBlcnJvcnMgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdHJ1Y3QgaW50ZXJuYWxfZXJyb3IgOiBzdGQ6OnJ1bnRpbWVfZXJyb3IgeworICAgIGludGVybmFsX2Vycm9yKCBjb25zdF9zdHJpbmcgbSApIDogc3RkOjpydW50aW1lX2Vycm9yKCBzdGQ6OnN0cmluZyggbS5iZWdpbigpLCBtLnNpemUoKSApICkge30KK307CisKK3N0cnVjdCBzZXR1cF9lcnJvciA6IHN0ZDo6cnVudGltZV9lcnJvciB7CisgICAgc2V0dXBfZXJyb3IoIGNvbnN0X3N0cmluZyBtICkgOiBzdGQ6OnJ1bnRpbWVfZXJyb3IoIHN0ZDo6c3RyaW5nKCBtLmJlZ2luKCksIG0uc2l6ZSgpICkgKSB7fQorfTsKKworI2RlZmluZSBCT09TVF9URVNUX1NFVFVQX0FTU0VSVCggY29uZCwgbXNnICkgaWYoIGNvbmQgKSB7fSBlbHNlIHRocm93IHVuaXRfdGVzdDo6ZnJhbWV3b3JrOjpzZXR1cF9lcnJvciggbXNnICkKKworc3RydWN0IG5vdGhpbmdfdG9fdGVzdCB7fTsgLy8gbm90IHJlYWxseSBhbiBlcnJvcgorCit9IC8vIG5hbWVzcGFjZSBmcmFtZXdvcmsKKworfSAvLyB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0ZSQU1FV09SS19IUFBfMDIwODA1R0VSCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXIuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvY29tcGlsZXJfbG9nX2Zvcm1hdHRlci5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE1MzkyMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXIuaXBwCkBAIC0wLDAgKzEsMjIyIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTc5OTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGltcGxlbWVudHMgY29tcGlsZXIgbGlrZSBMb2cgZm9ybWF0dGVyCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0NPTVBJTEVSX0xPR19GT1JNQVRURVJfSVBQXzAyMDEwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX0NPTVBJTEVSX0xPR19GT1JNQVRURVJfSVBQXzAyMDEwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9vdXRwdXQvY29tcGlsZXJfbG9nX2Zvcm1hdHRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9pby5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9sYXp5X29zdHJlYW0uaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3ZlcnNpb24uaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSBvdXRwdXQgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICBjb21waWxlcl9sb2dfZm9ybWF0dGVyICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSB7CisKK2NvbnN0X3N0cmluZwordGVzdF9waGFzZV9pZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gZnJhbWV3b3JrOjppc19pbml0aWFsaXplZCgpIAorICAgICAgICAgICAgPyBjb25zdF9zdHJpbmcoIGZyYW1ld29yazo6Y3VycmVudF90ZXN0X2Nhc2UoKS5wX25hbWUuZ2V0KCkgKQorICAgICAgICAgICAgOiBCT09TVF9URVNUX0woICJUZXN0IHNldHVwIiApOworfQorCit9IC8vIGxvY2FsIG5hbWVzcGFjZQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitjb21waWxlcl9sb2dfZm9ybWF0dGVyOjpsb2dfc3RhcnQoIHN0ZDo6b3N0cmVhbSYgb3V0cHV0LCBjb3VudGVyX3QgdGVzdF9jYXNlc19hbW91bnQgKQoreworICAgIGlmKCB0ZXN0X2Nhc2VzX2Ftb3VudCA+IDAgKQorICAgICAgICBvdXRwdXQgIDw8ICJSdW5uaW5nICIgPDwgdGVzdF9jYXNlc19hbW91bnQgPDwgIiB0ZXN0ICIKKyAgICAgICAgICAgICAgICA8PCAodGVzdF9jYXNlc19hbW91bnQgPiAxID8gImNhc2VzIiA6ICJjYXNlIikgPDwgIi4uLlxuIjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorY29tcGlsZXJfbG9nX2Zvcm1hdHRlcjo6bG9nX2ZpbmlzaCggc3RkOjpvc3RyZWFtJiBvc3RyICkKK3sKKyAgICBvc3RyLmZsdXNoKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXI6OmxvZ19idWlsZF9pbmZvKCBzdGQ6Om9zdHJlYW0mIG91dHB1dCApCit7CisgICAgb3V0cHV0ICA8PCAiUGxhdGZvcm06ICIgPDwgQk9PU1RfUExBVEZPUk0gICAgICAgICAgICA8PCAnXG4nCisgICAgICAgICAgICA8PCAiQ29tcGlsZXI6ICIgPDwgQk9PU1RfQ09NUElMRVIgICAgICAgICAgICA8PCAnXG4nCisgICAgICAgICAgICA8PCAiU1RMICAgICA6ICIgPDwgQk9PU1RfU1RETElCICAgICAgICAgICAgICA8PCAnXG4nCisgICAgICAgICAgICA8PCAiQm9vc3QgICA6ICIgPDwgQk9PU1RfVkVSU0lPTi8xMDAwMDAgICAgICA8PCAiLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBCT09TVF9WRVJTSU9OLzEwMCAlIDEwMDAgIDw8ICIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IEJPT1NUX1ZFUlNJT04gJSAxMDAgICAgICAgPDwgc3RkOjplbmRsOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitjb21waWxlcl9sb2dfZm9ybWF0dGVyOjp0ZXN0X3VuaXRfc3RhcnQoIHN0ZDo6b3N0cmVhbSYgb3V0cHV0LCB0ZXN0X3VuaXQgY29uc3QmIHR1ICkKK3sKKyAgICBvdXRwdXQgPDwgIkVudGVyaW5nIHRlc3QgIiA8PCB0dS5wX3R5cGVfbmFtZSA8PCAiIFwiIiA8PCB0dS5wX25hbWUgPDwgIlwiIiA8PCBzdGQ6OmVuZGw7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXI6OnRlc3RfdW5pdF9maW5pc2goIHN0ZDo6b3N0cmVhbSYgb3V0cHV0LCB0ZXN0X3VuaXQgY29uc3QmIHR1LCB1bnNpZ25lZCBsb25nIGVsYXBzZWQgKQoreworICAgIG91dHB1dCA8PCAiTGVhdmluZyB0ZXN0ICIgPDwgdHUucF90eXBlX25hbWUgPDwgIiBcIiIgPDwgdHUucF9uYW1lIDw8ICJcIiI7CisKKyAgICBpZiggZWxhcHNlZCA+IDAgKSB7CisgICAgICAgIG91dHB1dCA8PCAiOyB0ZXN0aW5nIHRpbWU6ICI7CisgICAgICAgIGlmKCBlbGFwc2VkICUgMTAwMCA9PSAwICkKKyAgICAgICAgICAgIG91dHB1dCA8PCBlbGFwc2VkLzEwMDAgPDwgIm1zIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0cHV0IDw8IGVsYXBzZWQgPDwgIm1rcyI7CisgICAgfQorCisgICAgb3V0cHV0IDw8IHN0ZDo6ZW5kbDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorY29tcGlsZXJfbG9nX2Zvcm1hdHRlcjo6dGVzdF91bml0X3NraXBwZWQoIHN0ZDo6b3N0cmVhbSYgb3V0cHV0LCB0ZXN0X3VuaXQgY29uc3QmIHR1ICkKK3sKKyAgICBvdXRwdXQgIDw8ICJUZXN0ICIgPDwgdHUucF90eXBlX25hbWUgPDwgIiBcIiIgPDwgdHUucF9uYW1lIDw8ICJcIiIgPDwgImlzIHNraXBwZWQiIDw8IHN0ZDo6ZW5kbDsKK30KKyAgICAKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXI6OmxvZ19leGNlcHRpb24oIHN0ZDo6b3N0cmVhbSYgb3V0cHV0LCBsb2dfY2hlY2twb2ludF9kYXRhIGNvbnN0JiBjaGVja3BvaW50X2RhdGEsIGV4ZWN1dGlvbl9leGNlcHRpb24gY29uc3QmIGV4ICkKK3sKKyAgICBleGVjdXRpb25fZXhjZXB0aW9uOjpsb2NhdGlvbiBjb25zdCYgbG9jID0gZXgud2hlcmUoKTsKKyAgICBwcmludF9wcmVmaXgoIG91dHB1dCwgbG9jLm1fZmlsZV9uYW1lLCBsb2MubV9saW5lX251bSApOworCisgICAgb3V0cHV0IDw8ICJmYXRhbCBlcnJvciBpbiBcIiIgPDwgKGxvYy5tX2Z1bmN0aW9uLmlzX2VtcHR5KCkgPyB0ZXN0X3BoYXNlX2lkZW50aWZpZXIoKSA6IGxvYy5tX2Z1bmN0aW9uICkgPDwgIlwiOiAiOworCisgICAgb3V0cHV0IDw8IGV4LndoYXQoKTsKKworICAgIGlmKCAhY2hlY2twb2ludF9kYXRhLm1fZmlsZV9uYW1lLmlzX2VtcHR5KCkgKSB7CisgICAgICAgIG91dHB1dCA8PCAnXG4nOworICAgICAgICBwcmludF9wcmVmaXgoIG91dHB1dCwgY2hlY2twb2ludF9kYXRhLm1fZmlsZV9uYW1lLCBjaGVja3BvaW50X2RhdGEubV9saW5lX251bSApOworICAgICAgICBvdXRwdXQgPDwgImxhc3QgY2hlY2twb2ludCI7CisgICAgICAgIGlmKCAhY2hlY2twb2ludF9kYXRhLm1fbWVzc2FnZS5lbXB0eSgpICkKKyAgICAgICAgICAgIG91dHB1dCA8PCAiOiAiIDw8IGNoZWNrcG9pbnRfZGF0YS5tX21lc3NhZ2U7CisgICAgfQorICAgIAorICAgIG91dHB1dCA8PCBzdGQ6OmVuZGw7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXI6OmxvZ19lbnRyeV9zdGFydCggc3RkOjpvc3RyZWFtJiBvdXRwdXQsIGxvZ19lbnRyeV9kYXRhIGNvbnN0JiBlbnRyeV9kYXRhLCBsb2dfZW50cnlfdHlwZXMgbGV0ICkKK3sKKyAgICBzd2l0Y2goIGxldCApIHsKKyAgICAgICAgY2FzZSBCT09TVF9VVExfRVRfSU5GTzoKKyAgICAgICAgICAgIHByaW50X3ByZWZpeCggb3V0cHV0LCBlbnRyeV9kYXRhLm1fZmlsZV9uYW1lLCBlbnRyeV9kYXRhLm1fbGluZV9udW0gKTsKKyAgICAgICAgICAgIG91dHB1dCA8PCAiaW5mbzogIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJPT1NUX1VUTF9FVF9NRVNTQUdFOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQk9PU1RfVVRMX0VUX1dBUk5JTkc6CisgICAgICAgICAgICBwcmludF9wcmVmaXgoIG91dHB1dCwgZW50cnlfZGF0YS5tX2ZpbGVfbmFtZSwgZW50cnlfZGF0YS5tX2xpbmVfbnVtICk7CisgICAgICAgICAgICBvdXRwdXQgPDwgIndhcm5pbmcgaW4gXCIiIDw8IHRlc3RfcGhhc2VfaWRlbnRpZmllcigpIDw8ICJcIjogIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJPT1NUX1VUTF9FVF9FUlJPUjoKKyAgICAgICAgICAgIHByaW50X3ByZWZpeCggb3V0cHV0LCBlbnRyeV9kYXRhLm1fZmlsZV9uYW1lLCBlbnRyeV9kYXRhLm1fbGluZV9udW0gKTsKKyAgICAgICAgICAgIG91dHB1dCA8PCAiZXJyb3IgaW4gXCIiIDw8IHRlc3RfcGhhc2VfaWRlbnRpZmllcigpIDw8ICJcIjogIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJPT1NUX1VUTF9FVF9GQVRBTF9FUlJPUjoKKyAgICAgICAgICAgIHByaW50X3ByZWZpeCggb3V0cHV0LCBlbnRyeV9kYXRhLm1fZmlsZV9uYW1lLCBlbnRyeV9kYXRhLm1fbGluZV9udW0gKTsKKyAgICAgICAgICAgIG91dHB1dCA8PCAiZmF0YWwgZXJyb3IgaW4gXCIiIDw8IHRlc3RfcGhhc2VfaWRlbnRpZmllcigpIDw8ICJcIjogIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorY29tcGlsZXJfbG9nX2Zvcm1hdHRlcjo6bG9nX2VudHJ5X3ZhbHVlKCBzdGQ6Om9zdHJlYW0mIG91dHB1dCwgY29uc3Rfc3RyaW5nIHZhbHVlICkKK3sKKyAgICBvdXRwdXQgPDwgdmFsdWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXI6OmxvZ19lbnRyeV92YWx1ZSggc3RkOjpvc3RyZWFtJiBvdXRwdXQsIGxhenlfb3N0cmVhbSBjb25zdCYgdmFsdWUgKQoreworICAgIG91dHB1dCA8PCB2YWx1ZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorY29tcGlsZXJfbG9nX2Zvcm1hdHRlcjo6bG9nX2VudHJ5X2ZpbmlzaCggc3RkOjpvc3RyZWFtJiBvdXRwdXQgKQoreworICAgIG91dHB1dCA8PCBzdGQ6OmVuZGw7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXI6OnByaW50X3ByZWZpeCggc3RkOjpvc3RyZWFtJiBvdXRwdXQsIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lICkKK3sKKyNpZmRlZiBfX0FQUExFX0NDX18KKyAgICAvLyBYY29kZS1jb21wYXRpYmxlIGxvZ2dpbmcgZm9ybWF0LCBpZGVhIGJ5IFJpY2hhcmQgRGluZ3dhbGwgYXQgCisgICAgLy8gPGh0dHA6Ly9yaWNoYXJkZGluZ3dhbGwubmFtZS8yMDA4LzA2LzAxL3VzaW5nLXRoZS1ib29zdC11bml0LXRlc3QtZnJhbWV3b3JrLXdpdGgteGNvZGUtMy8+LiAKKyAgICBvdXRwdXQgPDwgZmlsZSA8PCAnOicgPDwgbGluZSA8PCAiOiAiOworI2Vsc2UKKyAgICBvdXRwdXQgPDwgZmlsZSA8PCAnKCcgPDwgbGluZSA8PCAiKTogIjsKKyNlbmRpZgorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBvdXRwdXQKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9DT01QSUxFUl9MT0dfRk9STUFUVEVSX0lQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2NwcF9tYWluLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2NwcF9tYWluLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmFjZWUxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvY3BwX21haW4uaXBwCkBAIC0wLDAgKzEsMTM5IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAxOTk1LTIwMDEuCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IG1haW4gZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gZm9yIFByb2dyYW0gRXhlY3V0b24gTW9uaXRvcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9DUFBfTUFJTl9JUFBfMDEyMjA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfQ1BQX01BSU5fSVBQXzAxMjIwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9leGVjdXRpb25fbW9uaXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L2NzdGRsaWIuaHBwPiAgICAvLyBmb3IgZXhpdCBjb2RlcworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+ICAgICAvLyBmb3Igd29ya2Fyb3VuZHMKKworLy8gU1RMCisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8Y3N0ZGxpYj4gICAgICAvLyBzdGQ6OmdldGVudgorI2luY2x1ZGUgPGNzdHJpbmc+ICAgICAgLy8gc3RkOjpzdHJlcnJvcgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWZkZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKK25hbWVzcGFjZSBzdGQgeyB1c2luZyA6OmdldGVudjsgdXNpbmcgOjpzdHJlcnJvcjsgfQorI2VuZGlmCisKK25hbWVzcGFjZSB7CisKK3N0cnVjdCBjcHBfbWFpbl9jYWxsZXIgeworICAgIGNwcF9tYWluX2NhbGxlciggaW50ICgqY3BwX21haW5fZnVuYykoIGludCBhcmdjLCBjaGFyKiBhcmd2W10gKSwgaW50IGFyZ2MsIGNoYXIqKiBhcmd2ICkgCisgICAgOiBtX2NwcF9tYWluX2Z1bmMoIGNwcF9tYWluX2Z1bmMgKQorICAgICwgbV9hcmdjKCBhcmdjICkKKyAgICAsIG1fYXJndiggYXJndiApIHt9CisgICAgCisgICAgaW50IG9wZXJhdG9yKCkoKSB7IHJldHVybiAoKm1fY3BwX21haW5fZnVuYykoIG1fYXJnYywgbV9hcmd2ICk7IH0KKyAgCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycyAgICAKKyAgICBpbnQgKCptX2NwcF9tYWluX2Z1bmMpKCBpbnQgYXJnYywgY2hhciogYXJndltdICk7CisgICAgaW50ICAgICAgbV9hcmdjOworICAgIGNoYXIqKiAgIG1fYXJndjsKK307CisKK30gLy8gbG9jYWwgbmFtZXNwYWNlCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBwcmdfZXhlY19tb25pdG9yX21haW4gICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworaW50IEJPT1NUX1RFU1RfREVDTAorcHJnX2V4ZWNfbW9uaXRvcl9tYWluKCBpbnQgKCpjcHBfbWFpbikoIGludCBhcmdjLCBjaGFyKiBhcmd2W10gKSwgaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApCit7CisgICAgaW50IHJlc3VsdCA9IDA7CisKKyAgICB0cnkgeworICAgICAgICBuZG5ib29zdDo6dW5pdF90ZXN0Ojpjb25zdF9zdHJpbmcgcCggc3RkOjpnZXRlbnYoICJCT09TVF9URVNUX0NBVENIX1NZU1RFTV9FUlJPUlMiICkgKTsKKyAgICAgICAgOjpuZG5ib29zdDo6ZXhlY3V0aW9uX21vbml0b3IgZXhfbW9uOworCisgICAgICAgIGV4X21vbi5wX2NhdGNoX3N5c3RlbV9lcnJvcnMudmFsdWUgPSBwICE9ICJubyI7CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBleF9tb24uZXhlY3V0ZSggCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmNhbGxiYWNrMDxpbnQ+KCBjcHBfbWFpbl9jYWxsZXIoIGNwcF9tYWluLCBhcmdjLCBhcmd2ICkgKSApOworICAgICAgICAKKyAgICAgICAgaWYoIHJlc3VsdCA9PSAwICkKKyAgICAgICAgICAgIHJlc3VsdCA9IDo6bmRuYm9vc3Q6OmV4aXRfc3VjY2VzczsKKyAgICAgICAgZWxzZSBpZiggcmVzdWx0ICE9IDo6bmRuYm9vc3Q6OmV4aXRfc3VjY2VzcyApIHsKKyAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiXG4qKioqIGVycm9yIHJldHVybiBjb2RlOiAiIDw8IHJlc3VsdCA8PCBzdGQ6OmVuZGw7CisgICAgICAgICAgICByZXN1bHQgPSA6Om5kbmJvb3N0OjpleGl0X2ZhaWx1cmU7CisgICAgICAgIH0KKyAgICB9CisgICAgY2F0Y2goIDo6bmRuYm9vc3Q6OmV4ZWN1dGlvbl9leGNlcHRpb24gY29uc3QmIGV4ZXggKSB7CisgICAgICAgIHN0ZDo6Y291dCA8PCAiXG4qKioqIGV4Y2VwdGlvbigiIDw8IGV4ZXguY29kZSgpIDw8ICIpOiAiIDw8IGV4ZXgud2hhdCgpIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgcmVzdWx0ID0gOjpuZG5ib29zdDo6ZXhpdF9leGNlcHRpb25fZmFpbHVyZTsKKyAgICB9CisgICAgY2F0Y2goIDo6bmRuYm9vc3Q6OnN5c3RlbV9lcnJvciBjb25zdCYgZXggKSB7CisgICAgICAgIHN0ZDo6Y291dCA8PCAiXG4qKioqIGZhaWxlZCB0byBpbml0aWFsaXplIGV4ZWN1dGlvbiBtb25pdG9yLiIKKyAgICAgICAgICAgICAgICAgIDw8ICJcbioqKiogZXhwcmVzc2lvbiBhdCBmYXVsdDogIiA8PCBleC5wX2ZhaWxlZF9leHAgCisgICAgICAgICAgICAgICAgICA8PCAiXG4qKioqIGVycm9yKCIgPDwgZXgucF9lcnJubyA8PCAiKTogIiA8PCBzdGQ6OnN0cmVycm9yKCBleC5wX2Vycm5vICkgPDwgc3RkOjplbmRsOworICAgICAgICByZXN1bHQgPSA6Om5kbmJvb3N0OjpleGl0X2V4Y2VwdGlvbl9mYWlsdXJlOworICAgIH0KKworICAgIGlmKCByZXN1bHQgIT0gOjpuZG5ib29zdDo6ZXhpdF9zdWNjZXNzICkgeworICAgICAgICBzdGQ6OmNlcnIgPDwgIioqKioqKioqIGVycm9ycyBkZXRlY3RlZDsgc2VlIHN0YW5kYXJkIG91dHB1dCBmb3IgZGV0YWlscyAqKioqKioqKiIgPDwgc3RkOjplbmRsOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLy8gIFNvbWUgcHJlZmVyIGEgY29uZmlybWluZyBtZXNzYWdlIHdoZW4gYWxsIGlzIHdlbGwsIHdoaWxlIG90aGVycyBkb24ndAorICAgICAgICAvLyAgbGlrZSB0aGUgY2x1dHRlci4gIFVzZSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhdm9pZCBjb21tYW5kCisgICAgICAgIC8vICBsaW5lIGFyZ3VtZW50IG1vZGlmaWNhdGlvbnM7IGZvciB1c2UgaW4gcHJvZHVjdGlvbiBwcm9ncmFtcworICAgICAgICAvLyAgdGhhdCdzIGEgbm8tbm8gaW4gc29tZSBvcmdhbml6YXRpb25zLgorICAgICAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmNvbnN0X3N0cmluZyBwKCBzdGQ6OmdldGVudiggIkJPT1NUX1BSR19NT05fQ09ORklSTSIgKSApOworICAgICAgICBpZiggcCAhPSAibm8iICkgeyAKKyAgICAgICAgICAgIHN0ZDo6Y2VyciA8PCBzdGQ6OmZsdXNoIDw8ICJubyBlcnJvcnMgZGV0ZWN0ZWQiIDw8IHN0ZDo6ZW5kbDsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWYgIWRlZmluZWQoQk9PU1RfVEVTVF9EWU5fTElOSykgJiYgIWRlZmluZWQoQk9PU1RfVEVTVF9OT19NQUlOKQorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgIG1haW4gZnVuY3Rpb24gZm9yIHRlc3RzIHVzaW5nIGxpYiAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2ludCBjcHBfbWFpbiggaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApOyAgLy8gcHJvdG90eXBlIGZvciB1c2VyJ3MgY3BwX21haW4oKQorCitpbnQgQk9PU1RfVEVTVF9DQUxMX0RFQ0wKK21haW4oIGludCBhcmdjLCBjaGFyKiBhcmd2W10gKQoreworICAgIHJldHVybiA6Om5kbmJvb3N0OjpwcmdfZXhlY19tb25pdG9yX21haW4oICZjcHBfbWFpbiwgYXJnYywgYXJndiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZW5kaWYgLy8gIUJPT1NUX1RFU1RfRFlOX0xJTksgJiYgIUJPT1NUX1RFU1RfTk9fTUFJTgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfQ1BQX01BSU5fSVBQXzAxMjIwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvZGVidWcuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvZGVidWcuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMjNmMmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9kZWJ1Zy5pcHAKQEAgLTAsMCArMSw5NzAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDYtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBkZWJ1ZyBpbnRlcmZhY2VzIGltcGxlbWVudGF0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0RFQlVHX0FQSV9JUFBfMTEyMDA2R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfREVCVUdfQVBJX0lQUF8xMTIwMDZHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZ2xvYmFsX3R5cGVkZWYuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZWJ1Zy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZWJ1Z19jb25maWcuaHBwPgorCisvLyBJbXBsZW1lbnRhdGlvbiBvbiBXaW5kb3dzCisjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKFVOREVSX0NFKSAmJiAhZGVmaW5lZChCT09TVF9ESVNBQkxFX1dJTjMyKSAvLyAqKioqKioqIFdJTjMyCisKKyMgIGRlZmluZSBCT09TVF9XSU4zMl9CQVNFRF9ERUJVRworCisvLyBTWVNURU0gQVBJCisjICBpbmNsdWRlIDx3aW5kb3dzLmg+CisjICBpbmNsdWRlIDx3aW5yZWcuaD4KKyMgIGluY2x1ZGUgPGNzdGRpbz4KKyMgIGluY2x1ZGUgPGNzdHJpbmc+CisKKyMgIGlmICFkZWZpbmVkKE5ERUJVRykgJiYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICAgZGVmaW5lIEJPT1NUX01TX0NSVF9CQVNFRF9ERUJVRworIyAgICBpbmNsdWRlIDxjcnRkYmcuaD4KKyMgIGVuZGlmCisKKworIyAgaWYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPDEzMDApCisjICAgIGRlZmluZSBzbnByaW50ZiBfc25wcmludGYKKyMgIGVuZGlmCisKKyMgIGlmZGVmIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCituYW1lc3BhY2Ugc3RkIHsgdXNpbmcgOjptZW1zZXQ7IHVzaW5nIDo6c3ByaW50ZjsgfQorIyAgZW5kaWYKKworI2VsaWYgZGVmaW5lZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgLy8gKioqKioqKioqKioqKioqKioqKioqIFVOSVgKKworIyAgZGVmaW5lIEJPT1NUX1VOSVhfQkFTRURfREVCVUcKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2xhc3NfcHJvcGVydGllcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9hbGdvcml0aG0uaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxjc3RyaW5nPiAgLy8gc3RkOjptZW1jcHkKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPHN0ZGFyZy5oPiAvLyAhISA/PyBjc3RkYXJnCisKKy8vIFNZU1RFTSBBUEkKKyMgIGluY2x1ZGUgPHVuaXN0ZC5oPgorIyAgaW5jbHVkZSA8c2lnbmFsLmg+CisjICBpbmNsdWRlIDxmY250bC5oPgorCisjICBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyMgIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CisjICBpbmNsdWRlIDxzeXMvd2FpdC5oPgorIyAgaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyMgIGluY2x1ZGUgPHN0ZGlvLmg+CisjICBpbmNsdWRlIDxzdGRsaWIuaD4KKworIyAgaWYgZGVmaW5lZChzdW4pIHx8IGRlZmluZWQoX19zdW4pCisKKyMgICAgZGVmaW5lIEJPT1NUX1NVTl9CQVNFRF9ERUJVRworCisjICAgIGlmbmRlZiBCT09TVF9URVNUX0RCR19MSVNUCisjICAgICAgZGVmaW5lIEJPT1NUX1RFU1RfREJHX0xJU1QgZGJ4O2dkYgorIyAgICBlbmRpZgorCisjICAgIGRlZmluZSBCT09TVF9URVNUX0NOTF9EQkcgIGRieAorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9HVUlfREJHICBkYngtZGRkCisKKyMgICAgaW5jbHVkZSA8cHJvY2ZzLmg+CisKKyMgIGVsaWYgZGVmaW5lZChsaW51eCkgfHwgZGVmaW5lZChfX2xpbnV4KQorCisjICAgIGRlZmluZSBCT09TVF9MSU5VWF9CQVNFRF9ERUJVRworCisjICAgIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKworIyAgICBpZm5kZWYgQk9PU1RfVEVTVF9TVEFUX0xJTkVfTUFYCisjICAgICAgZGVmaW5lIEJPT1NUX1RFU1RfU1RBVF9MSU5FX01BWCA1MDAKKyMgICAgZW5kaWYKKworIyAgICBpZm5kZWYgQk9PU1RfVEVTVF9EQkdfTElTVAorIyAgICAgIGRlZmluZSBCT09TVF9URVNUX0RCR19MSVNUIGdkYgorIyAgICBlbmRpZgorCisjICAgIGRlZmluZSBCT09TVF9URVNUX0NOTF9EQkcgIGdkYgorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9HVUlfREJHICBnZGIteHRlcm0KKworIyAgZW5kaWYKKworI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZWJ1ZyB7CisKK3VzaW5nIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nOworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgZGVidWc6OmluZm9fdCAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSB7CisKKyNpZiBkZWZpbmVkKEJPT1NUX1dJTjMyX0JBU0VEX0RFQlVHKSAvLyAqKioqKioqKioqKioqKioqKioqKioqKiBXSU4zMgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQKK2R5bl9zeW1ib2woIFQmIHJlcywgY2hhciBjb25zdCogbW9kdWxlX25hbWUsIGNoYXIgY29uc3QqIHN5bWJvbF9uYW1lICkKK3sKKyAgICBITU9EVUxFIG0gPSA6OkdldE1vZHVsZUhhbmRsZUEoIG1vZHVsZV9uYW1lICk7CisKKyAgICBpZiggIW0gKQorICAgICAgICBtID0gOjpMb2FkTGlicmFyeUEoIG1vZHVsZV9uYW1lICk7CisKKyAgICByZXMgPSByZWludGVycHJldF9jYXN0PFQ+KCA6OkdldFByb2NBZGRyZXNzKCBtLCBzeW1ib2xfbmFtZSApICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0YXRpYyBzdHJ1Y3QgaW5mb190IHsKKyAgICB0eXBlZGVmIEJPT0wgKFdJTkFQSSogSXNEZWJ1Z2dlclByZXNlbnRUKSgpOworICAgIHR5cGVkZWYgTE9ORyAoV0lOQVBJKiBSZWdRdWVyeVZhbHVlRXhUKSggSEtFWSwgY2hhciBjb25zdCogLypMUFRTVFIqLywgTFBEV09SRCwgTFBEV09SRCwgTFBCWVRFLCBMUERXT1JEICk7CisgICAgdHlwZWRlZiBMT05HIChXSU5BUEkqIFJlZ09wZW5LZXlUKSggSEtFWSwgY2hhciBjb25zdCogLypMUENUU1RSKi8sIFBIS0VZICk7CisgICAgdHlwZWRlZiBMT05HIChXSU5BUEkqIFJlZ0Nsb3NlS2V5VCkoIEhLRVkgKTsKKworICAgIGluZm9fdCgpOworCisgICAgSXNEZWJ1Z2dlclByZXNlbnRUICBtX2lzX2RlYnVnZ2VyX3ByZXNlbnQ7CisgICAgUmVnT3BlbktleVQgICAgICAgICBtX3JlZ19vcGVuX2tleTsKKyAgICBSZWdRdWVyeVZhbHVlRXhUICAgIG1fcmVnX3F1ZXJ5X3ZhbHVlOworICAgIFJlZ0Nsb3NlS2V5VCAgICAgICAgbV9yZWdfY2xvc2Vfa2V5OworCit9IHNfaW5mbzsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworaW5mb190OjppbmZvX3QoKQoreworICAgIGR5bl9zeW1ib2woIG1faXNfZGVidWdnZXJfcHJlc2VudCwgImtlcm5lbDMyIiwgIklzRGVidWdnZXJQcmVzZW50IiApOworICAgIGR5bl9zeW1ib2woIG1fcmVnX29wZW5fa2V5LCAiYWR2YXBpMzIiLCAiUmVnT3BlbktleUEiICk7CisgICAgZHluX3N5bWJvbCggbV9yZWdfcXVlcnlfdmFsdWUsICJhZHZhcGkzMiIsICJSZWdRdWVyeVZhbHVlRXhBIiApOworICAgIGR5bl9zeW1ib2woIG1fcmVnX2Nsb3NlX2tleSwgImFkdmFwaTMyIiwgIlJlZ0Nsb3NlS2V5IiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZWxpZiBkZWZpbmVkKEJPT1NUX1VOSVhfQkFTRURfREVCVUcpCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICBmZF9ob2xkZXIgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RydWN0IGZkX2hvbGRlciB7CisgICAgZXhwbGljaXQgZmRfaG9sZGVyKCBpbnQgZmQgKSA6IG1fZmQoIGZkICkge30KKyAgICB+ZmRfaG9sZGVyKCkKKyAgICB7CisgICAgICAgIGlmKCBtX2ZkICE9IC0xICkKKyAgICAgICAgICAgIDo6Y2xvc2UoIG1fZmQgKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX2ZkOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgaW50IG1fZmQ7Cit9OworCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgcHJvY2Vzc19pbmZvICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RydWN0IHByb2Nlc3NfaW5mbyB7CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICAgICAgcHJvY2Vzc19pbmZvKCBpbnQgcGlkICk7CisKKyAgICAvLyBhY2Nlc3MgbWV0aG9kcworICAgIGludCAgICAgICAgICAgICBwYXJlbnRfcGlkKCkgY29uc3QgIHsgcmV0dXJuIG1fcGFyZW50X3BpZDsgfQorICAgIGNvbnN0X3N0cmluZyAgICBiaW5hcnlfbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmluYXJ5X25hbWU7IH0KKyAgICBjb25zdF9zdHJpbmcgICAgYmluYXJ5X3BhdGgoKSBjb25zdCB7IHJldHVybiBtX2JpbmFyeV9wYXRoOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgaW50ICAgICAgICAgICAgIG1fcGFyZW50X3BpZDsKKyAgICBjb25zdF9zdHJpbmcgICAgbV9iaW5hcnlfbmFtZTsKKyAgICBjb25zdF9zdHJpbmcgICAgbV9iaW5hcnlfcGF0aDsKKworI2lmIGRlZmluZWQoQk9PU1RfU1VOX0JBU0VEX0RFQlVHKQorICAgIHN0cnVjdCBwc2luZm8gICBtX3BzaTsKKyNlbGlmIGRlZmluZWQoQk9PU1RfTElOVVhfQkFTRURfREVCVUcpCisgICAgY2hhciAgICAgICAgICAgIG1fc3RhdF9saW5lW0JPT1NUX1RFU1RfU1RBVF9MSU5FX01BWCsxXTsKKyNlbmRpZgorICAgIGNoYXIgICAgICAgICAgICBtX2JpbmFyeV9wYXRoX2J1ZmZbNTAwKzFdOyAvLyAhISA/PworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworcHJvY2Vzc19pbmZvOjpwcm9jZXNzX2luZm8oIGludCBwaWQgKQorOiBtX3BhcmVudF9waWQoIDAgKQoreworI2lmIGRlZmluZWQoQk9PU1RfU1VOX0JBU0VEX0RFQlVHKQorICAgIGNoYXIgZm5hbWVfYnVmZlszMF07CisKKyAgICA6OnNucHJpbnRmKCBmbmFtZV9idWZmLCBzaXplb2YoZm5hbWVfYnVmZiksICIvcHJvYy8lZC9wc2luZm8iLCBwaWQgKTsKKworICAgIGZkX2hvbGRlciBwc2luZm9fZmQoIDo6b3BlbiggZm5hbWVfYnVmZiwgT19SRE9OTFkgKSApOworCisgICAgaWYoIHBzaW5mb19mZCA9PSAtMSApCisgICAgICAgIHJldHVybjsKKworICAgIGlmKCA6OnJlYWQoIHBzaW5mb19mZCwgJm1fcHNpLCBzaXplb2YobV9wc2kpICkgPT0gLTEgKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhcmVudF9waWQgPSBtX3BzaS5wcl9wcGlkOworCisgICAgbV9iaW5hcnlfbmFtZS5hc3NpZ24oIG1fcHNpLnByX2ZuYW1lICk7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vCisgICAgCisgICAgOjpzbnByaW50ZiggZm5hbWVfYnVmZiwgc2l6ZW9mKGZuYW1lX2J1ZmYpLCAiL3Byb2MvJWQvYXMiLCBwaWQgKTsKKworICAgIGZkX2hvbGRlciBhc19mZCggOjpvcGVuKCBmbmFtZV9idWZmLCBPX1JET05MWSApICk7CisgICAgdWludHB0cl90ICAgYmluYXJ5X25hbWVfcG9zOworICAKKyAgICAvLyAhISA/PyBjb3VsZCB3ZSBhdm9pZCByZWFkaW5nIHdob2xlIG1fYmluYXJ5X3BhdGhfYnVmZj8KKyAgICBpZiggYXNfZmQgPT0gLTEgfHwKKyAgICAgICAgOjpsc2VlayggYXNfZmQsIG1fcHNpLnByX2FyZ3YsIFNFRUtfU0VUICkgPT0gLTEgfHwKKyAgICAgICAgOjpyZWFkICggYXNfZmQsICZiaW5hcnlfbmFtZV9wb3MsIHNpemVvZihiaW5hcnlfbmFtZV9wb3MpICkgPT0gLTEgfHwKKyAgICAgICAgOjpsc2VlayggYXNfZmQsIGJpbmFyeV9uYW1lX3BvcywgU0VFS19TRVQgKSA9PSAtMSB8fAorICAgICAgICA6OnJlYWQgKCBhc19mZCwgbV9iaW5hcnlfcGF0aF9idWZmLCBzaXplb2YobV9iaW5hcnlfcGF0aF9idWZmKSApID09IC0xICkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBtX2JpbmFyeV9wYXRoLmFzc2lnbiggbV9iaW5hcnlfcGF0aF9idWZmICk7CisgICAgICAgIAorI2VsaWYgZGVmaW5lZChCT09TVF9MSU5VWF9CQVNFRF9ERUJVRykKKyAgICBjaGFyIGZuYW1lX2J1ZmZbMzBdOworCisgICAgOjpzbnByaW50ZiggZm5hbWVfYnVmZiwgc2l6ZW9mKGZuYW1lX2J1ZmYpLCAiL3Byb2MvJWQvc3RhdCIsIHBpZCApOworCisgICAgZmRfaG9sZGVyIHBzaW5mb19mZCggOjpvcGVuKCBmbmFtZV9idWZmLCBPX1JET05MWSApICk7CisKKyAgICBpZiggcHNpbmZvX2ZkID09IC0xICkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3NpemVfdCBudW1fcmVhZCA9IDo6cmVhZCggcHNpbmZvX2ZkLCBtX3N0YXRfbGluZSwgc2l6ZW9mKG1fc3RhdF9saW5lKS0xICk7CisgICAgaWYoIG51bV9yZWFkID09IC0xICkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdGF0X2xpbmVbbnVtX3JlYWRdID0gMDsKKworICAgIGNoYXIgY29uc3QqIG5hbWVfYmVnID0gbV9zdGF0X2xpbmU7CisgICAgd2hpbGUoICpuYW1lX2JlZyAmJiAqbmFtZV9iZWcgIT0gJygnICkKKyAgICAgICAgKytuYW1lX2JlZzsKKworICAgIGNoYXIgY29uc3QqIG5hbWVfZW5kID0gbmFtZV9iZWcrMTsKKyAgICB3aGlsZSggKm5hbWVfZW5kICYmICpuYW1lX2VuZCAhPSAnKScgKQorICAgICAgICArK25hbWVfZW5kOworCisgICAgc3RkOjpzc2NhbmYoIG5hbWVfZW5kKzEsICIlKnMlZCIsICZtX3BhcmVudF9waWQgKTsKKworICAgIG1fYmluYXJ5X25hbWUuYXNzaWduKCBuYW1lX2JlZysxLCBuYW1lX2VuZCApOworCisgICAgOjpzbnByaW50ZiggZm5hbWVfYnVmZiwgc2l6ZW9mKGZuYW1lX2J1ZmYpLCAiL3Byb2MvJWQvZXhlIiwgcGlkICk7CisgICAgbnVtX3JlYWQgPSA6OnJlYWRsaW5rKCBmbmFtZV9idWZmLCBtX2JpbmFyeV9wYXRoX2J1ZmYsIHNpemVvZihtX2JpbmFyeV9wYXRoX2J1ZmYpLTEgKTsKKworICAgIGlmKCBudW1fcmVhZCA9PSAtMSApCisgICAgICAgIHJldHVybjsKKworICAgIG1fYmluYXJ5X3BhdGhfYnVmZltudW1fcmVhZF0gPSAwOworICAgIG1fYmluYXJ5X3BhdGguYXNzaWduKCBtX2JpbmFyeV9wYXRoX2J1ZmYsIG51bV9yZWFkICk7CisjZW5kaWYKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIHByZXBhcmVfd2luZG93X3RpdGxlICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdGF0aWMgY2hhcioKK3ByZXBhcmVfd2luZG93X3RpdGxlKCBkYmdfc3RhcnR1cF9pbmZvIGNvbnN0JiBkc2kgKQoreworICAgIHR5cGVkZWYgdW5pdF90ZXN0Ojpjb25zdF9zdHJpbmcgc3RyX3Q7CisKKyAgICBzdGF0aWMgY2hhciB0aXRsZV9zdHJbNTBdOworCisgICAgc3RyX3QgcGF0aF9zZXAoICJcXC8iICk7CisKKyAgICBzdHJfdDo6aXRlcmF0b3IgIGl0ID0gdW5pdF90ZXN0OjpmaW5kX2xhc3Rfb2YoIGRzaS5iaW5hcnlfcGF0aC5iZWdpbigpLCBkc2kuYmluYXJ5X3BhdGguZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX3NlcC5iZWdpbigpLCBwYXRoX3NlcC5lbmQoKSApOworCisgICAgaWYoIGl0ID09IGRzaS5iaW5hcnlfcGF0aC5lbmQoKSApCisgICAgICAgIGl0ID0gZHNpLmJpbmFyeV9wYXRoLmJlZ2luKCk7CisgICAgZWxzZQorICAgICAgICArK2l0OworCisgICAgOjpzbnByaW50ZiggdGl0bGVfc3RyLCBzaXplb2YodGl0bGVfc3RyKSwgIiUqcyAlbGQiLCAoaW50KShkc2kuYmluYXJ5X3BhdGguZW5kKCktaXQpLCBpdCwgZHNpLnBpZCApOworCisgICAgcmV0dXJuIHRpdGxlX3N0cjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgc2F2ZV9leGVjbHAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0eXBlZGVmIHVuaXRfdGVzdDo6YmFzaWNfY3N0cmluZzxjaGFyPiBtYnVmZmVyOworCitpbmxpbmUgY2hhcioKK2NvcHlfYXJnKCBtYnVmZmVyJiBkZXN0LCBjb25zdF9zdHJpbmcgYXJnICkKK3sKKyAgICBpZiggZGVzdC5zaXplKCkgPCBhcmcuc2l6ZSgpKzEgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNoYXIqIHJlcyA9IGRlc3QuYmVnaW4oKTsKKworICAgIHN0ZDo6bWVtY3B5KCByZXMsIGFyZy5iZWdpbigpLCBhcmcuc2l6ZSgpKzEgKTsKKworICAgIGRlc3QudHJpbV9sZWZ0KCBhcmcuc2l6ZSgpKzEgKTsKKworICAgIHJldHVybiByZXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wKK3NhZmVfZXhlY2xwKCBjaGFyIGNvbnN0KiBmaWxlLCAuLi4gKQoreworICAgIHN0YXRpYyBjaGFyKiBhcmd2X2J1ZmZbMjAwXTsKKworICAgIHZhX2xpc3QgICAgIGFyZ3M7CisgICAgY2hhciBjb25zdCogYXJnOworCisgICAgLy8gZmlyc3QgY2FsY3VsYXRlIGFjdHVhbCBudW1iZXIgb2YgYXJndW1lbnRzCisgICAgaW50ICAgICAgICAgbnVtX2FyZ3MgPSAyOyAvLyBmaWxlIG5hbWUgYW5kIDAgYXQgbGVhc3QKKworICAgIHZhX3N0YXJ0KCBhcmdzLCBmaWxlICk7CisgICAgd2hpbGUoICEhKGFyZyA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKSkgKQorICAgICAgICBudW1fYXJncysrOworICAgIHZhX2VuZCggYXJncyApOworCisgICAgLy8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGFyZ3VtZW50IHBvaW50ZXJzIGFycmF5CisgICAgY2hhcioqICAgICAgYXJndl9pdCAgPSBhcmd2X2J1ZmY7CisgICAgbWJ1ZmZlciAgICAgd29ya19idWZmKCByZWludGVycHJldF9jYXN0PGNoYXIqPihhcmd2X2J1ZmYpLCBzaXplb2YoYXJndl9idWZmKSApOworICAgIHdvcmtfYnVmZi50cmltX2xlZnQoIG51bV9hcmdzICogc2l6ZW9mKGNoYXIqKSApOworCisgICAgLy8gY29weSBhbGwgdGhlIGFyZ3VtZW50IHZhbHVlcyBpbnRvIGxvY2FsIHN0b3JhZ2UKKyAgICBpZiggISgqYXJndl9pdCsrID0gY29weV9hcmcoIHdvcmtfYnVmZiwgZmlsZSApKSApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHByaW50ZiggIiEhICVzXG4iLCBmaWxlICk7CisKKyAgICB2YV9zdGFydCggYXJncywgZmlsZSApOworICAgIHdoaWxlKCAhIShhcmcgPSB2YV9hcmcoIGFyZ3MsIGNoYXIgY29uc3QqICkpICkgeworICAgICAgICBwcmludGYoICIhISAlc1xuIiwgYXJnICk7CisgICAgICAgIGlmKCAhKCphcmd2X2l0KysgPSBjb3B5X2FyZyggd29ya19idWZmLCBhcmcgKSkgKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICB2YV9lbmQoIGFyZ3MgKTsKKworICAgICphcmd2X2l0ID0gMDsKKworICAgIHJldHVybiA6OmV4ZWN2cCggZmlsZSwgYXJndl9idWZmICkgIT0gLTE7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgIHN0YXJ0X2RlYnVnZ2VyX2luX2VtYWNzICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RhdGljIHZvaWQKK3N0YXJ0X2RlYnVnZ2VyX2luX2VtYWNzKCBkYmdfc3RhcnR1cF9pbmZvIGNvbnN0JiBkc2ksIGNoYXIgY29uc3QqIGVtYWNzX25hbWUsIGNoYXIgY29uc3QqIGRiZ19jb21tYW5kICkKK3sKKyAgICBjaGFyIGNvbnN0KiB0aXRsZSA9IHByZXBhcmVfd2luZG93X3RpdGxlKCBkc2kgKTsKKworICAgIGlmKCAhdGl0bGUgKQorICAgICAgICByZXR1cm47CisKKyAgICBkc2kuZGlzcGxheS5pc19lbXB0eSgpCisgICAgICAgID8gc2FmZV9leGVjbHAoIGVtYWNzX25hbWUsICItdGl0bGUiLCB0aXRsZSwgIi0tZXZhbCIsIGRiZ19jb21tYW5kLCAwICkKKyAgICAgICAgOiBzYWZlX2V4ZWNscCggZW1hY3NfbmFtZSwgIi10aXRsZSIsIHRpdGxlLCAiLWRpc3BsYXkiLCBkc2kuZGlzcGxheS5iZWdpbigpLCAiLS1ldmFsIiwgZGJnX2NvbW1hbmQsIDAgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICBnZGIgc3RhcnRlcnMgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdGF0aWMgY2hhciBjb25zdCoKK3ByZXBhcmVfZ2RiX2NtbmRfZmlsZSggZGJnX3N0YXJ0dXBfaW5mbyBjb25zdCYgZHNpICkKK3sKKyAgICAvLyBwcmVwYXJlIHBpZCB2YWx1ZQorICAgIGNoYXIgcGlkX2J1ZmZbMTZdOworICAgIDo6c25wcmludGYoIHBpZF9idWZmLCBzaXplb2YocGlkX2J1ZmYpLCAiJWxkIiwgZHNpLnBpZCApOworICAgIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIHBpZF9zdHIoIHBpZF9idWZmICk7CisKKyAgICBzdGF0aWMgY2hhciBjbWRfZmlsZV9uYW1lW10gPSAiL3RtcC9idGxfZ2RiX2NtZF9YWFhYWFgiOyAvLyAhISA/PworCisgICAgLy8gcHJlcGFyZSBjb21tYW5kcworICAgIGZkX2hvbGRlciBjbWRfZmQoIDo6bWtzdGVtcCggY21kX2ZpbGVfbmFtZSApICk7CisKKyAgICBpZiggY21kX2ZkID09IC0xICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyNkZWZpbmUgV1JJVEVfU1RSKCBzdHIgKSAgaWYoIDo6d3JpdGUoIGNtZF9mZCwgc3RyLmJlZ2luKCksIHN0ci5zaXplKCkgKSA9PSAtMSApIHJldHVybiAwOworI2RlZmluZSBXUklURV9DU1RSKCBzdHIgKSBpZiggOjp3cml0ZSggY21kX2ZkLCBzdHIsIHNpemVvZiggc3RyICktMSApID09IC0xICkgcmV0dXJuIDA7CisKKyAgICBXUklURV9DU1RSKCAiZmlsZSAiICk7CisgICAgV1JJVEVfU1RSKCBkc2kuYmluYXJ5X3BhdGggKTsKKyAgICBXUklURV9DU1RSKCAiXG5hdHRhY2ggIiApOworICAgIFdSSVRFX1NUUiggcGlkX3N0ciApOworICAgIFdSSVRFX0NTVFIoICJcbnNoZWxsIHVubGluayAiICk7CisgICAgV1JJVEVfU1RSKCBkc2kuaW5pdF9kb25lX2xvY2sgKTsKKyAgICBXUklURV9DU1RSKCAiXG5jb250IiApOworICAgIGlmKCBkc2kuYnJlYWtfb3JfY29udGludWUgKQorICAgICAgICBXUklURV9DU1RSKCAiXG51cCA0IiApOworICAgICAgICAgICAgCisgICAgV1JJVEVfQ1NUUiggIlxuZWNobyBcXG4iICk7IC8vICEhID8/CisgICAgV1JJVEVfQ1NUUiggIlxubGlzdCAtIiApOworICAgIFdSSVRFX0NTVFIoICJcbmxpc3QiICk7CisgICAgV1JJVEVfQ1NUUiggIlxuc2hlbGwgdW5saW5rICIgKTsKKyAgICBXUklURV9DU1RSKCBjbWRfZmlsZV9uYW1lICk7CisKKyAgICByZXR1cm4gY21kX2ZpbGVfbmFtZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RhdGljIHZvaWQKK3N0YXJ0X2dkYl9pbl9jb25zb2xlKCBkYmdfc3RhcnR1cF9pbmZvIGNvbnN0JiBkc2kgKQoreworICAgIGNoYXIgY29uc3QqIGNtbmRfZmlsZV9uYW1lID0gcHJlcGFyZV9nZGJfY21uZF9maWxlKCBkc2kgKTsKKworICAgIGlmKCAhY21uZF9maWxlX25hbWUgKQorICAgICAgICByZXR1cm47CisKKyAgICBzYWZlX2V4ZWNscCggImdkYiIsICItcSIsICIteCIsIGNtbmRfZmlsZV9uYW1lLCAwICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0YXRpYyB2b2lkCitzdGFydF9nZGJfaW5feHRlcm0oIGRiZ19zdGFydHVwX2luZm8gY29uc3QmIGRzaSApCit7CisgICAgY2hhciBjb25zdCogdGl0bGUgICAgICAgICAgID0gcHJlcGFyZV93aW5kb3dfdGl0bGUoIGRzaSApOworICAgIGNoYXIgY29uc3QqIGNtbmRfZmlsZV9uYW1lICA9IHByZXBhcmVfZ2RiX2NtbmRfZmlsZSggZHNpICk7CisKKyAgICBpZiggIXRpdGxlIHx8ICFjbW5kX2ZpbGVfbmFtZSApCisgICAgICAgIHJldHVybjsKKworICAgIHNhZmVfZXhlY2xwKCAieHRlcm0iLCAiLVQiLCB0aXRsZSwgIi1kaXNwbGF5IiwgZHNpLmRpc3BsYXkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgIi1iZyIsICJibGFjayIsICItZmciLCAid2hpdGUiLCAiLWdlb21ldHJ5IiwgIjg4eDMwKzEwKzEwIiwgIi1mbiIsICI5eDE1IiwgIi1lIiwKKyAgICAgICAgICAgICAgICAgImdkYiIsICItcSIsICIteCIsIGNtbmRfZmlsZV9uYW1lLCAwICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0YXRpYyB2b2lkCitzdGFydF9nZGJfaW5fZW1hY3MoIGRiZ19zdGFydHVwX2luZm8gY29uc3QmIGRzaSApCit7CisgICAgY2hhciBjb25zdCogY21uZF9maWxlX25hbWUgID0gcHJlcGFyZV9nZGJfY21uZF9maWxlKCBkc2kgKTsKKyAgICBpZiggIWNtbmRfZmlsZV9uYW1lICkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hhciBkYmdfY21kX2J1ZmZbNTAwXTsgLy8gISEgPz8KKyAgICA6OnNucHJpbnRmKCBkYmdfY21kX2J1ZmYsIHNpemVvZihkYmdfY21kX2J1ZmYpLCAiKHByb2duIChnZGIgXCJnZGIgLXEgLXggJXNcIikpIiwgY21uZF9maWxlX25hbWUgKTsKKworICAgIHN0YXJ0X2RlYnVnZ2VyX2luX2VtYWNzKCBkc2ksICJlbWFjcyIsIGRiZ19jbWRfYnVmZiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdGF0aWMgdm9pZAorc3RhcnRfZ2RiX2luX3hlbWFjcyggZGJnX3N0YXJ0dXBfaW5mbyBjb25zdCYgKQoreworICAgIC8vICEhID8/Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgZGJ4IHN0YXJ0ZXJzICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RhdGljIGNoYXIgY29uc3QqCitwcmVwYXJlX2RieF9jbWRfbGluZSggZGJnX3N0YXJ0dXBfaW5mbyBjb25zdCYgZHNpLCBib29sIGxpc3Rfc291cmNlID0gdHJ1ZSApCit7CisgICAgc3RhdGljIGNoYXIgY21kX2xpbmVfYnVmZls1MDBdOyAvLyAhISA/PworCisgICAgOjpzbnByaW50ZiggY21kX2xpbmVfYnVmZiwgc2l6ZW9mKGNtZF9saW5lX2J1ZmYpLCAidW5saW5rICVzO2NvbnQ7JXMlcyIsIAorICAgICAgICAgICAgICAgICAgIGRzaS5pbml0X2RvbmVfbG9jay5iZWdpbigpLCAKKyAgICAgICAgICAgICAgICAgICBkc2kuYnJlYWtfb3JfY29udGludWUgPyAidXAgMjsiOiAiIiwgCisgICAgICAgICAgICAgICAgICAgbGlzdF9zb3VyY2UgPyAiZWNobyBcIiBcIjtsaXN0IC13MzsiIDogIiIgKTsKKworICAgIHJldHVybiBjbWRfbGluZV9idWZmOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdGF0aWMgdm9pZAorc3RhcnRfZGJ4X2luX2NvbnNvbGUoIGRiZ19zdGFydHVwX2luZm8gY29uc3QmIGRzaSApCit7CisgICAgY2hhciBwaWRfYnVmZlsxNl07CisgICAgOjpzbnByaW50ZiggcGlkX2J1ZmYsIHNpemVvZihwaWRfYnVmZiksICIlbGQiLCBkc2kucGlkICk7CisKKyAgICBzYWZlX2V4ZWNscCggImRieCIsICItcSIsICItYyIsIHByZXBhcmVfZGJ4X2NtZF9saW5lKCBkc2kgKSwgZHNpLmJpbmFyeV9wYXRoLmJlZ2luKCksIHBpZF9idWZmLCAwICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0YXRpYyB2b2lkCitzdGFydF9kYnhfaW5feHRlcm0oIGRiZ19zdGFydHVwX2luZm8gY29uc3QmIGRzaSApCit7CisgICAgY2hhciBjb25zdCogdGl0bGUgPSBwcmVwYXJlX3dpbmRvd190aXRsZSggZHNpICk7CisgICAgaWYoICF0aXRsZSApCisgICAgICAgIHJldHVybjsKKworICAgIGNoYXIgcGlkX2J1ZmZbMTZdOyAvLyAhISA/PworICAgIDo6c25wcmludGYoIHBpZF9idWZmLCBzaXplb2YocGlkX2J1ZmYpLCAiJWxkIiwgZHNpLnBpZCApOworICAgIAorICAgIHNhZmVfZXhlY2xwKCAieHRlcm0iLCAiLVQiLCB0aXRsZSwgIi1kaXNwbGF5IiwgZHNpLmRpc3BsYXkuYmVnaW4oKSwgCisgICAgICAgICAgICAgICAgICAgICItYmciLCAiYmxhY2siLCAiLWZnIiwgIndoaXRlIiwgIi1nZW9tZXRyeSIsICI4OHgzMCsxMCsxMCIsICItZm4iLCAiOXgxNSIsICItZSIsCisgICAgICAgICAgICAgICAgICJkYngiLCAiLXEiLCAiLWMiLCBwcmVwYXJlX2RieF9jbWRfbGluZSggZHNpICksIGRzaS5iaW5hcnlfcGF0aC5iZWdpbigpLCBwaWRfYnVmZiwgMCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdGF0aWMgdm9pZAorc3RhcnRfZGJ4X2luX2VtYWNzKCBkYmdfc3RhcnR1cF9pbmZvIGNvbnN0JiAvKmRzaSovICkKK3sKKy8vICAgIGNoYXIgZGJnX2NtZF9idWZmWzUwMF07IC8vICEhID8/CisvLworLy8gICAgOjpzbnByaW50ZiggZGJnX2NtZF9idWZmLCBzaXplb2YoZGJnX2NtZF9idWZmKSwgIihwcm9nbiAoZGJ4IFwiZGJ4IC1xIC1jIGNvbnQgJXMgJWxkXCIpKSIsIGRzaS5iaW5hcnlfcGF0aC5iZWdpbigpLCBkc2kucGlkICk7CisKKy8vICAgIHN0YXJ0X2RlYnVnZ2VyX2luX2VtYWNzKCBkc2ksICJlbWFjcyIsIGRiZ19jbWRfYnVmZiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdGF0aWMgdm9pZAorc3RhcnRfZGJ4X2luX3hlbWFjcyggZGJnX3N0YXJ0dXBfaW5mbyBjb25zdCYgKQoreworICAgIC8vICEhID8/Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0YXRpYyB2b2lkCitzdGFydF9kYnhfaW5fZGRkKCBkYmdfc3RhcnR1cF9pbmZvIGNvbnN0JiBkc2kgKQoreworICAgIGNoYXIgY29uc3QqIHRpdGxlID0gcHJlcGFyZV93aW5kb3dfdGl0bGUoIGRzaSApOworICAgIGlmKCAhdGl0bGUgKQorICAgICAgICByZXR1cm47CisKKyAgICBjaGFyIHBpZF9idWZmWzE2XTsgLy8gISEgPz8KKyAgICA6OnNucHJpbnRmKCBwaWRfYnVmZiwgc2l6ZW9mKHBpZF9idWZmKSwgIiVsZCIsIGRzaS5waWQgKTsKKyAgICAKKyAgICBzYWZlX2V4ZWNscCggImRkZCIsICItZGlzcGxheSIsIGRzaS5kaXNwbGF5LmJlZ2luKCksCisgICAgICAgICAgICAgICAgICItLWRieCIsICItcSIsICItYyIsIHByZXBhcmVfZGJ4X2NtZF9saW5lKCBkc2ksIGZhbHNlICksIGRzaS5iaW5hcnlfcGF0aC5iZWdpbigpLCBwaWRfYnVmZiwgMCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgZGVidWc6OmluZm9fdCAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0YXRpYyBzdHJ1Y3QgaW5mb190IHsKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGluZm9fdCgpOworCisgICAgLy8gUHVibGljIHByb3BlcnRpZXMKKyAgICB1bml0X3Rlc3Q6OnJlYWR3cml0ZV9wcm9wZXJ0eTxzdGQ6OnN0cmluZz4gIHBfZGJnOworICAgIAorICAgIC8vIERhdGEgbWVtYmVycworICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLGRiZ19zdGFydGVyPiAgICAgICAgICAgbV9kYmdfc3RhcnRlcl9yZWc7Cit9IHNfaW5mbzsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworaW5mb190OjppbmZvX3QoKQoreworICAgIHBfZGJnLnZhbHVlID0gOjpnZXRlbnYoICJESVNQTEFZIiApCisgICAgICAgID8gc3RkOjpzdHJpbmcoIEJPT1NUX1NUUklOR0laRSggQk9PU1RfVEVTVF9HVUlfREJHICkgKQorICAgICAgICA6IHN0ZDo6c3RyaW5nKCBCT09TVF9TVFJJTkdJWkUoIEJPT1NUX1RFU1RfQ05MX0RCRyApICk7CisgICAgICAgIAorICAgIG1fZGJnX3N0YXJ0ZXJfcmVnW3N0ZDo6c3RyaW5nKCJnZGIiKV0gICAgICAgICAgID0gJnN0YXJ0X2dkYl9pbl9jb25zb2xlOworICAgIG1fZGJnX3N0YXJ0ZXJfcmVnW3N0ZDo6c3RyaW5nKCJnZGItZW1hY3MiKV0gICAgID0gJnN0YXJ0X2dkYl9pbl9lbWFjczsKKyAgICBtX2RiZ19zdGFydGVyX3JlZ1tzdGQ6OnN0cmluZygiZ2RiLXh0ZXJtIildICAgICA9ICZzdGFydF9nZGJfaW5feHRlcm07CisgICAgbV9kYmdfc3RhcnRlcl9yZWdbc3RkOjpzdHJpbmcoImdkYi14ZW1hY3MiKV0gICAgPSAmc3RhcnRfZ2RiX2luX3hlbWFjczsKKworICAgIG1fZGJnX3N0YXJ0ZXJfcmVnW3N0ZDo6c3RyaW5nKCJkYngiKV0gICAgICAgICAgID0gJnN0YXJ0X2RieF9pbl9jb25zb2xlOworICAgIG1fZGJnX3N0YXJ0ZXJfcmVnW3N0ZDo6c3RyaW5nKCJkYngtZW1hY3MiKV0gICAgID0gJnN0YXJ0X2RieF9pbl9lbWFjczsKKyAgICBtX2RiZ19zdGFydGVyX3JlZ1tzdGQ6OnN0cmluZygiZGJ4LXh0ZXJtIildICAgICA9ICZzdGFydF9kYnhfaW5feHRlcm07CisgICAgbV9kYmdfc3RhcnRlcl9yZWdbc3RkOjpzdHJpbmcoImRieC14ZW1hY3MiKV0gICAgPSAmc3RhcnRfZGJ4X2luX3hlbWFjczsKKyAgICBtX2RiZ19zdGFydGVyX3JlZ1tzdGQ6OnN0cmluZygiZGJ4LWRkZCIpXSAgICAgICA9ICZzdGFydF9kYnhfaW5fZGRkOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZW5kaWYKKworfSAvLyBsb2NhbCBuYW1lc3BhY2UKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICBjaGVjayBpZiBwcm9ncmFtIGlzIHJ1bm5pbmcgdW5kZXIgZGVidWdnZXIgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitib29sCit1bmRlcl9kZWJ1Z2dlcigpCit7CisjaWYgZGVmaW5lZChCT09TVF9XSU4zMl9CQVNFRF9ERUJVRykgLy8gKioqKioqKioqKioqKioqKioqKioqKiogV0lOMzIKKworICAgIHJldHVybiAhIXNfaW5mby5tX2lzX2RlYnVnZ2VyX3ByZXNlbnQgJiYgc19pbmZvLm1faXNfZGVidWdnZXJfcHJlc2VudCgpOworCisjZWxpZiBkZWZpbmVkKEJPT1NUX1VOSVhfQkFTRURfREVCVUcpIC8vICoqKioqKioqKioqKioqKioqKioqKiogVU5JWAorCisgICAgLy8gISEgPz8gY291bGQvc2hvdWxkIHdlIGNhY2hlIHRoZSByZXN1bHQgc29tZWhvdz8KKyAgICBjb25zdF9zdHJpbmcgICAgZGJnX2xpc3QgPSBCT09TVF9URVNUX1NUUklOR0laRSggQk9PU1RfVEVTVF9EQkdfTElTVCApOworCisgICAgcGlkX3QgcGlkID0gOjpnZXRwaWQoKTsKKworICAgIHdoaWxlKCBwaWQgIT0gMCApIHsKKyAgICAgICAgcHJvY2Vzc19pbmZvIHBpKCBwaWQgKTsKKworICAgICAgICAvLyAhISA/PyBzaG91bGQgd2UgdXNlIHRva2VuaXplciBoZXJlIGluc3RlYWQ/CisgICAgICAgIGlmKCBkYmdfbGlzdC5maW5kKCBwaS5iaW5hcnlfbmFtZSgpICkgIT0gY29uc3Rfc3RyaW5nOjpucG9zICkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHBpZCA9IChwaS5wYXJlbnRfcGlkKCkgPT0gcGlkID8gMCA6IHBpLnBhcmVudF9waWQoKSk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworCisjZWxzZSAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogZGVmYXVsdAorCisgICAgcmV0dXJuIGZhbHNlOworCisjZW5kaWYKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgIGNhdXNlIHByb2dyYW0gdG8gYnJlYWsgZXhlY3V0aW9uICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgaW4gZGVidWdnZXIgYXQgY2FsbCBwb2ludCAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordm9pZAorZGVidWdnZXJfYnJlYWsoKQoreworICAgIC8vICEhID8/IGF1dG8tc3RhcnQgZGVidWdnZXI/CisKKyNpZiBkZWZpbmVkKEJPT1NUX1dJTjMyX0JBU0VEX0RFQlVHKSAvLyAqKioqKioqKioqKioqKioqKioqKioqKiBXSU4zMgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA+PSAxMzAwKSAgICAgICAgICAgICAgICAgICAgICAgfHwgIFwKKyAgICBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA+PSAzKSAmJiAhZGVmaW5lZChfX01JTkdXMzJfXykgICB8fCAgXAorICAgIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikKKyMgICBkZWZpbmUgQk9PU1RfREVCVUdfQlJFQUsgICAgX19kZWJ1Z2JyZWFrCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9ERUJVR19CUkVBSyAgICBEZWJ1Z0JyZWFrCisjZW5kaWYKKworI2lmbmRlZiBfX01JTkdXMzJfXworICAgIGlmKCAhdW5kZXJfZGVidWdnZXIoKSApIHsKKyAgICAgICAgX190cnkgeworICAgICAgICAgICAgX190cnkgeworICAgICAgICAgICAgICAgIEJPT1NUX0RFQlVHX0JSRUFLKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBfX2V4Y2VwdCggVW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyKEdldEV4Y2VwdGlvbkluZm9ybWF0aW9uKCkpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBVc2VyIG9wdGVkIHRvIGlnbm9yZSB0aGUgYnJlYWtwb2ludAorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfX2V4Y2VwdCAoRVhDRVBUSU9OX0VYRUNVVEVfSEFORExFUikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gSWYgd2UgZ290IGhlcmUsIHRoZSB1c2VyIGhhcyBwdXNoZWQgRGVidWcuIERlYnVnZ2VyIGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gb3VyIHByb2Nlc3MgYW5kIHdlCisgICAgICAgICAgICAvLyBjb250aW51ZSB0byBsZXQgdGhlIGFub3RoZXIgQk9PU1RfREVCVUdfQlJFQUsgdG8gYmUgY2FsbGVkLgorICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICBCT09TVF9ERUJVR19CUkVBSygpOworCisjZWxpZiBkZWZpbmVkKEJPT1NUX1VOSVhfQkFTRURfREVCVUcpIC8vICoqKioqKioqKioqKioqKioqKioqKiogVU5JWAorCisgICAgOjpraWxsKCA6OmdldHBpZCgpLCBTSUdUUkFQICk7CisKKyNlbHNlIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBkZWZhdWx0CisKKyNlbmRpZgorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICBjb25zb2xlIGRlYnVnZ2VyIHNldHVwICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNpZiBkZWZpbmVkKEJPT1NUX1VOSVhfQkFTRURfREVCVUcpIC8vICoqKioqKioqKioqKioqKioqKioqKioqKiBVTklYCisKK3N0ZDo6c3RyaW5nCitzZXRfZGVidWdnZXIoIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIGRiZ19pZCwgZGJnX3N0YXJ0ZXIgcyApCit7CisgICAgc3RkOjpzdHJpbmcgb2xkID0gc19pbmZvLnBfZGJnOworCisgICAgYXNzaWduX29wKCBzX2luZm8ucF9kYmcudmFsdWUsIGRiZ19pZCwgMCApOworCisgICAgaWYoICEhcyApCisgICAgICAgIHNfaW5mby5tX2RiZ19zdGFydGVyX3JlZ1tzX2luZm8ucF9kYmddID0gczsKKworICAgIHJldHVybiBvbGQ7Cit9CisKKyNlbHNlICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBkZWZhdWx0CisKK3N0ZDo6c3RyaW5nCitzZXRfZGVidWdnZXIoIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nLCBkYmdfc3RhcnRlciApCit7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7Cit9CisKKyNlbmRpZgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgYXR0YWNoIGRlYnVnZ2VyIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2Jvb2wKK2F0dGFjaF9kZWJ1Z2dlciggYm9vbCBicmVha19vcl9jb250aW51ZSApCit7CisgICAgaWYoIHVuZGVyX2RlYnVnZ2VyKCkgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKEJPT1NUX1dJTjMyX0JBU0VEX0RFQlVHKSAvLyAqKioqKioqKioqKioqKioqKioqKioqKiBXSU4zMgorCisgICAgY29uc3QgaW50IE1BWF9DTURfTElORSA9IDIwMDsKKworICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworICAgIC8vIERlYnVnZ2VyICJyZWFkeSIgZXZlbnQKKworICAgIFNFQ1VSSVRZX0FUVFJJQlVURVMgYXR0cjsKKyAgICBhdHRyLm5MZW5ndGggICAgICAgICAgICAgICAgPSBzaXplb2YoYXR0cik7CisgICAgYXR0ci5scFNlY3VyaXR5RGVzY3JpcHRvciAgID0gTlVMTDsKKyAgICBhdHRyLmJJbmhlcml0SGFuZGxlICAgICAgICAgPSB0cnVlOworCisgICAgLy8gbWFudWFsIHJlc2V0dGFibGUsIGluaXRpYWxseSBub24gc2lnbmFsZWQsIHVubmFtZWQgZXZlbnQsCisgICAgLy8gdGhhdCB3aWxsIHNpZ25hbCBtZSB0aGF0IGRlYnVnZ2VyIGluaXRpYWxpemF0aW9uIGlzIGRvbmUKKyAgICBIQU5ETEUgZGJnX2luaXRfZG9uZV9ldiA9IDo6Q3JlYXRlRXZlbnQoCisgICAgICAgICZhdHRyLCAgICAgICAgICAvLyBwb2ludGVyIHRvIHNlY3VyaXR5IGF0dHJpYnV0ZXMKKyAgICAgICAgdHJ1ZSwgICAgICAgICAgIC8vIGZsYWcgZm9yIG1hbnVhbC1yZXNldCBldmVudAorICAgICAgICBmYWxzZSwgICAgICAgICAgLy8gZmxhZyBmb3IgaW5pdGlhbCBzdGF0ZQorICAgICAgICBOVUxMICAgICAgICAgICAgLy8gcG9pbnRlciB0byBldmVudC1vYmplY3QgbmFtZQorICAgICk7CisKKyAgICBpZiggIWRiZ19pbml0X2RvbmVfZXYgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKyAgICAvLyBEZWJ1Z2dlciBjb21tYW5kIGxpbmUgZm9ybWF0CisKKyAgICBIS0VZIHJlZ19rZXk7CisKKyAgICBpZiggIXNfaW5mby5tX3JlZ19vcGVuX2tleSB8fCAoKnNfaW5mby5tX3JlZ19vcGVuX2tleSkoCisgICAgICAgICAgICBIS0VZX0xPQ0FMX01BQ0hJTkUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgb2Ygb3BlbiBrZXkKKyAgICAgICAgICAgICJTb2Z0d2FyZVxcTWljcm9zb2Z0XFxXaW5kb3dzIE5UXFxDdXJyZW50VmVyc2lvblxcQWVEZWJ1ZyIsIC8vIG5hbWUgb2Ygc3Via2V5IHRvIG9wZW4KKyAgICAgICAgICAgICZyZWdfa2V5ICkgIT0gRVJST1JfU1VDQ0VTUyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZHJlc3Mgb2YgaGFuZGxlIG9mIG9wZW4ga2V5CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNoYXIgIGZvcm1hdFtNQVhfQ01EX0xJTkVdOworICAgIERXT1JEIGZvcm1hdF9zaXplID0gTUFYX0NNRF9MSU5FOworICAgIERXT1JEIHR5cGUgPSBSRUdfU1o7CisKKyAgICBpZiggIXNfaW5mby5tX3JlZ19xdWVyeV92YWx1ZSB8fCAoKnNfaW5mby5tX3JlZ19xdWVyeV92YWx1ZSkoCisgICAgICAgICAgICByZWdfa2V5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgb2Ygb3BlbiBrZXkKKyAgICAgICAgICAgICJEZWJ1Z2dlciIsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5hbWUgb2Ygc3Via2V5IHRvIHF1ZXJ5CisgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNlcnZlZAorICAgICAgICAgICAgJnR5cGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgdHlwZQorICAgICAgICAgICAgKExQQllURSlmb3JtYXQsICAgICAgICAgICAgICAgICAgICAgLy8gYnVmZmVyIGZvciByZXR1cm5lZCBzdHJpbmcKKyAgICAgICAgICAgICZmb3JtYXRfc2l6ZSApICE9IEVSUk9SX1NVQ0NFU1MgKSAgIC8vIGluOiBidWZmZXIgc2l6ZTsgb3V0OiBhY3R1YWwgc2l6ZSBvZiByZXR1cm5lZCBzdHJpbmcKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYoICFzX2luZm8ubV9yZWdfY2xvc2Vfa2V5IHx8ICgqc19pbmZvLm1fcmVnX2Nsb3NlX2tleSkoIHJlZ19rZXkgKSAhPSBFUlJPUl9TVUNDRVNTICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisgICAgLy8gRGVidWdnZXIgY29tbWFuZCBsaW5lCisKKyAgICBjaGFyIGNtZF9saW5lW01BWF9DTURfTElORV07CisgICAgc3RkOjpzcHJpbnRmKCBjbWRfbGluZSwgZm9ybWF0LCA6OkdldEN1cnJlbnRQcm9jZXNzSWQoKSwgZGJnX2luaXRfZG9uZV9ldiApOworCisgICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisgICAgLy8gRGVidWdnZXIgd2luZG93IHBhcmFtZXRlcnMKKworICAgIFNUQVJUVVBJTkZPQSAgICBzdGFydHVwX2luZm87CisgICAgc3RkOjptZW1zZXQoICZzdGFydHVwX2luZm8sIDAsIHNpemVvZihzdGFydHVwX2luZm8pICk7CisKKyAgICBzdGFydHVwX2luZm8uY2IgICAgICAgICAgICAgPSBzaXplb2Yoc3RhcnR1cF9pbmZvKTsKKyAgICBzdGFydHVwX2luZm8uZHdGbGFncyAgICAgICAgPSBTVEFSVEZfVVNFU0hPV1dJTkRPVzsKKyAgICBzdGFydHVwX2luZm8ud1Nob3dXaW5kb3cgICAgPSBTV19TSE9XTk9STUFMOworCisgICAgLy8gZGVidWdnZXIgcHJvY2VzcyBzX2luZm8KKyAgICBQUk9DRVNTX0lORk9STUFUSU9OIGRlYnVnZ2VyX2luZm87CisKKyAgICBib29sIGNyZWF0ZWQgPSAhITo6Q3JlYXRlUHJvY2Vzc0EoCisgICAgICAgIE5VTEwsICAgICAgICAgICAvLyBwb2ludGVyIHRvIG5hbWUgb2YgZXhlY3V0YWJsZSBtb2R1bGU7IE5VTEwgLSB1c2UgdGhlIG9uZSBpbiBjb21tYW5kIGxpbmUKKyAgICAgICAgY21kX2xpbmUsICAgICAgIC8vIHBvaW50ZXIgdG8gY29tbWFuZCBsaW5lIHN0cmluZworICAgICAgICBOVUxMLCAgICAgICAgICAgLy8gcG9pbnRlciB0byBwcm9jZXNzIHNlY3VyaXR5IGF0dHJpYnV0ZXM7IE5VTEwgLSBkZWJ1Z2dlcidzIGhhbmRsZSBjYW4ndCBiZSBpbmhlcml0ZWQKKyAgICAgICAgTlVMTCwgICAgICAgICAgIC8vIHBvaW50ZXIgdG8gdGhyZWFkIHNlY3VyaXR5IGF0dHJpYnV0ZXM7IE5VTEwgLSBkZWJ1Z2dlcidzIGhhbmRsZSBjYW4ndCBiZSBpbmhlcml0ZWQKKyAgICAgICAgdHJ1ZSwgICAgICAgICAgIC8vIGRlYnVnZ2VyIGluaGVyaXQgb3BlbmVkIGhhbmRsZXMKKyAgICAgICAgMCwgICAgICAgICAgICAgIC8vIHByaW9yaXR5IGZsYWdzOyAwIC0gbm9ybWFsIHByaW9yaXR5CisgICAgICAgIE5VTEwsICAgICAgICAgICAvLyBwb2ludGVyIHRvIG5ldyBlbnZpcm9ubWVudCBibG9jazsgTlVMTCAtIHVzZSB0aGlzIHByb2Nlc3MgZW52aXJvbm1lbnQKKyAgICAgICAgTlVMTCwgICAgICAgICAgIC8vIHBvaW50ZXIgdG8gY3VycmVudCBkaXJlY3RvcnkgbmFtZTsgTlVMTCAtIHVzZSB0aGlzIHByb2Nlc3MgY29ycmVjdCBkaXJlY3RvcnkKKyAgICAgICAgJnN0YXJ0dXBfaW5mbywgIC8vIHBvaW50ZXIgdG8gU1RBUlRVUElORk8gdGhhdCBzcGVjaWZpZXMgbWFpbiB3aW5kb3cgYXBwZWFyYW5jZQorICAgICAgICAmZGVidWdnZXJfaW5mbyAgLy8gcG9pbnRlciB0byBQUk9DRVNTX0lORk9STUFUSU9OIHRoYXQgd2lsbCBjb250YWluIHRoZSBuZXcgcHJvY2VzcyBpZGVudGlmaWNhdGlvbgorICAgICk7CisKKyAgICBpZiggY3JlYXRlZCApCisgICAgICAgIDo6V2FpdEZvclNpbmdsZU9iamVjdCggZGJnX2luaXRfZG9uZV9ldiwgSU5GSU5JVEUgKTsKKworICAgIDo6Q2xvc2VIYW5kbGUoIGRiZ19pbml0X2RvbmVfZXYgKTsKKworICAgIGlmKCAhY3JlYXRlZCApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmKCBicmVha19vcl9jb250aW51ZSApCisgICAgICAgIGRlYnVnZ2VyX2JyZWFrKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKKworI2VsaWYgZGVmaW5lZChCT09TVF9VTklYX0JBU0VEX0RFQlVHKSAvLyAqKioqKioqKioqKioqKioqKioqKioqIFVOSVgKKworICAgIGNoYXIgaW5pdF9kb25lX2xvY2tfZm5bXSA9ICIvdG1wL2J0bF9kYmdfaW5pdF9kb25lX1hYWFhYWCI7CisgICAgZmRfaG9sZGVyIGluaXRfZG9uZV9sb2NrX2ZkKCA6Om1rc3RlbXAoIGluaXRfZG9uZV9sb2NrX2ZuICkgKTsKKworICAgIGlmKCBpbml0X2RvbmVfbG9ja19mZCA9PSAtMSApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBwaWRfdCBjaGlsZF9waWQgPSBmb3JrKCk7CisKKyAgICBpZiggY2hpbGRfcGlkID09IC0xICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYoIGNoaWxkX3BpZCAhPSAwICkgeyAvLyBwYXJlbnQgcHJvY2VzcyAtIGhlcmUgd2Ugd2lsbCBzdGFydCB0aGUgZGVidWdnZXIKKyAgICAgICAgZGJnX3N0YXJ0dXBfaW5mbyBkc2k7CisgICAgCisgICAgICAgIHByb2Nlc3NfaW5mbyBwaSggY2hpbGRfcGlkICk7CisgICAgICAgIGlmKCBwaS5iaW5hcnlfcGF0aCgpLmlzX2VtcHR5KCkgKQorICAgICAgICAgICAgOjpleGl0KCAtMSApOworCisgICAgICAgIGRzaS5waWQgICAgICAgICAgICAgICAgID0gY2hpbGRfcGlkOworICAgICAgICBkc2kuYnJlYWtfb3JfY29udGludWUgICA9IGJyZWFrX29yX2NvbnRpbnVlOworICAgICAgICBkc2kuYmluYXJ5X3BhdGggICAgICAgICA9IHBpLmJpbmFyeV9wYXRoKCk7CisgICAgICAgIGRzaS5kaXNwbGF5ICAgICAgICAgICAgID0gOjpnZXRlbnYoICJESVNQTEFZIiApOworICAgICAgICBkc2kuaW5pdF9kb25lX2xvY2sgICAgICA9IGluaXRfZG9uZV9sb2NrX2ZuOworICAgICAgICAKKyAgICAgICAgZGJnX3N0YXJ0ZXIgc3RhcnRlciA9IHNfaW5mby5tX2RiZ19zdGFydGVyX3JlZ1tzX2luZm8ucF9kYmddOworICAgICAgICBpZiggISFzdGFydGVyICkKKyAgICAgICAgICAgIHN0YXJ0ZXIoIGRzaSApOworCisgICAgICAgIDo6cGVycm9yKCAiQm9vc3QuVGVzdCBleGVjdXRpb24gbW9uaXRvciBmYWlsZWQgdG8gc3RhcnQgYSBkZWJ1Z2dlcjoiICk7CisKKyAgICAgICAgOjpleGl0KCAtMSApOworICAgIH0KKworICAgIC8vIGNoaWxkIHByb2Nlc3MgLSBoZXJlIHdlIHdpbGwgY29udGludWUgb3VyIHRlc3QgbW9kdWxlIGV4ZWN1dGlvbiA7IC8vICEhID8/IHNob3VsZCBpdCBiZSB2aWNlIHZlcnNhCisKKyAgICB3aGlsZSggOjphY2Nlc3MoIGluaXRfZG9uZV9sb2NrX2ZuLCBGX09LICkgPT0gMCApIHsKKyAgICAgICAgc3RydWN0IHRpbWV2YWwgdG8gPSB7IDAsIDEwMCB9OworCisgICAgICAgIDo6c2VsZWN0KCAwLCAwLCAwLCAwLCAmdG8gKTsKKyAgICB9CisKKy8vICAgIGNoYXIgZHVtbXk7CisvLyAgICB3aGlsZSggOjpyZWFkKCBpbml0X2RvbmVfbG9ja19mZCwgJmR1bW15LCBzaXplb2YoY2hhcikgKSA9PSAwICk7CisKKyAgICBpZiggYnJlYWtfb3JfY29udGludWUgKQorICAgICAgICBkZWJ1Z2dlcl9icmVhaygpOworCisgICAgcmV0dXJuIHRydWU7CisKKyNlbHNlIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBkZWZhdWx0CisKKyAgICByZXR1cm4gZmFsc2U7CisKKyNlbmRpZgorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICBzd2l0Y2ggb24vb2ZmIGRldGVjdCBtZW1vcnkgbGVha3MgZmVhdHVyZSAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3ZvaWQKK2RldGVjdF9tZW1vcnlfbGVha3MoIGJvb2wgb25fb2ZmICkKK3sKKyAgICB1bml0X3Rlc3Q6OnV0X2RldGFpbDo6aWdub3JlX3VudXNlZF92YXJpYWJsZV93YXJuaW5nKCBvbl9vZmYgKTsKKworI2lmZGVmIEJPT1NUX01TX0NSVF9CQVNFRF9ERUJVRworICAgIGludCBmbGFncyA9IF9DcnRTZXREYmdGbGFnKCBfQ1JUREJHX1JFUE9SVF9GTEFHICk7CisKKyAgICBpZiggIW9uX29mZiApCisgICAgICAgIGZsYWdzICY9IH5fQ1JUREJHX0xFQUtfQ0hFQ0tfREY7CisgICAgZWxzZSAgeworICAgICAgICBmbGFncyB8PSBfQ1JUREJHX0xFQUtfQ0hFQ0tfREY7CisgICAgICAgIF9DcnRTZXRSZXBvcnRNb2RlKF9DUlRfV0FSTiwgX0NSVERCR19NT0RFX0ZJTEUpOworICAgICAgICBfQ3J0U2V0UmVwb3J0RmlsZShfQ1JUX1dBUk4sIF9DUlREQkdfRklMRV9TVERPVVQpOworICAgIH0KKworICAgIF9DcnRTZXREYmdGbGFnICggZmxhZ3MgKTsKKyNlbmRpZiAvLyBCT09TVF9NU19DUlRfQkFTRURfREVCVUcKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgY2F1c2UgcHJvZ3JhbSB0byBicmVhayBleGVjdXRpb24gaW4gICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgZGVidWdnZXIgYXQgc3BlY2lmaWMgYWxsb2NhdGlvbiBwb2ludCAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordm9pZAorYnJlYWtfbWVtb3J5X2FsbG9jKCBsb25nIG1lbV9hbGxvY19vcmRlcl9udW0gKQoreworICAgIHVuaXRfdGVzdDo6dXRfZGV0YWlsOjppZ25vcmVfdW51c2VkX3ZhcmlhYmxlX3dhcm5pbmcoIG1lbV9hbGxvY19vcmRlcl9udW0gKTsKKworI2lmZGVmIEJPT1NUX01TX0NSVF9CQVNFRF9ERUJVRworICAgIF9DcnRTZXRCcmVha0FsbG9jKCBtZW1fYWxsb2Nfb3JkZXJfbnVtICk7CisjZW5kaWYgLy8gQk9PU1RfTVNfQ1JUX0JBU0VEX0RFQlVHCit9CisKK30gLy8gbmFtZXNwYWNlIGRlYnVnCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9ERUJVR19BUElfSVBQXzExMjAwNkdFUgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9leGNlcHRpb25fc2FmZXR5LmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2V4Y2VwdGlvbl9zYWZldHkuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNjgwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9leGNlcHRpb25fc2FmZXR5LmlwcApAQCAtMCwwICsxLDUzNyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IEZhY2lsaXRpZXMgdG8gcGVyZm9ybSBleGNlcHRpb24gc2FmZXR5IHRlc3RzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0VYRUNVVElPTl9TQUZFVFlfSVBQXzExMjAwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX0VYRUNVVElPTl9TQUZFVFlfSVBQXzExMjAwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKworI2lmIEJPT1NUX1RFU1RfU1VQUE9SVF9JTlRFUkFDVElPTl9URVNUSU5HCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jYWxsYmFjay5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy93cmFwX3N0cmluZ3N0cmVhbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9pdGVyYXRvci90b2tlbl9pdGVyYXRvci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ludGVyYWN0aW9uX2Jhc2VkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Rlc3RfdG9vbHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdGVzdF9vYnNlcnZlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZWJ1Zy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvbGV4aWNhbF9jYXN0LmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPGlvbWFuaXA+CisjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK3VzaW5nIG5hbWVzcGFjZSA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q7CisgCituYW1lc3BhY2UgaXRlc3QgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgZXhlY3V0aW9uX3BhdGhfcG9pbnQgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2VudW0gZXhlY19wYXRoX3BvaW50X3R5cGUgeyBFUFBfU0NPUEUsIEVQUF9FWENFUFQsIEVQUF9ERUNJU0lPTiwgRVBQX0FMTE9DIH07CisKK3N0cnVjdCBleGVjdXRpb25fcGF0aF9wb2ludCB7CisgICAgZXhlY3V0aW9uX3BhdGhfcG9pbnQoIGV4ZWNfcGF0aF9wb2ludF90eXBlIHQsIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSApCisgICAgOiBtX3R5cGUoIHQgKQorICAgICwgbV9maWxlX25hbWUoIGZpbGUgKQorICAgICwgbV9saW5lX251bSggbGluZV9udW0gKQorICAgIHt9CisKKyAgICBleGVjX3BhdGhfcG9pbnRfdHlwZSAgICBtX3R5cGU7CisgICAgY29uc3Rfc3RyaW5nICAgICAgICAgICAgIG1fZmlsZV9uYW1lOworICAgIHN0ZDo6c2l6ZV90ICAgICAgICAgICAgIG1fbGluZV9udW07CisKKyAgICAvLyBFeGVjdXRpb24gcGF0aCBwb2ludCBzcGVjaWZpYworICAgIHN0cnVjdCBkZWNpc2lvbl9kYXRhIHsKKyAgICAgICAgYm9vbCAgICAgICAgICAgIHZhbHVlOworICAgICAgICB1bnNpZ25lZCAgICAgICAgZm9yY2VkX2V4Y2VwdGlvbl9wb2ludDsKKyAgICB9OworICAgIHN0cnVjdCBzY29wZV9kYXRhIHsKKyAgICAgICAgdW5zaWduZWQgICAgICAgIHNpemU7CisgICAgICAgIGNoYXIgY29uc3QqICAgICBuYW1lOworICAgIH07CisgICAgc3RydWN0IGV4Y2VwdF9kYXRhIHsKKyAgICAgICAgY2hhciBjb25zdCogICAgIGRlc2NyaXB0aW9uOworICAgIH07CisgICAgc3RydWN0IGFsbG9jX2RhdGEgeworICAgICAgICB2b2lkKiAgICAgICAgICAgcHRyOworICAgICAgICBzdGQ6OnNpemVfdCAgICAgc2l6ZTsKKyAgICB9OworCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgZGVjaXNpb25fZGF0YSAgICBtX2RlY2lzaW9uOworICAgICAgICBzdHJ1Y3Qgc2NvcGVfZGF0YSAgICAgICBtX3Njb3BlOworICAgICAgICBzdHJ1Y3QgZXhjZXB0X2RhdGEgICAgICBtX2V4Y2VwdDsKKyAgICAgICAgc3RydWN0IGFsbG9jX2RhdGEgICAgICAgbV9hbGxvYzsKKyAgICB9OworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICBleGNlcHRpb24gc2FmZXR5IHRlc3QgaW1wbGVtZW50YXRpb24gICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdHJ1Y3QgZXhjZXB0aW9uX3NhZmV0eV90ZXN0ZXIgOiBpdGVzdDo6bWFuYWdlciwgdGVzdF9vYnNlcnZlciB7CisgICAgLy8gaGVscGVycyB0eXBlcworICAgIHN0cnVjdCB1bmlxdWVfZXhjZXB0aW9uIHt9OworCisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICAgICAgICAgIGV4Y2VwdGlvbl9zYWZldHlfdGVzdGVyKCBjb25zdF9zdHJpbmcgdGVzdF9uYW1lICk7CisgICAgfmV4Y2VwdGlvbl9zYWZldHlfdGVzdGVyKCk7CisKKyAgICAvLyBjaGVjayBsYXN0IHJ1biBhbmQgcHJlcGFyZSBmb3IgbmV4dAorICAgIGJvb2wgICAgICAgICAgICAgICAgbmV4dF9leGVjdXRpb25fcGF0aCgpOworCisgICAgLy8gbWVtb3J5IHRyYWNraW5nCisKKyAgICAvLyBtYW5hZ2VyIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvbgorICAgIHZpcnR1YWwgdm9pZCAgICAgICAgZXhjZXB0aW9uX3BvaW50KCBjb25zdF9zdHJpbmcgZmlsZSwgc3RkOjpzaXplX3QgbGluZV9udW0sIGNvbnN0X3N0cmluZyBkZXNjcmlwdGlvbiApOworICAgIHZpcnR1YWwgYm9vbCAgICAgICAgZGVjaXNpb25fcG9pbnQoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSApOworICAgIHZpcnR1YWwgdW5zaWduZWQgICAgZW50ZXJfc2NvcGUoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSwgY29uc3Rfc3RyaW5nIHNjb3BlX25hbWUgKTsKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIGxlYXZlX3Njb3BlKCB1bnNpZ25lZCBlbnRlcl9zY29wZV9wb2ludCApOworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgYWxsb2NhdGVkKCBjb25zdF9zdHJpbmcgZmlsZSwgc3RkOjpzaXplX3QgbGluZV9udW0sIHZvaWQqIHAsIHN0ZDo6c2l6ZV90IHMgKTsKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIGZyZWVkKCB2b2lkKiBwICk7CisKKyAgICAvLyB0ZXN0IG9ic2VydmVyIGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCAgICAgICAgYXNzZXJ0aW9uX3Jlc3VsdCggYm9vbCBwYXNzZWQgKTsKKyAgICB2aXJ0dWFsIGludCAgICAgICAgIHByaW9yaXR5KCkgeyByZXR1cm4gKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KSgpOyB9IC8vIHdlIHdhbnQgdGhpcyBvYnNlcnZlciB0byBydW4gdGhlIGxhc3QKKworcHJpdmF0ZToKKyAgICB2b2lkICAgICAgICAgICAgICAgIGZhaWx1cmVfcG9pbnQoKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHJlcG9ydF9lcnJvcigpOworCisgICAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxleGVjdXRpb25fcGF0aF9wb2ludD4gICBleGVjX3BhdGg7CisgICAgdHlwZWRlZiBzdGQ6Om1hcDx2b2lkKix1bnNpZ25lZD4gICAgICAgICAgICByZWdpc3RyeTsKKworICAgIC8vIERhdGEgbWVtYmVycworICAgIGJvb2wgICAgICAgIG1faW50ZXJuYWxfYWN0aXZpdHk7CisgICAgCisgICAgdW5zaWduZWQgICAgbV9leGNlcHRpb25fcG9pbnRfY291bnRlcjsKKyAgICB1bnNpZ25lZCAgICBtX2ZvcmNlZF9leGNlcHRpb25fcG9pbnQ7CisKKyAgICB1bnNpZ25lZCAgICBtX2V4ZWNfcGF0aF9wb2ludDsKKyAgICBleGVjX3BhdGggICBtX2V4ZWN1dGlvbl9wYXRoOworCisgICAgdW5zaWduZWQgICAgbV9leGVjX3BhdGhfY291bnRlcjsKKyAgICB1bnNpZ25lZCAgICBtX2JyZWFrX2V4ZWNfcGF0aDsKKyAgICAKKyAgICBib29sICAgICAgICBtX2ludmFpcmFudF9mYWlsZWQ7CisgICAgcmVnaXN0cnkgICAgbV9tZW1vcnlfaW5fdXNlOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RydWN0IGFjdGl2aXR5X2d1YXJkIHsKKyAgICBib29sJiBtX3Y7CisKKyAgICBhY3Rpdml0eV9ndWFyZCggYm9vbCYgdiApIDogbV92KCB2ICkgICAgeyBtX3YgPSB0cnVlOyB9CisgICAgfmFjdGl2aXR5X2d1YXJkKCkgICAgICAgICAgICAgICAgICAgICAgIHsgbV92ID0gZmFsc2U7IH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2V4Y2VwdGlvbl9zYWZldHlfdGVzdGVyOjpleGNlcHRpb25fc2FmZXR5X3Rlc3RlciggY29uc3Rfc3RyaW5nIHRlc3RfbmFtZSApCis6IG1faW50ZXJuYWxfYWN0aXZpdHkoIHRydWUgKQorLCBtX2V4Y2VwdGlvbl9wb2ludF9jb3VudGVyKCAwICkKKywgbV9mb3JjZWRfZXhjZXB0aW9uX3BvaW50KCAxICkKKywgbV9leGVjX3BhdGhfcG9pbnQoIDAgKQorLCBtX2V4ZWNfcGF0aF9jb3VudGVyKCAxICkKKywgbV9icmVha19leGVjX3BhdGgoIHN0YXRpY19jYXN0PHVuc2lnbmVkPigtMSkgKQorLCBtX2ludmFpcmFudF9mYWlsZWQoIGZhbHNlICkKK3sKKyAgICBmcmFtZXdvcms6OnJlZ2lzdGVyX29ic2VydmVyKCAqdGhpcyApOworCisgICAgaWYoICFydW50aW1lX2NvbmZpZzo6YnJlYWtfZXhlY19wYXRoKCkuaXNfZW1wdHkoKSApIHsKKyAgICAgICAgdXNpbmcgbmFtZXNwYWNlIHVuaXRfdGVzdDsKKyAgICAgICAgCisgICAgICAgIHN0cmluZ190b2tlbl9pdGVyYXRvciB0aXQoIHJ1bnRpbWVfY29uZmlnOjpicmVha19leGVjX3BhdGgoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcm9wcGVkX2RlbGltZXRlcnMgPSAiOiIsa2VwdF9kZWxpbWV0ZXJzID0gIiAiKSApOworICAgICAgICAKKyAgICAgICAgY29uc3Rfc3RyaW5nIHRlc3RfdG9fYnJlYWsgPSAqdGl0OworICAgICAgICAKKyAgICAgICAgaWYoIHRlc3RfdG9fYnJlYWsgPT0gdGVzdF9uYW1lICkgeworICAgICAgICAgICAgKyt0aXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fYnJlYWtfZXhlY19wYXRoID0gbGV4aWNhbF9jYXN0PHVuc2lnbmVkPiggKnRpdCApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIG1faW50ZXJuYWxfYWN0aXZpdHkgPSBmYWxzZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworZXhjZXB0aW9uX3NhZmV0eV90ZXN0ZXI6On5leGNlcHRpb25fc2FmZXR5X3Rlc3RlcigpCit7CisgICAgbV9pbnRlcm5hbF9hY3Rpdml0eSA9IHRydWU7CisgICAgCisgICAgZnJhbWV3b3JrOjpkZXJlZ2lzdGVyX29ic2VydmVyKCAqdGhpcyApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitib29sCitleGNlcHRpb25fc2FmZXR5X3Rlc3Rlcjo6bmV4dF9leGVjdXRpb25fcGF0aCgpCit7CisgICAgYWN0aXZpdHlfZ3VhcmQgYWcoIG1faW50ZXJuYWxfYWN0aXZpdHkgKTsKKworICAgIC8vIGNoZWNrIG1lbW9yeSB1c2FnZQorICAgIGlmKCBtX2V4ZWN1dGlvbl9wYXRoLnNpemUoKSA+IDAgKSB7CisgICAgICAgIGJvb2wgZXJyb3JzX2RldGVjdGVkID0gbV9pbnZhaXJhbnRfZmFpbGVkIHx8IChtX21lbW9yeV9pbl91c2Uuc2l6ZSgpICE9IDApOworICAgICAgICBmcmFtZXdvcms6OmFzc2VydGlvbl9yZXN1bHQoICFlcnJvcnNfZGV0ZWN0ZWQgKTsKKworICAgICAgICBpZiggZXJyb3JzX2RldGVjdGVkICkKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvcigpOworCisgICAgICAgIG1fbWVtb3J5X2luX3VzZS5jbGVhcigpOworICAgIH0KKworICAgIG1fZXhlY19wYXRoX3BvaW50ICAgICAgICAgICA9IDA7CisgICAgbV9leGNlcHRpb25fcG9pbnRfY291bnRlciAgID0gMDsKKyAgICBtX2ludmFpcmFudF9mYWlsZWQgICAgICAgICAgPSBmYWxzZTsKKyAgICArK21fZXhlY19wYXRoX2NvdW50ZXI7CisKKyAgICB3aGlsZSggbV9leGVjdXRpb25fcGF0aC5zaXplKCkgPiAwICkgeworICAgICAgICBzd2l0Y2goIG1fZXhlY3V0aW9uX3BhdGguYmFjaygpLm1fdHlwZSApIHsKKyAgICAgICAgY2FzZSBFUFBfU0NPUEU6CisgICAgICAgIGNhc2UgRVBQX0FMTE9DOgorICAgICAgICAgICAgbV9leGVjdXRpb25fcGF0aC5wb3BfYmFjaygpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBFUFBfREVDSVNJT046CisgICAgICAgICAgICBpZiggIW1fZXhlY3V0aW9uX3BhdGguYmFjaygpLm1fZGVjaXNpb24udmFsdWUgKSB7CisgICAgICAgICAgICAgICAgbV9leGVjdXRpb25fcGF0aC5wb3BfYmFjaygpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoLmJhY2soKS5tX2RlY2lzaW9uLnZhbHVlID0gZmFsc2U7CisgICAgICAgICAgICBtX2ZvcmNlZF9leGNlcHRpb25fcG9pbnQgPSBtX2V4ZWN1dGlvbl9wYXRoLmJhY2soKS5tX2RlY2lzaW9uLmZvcmNlZF9leGNlcHRpb25fcG9pbnQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBjYXNlIEVQUF9FWENFUFQ6CisgICAgICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoLnBvcF9iYWNrKCk7CisgICAgICAgICAgICArK21fZm9yY2VkX2V4Y2VwdGlvbl9wb2ludDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgQk9PU1RfVEVTVF9NRVNTQUdFKCAiVG90YWwgdGVzdGVkICIgPDwgLS1tX2V4ZWNfcGF0aF9jb3VudGVyIDw8ICIgZXhlY3V0aW9uIHBhdGgiICk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2V4Y2VwdGlvbl9zYWZldHlfdGVzdGVyOjpleGNlcHRpb25fcG9pbnQoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSwgY29uc3Rfc3RyaW5nIGRlc2NyaXB0aW9uICkKK3sKKyAgICBhY3Rpdml0eV9ndWFyZCBhZyggbV9pbnRlcm5hbF9hY3Rpdml0eSApOworCisgICAgaWYoICsrbV9leGNlcHRpb25fcG9pbnRfY291bnRlciA9PSBtX2ZvcmNlZF9leGNlcHRpb25fcG9pbnQgKSB7CisgICAgICAgIG1fZXhlY3V0aW9uX3BhdGgucHVzaF9iYWNrKAorICAgICAgICAgICAgZXhlY3V0aW9uX3BhdGhfcG9pbnQoIEVQUF9FWENFUFQsIGZpbGUsIGxpbmVfbnVtICkgKTsKKworICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoLmJhY2soKS5tX2V4Y2VwdC5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmJlZ2luKCk7CisKKyAgICAgICAgKyttX2V4ZWNfcGF0aF9wb2ludDsKKworICAgICAgICBmYWlsdXJlX3BvaW50KCk7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitib29sCitleGNlcHRpb25fc2FmZXR5X3Rlc3Rlcjo6ZGVjaXNpb25fcG9pbnQoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSApCit7CisgICAgYWN0aXZpdHlfZ3VhcmQgYWcoIG1faW50ZXJuYWxfYWN0aXZpdHkgKTsKKworICAgIGlmKCBtX2V4ZWNfcGF0aF9wb2ludCA8IG1fZXhlY3V0aW9uX3BhdGguc2l6ZSgpICkgeworICAgICAgICBCT09TVF9SRVFVSVJFX01FU1NBR0UoIG1fZXhlY3V0aW9uX3BhdGhbbV9leGVjX3BhdGhfcG9pbnRdLm1fdHlwZSA9PSBFUFBfREVDSVNJT04gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoW21fZXhlY19wYXRoX3BvaW50XS5tX2ZpbGVfbmFtZSA9PSBmaWxlICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leGVjdXRpb25fcGF0aFttX2V4ZWNfcGF0aF9wb2ludF0ubV9saW5lX251bSA9PSBsaW5lX251bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuY3Rpb24gdW5kZXIgdGVzdCBleGliaXQgbm9uLWRldGVybWluaXN0aWMgYmVoYXZpb3IiICk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoLnB1c2hfYmFjaygKKyAgICAgICAgICAgIGV4ZWN1dGlvbl9wYXRoX3BvaW50KCBFUFBfREVDSVNJT04sIGZpbGUsIGxpbmVfbnVtICkgKTsKKworICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoLmJhY2soKS5tX2RlY2lzaW9uLnZhbHVlID0gdHJ1ZTsKKyAgICAgICAgbV9leGVjdXRpb25fcGF0aC5iYWNrKCkubV9kZWNpc2lvbi5mb3JjZWRfZXhjZXB0aW9uX3BvaW50ID0gbV9mb3JjZWRfZXhjZXB0aW9uX3BvaW50OworICAgIH0KKworICAgIHJldHVybiBtX2V4ZWN1dGlvbl9wYXRoW21fZXhlY19wYXRoX3BvaW50KytdLm1fZGVjaXNpb24udmFsdWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3Vuc2lnbmVkCitleGNlcHRpb25fc2FmZXR5X3Rlc3Rlcjo6ZW50ZXJfc2NvcGUoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSwgY29uc3Rfc3RyaW5nIHNjb3BlX25hbWUgKQoreworICAgIGFjdGl2aXR5X2d1YXJkIGFnKCBtX2ludGVybmFsX2FjdGl2aXR5ICk7CisKKyAgICBpZiggbV9leGVjX3BhdGhfcG9pbnQgPCBtX2V4ZWN1dGlvbl9wYXRoLnNpemUoKSApIHsKKyAgICAgICAgQk9PU1RfUkVRVUlSRV9NRVNTQUdFKCBtX2V4ZWN1dGlvbl9wYXRoW21fZXhlY19wYXRoX3BvaW50XS5tX3R5cGUgPT0gRVBQX1NDT1BFICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leGVjdXRpb25fcGF0aFttX2V4ZWNfcGF0aF9wb2ludF0ubV9maWxlX25hbWUgPT0gZmlsZSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXhlY3V0aW9uX3BhdGhbbV9leGVjX3BhdGhfcG9pbnRdLm1fbGluZV9udW0gPT0gbGluZV9udW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmN0aW9uIHVuZGVyIHRlc3QgZXhpYml0IG5vbi1kZXRlcm1pbmlzdGljIGJlaGF2aW9yIiApOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbV9leGVjdXRpb25fcGF0aC5wdXNoX2JhY2soCisgICAgICAgICAgICBleGVjdXRpb25fcGF0aF9wb2ludCggRVBQX1NDT1BFLCBmaWxlLCBsaW5lX251bSApICk7CisgICAgfQorCisgICAgbV9leGVjdXRpb25fcGF0aFttX2V4ZWNfcGF0aF9wb2ludF0ubV9zY29wZS5zaXplID0gMDsKKyAgICBtX2V4ZWN1dGlvbl9wYXRoW21fZXhlY19wYXRoX3BvaW50XS5tX3Njb3BlLm5hbWUgPSBzY29wZV9uYW1lLmJlZ2luKCk7CisKKyAgICByZXR1cm4gbV9leGVjX3BhdGhfcG9pbnQrKzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorZXhjZXB0aW9uX3NhZmV0eV90ZXN0ZXI6OmxlYXZlX3Njb3BlKCB1bnNpZ25lZCBlbnRlcl9zY29wZV9wb2ludCApCit7CisgICAgYWN0aXZpdHlfZ3VhcmQgYWcoIG1faW50ZXJuYWxfYWN0aXZpdHkgKTsKKworICAgIEJPT1NUX1JFUVVJUkVfTUVTU0FHRSggbV9leGVjdXRpb25fcGF0aFtlbnRlcl9zY29wZV9wb2ludF0ubV90eXBlID09IEVQUF9TQ09QRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5jdGlvbiB1bmRlciB0ZXN0IGV4aWJpdCBub24tZGV0ZXJtaW5pc3RpYyBiZWhhdmlvciIgKTsKKworICAgIG1fZXhlY3V0aW9uX3BhdGhbZW50ZXJfc2NvcGVfcG9pbnRdLm1fc2NvcGUuc2l6ZSA9IG1fZXhlY19wYXRoX3BvaW50IC0gZW50ZXJfc2NvcGVfcG9pbnQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2V4Y2VwdGlvbl9zYWZldHlfdGVzdGVyOjphbGxvY2F0ZWQoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSwgdm9pZCogcCwgc3RkOjpzaXplX3QgcyApCit7CisgICAgaWYoIG1faW50ZXJuYWxfYWN0aXZpdHkgKQorICAgICAgICByZXR1cm47CisKKyAgICBhY3Rpdml0eV9ndWFyZCBhZyggbV9pbnRlcm5hbF9hY3Rpdml0eSApOworCisgICAgaWYoIG1fZXhlY19wYXRoX3BvaW50IDwgbV9leGVjdXRpb25fcGF0aC5zaXplKCkgKQorICAgICAgICBCT09TVF9SRVFVSVJFX01FU1NBR0UoIG1fZXhlY3V0aW9uX3BhdGhbbV9leGVjX3BhdGhfcG9pbnRdLm1fdHlwZSA9PSBFUFBfQUxMT0MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmN0aW9uIHVuZGVyIHRlc3QgZXhpYml0IG5vbi1kZXRlcm1pbmlzdGljIGJlaGF2aW9yIiApOworICAgIGVsc2UKKyAgICAgICAgbV9leGVjdXRpb25fcGF0aC5wdXNoX2JhY2soCisgICAgICAgICAgICBleGVjdXRpb25fcGF0aF9wb2ludCggRVBQX0FMTE9DLCBmaWxlLCBsaW5lX251bSApICk7CisKKyAgICBtX2V4ZWN1dGlvbl9wYXRoW21fZXhlY19wYXRoX3BvaW50XS5tX2FsbG9jLnB0ciAgPSBwOworICAgIG1fZXhlY3V0aW9uX3BhdGhbbV9leGVjX3BhdGhfcG9pbnRdLm1fYWxsb2Muc2l6ZSA9IHM7CisKKyAgICBtX21lbW9yeV9pbl91c2UuaW5zZXJ0KCBzdGQ6Om1ha2VfcGFpciggcCwgbV9leGVjX3BhdGhfcG9pbnQrKyApICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2V4Y2VwdGlvbl9zYWZldHlfdGVzdGVyOjpmcmVlZCggdm9pZCogcCApCit7CisgICAgaWYoIG1faW50ZXJuYWxfYWN0aXZpdHkgKQorICAgICAgICByZXR1cm47CisKKyAgICBhY3Rpdml0eV9ndWFyZCBhZyggbV9pbnRlcm5hbF9hY3Rpdml0eSApOworCisgICAgcmVnaXN0cnk6Oml0ZXJhdG9yIGl0ID0gbV9tZW1vcnlfaW5fdXNlLmZpbmQoIHAgKTsKKyAgICBpZiggaXQgIT0gbV9tZW1vcnlfaW5fdXNlLmVuZCgpICkgeworICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoW2l0LT5zZWNvbmRdLm1fYWxsb2MucHRyID0gMDsKKyAgICAgICAgbV9tZW1vcnlfaW5fdXNlLmVyYXNlKCBpdCApOworICAgIH0KK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorZXhjZXB0aW9uX3NhZmV0eV90ZXN0ZXI6OmFzc2VydGlvbl9yZXN1bHQoIGJvb2wgcGFzc2VkICkKK3sKKyAgICBpZiggIW1faW50ZXJuYWxfYWN0aXZpdHkgJiYgIXBhc3NlZCApIHsKKyAgICAgICAgbV9pbnZhaXJhbnRfZmFpbGVkID0gdHJ1ZTsKKworICAgICAgICBmYWlsdXJlX3BvaW50KCk7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitleGNlcHRpb25fc2FmZXR5X3Rlc3Rlcjo6ZmFpbHVyZV9wb2ludCgpCit7CisgICAgaWYoIG1fZXhlY19wYXRoX2NvdW50ZXIgPT0gbV9icmVha19leGVjX3BhdGggKQorICAgICAgICBkZWJ1Zzo6ZGVidWdnZXJfYnJlYWsoKTsKKyAgICAKKyAgICB0aHJvdyB1bmlxdWVfZXhjZXB0aW9uKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisgICAgCituYW1lc3BhY2UgeworCitpbmxpbmUgdm9pZAorZm9ybWF0X2xvY2F0aW9uKCB3cmFwX3N0cmluZ3N0cmVhbSYgZm9ybWF0dGVyLCBleGVjdXRpb25fcGF0aF9wb2ludCBjb25zdCYgLypwKi8sIHVuc2lnbmVkIGluZGVudCApCit7CisgICAgaWYoIGluZGVudCApCisgICAgICAgIGZvcm1hdHRlciA8PCBzdGQ6OmxlZnQgPDwgc3RkOjpzZXR3KCBpbmRlbnQgKSA8PCAiIjsKKworLy8gISEgPz8gb3B0aW9uYWwgICBpZiggcC5tX2ZpbGVfbmFtZSApCisvLyAgICAgICAgZm9ybWF0dGVyIDw8IHAubV9maWxlX25hbWUgPDwgJygnIDw8IHAubV9saW5lX251bSA8PCAiKTogIjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgRXhlY1BhdGhJdD4KK2lubGluZSB2b2lkCitmb3JtYXRfZXhlY3V0aW9uX3BhdGgoIHdyYXBfc3RyaW5nc3RyZWFtJiBmb3JtYXR0ZXIsIEV4ZWNQYXRoSXQgaXQsIEV4ZWNQYXRoSXQgZW5kLCB1bnNpZ25lZCBpbmRlbnQgPSAwICkKK3sKKyAgICB3aGlsZSggaXQgIT0gZW5kICkgeworICAgICAgICBzd2l0Y2goIGl0LT5tX3R5cGUgKSB7CisgICAgICAgIGNhc2UgRVBQX1NDT1BFOgorICAgICAgICAgICAgZm9ybWF0X2xvY2F0aW9uKCBmb3JtYXR0ZXIsICppdCwgaW5kZW50ICk7CisgICAgICAgICAgICBmb3JtYXR0ZXIgPDwgIj4gXCIiIDw8IGl0LT5tX3Njb3BlLm5hbWUgPDwgIlwiXG4iOworICAgICAgICAgICAgZm9ybWF0X2V4ZWN1dGlvbl9wYXRoKCBmb3JtYXR0ZXIsIGl0KzEsIGl0ICsgaXQtPm1fc2NvcGUuc2l6ZSwgaW5kZW50ICsgMiApOworICAgICAgICAgICAgZm9ybWF0X2xvY2F0aW9uKCBmb3JtYXR0ZXIsICppdCwgaW5kZW50ICk7CisgICAgICAgICAgICBmb3JtYXR0ZXIgPDwgIjwgXCIiIDw8IGl0LT5tX3Njb3BlLm5hbWUgPDwgIlwiXG4iOworICAgICAgICAgICAgaXQgKz0gaXQtPm1fc2NvcGUuc2l6ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRVBQX0RFQ0lTSU9OOgorICAgICAgICAgICAgZm9ybWF0X2xvY2F0aW9uKCBmb3JtYXR0ZXIsICppdCwgaW5kZW50ICk7CisgICAgICAgICAgICBmb3JtYXR0ZXIgPDwgIkRlY2lzaW9uIG1hZGUgYXMgIiA8PCBzdGQ6OmJvb2xhbHBoYSA8PCBpdC0+bV9kZWNpc2lvbi52YWx1ZSA8PCAnXG4nOworICAgICAgICAgICAgKytpdDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRVBQX0VYQ0VQVDoKKyAgICAgICAgICAgIGZvcm1hdF9sb2NhdGlvbiggZm9ybWF0dGVyLCAqaXQsIGluZGVudCApOworICAgICAgICAgICAgZm9ybWF0dGVyIDw8ICJGb3JjZWQgZmFpbHVyZSI7CisgICAgICAgICAgICBpZiggaXQtPm1fZXhjZXB0LmRlc2NyaXB0aW9uICkKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZXIgPDwgIjogIiA8PCBpdC0+bV9leGNlcHQuZGVzY3JpcHRpb247CisgICAgICAgICAgICBmb3JtYXR0ZXIgPDwgIlxuIjsKKyAgICAgICAgICAgICsraXQ7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIEVQUF9BTExPQzoKKyAgICAgICAgICAgIGlmKCBpdC0+bV9hbGxvYy5wdHIgKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0X2xvY2F0aW9uKCBmb3JtYXR0ZXIsICppdCwgaW5kZW50ICk7CisgICAgICAgICAgICAgICAgZm9ybWF0dGVyIDw8ICJBbGxvY2F0ZWQgbWVtb3J5IGJsb2NrIDB4IiA8PCBzdGQ6OnVwcGVyY2FzZSA8PCBpdC0+bV9hbGxvYy5wdHIgCisgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIsICIgPDwgaXQtPm1fYWxsb2Muc2l6ZSA8PCAiIGJ5dGVzIGxvbmc6IDwiOworCisgICAgICAgICAgICAgICAgdW5zaWduZWQgaTsKKyAgICAgICAgICAgICAgICBmb3IoIGkgPSAwOyBpIDwgc3RkOjptaW48c3RkOjpzaXplX3Q+KCBpdC0+bV9hbGxvYy5zaXplLCA4ICk7IGkrKyApIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KGl0LT5tX2FsbG9jLnB0cilbaV07CisgICAgICAgICAgICAgICAgICAgIGlmKCAoc3RkOjppc3ByaW50KSggYyApICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlciA8PCBjOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIgPDwgJy4nOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcm1hdHRlciA8PCAiPiAiOworCisgICAgICAgICAgICAgICAgZm9yKCBpID0gMDsgaSA8IHN0ZDo6bWluPHN0ZDo6c2l6ZV90PiggaXQtPm1fYWxsb2Muc2l6ZSwgOCApOyBpKysgKSB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oaXQtPm1fYWxsb2MucHRyKVtpXTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyIDw8IHN0ZDo6aGV4IDw8IHN0ZDo6dXBwZXJjYXNlIDw8IGMgPDwgJyAnOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcm1hdHRlciA8PCAiXG4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytpdDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIGxvY2FsIG5hbWVzcGFjZQorCit2b2lkCitleGNlcHRpb25fc2FmZXR5X3Rlc3Rlcjo6cmVwb3J0X2Vycm9yKCkKK3sKKyAgICBhY3Rpdml0eV9ndWFyZCBhZyggbV9pbnRlcm5hbF9hY3Rpdml0eSApOworCisgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6YmVnaW4oIG1fZXhlY3V0aW9uX3BhdGguYmFjaygpLm1fZmlsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4ZWN1dGlvbl9wYXRoLmJhY2soKS5tX2xpbmVfbnVtICkKKyAgICAgICAgICAgICAgICAgIDw8IGxvZ19hbGxfZXJyb3JzOworCisgICAgd3JhcF9zdHJpbmdzdHJlYW0gZm9ybWF0dGVyOworCisgICAgaWYoIG1faW52YWlyYW50X2ZhaWxlZCApCisgICAgICAgIGZvcm1hdHRlciA8PCAiRmFpbGVkIGludmFyaWFudCI7CisKKyAgICBpZiggbV9tZW1vcnlfaW5fdXNlLnNpemUoKSAhPSAwICkgeworICAgICAgICBpZiggbV9pbnZhaXJhbnRfZmFpbGVkICkKKyAgICAgICAgICAgIGZvcm1hdHRlciA8PCAiIGFuZCAiOworCisgICAgICAgIGZvcm1hdHRlciA8PCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KG1fbWVtb3J5X2luX3VzZS5zaXplKCkpIDw8ICIgbWVtb3J5IGxlYWsiOworICAgICAgICBpZiggbV9tZW1vcnlfaW5fdXNlLnNpemUoKSA+IDEgKQorICAgICAgICAgICAgZm9ybWF0dGVyIDw8ICdzJzsKKyAgICB9CisgICAgZm9ybWF0dGVyIDw8ICIgZGV0ZWN0ZWQgaW4gdGhlIGV4ZWN1dGlvbiBwYXRoICIgPDwgbV9leGVjX3BhdGhfY291bnRlciA8PCAiOlxuIjsKKworICAgIGZvcm1hdF9leGVjdXRpb25fcGF0aCggZm9ybWF0dGVyLCBtX2V4ZWN1dGlvbl9wYXRoLmJlZ2luKCksIG1fZXhlY3V0aW9uX3BhdGguZW5kKCkgKTsKKworICAgIHVuaXRfdGVzdF9sb2cgPDwgY29uc3Rfc3RyaW5nKCBmb3JtYXR0ZXIuc3RyKCkgKSA8PCB1bml0X3Rlc3Q6OmxvZzo6ZW5kKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBleGNlcHRpb24gc2FmZXR5IHRlc3QgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordm9pZCBCT09TVF9URVNUX0RFQ0wKK2V4Y2VwdGlvbl9zYWZldHkoIGNhbGxiYWNrMDw+IGNvbnN0JiBGLCBjb25zdF9zdHJpbmcgdGVzdF9uYW1lICkKK3sKKyAgICBleGNlcHRpb25fc2FmZXR5X3Rlc3RlciBlc3QoIHRlc3RfbmFtZSApOworCisgICAgZG8geworICAgICAgICB0cnkgeworICAgICAgICAgICAgRigpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKCBleGNlcHRpb25fc2FmZXR5X3Rlc3Rlcjo6dW5pcXVlX2V4Y2VwdGlvbiBjb25zdCYgKSB7fQorCisgICAgfSB3aGlsZSggZXN0Lm5leHRfZXhlY3V0aW9uX3BhdGgoKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9ICAvLyBuYW1lc3BhY2UgaXRlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBub24tYW5jaWVudCBjb21waWxlcgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9FWEVDVVRJT05fU0FGRVRZX0lQUF8xMTIwMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2V4ZWN1dGlvbl9tb25pdG9yLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2V4ZWN1dGlvbl9tb25pdG9yLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzM3MzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvZXhlY3V0aW9uX21vbml0b3IuaXBwCkBAIC0wLDAgKzEsMTM2NyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwMS0yMDA4LgorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgYW5kIFVsbHJpY2ggS29ldGhlIDE5OTUtMjAwMS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBwcm92aWRlcyBleGVjdXRpb24gbW9uaXRvciBpbXBsZW1lbnRhdGlvbiBmb3IgYWxsIHN1cHBvcnRlZAorLy8gIGNvbmZpZ3VyYXRpb25zLCBpbmNsdWRpbmcgTWljcm9zb2Z0IHN0cnVjdHVyZWQgZXhjZXB0aW9uIGJhc2VkLCB1bml4IHNpZ25hbHMKKy8vICBiYXNlZCBhbmQgc3BlY2lhbCB3b3JrYXJvdW5kcyBmb3IgYm9ybGFuZAorLy8KKy8vICBOb3RlIHRoYXQgd2hlbiB0ZXN0aW5nIHJlcXVpcmVtZW50cyBvciB1c2VyIHdpc2hlcyBwcmVjbHVkZSB1c2Ugb2YgdGhpcworLy8gIGZpbGUgYXMgYSBzZXBhcmF0ZSBjb21waWxhdGlvbiB1bml0LCBpdCBtYXkgYmUgaW5jbHVkZWQgYXMgYSBoZWFkZXIgZmlsZS4KKy8vCisvLyAgSGVhZGVyIGRlcGVuZGVuY2llcyBhcmUgZGVsaWJlcmF0ZWx5IHJlc3RyaWN0ZWQgdG8gcmVkdWNlIGNvdXBsaW5nIHRvIG90aGVyCisvLyAgYm9vc3QgbGlicmFyaWVzLgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9FWEVDVVRJT05fTU9OSVRPUl9JUFBfMDEyMjA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfRVhFQ1VUSU9OX01PTklUT1JfSVBQXzAxMjIwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RlYnVnLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkbGliLmhwcD4gICAgLy8gZm9yIGV4aXQgY29kZXMKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPiAgICAgLy8gZm9yIHdvcmthcm91bmRzCisjaW5jbHVkZSA8bmRuYm9vc3QvZXhjZXB0aW9uL2dldF9lcnJvcl9pbmZvLmhwcD4gLy8gZm9yIGdldF9lcnJvcl9pbmZvCisjaW5jbHVkZSA8bmRuYm9vc3QvZXhjZXB0aW9uL2N1cnJlbnRfZXhjZXB0aW9uX2Nhc3QuaHBwPiAvLyBmb3IgY3VycmVudF9leGNlcHRpb25fY2FzdAorCisvLyBTVEwKKyNpbmNsdWRlIDxzdHJpbmc+ICAgICAgICAgICAgICAgLy8gZm9yIHN0ZDo6c3RyaW5nCisjaW5jbHVkZSA8bmV3PiAgICAgICAgICAgICAgICAgIC8vIGZvciBzdGQ6OmJhZF9hbGxvYworI2luY2x1ZGUgPHR5cGVpbmZvPiAgICAgICAgICAgICAvLyBmb3Igc3RkOjpiYWRfY2FzdCwgc3RkOjpiYWRfdHlwZWlkCisjaW5jbHVkZSA8ZXhjZXB0aW9uPiAgICAgICAgICAgIC8vIGZvciBzdGQ6OmV4Y2VwdGlvbiwgc3RkOjpiYWRfZXhjZXB0aW9uCisjaW5jbHVkZSA8c3RkZXhjZXB0PiAgICAgICAgICAgIC8vIGZvciBzdGQgZXhjZXB0aW9uIGhpZXJhcmNoeQorI2luY2x1ZGUgPGNzdHJpbmc+ICAgICAgICAgICAgICAvLyBmb3IgQyBzdHJpbmcgQVBJCisjaW5jbHVkZSA8Y2Fzc2VydD4gICAgICAgICAgICAgIC8vIGZvciBhc3NlcnQKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAgICAgLy8gZm9yIE5VTEwKKyNpbmNsdWRlIDxjc3RkaW8+ICAgICAgICAgICAgICAgLy8gZm9yIHZzbnByaW50ZgorI2luY2x1ZGUgPGNzdGRhcmc+ICAgICAgICAgICAgICAvLyBmb3IgdmFyYXJncworCisjaWZkZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKK25hbWVzcGFjZSBzdGQgeyB1c2luZyA6OnN0cmVycm9yOyB1c2luZyA6OnN0cmxlbjsgdXNpbmcgOjpzdHJuY2F0OyB9CisjZW5kaWYKKworLy8gdG8gdXNlIHZzbnByaW50ZgorI2lmIGRlZmluZWQoX19TVU5QUk9fQ0MpIHx8IGRlZmluZWQoX19TdW5PUykKKyMgIGluY2x1ZGUgPHN0ZGlvLmg+CisjICBpbmNsdWRlIDxzdGRhcmcuaD4KK3VzaW5nIHN0ZDo6dmFfbGlzdDsKKyNlbmRpZgorCisvLyB0byB1c2UgdnNucHJpbnRmIAorI2lmIGRlZmluZWQoX19RTlhOVE9fXykgCisjICBpbmNsdWRlIDxzdGRpby5oPiAKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfV0lOMzIpICYmICAgICAgICAgICAgICAgICAgXAorICAgICghZGVmaW5lZChfX0NPTU9fXykgJiYgIWRlZmluZWQoX19NV0VSS1NfXykgJiYgIWRlZmluZWQoX19HTlVDX18pIHx8IFwKKyAgICAgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA+PSAweDMwMDApKQorCisjICBkZWZpbmUgQk9PU1RfU0VIX0JBU0VEX1NJR05BTF9IQU5ETElORworCisjICBpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyMgIGlmIGRlZmluZWQoX19NV0VSS1NfXykgfHwgKGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKFVOREVSX0NFKSkKKyMgICAgaW5jbHVkZSA8ZWguaD4KKyMgIGVuZGlmCisKKyMgIGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiBfX0JPUkxBTkRDX18gPj0gMHg1NjAgfHwgZGVmaW5lZChfX01XRVJLU19fKQorIyAgICBpbmNsdWRlIDxzdGRpbnQuaD4KKyMgIGVuZGlmCisKKyMgIGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiBfX0JPUkxBTkRDX18gPCAweDU2MAorICAgIHR5cGVkZWYgdW5zaWduZWQgdWludHB0cl90OworIyAgZW5kaWYKKworIyAgaWYgQk9PU1RfV09SS0FST1VORChfTVNDX1ZFUiwgIDwgMTMwMCApIHx8IGRlZmluZWQoVU5ERVJfQ0UpCit0eXBlZGVmIHZvaWQqIHVpbnRwdHJfdDsKKyMgIGVuZGlmCisKKy8vIGZvciB0aGUgRlAgY29udHJvbCByb3V0aW5lcworI2luY2x1ZGUgPGZsb2F0Lmg+CisKKyNpZm5kZWYgRU1fSU5WQUxJRAorI2RlZmluZSBFTV9JTlZBTElEIF9FTV9JTlZBTElECisjZW5kaWYKKworI2lmbmRlZiBFTV9ERU5PUk1BTAorI2RlZmluZSBFTV9ERU5PUk1BTCBfRU1fREVOT1JNQUwKKyNlbmRpZgorCisjaWZuZGVmIEVNX1pFUk9ESVZJREUKKyNkZWZpbmUgRU1fWkVST0RJVklERSBfRU1fWkVST0RJVklERQorI2VuZGlmCisKKyNpZm5kZWYgRU1fT1ZFUkZMT1cKKyNkZWZpbmUgRU1fT1ZFUkZMT1cgX0VNX09WRVJGTE9XCisjZW5kaWYKKworI2lmbmRlZiBFTV9VTkRFUkZMT1cKKyNkZWZpbmUgRU1fVU5ERVJGTE9XIF9FTV9VTkRFUkZMT1cKKyNlbmRpZgorCisjaWZuZGVmIE1DV19FTQorI2RlZmluZSBNQ1dfRU0gX01DV19FTQorI2VuZGlmCisKKyMgIGlmICFkZWZpbmVkKE5ERUJVRykgJiYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoVU5ERVJfQ0UpCisjICAgIGluY2x1ZGUgPGNydGRiZy5oPgorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9DUlRfSE9PS19UWVBFICAgIF9DUlRfUkVQT1JUX0hPT0sKKyMgICAgZGVmaW5lIEJPT1NUX1RFU1RfQ1JUX0FTU0VSVCAgICAgICBfQ1JUX0FTU0VSVAorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9DUlRfRVJST1IgICAgICAgIF9DUlRfRVJST1IKKyMgICAgZGVmaW5lIEJPT1NUX1RFU1RfQ1JUX1NFVF9IT09LKEgpICBfQ3J0U2V0UmVwb3J0SG9vayhIKQorIyAgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9DUlRfSE9PS19UWVBFICAgIHZvaWQqCisjICAgIGRlZmluZSBCT09TVF9URVNUX0NSVF9BU1NFUlQgICAgICAgMgorIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9DUlRfRVJST1IgICAgICAgIDEKKyMgICAgZGVmaW5lIEJPT1NUX1RFU1RfQ1JUX1NFVF9IT09LKEgpICAodm9pZCopKEgpCisjICBlbmRpZgorCisjICBpZiAhQk9PU1RfV09SS0FST1VORChfTVNDX1ZFUiwgID49IDE0MDAgKSB8fCBkZWZpbmVkKFVOREVSX0NFKQorCit0eXBlZGVmIHZvaWQqIF9pbnZhbGlkX3BhcmFtZXRlcl9oYW5kbGVyOworCitpbmxpbmUgX2ludmFsaWRfcGFyYW1ldGVyX2hhbmRsZXIKK19zZXRfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxlciggX2ludmFsaWRfcGFyYW1ldGVyX2hhbmRsZXIgYXJnICkKK3sKKyAgICByZXR1cm4gYXJnOworfQorCisjICBlbmRpZgorCisjICBpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4MDU2NCkpIHx8IGRlZmluZWQoVU5ERVJfQ0UpCisKK25hbWVzcGFjZSB7IHZvaWQgX3NldF9zZV90cmFuc2xhdG9yKCB2b2lkKiApIHt9IH0KKworIyAgZW5kaWYKKworI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfU0lHQUNUSU9OKQorCisjICBkZWZpbmUgQk9PU1RfU0lHQUNUSU9OX0JBU0VEX1NJR05BTF9IQU5ETElORworCisjICBpbmNsdWRlIDx1bmlzdGQuaD4KKyMgIGluY2x1ZGUgPHNpZ25hbC5oPgorIyAgaW5jbHVkZSA8c2V0am1wLmg+CisKKyMgIGlmIGRlZmluZWQoX19GcmVlQlNEX18pICAKKworIyAgICBpZm5kZWYgU0lHUE9MTAorIyAgICAgIGRlZmluZSBTSUdQT0xMIFNJR0lPCisjICAgIGVuZGlmCisKKyMgICAgaWYgKF9fRnJlZUJTRF92ZXJzaW9uIDwgNzAxMDApCisKKyMgICAgICBkZWZpbmUgSUxMX0lMTEFEUiAwIC8vIElMTF9SRVNBRF9GQVVMVAorIyAgICAgIGRlZmluZSBJTExfUFJWT1BDIElMTF9QUklWSU5fRkFVTFQKKyMgICAgICBkZWZpbmUgSUxMX0lMTE9QTiAyIC8vIElMTF9SRVNPUF9GQVVMVAorIyAgICAgIGRlZmluZSBJTExfQ09QUk9DIElMTF9GUE9QX0ZBVUxUCisKKyMgICAgICBkZWZpbmUgQk9PU1RfVEVTVF9MSU1JVEVEX1NJR05BTF9ERVRBSUxTCisjICAgICAgZGVmaW5lIEJPT1NUX1RFU1RfSUdOT1JFX1NJR0NITEQKKworIyAgICBlbmRpZiAKKyMgIGVuZGlmIAorCisjICBpZiAhZGVmaW5lZChfX0NZR1dJTl9fKSAmJiAhZGVmaW5lZChfX1FOWE5UT19fKQorIyAgIGRlZmluZSBCT09TVF9URVNUX1VTRV9BTFRfU1RBQ0sKKyMgIGVuZGlmCisKKyMgIGlmIGRlZmluZWQoU0lHUE9MTCkgJiYgIWRlZmluZWQoX19DWUdXSU5fXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBcCisgICAgICAhKGRlZmluZWQobWFjaW50b3NoKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX0FQUExFX0NDX18pKSAgJiYgXAorICAgICAgIWRlZmluZWQoX19OZXRCU0RfXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIFwKKyAgICAgICFkZWZpbmVkKF9fUU5YTlRPX18pCisjICAgIGRlZmluZSBCT09TVF9URVNUX0NBVENIX1NJR1BPTEwKKyMgIGVuZGlmCisKKyMgIGlmZGVmIEJPT1NUX1RFU1RfVVNFX0FMVF9TVEFDSworIyAgICBkZWZpbmUgQk9PU1RfVEVTVF9BTFRfU1RBQ0tfU0laRSBTSUdTVEtTWgorIyAgZW5kaWYKKworI2Vsc2UKKworIyAgZGVmaW5lIEJPT1NUX05PX1NJR05BTF9IQU5ETElORworCisjZW5kaWYKKworI2lmbmRlZiBVTkRFUl9DRQorI2luY2x1ZGUgPGVycm5vLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgcmVwb3J0X2Vycm9yICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmZGVmIF9fQk9STEFORENfXworIyAgZGVmaW5lIEJPT1NUX1RFU1RfVlNOUFJJTlRGKCBhMSwgYTIsIGEzLCBhNCApIHN0ZDo6dnNucHJpbnRmKCAoYTEpLCAoYTIpLCAoYTMpLCAoYTQpICkKKyNlbGlmIEJPT1NUX1dPUktBUk9VTkQoX01TQ19WRVIsIDw9IDEzMTApIHx8IFwKKyAgICAgIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgQk9PU1RfVEVTVEVEX0FUKDB4MzAwMCkpIHx8IFwKKyAgICAgIGRlZmluZWQoVU5ERVJfQ0UpCisjICBkZWZpbmUgQk9PU1RfVEVTVF9WU05QUklOVEYoIGExLCBhMiwgYTMsIGE0ICkgX3ZzbnByaW50ZiggKGExKSwgKGEyKSwgKGEzKSwgKGE0KSApCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX1RFU1RfVlNOUFJJTlRGKCBhMSwgYTIsIGEzLCBhNCApIHZzbnByaW50ZiggKGExKSwgKGEyKSwgKGEzKSwgKGE0KSApCisjZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lIEVycm9ySW5mbz4KK3R5cGVuYW1lIEVycm9ySW5mbzo6dmFsdWVfdHlwZQorZXh0cmFjdCggbmRuYm9vc3Q6OmV4Y2VwdGlvbiBjb25zdCogZXggKQoreworICAgIGlmKCAhZXggKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHR5cGVuYW1lIEVycm9ySW5mbzo6dmFsdWVfdHlwZSBjb25zdCAqIHZhbCA9IG5kbmJvb3N0OjpnZXRfZXJyb3JfaW5mbzxFcnJvckluZm8+KCAqZXggKTsKKworICAgIHJldHVybiB2YWwgPyAqdmFsIDogMDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RhdGljIHZvaWQKK3JlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6ZXJyb3JfY29kZSBlYywgbmRuYm9vc3Q6OmV4Y2VwdGlvbiBjb25zdCogYmUsIGNoYXIgY29uc3QqIGZvcm1hdCwgdmFfbGlzdCogYXJncyApCit7CisgICAgc3RhdGljIGNvbnN0IGludCBSRVBPUlRfRVJST1JfQlVGRkVSX1NJWkUgPSA1MTI7CisgICAgc3RhdGljIGNoYXIgYnVmW1JFUE9SVF9FUlJPUl9CVUZGRVJfU0laRV07CisKKyAgICBCT09TVF9URVNUX1ZTTlBSSU5URiggYnVmLCBzaXplb2YoYnVmKS0xLCBmb3JtYXQsICphcmdzICk7IAorICAgIGJ1ZltzaXplb2YoYnVmKS0xXSA9IDA7CisKKyAgICB2YV9lbmQoICphcmdzICk7CisKKyAgICB0aHJvdyBleGVjdXRpb25fZXhjZXB0aW9uKCBlYywgYnVmLCBleGVjdXRpb25fZXhjZXB0aW9uOjpsb2NhdGlvbiggZXh0cmFjdDx0aHJvd19maWxlPiggYmUgKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Q8dGhyb3dfbGluZT4oIGJlICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Q8dGhyb3dfZnVuY3Rpb24+KCBiZSApICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RhdGljIHZvaWQKK3JlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6ZXJyb3JfY29kZSBlYywgY2hhciBjb25zdCogZm9ybWF0LCAuLi4gKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICB2YV9zdGFydCggYXJncywgZm9ybWF0ICk7CisKKyAgICByZXBvcnRfZXJyb3IoIGVjLCAwLCBmb3JtYXQsICZhcmdzICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0YXRpYyB2b2lkCityZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmVycm9yX2NvZGUgZWMsIG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3QqIGJlLCBjaGFyIGNvbnN0KiBmb3JtYXQsIC4uLiApCit7CisgICAgdmFfbGlzdCBhcmdzOworICAgIHZhX3N0YXJ0KCBhcmdzLCBmb3JtYXQgKTsKKworICAgIHJlcG9ydF9lcnJvciggZWMsIGJlLCBmb3JtYXQsICZhcmdzICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyLHR5cGVuYW1lIEZ1bmN0b3I+CitpbmxpbmUgaW50Citkb19pbnZva2UoIFRyIGNvbnN0JiB0ciwgRnVuY3RvciBjb25zdCYgRiApCit7CisgICAgcmV0dXJuIHRyID8gKCp0cikoIEYgKSA6IEYoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKyNpZiBkZWZpbmVkKEJPT1NUX1NJR0FDVElPTl9CQVNFRF9TSUdOQUxfSEFORExJTkcpCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICBTaWdhY3Rpb24gYmFzZWQgc2lnbmFsIGhhbmRsaW5nICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICBuZG5ib29zdDo6ZGV0YWlsOjpzeXN0ZW1fc2lnbmFsX2V4Y2VwdGlvbiAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3Mgc3lzdGVtX3NpZ25hbF9leGNlcHRpb24geworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9yCisgICAgc3lzdGVtX3NpZ25hbF9leGNlcHRpb24oKQorICAgIDogbV9zaWdfaW5mbyggMCApCisgICAgLCBtX2NvbnRleHQoIDAgKQorICAgIHt9CisKKyAgICAvLyBBY2Nlc3MgbWV0aG9kcworICAgIHZvaWQgICAgICAgIG9wZXJhdG9yKCkoIHNpZ2luZm9fdCogaSwgdm9pZCogYyApCisgICAgeworICAgICAgICBtX3NpZ19pbmZvICA9IGk7CisgICAgICAgIG1fY29udGV4dCAgID0gYzsKKyAgICB9CisgICAgdm9pZCAgICAgICAgcmVwb3J0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgc2lnaW5mb190KiAgbV9zaWdfaW5mbzsgLy8gc3lzdGVtIHNpZ25hbCBkZXRhaWxlZCBpbmZvCisgICAgdm9pZCogICAgICAgbV9jb250ZXh0OyAgLy8gc2lnbmFsIGNvbnRleHQKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3N5c3RlbV9zaWduYWxfZXhjZXB0aW9uOjpyZXBvcnQoKSBjb25zdAoreworICAgIGlmKCAhbV9zaWdfaW5mbyApCisgICAgICAgIHJldHVybjsgLy8gbm8gZXJyb3IgYWN0dWFsbHkgb2NjdXI/CisKKyAgICBzd2l0Y2goIG1fc2lnX2luZm8tPnNpX2NvZGUgKSB7CisgICAgY2FzZSBTSV9VU0VSOgorICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBnZW5lcmF0ZWQgYnkga2lsbCgpIChvciBmYW1pbHkpOyB1aWQ9JWQ7IHBpZD0lZCIsCisgICAgICAgICAgICAgICAgICAgICAgKGludCltX3NpZ19pbmZvLT5zaV91aWQsIChpbnQpbV9zaWdfaW5mby0+c2lfcGlkICk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU0lfUVVFVUU6CisgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IHNlbnQgYnkgc2lncXVldWUoKSIgKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTSV9USU1FUjoKKyAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogdGhlIGV4cGlyYXRpb24gb2YgYSB0aW1lciBzZXQgYnkgdGltZXJfc2V0dGltZXIoKSIgKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTSV9BU1lOQ0lPOgorICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBnZW5lcmF0ZWQgYnkgdGhlIGNvbXBsZXRpb24gb2YgYW4gYXN5bmNocm9ub3VzIEkvTyByZXF1ZXN0IiApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNJX01FU0dROgorICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBnZW5lcmF0ZWQgYnkgdGhlIHRoZSBhcnJpdmFsIG9mIGEgbWVzc2FnZSBvbiBhbiBlbXB0eSBtZXNzYWdlIHF1ZXVlIiApOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2goIG1fc2lnX2luZm8tPnNpX3NpZ25vICkgeworICAgIGNhc2UgU0lHSUxMOgorICAgICAgICBzd2l0Y2goIG1fc2lnX2luZm8tPnNpX2NvZGUgKSB7CisjaWZuZGVmIEJPT1NUX1RFU1RfTElNSVRFRF9TSUdOQUxfREVUQUlMUworICAgICAgICBjYXNlIElMTF9JTExPUEM6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogaWxsZWdhbCBvcGNvZGU7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElMTF9JTExUUlA6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogaWxsZWdhbCB0cmFwOyBhZGRyZXNzIG9mIGZhaWxpbmcgaW5zdHJ1Y3Rpb246IDB4JTA4bHgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NpZ19pbmZvLT5zaV9hZGRyICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJTExfUFJWUkVHOgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZmF0YWxfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IHByaXZpbGVnZWQgcmVnaXN0ZXI7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElMTF9CQURTVEs6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogaW50ZXJuYWwgc3RhY2sgZXJyb3I7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGNhc2UgSUxMX0lMTE9QTjoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBpbGxlZ2FsIG9wZXJhbmQ7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElMTF9JTExBRFI6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogaWxsZWdhbCBhZGRyZXNzaW5nIG1vZGU7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElMTF9QUlZPUEM6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogcHJpdmlsZWdlZCBvcGNvZGU7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElMTF9DT1BST0M6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogY28tcHJvY2Vzc29yIGVycm9yOyBhZGRyZXNzIG9mIGZhaWxpbmcgaW5zdHJ1Y3Rpb246IDB4JTA4bHgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NpZ19pbmZvLT5zaV9hZGRyICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDogCisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IFNJR0lMTCwgc2lfY29kZTogJWQgKGlsbGVnYWwgaW5zdHJ1Y3Rpb247IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciwgbV9zaWdfaW5mby0+c2lfY29kZSApOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBTSUdGUEU6CisgICAgICAgIHN3aXRjaCggbV9zaWdfaW5mby0+c2lfY29kZSApIHsKKyAgICAgICAgY2FzZSBGUEVfSU5URElWOgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IGludGVnZXIgZGl2aWRlIGJ5IHplcm87IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZQRV9JTlRPVkY6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogaW50ZWdlciBvdmVyZmxvdzsgYWRkcmVzcyBvZiBmYWlsaW5nIGluc3RydWN0aW9uOiAweCUwOGx4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRlBFX0ZMVERJVjoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBmbG9hdGluZyBwb2ludCBkaXZpZGUgYnkgemVybzsgYWRkcmVzcyBvZiBmYWlsaW5nIGluc3RydWN0aW9uOiAweCUwOGx4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRlBFX0ZMVE9WRjoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBmbG9hdGluZyBwb2ludCBvdmVyZmxvdzsgYWRkcmVzcyBvZiBmYWlsaW5nIGluc3RydWN0aW9uOiAweCUwOGx4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRlBFX0ZMVFVORDoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBmbG9hdGluZyBwb2ludCB1bmRlcmZsb3c7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZQRV9GTFRSRVM6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogZmxvYXRpbmcgcG9pbnQgaW5leGFjdCByZXN1bHQ7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZQRV9GTFRJTlY6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogaW52YWxpZCBmbG9hdGluZyBwb2ludCBvcGVyYXRpb247IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZQRV9GTFRTVUI6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogc3Vic2NyaXB0IG91dCBvZiByYW5nZTsgYWRkcmVzcyBvZiBmYWlsaW5nIGluc3RydWN0aW9uOiAweCUwOGx4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogU0lHRlBFLCBzaV9jb2RlOiAlZCAoZXJybm9uZW91cyBhcml0aG1ldGljIG9wZXJhdGlvbnM7IGFkZHJlc3Mgb2YgZmFpbGluZyBpbnN0cnVjdGlvbjogMHglMDhseCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NpZ19pbmZvLT5zaV9hZGRyLCBtX3NpZ19pbmZvLT5zaV9jb2RlICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgU0lHU0VHVjoKKyAgICAgICAgc3dpdGNoKCBtX3NpZ19pbmZvLT5zaV9jb2RlICkgeworI2lmbmRlZiBCT09TVF9URVNUX0xJTUlURURfU0lHTkFMX0RFVEFJTFMKKyAgICAgICAgY2FzZSBTRUdWX01BUEVSUjoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibWVtb3J5IGFjY2VzcyB2aW9sYXRpb24gYXQgYWRkcmVzczogMHglMDhseDogbm8gbWFwcGluZyBhdCBmYXVsdCBhZGRyZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU0VHVl9BQ0NFUlI6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uIGF0IGFkZHJlc3M6IDB4JTA4bHg6IGludmFsaWQgcGVybWlzc2lvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NpZ19pbmZvLT5zaV9hZGRyICk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZmF0YWxfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IFNJR1NFR1YsIHNpX2NvZGU6ICVkIChtZW1vcnkgYWNjZXNzIHZpb2xhdGlvbiBhdCBhZGRyZXNzOiAweCUwOGx4KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIsIG1fc2lnX2luZm8tPnNpX2NvZGUgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBTSUdCVVM6CisgICAgICAgIHN3aXRjaCggbV9zaWdfaW5mby0+c2lfY29kZSApIHsKKyNpZm5kZWYgQk9PU1RfVEVTVF9MSU1JVEVEX1NJR05BTF9ERVRBSUxTCisgICAgICAgIGNhc2UgQlVTX0FEUkFMTjoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibWVtb3J5IGFjY2VzcyB2aW9sYXRpb24gYXQgYWRkcmVzczogMHglMDhseDogaW52YWxpZCBhZGRyZXNzIGFsaWdubWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2lnX2luZm8tPnNpX2FkZHIgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJVU19BRFJFUlI6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9mYXRhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeSBhY2Nlc3MgdmlvbGF0aW9uIGF0IGFkZHJlc3M6IDB4JTA4bHg6IG5vbi1leGlzdGVudCBwaHlzaWNhbCBhZGRyZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQlVTX09CSkVSUjoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibWVtb3J5IGFjY2VzcyB2aW9sYXRpb24gYXQgYWRkcmVzczogMHglMDhseDogb2JqZWN0IHNwZWNpZmljIGhhcmR3YXJlIGVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zaWdfaW5mby0+c2lfYWRkciApOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOiBTSUdTRUdWLCBzaV9jb2RlOiAlZCAobWVtb3J5IGFjY2VzcyB2aW9sYXRpb24gYXQgYWRkcmVzczogMHglMDhseCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NpZ19pbmZvLT5zaV9hZGRyLCBtX3NpZ19pbmZvLT5zaV9jb2RlICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgU0lHQ0hMRDoKKyAgICAgICAgc3dpdGNoKCBtX3NpZ19pbmZvLT5zaV9jb2RlICkgeworI2lmbmRlZiBCT09TVF9URVNUX0xJTUlURURfU0lHTkFMX0RFVEFJTFMKKyAgICAgICAgY2FzZSBDTERfRVhJVEVEOgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZCBoYXMgZXhpdGVkOyBwaWQ6ICVkOyB1aWQ6ICVkOyBleGl0IHZhbHVlOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV9zaWdfaW5mby0+c2lfcGlkLCAoaW50KW1fc2lnX2luZm8tPnNpX3VpZCwgKGludCltX3NpZ19pbmZvLT5zaV9zdGF0dXMgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENMRF9LSUxMRUQ6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNoaWxkIHdhcyBraWxsZWQ7IHBpZDogJWQ7IHVpZDogJWQ7IGV4aXQgdmFsdWU6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCltX3NpZ19pbmZvLT5zaV9waWQsIChpbnQpbV9zaWdfaW5mby0+c2lfdWlkLCAoaW50KW1fc2lnX2luZm8tPnNpX3N0YXR1cyApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ0xEX0RVTVBFRDoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hpbGQgdGVybWluYXRlZCBhYm5vcm1hbGx5OyBwaWQ6ICVkOyB1aWQ6ICVkOyBleGl0IHZhbHVlOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV9zaWdfaW5mby0+c2lfcGlkLCAoaW50KW1fc2lnX2luZm8tPnNpX3VpZCwgKGludCltX3NpZ19pbmZvLT5zaV9zdGF0dXMgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENMRF9UUkFQUEVEOgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFjZWQgY2hpbGQgaGFzIHRyYXBwZWQ7IHBpZDogJWQ7IHVpZDogJWQ7IGV4aXQgdmFsdWU6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCltX3NpZ19pbmZvLT5zaV9waWQsIChpbnQpbV9zaWdfaW5mby0+c2lfdWlkLCAoaW50KW1fc2lnX2luZm8tPnNpX3N0YXR1cyApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ0xEX1NUT1BQRUQ6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNoaWxkIGhhcyBzdG9wcGVkOyBwaWQ6ICVkOyB1aWQ6ICVkOyBleGl0IHZhbHVlOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV9zaWdfaW5mby0+c2lfcGlkLCAoaW50KW1fc2lnX2luZm8tPnNpX3VpZCwgKGludCltX3NpZ19pbmZvLT5zaV9zdGF0dXMgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENMRF9DT05USU5VRUQ6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInN0b3BwZWQgY2hpbGQgaGFkIGNvbnRpbnVlZDsgcGlkOiAlZDsgdWlkOiAlZDsgZXhpdCB2YWx1ZTogJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fc2lnX2luZm8tPnNpX3BpZCwgKGludCltX3NpZ19pbmZvLT5zaV91aWQsIChpbnQpbV9zaWdfaW5mby0+c2lfc3RhdHVzICk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IFNJR0NITEQsIHNpX2NvZGU6ICVkIChjaGlsZCBwcm9jZXNzIGhhcyB0ZXJtaW5hdGVkOyBwaWQ6ICVkOyB1aWQ6ICVkOyBleGl0IHZhbHVlOiAlZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fc2lnX2luZm8tPnNpX3BpZCwgKGludCltX3NpZ19pbmZvLT5zaV91aWQsIChpbnQpbV9zaWdfaW5mby0+c2lfc3RhdHVzLCBtX3NpZ19pbmZvLT5zaV9jb2RlICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworI2lmIGRlZmluZWQoQk9PU1RfVEVTVF9DQVRDSF9TSUdQT0xMKQorCisgICAgY2FzZSBTSUdQT0xMOgorICAgICAgICBzd2l0Y2goIG1fc2lnX2luZm8tPnNpX2NvZGUgKSB7CisjaWZuZGVmIEJPT1NUX1RFU1RfTElNSVRFRF9TSUdOQUxfREVUQUlMUworICAgICAgICBjYXNlIFBPTExfSU46CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEgaW5wdXQgYXZhaWxhYmxlOyBiYW5kIGV2ZW50ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCltX3NpZ19pbmZvLT5zaV9iYW5kICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQT0xMX09VVDoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAib3V0cHV0IGJ1ZmZlcnMgYXZhaWxhYmxlOyBiYW5kIGV2ZW50ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCltX3NpZ19pbmZvLT5zaV9iYW5kICk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQT0xMX01TRzoKKyAgICAgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5wdXQgbWVzc2FnZSBhdmFpbGFibGU7IGJhbmQgZXZlbnQgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fc2lnX2luZm8tPnNpX2JhbmQgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBPTExfRVJSOgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJpL28gZXJyb3I7IGJhbmQgZXZlbnQgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fc2lnX2luZm8tPnNpX2JhbmQgKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBPTExfUFJJOgorICAgICAgICAgICAgcmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJoaWdoIHByaW9yaXR5IGlucHV0IGF2YWlsYWJsZTsgYmFuZCBldmVudCAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV9zaWdfaW5mby0+c2lfYmFuZCApOworICAgICAgICAgICAgYnJlYWs7CisjaWYgZGVmaW5lZChQT0xMX0VSUikgJiYgZGVmaW5lZChQT0xMX0hVUCkgJiYgKFBPTExfRVJSIC0gUE9MTF9IVVApCisgICAgICAgIGNhc2UgUE9MTF9IVVA6CisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRldmljZSBkaXNjb25uZWN0ZWQ7IGJhbmQgZXZlbnQgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fc2lnX2luZm8tPnNpX2JhbmQgKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDogCisgICAgICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IFNJR1BPTEwsIHNpX2NvZGU6ICVkIChhc3luY2hyb25vdXMgSS9PIGV2ZW50IG9jY3VyZWQ7IGJhbmQgZXZlbnQgJWQpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV9zaWdfaW5mby0+c2lfYmFuZCwgbV9zaWdfaW5mby0+c2lfY29kZSApOyAKKyAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworI2VuZGlmCisKKyAgICBjYXNlIFNJR0FCUlQ6CisgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6IFNJR0FCUlQgKGFwcGxpY2F0aW9uIGFib3J0IHJlcXVlc3RlZCkiICk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBTSUdBTFJNOgorICAgICAgICByZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnRpbWVvdXRfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDogU0lHQUxSTSAodGltZW91dCB3aGlsZSBleGVjdXRpbmcgZnVuY3Rpb24pIiApOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLCAidW5yZWNvZ25pemVkIHNpZ25hbCIgKTsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNpZ25hbF9hY3Rpb24gICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworLy8gRm9yd2FyZCBkZWNsYXJhdGlvbgorZXh0ZXJuICJDIiB7CitzdGF0aWMgdm9pZCBleGVjdXRpb25fbW9uaXRvcl9qdW1waW5nX3NpZ25hbF9oYW5kbGVyKCBpbnQgc2lnLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIGNvbnRleHQgKTsKK3N0YXRpYyB2b2lkIGV4ZWN1dGlvbl9tb25pdG9yX2F0dGFjaGluZ19zaWduYWxfaGFuZGxlciggaW50IHNpZywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiBjb250ZXh0ICk7Cit9CisKK2NsYXNzIHNpZ25hbF9hY3Rpb24geworICAgIHR5cGVkZWYgc3RydWN0IHNpZ2FjdGlvbiogc2lnYWN0aW9uX3B0cjsKK3B1YmxpYzoKKyAgICAvL0NvbnN0cnVjdG9yCisgICAgc2lnbmFsX2FjdGlvbigpOworICAgIHNpZ25hbF9hY3Rpb24oIGludCBzaWcsIGJvb2wgaW5zdGFsbCwgYm9vbCBhdHRhY2hfZGJnLCBjaGFyKiBhbHRfc3RhY2sgKTsKKyAgICB+c2lnbmFsX2FjdGlvbigpOworCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIGludCAgICAgICAgICAgICAgICAgbV9zaWc7CisgICAgYm9vbCAgICAgICAgICAgICAgICBtX2luc3RhbGxlZDsKKyAgICBzdHJ1Y3Qgc2lnYWN0aW9uICAgIG1fbmV3X2FjdGlvbjsKKyAgICBzdHJ1Y3Qgc2lnYWN0aW9uICAgIG1fb2xkX2FjdGlvbjsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3NpZ25hbF9hY3Rpb246OnNpZ25hbF9hY3Rpb24oKQorOiBtX2luc3RhbGxlZCggZmFsc2UgKQore30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc2lnbmFsX2FjdGlvbjo6c2lnbmFsX2FjdGlvbiggaW50IHNpZywgYm9vbCBpbnN0YWxsLCBib29sIGF0dGFjaF9kYmcsIGNoYXIqIGFsdF9zdGFjayApCis6IG1fc2lnKCBzaWcgKQorLCBtX2luc3RhbGxlZCggaW5zdGFsbCApCit7CisgICAgaWYoICFpbnN0YWxsICkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RkOjptZW1zZXQoICZtX25ld19hY3Rpb24sIDAsIHNpemVvZihzdHJ1Y3Qgc2lnYWN0aW9uKSApOworCisgICAgQk9PU1RfVEVTVF9TWVNfQVNTRVJUKCA6OnNpZ2FjdGlvbiggbV9zaWcgLCBzaWdhY3Rpb25fcHRyKCksICZtX25ld19hY3Rpb24gKSAhPSAtMSApOworCisgICAgaWYoIG1fbmV3X2FjdGlvbi5zYV9zaWdhY3Rpb24gfHwgbV9uZXdfYWN0aW9uLnNhX2hhbmRsZXIgKSB7CisgICAgICAgIG1faW5zdGFsbGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX25ld19hY3Rpb24uc2FfZmxhZ3MgICAgIHw9IFNBX1NJR0lORk87CisgICAgbV9uZXdfYWN0aW9uLnNhX3NpZ2FjdGlvbiAgPSBhdHRhY2hfZGJnID8gJmV4ZWN1dGlvbl9tb25pdG9yX2F0dGFjaGluZ19zaWduYWxfaGFuZGxlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICZleGVjdXRpb25fbW9uaXRvcl9qdW1waW5nX3NpZ25hbF9oYW5kbGVyOworICAgIEJPT1NUX1RFU1RfU1lTX0FTU0VSVCggc2lnZW1wdHlzZXQoICZtX25ld19hY3Rpb24uc2FfbWFzayApICE9IC0xICk7CisKKyNpZmRlZiBCT09TVF9URVNUX1VTRV9BTFRfU1RBQ0sKKyAgICBpZiggYWx0X3N0YWNrICkKKyAgICAgICAgbV9uZXdfYWN0aW9uLnNhX2ZsYWdzIHw9IFNBX09OU1RBQ0s7CisjZW5kaWYKKworICAgIEJPT1NUX1RFU1RfU1lTX0FTU0VSVCggOjpzaWdhY3Rpb24oIG1fc2lnLCAmbV9uZXdfYWN0aW9uLCAmbV9vbGRfYWN0aW9uICkgIT0gLTEgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc2lnbmFsX2FjdGlvbjo6fnNpZ25hbF9hY3Rpb24oKQoreworICAgIGlmKCBtX2luc3RhbGxlZCApCisgICAgICAgIDo6c2lnYWN0aW9uKCBtX3NpZywgJm1fb2xkX2FjdGlvbiAsIHNpZ2FjdGlvbl9wdHIoKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNpZ25hbF9oYW5kbGVyICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIHNpZ25hbF9oYW5kbGVyIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0IHNpZ25hbF9oYW5kbGVyKCBib29sIGNhdGNoX3N5c3RlbV9lcnJvcnMsIGludCB0aW1lb3V0LCBib29sIGF0dGFjaF9kYmcsIGNoYXIqIGFsdF9zdGFjayApOworCisgICAgLy8gRGVzdHJ1Y3RvcgorICAgIH5zaWduYWxfaGFuZGxlcigpOworCisgICAgLy8gYWNjZXNzIG1ldGhvZHMKKyAgICBzdGF0aWMgc2lnam1wX2J1ZiYgICAgICBqdW1wX2J1ZmZlcigpCisgICAgeworICAgICAgICBhc3NlcnQoICEhc19hY3RpdmVfaGFuZGxlciApOworCisgICAgICAgIHJldHVybiBzX2FjdGl2ZV9oYW5kbGVyLT5tX3NpZ2ptcF9idWY7CisgICAgfQorCisgICAgc3RhdGljIHN5c3RlbV9zaWduYWxfZXhjZXB0aW9uJiAgc3lzX3NpZygpCisgICAgeworICAgICAgICBhc3NlcnQoICEhc19hY3RpdmVfaGFuZGxlciApOworCisgICAgICAgIHJldHVybiBzX2FjdGl2ZV9oYW5kbGVyLT5tX3N5c19zaWc7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIHNpZ25hbF9oYW5kbGVyKiAgICAgICAgIG1fcHJldl9oYW5kbGVyOworICAgIGludCAgICAgICAgICAgICAgICAgICAgIG1fdGltZW91dDsKKworICAgIHNpZ25hbF9hY3Rpb24gICAgICAgICAgIG1fSUxMX2FjdGlvbjsKKyAgICBzaWduYWxfYWN0aW9uICAgICAgICAgICBtX0ZQRV9hY3Rpb247CisgICAgc2lnbmFsX2FjdGlvbiAgICAgICAgICAgbV9TRUdWX2FjdGlvbjsKKyAgICBzaWduYWxfYWN0aW9uICAgICAgICAgICBtX0JVU19hY3Rpb247CisgICAgc2lnbmFsX2FjdGlvbiAgICAgICAgICAgbV9DSExEX2FjdGlvbjsKKyAgICBzaWduYWxfYWN0aW9uICAgICAgICAgICBtX1BPTExfYWN0aW9uOworICAgIHNpZ25hbF9hY3Rpb24gICAgICAgICAgIG1fQUJSVF9hY3Rpb247CisgICAgc2lnbmFsX2FjdGlvbiAgICAgICAgICAgbV9BTFJNX2FjdGlvbjsKKworICAgIHNpZ2ptcF9idWYgICAgICAgICAgICAgIG1fc2lnam1wX2J1ZjsKKyAgICBzeXN0ZW1fc2lnbmFsX2V4Y2VwdGlvbiBtX3N5c19zaWc7CisKKyAgICBzdGF0aWMgc2lnbmFsX2hhbmRsZXIqICBzX2FjdGl2ZV9oYW5kbGVyOworfTsKKworLy8gISEgbmVlZCB0byBiZSBwbGFjZWQgaW4gdGhyZWFkIHNwZWNpZmljIHN0b3JhZ2UKK3R5cGVkZWYgc2lnbmFsX2hhbmRsZXIqIHNpZ25hbF9oYW5kbGVyX3B0cjsKK3NpZ25hbF9oYW5kbGVyKiBzaWduYWxfaGFuZGxlcjo6c19hY3RpdmVfaGFuZGxlciA9IHNpZ25hbF9oYW5kbGVyX3B0cigpOworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzaWduYWxfaGFuZGxlcjo6c2lnbmFsX2hhbmRsZXIoIGJvb2wgY2F0Y2hfc3lzdGVtX2Vycm9ycywgaW50IHRpbWVvdXQsIGJvb2wgYXR0YWNoX2RiZywgY2hhciogYWx0X3N0YWNrICkKKzogbV9wcmV2X2hhbmRsZXIoIHNfYWN0aXZlX2hhbmRsZXIgKQorLCBtX3RpbWVvdXQoIHRpbWVvdXQgKQorLCBtX0lMTF9hY3Rpb24gKCBTSUdJTEwgLCBjYXRjaF9zeXN0ZW1fZXJyb3JzLCBhdHRhY2hfZGJnLCBhbHRfc3RhY2sgKQorLCBtX0ZQRV9hY3Rpb24gKCBTSUdGUEUgLCBjYXRjaF9zeXN0ZW1fZXJyb3JzLCBhdHRhY2hfZGJnLCBhbHRfc3RhY2sgKQorLCBtX1NFR1ZfYWN0aW9uKCBTSUdTRUdWLCBjYXRjaF9zeXN0ZW1fZXJyb3JzLCBhdHRhY2hfZGJnLCBhbHRfc3RhY2sgKQorLCBtX0JVU19hY3Rpb24gKCBTSUdCVVMgLCBjYXRjaF9zeXN0ZW1fZXJyb3JzLCBhdHRhY2hfZGJnLCBhbHRfc3RhY2sgKQorI2lmbmRlZiBCT09TVF9URVNUX0lHTk9SRV9TSUdDSExECissIG1fQ0hMRF9hY3Rpb24oIFNJR0NITEQsIGNhdGNoX3N5c3RlbV9lcnJvcnMsIGF0dGFjaF9kYmcsIGFsdF9zdGFjayApCisjZW5kaWYKKyNpZmRlZiBCT09TVF9URVNUX0NBVENIX1NJR1BPTEwKKywgbV9QT0xMX2FjdGlvbiggU0lHUE9MTCwgY2F0Y2hfc3lzdGVtX2Vycm9ycywgYXR0YWNoX2RiZywgYWx0X3N0YWNrICkKKyNlbmRpZgorLCBtX0FCUlRfYWN0aW9uKCBTSUdBQlJULCBjYXRjaF9zeXN0ZW1fZXJyb3JzLCBhdHRhY2hfZGJnLCBhbHRfc3RhY2sgKQorLCBtX0FMUk1fYWN0aW9uKCBTSUdBTFJNLCB0aW1lb3V0ID4gMCAgICAgICAgLCBhdHRhY2hfZGJnLCBhbHRfc3RhY2sgKQoreworICAgIHNfYWN0aXZlX2hhbmRsZXIgPSB0aGlzOworCisgICAgaWYoIG1fdGltZW91dCA+IDAgKSB7CisgICAgICAgIDo6YWxhcm0oIDAgKTsKKyAgICAgICAgOjphbGFybSggdGltZW91dCApOworICAgIH0KKworI2lmZGVmIEJPT1NUX1RFU1RfVVNFX0FMVF9TVEFDSworICAgIGlmKCBhbHRfc3RhY2sgKSB7CisgICAgICAgIHN0YWNrX3Qgc2lnc3RrOworICAgICAgICBzdGQ6Om1lbXNldCggJnNpZ3N0aywgMCwgc2l6ZW9mKHN0YWNrX3QpICk7CisKKyAgICAgICAgQk9PU1RfVEVTVF9TWVNfQVNTRVJUKCA6OnNpZ2FsdHN0YWNrKCAwLCAmc2lnc3RrICkgIT0gLTEgKTsKKworICAgICAgICBpZiggc2lnc3RrLnNzX2ZsYWdzICYgU1NfRElTQUJMRSApIHsKKyAgICAgICAgICAgIHNpZ3N0ay5zc19zcCAgICA9IGFsdF9zdGFjazsKKyAgICAgICAgICAgIHNpZ3N0ay5zc19zaXplICA9IEJPT1NUX1RFU1RfQUxUX1NUQUNLX1NJWkU7CisgICAgICAgICAgICBzaWdzdGsuc3NfZmxhZ3MgPSAwOworICAgICAgICAgICAgQk9PU1RfVEVTVF9TWVNfQVNTRVJUKCA6OnNpZ2FsdHN0YWNrKCAmc2lnc3RrLCAwICkgIT0gLTEgKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzaWduYWxfaGFuZGxlcjo6fnNpZ25hbF9oYW5kbGVyKCkKK3sKKyAgICBhc3NlcnQoIHNfYWN0aXZlX2hhbmRsZXIgPT0gdGhpcyApOworCisgICAgaWYoIG1fdGltZW91dCA+IDAgKQorICAgICAgICA6OmFsYXJtKCAwICk7CisKKyNpZmRlZiBCT09TVF9URVNUX1VTRV9BTFRfU1RBQ0sKKyNpZmRlZiBfX0dOVUNfXworICAgIC8vIFdlIHNob3VsZG4ndCBuZWVkIHRvIGV4cGxpY2l0bHkgaW5pdGlhbGl6ZSBhbGwgdGhlIG1lbWJlcnMgaGVyZSwKKyAgICAvLyBidXQgZ2NjIHdhcm5zIGlmIHdlIGRvbid0LCBzbyBhZGQgaW5pdGlhbGl6ZXJzIGZvciBlYWNoIG9mIHRoZQorICAgIC8vIG1lbWJlcnMgc3BlY2lmaWVkIGluIHRoZSBQT1NJWCBzdGQ6CisgICAgc3RhY2tfdCBzaWdzdGsgPSB7IDAsIDAsIDAgfTsKKyNlbHNlCisgICAgc3RhY2tfdCBzaWdzdGsgPSB7IH07CisjZW5kaWYKKworICAgIHNpZ3N0ay5zc19zaXplICA9IE1JTlNJR1NUS1NaOworICAgIHNpZ3N0ay5zc19mbGFncyA9IFNTX0RJU0FCTEU7CisgICAgQk9PU1RfVEVTVF9TWVNfQVNTRVJUKCA6OnNpZ2FsdHN0YWNrKCAmc2lnc3RrLCAwICkgIT0gLTEgKTsKKyNlbmRpZgorCisgICAgc19hY3RpdmVfaGFuZGxlciA9IG1fcHJldl9oYW5kbGVyOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgZXhlY3V0aW9uX21vbml0b3Jfc2lnbmFsX2hhbmRsZXIgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2V4dGVybiAiQyIgeworCitzdGF0aWMgYm9vbCBpZ25vcmVfc2lnY2hpbGQoIHNpZ2luZm9fdCogaW5mbyApCit7CisgICAgcmV0dXJuIGluZm8tPnNpX3NpZ25vID09IFNJR0NITEQKKyNpZm5kZWYgQk9PU1RfVEVTVF9MSU1JVEVEX1NJR05BTF9ERVRBSUxTCisgICAgICAgICAgICAmJiBpbmZvLT5zaV9jb2RlID09IENMRF9FWElURUQgCisjZW5kaWYKKyNpZmRlZiBCT09TVF9URVNUX0lHTk9SRV9OT05fWkVST19DSElMRF9DT0RFCisgICAgICAgICAgICA7CisjZWxzZQorICAgICAgICAgICAgJiYgKGludClpbmZvLT5zaV9zdGF0dXMgPT0gMDsKKyNlbmRpZgorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdGF0aWMgdm9pZCBleGVjdXRpb25fbW9uaXRvcl9qdW1waW5nX3NpZ25hbF9oYW5kbGVyKCBpbnQgc2lnLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIGNvbnRleHQgKQoreworICAgIGlmKCBpZ25vcmVfc2lnY2hpbGQoIGluZm8gKSApCisgICAgICAgIHJldHVybjsKKworICAgIHNpZ25hbF9oYW5kbGVyOjpzeXNfc2lnKCkoIGluZm8sIGNvbnRleHQgKTsKKworICAgIHNpZ2xvbmdqbXAoIHNpZ25hbF9oYW5kbGVyOjpqdW1wX2J1ZmZlcigpLCBzaWcgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RhdGljIHZvaWQgZXhlY3V0aW9uX21vbml0b3JfYXR0YWNoaW5nX3NpZ25hbF9oYW5kbGVyKCBpbnQgc2lnLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIGNvbnRleHQgKQoreworICAgIGlmKCBpZ25vcmVfc2lnY2hpbGQoIGluZm8gKSApCisgICAgICAgIHJldHVybjsKKworICAgIGlmKCAhZGVidWc6OmF0dGFjaF9kZWJ1Z2dlciggZmFsc2UgKSApCisgICAgICAgIGV4ZWN1dGlvbl9tb25pdG9yX2p1bXBpbmdfc2lnbmFsX2hhbmRsZXIoIHNpZywgaW5mbywgY29udGV4dCApOworCisgICAgLy8gZGVidWdnZXIgYXR0YWNoZWQ7IGl0IHdpbGwgaGFuZGxlIHRoZSBzaWduYWwKKyAgICBCT09TVF9URVNUX1NZU19BU1NFUlQoIDo6c2lnbmFsKCBzaWcsIFNJR19ERkwgKSAhPSBTSUdfRVJSICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgZXhlY3V0aW9uX21vbml0b3I6OmNhdGNoX3NpZ25hbHMgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworaW50CitleGVjdXRpb25fbW9uaXRvcjo6Y2F0Y2hfc2lnbmFscyggdW5pdF90ZXN0OjpjYWxsYmFjazA8aW50PiBjb25zdCYgRiApCit7CisgICAgdXNpbmcgbmFtZXNwYWNlIGRldGFpbDsKKworI2lmIGRlZmluZWQoX19DWUdXSU5fXykKKyAgICBwX2NhdGNoX3N5c3RlbV9lcnJvcnMudmFsdWUgPSBmYWxzZTsKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfVEVTVF9VU0VfQUxUX1NUQUNLCisgICAgaWYoICEhcF91c2VfYWx0X3N0YWNrICYmICFtX2FsdF9zdGFjayApCisgICAgICAgIG1fYWx0X3N0YWNrLnJlc2V0KCBuZXcgY2hhcltCT09TVF9URVNUX0FMVF9TVEFDS19TSVpFXSApOworI2Vsc2UKKyAgICBwX3VzZV9hbHRfc3RhY2sudmFsdWUgPSBmYWxzZTsKKyNlbmRpZgorCisgICAgc2lnbmFsX2hhbmRsZXIgbG9jYWxfc2lnbmFsX2hhbmRsZXIoIHBfY2F0Y2hfc3lzdGVtX2Vycm9ycywgcF90aW1lb3V0LCBwX2F1dG9fc3RhcnRfZGJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXBfdXNlX2FsdF9zdGFjayA/IDAgOiBtX2FsdF9zdGFjay5nZXQoKSApOworCisgICAgaWYoICFzaWdzZXRqbXAoIHNpZ25hbF9oYW5kbGVyOjpqdW1wX2J1ZmZlcigpLCAxICkgKQorICAgICAgICByZXR1cm4gZGV0YWlsOjpkb19pbnZva2UoIG1fY3VzdG9tX3RyYW5zbGF0b3JzICwgRiApOworICAgIGVsc2UKKyAgICAgICAgdGhyb3cgbG9jYWxfc2lnbmFsX2hhbmRsZXIuc3lzX3NpZygpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZWxpZiBkZWZpbmVkKEJPT1NUX1NFSF9CQVNFRF9TSUdOQUxfSEFORExJTkcpCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgIE1pY3Jvc29mdCBzdHJ1Y3R1cmVkIGV4Y2VwdGlvbiBoYW5kbGluZyAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHgwNTY0KSkKK25hbWVzcGFjZSB7IHZvaWQgX3NldF9zZV90cmFuc2xhdG9yKCB2b2lkKiApIHt9IH0KKyNlbmRpZgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgIG5kbmJvb3N0OjpkZXRhaWw6OnN5c3RlbV9zaWduYWxfZXhjZXB0aW9uICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBzeXN0ZW1fc2lnbmFsX2V4Y2VwdGlvbiB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICAgICAgICAgIHN5c3RlbV9zaWduYWxfZXhjZXB0aW9uKCBleGVjdXRpb25fbW9uaXRvciogZW0gKQorICAgIDogbV9lbSggZW0gKQorICAgICwgbV9zZV9pZCggMCApCisgICAgLCBtX2ZhdWx0X2FkZHJlc3MoIDAgKQorICAgICwgbV9kaXIoIGZhbHNlICkKKyAgICB7fQorCisgICAgdm9pZCAgICAgICAgICAgICAgICByZXBvcnQoKSBjb25zdDsKKyAgICBpbnQgICAgICAgICAgICAgICAgIG9wZXJhdG9yKCkoIHVuc2lnbmVkIGludCBpZCwgX0VYQ0VQVElPTl9QT0lOVEVSUyogZXhwcyApOworCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIGV4ZWN1dGlvbl9tb25pdG9yKiAgbV9lbTsKKworICAgIHVuc2lnbmVkIGludCAgICAgICAgbV9zZV9pZDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgIG1fZmF1bHRfYWRkcmVzczsKKyAgICBib29sICAgICAgICAgICAgICAgIG1fZGlyOworfTsKKworc3RhdGljIHZvaWQKK3NlaF9jYXRjaF9wcmV2ZW50ZXIoIHVuc2lnbmVkIGludCAvKiBpZCAqLywgX0VYQ0VQVElPTl9QT0lOVEVSUyogLyogZXhwcyAqLyApCit7CisgICAgdGhyb3c7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2ludAorc3lzdGVtX3NpZ25hbF9leGNlcHRpb246Om9wZXJhdG9yKCkoIHVuc2lnbmVkIGludCBpZCwgX0VYQ0VQVElPTl9QT0lOVEVSUyogZXhwcyApCit7CisgICAgY29uc3QgdW5zaWduZWQgaW50IE1TRlRfQ1BQX0VYQ0VQVCA9IDB4RTA2ZDczNjM7IC8vIEVNU0MKKworICAgIGlmKCAhbV9lbS0+cF9jYXRjaF9zeXN0ZW1fZXJyb3JzIHx8IChpZCA9PSBNU0ZUX0NQUF9FWENFUFQpICkKKyAgICAgICAgcmV0dXJuIEVYQ0VQVElPTl9DT05USU5VRV9TRUFSQ0g7CisKKyAgICBpZiggISFtX2VtLT5wX2F1dG9fc3RhcnRfZGJnICYmIGRlYnVnOjphdHRhY2hfZGVidWdnZXIoIGZhbHNlICkgKSB7CisgICAgICAgIG1fZW0tPnBfY2F0Y2hfc3lzdGVtX2Vycm9ycy52YWx1ZSA9IGZhbHNlOworICAgICAgICBfc2V0X3NlX3RyYW5zbGF0b3IoICZzZWhfY2F0Y2hfcHJldmVudGVyICk7CisKKyAgICAgICAgcmV0dXJuIEVYQ0VQVElPTl9DT05USU5VRV9FWEVDVVRJT047CisgICAgfQorCisgICAgbV9zZV9pZCA9IGlkOworICAgIGlmKCBtX3NlX2lkID09IEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OICYmIGV4cHMtPkV4Y2VwdGlvblJlY29yZC0+TnVtYmVyUGFyYW1ldGVycyA9PSAyICkgeworICAgICAgICBtX2ZhdWx0X2FkZHJlc3MgPSAodm9pZCopZXhwcy0+RXhjZXB0aW9uUmVjb3JkLT5FeGNlcHRpb25JbmZvcm1hdGlvblsxXTsKKyAgICAgICAgbV9kaXIgICAgICAgICAgID0gZXhwcy0+RXhjZXB0aW9uUmVjb3JkLT5FeGNlcHRpb25JbmZvcm1hdGlvblswXSA9PSAwOworICAgIH0KKworICAgIHJldHVybiBFWENFUFRJT05fRVhFQ1VURV9IQU5ETEVSOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitzeXN0ZW1fc2lnbmFsX2V4Y2VwdGlvbjo6cmVwb3J0KCkgY29uc3QKK3sKKyAgICBzd2l0Y2goIG1fc2VfaWQgKSB7CisgICAgLy8gY2FzZXMgY2xhc3NpZmllZCBhcyBzeXN0ZW1fZmF0YWxfZXJyb3IKKyAgICBjYXNlIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OOiB7CisgICAgICAgIGlmKCAhbV9mYXVsdF9hZGRyZXNzICkKKyAgICAgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZmF0YWxfZXJyb3IsICJtZW1vcnkgYWNjZXNzIHZpb2xhdGlvbiIgKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGV0YWlsOjpyZXBvcnRfZXJyb3IoCisgICAgICAgICAgICAgICAgZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAibWVtb3J5IGFjY2VzcyB2aW9sYXRpb24gb2NjdXJyZWQgYXQgYWRkcmVzcyAweCUwOGx4LCB3aGlsZSBhdHRlbXB0aW5nIHRvICVzIiwKKyAgICAgICAgICAgICAgICAgICAgbV9mYXVsdF9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICBtX2RpciA/ICIgcmVhZCBpbmFjY2Vzc2libGUgZGF0YSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiIHdyaXRlIHRvIGFuIGluYWNjZXNzaWJsZSAob3IgcHJvdGVjdGVkKSBhZGRyZXNzIgorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIEVYQ0VQVElPTl9JTExFR0FMX0lOU1RSVUNUSU9OOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLCAiaWxsZWdhbCBpbnN0cnVjdGlvbiIgKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEVYQ0VQVElPTl9QUklWX0lOU1RSVUNUSU9OOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLCAidHJpZWQgdG8gZXhlY3V0ZSBhbiBpbnN0cnVjdGlvbiB3aG9zZSBvcGVyYXRpb24gaXMgbm90IGFsbG93ZWQgaW4gdGhlIGN1cnJlbnQgbWFjaGluZSBtb2RlIiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX0lOX1BBR0VfRVJST1I6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZmF0YWxfZXJyb3IsICJhY2Nlc3MgdG8gYSBtZW1vcnkgcGFnZSB0aGF0IGlzIG5vdCBwcmVzZW50IiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX1NUQUNLX09WRVJGTE9XOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLCAic3RhY2sgb3ZlcmZsb3ciICk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBFWENFUFRJT05fTk9OQ09OVElOVUFCTEVfRVhDRVBUSU9OOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yLCAidHJpZWQgdG8gY29udGludWUgZXhlY3V0aW9uIGFmdGVyIGEgbm9uIGNvbnRpbnVhYmxlIGV4Y2VwdGlvbiBvY2N1cnJlZCIgKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAvLyBjYXNlcyBjbGFzc2lmaWVkIGFzIChub24tZmF0YWwpIHN5c3RlbV90cmFwCisgICAgY2FzZSBFWENFUFRJT05fREFUQVRZUEVfTUlTQUxJR05NRU5UOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLCAiZGF0YSBtaXNhbGlnbm1lbnQiICk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBFWENFUFRJT05fSU5UX0RJVklERV9CWV9aRVJPOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLCAiaW50ZWdlciBkaXZpZGUgYnkgemVybyIgKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEVYQ0VQVElPTl9JTlRfT1ZFUkZMT1c6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsICJpbnRlZ2VyIG92ZXJmbG93IiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX0FSUkFZX0JPVU5EU19FWENFRURFRDoKKyAgICAgICAgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwgImFycmF5IGJvdW5kcyBleGNlZWRlZCIgKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfRElWSURFX0JZX1pFUk86CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsICJmbG9hdGluZyBwb2ludCBkaXZpZGUgYnkgemVybyIgKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfU1RBQ0tfQ0hFQ0s6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhY2sgb3ZlcmZsb3dlZCBvciB1bmRlcmZsb3dlZCBhcyB0aGUgcmVzdWx0IG9mIGEgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9uIiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9ERU5PUk1BTF9PUEVSQU5EOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQgb2YgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9uIGlzIGRlbm9ybWFsIiApOworICAgICAgICBicmVhazsKKworIyBpZiAwIC8vICEhID8/IAorICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9JTkVYQUNUX1JFU1VMVDoKKyAgICAgICAgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXN1bHQgb2YgYSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24gY2Fubm90IGJlIHJlcHJlc2VudGVkIGV4YWN0bHkiICk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfT1ZFUkZMT1c6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwb25lbnQgb2YgYSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24gaXMgZ3JlYXRlciB0aGFuIHRoZSBtYWduaXR1ZGUgYWxsb3dlZCBieSB0aGUgY29ycmVzcG9uZGluZyB0eXBlIiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9VTkRFUkZMT1c6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwb25lbnQgb2YgYSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24gaXMgbGVzcyB0aGFuIHRoZSBtYWduaXR1ZGUgYWxsb3dlZCBieSB0aGUgY29ycmVzcG9uZGluZyB0eXBlIiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9JTlZBTElEX09QRVJBVElPTjoKKyAgICAgICAgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OnN5c3RlbV9lcnJvciwgImZsb2F0aW5nIHBvaW50IGVycm9yIiApOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRVhDRVBUSU9OX0JSRUFLUE9JTlQ6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsICJicmVha3BvaW50IGVuY291bnRlcmVkIiApOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpzeXN0ZW1fZXJyb3IsICJ1bnJlY29nbml6ZWQgZXhjZXB0aW9uLiBJZDogMHglMDhseCIsIG1fc2VfaWQgKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgYXNzZXJ0X3JlcG9ydGluZ19mdW5jdGlvbiAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2ludCBCT09TVF9URVNUX0NBTExfREVDTAorYXNzZXJ0X3JlcG9ydGluZ19mdW5jdGlvbiggaW50IHJlcG9ydFR5cGUsIGNoYXIqIHVzZXJNZXNzYWdlLCBpbnQqICkKK3sKKyAgICBzd2l0Y2goIHJlcG9ydFR5cGUgKSB7CisgICAgY2FzZSBCT09TVF9URVNUX0NSVF9BU1NFUlQ6CisgICAgICAgIGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjp1c2VyX2Vycm9yLCB1c2VyTWVzc2FnZSApOworCisgICAgICAgIHJldHVybiAxOyAvLyByZXR1cm4gdmFsdWUgYW5kIHJldFZhbCBhcmUgbm90IGltcG9ydGFudCBzaW5jZSB3ZSBuZXZlciByZWFjaCB0aGlzIGxpbmUKKyAgICBjYXNlIEJPT1NUX1RFU1RfQ1JUX0VSUk9SOgorICAgICAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yLCB1c2VyTWVzc2FnZSApOworCisgICAgICAgIHJldHVybiAxOyAvLyByZXR1cm4gdmFsdWUgYW5kIHJldFZhbCBhcmUgbm90IGltcG9ydGFudCBzaW5jZSB3ZSBuZXZlciByZWFjaCB0aGlzIGxpbmUKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsgLy8gdXNlIHVzdWFsIHJlcG9ydGluZyBtZXRob2QKKyAgICB9Cit9IC8vIGFzc2VydF9yZXBvcnRpbmdfZnVuY3Rpb24KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZCBCT09TVF9URVNUX0NBTExfREVDTAoraW52YWxpZF9wYXJhbV9oYW5kbGVyKCB3Y2hhcl90IGNvbnN0KiAvKiBleHByICovLCAKKyAgICAgICAgICAgICAgICAgICAgICAgd2NoYXJfdCBjb25zdCogLyogZnVuYyAqLywgCisgICAgICAgICAgICAgICAgICAgICAgIHdjaGFyX3QgY29uc3QqIC8qIGZpbGUgKi8sIAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgICAvKiBsaW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgICAgICAvKiByZXNlcnZlZCAqLykKK3sKKyAgICBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6dXNlcl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHBhcmFtZXRlciBkZXRlY3RlZCBieSBDIHJ1bnRpbWUgbGlicmFyeSIgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZCBCT09TVF9URVNUX0NBTExfREVDTAorc3dpdGNoX2ZwX2V4Y2VwdGlvbnMoIGJvb2wgb25fb2ZmICkKK3sKKyAgICBpZiggIW9uX29mZiApCisgICAgICAgIF9jbGVhcmZwKCk7CisKKyAgICBpbnQgY3cgPSA6Ol9jb250cm9sZnAoIDAsIDAgKTsKKworICAgIGludCBleGNlcHRpb25zX21hc2sgPSBFTV9JTlZBTElEfEVNX0RFTk9STUFMfEVNX1pFUk9ESVZJREV8RU1fT1ZFUkZMT1d8RU1fVU5ERVJGTE9XOworCisgICAgaWYoIG9uX29mZiApCisgICAgICAgIGN3ICY9IH5leGNlcHRpb25zX21hc2s7IC8vIFNldCB0aGUgZXhjZXB0aW9uIG1hc2tzIG9uLCB0dXJuIGV4Y2VwdGlvbnMgb2ZmCisgICAgZWxzZQorICAgICAgICBjdyB8PSBleGNlcHRpb25zX21hc2s7ICAvLyBTZXQgdGhlIGV4Y2VwdGlvbiBtYXNrcyBvZmYsIHR1cm4gZXhjZXB0aW9ucyBvbgorCisgICAgaWYoIG9uX29mZiApCisgICAgICAgIF9jbGVhcmZwKCk7CisgICAgICAgIAorICAgIC8vIFNldCB0aGUgY29udHJvbCB3b3JkCisgICAgOjpfY29udHJvbGZwKCBjdywgTUNXX0VNICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgIGV4ZWN1dGlvbl9tb25pdG9yOjpjYXRjaF9zaWduYWxzICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2ludAorZXhlY3V0aW9uX21vbml0b3I6OmNhdGNoX3NpZ25hbHMoIHVuaXRfdGVzdDo6Y2FsbGJhY2swPGludD4gY29uc3QmIEYgKQoreworICAgIF9pbnZhbGlkX3BhcmFtZXRlcl9oYW5kbGVyIG9sZF9pcGggPSBfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxlcigpOworICAgIEJPT1NUX1RFU1RfQ1JUX0hPT0tfVFlQRSBvbGRfY3J0X2hvb2sgPSAwOworCisgICAgaWYoICFwX2NhdGNoX3N5c3RlbV9lcnJvcnMgKQorICAgICAgICBfc2V0X3NlX3RyYW5zbGF0b3IoICZkZXRhaWw6OnNlaF9jYXRjaF9wcmV2ZW50ZXIgKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYoICEhcF9kZXRlY3RfZnBfZXhjZXB0aW9ucyApCisgICAgICAgICAgICBkZXRhaWw6OnN3aXRjaF9mcF9leGNlcHRpb25zKCB0cnVlICk7CisKKyAgICAgICBvbGRfY3J0X2hvb2sgPSBCT09TVF9URVNUX0NSVF9TRVRfSE9PSyggJmRldGFpbDo6YXNzZXJ0X3JlcG9ydGluZ19mdW5jdGlvbiApOworCisgICAgICAgb2xkX2lwaCA9IF9zZXRfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxlciggCisgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8X2ludmFsaWRfcGFyYW1ldGVyX2hhbmRsZXI+KCAmZGV0YWlsOjppbnZhbGlkX3BhcmFtX2hhbmRsZXIgKSApOworICAgIH0KKworICAgIGRldGFpbDo6c3lzdGVtX3NpZ25hbF9leGNlcHRpb24gU1NFKCB0aGlzICk7CisgICAgCisgICAgaW50IHJldF92YWwgPSAwOworCisgICAgX190cnkgeworICAgICAgICBfX3RyeSB7CisgICAgICAgICAgICByZXRfdmFsID0gZGV0YWlsOjpkb19pbnZva2UoIG1fY3VzdG9tX3RyYW5zbGF0b3JzLCBGICk7CisgICAgICAgIH0KKyAgICAgICAgX19leGNlcHQoIFNTRSggR2V0RXhjZXB0aW9uQ29kZSgpLCBHZXRFeGNlcHRpb25JbmZvcm1hdGlvbigpICkgKSB7CisgICAgICAgICAgICB0aHJvdyBTU0U7CisgICAgICAgIH0KKyAgICB9CisgICAgX19maW5hbGx5IHsKKyAgICAgICAgaWYoICEhcF9jYXRjaF9zeXN0ZW1fZXJyb3JzICkgeworICAgICAgICAgICAgaWYoICEhcF9kZXRlY3RfZnBfZXhjZXB0aW9ucyApCisgICAgICAgICAgICAgICAgZGV0YWlsOjpzd2l0Y2hfZnBfZXhjZXB0aW9ucyggZmFsc2UgKTsKKworICAgICAgICAgICAgQk9PU1RfVEVTVF9DUlRfU0VUX0hPT0soIG9sZF9jcnRfaG9vayApOworCisgICAgICAgICAgIF9zZXRfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxlciggb2xkX2lwaCApOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldF92YWw7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNlbHNlICAvLyBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyCisKK25hbWVzcGFjZSBkZXRhaWwgeworCitjbGFzcyBzeXN0ZW1fc2lnbmFsX2V4Y2VwdGlvbiB7CitwdWJsaWM6CisgICAgdm9pZCAgIHJlcG9ydCgpIGNvbnN0IHt9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworaW50CitleGVjdXRpb25fbW9uaXRvcjo6Y2F0Y2hfc2lnbmFscyggdW5pdF90ZXN0OjpjYWxsYmFjazA8aW50PiBjb25zdCYgRiApCit7CisgICAgcmV0dXJuIGRldGFpbDo6ZG9faW52b2tlKCBtX2N1c3RvbV90cmFuc2xhdG9ycyAsIEYgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2VuZGlmICAvLyBjaG9vc2Ugc2lnbmFsIGhhbmRsZXIKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgIGV4ZWN1dGlvbl9tb25pdG9yOjpleGVjdXRlICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitpbnQKK2V4ZWN1dGlvbl9tb25pdG9yOjpleGVjdXRlKCB1bml0X3Rlc3Q6OmNhbGxiYWNrMDxpbnQ+IGNvbnN0JiBGICkKK3sKKyAgICBpZiggZGVidWc6OnVuZGVyX2RlYnVnZ2VyKCkgKQorICAgICAgICBwX2NhdGNoX3N5c3RlbV9lcnJvcnMudmFsdWUgPSBmYWxzZTsKKworICAgIHRyeSB7CisgICAgICAgIHJldHVybiBjYXRjaF9zaWduYWxzKCBGICk7CisgICAgfQorCisgICAgLy8gIENhdGNoLWNsYXVzZSByZWZlcmVuY2UgYXJndW1lbnRzIGFyZSBhIGJpdCBkaWZmZXJlbnQgZnJvbSBmdW5jdGlvbgorICAgIC8vICBhcmd1bWVudHMgKElTTyAxNS4zIHBhcmFncmFwaHMgMTggJiAxOSkuICBBcHBhcmVudGx5IGNvbnN0IGlzbid0CisgICAgLy8gIHJlcXVpcmVkLiAgUHJvZ3JhbW1lcnMgYXNrIGZvciBjb25zdCBhbnlob3csIHNvIHdlIHN1cHBseSBpdC4gIFRoYXQncworICAgIC8vICBlYXNpZXIgdGhhbiBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFib3V0IG5vbi1jb25zdCB1c2FnZS4KKworICAgIGNhdGNoKCBjaGFyIGNvbnN0KiBleCApCisgICAgICB7IGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpjcHBfZXhjZXB0aW9uX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkMgc3RyaW5nOiAlcyIsIGV4ICk7IH0KKyAgICBjYXRjaCggc3RkOjpzdHJpbmcgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6c3RyaW5nOiAlcyIsIGV4LmNfc3RyKCkgKTsgfQorCisgICAgLy8gIHN0ZDo6IGV4Y2VwdGlvbnMKKworICAgIGNhdGNoKCBzdGQ6OmJhZF9hbGxvYyBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjpiYWRfYWxsb2M6ICVzIiwgZXgud2hhdCgpICk7IH0KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8PSAweDA1NTEpCisgICAgY2F0Y2goIHN0ZDo6YmFkX2Nhc3QgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9leGNlcHRpb25fY2FzdDxuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6YmFkX2Nhc3QiICk7IH0KKyAgICBjYXRjaCggc3RkOjpiYWRfdHlwZWlkIGNvbnN0JiBleCApCisgICAgICB7IGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpjcHBfZXhjZXB0aW9uX2Vycm9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZXhjZXB0aW9uX2Nhc3Q8bmRuYm9vc3Q6OmV4Y2VwdGlvbiBjb25zdD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGQ6OmJhZF90eXBlaWQiICk7IH0KKyNlbHNlCisgICAgY2F0Y2goIHN0ZDo6YmFkX2Nhc3QgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9leGNlcHRpb25fY2FzdDxuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6YmFkX2Nhc3Q6ICVzIiwgZXgud2hhdCgpICk7IH0KKyAgICBjYXRjaCggc3RkOjpiYWRfdHlwZWlkIGNvbnN0JiBleCApCisgICAgICB7IGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpjcHBfZXhjZXB0aW9uX2Vycm9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZXhjZXB0aW9uX2Nhc3Q8bmRuYm9vc3Q6OmV4Y2VwdGlvbiBjb25zdD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGQ6OmJhZF90eXBlaWQ6ICVzIiwgZXgud2hhdCgpICk7IH0KKyNlbmRpZgorCisgICAgY2F0Y2goIHN0ZDo6YmFkX2V4Y2VwdGlvbiBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjpiYWRfZXhjZXB0aW9uOiAlcyIsIGV4LndoYXQoKSApOyB9CisgICAgY2F0Y2goIHN0ZDo6ZG9tYWluX2Vycm9yIGNvbnN0JiBleCApCisgICAgICB7IGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpjcHBfZXhjZXB0aW9uX2Vycm9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZXhjZXB0aW9uX2Nhc3Q8bmRuYm9vc3Q6OmV4Y2VwdGlvbiBjb25zdD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGQ6OmRvbWFpbl9lcnJvcjogJXMiLCBleC53aGF0KCkgKTsgfQorICAgIGNhdGNoKCBzdGQ6OmludmFsaWRfYXJndW1lbnQgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9leGNlcHRpb25fY2FzdDxuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6aW52YWxpZF9hcmd1bWVudDogJXMiLCBleC53aGF0KCkgKTsgfQorICAgIGNhdGNoKCBzdGQ6Omxlbmd0aF9lcnJvciBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjpsZW5ndGhfZXJyb3I6ICVzIiwgZXgud2hhdCgpICk7IH0KKyAgICBjYXRjaCggc3RkOjpvdXRfb2ZfcmFuZ2UgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9leGNlcHRpb25fY2FzdDxuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6b3V0X29mX3JhbmdlOiAlcyIsIGV4LndoYXQoKSApOyB9CisgICAgY2F0Y2goIHN0ZDo6cmFuZ2VfZXJyb3IgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9leGNlcHRpb25fY2FzdDxuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6cmFuZ2VfZXJyb3I6ICVzIiwgZXgud2hhdCgpICk7IH0KKyAgICBjYXRjaCggc3RkOjpvdmVyZmxvd19lcnJvciBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjpvdmVyZmxvd19lcnJvcjogJXMiLCBleC53aGF0KCkgKTsgfQorICAgIGNhdGNoKCBzdGQ6OnVuZGVyZmxvd19lcnJvciBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjp1bmRlcmZsb3dfZXJyb3I6ICVzIiwgZXgud2hhdCgpICk7IH0KKyAgICBjYXRjaCggc3RkOjpsb2dpY19lcnJvciBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjpsb2dpY19lcnJvcjogJXMiLCBleC53aGF0KCkgKTsgfQorICAgIGNhdGNoKCBzdGQ6OnJ1bnRpbWVfZXJyb3IgY29uc3QmIGV4ICkKKyAgICAgIHsgZGV0YWlsOjpyZXBvcnRfZXJyb3IoIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9leGNlcHRpb25fY2FzdDxuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZDo6cnVudGltZV9lcnJvcjogJXMiLCBleC53aGF0KCkgKTsgfQorICAgIGNhdGNoKCBzdGQ6OmV4Y2VwdGlvbiBjb25zdCYgZXggKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2V4Y2VwdGlvbl9jYXN0PG5kbmJvb3N0OjpleGNlcHRpb24gY29uc3Q+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkOjpleGNlcHRpb246ICVzIiwgZXgud2hhdCgpICk7IH0KKworICAgIGNhdGNoKCBuZG5ib29zdDo6ZXhjZXB0aW9uIGNvbnN0JiBleCApCisgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmtub3duIG5kbmJvb3N0OjpleGNlcHRpb24iICk7IH0KKworICAgIC8vIHN5c3RlbSBlcnJvcnMKKyAgICBjYXRjaCggc3lzdGVtX2Vycm9yIGNvbnN0JiBleCApCisgICAgICB7IGRldGFpbDo6cmVwb3J0X2Vycm9yKCBleGVjdXRpb25fZXhjZXB0aW9uOjpjcHBfZXhjZXB0aW9uX2Vycm9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeXN0ZW1fZXJyb3IgcHJvZHVjZWQgYnk6ICVzOiAlcyIsIGV4LnBfZmFpbGVkX2V4cC5nZXQoKSwgc3RkOjpzdHJlcnJvciggZXgucF9lcnJubyApICk7IH0KKyAgICBjYXRjaCggZGV0YWlsOjpzeXN0ZW1fc2lnbmFsX2V4Y2VwdGlvbiBjb25zdCYgZXggKQorICAgICAgeyBleC5yZXBvcnQoKTsgfQorCisgICAgLy8gbm90IGFuIGVycm9yCisgICAgY2F0Y2goIGV4ZWN1dGlvbl9hYm9ydGVkIGNvbnN0JiApCisgICAgICB7IHJldHVybiAwOyB9CisKKyAgICAvLyBqdXN0IGZvcndhcmQKKyAgICBjYXRjaCggZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgKQorICAgICAgeyB0aHJvdzsgfQorCisgICAgLy8gdW5rbm93biBlcnJvcgorICAgIGNhdGNoKCAuLi4gKQorICAgICAgeyBkZXRhaWw6OnJlcG9ydF9lcnJvciggZXhlY3V0aW9uX2V4Y2VwdGlvbjo6Y3BwX2V4Y2VwdGlvbl9lcnJvciwgInVua25vd24gdHlwZSIgKTsgfQorCisgICAgcmV0dXJuIDA7ICAvLyBuZXZlciByZWFjaGVkOyBzdXBwbGllZCB0byBxdWlldCBjb21waWxlciB3YXJuaW5ncworfSAvLyBleGVjdXRlCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgIHN5c3RlbV9lcnJvciAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3lzdGVtX2Vycm9yOjpzeXN0ZW1fZXJyb3IoIGNoYXIgY29uc3QqIGV4cCApCisjaWZkZWYgVU5ERVJfQ0UKKzogcF9lcnJubyggR2V0TGFzdEVycm9yKCkgKQorI2Vsc2UKKzogcF9lcnJubyggZXJybm8gKQorI2VuZGlmCissIHBfZmFpbGVkX2V4cCggZXhwICkKK3t9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgZXhlY3V0aW9uX2V4Y2VwdGlvbiAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworZXhlY3V0aW9uX2V4Y2VwdGlvbjo6ZXhlY3V0aW9uX2V4Y2VwdGlvbiggZXJyb3JfY29kZSBlY18sIGNvbnN0X3N0cmluZyB3aGF0X21zZ18sIGxvY2F0aW9uIGNvbnN0JiBsb2NhdGlvbl8gKQorOiBtX2Vycm9yX2NvZGUoIGVjXyApCissIG1fd2hhdCggd2hhdF9tc2dfLmVtcHR5KCkgPyBCT09TVF9URVNUX0woICJ1bmNhdWdodCBleGNlcHRpb24sIHN5c3RlbSBlcnJvciBvciBhYm9ydCByZXF1ZXN0ZWQiICkgOiB3aGF0X21zZ18gKQorLCBtX2xvY2F0aW9uKCBsb2NhdGlvbl8gKQore30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworZXhlY3V0aW9uX2V4Y2VwdGlvbjo6bG9jYXRpb246OmxvY2F0aW9uKCBjaGFyIGNvbnN0KiBmaWxlX25hbWUsIHNpemVfdCBsaW5lX251bSwgY2hhciBjb25zdCogZnVuYyApCis6IG1fZmlsZV9uYW1lKCBmaWxlX25hbWUgPyBmaWxlX25hbWUgOiAidW5rbm93biBsb2NhdGlvbiIgKQorLCBtX2xpbmVfbnVtKCBsaW5lX251bSApCissIG1fZnVuY3Rpb24oIGZ1bmMgKQore30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0VYRUNVVElPTl9NT05JVE9SX0lQUF8wMTIyMDVHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvZnJhbWV3b3JrLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2ZyYW1ld29yay5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RiY2UyNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2ZyYW1ld29yay5pcHAKQEAgLTAsMCArMSw1MDMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkxICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBpbXBsZW1lbnRzIGZyYW1ld29yayBBUEkgLSBtYWluIGRyaXZlciBmb3IgdGhlIHRlc3QKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfRlJBTUVXT1JLX0lQUF8wMjEwMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9GUkFNRVdPUktfSVBQXzAyMTAwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZXhlY3V0aW9uX21vbml0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGVidWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbW9uaXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X29ic2VydmVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Jlc3VsdHNfY29sbGVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Byb2dyZXNzX21vbml0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3VuaXRfdGVzdF9wYXJhbWV0ZXJzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2ZvcmVhY2guaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3RpbWVyLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPGN0aW1lPgorCisjaWZkZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKK25hbWVzcGFjZSBzdGQgeyB1c2luZyA6OnRpbWU7IHVzaW5nIDo6c3JhbmQ7IH0KKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgdGVzdF9zdGFydCBjYWxscyB3cmFwcGVyICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworc3RydWN0IHRlc3Rfc3RhcnRfY2FsbGVyIHsKKyAgICB0ZXN0X3N0YXJ0X2NhbGxlciggdGVzdF9vYnNlcnZlciogdG8sIGNvdW50ZXJfdCB0Y19hbW91bnQgKQorICAgIDogbV90byggdG8gKQorICAgICwgbV90Y19hbW91bnQoIHRjX2Ftb3VudCApCisgICAge30KKworICAgIGludCBvcGVyYXRvcigpKCkKKyAgICB7CisgICAgICAgIG1fdG8tPnRlc3Rfc3RhcnQoIG1fdGNfYW1vdW50ICk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICB0ZXN0X29ic2VydmVyKiAgbV90bzsKKyAgICBjb3VudGVyX3QgICAgICAgbV90Y19hbW91bnQ7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdHJ1Y3QgdGVzdF9pbml0X2NhbGxlciB7CisgICAgZXhwbGljaXQgICAgdGVzdF9pbml0X2NhbGxlciggaW5pdF91bml0X3Rlc3RfZnVuYyBpbml0X2Z1bmMgKSAKKyAgICA6IG1faW5pdF9mdW5jKCBpbml0X2Z1bmMgKQorICAgIHt9CisgICAgaW50ICAgICAgICAgb3BlcmF0b3IoKSgpCisgICAgeworI2lmZGVmIEJPT1NUX1RFU1RfQUxURVJOQVRJVkVfSU5JVF9BUEkKKyAgICAgICAgaWYoICEoKm1faW5pdF9mdW5jKSgpICkKKyAgICAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciggInRlc3QgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZhaWxlZCIgKTsKKyNlbHNlCisgICAgICAgIHRlc3Rfc3VpdGUqICBtYW51YWxfdGVzdF91bml0cyA9ICgqbV9pbml0X2Z1bmMpKCBmcmFtZXdvcms6Om1hc3Rlcl90ZXN0X3N1aXRlKCkuYXJnYywgZnJhbWV3b3JrOjptYXN0ZXJfdGVzdF9zdWl0ZSgpLmFyZ3YgKTsKKworICAgICAgICBpZiggbWFudWFsX3Rlc3RfdW5pdHMgKQorICAgICAgICAgICAgZnJhbWV3b3JrOjptYXN0ZXJfdGVzdF9zdWl0ZSgpLmFkZCggbWFudWFsX3Rlc3RfdW5pdHMgKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBpbml0X3VuaXRfdGVzdF9mdW5jIG1faW5pdF9mdW5jOworfTsKKworfQorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgZnJhbWV3b3JrICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIGZyYW1ld29ya19pbXBsIDogcHVibGljIHRlc3RfdHJlZV92aXNpdG9yIHsKK3B1YmxpYzoKKyAgICBmcmFtZXdvcmtfaW1wbCgpCisgICAgOiBtX21hc3Rlcl90ZXN0X3N1aXRlKCAwICkKKyAgICAsIG1fY3Vycl90ZXN0X2Nhc2UoIElOVl9URVNUX1VOSVRfSUQgKQorICAgICwgbV9uZXh0X3Rlc3RfY2FzZV9pZCggTUlOX1RFU1RfQ0FTRV9JRCApCisgICAgLCBtX25leHRfdGVzdF9zdWl0ZV9pZCggTUlOX1RFU1RfU1VJVEVfSUQgKQorICAgICwgbV9pc19pbml0aWFsaXplZCggZmFsc2UgKQorICAgICwgbV90ZXN0X2luX3Byb2dyZXNzKCBmYWxzZSApCisgICAge30KKworICAgIH5mcmFtZXdvcmtfaW1wbCgpIHsgY2xlYXIoKTsgfQorCisgICAgdm9pZCAgICAgICAgICAgIGNsZWFyKCkKKyAgICB7CisgICAgICAgIHdoaWxlKCAhbV90ZXN0X3VuaXRzLmVtcHR5KCkgKSB7CisgICAgICAgICAgICB0ZXN0X3VuaXRfc3RvcmU6OnZhbHVlX3R5cGUgY29uc3QmIHR1ICAgICA9ICptX3Rlc3RfdW5pdHMuYmVnaW4oKTsKKyAgICAgICAgICAgIHRlc3RfdW5pdCogICAgICAgICAgICAgICAgICAgICAgICAgdHVfcHRyID0gdHUuc2Vjb25kOworCisgICAgICAgICAgICAvLyB0aGUgZGVsZXRlIHdpbGwgZXJhc2UgdGhpcyBlbGVtZW50IGZyb20gbWFwCisgICAgICAgICAgICBpZiggdXRfZGV0YWlsOjp0ZXN0X2lkXzJfdW5pdF90eXBlKCB0dS5zZWNvbmQtPnBfaWQgKSA9PSB0dXRfc3VpdGUgKQorICAgICAgICAgICAgICAgIGRlbGV0ZSAgKHRlc3Rfc3VpdGUgY29uc3QqKXR1X3B0cjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkZWxldGUgICh0ZXN0X2Nhc2UgY29uc3QqKXR1X3B0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgICAgICAgICAgICBzZXRfdHVfaWQoIHRlc3RfdW5pdCYgdHUsIHRlc3RfdW5pdF9pZCBpZCApIHsgdHUucF9pZC52YWx1ZSA9IGlkOyB9CisKKyAgICAvLyB0ZXN0X3RyZWVfdmlzaXRvciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24KKyAgICB2b2lkICAgICAgICAgICAgdmlzaXQoIHRlc3RfY2FzZSBjb25zdCYgdGMgKQorICAgIHsKKyAgICAgICAgaWYoICF0Yy5jaGVja19kZXBlbmRlbmNpZXMoKSApIHsKKyAgICAgICAgICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF9vYnNlcnZlciosIHRvLCBtX29ic2VydmVycyApCisgICAgICAgICAgICAgICAgdG8tPnRlc3RfdW5pdF9za2lwcGVkKCB0YyApOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHRlc3Rfb2JzZXJ2ZXIqLCB0bywgbV9vYnNlcnZlcnMgKQorICAgICAgICAgICAgdG8tPnRlc3RfdW5pdF9zdGFydCggdGMgKTsKKworICAgICAgICBuZG5ib29zdDo6dGltZXIgdGNfdGltZXI7CisgICAgICAgIHRlc3RfdW5pdF9pZCBia3VwID0gbV9jdXJyX3Rlc3RfY2FzZTsKKyAgICAgICAgbV9jdXJyX3Rlc3RfY2FzZSA9IHRjLnBfaWQ7CisgICAgICAgIHVuaXRfdGVzdF9tb25pdG9yX3Q6OmVycm9yX2xldmVsIHJ1bl9yZXN1bHQgPSB1bml0X3Rlc3RfbW9uaXRvci5leGVjdXRlX2FuZF90cmFuc2xhdGUoIHRjICk7CisKKyAgICAgICAgdW5zaWduZWQgbG9uZyBlbGFwc2VkID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oIHRjX3RpbWVyLmVsYXBzZWQoKSAqIDFlNiApOworCisgICAgICAgIGlmKCB1bml0X3Rlc3RfbW9uaXRvci5pc19jcml0aWNhbF9lcnJvciggcnVuX3Jlc3VsdCApICkgeworICAgICAgICAgICAgQk9PU1RfVEVTVF9GT1JFQUNIKCB0ZXN0X29ic2VydmVyKiwgdG8sIG1fb2JzZXJ2ZXJzICkKKyAgICAgICAgICAgICAgICB0by0+dGVzdF9hYm9ydGVkKCk7CisgICAgICAgIH0KKworICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHRlc3Rfb2JzZXJ2ZXIqLCB0bywgbV9vYnNlcnZlcnMgKQorICAgICAgICAgICAgdG8tPnRlc3RfdW5pdF9maW5pc2goIHRjLCBlbGFwc2VkICk7CisKKyAgICAgICAgbV9jdXJyX3Rlc3RfY2FzZSA9IGJrdXA7CisKKyAgICAgICAgaWYoIHVuaXRfdGVzdF9tb25pdG9yLmlzX2NyaXRpY2FsX2Vycm9yKCBydW5fcmVzdWx0ICkgKQorICAgICAgICAgICAgdGhyb3cgdGVzdF9iZWluZ19hYm9ydGVkKCk7CisgICAgfQorCisgICAgYm9vbCAgICAgICAgICAgIHRlc3Rfc3VpdGVfc3RhcnQoIHRlc3Rfc3VpdGUgY29uc3QmIHRzICkKKyAgICB7CisgICAgICAgIGlmKCAhdHMuY2hlY2tfZGVwZW5kZW5jaWVzKCkgKSB7CisgICAgICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHRlc3Rfb2JzZXJ2ZXIqLCB0bywgbV9vYnNlcnZlcnMgKQorICAgICAgICAgICAgICAgIHRvLT50ZXN0X3VuaXRfc2tpcHBlZCggdHMgKTsKKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgQk9PU1RfVEVTVF9GT1JFQUNIKCB0ZXN0X29ic2VydmVyKiwgdG8sIG1fb2JzZXJ2ZXJzICkKKyAgICAgICAgICAgIHRvLT50ZXN0X3VuaXRfc3RhcnQoIHRzICk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCAgICAgICAgICAgIHRlc3Rfc3VpdGVfZmluaXNoKCB0ZXN0X3N1aXRlIGNvbnN0JiB0cyApCisgICAgeworICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHRlc3Rfb2JzZXJ2ZXIqLCB0bywgbV9vYnNlcnZlcnMgKQorICAgICAgICAgICAgdG8tPnRlc3RfdW5pdF9maW5pc2goIHRzLCAwICk7CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgc3RydWN0IHByaW9yaXR5X29yZGVyIHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKCB0ZXN0X29ic2VydmVyKiBsaHMsIHRlc3Rfb2JzZXJ2ZXIqIHJocyApIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAobGhzLT5wcmlvcml0eSgpIDwgcmhzLT5wcmlvcml0eSgpKSB8fCAoKGxocy0+cHJpb3JpdHkoKSA9PSByaHMtPnByaW9yaXR5KCkpICYmIChsaHMgPCByaHMpKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0eXBlZGVmIHN0ZDo6bWFwPHRlc3RfdW5pdF9pZCx0ZXN0X3VuaXQqPiAgICAgICB0ZXN0X3VuaXRfc3RvcmU7CisgICAgdHlwZWRlZiBzdGQ6OnNldDx0ZXN0X29ic2VydmVyKixwcmlvcml0eV9vcmRlcj4gb2JzZXJ2ZXJfc3RvcmU7CisKKyAgICBtYXN0ZXJfdGVzdF9zdWl0ZV90KiBtX21hc3Rlcl90ZXN0X3N1aXRlOworICAgIHRlc3RfdW5pdF9pZCAgICBtX2N1cnJfdGVzdF9jYXNlOworICAgIHRlc3RfdW5pdF9zdG9yZSBtX3Rlc3RfdW5pdHM7CisKKyAgICB0ZXN0X3VuaXRfaWQgICAgbV9uZXh0X3Rlc3RfY2FzZV9pZDsKKyAgICB0ZXN0X3VuaXRfaWQgICAgbV9uZXh0X3Rlc3Rfc3VpdGVfaWQ7CisKKyAgICBib29sICAgICAgICAgICAgbV9pc19pbml0aWFsaXplZDsKKyAgICBib29sICAgICAgICAgICAgbV90ZXN0X2luX3Byb2dyZXNzOworCisgICAgb2JzZXJ2ZXJfc3RvcmUgIG1fb2JzZXJ2ZXJzOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIHsKKworI2lmIGRlZmluZWQoX19DWUdXSU5fXykKK2ZyYW1ld29ya19pbXBsJiBzX2Zya19pbXBsKCkgeyBzdGF0aWMgZnJhbWV3b3JrX2ltcGwqIHRoZV9pbnN0ID0gMDsgaWYoIXRoZV9pbnN0KSB0aGVfaW5zdCA9IG5ldyBmcmFtZXdvcmtfaW1wbDsgcmV0dXJuICp0aGVfaW5zdDsgfQorI2Vsc2UKK2ZyYW1ld29ya19pbXBsJiBzX2Zya19pbXBsKCkgeyBzdGF0aWMgZnJhbWV3b3JrX2ltcGwgdGhlX2luc3Q7IHJldHVybiB0aGVfaW5zdDsgfQorI2VuZGlmCisKK30gLy8gbG9jYWwgbmFtZXNwYWNlCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBmcmFtZXdvcmsgeworCit2b2lkCitpbml0KCBpbml0X3VuaXRfdGVzdF9mdW5jIGluaXRfZnVuYywgaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApCit7CisgICAgcnVudGltZV9jb25maWc6OmluaXQoIGFyZ2MsIGFyZ3YgKTsKKworICAgIC8vIHNldCB0aGUgbG9nIGxldmVsIGFuZCBmb3JtYXQKKyAgICB1bml0X3Rlc3RfbG9nLnNldF90aHJlc2hvbGRfbGV2ZWwoIHJ1bnRpbWVfY29uZmlnOjpsb2dfbGV2ZWwoKSApOworICAgIHVuaXRfdGVzdF9sb2cuc2V0X2Zvcm1hdCggcnVudGltZV9jb25maWc6OmxvZ19mb3JtYXQoKSApOworCisgICAgLy8gc2V0IHRoZSByZXBvcnQgbGV2ZWwgYW5kIGZvcm1hdAorICAgIHJlc3VsdHNfcmVwb3J0ZXI6OnNldF9sZXZlbCggcnVudGltZV9jb25maWc6OnJlcG9ydF9sZXZlbCgpICk7CisgICAgcmVzdWx0c19yZXBvcnRlcjo6c2V0X2Zvcm1hdCggcnVudGltZV9jb25maWc6OnJlcG9ydF9mb3JtYXQoKSApOworCisgICAgcmVnaXN0ZXJfb2JzZXJ2ZXIoIHJlc3VsdHNfY29sbGVjdG9yICk7CisgICAgcmVnaXN0ZXJfb2JzZXJ2ZXIoIHVuaXRfdGVzdF9sb2cgKTsKKworICAgIGlmKCBydW50aW1lX2NvbmZpZzo6c2hvd19wcm9ncmVzcygpICkKKyAgICAgICAgcmVnaXN0ZXJfb2JzZXJ2ZXIoIHByb2dyZXNzX21vbml0b3IgKTsKKworICAgIGlmKCBydW50aW1lX2NvbmZpZzo6ZGV0ZWN0X21lbW9yeV9sZWFrcygpID4gMCApIHsKKyAgICAgICAgZGVidWc6OmRldGVjdF9tZW1vcnlfbGVha3MoIHRydWUgKTsKKyAgICAgICAgZGVidWc6OmJyZWFrX21lbW9yeV9hbGxvYyggcnVudGltZV9jb25maWc6OmRldGVjdF9tZW1vcnlfbGVha3MoKSApOworICAgIH0KKworICAgIC8vIGluaXQgbWFzdGVyIHVuaXQgdGVzdCBzdWl0ZQorICAgIG1hc3Rlcl90ZXN0X3N1aXRlKCkuYXJnYyA9IGFyZ2M7CisgICAgbWFzdGVyX3Rlc3Rfc3VpdGUoKS5hcmd2ID0gYXJndjsKKworICAgIHRyeSB7CisgICAgICAgIG5kbmJvb3N0OjpleGVjdXRpb25fbW9uaXRvciBlbTsKKworICAgICAgICB1dF9kZXRhaWw6OnRlc3RfaW5pdF9jYWxsZXIgdGljKCBpbml0X2Z1bmMgKTsKKworICAgICAgICBlbS5leGVjdXRlKCB0aWMgKTsKKyAgICB9CisgICAgY2F0Y2goIGV4ZWN1dGlvbl9leGNlcHRpb24gY29uc3QmIGV4ICkgIHsKKyAgICAgICAgdGhyb3cgc2V0dXBfZXJyb3IoIGV4LndoYXQoKSApOworICAgIH0KKworICAgIHNfZnJrX2ltcGwoKS5tX2lzX2luaXRpYWxpemVkID0gdHJ1ZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworYm9vbAoraXNfaW5pdGlhbGl6ZWQoKQoreworICAgIHJldHVybiAgc19mcmtfaW1wbCgpLm1faXNfaW5pdGlhbGl6ZWQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3JlZ2lzdGVyX3Rlc3RfdW5pdCggdGVzdF9jYXNlKiB0YyApCit7CisgICAgQk9PU1RfVEVTVF9TRVRVUF9BU1NFUlQoIHRjLT5wX2lkID09IElOVl9URVNUX1VOSVRfSUQsIEJPT1NUX1RFU1RfTCggInRlc3QgY2FzZSBhbHJlYWR5IHJlZ2lzdGVyZWQiICkgKTsKKworICAgIHRlc3RfdW5pdF9pZCBuZXdfaWQgPSBzX2Zya19pbXBsKCkubV9uZXh0X3Rlc3RfY2FzZV9pZDsKKworICAgIEJPT1NUX1RFU1RfU0VUVVBfQVNTRVJUKCBuZXdfaWQgIT0gTUFYX1RFU1RfQ0FTRV9JRCwgQk9PU1RfVEVTVF9MKCAidG9vIG1hbnkgdGVzdCBjYXNlcyIgKSApOworCisgICAgdHlwZWRlZiBmcmFtZXdvcmtfaW1wbDo6dGVzdF91bml0X3N0b3JlOjp2YWx1ZV90eXBlIG1hcF92YWx1ZV90eXBlOworCisgICAgc19mcmtfaW1wbCgpLm1fdGVzdF91bml0cy5pbnNlcnQoIG1hcF92YWx1ZV90eXBlKCBuZXdfaWQsIHRjICkgKTsKKyAgICBzX2Zya19pbXBsKCkubV9uZXh0X3Rlc3RfY2FzZV9pZCsrOworCisgICAgc19mcmtfaW1wbCgpLnNldF90dV9pZCggKnRjLCBuZXdfaWQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcmVnaXN0ZXJfdGVzdF91bml0KCB0ZXN0X3N1aXRlKiB0cyApCit7CisgICAgQk9PU1RfVEVTVF9TRVRVUF9BU1NFUlQoIHRzLT5wX2lkID09IElOVl9URVNUX1VOSVRfSUQsIEJPT1NUX1RFU1RfTCggInRlc3Qgc3VpdGUgYWxyZWFkeSByZWdpc3RlcmVkIiApICk7CisKKyAgICB0ZXN0X3VuaXRfaWQgbmV3X2lkID0gc19mcmtfaW1wbCgpLm1fbmV4dF90ZXN0X3N1aXRlX2lkOworCisgICAgQk9PU1RfVEVTVF9TRVRVUF9BU1NFUlQoIG5ld19pZCAhPSBNQVhfVEVTVF9TVUlURV9JRCwgQk9PU1RfVEVTVF9MKCAidG9vIG1hbnkgdGVzdCBzdWl0ZXMiICkgKTsKKworICAgIHR5cGVkZWYgZnJhbWV3b3JrX2ltcGw6OnRlc3RfdW5pdF9zdG9yZTo6dmFsdWVfdHlwZSBtYXBfdmFsdWVfdHlwZTsKKyAgICBzX2Zya19pbXBsKCkubV90ZXN0X3VuaXRzLmluc2VydCggbWFwX3ZhbHVlX3R5cGUoIG5ld19pZCwgdHMgKSApOworICAgIHNfZnJrX2ltcGwoKS5tX25leHRfdGVzdF9zdWl0ZV9pZCsrOworCisgICAgc19mcmtfaW1wbCgpLnNldF90dV9pZCggKnRzLCBuZXdfaWQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorZGVyZWdpc3Rlcl90ZXN0X3VuaXQoIHRlc3RfdW5pdCogdHUgKQoreworICAgIHNfZnJrX2ltcGwoKS5tX3Rlc3RfdW5pdHMuZXJhc2UoIHR1LT5wX2lkICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2NsZWFyKCkKK3sKKyAgICBzX2Zya19pbXBsKCkuY2xlYXIoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcmVnaXN0ZXJfb2JzZXJ2ZXIoIHRlc3Rfb2JzZXJ2ZXImIHRvICkKK3sKKyAgICBzX2Zya19pbXBsKCkubV9vYnNlcnZlcnMuaW5zZXJ0KCAmdG8gKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorZGVyZWdpc3Rlcl9vYnNlcnZlciggdGVzdF9vYnNlcnZlciYgdG8gKQoreworICAgIHNfZnJrX2ltcGwoKS5tX29ic2VydmVycy5lcmFzZSggJnRvICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Jlc2V0X29ic2VydmVycygpCit7CisgICAgc19mcmtfaW1wbCgpLm1fb2JzZXJ2ZXJzLmNsZWFyKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK21hc3Rlcl90ZXN0X3N1aXRlX3QmCittYXN0ZXJfdGVzdF9zdWl0ZSgpCit7CisgICAgaWYoICFzX2Zya19pbXBsKCkubV9tYXN0ZXJfdGVzdF9zdWl0ZSApCisgICAgICAgIHNfZnJrX2ltcGwoKS5tX21hc3Rlcl90ZXN0X3N1aXRlID0gbmV3IG1hc3Rlcl90ZXN0X3N1aXRlX3Q7CisKKyAgICByZXR1cm4gKnNfZnJrX2ltcGwoKS5tX21hc3Rlcl90ZXN0X3N1aXRlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZXN0X2Nhc2UgY29uc3QmCitjdXJyZW50X3Rlc3RfY2FzZSgpCit7CisgICAgcmV0dXJuIGdldDx0ZXN0X2Nhc2U+KCBzX2Zya19pbXBsKCkubV9jdXJyX3Rlc3RfY2FzZSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZXN0X3VuaXQmCitnZXQoIHRlc3RfdW5pdF9pZCBpZCwgdGVzdF91bml0X3R5cGUgdCApCit7CisgICAgdGVzdF91bml0KiByZXMgPSBzX2Zya19pbXBsKCkubV90ZXN0X3VuaXRzW2lkXTsKKworICAgIGlmKCAocmVzLT5wX3R5cGUgJiB0KSA9PSAwICkKKyAgICAgICAgdGhyb3cgaW50ZXJuYWxfZXJyb3IoICJJbnZhbGlkIHRlc3QgdW5pdCB0eXBlIiApOworCisgICAgcmV0dXJuICpyZXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3J1biggdGVzdF91bml0X2lkIGlkLCBib29sIGNvbnRpbnVlX3Rlc3QgKQoreworICAgIGlmKCBpZCA9PSBJTlZfVEVTVF9VTklUX0lEICkKKyAgICAgICAgaWQgPSBtYXN0ZXJfdGVzdF9zdWl0ZSgpLnBfaWQ7CisKKyAgICB0ZXN0X2Nhc2VfY291bnRlciB0Y2M7CisgICAgdHJhdmVyc2VfdGVzdF90cmVlKCBpZCwgdGNjICk7CisKKyAgICBCT09TVF9URVNUX1NFVFVQX0FTU0VSVCggdGNjLnBfY291bnQgIT0gMCAsIHJ1bnRpbWVfY29uZmlnOjp0ZXN0X3RvX3J1bigpLmlzX2VtcHR5KCkgCisgICAgICAgID8gQk9PU1RfVEVTVF9MKCAidGVzdCB0cmVlIGlzIGVtcHR5IiApIAorICAgICAgICA6IEJPT1NUX1RFU1RfTCggIm5vIHRlc3QgY2FzZXMgbWF0Y2hpbmcgZmlsdGVyIiApICk7CisKKyAgICBib29sICAgIGNhbGxfc3RhcnRfZmluaXNoICAgPSAhY29udGludWVfdGVzdCB8fCAhc19mcmtfaW1wbCgpLm1fdGVzdF9pbl9wcm9ncmVzczsKKyAgICBib29sICAgIHdhc19pbl9wcm9ncmVzcyAgICAgPSBzX2Zya19pbXBsKCkubV90ZXN0X2luX3Byb2dyZXNzOworCisgICAgc19mcmtfaW1wbCgpLm1fdGVzdF9pbl9wcm9ncmVzcyA9IHRydWU7CisKKyAgICBpZiggY2FsbF9zdGFydF9maW5pc2ggKSB7CisgICAgICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF9vYnNlcnZlciosIHRvLCBzX2Zya19pbXBsKCkubV9vYnNlcnZlcnMgKSB7CisgICAgICAgICAgICBuZG5ib29zdDo6ZXhlY3V0aW9uX21vbml0b3IgZW07CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZW0uZXhlY3V0ZSggdXRfZGV0YWlsOjp0ZXN0X3N0YXJ0X2NhbGxlciggdG8sIHRjYy5wX2NvdW50ICkgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKCBleGVjdXRpb25fZXhjZXB0aW9uIGNvbnN0JiBleCApICB7CisgICAgICAgICAgICAgICAgdGhyb3cgc2V0dXBfZXJyb3IoIGV4LndoYXQoKSApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3dpdGNoKCBydW50aW1lX2NvbmZpZzo6cmFuZG9tX3NlZWQoKSApIHsKKyAgICBjYXNlIDA6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMTogeworICAgICAgICB1bnNpZ25lZCBpbnQgc2VlZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oIHN0ZDo6dGltZSggMCApICk7CisgICAgICAgIEJPT1NUX1RFU1RfTUVTU0FHRSggIlRlc3QgY2FzZXMgb3JkZXIgaXMgc2h1ZmZsZWQgdXNpbmcgc2VlZDogIiA8PCBzZWVkICk7CisgICAgICAgIHN0ZDo6c3JhbmQoIHNlZWQgKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEJPT1NUX1RFU1RfTUVTU0FHRSggIlRlc3QgY2FzZXMgb3JkZXIgaXMgc2h1ZmZsZWQgdXNpbmcgc2VlZDogIiA8PCBydW50aW1lX2NvbmZpZzo6cmFuZG9tX3NlZWQoKSApOworICAgICAgICBzdGQ6OnNyYW5kKCBydW50aW1lX2NvbmZpZzo6cmFuZG9tX3NlZWQoKSApOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggaWQsIHNfZnJrX2ltcGwoKSApOworICAgIH0KKyAgICBjYXRjaCggdGVzdF9iZWluZ19hYm9ydGVkIGNvbnN0JiApIHsKKyAgICAgICAgLy8gYWJvcnQgYWxyZWFkeSByZXBvcnRlZAorICAgIH0KKworICAgIGlmKCBjYWxsX3N0YXJ0X2ZpbmlzaCApIHsKKyAgICAgICAgQk9PU1RfVEVTVF9GT1JFQUNIKCB0ZXN0X29ic2VydmVyKiwgdG8sIHNfZnJrX2ltcGwoKS5tX29ic2VydmVycyApCisgICAgICAgICAgICB0by0+dGVzdF9maW5pc2goKTsKKyAgICB9CisKKyAgICBzX2Zya19pbXBsKCkubV90ZXN0X2luX3Byb2dyZXNzID0gd2FzX2luX3Byb2dyZXNzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitydW4oIHRlc3RfdW5pdCBjb25zdCogdHUsIGJvb2wgY29udGludWVfdGVzdCApCit7CisgICAgcnVuKCB0dS0+cF9pZCwgY29udGludWVfdGVzdCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCithc3NlcnRpb25fcmVzdWx0KCBib29sIHBhc3NlZCApCit7CisgICAgQk9PU1RfVEVTVF9GT1JFQUNIKCB0ZXN0X29ic2VydmVyKiwgdG8sIHNfZnJrX2ltcGwoKS5tX29ic2VydmVycyApCisgICAgICAgIHRvLT5hc3NlcnRpb25fcmVzdWx0KCBwYXNzZWQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorZXhjZXB0aW9uX2NhdWdodCggZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgZXggKQoreworICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF9vYnNlcnZlciosIHRvLCBzX2Zya19pbXBsKCkubV9vYnNlcnZlcnMgKQorICAgICAgICB0by0+ZXhjZXB0aW9uX2NhdWdodCggZXggKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordGVzdF91bml0X2Fib3J0ZWQoIHRlc3RfdW5pdCBjb25zdCYgdHUgKQoreworICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF9vYnNlcnZlciosIHRvLCBzX2Zya19pbXBsKCkubV9vYnNlcnZlcnMgKQorICAgICAgICB0by0+dGVzdF91bml0X2Fib3J0ZWQoIHR1ICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGZyYW1ld29yaworCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0ZSQU1FV09SS19JUFBfMDIxMDA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9pbnRlcmFjdGlvbl9iYXNlZC5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9pbnRlcmFjdGlvbl9iYXNlZC5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNlZTliZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2ludGVyYWN0aW9uX2Jhc2VkLmlwcApAQCAtMCwwICsxLDkwIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogRmFjaWxpdGllcyB0byBwZXJmb3JtIGludGVyYWN0aW9uLWJhc2VkIHRlc3RpbmcKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfSU5URVJBQ1RJT05fQkFTRURfSVBQXzExMjEwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX0lOVEVSQUNUSU9OX0JBU0VEX0lQUF8xMTIxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHA+CisKKyNpZiBCT09TVF9URVNUX1NVUFBPUlRfSU5URVJBQ1RJT05fVEVTVElORworCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NhbGxiYWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ludGVyYWN0aW9uX2Jhc2VkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L21vY2tfb2JqZWN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHA+ICAgICAvLyBmb3Igc2V0dXBfZXJyb3IKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8c3RkZXhjZXB0PgorI2luY2x1ZGUgPHN0cmluZz4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGl0ZXN0IHsgLy8gaW50ZXJhY3Rpb24tYmFzZWQgdGVzdGluZworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgIG1hbmFnZXIgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK21hbmFnZXI6Om1hbmFnZXIoKQoreworICAgIGluc3RhbmNlX3B0ciggdHJ1ZSwgdGhpcyApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCittYW5hZ2VyOjp+bWFuYWdlcigpCit7CisgICAgaW5zdGFuY2VfcHRyKCB0cnVlICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisgICAgCittYW5hZ2VyKgorbWFuYWdlcjo6aW5zdGFuY2VfcHRyKCBib29sIHJlc2V0LCBtYW5hZ2VyKiBuZXdfcHRyICkKK3sKKyAgICBzdGF0aWMgbWFuYWdlciBkdW1teSggMCApOworICAgIAorICAgIHN0YXRpYyBtYW5hZ2VyKiBwdHIgPSAmZHVtbXk7CisgICAgCisgICAgaWYoIHJlc2V0ICkgeworICAgICAgICBpZiggbmV3X3B0ciApIHsKKyAgICAgICAgICAgIEJPT1NUX1RFU1RfU0VUVVBfQVNTRVJUKCBwdHIgPT0gJmR1bW15LCBCT09TVF9URVNUX0woICJDYW4ndCBydW4gdHdvIGludGVyYXRpb24gYmFzZWQgdGVzdCB0aGUgc2FtZSB0aW1lIiApICk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBwdHIgPSBuZXdfcHRyOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHB0ciA9ICZkdW1teTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHB0cjsKK30KKyAgICAKK30gIC8vIG5hbWVzcGFjZSBpdGVzdAorCit9ICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBub3QgYW5jaWVudCBjb21waWxlcgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9JTlRFUkFDVElPTl9CQVNFRF9JUFBfMTEyMTA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9sb2dnZWRfZXhwZWN0YXRpb25zLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL2xvZ2dlZF9leHBlY3RhdGlvbnMuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYjdiODEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9sb2dnZWRfZXhwZWN0YXRpb25zLmlwcApAQCAtMCwwICsxLDI0NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIEVMT0dfVkVSIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBGYWNpbGl0aWVzIHRvIHBlcmZvcm0gaW50ZXJhY3Rpb24gYmFzZWQgdGVzdG5nIG9mIGxvZ2dlZCBleHBlY3RhdGlvbnMKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfTE9HR0VEX0VYUEVDVEFUSU9OU19JUFBfMTIwOTA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfTE9HR0VEX0VYUEVDVEFUSU9OU19JUFBfMTIwOTA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwPgorCisjaWYgQk9PU1RfVEVTVF9TVVBQT1JUX0lOVEVSQUNUSU9OX1RFU1RJTkcKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2FsbGJhY2suaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvaXRlcmF0b3IvdG9rZW5faXRlcmF0b3IuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9pbnRlcmFjdGlvbl9iYXNlZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9sZXhpY2FsX2Nhc3QuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCit1c2luZyBuYW1lc3BhY2UgOjpuZG5ib29zdDo6dW5pdF90ZXN0OworCituYW1lc3BhY2UgaXRlc3QgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgbG9nZ2VkIGV4cGVjdGF0aW9uIHRlc3QgaW1wbGVtZW50YXRpb24gICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0cnVjdCBleHBlY3RhdGlvbnNfbG9nZ2VyIDogaXRlc3Q6Om1hbmFnZXIgeworICAgIC8vIENvbnN0cnVjdG9yCisgICAgZXhwZWN0YXRpb25zX2xvZ2dlciggY29uc3Rfc3RyaW5nIGxvZ19maWxlX25hbWUsIGJvb2wgdGVzdF9vcl9sb2cgKTsKKworICAgIHZpcnR1YWwgYm9vbCAgICAgICAgZGVjaXNpb25fcG9pbnQoIGNvbnN0X3N0cmluZywgc3RkOjpzaXplX3QgKTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkICAgIGVudGVyX3Njb3BlKCBjb25zdF9zdHJpbmcsIHN0ZDo6c2l6ZV90LCBjb25zdF9zdHJpbmcgc2NvcGVfbmFtZSApOworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgYWxsb2NhdGVkKCBjb25zdF9zdHJpbmcsIHN0ZDo6c2l6ZV90LCB2b2lkKiwgc3RkOjpzaXplX3QgcyApOworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgZGF0YV9mbG93KCBjb25zdF9zdHJpbmcgZCApOworICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgcmV0dXJuX3ZhbHVlKCBjb25zdF9zdHJpbmcgZGVmYXVsdF92YWx1ZSApOworICAgIAorcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBib29sICAgICAgICAgICAgbV90ZXN0X29yX2xvZzsKKyAgICBzdGQ6OmZzdHJlYW0gICAgbV9sb2dfZmlsZTsKK307CisKK2xpdGVyYWxfc3RyaW5nIEVMT0dfVkVSICAgICA9ICIxLjAiOworbGl0ZXJhbF9zdHJpbmcgQ0xNTl9TRVAgICAgID0gInwiOworc3RhdGljIGNvbnN0IGNoYXIgTElORV9TRVAgID0gJ1xuJzsKKworbGl0ZXJhbF9zdHJpbmcgRklMRV9TSUcgICAgID0gIkVMT0ciOworbGl0ZXJhbF9zdHJpbmcgU0NPUEVfU0lHICAgID0gIlNDT1BFIjsKK2xpdGVyYWxfc3RyaW5nIEFMTE9DX1NJRyAgICA9ICJBTExPQyI7CitsaXRlcmFsX3N0cmluZyBEUF9TSUcgICAgICAgPSAiU1dJVENIIjsKK2xpdGVyYWxfc3RyaW5nIERBVEFfU0lHICAgICA9ICJEQVRBIjsKK2xpdGVyYWxfc3RyaW5nIFJFVFVSTl9TSUcgICA9ICJSRVRVUk4iOworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitleHBlY3RhdGlvbnNfbG9nZ2VyOjpleHBlY3RhdGlvbnNfbG9nZ2VyKCBjb25zdF9zdHJpbmcgbG9nX2ZpbGVfbmFtZSwgYm9vbCB0ZXN0X29yX2xvZyApCis6IG1fdGVzdF9vcl9sb2coIHRlc3Rfb3JfbG9nICkKK3sKKyAgICBCT09TVF9SRVFVSVJFX01FU1NBR0UoICFsb2dfZmlsZV9uYW1lLmlzX2VtcHR5KCksICJFbXB0eSBleHBlY3RhdGlvbnMgbG9nIGZpbGUgbmFtZSIgKTsKKworICAgIG1fbG9nX2ZpbGUub3BlbiggbG9nX2ZpbGVfbmFtZS5iZWdpbigpLCB0ZXN0X29yX2xvZyA/IHN0ZDo6aW9zOjppbiA6IHN0ZDo6aW9zOjpvdXQgKTsKKworICAgIEJPT1NUX1JFUVVJUkVfTUVTU0FHRSggbV9sb2dfZmlsZS5pc19vcGVuKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FuJ3Qgb3BlbiBleHBlY3RhdGlvbnMgbG9nIGZpbGUgIiA8PCBsb2dfZmlsZV9uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgZm9yICIgPDwgKCBtX3Rlc3Rfb3JfbG9nID8gInJlYWRpbmciIDogIndyaXRpbmciKSApOworCisgICAgaWYoIG1fdGVzdF9vcl9sb2cgKSB7CisgICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7CisgICAgICAgIAorICAgICAgICBzdGQ6OmdldGxpbmUoIG1fbG9nX2ZpbGUsIGxpbmUsIExJTkVfU0VQICk7CisgICAgICAgIAorICAgICAgICBjb25zdF9zdHJpbmcgY2xpbmUoIGxpbmUgKTsKKyAgICAgICAgc3RyaW5nX3Rva2VuX2l0ZXJhdG9yIHRpdCggY2xpbmUsIChkcm9wcGVkX2RlbGltZXRlcnMgPSBDTE1OX1NFUCwga2VwdF9kZWxpbWV0ZXJzID0gZHRfbm9uZSkpOworCisgICAgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCAqdGl0LCBGSUxFX1NJRyApOyAKKyAgICAgICAgKyt0aXQ7CisgICAgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCAqdGl0LCBFTE9HX1ZFUiApOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbV9sb2dfZmlsZSA8PCBGSUxFX1NJRyA8PCBDTE1OX1NFUCA8PCBFTE9HX1ZFUiA8PCBMSU5FX1NFUDsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wKK2V4cGVjdGF0aW9uc19sb2dnZXI6OmRlY2lzaW9uX3BvaW50KCBjb25zdF9zdHJpbmcsIHN0ZDo6c2l6ZV90ICkKK3sKKyAgICBpZiggbV90ZXN0X29yX2xvZyApIHsKKyAgICAgICAgc3RkOjpzdHJpbmcgbGluZTsKKyAgICAgICAgCisgICAgICAgIHN0ZDo6Z2V0bGluZSggbV9sb2dfZmlsZSwgbGluZSwgTElORV9TRVAgKTsKKyAgICAgICAgCisgICAgICAgIGNvbnN0X3N0cmluZyBjbGluZSggbGluZSApOworICAgICAgICBzdHJpbmdfdG9rZW5faXRlcmF0b3IgdGl0KCBjbGluZSwgKGRyb3BwZWRfZGVsaW1ldGVycyA9IENMTU5fU0VQLCBrZXB0X2RlbGltZXRlcnMgPSBkdF9ub25lKSk7CisgICAgICAgIAorICAgICAgICBCT09TVF9DSEVDS19FUVVBTCggKnRpdCwgRFBfU0lHICk7ICsrdGl0OworICAgICAgICByZXR1cm4gbGV4aWNhbF9jYXN0PGJvb2w+KCAqdGl0ICk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBtX2xvZ19maWxlIDw8IERQX1NJRyA8PCBDTE1OX1NFUCA8PCBzdGQ6OmJvb2xhbHBoYSA8PCB0cnVlIDw8IExJTkVfU0VQOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworICAgIAordW5zaWduZWQKK2V4cGVjdGF0aW9uc19sb2dnZXI6OmVudGVyX3Njb3BlKCBjb25zdF9zdHJpbmcsIHN0ZDo6c2l6ZV90LCBjb25zdF9zdHJpbmcgc2NvcGVfbmFtZSApCit7CisgICAgaWYoIG1fdGVzdF9vcl9sb2cgKSB7CisgICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7CisgICAgICAgIAorICAgICAgICBzdGQ6OmdldGxpbmUoIG1fbG9nX2ZpbGUsIGxpbmUsIExJTkVfU0VQICk7CisgICAgICAgIAorICAgICAgICBjb25zdF9zdHJpbmcgY2xpbmUoIGxpbmUgKTsKKyAgICAgICAgc3RyaW5nX3Rva2VuX2l0ZXJhdG9yIHRpdCggY2xpbmUsIChkcm9wcGVkX2RlbGltZXRlcnMgPSBDTE1OX1NFUCwga2VwdF9kZWxpbWV0ZXJzID0gZHRfbm9uZSkpOworICAgICAgICAKKyAgICAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoICp0aXQsIFNDT1BFX1NJRyApOyArK3RpdDsKKyAgICAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoICp0aXQsIHNjb3BlX25hbWUgKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG1fbG9nX2ZpbGUgPDwgU0NPUEVfU0lHIDw8IENMTU5fU0VQIDw8IHNjb3BlX25hbWUgPDwgTElORV9TRVA7CisgICAgfQorICAgIAorICAgIHJldHVybiAwOworfQorICAgIAorLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorZXhwZWN0YXRpb25zX2xvZ2dlcjo6YWxsb2NhdGVkKCBjb25zdF9zdHJpbmcsIHN0ZDo6c2l6ZV90LCB2b2lkKiwgc3RkOjpzaXplX3QgcyApCit7CisgICAgaWYoIG1fdGVzdF9vcl9sb2cgKSB7CisgICAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7CisgICAgICAgIAorICAgICAgICBzdGQ6OmdldGxpbmUoIG1fbG9nX2ZpbGUsIGxpbmUsIExJTkVfU0VQICk7CisgICAgICAgIAorICAgICAgICBjb25zdF9zdHJpbmcgY2xpbmUoIGxpbmUgKTsKKyAgICAgICAgc3RyaW5nX3Rva2VuX2l0ZXJhdG9yIHRpdCggY2xpbmUsIChkcm9wcGVkX2RlbGltZXRlcnMgPSBDTE1OX1NFUCwga2VwdF9kZWxpbWV0ZXJzID0gZHRfbm9uZSkpOworICAgICAgICAKKyAgICAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoICp0aXQsIEFMTE9DX1NJRyApOyArK3RpdDsKKyAgICAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIGxleGljYWxfY2FzdDxzdGQ6OnNpemVfdD4oICp0aXQgKSwgcyApOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbV9sb2dfZmlsZSA8PCBBTExPQ19TSUcgPDwgQ0xNTl9TRVAgPDwgcyA8PCBMSU5FX1NFUDsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK2V4cGVjdGF0aW9uc19sb2dnZXI6OmRhdGFfZmxvdyggY29uc3Rfc3RyaW5nIGQgKQoreworICAgIGlmKCBtX3Rlc3Rfb3JfbG9nICkgeworICAgICAgICBzdGQ6OnN0cmluZyBsaW5lOworICAgICAgICAKKyAgICAgICAgc3RkOjpnZXRsaW5lKCBtX2xvZ19maWxlLCBsaW5lLCBMSU5FX1NFUCApOworICAgICAgICAKKyAgICAgICAgY29uc3Rfc3RyaW5nIGNsaW5lKCBsaW5lICk7CisgICAgICAgIHN0cmluZ190b2tlbl9pdGVyYXRvciB0aXQoIGNsaW5lLCAoZHJvcHBlZF9kZWxpbWV0ZXJzID0gQ0xNTl9TRVAsIGtlcHRfZGVsaW1ldGVycyA9IGR0X25vbmUpKTsKKyAgICAgICAgCisgICAgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCAqdGl0LCBEQVRBX1NJRyApOyArK3RpdDsKKyAgICAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoICp0aXQsIGQgKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG1fbG9nX2ZpbGUgPDwgREFUQV9TSUcgPDwgQ0xNTl9TRVAgPDwgZCA8PCBMSU5FX1NFUDsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0ZDo6c3RyaW5nCitleHBlY3RhdGlvbnNfbG9nZ2VyOjpyZXR1cm5fdmFsdWUoIGNvbnN0X3N0cmluZyBkZWZhdWx0X3ZhbHVlICkKK3sKKyAgICBpZiggbV90ZXN0X29yX2xvZyApIHsKKyAgICAgICAgc3RkOjpzdHJpbmcgbGluZTsKKyAgICAgICAgCisgICAgICAgIHN0ZDo6Z2V0bGluZSggbV9sb2dfZmlsZSwgbGluZSwgTElORV9TRVAgKTsKKyAgICAgICAgCisgICAgICAgIGNvbnN0X3N0cmluZyBjbGluZSggbGluZSApOworICAgICAgICBzdHJpbmdfdG9rZW5faXRlcmF0b3IgdGl0KCBjbGluZSwgKGRyb3BwZWRfZGVsaW1ldGVycyA9IENMTU5fU0VQLCBrZXB0X2RlbGltZXRlcnMgPSBkdF9ub25lKSk7CisgICAgICAgIAorICAgICAgICBCT09TVF9DSEVDS19FUVVBTCggKnRpdCwgUkVUVVJOX1NJRyApOyArK3RpdDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyggdGl0LT5iZWdpbigpLCB0aXQtPnNpemUoKSApOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbV9sb2dfZmlsZSA8PCBSRVRVUk5fU0lHIDw8IENMTU5fU0VQIDw8IGRlZmF1bHRfdmFsdWUgPDwgTElORV9TRVA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworICAgIAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICBsb2dnZWQgZXhwZWN0YXRpb25zIHRlc3QgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkIEJPT1NUX1RFU1RfREVDTAorbG9nZ2VkX2V4cGVjdGF0aW9ucyggY2FsbGJhY2swPD4gY29uc3QmIEYsIGNvbnN0X3N0cmluZyBsb2dfZmlsZV9uYW1lLCBib29sIHRlc3Rfb3JfbG9nICkKK3sKKyAgICBleHBlY3RhdGlvbnNfbG9nZ2VyIGVsKCBsb2dfZmlsZV9uYW1lLCB0ZXN0X29yX2xvZyApOworCisgICAgRigpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9ICAvLyBuYW1lc3BhY2UgaXRlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBub3QgYW5jaWVudCBjb21waWxlcgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9MT0dHRURfRVhQRUNUQVRJT05TX0lQUF8xMjA5MDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvcGxhaW5fcmVwb3J0X2Zvcm1hdHRlci5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYwYWFhYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaXBwCkBAIC0wLDAgKzEsMTk4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogcGxhaW4gcmVwb3J0IGZvcm1hdHRlciBkZWZpbml0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX1BMQUlOX1JFUE9SVF9GT1JNQVRURVJfSVBQXzAyMDEwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1BMQUlOX1JFUE9SVF9GT1JNQVRURVJfSVBQXzAyMDEwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9vdXRwdXQvcGxhaW5fcmVwb3J0X2Zvcm1hdHRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jdXN0b21fbWFuaXAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19jb2xsZWN0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlX2ltcGwuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8aW9tYW5pcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcvbm9fdHIxL2NtYXRoLmhwcD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworIyBpZmRlZiBCT09TVF9OT19TVERDX05BTUVTUEFDRQorbmFtZXNwYWNlIHN0ZCB7IHVzaW5nIDo6bG9nMTA7IH0KKyMgZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSBvdXRwdXQgeworCituYW1lc3BhY2UgeworCit0eXBlZGVmIGN1c3RvbV9tYW5pcDxzdHJ1Y3QgcXVvdGVfdD4gcXVvdGU7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgc3RkOjpvc3RyZWFtJgorb3BlcmF0b3I8PCggY3VzdG9tX3ByaW50ZXI8cXVvdGU+IGNvbnN0JiBwLCBUIGNvbnN0JiB2YWx1ZSApCit7CisgICAgKnAgPDwgJyInIDw8IHZhbHVlIDw8ICciJzsKKworICAgIHJldHVybiAqcDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcHJpbnRfc3RhdF92YWx1ZSggc3RkOjpvc3RyZWFtJiBvc3RyLCBjb3VudGVyX3QgdiwgY291bnRlcl90IGluZGVudCwgY291bnRlcl90IHRvdGFsLAorICAgICAgICAgICAgICAgICAgY29uc3Rfc3RyaW5nIG5hbWUsIGNvbnN0X3N0cmluZyByZXMgKQoreworICAgIGlmKCB2ID4gMCApIHsKKyAgICAgICAgb3N0ciA8PCBzdGQ6OnNldHcoIGluZGVudCApIDw8ICIiCisgICAgICAgICAgICAgPDwgdiA8PCAnICcgPDwgbmFtZSA8PCAoIHYgIT0gMSA/ICJzIiA6ICIiICk7CisgICAgICAgIGlmKCB0b3RhbCA+IDAgKQorICAgICAgICAgICAgb3N0ciA8PCAiIG91dCBvZiAiIDw8IHRvdGFsOworCisgICAgICAgIG9zdHIgPDwgJyAnIDw8IHJlcyA8PCAnXG4nOworICAgIH0KK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBsb2NhbCBuYW1lc3BhY2UKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIHBsYWluX3JlcG9ydF9mb3JtYXR0ZXIgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkCitwbGFpbl9yZXBvcnRfZm9ybWF0dGVyOjpyZXN1bHRzX3JlcG9ydF9zdGFydCggc3RkOjpvc3RyZWFtJiBvc3RyICkKK3sKKyAgICBtX2luZGVudCA9IDA7CisgICAgb3N0ciA8PCAnXG4nOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitwbGFpbl9yZXBvcnRfZm9ybWF0dGVyOjpyZXN1bHRzX3JlcG9ydF9maW5pc2goIHN0ZDo6b3N0cmVhbSYgb3N0ciApCit7CisgICAgb3N0ci5mbHVzaCgpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitwbGFpbl9yZXBvcnRfZm9ybWF0dGVyOjp0ZXN0X3VuaXRfcmVwb3J0X3N0YXJ0KCB0ZXN0X3VuaXQgY29uc3QmIHR1LCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIHRlc3RfcmVzdWx0cyBjb25zdCYgdHIgPSByZXN1bHRzX2NvbGxlY3Rvci5yZXN1bHRzKCB0dS5wX2lkICk7CisKKyAgICBjb25zdF9zdHJpbmcgZGVzY3I7CisKKyAgICBpZiggdHIucGFzc2VkKCkgKQorICAgICAgICBkZXNjciA9ICJwYXNzZWQiOworICAgIGVsc2UgaWYoIHRyLnBfc2tpcHBlZCApCisgICAgICAgIGRlc2NyID0gInNraXBwZWQiOworICAgIGVsc2UgaWYoIHRyLnBfYWJvcnRlZCApCisgICAgICAgIGRlc2NyID0gImFib3J0ZWQiOworICAgIGVsc2UKKyAgICAgICAgZGVzY3IgPSAiZmFpbGVkIjsKKworICAgIG9zdHIgPDwgc3RkOjpzZXR3KCBtX2luZGVudCApIDw8ICIiCisgICAgICAgICA8PCAiVGVzdCAiIDw8ICh0dS5wX3R5cGUgPT0gdHV0X2Nhc2UgPyAiY2FzZSAiIDogInN1aXRlICIgKSA8PCBxdW90ZSgpIDw8IHR1LnBfbmFtZSA8PCAnICcgPDwgZGVzY3I7CisKKyAgICBpZiggdHIucF9za2lwcGVkICkgeworICAgICAgICBvc3RyIDw8ICIgZHVlIHRvICIgPDwgKHR1LmNoZWNrX2RlcGVuZGVuY2llcygpID8gInRlc3QgYWJvcnRpbmdcbiIgOiAiZmFpbGVkIGRlcGVuZGFuY3lcbiIgKTsKKyAgICAgICAgbV9pbmRlbnQgKz0gMjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBjb3VudGVyX3QgdG90YWxfYXNzZXJ0aW9ucyAgPSB0ci5wX2Fzc2VydGlvbnNfcGFzc2VkICsgdHIucF9hc3NlcnRpb25zX2ZhaWxlZDsKKyAgICBjb3VudGVyX3QgdG90YWxfdGMgICAgICAgICAgPSB0ci5wX3Rlc3RfY2FzZXNfcGFzc2VkICsgdHIucF90ZXN0X2Nhc2VzX2ZhaWxlZCArIHRyLnBfdGVzdF9jYXNlc19za2lwcGVkOworCisgICAgaWYoIHRvdGFsX2Fzc2VydGlvbnMgPiAwIHx8IHRvdGFsX3RjID4gMCApCisgICAgICAgIG9zdHIgPDwgIiB3aXRoOiI7CisKKyAgICBvc3RyIDw8ICdcbic7CisgICAgbV9pbmRlbnQgKz0gMjsKKworICAgIHByaW50X3N0YXRfdmFsdWUoIG9zdHIsIHRyLnBfYXNzZXJ0aW9uc19wYXNzZWQsIG1faW5kZW50LCB0b3RhbF9hc3NlcnRpb25zLCAiYXNzZXJ0aW9uIiwgInBhc3NlZCIgKTsKKyAgICBwcmludF9zdGF0X3ZhbHVlKCBvc3RyLCB0ci5wX2Fzc2VydGlvbnNfZmFpbGVkLCBtX2luZGVudCwgdG90YWxfYXNzZXJ0aW9ucywgImFzc2VydGlvbiIsICJmYWlsZWQiICk7CisgICAgcHJpbnRfc3RhdF92YWx1ZSggb3N0ciwgdHIucF9leHBlY3RlZF9mYWlsdXJlcywgbV9pbmRlbnQsIDAgICAgICAgICAgICAgICAsICJmYWlsdXJlIiAgLCAiZXhwZWN0ZWQiICk7CisgICAgcHJpbnRfc3RhdF92YWx1ZSggb3N0ciwgdHIucF90ZXN0X2Nhc2VzX3Bhc3NlZCwgbV9pbmRlbnQsIHRvdGFsX3RjICAgICAgICAsICJ0ZXN0IGNhc2UiLCAicGFzc2VkIiApOworICAgIHByaW50X3N0YXRfdmFsdWUoIG9zdHIsIHRyLnBfdGVzdF9jYXNlc19mYWlsZWQsIG1faW5kZW50LCB0b3RhbF90YyAgICAgICAgLCAidGVzdCBjYXNlIiwgImZhaWxlZCIgKTsKKyAgICBwcmludF9zdGF0X3ZhbHVlKCBvc3RyLCB0ci5wX3Rlc3RfY2FzZXNfc2tpcHBlZCwgbV9pbmRlbnQsIHRvdGFsX3RjICAgICAgICwgInRlc3QgY2FzZSIsICJza2lwcGVkIiApOworICAgIHByaW50X3N0YXRfdmFsdWUoIG9zdHIsIHRyLnBfdGVzdF9jYXNlc19hYm9ydGVkLCBtX2luZGVudCwgdG90YWxfdGMgICAgICAgLCAidGVzdCBjYXNlIiwgImFib3J0ZWQiICk7CisgICAgCisgICAgb3N0ciA8PCAnXG4nOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitwbGFpbl9yZXBvcnRfZm9ybWF0dGVyOjp0ZXN0X3VuaXRfcmVwb3J0X2ZpbmlzaCggdGVzdF91bml0IGNvbnN0Jiwgc3RkOjpvc3RyZWFtJiApCit7CisgICAgbV9pbmRlbnQgLT0gMjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcGxhaW5fcmVwb3J0X2Zvcm1hdHRlcjo6ZG9fY29uZmlybWF0aW9uX3JlcG9ydCggdGVzdF91bml0IGNvbnN0JiB0dSwgc3RkOjpvc3RyZWFtJiBvc3RyICkKK3sKKyAgICB0ZXN0X3Jlc3VsdHMgY29uc3QmIHRyID0gcmVzdWx0c19jb2xsZWN0b3IucmVzdWx0cyggdHUucF9pZCApOworICAgIAorICAgIGlmKCB0ci5wYXNzZWQoKSApIHsKKyAgICAgICAgb3N0ciA8PCAiKioqIE5vIGVycm9ycyBkZXRlY3RlZFxuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisgICAgaWYoIHRyLnBfc2tpcHBlZCApIHsKKyAgICAgICAgb3N0ciA8PCAiKioqIFRlc3QgIiA8PCB0dS5wX3R5cGVfbmFtZSA8PCAiIHNraXBwZWQgZHVlIHRvICIgCisgICAgICAgICAgICAgPDwgKHR1LmNoZWNrX2RlcGVuZGVuY2llcygpID8gInRlc3QgYWJvcnRpbmdcbiIgOiAiZmFpbGVkIGRlcGVuZGFuY3lcbiIgKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmKCB0ci5wX2Fzc2VydGlvbnNfZmFpbGVkID09IDAgKSB7CisgICAgICAgIG9zdHIgPDwgIioqKiBlcnJvcnMgZGV0ZWN0ZWQgaW4gdGVzdCAiIDw8IHR1LnBfdHlwZV9uYW1lIDw8ICIgIiA8PCBxdW90ZSgpIDw8IHR1LnBfbmFtZQorICAgICAgICAgICAgIDw8ICI7IHNlZSBzdGFuZGFyZCBvdXRwdXQgZm9yIGRldGFpbHNcbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3VudGVyX3QgbnVtX2ZhaWx1cmVzID0gdHIucF9hc3NlcnRpb25zX2ZhaWxlZDsKKyAgICAKKyAgICBvc3RyIDw8ICIqKiogIiA8PCBudW1fZmFpbHVyZXMgPDwgIiBmYWlsdXJlIiA8PCAoIG51bV9mYWlsdXJlcyAhPSAxID8gInMiIDogIiIgKSA8PCAiIGRldGVjdGVkIjsKKyAgICAKKyAgICBpZiggdHIucF9leHBlY3RlZF9mYWlsdXJlcyA+IDAgKQorICAgICAgICBvc3RyIDw8ICIgKCIgPDwgdHIucF9leHBlY3RlZF9mYWlsdXJlcyA8PCAiIGZhaWx1cmUiIDw8ICggdHIucF9leHBlY3RlZF9mYWlsdXJlcyAhPSAxID8gInMiIDogIiIgKSA8PCAiIGV4cGVjdGVkKSI7CisgICAgCisgICAgb3N0ciA8PCAiIGluIHRlc3QgIiA8PCB0dS5wX3R5cGVfbmFtZSA8PCAiICIgPDwgcXVvdGUoKSA8PCB0dS5wX25hbWUgPDwgIlxuIjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2Ugb3V0cHV0CisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfUExBSU5fUkVQT1JUX0ZPUk1BVFRFUl9JUFBfMDIwMTA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9wcm9ncmVzc19tb25pdG9yLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3Byb2dyZXNzX21vbml0b3IuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjOTM0MzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9wcm9ncmVzc19tb25pdG9yLmlwcApAQCAtMCwwICsxLDExMCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTc5OTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGltcGxlbWVudHMgc2ltcGxlIHRleHQgYmFzZWQgcHJvZ3Jlc3MgbW9uaXRvcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9QUk9HUkVTU19NT05JVE9SX0lQUF8wMjAxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9QUk9HUkVTU19NT05JVE9SX0lQUF8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvcHJvZ3Jlc3NfbW9uaXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC91bml0X3Rlc3RfcGFyYW1ldGVycy5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJvZ3Jlc3MuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Njb3BlZF9wdHIuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIHByb2dyZXNzX21vbml0b3IgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgeworCitzdHJ1Y3QgcHJvZ3Jlc3NfbW9uaXRvcl9pbXBsIHsKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIHByb2dyZXNzX21vbml0b3JfaW1wbCgpCisgICAgICAgIDogbV9zdHJlYW0oIHJ1bnRpbWVfY29uZmlnOjpsb2dfc2luaygpICkKKyAgICB7fQorCisgICAgc3RkOjpvc3RyZWFtKiAgICAgICAgICAgICAgICBtX3N0cmVhbTsKKyAgICBzY29wZWRfcHRyPHByb2dyZXNzX2Rpc3BsYXk+IG1fcHJvZ3Jlc3NfZGlzcGxheTsKK307CisKK3Byb2dyZXNzX21vbml0b3JfaW1wbCYgc19wbV9pbXBsKCkgeyBzdGF0aWMgcHJvZ3Jlc3NfbW9uaXRvcl9pbXBsIHRoZV9pbnN0OyByZXR1cm4gdGhlX2luc3Q7IH0KKworfSAvLyBsb2NhbCBuYW1lc3BhY2UKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcHJvZ3Jlc3NfbW9uaXRvcl90Ojp0ZXN0X3N0YXJ0KCBjb3VudGVyX3QgdGVzdF9jYXNlc19hbW91bnQgKQoreworICAgIHNfcG1faW1wbCgpLm1fcHJvZ3Jlc3NfZGlzcGxheS5yZXNldCggbmV3IHByb2dyZXNzX2Rpc3BsYXkoIHRlc3RfY2FzZXNfYW1vdW50LCAqc19wbV9pbXBsKCkubV9zdHJlYW0gKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitwcm9ncmVzc19tb25pdG9yX3Q6OnRlc3RfYWJvcnRlZCgpCit7CisgICAgKCpzX3BtX2ltcGwoKS5tX3Byb2dyZXNzX2Rpc3BsYXkpICs9IHNfcG1faW1wbCgpLm1fcHJvZ3Jlc3NfZGlzcGxheS0+Y291bnQoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcHJvZ3Jlc3NfbW9uaXRvcl90Ojp0ZXN0X3VuaXRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmIHR1LCB1bnNpZ25lZCBsb25nICkKK3sKKyAgICBpZiggdHUucF90eXBlID09IHR1dF9jYXNlICkKKyAgICAgICAgKysoKnNfcG1faW1wbCgpLm1fcHJvZ3Jlc3NfZGlzcGxheSk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Byb2dyZXNzX21vbml0b3JfdDo6dGVzdF91bml0X3NraXBwZWQoIHRlc3RfdW5pdCBjb25zdCYgdHUgKQoreworICAgIHRlc3RfY2FzZV9jb3VudGVyIHRjYzsKKyAgICB0cmF2ZXJzZV90ZXN0X3RyZWUoIHR1LCB0Y2MgKTsKKyAgICAKKyAgICAoKnNfcG1faW1wbCgpLm1fcHJvZ3Jlc3NfZGlzcGxheSkgKz0gdGNjLnBfY291bnQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Byb2dyZXNzX21vbml0b3JfdDo6c2V0X3N0cmVhbSggc3RkOjpvc3RyZWFtJiBvc3RyICkKK3sKKyAgICBzX3BtX2ltcGwoKS5tX3N0cmVhbSA9ICZvc3RyOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworICAgIAorfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9QUk9HUkVTU19NT05JVE9SX0lQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3Jlc3VsdHNfY29sbGVjdG9yLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3Jlc3VsdHNfY29sbGVjdG9yLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjY3NmNmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvcmVzdWx0c19jb2xsZWN0b3IuaXBwCkBAIC0wLDAgKzEsMjk0IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW1wbGVtZW50cyBVbml0IFRlc3QgcmVzdWx0cyBjb2xsZWN0aW5nIGZhY2lsaXR5LgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9SRVNVTFRTX0NPTExFQ1RPUl9JUFBfMDIxMTA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfUkVTVUxUU19DT0xMRUNUT1JfSVBQXzAyMTEwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Jlc3VsdHNfY29sbGVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY3N0ZGxpYi5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPG1hcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVzdF9yZXN1bHRzOjp0ZXN0X3Jlc3VsdHMoKQoreworICAgIGNsZWFyKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wKK3Rlc3RfcmVzdWx0czo6cGFzc2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gICFwX3NraXBwZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYKKyAgICAgICAgICAgIHBfdGVzdF9jYXNlc19mYWlsZWQgPT0gMCAgICAgICAgICAgICAgICAgICAgJiYKKyAgICAgICAgICAgIHBfYXNzZXJ0aW9uc19mYWlsZWQgPD0gcF9leHBlY3RlZF9mYWlsdXJlcyAgJiYKKyAgICAgICAgICAgICFwX2Fib3J0ZWQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2ludAordGVzdF9yZXN1bHRzOjpyZXN1bHRfY29kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhc3NlZCgpID8gZXhpdF9zdWNjZXNzCisgICAgICAgICAgIDogKCAocF9hc3NlcnRpb25zX2ZhaWxlZCA+IHBfZXhwZWN0ZWRfZmFpbHVyZXMgfHwgcF9za2lwcGVkICkKKyAgICAgICAgICAgICAgICAgICAgPyBleGl0X3Rlc3RfZmFpbHVyZQorICAgICAgICAgICAgICAgICAgICA6IGV4aXRfZXhjZXB0aW9uX2ZhaWx1cmUgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordGVzdF9yZXN1bHRzOjpvcGVyYXRvcis9KCB0ZXN0X3Jlc3VsdHMgY29uc3QmIHRyICkKK3sKKyAgICBwX2Fzc2VydGlvbnNfcGFzc2VkLnZhbHVlICAgKz0gdHIucF9hc3NlcnRpb25zX3Bhc3NlZDsKKyAgICBwX2Fzc2VydGlvbnNfZmFpbGVkLnZhbHVlICAgKz0gdHIucF9hc3NlcnRpb25zX2ZhaWxlZDsKKyAgICBwX3Rlc3RfY2FzZXNfcGFzc2VkLnZhbHVlICAgKz0gdHIucF90ZXN0X2Nhc2VzX3Bhc3NlZDsKKyAgICBwX3Rlc3RfY2FzZXNfZmFpbGVkLnZhbHVlICAgKz0gdHIucF90ZXN0X2Nhc2VzX2ZhaWxlZDsKKyAgICBwX3Rlc3RfY2FzZXNfc2tpcHBlZC52YWx1ZSAgKz0gdHIucF90ZXN0X2Nhc2VzX3NraXBwZWQ7CisgICAgcF90ZXN0X2Nhc2VzX2Fib3J0ZWQudmFsdWUgICs9IHRyLnBfdGVzdF9jYXNlc19hYm9ydGVkOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit0ZXN0X3Jlc3VsdHM6OmNsZWFyKCkKK3sKKyAgICBwX2Fzc2VydGlvbnNfcGFzc2VkLnZhbHVlICAgID0gMDsKKyAgICBwX2Fzc2VydGlvbnNfZmFpbGVkLnZhbHVlICAgID0gMDsKKyAgICBwX2V4cGVjdGVkX2ZhaWx1cmVzLnZhbHVlICAgID0gMDsKKyAgICBwX3Rlc3RfY2FzZXNfcGFzc2VkLnZhbHVlICAgID0gMDsKKyAgICBwX3Rlc3RfY2FzZXNfZmFpbGVkLnZhbHVlICAgID0gMDsKKyAgICBwX3Rlc3RfY2FzZXNfc2tpcHBlZC52YWx1ZSAgID0gMDsKKyAgICBwX3Rlc3RfY2FzZXNfYWJvcnRlZC52YWx1ZSAgID0gMDsKKyAgICBwX2Fib3J0ZWQudmFsdWUgICAgICAgICAgICAgID0gZmFsc2U7CisgICAgcF9za2lwcGVkLnZhbHVlICAgICAgICAgICAgICA9IHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisgICAgCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICByZXN1bHRzX2NvbGxlY3RvciAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8MTMwMCkKKworbmFtZXNwYWNlIHsKKworc3RydWN0IHJlc3VsdHNfY29sbGVjdG9yX2ltcGwgeworICAgIHN0ZDo6bWFwPHRlc3RfdW5pdF9pZCx0ZXN0X3Jlc3VsdHM+IG1fcmVzdWx0c19zdG9yZTsKK307CisKK3Jlc3VsdHNfY29sbGVjdG9yX2ltcGwmIHNfcmNfaW1wbCgpIHsgc3RhdGljIHJlc3VsdHNfY29sbGVjdG9yX2ltcGwgdGhlX2luc3Q7IHJldHVybiB0aGVfaW5zdDsgfQorCit9IC8vIGxvY2FsIG5hbWVzcGFjZQorCisjZWxzZQorCitzdHJ1Y3QgcmVzdWx0c19jb2xsZWN0b3JfaW1wbCB7CisgICAgc3RkOjptYXA8dGVzdF91bml0X2lkLHRlc3RfcmVzdWx0cz4gbV9yZXN1bHRzX3N0b3JlOworfTsKKworc3RhdGljIHJlc3VsdHNfY29sbGVjdG9yX2ltcGwmIHNfcmNfaW1wbCgpIHsgc3RhdGljIHJlc3VsdHNfY29sbGVjdG9yX2ltcGwgdGhlX2luc3Q7IHJldHVybiB0aGVfaW5zdDsgfQorCisjZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcmVzdWx0c19jb2xsZWN0b3JfdDo6dGVzdF9zdGFydCggY291bnRlcl90ICkKK3sKKyAgICBzX3JjX2ltcGwoKS5tX3Jlc3VsdHNfc3RvcmUuY2xlYXIoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcmVzdWx0c19jb2xsZWN0b3JfdDo6dGVzdF9maW5pc2goKQoreworICAgIC8vIGRvIG5vdGhpbmcKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcmVzdWx0c19jb2xsZWN0b3JfdDo6dGVzdF9hYm9ydGVkKCkKK3sKKyAgICAvLyBkbyBub3RoaW5nCit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Jlc3VsdHNfY29sbGVjdG9yX3Q6OnRlc3RfdW5pdF9zdGFydCggdGVzdF91bml0IGNvbnN0JiB0dSApCit7CisgICAgLy8gaW5pdCB0ZXN0X3Jlc3VsdHMgZW50cnkKKyAgICB0ZXN0X3Jlc3VsdHMmIHRyID0gc19yY19pbXBsKCkubV9yZXN1bHRzX3N0b3JlW3R1LnBfaWRdOworCisgICAgdHIuY2xlYXIoKTsKKyAgICAKKyAgICB0ci5wX2V4cGVjdGVkX2ZhaWx1cmVzLnZhbHVlICAgID0gdHUucF9leHBlY3RlZF9mYWlsdXJlczsKKyAgICB0ci5wX3NraXBwZWQudmFsdWUgICAgICAgICAgICAgID0gZmFsc2U7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2NsYXNzIHJlc3VsdHNfY29sbGVjdF9oZWxwZXIgOiBwdWJsaWMgdGVzdF90cmVlX3Zpc2l0b3IgeworcHVibGljOgorICAgIGV4cGxpY2l0IHJlc3VsdHNfY29sbGVjdF9oZWxwZXIoIHRlc3RfcmVzdWx0cyYgdHIsIHRlc3RfdW5pdCBjb25zdCYgdHMgKSA6IG1fdHIoIHRyICksIG1fdHMoIHRzICkge30KKworICAgIHZvaWQgICAgdmlzaXQoIHRlc3RfY2FzZSBjb25zdCYgdGMgKQorICAgIHsKKyAgICAgICAgdGVzdF9yZXN1bHRzIGNvbnN0JiB0ciA9IHJlc3VsdHNfY29sbGVjdG9yLnJlc3VsdHMoIHRjLnBfaWQgKTsKKyAgICAgICAgbV90ciArPSB0cjsKKworICAgICAgICBpZiggdHIucGFzc2VkKCkgKQorICAgICAgICAgICAgbV90ci5wX3Rlc3RfY2FzZXNfcGFzc2VkLnZhbHVlKys7CisgICAgICAgIGVsc2UgaWYoIHRyLnBfc2tpcHBlZCApCisgICAgICAgICAgICBtX3RyLnBfdGVzdF9jYXNlc19za2lwcGVkLnZhbHVlKys7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYoIHRyLnBfYWJvcnRlZCApCisgICAgICAgICAgICAgICAgbV90ci5wX3Rlc3RfY2FzZXNfYWJvcnRlZC52YWx1ZSsrOworICAgICAgICAgICAgbV90ci5wX3Rlc3RfY2FzZXNfZmFpbGVkLnZhbHVlKys7CisgICAgICAgIH0KKyAgICB9CisgICAgYm9vbCAgICB0ZXN0X3N1aXRlX3N0YXJ0KCB0ZXN0X3N1aXRlIGNvbnN0JiB0cyApCisgICAgeworICAgICAgICBpZiggbV90cy5wX2lkID09IHRzLnBfaWQgKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV90ciArPSByZXN1bHRzX2NvbGxlY3Rvci5yZXN1bHRzKCB0cy5wX2lkICk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgdGVzdF9yZXN1bHRzJiAgICAgICBtX3RyOworICAgIHRlc3RfdW5pdCBjb25zdCYgICAgbV90czsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Jlc3VsdHNfY29sbGVjdG9yX3Q6OnRlc3RfdW5pdF9maW5pc2goIHRlc3RfdW5pdCBjb25zdCYgdHUsIHVuc2lnbmVkIGxvbmcgKQoreworICAgIGlmKCB0dS5wX3R5cGUgPT0gdHV0X3N1aXRlICkgeworICAgICAgICByZXN1bHRzX2NvbGxlY3RfaGVscGVyIGNoKCBzX3JjX2ltcGwoKS5tX3Jlc3VsdHNfc3RvcmVbdHUucF9pZF0sIHR1ICk7CisKKyAgICAgICAgdHJhdmVyc2VfdGVzdF90cmVlKCB0dSwgY2ggKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHRlc3RfcmVzdWx0cyBjb25zdCYgdHIgPSBzX3JjX2ltcGwoKS5tX3Jlc3VsdHNfc3RvcmVbdHUucF9pZF07CisgICAgICAgIAorICAgICAgICBib29sIG51bV9mYWlsdXJlc19tYXRjaCA9IHRyLnBfYWJvcnRlZCB8fCB0ci5wX2Fzc2VydGlvbnNfZmFpbGVkID49IHRyLnBfZXhwZWN0ZWRfZmFpbHVyZXM7CisgICAgICAgIGlmKCAhbnVtX2ZhaWx1cmVzX21hdGNoICkKKyAgICAgICAgICAgIEJPT1NUX1RFU1RfTUVTU0FHRSggIlRlc3QgY2FzZSAiIDw8IHR1LnBfbmFtZSA8PCAiIGhhcyBmZXdlciBmYWlsdXJlcyB0aGFuIGV4cGVjdGVkIiApOworCisgICAgICAgIGJvb2wgY2hlY2tfYW55X2Fzc2VydGlvbnMgPSB0ci5wX2Fib3J0ZWQgfHwgKHRyLnBfYXNzZXJ0aW9uc19mYWlsZWQgIT0gMCkgfHwgKHRyLnBfYXNzZXJ0aW9uc19wYXNzZWQgIT0gMCk7CisgICAgICAgIGlmKCAhY2hlY2tfYW55X2Fzc2VydGlvbnMgKQorICAgICAgICAgICAgQk9PU1RfVEVTVF9NRVNTQUdFKCAiVGVzdCBjYXNlICIgPDwgdHUucF9uYW1lIDw8ICIgZGlkIG5vdCBjaGVjayBhbnkgYXNzZXJ0aW9ucyIgKTsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Jlc3VsdHNfY29sbGVjdG9yX3Q6OnRlc3RfdW5pdF9za2lwcGVkKCB0ZXN0X3VuaXQgY29uc3QmIHR1ICkKK3sKKyAgICBpZiggdHUucF90eXBlID09IHR1dF9zdWl0ZSApIHsKKyAgICAgICAgdGVzdF9jYXNlX2NvdW50ZXIgdGNjOworICAgICAgICB0cmF2ZXJzZV90ZXN0X3RyZWUoIHR1LCB0Y2MgKTsKKworICAgICAgICB0ZXN0X3Jlc3VsdHMmIHRyID0gc19yY19pbXBsKCkubV9yZXN1bHRzX3N0b3JlW3R1LnBfaWRdOworCisgICAgICAgIHRyLmNsZWFyKCk7CisgICAgCisgICAgICAgIHRyLnBfc2tpcHBlZC52YWx1ZSAgICAgICAgICAgICAgPSB0cnVlOworICAgICAgICB0ci5wX3Rlc3RfY2FzZXNfc2tpcHBlZC52YWx1ZSAgID0gdGNjLnBfY291bnQ7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCityZXN1bHRzX2NvbGxlY3Rvcl90Ojphc3NlcnRpb25fcmVzdWx0KCBib29sIHBhc3NlZCApCit7CisgICAgdGVzdF9yZXN1bHRzJiB0ciA9IHNfcmNfaW1wbCgpLm1fcmVzdWx0c19zdG9yZVtmcmFtZXdvcms6OmN1cnJlbnRfdGVzdF9jYXNlKCkucF9pZF07CisKKyAgICBpZiggcGFzc2VkICkKKyAgICAgICAgdHIucF9hc3NlcnRpb25zX3Bhc3NlZC52YWx1ZSsrOworICAgIGVsc2UKKyAgICAgICAgdHIucF9hc3NlcnRpb25zX2ZhaWxlZC52YWx1ZSsrOworCisgICAgaWYoIHRyLnBfYXNzZXJ0aW9uc19mYWlsZWQgPT0gMSApCisgICAgICAgIGZpcnN0X2ZhaWxlZF9hc3NlcnRpb24oKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorcmVzdWx0c19jb2xsZWN0b3JfdDo6ZXhjZXB0aW9uX2NhdWdodCggZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgKQoreworICAgIHRlc3RfcmVzdWx0cyYgdHIgPSBzX3JjX2ltcGwoKS5tX3Jlc3VsdHNfc3RvcmVbZnJhbWV3b3JrOjpjdXJyZW50X3Rlc3RfY2FzZSgpLnBfaWRdOworCisgICAgdHIucF9hc3NlcnRpb25zX2ZhaWxlZC52YWx1ZSsrOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCityZXN1bHRzX2NvbGxlY3Rvcl90Ojp0ZXN0X3VuaXRfYWJvcnRlZCggdGVzdF91bml0IGNvbnN0JiB0dSApCit7CisgICAgc19yY19pbXBsKCkubV9yZXN1bHRzX3N0b3JlW3R1LnBfaWRdLnBfYWJvcnRlZC52YWx1ZSA9IHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3Rlc3RfcmVzdWx0cyBjb25zdCYKK3Jlc3VsdHNfY29sbGVjdG9yX3Q6OnJlc3VsdHMoIHRlc3RfdW5pdF9pZCBpZCApIGNvbnN0Cit7CisgICAgcmV0dXJuIHNfcmNfaW1wbCgpLm1fcmVzdWx0c19zdG9yZVtpZF07Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfUkVTVUxUU19DT0xMRUNUT1JfSVBQXzAyMTEwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvcmVzdWx0c19yZXBvcnRlci5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC9yZXN1bHRzX3JlcG9ydGVyLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDA5YTNkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvcmVzdWx0c19yZXBvcnRlci5pcHAKQEAgLTAsMCArMSwyMDIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiByZXN1bHQgcmVwb3J0aW5nIGZhY2lsdGllcworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9SRVNVTFRTX1JFUE9SVEVSX0lQUF8wMjAxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9SRVNVTFRTX1JFUE9SVEVSX0lQUF8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9yZXN1bHRzX2NvbGxlY3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3Qvb3V0cHV0L3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3Qvb3V0cHV0L3htbF9yZXBvcnRfZm9ybWF0dGVyLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3VuaXRfdGVzdF9wYXJhbWV0ZXJzLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9zY29wZWRfcHRyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pby9pb3Nfc3RhdGUuaHBwPgordHlwZWRlZiA6Om5kbmJvb3N0Ojppbzo6aW9zX2Jhc2VfYWxsX3NhdmVyIGlvX3NhdmVyX3R5cGU7CisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworbmFtZXNwYWNlIHJlc3VsdHNfcmVwb3J0ZXIgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgIHJlc3VsdCByZXBvcnRlciBpbXBsZW1lbnRhdGlvbiAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSB7CisKK3N0cnVjdCByZXN1bHRzX3JlcG9ydGVyX2ltcGwgOiB0ZXN0X3RyZWVfdmlzaXRvciB7CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICByZXN1bHRzX3JlcG9ydGVyX2ltcGwoKQorICAgIDogbV9vdXRwdXQoIHJ1bnRpbWVfY29uZmlnOjpyZXBvcnRfc2luaygpICkKKyAgICAsIG1fc3RyZWFtX3N0YXRlX3NhdmVyKCBuZXcgaW9fc2F2ZXJfdHlwZSggKm1fb3V0cHV0ICkgKQorICAgICwgbV9yZXBvcnRfbGV2ZWwoIENPTkZJUk1BVElPTl9SRVBPUlQgKQorICAgICwgbV9mb3JtYXR0ZXIoIG5ldyBvdXRwdXQ6OnBsYWluX3JlcG9ydF9mb3JtYXR0ZXIgKQorICAgIHt9CisKKyAgICAvLyB0ZXN0IHRyZWUgdmlzaXRvciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24KKyAgICB2b2lkICAgIHZpc2l0KCB0ZXN0X2Nhc2UgY29uc3QmIHRjICkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLT50ZXN0X3VuaXRfcmVwb3J0X3N0YXJ0KCB0YywgKm1fb3V0cHV0ICk7CisgICAgICAgIG1fZm9ybWF0dGVyLT50ZXN0X3VuaXRfcmVwb3J0X2ZpbmlzaCggdGMsICptX291dHB1dCApOworICAgIH0KKyAgICBib29sICAgIHRlc3Rfc3VpdGVfc3RhcnQoIHRlc3Rfc3VpdGUgY29uc3QmIHRzICkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLT50ZXN0X3VuaXRfcmVwb3J0X3N0YXJ0KCB0cywgKm1fb3V0cHV0ICk7CisKKyAgICAgICAgaWYoIG1fcmVwb3J0X2xldmVsID09IERFVEFJTEVEX1JFUE9SVCAmJiAhcmVzdWx0c19jb2xsZWN0b3IucmVzdWx0cyggdHMucF9pZCApLnBfc2tpcHBlZCApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBtX2Zvcm1hdHRlci0+dGVzdF91bml0X3JlcG9ydF9maW5pc2goIHRzLCAqbV9vdXRwdXQgKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICB2b2lkICAgIHRlc3Rfc3VpdGVfZmluaXNoKCB0ZXN0X3N1aXRlIGNvbnN0JiB0cyApCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci0+dGVzdF91bml0X3JlcG9ydF9maW5pc2goIHRzLCAqbV9vdXRwdXQgKTsKKyAgICB9CisKKyAgICB0eXBlZGVmIHNjb3BlZF9wdHI8aW9fc2F2ZXJfdHlwZT4gc2F2ZXJfcHRyOworCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgc3RkOjpvc3RyZWFtKiAgICAgICBtX291dHB1dDsKKyAgICBzYXZlcl9wdHIgICAgICAgICAgIG1fc3RyZWFtX3N0YXRlX3NhdmVyOworICAgIHJlcG9ydF9sZXZlbCAgICAgICAgbV9yZXBvcnRfbGV2ZWw7CisgICAgc2NvcGVkX3B0cjxmb3JtYXQ+ICBtX2Zvcm1hdHRlcjsKK307CisKK3Jlc3VsdHNfcmVwb3J0ZXJfaW1wbCYgc19ycl9pbXBsKCkgeyBzdGF0aWMgcmVzdWx0c19yZXBvcnRlcl9pbXBsIHRoZV9pbnN0OyByZXR1cm4gdGhlX2luc3Q7IH0KKworfSAvLyBsb2NhbCBuYW1lc3BhY2UKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICByZXBvcnQgY29uZmlndXJhdGlvbiAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkCitzZXRfbGV2ZWwoIHJlcG9ydF9sZXZlbCBsICkKK3sKKyAgICBpZiggbCAhPSBJTlZfUkVQT1JUX0xFVkVMICkKKyAgICAgICAgc19ycl9pbXBsKCkubV9yZXBvcnRfbGV2ZWwgPSBsOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitzZXRfc3RyZWFtKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIHNfcnJfaW1wbCgpLm1fb3V0cHV0ID0gJm9zdHI7CisgICAgc19ycl9pbXBsKCkubV9zdHJlYW1fc3RhdGVfc2F2ZXIucmVzZXQoIG5ldyBpb19zYXZlcl90eXBlKCBvc3RyICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RkOjpvc3RyZWFtJgorZ2V0X3N0cmVhbSgpCit7CisgICAgcmV0dXJuICpzX3JyX2ltcGwoKS5tX291dHB1dDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorc2V0X2Zvcm1hdCggb3V0cHV0X2Zvcm1hdCByZiApCit7CisgICAgc3dpdGNoKCByZiApIHsKKyAgICBjYXNlIENMRjoKKyAgICAgICAgc2V0X2Zvcm1hdCggbmV3IG91dHB1dDo6cGxhaW5fcmVwb3J0X2Zvcm1hdHRlciApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFhNTDoKKyAgICAgICAgc2V0X2Zvcm1hdCggbmV3IG91dHB1dDo6eG1sX3JlcG9ydF9mb3JtYXR0ZXIgKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitzZXRfZm9ybWF0KCByZXN1bHRzX3JlcG9ydGVyOjpmb3JtYXQqIGYgKQoreworICAgIGlmKCBmICkKKyAgICAgICAgc19ycl9pbXBsKCkubV9mb3JtYXR0ZXIucmVzZXQoIGYgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgcmVwb3J0IGluaXRpYXRpb24gICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkCittYWtlX3JlcG9ydCggcmVwb3J0X2xldmVsIGwsIHRlc3RfdW5pdF9pZCBpZCApCit7CisgICAgaWYoIGwgPT0gSU5WX1JFUE9SVF9MRVZFTCApCisgICAgICAgIGwgPSBzX3JyX2ltcGwoKS5tX3JlcG9ydF9sZXZlbDsKKworICAgIGlmKCBsID09IE5PX1JFUE9SVCApCisgICAgICAgIHJldHVybjsKKworICAgIGlmKCBpZCA9PSBJTlZfVEVTVF9VTklUX0lEICkKKyAgICAgICAgaWQgPSBmcmFtZXdvcms6Om1hc3Rlcl90ZXN0X3N1aXRlKCkucF9pZDsKKworICAgIHNfcnJfaW1wbCgpLm1fc3RyZWFtX3N0YXRlX3NhdmVyLT5yZXN0b3JlKCk7CisKKyAgICByZXBvcnRfbGV2ZWwgYmt1cCA9IHNfcnJfaW1wbCgpLm1fcmVwb3J0X2xldmVsOworICAgIHNfcnJfaW1wbCgpLm1fcmVwb3J0X2xldmVsID0gbDsKKworICAgIHNfcnJfaW1wbCgpLm1fZm9ybWF0dGVyLT5yZXN1bHRzX3JlcG9ydF9zdGFydCggKnNfcnJfaW1wbCgpLm1fb3V0cHV0ICk7CisKKyAgICBzd2l0Y2goIGwgKSB7CisgICAgY2FzZSBDT05GSVJNQVRJT05fUkVQT1JUOgorICAgICAgICBzX3JyX2ltcGwoKS5tX2Zvcm1hdHRlci0+ZG9fY29uZmlybWF0aW9uX3JlcG9ydCggZnJhbWV3b3JrOjpnZXQ8dGVzdF91bml0PiggaWQgKSwgKnNfcnJfaW1wbCgpLm1fb3V0cHV0ICk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU0hPUlRfUkVQT1JUOgorICAgIGNhc2UgREVUQUlMRURfUkVQT1JUOgorICAgICAgICB0cmF2ZXJzZV90ZXN0X3RyZWUoIGlkLCBzX3JyX2ltcGwoKSApOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzX3JyX2ltcGwoKS5tX2Zvcm1hdHRlci0+cmVzdWx0c19yZXBvcnRfZmluaXNoKCAqc19ycl9pbXBsKCkubV9vdXRwdXQgKTsKKyAgICBzX3JyX2ltcGwoKS5tX3JlcG9ydF9sZXZlbCA9IGJrdXA7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHJlc3VsdHNfcmVwb3J0ZXIKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9SRVNVTFRTX1JFUE9SVEVSX0lQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3Rlc3RfbWFpbi5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC90ZXN0X21haW4uaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5OTFmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC90ZXN0X21haW4uaXBwCkBAIC0wLDAgKzEsNjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICAoQykgQ29weXJpZ2h0IEJlbWFuIERhd2VzIDE5OTUtMjAwMS4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW1wbGVtZW50cyBtYWluIGZ1bmN0aW9uIGZvciBUZXN0IEV4ZWN1dGlvbiBNb25pdG9yLgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9URVNUX01BSU5fSVBQXzAxMjIwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1RFU1RfTUFJTl9JUFBfMDEyMjA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9zdWl0ZS5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY3N0ZGxpYi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2V4dGVybiBpbnQgdGVzdF9tYWluKCBpbnQgYXJnYywgY2hhciogYXJndltdICk7ICAgIC8vIHByb3RvdHlwZSBmb3IgdXNlcidzIHRlc3RfbWFpbigpCisKK3N0cnVjdCB0ZXN0X21haW5fY2FsbGVyIHsKKyAgICB0ZXN0X21haW5fY2FsbGVyKCBpbnQgYXJnYywgY2hhcioqIGFyZ3YgKSA6IG1fYXJnYyggYXJnYyApLCBtX2FyZ3YoIGFyZ3YgKSB7fQorICAgIAorICAgIHZvaWQgb3BlcmF0b3IoKSgpIHsKKyAgICAgICAgaW50IHRlc3RfbWFpbl9yZXN1bHQgPSB0ZXN0X21haW4oIG1fYXJnYywgbV9hcmd2ICk7CisKKyAgICAgICAgLy8gdHJhbnNsYXRlIGEgdGVzdF9tYWluIG5vbi1zdWNjZXNzIHJldHVybiBpbnRvIGEgdGVzdCBlcnJvcgorICAgICAgICBCT09TVF9DSEVDSyggdGVzdF9tYWluX3Jlc3VsdCA9PSAwIHx8IHRlc3RfbWFpbl9yZXN1bHQgPT0gbmRuYm9vc3Q6OmV4aXRfc3VjY2VzcyApOworICAgIH0KKyAgCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycyAgICAKKyAgICBpbnQgICAgICBtX2FyZ2M7CisgICAgY2hhcioqICAgbV9hcmd2OworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgIHRlc3QgbWFpbiAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCis6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGUqCitpbml0X3VuaXRfdGVzdF9zdWl0ZSggaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgOjpuZG5ib29zdDo6dW5pdF90ZXN0OworICAgIAorICAgIGZyYW1ld29yazo6bWFzdGVyX3Rlc3Rfc3VpdGUoKS5wX25hbWUudmFsdWUgPSAiVGVzdCBQcm9ncmFtIjsKKyAgICAKKyAgICBmcmFtZXdvcms6Om1hc3Rlcl90ZXN0X3N1aXRlKCkuYWRkKCBCT09TVF9URVNUX0NBU0UoIHRlc3RfbWFpbl9jYWxsZXIoIGFyZ2MsIGFyZ3YgKSApICk7CisgICAgCisgICAgcmV0dXJuIDA7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9URVNUX01BSU5fSVBQXzAxMjIwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdGVzdF90b29scy5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC90ZXN0X3Rvb2xzLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDdlZjgxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdGVzdF90b29scy5pcHAKQEAgLTAsMCArMSw2MjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzdXBwbGllcyBvZmZsaW5lIGltcGxlbWVudGF0aW9uIGZvciB0aGUgVGVzdCBUb29scworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9URVNUX1RPT0xTX0lQUF8wMTIyMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9URVNUX1RPT0xTX0lQUF8wMTIyMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdGVzdF90b29scy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L291dHB1dF90ZXN0X3N0cmVhbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZXhlY3V0aW9uX21vbml0b3IuaHBwPiAvLyBleGVjdXRpb25fYWJvcnRlZAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlX2ltcGwuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGZzdHJlYW0+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVkZSA8Y2N0eXBlPgorI2luY2x1ZGUgPGN3Y2hhcj4KKyNpbmNsdWRlIDxzdGRleGNlcHQ+CisjaW5jbHVkZSA8aW9zPgorCisvLyAhISBzaG91bGQgd2UgdXNlICNpbmNsdWRlIDxjc3RkYXJnPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjIGlmZGVmIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCituYW1lc3BhY2Ugc3RkIHsgdXNpbmcgOjpzdHJjbXA7IHVzaW5nIDo6c3RybGVuOyB1c2luZyA6OmlzcHJpbnQ7IH0KKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1dDSEFSICkKK25hbWVzcGFjZSBzdGQgeyB1c2luZyA6Ondjc2NtcDsgfQorI2VuZGlmCisjIGVuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB0ZXN0X3Rvb2xzIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIHByaW50X2xvZ192YWx1ZSAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkCitwcmludF9sb2dfdmFsdWU8Y2hhcj46Om9wZXJhdG9yKCkoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgY2hhciB0ICkKK3sKKyAgICBpZiggKHN0ZDo6aXNwcmludCkoIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHQpICkgKQorICAgICAgICBvc3RyIDw8ICdcJycgPDwgdCA8PCAnXCcnOworICAgIGVsc2UKKyAgICAgICAgb3N0ciA8PCBzdGQ6OmhleAorI2lmIEJPT1NUX1RFU1RfVVNFX1NURF9MT0NBTEUKKyAgICAgICAgPDwgc3RkOjpzaG93YmFzZQorI2Vsc2UKKyAgICAgICAgPDwgIjB4IgorI2VuZGlmCisgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4odCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3ByaW50X2xvZ192YWx1ZTx1bnNpZ25lZCBjaGFyPjo6b3BlcmF0b3IoKSggc3RkOjpvc3RyZWFtJiBvc3RyLCB1bnNpZ25lZCBjaGFyIHQgKQoreworICAgIG9zdHIgPDwgc3RkOjpoZXgKKyAgICAgICAgLy8gc2hvd2Jhc2UgaXMgb25seSBhdmFpbGFibGUgZm9yIG5ldyBzdHlsZSBzdHJlYW1zOgorI2lmIEJPT1NUX1RFU1RfVVNFX1NURF9MT0NBTEUKKyAgICAgICAgPDwgc3RkOjpzaG93YmFzZQorI2Vsc2UKKyAgICAgICAgPDwgIjB4IgorI2VuZGlmCisgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4odCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3ByaW50X2xvZ192YWx1ZTxjaGFyIGNvbnN0Kj46Om9wZXJhdG9yKCkoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgY2hhciBjb25zdCogdCApCit7CisgICAgb3N0ciA8PCAoIHQgPyB0IDogIm51bGwgc3RyaW5nIiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCitwcmludF9sb2dfdmFsdWU8d2NoYXJfdCBjb25zdCo+OjpvcGVyYXRvcigpKCBzdGQ6Om9zdHJlYW0mIG9zdHIsIHdjaGFyX3QgY29uc3QqIHQgKQoreworICAgIG9zdHIgPDwgKCB0ID8gdCA6IEwibnVsbCBzdHJpbmciICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSB0dF9kZXRhaWwgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICBUT09MIEJPWCBJbXBsZW1lbnRhdGlvbiAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3VzaW5nIDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6bGF6eV9vc3RyZWFtOworCitib29sCitjaGVja19pbXBsKCBwcmVkaWNhdGVfcmVzdWx0IGNvbnN0JiBwciwgbGF6eV9vc3RyZWFtIGNvbnN0JiBjaGVja19kZXNjciwKKyAgICAgICAgICAgIGNvbnN0X3N0cmluZyBmaWxlX25hbWUsIHN0ZDo6c2l6ZV90IGxpbmVfbnVtLAorICAgICAgICAgICAgdG9vbF9sZXZlbCB0bCwgY2hlY2tfdHlwZSBjdCwKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG51bV9vZl9hcmdzLCAuLi4gKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSB1bml0X3Rlc3Q7CisKKyAgICBpZiggIWZyYW1ld29yazo6aXNfaW5pdGlhbGl6ZWQoKSApCisgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciggImNhbid0IHVzZSB0ZXN0aW5nIHRvb2xzIGJlZm9yZSBmcmFtZXdvcmsgaXMgaW5pdGlhbGl6ZWQiICk7CisKKyAgICBpZiggISFwciApCisgICAgICAgIHRsID0gUEFTUzsKKworICAgIGxvZ19sZXZlbCAgICBsbDsKKyAgICBjaGFyIGNvbnN0KiAgcHJlZml4OworICAgIGNoYXIgY29uc3QqICBzdWZmaXg7CisgICAgICAgCisgICAgc3dpdGNoKCB0bCApIHsKKyAgICBjYXNlIFBBU1M6CisgICAgICAgIGxsICAgICAgPSBsb2dfc3VjY2Vzc2Z1bF90ZXN0czsKKyAgICAgICAgcHJlZml4ICA9ICJjaGVjayAiOworICAgICAgICBzdWZmaXggID0gIiBwYXNzZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdBUk46CisgICAgICAgIGxsICAgICAgPSBsb2dfd2FybmluZ3M7CisgICAgICAgIHByZWZpeCAgPSAiY29uZGl0aW9uICI7CisgICAgICAgIHN1ZmZpeCAgPSAiIGlzIG5vdCBzYXRpc2ZpZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENIRUNLOgorICAgICAgICBsbCAgICAgID0gbG9nX2FsbF9lcnJvcnM7CisgICAgICAgIHByZWZpeCAgPSAiY2hlY2sgIjsKKyAgICAgICAgc3VmZml4ICA9ICIgZmFpbGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSRVFVSVJFOgorICAgICAgICBsbCAgICAgID0gbG9nX2ZhdGFsX2Vycm9yczsKKyAgICAgICAgcHJlZml4ICA9ICJjcml0aWNhbCBjaGVjayAiOworICAgICAgICBzdWZmaXggID0gIiBmYWlsZWQiOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzd2l0Y2goIGN0ICkgeworICAgIGNhc2UgQ0hFQ0tfUFJFRDoKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6YmVnaW4oIGZpbGVfbmFtZSwgbGluZV9udW0gKSAKKyAgICAgICAgICAgICAgICAgICAgICA8PCBsbCA8PCBwcmVmaXggPDwgY2hlY2tfZGVzY3IgPDwgc3VmZml4OworICAgICAgICAKKyAgICAgICAgaWYoICFwci5oYXNfZW1wdHlfbWVzc2FnZSgpICkKKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIi4gIiA8PCBwci5tZXNzYWdlKCk7CisgICAgICAgIAorICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjplbmQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENIRUNLX01TRzoKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6YmVnaW4oIGZpbGVfbmFtZSwgbGluZV9udW0gKSA8PCBsbDsKKyAgICAgICAgCisgICAgICAgIGlmKCB0bCA9PSBQQVNTICkKKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgcHJlZml4IDw8ICInIiA8PCBjaGVja19kZXNjciA8PCAiJyIgPDwgc3VmZml4OworICAgICAgICBlbHNlCisgICAgICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IGNoZWNrX2Rlc2NyOworICAgICAgICAKKyAgICAgICAgaWYoICFwci5oYXNfZW1wdHlfbWVzc2FnZSgpICkKKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIi4gIiA8PCBwci5tZXNzYWdlKCk7CisKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6ZW5kKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDSEVDS19FUVVBTDogCisgICAgY2FzZSBDSEVDS19ORTogCisgICAgY2FzZSBDSEVDS19MVDogCisgICAgY2FzZSBDSEVDS19MRTogCisgICAgY2FzZSBDSEVDS19HVDogCisgICAgY2FzZSBDSEVDS19HRTogeworICAgICAgICBzdGF0aWMgY2hhciBjb25zdCogY2hlY2tfc3RyIFtdID0geyAiID09ICIsICIgIT0gIiwgIiA8ICIgLCAiIDw9ICIsICIgPiAiICwgIiA+PSAiIH07CisgICAgICAgIHN0YXRpYyBjaGFyIGNvbnN0KiByZXZlcl9zdHIgW10gPSB7ICIgIT0gIiwgIiA9PSAiLCAiID49ICIsICIgPiAiICwgIiA8PSAiLCAiIDwgIiAgfTsKKworICAgICAgICB2YV9saXN0IGFyZ3M7CisKKyAgICAgICAgdmFfc3RhcnQoIGFyZ3MsIG51bV9vZl9hcmdzICk7CisgICAgICAgIGNoYXIgY29uc3QqICAgICAgICAgYXJnMV9kZXNjciAgPSB2YV9hcmcoIGFyZ3MsIGNoYXIgY29uc3QqICk7CisgICAgICAgIGxhenlfb3N0cmVhbSBjb25zdCogYXJnMV92YWwgICAgPSB2YV9hcmcoIGFyZ3MsIGxhenlfb3N0cmVhbSBjb25zdCogKTsKKyAgICAgICAgY2hhciBjb25zdCogICAgICAgICBhcmcyX2Rlc2NyICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKyAgICAgICAgbGF6eV9vc3RyZWFtIGNvbnN0KiBhcmcyX3ZhbCAgICA9IHZhX2FyZyggYXJncywgbGF6eV9vc3RyZWFtIGNvbnN0KiApOworCisgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgdW5pdF90ZXN0Ojpsb2c6OmJlZ2luKCBmaWxlX25hbWUsIGxpbmVfbnVtICkgCisgICAgICAgICAgICAgICAgICAgICAgPDwgbGwgPDwgcHJlZml4IDw8IGFyZzFfZGVzY3IgPDwgY2hlY2tfc3RyW2N0LUNIRUNLX0VRVUFMXSA8PCBhcmcyX2Rlc2NyIDw8IHN1ZmZpeDsKKworICAgICAgICBpZiggdGwgIT0gUEFTUyApCisgICAgICAgICAgICB1bml0X3Rlc3RfbG9nIDw8ICIgWyIgPDwgKmFyZzFfdmFsIDw8IHJldmVyX3N0cltjdC1DSEVDS19FUVVBTF0gPDwgKmFyZzJfdmFsIDw8ICJdIiA7CisKKyAgICAgICAgdmFfZW5kKCBhcmdzICk7CisgICAgICAgIAorICAgICAgICBpZiggIXByLmhhc19lbXB0eV9tZXNzYWdlKCkgKQorICAgICAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCAiLiAiIDw8IHByLm1lc3NhZ2UoKTsKKworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjplbmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBDSEVDS19DTE9TRToKKyAgICBjYXNlIENIRUNLX0NMT1NFX0ZSQUNUSU9OOiB7CisgICAgICAgIHZhX2xpc3QgYXJnczsKKworICAgICAgICB2YV9zdGFydCggYXJncywgbnVtX29mX2FyZ3MgKTsKKyAgICAgICAgY2hhciBjb25zdCogICAgICAgICBhcmcxX2Rlc2NyICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKyAgICAgICAgbGF6eV9vc3RyZWFtIGNvbnN0KiBhcmcxX3ZhbCAgICA9IHZhX2FyZyggYXJncywgbGF6eV9vc3RyZWFtIGNvbnN0KiApOworICAgICAgICBjaGFyIGNvbnN0KiAgICAgICAgIGFyZzJfZGVzY3IgID0gdmFfYXJnKCBhcmdzLCBjaGFyIGNvbnN0KiApOworICAgICAgICBsYXp5X29zdHJlYW0gY29uc3QqIGFyZzJfdmFsICAgID0gdmFfYXJnKCBhcmdzLCBsYXp5X29zdHJlYW0gY29uc3QqICk7CisgICAgICAgIC8qIHRvbGVyX2Rlc2NyID0gKi8gICAgICAgICAgICAgICB2YV9hcmcoIGFyZ3MsIGNoYXIgY29uc3QqICk7CisgICAgICAgIGxhenlfb3N0cmVhbSBjb25zdCogdG9sZXJfdmFsICAgPSB2YV9hcmcoIGFyZ3MsIGxhenlfb3N0cmVhbSBjb25zdCogKTsKKworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjpiZWdpbiggZmlsZV9uYW1lLCBsaW5lX251bSApIDw8IGxsOworCisgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgImRpZmZlcmVuY2V7IiA8PCBwci5tZXNzYWdlKCkgPDwgKGN0ID09IENIRUNLX0NMT1NFID8gIiUiIDogIiIpCisgICAgICAgICAgICAgICAgICAgICAgPDwgIn0gYmV0d2VlbiAiIDw8IGFyZzFfZGVzY3IgPDwgInsiIDw8ICphcmcxX3ZhbAorICAgICAgICAgICAgICAgICAgICAgIDw8ICJ9IGFuZCAiICAgICAgICAgICAgICAgPDwgYXJnMl9kZXNjciA8PCAieyIgPDwgKmFyZzJfdmFsCisgICAgICAgICAgICAgICAgICAgICAgPDwgKCB0bCA9PSBQQVNTID8gIn0gZG9lc24ndCBleGNlZWQgIiA6ICJ9IGV4Y2VlZHMgIiApCisgICAgICAgICAgICAgICAgICAgICAgPDwgKnRvbGVyX3ZhbDsKKyAgICAgICAgaWYoIGN0ID09IENIRUNLX0NMT1NFICkKKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIiUiOworCisgICAgICAgIHZhX2VuZCggYXJncyApOworICAgICAgICAKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6ZW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIENIRUNLX1NNQUxMOiB7CisgICAgICAgIHZhX2xpc3QgYXJnczsKKworICAgICAgICB2YV9zdGFydCggYXJncywgbnVtX29mX2FyZ3MgKTsKKyAgICAgICAgY2hhciBjb25zdCogICAgICAgICBhcmcxX2Rlc2NyICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKyAgICAgICAgbGF6eV9vc3RyZWFtIGNvbnN0KiBhcmcxX3ZhbCAgICA9IHZhX2FyZyggYXJncywgbGF6eV9vc3RyZWFtIGNvbnN0KiApOworICAgICAgICAvKiB0b2xlcl9kZXNjciA9ICovICAgICAgICAgICAgICAgdmFfYXJnKCBhcmdzLCBjaGFyIGNvbnN0KiApOworICAgICAgICBsYXp5X29zdHJlYW0gY29uc3QqIHRvbGVyX3ZhbCAgID0gdmFfYXJnKCBhcmdzLCBsYXp5X29zdHJlYW0gY29uc3QqICk7CisKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6YmVnaW4oIGZpbGVfbmFtZSwgbGluZV9udW0gKSA8PCBsbDsKKworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8ICJhYnNvbHV0ZSB2YWx1ZSBvZiAiIDw8IGFyZzFfZGVzY3IgPDwgInsiIDw8ICphcmcxX3ZhbCA8PCAifSIgCisgICAgICAgICAgICAgICAgICAgICAgPDwgKCB0bCA9PSBQQVNTID8gIiBkb2Vzbid0IGV4Y2VlZCAiIDogIiBleGNlZWRzICIgKQorICAgICAgICAgICAgICAgICAgICAgIDw8ICp0b2xlcl92YWw7CisKKyAgICAgICAgdmFfZW5kKCBhcmdzICk7CisgICAgICAgIAorICAgICAgICBpZiggIXByLmhhc19lbXB0eV9tZXNzYWdlKCkgKQorICAgICAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCAiLiAiIDw8IHByLm1lc3NhZ2UoKTsKKworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjplbmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBDSEVDS19QUkVEX1dJVEhfQVJHUzogeworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjpiZWdpbiggZmlsZV9uYW1lLCBsaW5lX251bSApIAorICAgICAgICAgICAgICAgICAgICAgIDw8IGxsIDw8IHByZWZpeCA8PCBjaGVja19kZXNjcjsKKworICAgICAgICAvLyBwcmludCBwcmVkaWNhdGUgY2FsbCBkZXNjcmlwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICB2YV9saXN0IGFyZ3M7CisgICAgICAgICAgICB2YV9zdGFydCggYXJncywgbnVtX29mX2FyZ3MgKTsKKworICAgICAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCAiKCAiOworICAgICAgICAgICAgZm9yKCBzdGQ6OnNpemVfdCBpID0gMDsgaSA8IG51bV9vZl9hcmdzOyArK2kgKSB7CisgICAgICAgICAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB2YV9hcmcoIGFyZ3MsIGNoYXIgY29uc3QqICk7CisgICAgICAgICAgICAgICAgdmFfYXJnKCBhcmdzLCBsYXp5X29zdHJlYW0gY29uc3QqICk7IC8vIHNraXAgYXJndW1lbnQgdmFsdWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoIGkgIT0gbnVtX29mX2FyZ3MtMSApCisgICAgICAgICAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIiwgIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIiApIiA8PCBzdWZmaXg7CisgICAgICAgICAgICB2YV9lbmQoIGFyZ3MgKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmKCB0bCAhPSBQQVNTICkgeworICAgICAgICAgICAgdmFfbGlzdCBhcmdzOworICAgICAgICAgICAgdmFfc3RhcnQoIGFyZ3MsIG51bV9vZl9hcmdzICk7CisKKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIiBmb3IgKCAiOworICAgICAgICAgICAgZm9yKCBzdGQ6OnNpemVfdCBpID0gMDsgaSA8IG51bV9vZl9hcmdzOyArK2kgKSB7CisgICAgICAgICAgICAgICAgdmFfYXJnKCBhcmdzLCBjaGFyIGNvbnN0KiApOyAvLyBza2lwIGFyZ3VtZW50IGRlc2NyaXB0aW9uOyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgKnZhX2FyZyggYXJncywgbGF6eV9vc3RyZWFtIGNvbnN0KiApOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKCBpICE9IG51bV9vZl9hcmdzLTEgKQorICAgICAgICAgICAgICAgICAgICB1bml0X3Rlc3RfbG9nIDw8ICIsICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1bml0X3Rlc3RfbG9nIDw8ICIgKSI7CisgICAgICAgICAgICB2YV9lbmQoIGFyZ3MgKTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBpZiggIXByLmhhc19lbXB0eV9tZXNzYWdlKCkgKQorICAgICAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCAiLiAiIDw8IHByLm1lc3NhZ2UoKTsKKworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjplbmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBDSEVDS19FUVVBTF9DT0xMOiB7CisgICAgICAgIHZhX2xpc3QgYXJnczsKKworICAgICAgICB2YV9zdGFydCggYXJncywgbnVtX29mX2FyZ3MgKTsKKyAgICAgICAgY2hhciBjb25zdCogbGVmdF9iZWdpbl9kZXNjciAgICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKyAgICAgICAgY2hhciBjb25zdCogbGVmdF9lbmRfZGVzY3IgICAgICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKyAgICAgICAgY2hhciBjb25zdCogcmlnaHRfYmVnaW5fZGVzY3IgICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKyAgICAgICAgY2hhciBjb25zdCogcmlnaHRfZW5kX2Rlc2NyICAgICA9IHZhX2FyZyggYXJncywgY2hhciBjb25zdCogKTsKKworICAgICAgICB1bml0X3Rlc3RfbG9nIDw8IHVuaXRfdGVzdDo6bG9nOjpiZWdpbiggZmlsZV9uYW1lLCBsaW5lX251bSApIAorICAgICAgICAgICAgICAgICAgICAgIDw8IGxsIDw8IHByZWZpeCAKKyAgICAgICAgICAgICAgICAgICAgICA8PCAieyAiIDw8IGxlZnRfYmVnaW5fZGVzY3IgIDw8ICIsICIgPDwgbGVmdF9lbmRfZGVzY3IgIDw8ICIgfSA9PSB7ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCByaWdodF9iZWdpbl9kZXNjciA8PCAiLCAiIDw8IHJpZ2h0X2VuZF9kZXNjciA8PCAiIH0iCisgICAgICAgICAgICAgICAgICAgICAgPDwgc3VmZml4OworCisgICAgICAgIHZhX2VuZCggYXJncyApOworICAgICAgICAKKyAgICAgICAgaWYoICFwci5oYXNfZW1wdHlfbWVzc2FnZSgpICkKKyAgICAgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgIi4gIiA8PCBwci5tZXNzYWdlKCk7CisKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6ZW5kKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgQ0hFQ0tfQklUV0lTRV9FUVVBTDogeworICAgICAgICB2YV9saXN0IGFyZ3M7CisKKyAgICAgICAgdmFfc3RhcnQoIGFyZ3MsIG51bV9vZl9hcmdzICk7CisgICAgICAgIGNoYXIgY29uc3QqIGxlZnRfZGVzY3IgICAgPSB2YV9hcmcoIGFyZ3MsIGNoYXIgY29uc3QqICk7CisgICAgICAgIGNoYXIgY29uc3QqIHJpZ2h0X2Rlc2NyICAgPSB2YV9hcmcoIGFyZ3MsIGNoYXIgY29uc3QqICk7CisKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCB1bml0X3Rlc3Q6OmxvZzo6YmVnaW4oIGZpbGVfbmFtZSwgbGluZV9udW0gKQorICAgICAgICAgICAgICAgICAgICAgIDw8IGxsIDw8IHByZWZpeCA8PCBsZWZ0X2Rlc2NyICA8PCAiID0uPSAiIDw8IHJpZ2h0X2Rlc2NyIDw8IHN1ZmZpeDsKKworICAgICAgICB2YV9lbmQoIGFyZ3MgKTsKKyAgICAgICAgCisgICAgICAgIGlmKCAhcHIuaGFzX2VtcHR5X21lc3NhZ2UoKSApCisgICAgICAgICAgICB1bml0X3Rlc3RfbG9nIDw8ICIuICIgPDwgcHIubWVzc2FnZSgpOworCisgICAgICAgIHVuaXRfdGVzdF9sb2cgPDwgdW5pdF90ZXN0Ojpsb2c6OmVuZCgpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorCisgICAgc3dpdGNoKCB0bCApIHsKKyAgICBjYXNlIFBBU1M6CisgICAgICAgIGZyYW1ld29yazo6YXNzZXJ0aW9uX3Jlc3VsdCggdHJ1ZSApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgV0FSTjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY2FzZSBDSEVDSzoKKyAgICAgICAgZnJhbWV3b3JrOjphc3NlcnRpb25fcmVzdWx0KCBmYWxzZSApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgIGNhc2UgUkVRVUlSRToKKyAgICAgICAgZnJhbWV3b3JrOjphc3NlcnRpb25fcmVzdWx0KCBmYWxzZSApOworCisgICAgICAgIGZyYW1ld29yazo6dGVzdF91bml0X2Fib3J0ZWQoIGZyYW1ld29yazo6Y3VycmVudF90ZXN0X2Nhc2UoKSApOworCisgICAgICAgIHRocm93IGV4ZWN1dGlvbl9hYm9ydGVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ByZWRpY2F0ZV9yZXN1bHQKK2VxdWFsX2ltcGwoIGNoYXIgY29uc3QqIGxlZnQsIGNoYXIgY29uc3QqIHJpZ2h0ICkKK3sKKyAgICByZXR1cm4gKGxlZnQgJiYgcmlnaHQpID8gc3RkOjpzdHJjbXAoIGxlZnQsIHJpZ2h0ICkgPT0gMCA6IChsZWZ0ID09IHJpZ2h0KTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DV0NIQVIgKQorCitwcmVkaWNhdGVfcmVzdWx0CitlcXVhbF9pbXBsKCB3Y2hhcl90IGNvbnN0KiBsZWZ0LCB3Y2hhcl90IGNvbnN0KiByaWdodCApCit7CisgICAgcmV0dXJuIChsZWZ0ICYmIHJpZ2h0KSA/IHN0ZDo6d2NzY21wKCBsZWZ0LCByaWdodCApID09IDAgOiAobGVmdCA9PSByaWdodCk7Cit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfTk9fQ1dDSEFSICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworYm9vbAoraXNfZGVmaW5lZF9pbXBsKCBjb25zdF9zdHJpbmcgc3ltYm9sX25hbWUsIGNvbnN0X3N0cmluZyBzeW1ib2xfdmFsdWUgKQoreworICAgIHN5bWJvbF92YWx1ZS50cmltX2xlZnQoIDIgKTsKKyAgICByZXR1cm4gc3ltYm9sX25hbWUgIT0gc3ltYm9sX3ZhbHVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB0dF9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgb3V0cHV0X3Rlc3Rfc3RyZWFtICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdHJ1Y3Qgb3V0cHV0X3Rlc3Rfc3RyZWFtOjpJbXBsCit7CisgICAgc3RkOjpmc3RyZWFtICAgIG1fcGF0dGVybjsKKyAgICBib29sICAgICAgICAgICAgbV9tYXRjaF9vcl9zYXZlOworICAgIGJvb2wgICAgICAgICAgICBtX3RleHRfb3JfYmluYXJ5OworICAgIHN0ZDo6c3RyaW5nICAgICBtX3N5bmNlZF9zdHJpbmc7CisKKyAgICBjaGFyICAgICAgICAgICAgZ2V0X2NoYXIoKQorICAgIHsKKyAgICAgICAgY2hhciByZXM7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIG1fcGF0dGVybi5nZXQoIHJlcyApOworICAgICAgICB9IHdoaWxlKCBtX3RleHRfb3JfYmluYXJ5ICYmIHJlcyA9PSAnXHInICYmICFtX3BhdHRlcm4uZmFpbCgpICYmICFtX3BhdHRlcm4uZW9mKCkgKTsKKworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIHZvaWQgICAgICAgICAgICBjaGVja19hbmRfZmlsbCggcHJlZGljYXRlX3Jlc3VsdCYgcmVzICkKKyAgICB7CisgICAgICAgIGlmKCAhcmVzLnBfcHJlZGljYXRlX3ZhbHVlICkKKyAgICAgICAgICAgIHJlcy5tZXNzYWdlKCkgPDwgIk91dHB1dCBjb250ZW50OiBcIiIgPDwgbV9zeW5jZWRfc3RyaW5nIDw8ICdcIic7CisgICAgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworb3V0cHV0X3Rlc3Rfc3RyZWFtOjpvdXRwdXRfdGVzdF9zdHJlYW0oIGNvbnN0X3N0cmluZyBwYXR0ZXJuX2ZpbGVfbmFtZSwgYm9vbCBtYXRjaF9vcl9zYXZlLCBib29sIHRleHRfb3JfYmluYXJ5ICkKKzogbV9waW1wbCggbmV3IEltcGwgKQoreworICAgIGlmKCAhcGF0dGVybl9maWxlX25hbWUuaXNfZW1wdHkoKSApIHsKKyAgICAgICAgc3RkOjppb3M6Om9wZW5tb2RlIG0gPSBtYXRjaF9vcl9zYXZlID8gc3RkOjppb3M6OmluIDogc3RkOjppb3M6Om91dDsKKyAgICAgICAgaWYoICF0ZXh0X29yX2JpbmFyeSApCisgICAgICAgICAgICBtIHw9IHN0ZDo6aW9zOjpiaW5hcnk7CisKKyAgICAgICAgbV9waW1wbC0+bV9wYXR0ZXJuLm9wZW4oIHBhdHRlcm5fZmlsZV9uYW1lLmJlZ2luKCksIG0gKTsKKworICAgICAgICBCT09TVF9XQVJOX01FU1NBR0UoIG1fcGltcGwtPm1fcGF0dGVybi5pc19vcGVuKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYW4ndCBvcGVuIHBhdHRlcm4gZmlsZSAiIDw8IHBhdHRlcm5fZmlsZV9uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgZm9yICIgPDwgKG1hdGNoX29yX3NhdmUgPyAicmVhZGluZyIgOiAid3JpdGluZyIpICk7CisgICAgfQorCisgICAgbV9waW1wbC0+bV9tYXRjaF9vcl9zYXZlICAgID0gbWF0Y2hfb3Jfc2F2ZTsKKyAgICBtX3BpbXBsLT5tX3RleHRfb3JfYmluYXJ5ICAgPSB0ZXh0X29yX2JpbmFyeTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworb3V0cHV0X3Rlc3Rfc3RyZWFtOjp+b3V0cHV0X3Rlc3Rfc3RyZWFtKCkKK3sKKyAgICBkZWxldGUgbV9waW1wbDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworcHJlZGljYXRlX3Jlc3VsdAorb3V0cHV0X3Rlc3Rfc3RyZWFtOjppc19lbXB0eSggYm9vbCBmbHVzaF9zdHJlYW0gKQoreworICAgIHN5bmMoKTsKKworICAgIHJlc3VsdF90eXBlIHJlcyggbV9waW1wbC0+bV9zeW5jZWRfc3RyaW5nLmVtcHR5KCkgKTsKKworICAgIG1fcGltcGwtPmNoZWNrX2FuZF9maWxsKCByZXMgKTsKKworICAgIGlmKCBmbHVzaF9zdHJlYW0gKQorICAgICAgICBmbHVzaCgpOworCisgICAgcmV0dXJuIHJlczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworcHJlZGljYXRlX3Jlc3VsdAorb3V0cHV0X3Rlc3Rfc3RyZWFtOjpjaGVja19sZW5ndGgoIHN0ZDo6c2l6ZV90IGxlbmd0aF8sIGJvb2wgZmx1c2hfc3RyZWFtICkKK3sKKyAgICBzeW5jKCk7CisKKyAgICByZXN1bHRfdHlwZSByZXMoIG1fcGltcGwtPm1fc3luY2VkX3N0cmluZy5sZW5ndGgoKSA9PSBsZW5ndGhfICk7CisKKyAgICBtX3BpbXBsLT5jaGVja19hbmRfZmlsbCggcmVzICk7CisKKyAgICBpZiggZmx1c2hfc3RyZWFtICkKKyAgICAgICAgZmx1c2goKTsKKworICAgIHJldHVybiByZXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ByZWRpY2F0ZV9yZXN1bHQKK291dHB1dF90ZXN0X3N0cmVhbTo6aXNfZXF1YWwoIGNvbnN0X3N0cmluZyBhcmcsIGJvb2wgZmx1c2hfc3RyZWFtICkKK3sKKyAgICBzeW5jKCk7CisKKyAgICByZXN1bHRfdHlwZSByZXMoIGNvbnN0X3N0cmluZyggbV9waW1wbC0+bV9zeW5jZWRfc3RyaW5nICkgPT0gYXJnICk7CisKKyAgICBtX3BpbXBsLT5jaGVja19hbmRfZmlsbCggcmVzICk7CisKKyAgICBpZiggZmx1c2hfc3RyZWFtICkKKyAgICAgICAgZmx1c2goKTsKKworICAgIHJldHVybiByZXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ByZWRpY2F0ZV9yZXN1bHQKK291dHB1dF90ZXN0X3N0cmVhbTo6bWF0Y2hfcGF0dGVybiggYm9vbCBmbHVzaF9zdHJlYW0gKQoreworICAgIHN5bmMoKTsKKworICAgIHJlc3VsdF90eXBlIHJlc3VsdCggdHJ1ZSApOworCisgICAgaWYoICFtX3BpbXBsLT5tX3BhdHRlcm4uaXNfb3BlbigpICkgeworICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgcmVzdWx0Lm1lc3NhZ2UoKSA8PCAiUGF0dGVybiBmaWxlIGNhbid0IGJlIG9wZW5lZCEiOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYoIG1fcGltcGwtPm1fbWF0Y2hfb3Jfc2F2ZSApIHsKKyAgICAgICAgICAgIGZvciAoIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgaSA9IDA7IGkgPCBtX3BpbXBsLT5tX3N5bmNlZF9zdHJpbmcubGVuZ3RoKCk7ICsraSApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBtX3BpbXBsLT5nZXRfY2hhcigpOworCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gIW1fcGltcGwtPm1fcGF0dGVybi5mYWlsKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAhbV9waW1wbC0+bV9wYXR0ZXJuLmVvZigpICAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIChtX3BpbXBsLT5tX3N5bmNlZF9zdHJpbmdbaV0gPT0gYyk7CisKKyAgICAgICAgICAgICAgICBpZiggIXJlc3VsdCApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBzdWZmaXhfc2l6ZSAgPSAoc3RkOjptaW4pKCBtX3BpbXBsLT5tX3N5bmNlZF9zdHJpbmcubGVuZ3RoKCkgLSBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnN0cmluZzo6c2l6ZV90eXBlPig1KSApOworCisgICAgICAgICAgICAgICAgICAgIC8vIHRyeSB0byBsb2cgYXJlYSBhcm91bmQgdGhlIG1pc21hdGNoCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5tZXNzYWdlKCkgPDwgIk1pc21hdGNoIGF0IHBvc2l0aW9uICIgPDwgaSA8PCAnXG4nCisgICAgICAgICAgICAgICAgICAgICAgICA8PCAiLi4uIiA8PCBtX3BpbXBsLT5tX3N5bmNlZF9zdHJpbmcuc3Vic3RyKCBpLCBzdWZmaXhfc2l6ZSApIDw8ICIuLi4iIDw8ICdcbicKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIuLi4iIDw8IGM7CisKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBjb3VudGVyID0gc3VmZml4X3NpemU7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlKCAtLWNvdW50ZXIgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBtX3BpbXBsLT5nZXRfY2hhcigpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiggbV9waW1wbC0+bV9wYXR0ZXJuLmZhaWwoKSB8fCBtX3BpbXBsLT5tX3BhdHRlcm4uZW9mKCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQubWVzc2FnZSgpIDw8IGM7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXN1bHQubWVzc2FnZSgpIDw8ICIuLi4iOworCisgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgcmVzdCBvZiB0aGUgYnl0ZXMuIE1heSBoZWxwIGZvciBmdXJ0aGVyIG1hdGNoaW5nCisgICAgICAgICAgICAgICAgICAgIG1fcGltcGwtPm1fcGF0dGVybi5pZ25vcmUoIAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c3RkOjpzdHJlYW1zaXplPiggbV9waW1wbC0+bV9zeW5jZWRfc3RyaW5nLmxlbmd0aCgpIC0gaSAtIHN1ZmZpeF9zaXplKSApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3BpbXBsLT5tX3BhdHRlcm4ud3JpdGUoIG1fcGltcGwtPm1fc3luY2VkX3N0cmluZy5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnN0cmVhbXNpemU+KCBtX3BpbXBsLT5tX3N5bmNlZF9zdHJpbmcubGVuZ3RoKCkgKSApOworICAgICAgICAgICAgbV9waW1wbC0+bV9wYXR0ZXJuLmZsdXNoKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiggZmx1c2hfc3RyZWFtICkKKyAgICAgICAgZmx1c2goKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK291dHB1dF90ZXN0X3N0cmVhbTo6Zmx1c2goKQoreworICAgIG1fcGltcGwtPm1fc3luY2VkX3N0cmluZy5lcmFzZSgpOworCisjaWZuZGVmIEJPT1NUX05PX1NUUklOR1NUUkVBTQorICAgIHN0ciggc3RkOjpzdHJpbmcoKSApOworI2Vsc2UKKyAgICBzZWVrcCggMCwgc3RkOjppb3M6OmJlZyApOworI2VuZGlmCit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0ZDo6c2l6ZV90CitvdXRwdXRfdGVzdF9zdHJlYW06Omxlbmd0aCgpCit7CisgICAgc3luYygpOworCisgICAgcmV0dXJuIG1fcGltcGwtPm1fc3luY2VkX3N0cmluZy5sZW5ndGgoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAorb3V0cHV0X3Rlc3Rfc3RyZWFtOjpzeW5jKCkKK3sKKyNpZmRlZiBCT09TVF9OT19TVFJJTkdTVFJFQU0KKyAgICBtX3BpbXBsLT5tX3N5bmNlZF9zdHJpbmcuYXNzaWduKCBzdHIoKSwgcGNvdW50KCkgKTsKKyAgICBmcmVlemUoIGZhbHNlICk7CisjZWxzZQorICAgIG1fcGltcGwtPm1fc3luY2VkX3N0cmluZyA9IHN0cigpOworI2VuZGlmCit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHRlc3RfdG9vbHMKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX1RFU1RfVE9PTFNfSVBQXzAxMjIwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X2xvZy5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfbG9nLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2QwODllCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X2xvZy5pcHAKQEAgLTAsMCArMSw0NDQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBpbXBsZW1ldHMgVW5pdCBUZXN0IExvZworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0lQUF8wMTIyMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0lQUF8wMTIyMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nX2Zvcm1hdHRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9leGVjdXRpb25fbW9uaXRvci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC91bml0X3Rlc3RfcGFyYW1ldGVycy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvY29tcGFyZS5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L291dHB1dC9jb21waWxlcl9sb2dfZm9ybWF0dGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L291dHB1dC94bWxfbG9nX2Zvcm1hdHRlci5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3Qvc2NvcGVkX3B0ci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaW8vaW9zX3N0YXRlLmhwcD4KK3R5cGVkZWYgOjpuZG5ib29zdDo6aW86Omlvc19iYXNlX2FsbF9zYXZlciBpb19zYXZlcl90eXBlOworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIGVudHJ5X3ZhbHVlX2NvbGxlY3RvciAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworZW50cnlfdmFsdWVfY29sbGVjdG9yIGNvbnN0JgorZW50cnlfdmFsdWVfY29sbGVjdG9yOjpvcGVyYXRvcjw8KCBsYXp5X29zdHJlYW0gY29uc3QmIHYgKSBjb25zdAoreworICAgIHVuaXRfdGVzdF9sb2cgPDwgdjsKKworICAgIHJldHVybiAqdGhpczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworZW50cnlfdmFsdWVfY29sbGVjdG9yIGNvbnN0JiAKK2VudHJ5X3ZhbHVlX2NvbGxlY3Rvcjo6b3BlcmF0b3I8PCggY29uc3Rfc3RyaW5nIHYgKSBjb25zdAoreworICAgIHVuaXRfdGVzdF9sb2cgPDwgdjsKKworICAgIHJldHVybiAqdGhpczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworZW50cnlfdmFsdWVfY29sbGVjdG9yOjp+ZW50cnlfdmFsdWVfY29sbGVjdG9yKCkKK3sKKyAgICBpZiggbV9sYXN0ICkKKyAgICAgICAgdW5pdF90ZXN0X2xvZyA8PCBsb2c6OmVuZCgpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICB1bml0X3Rlc3RfbG9nICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgeworCitzdHJ1Y3QgdW5pdF90ZXN0X2xvZ19pbXBsIHsKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIHVuaXRfdGVzdF9sb2dfaW1wbCgpCisgICAgOiBtX3N0cmVhbSggcnVudGltZV9jb25maWc6OmxvZ19zaW5rKCkgKQorICAgICwgbV9zdHJlYW1fc3RhdGVfc2F2ZXIoIG5ldyBpb19zYXZlcl90eXBlKCAqbV9zdHJlYW0gKSApCisgICAgLCBtX3RocmVzaG9sZF9sZXZlbCggbG9nX2FsbF9lcnJvcnMgKQorICAgICwgbV9sb2dfZm9ybWF0dGVyKCBuZXcgb3V0cHV0Ojpjb21waWxlcl9sb2dfZm9ybWF0dGVyICkKKyAgICB7CisgICAgfQorCisgICAgLy8gbG9nIGRhdGEKKyAgICB0eXBlZGVmIHNjb3BlZF9wdHI8dW5pdF90ZXN0X2xvZ19mb3JtYXR0ZXI+IGZvcm1hdHRlcl9wdHI7CisgICAgdHlwZWRlZiBzY29wZWRfcHRyPGlvX3NhdmVyX3R5cGU+ICAgICAgICAgICBzYXZlcl9wdHI7CisKKyAgICBzdGQ6Om9zdHJlYW0qICAgICAgIG1fc3RyZWFtOworICAgIHNhdmVyX3B0ciAgICAgICAgICAgbV9zdHJlYW1fc3RhdGVfc2F2ZXI7CisgICAgbG9nX2xldmVsICAgICAgICAgICBtX3RocmVzaG9sZF9sZXZlbDsKKyAgICBmb3JtYXR0ZXJfcHRyICAgICAgIG1fbG9nX2Zvcm1hdHRlcjsKKworICAgIC8vIGVudHJ5IGRhdGEKKyAgICBib29sICAgICAgICAgICAgICAgIG1fZW50cnlfaW5fcHJvZ3Jlc3M7CisgICAgYm9vbCAgICAgICAgICAgICAgICBtX2VudHJ5X3N0YXJ0ZWQ7CisgICAgbG9nX2VudHJ5X2RhdGEgICAgICBtX2VudHJ5X2RhdGE7CisKKyAgICAvLyBjaGVjayBwb2ludCBkYXRhCisgICAgbG9nX2NoZWNrcG9pbnRfZGF0YSBtX2NoZWNrcG9pbnRfZGF0YTsKKworICAgIC8vIGhlbHBlciBmdW5jdGlvbnMKKyAgICBzdGQ6Om9zdHJlYW0mICAgICAgIHN0cmVhbSgpICAgICAgICAgICAgeyByZXR1cm4gKm1fc3RyZWFtOyB9CisgICAgdm9pZCAgICAgICAgICAgICAgICBzZXRfY2hlY2twb2ludCggY29uc3Rfc3RyaW5nIGZpbGUsIHN0ZDo6c2l6ZV90IGxpbmVfbnVtLCBjb25zdF9zdHJpbmcgbXNnICkKKyAgICB7CisgICAgICAgIGFzc2lnbl9vcCggbV9jaGVja3BvaW50X2RhdGEubV9tZXNzYWdlLCBtc2csIDAgKTsKKyAgICAgICAgbV9jaGVja3BvaW50X2RhdGEubV9maWxlX25hbWUgICAgPSBmaWxlOworICAgICAgICBtX2NoZWNrcG9pbnRfZGF0YS5tX2xpbmVfbnVtICAgID0gbGluZV9udW07CisgICAgfQorfTsKKwordW5pdF90ZXN0X2xvZ19pbXBsJiBzX2xvZ19pbXBsKCkgeyBzdGF0aWMgdW5pdF90ZXN0X2xvZ19pbXBsIHRoZV9pbnN0OyByZXR1cm4gdGhlX2luc3Q7IH0KKworfSAvLyBsb2NhbCBuYW1lc3BhY2UKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190Ojp0ZXN0X3N0YXJ0KCBjb3VudGVyX3QgdGVzdF9jYXNlc19hbW91bnQgKQoreworICAgIGlmKCBzX2xvZ19pbXBsKCkubV90aHJlc2hvbGRfbGV2ZWwgPT0gbG9nX25vdGhpbmcgKQorICAgICAgICByZXR1cm47CisKKyAgICBzX2xvZ19pbXBsKCkubV9sb2dfZm9ybWF0dGVyLT5sb2dfc3RhcnQoIHNfbG9nX2ltcGwoKS5zdHJlYW0oKSwgdGVzdF9jYXNlc19hbW91bnQgKTsKKworICAgIGlmKCBydW50aW1lX2NvbmZpZzo6c2hvd19idWlsZF9pbmZvKCkgKQorICAgICAgICBzX2xvZ19pbXBsKCkubV9sb2dfZm9ybWF0dGVyLT5sb2dfYnVpbGRfaW5mbyggc19sb2dfaW1wbCgpLnN0cmVhbSgpICk7CisKKyAgICBzX2xvZ19pbXBsKCkubV9lbnRyeV9pbl9wcm9ncmVzcyA9IGZhbHNlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit1bml0X3Rlc3RfbG9nX3Q6OnRlc3RfZmluaXNoKCkKK3sKKyAgICBpZiggc19sb2dfaW1wbCgpLm1fdGhyZXNob2xkX2xldmVsID09IGxvZ19ub3RoaW5nICkKKyAgICAgICAgcmV0dXJuOworCisgICAgc19sb2dfaW1wbCgpLm1fbG9nX2Zvcm1hdHRlci0+bG9nX2ZpbmlzaCggc19sb2dfaW1wbCgpLnN0cmVhbSgpICk7CisKKyAgICBzX2xvZ19pbXBsKCkuc3RyZWFtKCkuZmx1c2goKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190Ojp0ZXN0X2Fib3J0ZWQoKQoreworICAgIEJPT1NUX1RFU1RfTE9HX0VOVFJZKCBsb2dfbWVzc2FnZXMgKSA8PCAiVGVzdCBpcyBhYm9ydGVkIjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190Ojp0ZXN0X3VuaXRfc3RhcnQoIHRlc3RfdW5pdCBjb25zdCYgdHUgKQoreworICAgIGlmKCBzX2xvZ19pbXBsKCkubV90aHJlc2hvbGRfbGV2ZWwgPiBsb2dfdGVzdF91bml0cyApCisgICAgICAgIHJldHVybjsKKworICAgIGlmKCBzX2xvZ19pbXBsKCkubV9lbnRyeV9pbl9wcm9ncmVzcyApCisgICAgICAgICp0aGlzIDw8IGxvZzo6ZW5kKCk7CisKKyAgICBzX2xvZ19pbXBsKCkubV9sb2dfZm9ybWF0dGVyLT50ZXN0X3VuaXRfc3RhcnQoIHNfbG9nX2ltcGwoKS5zdHJlYW0oKSwgdHUgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190Ojp0ZXN0X3VuaXRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmIHR1LCB1bnNpZ25lZCBsb25nIGVsYXBzZWQgKQoreworICAgIGlmKCBzX2xvZ19pbXBsKCkubV90aHJlc2hvbGRfbGV2ZWwgPiBsb2dfdGVzdF91bml0cyApCisgICAgICAgIHJldHVybjsKKworICAgIHNfbG9nX2ltcGwoKS5tX2NoZWNrcG9pbnRfZGF0YS5jbGVhcigpOworCisgICAgaWYoIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2luX3Byb2dyZXNzICkKKyAgICAgICAgKnRoaXMgPDwgbG9nOjplbmQoKTsKKworICAgIHNfbG9nX2ltcGwoKS5tX2xvZ19mb3JtYXR0ZXItPnRlc3RfdW5pdF9maW5pc2goIHNfbG9nX2ltcGwoKS5zdHJlYW0oKSwgdHUsIGVsYXBzZWQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190Ojp0ZXN0X3VuaXRfc2tpcHBlZCggdGVzdF91bml0IGNvbnN0JiB0dSApCit7CisgICAgaWYoIHNfbG9nX2ltcGwoKS5tX3RocmVzaG9sZF9sZXZlbCA+IGxvZ190ZXN0X3VuaXRzICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYoIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2luX3Byb2dyZXNzICkKKyAgICAgICAgKnRoaXMgPDwgbG9nOjplbmQoKTsKKworICAgIHNfbG9nX2ltcGwoKS5tX2xvZ19mb3JtYXR0ZXItPnRlc3RfdW5pdF9za2lwcGVkKCBzX2xvZ19pbXBsKCkuc3RyZWFtKCksIHR1ICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3VuaXRfdGVzdF9sb2dfdDo6dGVzdF91bml0X2Fib3J0ZWQoIHRlc3RfdW5pdCBjb25zdCYgKQoreworICAgIC8vIGRvIG5vdGhpbmcKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190Ojphc3NlcnRpb25fcmVzdWx0KCBib29sICkKK3sKKyAgICAvLyBkbyBub3RoaW5nCit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3VuaXRfdGVzdF9sb2dfdDo6ZXhjZXB0aW9uX2NhdWdodCggZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgZXggKQoreworICAgIGxvZ19sZXZlbCBsID0KKyAgICAgICAgZXguY29kZSgpIDw9IGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3IgICA/IGxvZ19jcHBfZXhjZXB0aW9uX2Vycm9ycyA6CisgICAgICAgIChleC5jb2RlKCkgPD0gZXhlY3V0aW9uX2V4Y2VwdGlvbjo6dGltZW91dF9lcnJvciAgICAgICAgPyBsb2dfc3lzdGVtX2Vycm9ycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbG9nX2ZhdGFsX2Vycm9ycyApOworCisgICAgaWYoIGwgPj0gc19sb2dfaW1wbCgpLm1fdGhyZXNob2xkX2xldmVsICkgeworICAgICAgICBpZiggc19sb2dfaW1wbCgpLm1fZW50cnlfaW5fcHJvZ3Jlc3MgKQorICAgICAgICAgICAgKnRoaXMgPDwgbG9nOjplbmQoKTsKKworICAgICAgICBzX2xvZ19pbXBsKCkubV9sb2dfZm9ybWF0dGVyLT5sb2dfZXhjZXB0aW9uKCBzX2xvZ19pbXBsKCkuc3RyZWFtKCksIHNfbG9nX2ltcGwoKS5tX2NoZWNrcG9pbnRfZGF0YSwgZXggKTsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3VuaXRfdGVzdF9sb2dfdDo6c2V0X2NoZWNrcG9pbnQoIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lX251bSwgY29uc3Rfc3RyaW5nIG1zZyApCit7CisgICAgc19sb2dfaW1wbCgpLnNldF9jaGVja3BvaW50KCBmaWxlLCBsaW5lX251bSwgbXNnICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2NoYXIKK3NldF91bml4X3NsYXNoKCBjaGFyIGluICkKK3sKKyAgICByZXR1cm4gaW4gPT0gJ1xcJyA/ICcvJyA6IGluOworfQorICAgIAordW5pdF90ZXN0X2xvZ190JgordW5pdF90ZXN0X2xvZ190OjpvcGVyYXRvcjw8KCBsb2c6OmJlZ2luIGNvbnN0JiBiICkKK3sKKyAgICBpZiggc19sb2dfaW1wbCgpLm1fZW50cnlfaW5fcHJvZ3Jlc3MgKQorICAgICAgICAqdGhpcyA8PCBsb2c6OmVuZCgpOworCisgICAgc19sb2dfaW1wbCgpLm1fc3RyZWFtX3N0YXRlX3NhdmVyLT5yZXN0b3JlKCk7CisKKyAgICBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLmNsZWFyKCk7CisKKyAgICBhc3NpZ25fb3AoIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2RhdGEubV9maWxlX25hbWUsIGIubV9maWxlX25hbWUsIDAgKTsKKworICAgIC8vIG5vcm1hbGl6ZSBmaWxlIG5hbWUKKyAgICBzdGQ6OnRyYW5zZm9ybSggc19sb2dfaW1wbCgpLm1fZW50cnlfZGF0YS5tX2ZpbGVfbmFtZS5iZWdpbigpLCBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLm1fZmlsZV9uYW1lLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLm1fZmlsZV9uYW1lLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICZzZXRfdW5peF9zbGFzaCApOworCisgICAgc19sb2dfaW1wbCgpLm1fZW50cnlfZGF0YS5tX2xpbmVfbnVtID0gYi5tX2xpbmVfbnVtOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit1bml0X3Rlc3RfbG9nX3QmCit1bml0X3Rlc3RfbG9nX3Q6Om9wZXJhdG9yPDwoIGxvZzo6ZW5kIGNvbnN0JiApCit7CisgICAgaWYoIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2luX3Byb2dyZXNzICkKKyAgICAgICAgc19sb2dfaW1wbCgpLm1fbG9nX2Zvcm1hdHRlci0+bG9nX2VudHJ5X2ZpbmlzaCggc19sb2dfaW1wbCgpLnN0cmVhbSgpICk7CisKKyAgICBzX2xvZ19pbXBsKCkubV9lbnRyeV9pbl9wcm9ncmVzcyA9IGZhbHNlOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit1bml0X3Rlc3RfbG9nX3QmCit1bml0X3Rlc3RfbG9nX3Q6Om9wZXJhdG9yPDwoIGxvZ19sZXZlbCBsICkKK3sKKyAgICBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLm1fbGV2ZWwgPSBsOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit1dF9kZXRhaWw6OmVudHJ5X3ZhbHVlX2NvbGxlY3RvcgordW5pdF90ZXN0X2xvZ190OjpvcGVyYXRvcigpKCBsb2dfbGV2ZWwgbCApCit7CisgICAgKnRoaXMgPDwgbDsKKworICAgIHJldHVybiB1dF9kZXRhaWw6OmVudHJ5X3ZhbHVlX2NvbGxlY3RvcigpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitib29sCit1bml0X3Rlc3RfbG9nX3Q6OmxvZ19lbnRyeV9zdGFydCgpCit7CisgICAgaWYoIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2luX3Byb2dyZXNzICkgCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgc3dpdGNoKCBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLm1fbGV2ZWwgKSB7CisgICAgY2FzZSBsb2dfc3VjY2Vzc2Z1bF90ZXN0czoKKyAgICAgICAgc19sb2dfaW1wbCgpLm1fbG9nX2Zvcm1hdHRlci0+bG9nX2VudHJ5X3N0YXJ0KCBzX2xvZ19pbXBsKCkuc3RyZWFtKCksIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdF90ZXN0X2xvZ19mb3JtYXR0ZXI6OkJPT1NUX1VUTF9FVF9JTkZPICk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgbG9nX21lc3NhZ2VzOgorICAgICAgICBzX2xvZ19pbXBsKCkubV9sb2dfZm9ybWF0dGVyLT5sb2dfZW50cnlfc3RhcnQoIHNfbG9nX2ltcGwoKS5zdHJlYW0oKSwgc19sb2dfaW1wbCgpLm1fZW50cnlfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlcjo6Qk9PU1RfVVRMX0VUX01FU1NBR0UgKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBsb2dfd2FybmluZ3M6CisgICAgICAgIHNfbG9nX2ltcGwoKS5tX2xvZ19mb3JtYXR0ZXItPmxvZ19lbnRyeV9zdGFydCggc19sb2dfaW1wbCgpLnN0cmVhbSgpLCBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRfdGVzdF9sb2dfZm9ybWF0dGVyOjpCT09TVF9VVExfRVRfV0FSTklORyApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGxvZ19hbGxfZXJyb3JzOgorICAgIGNhc2UgbG9nX2NwcF9leGNlcHRpb25fZXJyb3JzOgorICAgIGNhc2UgbG9nX3N5c3RlbV9lcnJvcnM6CisgICAgICAgIHNfbG9nX2ltcGwoKS5tX2xvZ19mb3JtYXR0ZXItPmxvZ19lbnRyeV9zdGFydCggc19sb2dfaW1wbCgpLnN0cmVhbSgpLCBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRfdGVzdF9sb2dfZm9ybWF0dGVyOjpCT09TVF9VVExfRVRfRVJST1IgKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBsb2dfZmF0YWxfZXJyb3JzOgorICAgICAgICBzX2xvZ19pbXBsKCkubV9sb2dfZm9ybWF0dGVyLT5sb2dfZW50cnlfc3RhcnQoIHNfbG9nX2ltcGwoKS5zdHJlYW0oKSwgc19sb2dfaW1wbCgpLm1fZW50cnlfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlcjo6Qk9PU1RfVVRMX0VUX0ZBVEFMX0VSUk9SICk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgbG9nX25vdGhpbmc6CisgICAgY2FzZSBsb2dfdGVzdF91bml0czoKKyAgICBjYXNlIGludmFsaWRfbG9nX2xldmVsOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc19sb2dfaW1wbCgpLm1fZW50cnlfaW5fcHJvZ3Jlc3MgPSB0cnVlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3VuaXRfdGVzdF9sb2dfdCYKK3VuaXRfdGVzdF9sb2dfdDo6b3BlcmF0b3I8PCggY29uc3Rfc3RyaW5nIHZhbHVlICkKK3sKKyAgICBpZiggc19sb2dfaW1wbCgpLm1fZW50cnlfZGF0YS5tX2xldmVsID49IHNfbG9nX2ltcGwoKS5tX3RocmVzaG9sZF9sZXZlbCAmJiAhdmFsdWUuZW1wdHkoKSAmJiBsb2dfZW50cnlfc3RhcnQoKSApCisgICAgICAgIHNfbG9nX2ltcGwoKS5tX2xvZ19mb3JtYXR0ZXItPmxvZ19lbnRyeV92YWx1ZSggc19sb2dfaW1wbCgpLnN0cmVhbSgpLCB2YWx1ZSApOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit1bml0X3Rlc3RfbG9nX3QmCit1bml0X3Rlc3RfbG9nX3Q6Om9wZXJhdG9yPDwoIGxhenlfb3N0cmVhbSBjb25zdCYgdmFsdWUgKQoreworICAgIGlmKCBzX2xvZ19pbXBsKCkubV9lbnRyeV9kYXRhLm1fbGV2ZWwgPj0gc19sb2dfaW1wbCgpLm1fdGhyZXNob2xkX2xldmVsICYmICF2YWx1ZS5lbXB0eSgpICYmIGxvZ19lbnRyeV9zdGFydCgpICkKKyAgICAgICAgc19sb2dfaW1wbCgpLm1fbG9nX2Zvcm1hdHRlci0+bG9nX2VudHJ5X3ZhbHVlKCBzX2xvZ19pbXBsKCkuc3RyZWFtKCksIHZhbHVlICk7CisKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3VuaXRfdGVzdF9sb2dfdDo6c2V0X3N0cmVhbSggc3RkOjpvc3RyZWFtJiBzdHIgKQoreworICAgIGlmKCBzX2xvZ19pbXBsKCkubV9lbnRyeV9pbl9wcm9ncmVzcyApCisgICAgICAgIHJldHVybjsKKworICAgIHNfbG9nX2ltcGwoKS5tX3N0cmVhbSA9ICZzdHI7CisgICAgc19sb2dfaW1wbCgpLm1fc3RyZWFtX3N0YXRlX3NhdmVyLnJlc2V0KCBuZXcgaW9fc2F2ZXJfdHlwZSggc3RyICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190OjpzZXRfdGhyZXNob2xkX2xldmVsKCBsb2dfbGV2ZWwgbGV2ICkKK3sKKyAgICBpZiggc19sb2dfaW1wbCgpLm1fZW50cnlfaW5fcHJvZ3Jlc3MgfHwgbGV2ID09IGludmFsaWRfbG9nX2xldmVsICkKKyAgICAgICAgcmV0dXJuOworCisgICAgc19sb2dfaW1wbCgpLm1fdGhyZXNob2xkX2xldmVsID0gbGV2OworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit1bml0X3Rlc3RfbG9nX3Q6OnNldF9mb3JtYXQoIG91dHB1dF9mb3JtYXQgbG9nX2Zvcm1hdCApCit7CisgICAgaWYoIHNfbG9nX2ltcGwoKS5tX2VudHJ5X2luX3Byb2dyZXNzICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYoIGxvZ19mb3JtYXQgPT0gQ0xGICkKKyAgICAgICAgc2V0X2Zvcm1hdHRlciggbmV3IG91dHB1dDo6Y29tcGlsZXJfbG9nX2Zvcm1hdHRlciApOworICAgIGVsc2UKKyAgICAgICAgc2V0X2Zvcm1hdHRlciggbmV3IG91dHB1dDo6eG1sX2xvZ19mb3JtYXR0ZXIgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordW5pdF90ZXN0X2xvZ190OjpzZXRfZm9ybWF0dGVyKCB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlciogdGhlX2Zvcm1hdHRlciApCit7CisgICAgc19sb2dfaW1wbCgpLm1fbG9nX2Zvcm1hdHRlci5yZXNldCggdGhlX2Zvcm1hdHRlciApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlciAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3ZvaWQKK3VuaXRfdGVzdF9sb2dfZm9ybWF0dGVyOjpsb2dfZW50cnlfdmFsdWUoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgbGF6eV9vc3RyZWFtIGNvbnN0JiB2YWx1ZSApCit7CisgICAgbG9nX2VudHJ5X3ZhbHVlKCBvc3RyLCAod3JhcF9zdHJpbmdzdHJlYW0oKS5yZWYoKSA8PCB2YWx1ZSkuc3RyKCkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0lQUF8wMTIyMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9tYWluLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9tYWluLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGU4NzFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X21haW4uaXBwCkBAIC0wLDAgKzEsMjQ2IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogbWFpbiBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IgVW5pdCBUZXN0IEZyYW1ld29yaworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9VTklUX1RFU1RfTUFJTl9JUFBfMDEyMjA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfVU5JVF9URVNUX01BSU5fSVBQXzAxMjIwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19jb2xsZWN0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlX2ltcGwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC91bml0X3Rlc3RfcGFyYW1ldGVycy5ocHA+CisKKyNpZiAhZGVmaW5lZChfX0JPUkxBTkRDX18pICYmICFCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9NU1ZDLCA8IDEzMDAgKSAmJiAhQk9PU1RfV09SS0FST1VORCggX19TVU5QUk9fQ0MsIDwgMHg1MTAwICkKKyNkZWZpbmUgQk9PU1RfVEVTVF9TVVBQT1JUX1JVTl9CWV9OQU1FCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9pdGVyYXRvci90b2tlbl9pdGVyYXRvci5ocHA+CisjZW5kaWYKKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkbGliLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9iaW5kLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8c3RkZXhjZXB0PgorI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICB0ZXN0X2Nhc2VfZmlsdGVyICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyB0ZXN0X2Nhc2VfZmlsdGVyIDogcHVibGljIHRlc3RfdHJlZV92aXNpdG9yIHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3Qgc2luZ2xlX2ZpbHRlciB7CisgICAgICAgIHNpbmdsZV9maWx0ZXIoIGNvbnN0X3N0cmluZyBpbiApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKCBpbiA9PSAiKiIgKQorICAgICAgICAgICAgICAgIG1fa2luZCAgPSBTRktfQUxMOworICAgICAgICAgICAgZWxzZSBpZiggZmlyc3RfY2hhciggaW4gKSA9PSAnKicgJiYgbGFzdF9jaGFyKCBpbiApID09ICcqJyApIHsKKyAgICAgICAgICAgICAgICBtX2tpbmQgID0gU0ZLX1NVQlNUUjsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gaW4uc3Vic3RyKCAxLCBpbi5zaXplKCktMSApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiggZmlyc3RfY2hhciggaW4gKSA9PSAnKicgKSB7CisgICAgICAgICAgICAgICAgbV9raW5kICA9IFNGS19UUkFJTElORzsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gaW4uc3Vic3RyKCAxICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmKCBsYXN0X2NoYXIoIGluICkgPT0gJyonICkgeworICAgICAgICAgICAgICAgIG1fa2luZCAgPSBTRktfTEVBRElORzsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gaW4uc3Vic3RyKCAwLCBpbi5zaXplKCktMSApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9raW5kICA9IFNGS19NQVRDSDsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gaW47CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgYm9vbCAgICAgICAgICAgIHBhc3MoIHRlc3RfdW5pdCBjb25zdCYgdHUgKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBjb25zdF9zdHJpbmcgbmFtZSggdHUucF9uYW1lICk7CisgICAgCisgICAgICAgICAgICBzd2l0Y2goIG1fa2luZCApIHsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBjYXNlIFNGS19BTEw6CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIGNhc2UgU0ZLX0xFQURJTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUuc3Vic3RyKCAwLCBtX3ZhbHVlLnNpemUoKSApID09IG1fdmFsdWU7CisKKyAgICAgICAgICAgIGNhc2UgU0ZLX1RSQUlMSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBuYW1lLnNpemUoKSA+PSBtX3ZhbHVlLnNpemUoKSAmJiBuYW1lLnN1YnN0ciggbmFtZS5zaXplKCkgLSBtX3ZhbHVlLnNpemUoKSApID09IG1fdmFsdWU7CisKKyAgICAgICAgICAgIGNhc2UgU0ZLX1NVQlNUUjoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmFtZS5maW5kKCBtX3ZhbHVlICkgIT0gY29uc3Rfc3RyaW5nOjpucG9zOworCisgICAgICAgICAgICBjYXNlIFNGS19NQVRDSDoKKyAgICAgICAgICAgICAgICByZXR1cm4gbV92YWx1ZSA9PSB0dS5wX25hbWUuZ2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW51bSBraW5kIHsgU0ZLX0FMTCwgU0ZLX0xFQURJTkcsIFNGS19UUkFJTElORywgU0ZLX1NVQlNUUiwgU0ZLX01BVENIIH07CisKKyAgICAgICAga2luZCAgICAgICAgICAgIG1fa2luZDsKKyAgICAgICAgY29uc3Rfc3RyaW5nICAgIG1fdmFsdWU7CisgICAgfTsKKyAgICAvLyBDb25zdHJ1Y3RvcgorI2lmbmRlZiBCT09TVF9URVNUX1NVUFBPUlRfUlVOX0JZX05BTUUKKyAgICBleHBsaWNpdCAgICAgICAgdGVzdF9jYXNlX2ZpbHRlciggY29uc3Rfc3RyaW5nICkgOiBtX2RlcHRoKCAwICkge30KKyNlbHNlCisgICAgZXhwbGljaXQgICAgICAgIHRlc3RfY2FzZV9maWx0ZXIoIGNvbnN0X3N0cmluZyB0Y190b19ydW4gKSAKKyAgICA6IG1fZGVwdGgoIDAgKQorICAgIHsKKyAgICAgICAgc3RyaW5nX3Rva2VuX2l0ZXJhdG9yIHRpdCggdGNfdG9fcnVuLCAoZHJvcHBlZF9kZWxpbWV0ZXJzID0gIi8iLCBrZXB0X2RlbGltZXRlcnMgPSBkdF9ub25lKSApOworCisgICAgICAgIHdoaWxlKCB0aXQgIT0gc3RyaW5nX3Rva2VuX2l0ZXJhdG9yKCkgKSB7CisgICAgICAgICAgICBtX2ZpbHRlcnMucHVzaF9iYWNrKCAKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzaW5nbGVfZmlsdGVyPiggc3RyaW5nX3Rva2VuX2l0ZXJhdG9yKCAqdGl0LCAoZHJvcHBlZF9kZWxpbWV0ZXJzID0gIiwiLCBrZXB0X2RlbGltZXRlcnMgPSBkdF9ub25lKSAgKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ190b2tlbl9pdGVyYXRvcigpICkgKTsKKworICAgICAgICAgICAgKyt0aXQ7ICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorICAgIAorICAgIHZvaWQgICAgICAgICAgICBmaWx0ZXJfdW5pdCggdGVzdF91bml0IGNvbnN0JiB0dSApCisgICAgeworICAgICAgICBpZiggKCsrbV9kZXB0aCAtIDEpID4gbV9maWx0ZXJzLnNpemUoKSApIHsKKyAgICAgICAgICAgIHR1LnBfZW5hYmxlZC52YWx1ZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiggbV9kZXB0aCA9PSAxICkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzdGQ6OnZlY3RvcjxzaW5nbGVfZmlsdGVyPiBjb25zdCYgZmlsdGVycyA9IG1fZmlsdGVyc1ttX2RlcHRoLTJdOworCisgICAgICAgIHR1LnBfZW5hYmxlZC52YWx1ZSA9CisgICAgICAgICAgICBzdGQ6OmZpbmRfaWYoIGZpbHRlcnMuYmVnaW4oKSwgZmlsdGVycy5lbmQoKSwgYmluZCggJnNpbmdsZV9maWx0ZXI6OnBhc3MsIF8xLCBuZG5ib29zdDo6cmVmKHR1KSApICkgIT0gZmlsdGVycy5lbmQoKTsKKyAgICB9CisKKyAgICAvLyB0ZXN0IHRyZWUgdmlzaXRvciBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQgICAgdmlzaXQoIHRlc3RfY2FzZSBjb25zdCYgdGMgKQorICAgIHsKKyAgICAgICAgaWYoIG1fZGVwdGggPCBtX2ZpbHRlcnMuc2l6ZSgpICkgeworICAgICAgICAgICAgdGMucF9lbmFibGVkLnZhbHVlID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmaWx0ZXJfdW5pdCggdGMgKTsKKworICAgICAgICAtLW1fZGVwdGg7CisgICAgfQorCisgICAgdmlydHVhbCBib29sICAgIHRlc3Rfc3VpdGVfc3RhcnQoIHRlc3Rfc3VpdGUgY29uc3QmIHRzICkKKyAgICB7IAorICAgICAgICBmaWx0ZXJfdW5pdCggdHMgKTsKKworICAgICAgICBpZiggIXRzLnBfZW5hYmxlZCApCisgICAgICAgICAgICAtLW1fZGVwdGg7CisKKyAgICAgICAgcmV0dXJuIHRzLnBfZW5hYmxlZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgICAgdGVzdF9zdWl0ZV9maW5pc2goIHRlc3Rfc3VpdGUgY29uc3QmICkgIHsgLS1tX2RlcHRoOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8c2luZ2xlX2ZpbHRlcj4gPiAgICBtX2ZpbHRlcnM7CisgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RlcHRoOworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgdW5pdF90ZXN0X21haW4gICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitpbnQgQk9PU1RfVEVTVF9ERUNMCit1bml0X3Rlc3RfbWFpbiggaW5pdF91bml0X3Rlc3RfZnVuYyBpbml0X2Z1bmMsIGludCBhcmdjLCBjaGFyKiBhcmd2W10gKQoreworICAgIHRyeSB7CisgICAgICAgIGZyYW1ld29yazo6aW5pdCggaW5pdF9mdW5jLCBhcmdjLCBhcmd2ICk7CisKKyAgICAgICAgaWYoICFydW50aW1lX2NvbmZpZzo6dGVzdF90b19ydW4oKS5pc19lbXB0eSgpICkgeworICAgICAgICAgICAgdGVzdF9jYXNlX2ZpbHRlciBmaWx0ZXIoIHJ1bnRpbWVfY29uZmlnOjp0ZXN0X3RvX3J1bigpICk7CisKKyAgICAgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggZnJhbWV3b3JrOjptYXN0ZXJfdGVzdF9zdWl0ZSgpLnBfaWQsIGZpbHRlciApOworICAgICAgICB9CisKKyAgICAgICAgZnJhbWV3b3JrOjpydW4oKTsKKworICAgICAgICByZXN1bHRzX3JlcG9ydGVyOjptYWtlX3JlcG9ydCgpOworCisgICAgICAgIHJldHVybiBydW50aW1lX2NvbmZpZzo6bm9fcmVzdWx0X2NvZGUoKSAKKyAgICAgICAgICAgICAgICAgICAgPyBuZG5ib29zdDo6ZXhpdF9zdWNjZXNzCisgICAgICAgICAgICAgICAgICAgIDogcmVzdWx0c19jb2xsZWN0b3IucmVzdWx0cyggZnJhbWV3b3JrOjptYXN0ZXJfdGVzdF9zdWl0ZSgpLnBfaWQgKS5yZXN1bHRfY29kZSgpOworICAgIH0KKyAgICBjYXRjaCggZnJhbWV3b3JrOjpub3RoaW5nX3RvX3Rlc3QgY29uc3QmICkgeworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmV4aXRfc3VjY2VzczsKKyAgICB9CisgICAgY2F0Y2goIGZyYW1ld29yazo6aW50ZXJuYWxfZXJyb3IgY29uc3QmIGV4ICkgeworICAgICAgICByZXN1bHRzX3JlcG9ydGVyOjpnZXRfc3RyZWFtKCkgPDwgIkJvb3N0LlRlc3QgZnJhbWV3b3JrIGludGVybmFsIGVycm9yOiAiIDw8IGV4LndoYXQoKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmV4aXRfZXhjZXB0aW9uX2ZhaWx1cmU7CisgICAgfQorICAgIGNhdGNoKCBmcmFtZXdvcms6OnNldHVwX2Vycm9yIGNvbnN0JiBleCApIHsKKyAgICAgICAgcmVzdWx0c19yZXBvcnRlcjo6Z2V0X3N0cmVhbSgpIDw8ICJUZXN0IHNldHVwIGVycm9yOiAiIDw8IGV4LndoYXQoKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmV4aXRfZXhjZXB0aW9uX2ZhaWx1cmU7CisgICAgfQorICAgIGNhdGNoKCAuLi4gKSB7CisgICAgICAgIHJlc3VsdHNfcmVwb3J0ZXI6OmdldF9zdHJlYW0oKSA8PCAiQm9vc3QuVGVzdCBmcmFtZXdvcmsgaW50ZXJuYWwgZXJyb3I6IHVua25vd24gcmVhc29uIiA8PCBzdGQ6OmVuZGw7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OmV4aXRfZXhjZXB0aW9uX2ZhaWx1cmU7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmICFkZWZpbmVkKEJPT1NUX1RFU1RfRFlOX0xJTkspICYmICFkZWZpbmVkKEJPT1NUX1RFU1RfTk9fTUFJTikKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICBtYWluIGZ1bmN0aW9uIGZvciB0ZXN0cyB1c2luZyBsaWIgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitpbnQgQk9PU1RfVEVTVF9DQUxMX0RFQ0wKK21haW4oIGludCBhcmdjLCBjaGFyKiBhcmd2W10gKQoreworICAgIC8vIHByb3RvdHlwZSBmb3IgdXNlcidzIHVuaXQgdGVzdCBpbml0IGZ1bmN0aW9uCisjaWZkZWYgQk9PU1RfVEVTVF9BTFRFUk5BVElWRV9JTklUX0FQSQorICAgIGV4dGVybiBib29sIGluaXRfdW5pdF90ZXN0KCk7CisKKyAgICBuZG5ib29zdDo6dW5pdF90ZXN0Ojppbml0X3VuaXRfdGVzdF9mdW5jIGluaXRfZnVuYyA9ICZpbml0X3VuaXRfdGVzdDsKKyNlbHNlCisgICAgZXh0ZXJuIDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZSogaW5pdF91bml0X3Rlc3Rfc3VpdGUoIGludCBhcmdjLCBjaGFyKiBhcmd2W10gKTsKKworICAgIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmluaXRfdW5pdF90ZXN0X2Z1bmMgaW5pdF9mdW5jID0gJmluaXRfdW5pdF90ZXN0X3N1aXRlOworI2VuZGlmCisKKyAgICByZXR1cm4gOjpuZG5ib29zdDo6dW5pdF90ZXN0Ojp1bml0X3Rlc3RfbWFpbiggaW5pdF9mdW5jLCBhcmdjLCBhcmd2ICk7Cit9CisKKyNlbmRpZiAvLyAhQk9PU1RfVEVTVF9EWU5fTElOSyAmJiAhQk9PU1RfVEVTVF9OT19NQUlOCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9VTklUX1RFU1RfTUFJTl9JUFBfMDEyMjA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfbW9uaXRvci5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfbW9uaXRvci5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkzMmJmMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3VuaXRfdGVzdF9tb25pdG9yLmlwcApAQCAtMCwwICsxLDEwMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGltcGxlbWVudHMgc3BlY2lmaWMgc3ViY2xhc3Mgb2YgRXhlY3V0b24gTW9uaXRvciB1c2VkIGJ5IFVuaXQKKy8vICBUZXN0IEZyYW1ld29yayB0byBtb25pdG9yIHRlc3QgY2FzZXMgcnVuLgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9VTklUX1RFU1RfTU9OSVRPUl9JUFBfMDEyMjA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfVU5JVF9URVNUX01PTklUT1JfSVBQXzAxMjIwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbW9uaXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC91bml0X3Rlc3RfcGFyYW1ldGVycy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCituYW1lc3BhY2UgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorc3RydWN0IHplcm9fcmV0dXJuX3dyYXBwZXJfdCB7CisgICAgZXhwbGljaXQgemVyb19yZXR1cm5fd3JhcHBlcl90KCBGIGNvbnN0JiBmICkgOiBtX2YoIGYgKSB7fQorICAgIAorICAgIGludCBvcGVyYXRvcigpKCkgeyBtX2YoKTsgcmV0dXJuIDA7IH0KKyAgICAKKyAgICBGIGNvbnN0JiBtX2Y7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPgoremVyb19yZXR1cm5fd3JhcHBlcl90PEY+Cit6ZXJvX3JldHVybl93cmFwcGVyKCBGIGNvbnN0JiBmICkKK3sKKyAgICByZXR1cm4gemVyb19yZXR1cm5fd3JhcHBlcl90PEY+KCBmICk7Cit9CisKK30KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgdW5pdF90ZXN0X21vbml0b3IgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit1bml0X3Rlc3RfbW9uaXRvcl90OjplcnJvcl9sZXZlbAordW5pdF90ZXN0X21vbml0b3JfdDo6ZXhlY3V0ZV9hbmRfdHJhbnNsYXRlKCB0ZXN0X2Nhc2UgY29uc3QmIHRjICkKK3sKKyAgICB0cnkgeworICAgICAgICBwX2NhdGNoX3N5c3RlbV9lcnJvcnMudmFsdWUgICAgID0gcnVudGltZV9jb25maWc6OmNhdGNoX3N5c19lcnJvcnMoKTsKKyAgICAgICAgcF90aW1lb3V0LnZhbHVlICAgICAgICAgICAgICAgICA9IHRjLnBfdGltZW91dC5nZXQoKTsKKyAgICAgICAgcF9hdXRvX3N0YXJ0X2RiZy52YWx1ZSAgICAgICAgICA9IHJ1bnRpbWVfY29uZmlnOjphdXRvX3N0YXJ0X2RiZygpOworICAgICAgICBwX3VzZV9hbHRfc3RhY2sudmFsdWUgICAgICAgICAgID0gcnVudGltZV9jb25maWc6OnVzZV9hbHRfc3RhY2soKTsKKyAgICAgICAgcF9kZXRlY3RfZnBfZXhjZXB0aW9ucy52YWx1ZSAgICA9IHJ1bnRpbWVfY29uZmlnOjpkZXRlY3RfZnBfZXhjZXB0aW9ucygpOworCisgICAgICAgIGV4ZWN1dGUoIGNhbGxiYWNrMDxpbnQ+KCB6ZXJvX3JldHVybl93cmFwcGVyKCB0Yy50ZXN0X2Z1bmMoKSApICkgKTsKKyAgICB9CisgICAgY2F0Y2goIGV4ZWN1dGlvbl9leGNlcHRpb24gY29uc3QmIGV4ICkgeworICAgICAgICBmcmFtZXdvcms6OmV4Y2VwdGlvbl9jYXVnaHQoIGV4ICk7CisgICAgICAgIGZyYW1ld29yazo6dGVzdF91bml0X2Fib3J0ZWQoIGZyYW1ld29yazo6Y3VycmVudF90ZXN0X2Nhc2UoKSApOworCisgICAgICAgIC8vIHRyYW5zbGF0ZSBleGVjdXRpb25fZXhjZXB0aW9uOjplcnJvcl9jb2RlIHRvIGVycm9yX2xldmVsCisgICAgICAgIHN3aXRjaCggZXguY29kZSgpICkgeworICAgICAgICBjYXNlIGV4ZWN1dGlvbl9leGNlcHRpb246Om5vX2Vycm9yOiAgICAgICAgICAgICByZXR1cm4gdGVzdF9vazsKKyAgICAgICAgY2FzZSBleGVjdXRpb25fZXhjZXB0aW9uOjp1c2VyX2Vycm9yOiAgICAgICAgICAgcmV0dXJuIHVuZXhwZWN0ZWRfZXhjZXB0aW9uOworICAgICAgICBjYXNlIGV4ZWN1dGlvbl9leGNlcHRpb246OmNwcF9leGNlcHRpb25fZXJyb3I6ICByZXR1cm4gdW5leHBlY3RlZF9leGNlcHRpb247CisgICAgICAgIGNhc2UgZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2Vycm9yOiAgICAgICAgIHJldHVybiBvc19leGNlcHRpb247CisgICAgICAgIGNhc2UgZXhlY3V0aW9uX2V4Y2VwdGlvbjo6dGltZW91dF9lcnJvcjogICAgICAgIHJldHVybiBvc190aW1lb3V0OworICAgICAgICBjYXNlIGV4ZWN1dGlvbl9leGNlcHRpb246OnVzZXJfZmF0YWxfZXJyb3I6CisgICAgICAgIGNhc2UgZXhlY3V0aW9uX2V4Y2VwdGlvbjo6c3lzdGVtX2ZhdGFsX2Vycm9yOiAgIHJldHVybiBmYXRhbF9lcnJvcjsKKyAgICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZXhwZWN0ZWRfZXhjZXB0aW9uOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRlc3Rfb2s7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfVU5JVF9URVNUX01PTklUT1JfSVBQXzAxMjIwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmYzI5YzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3RfcGFyYW1ldGVycy5pcHAKQEAgLTAsMCArMSw1MjcgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDYzNjQwICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzaW1wbGUgaW1wbGVtZW50YXRpb24gZm9yIFVuaXQgVGVzdCBGcmFtZXdvcmsgcGFyYW1ldGVyCisvLyAgaGFuZGxpbmcgcm91dGluZXMuIE1heSBiZSByZXdyaXR0ZW4gaW4gZnV0dXJlIHRvIHVzZSBzb21lIGtpbmQgb2YKKy8vICBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHBhcnNpbmcgZmFjaWxpdHkgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlIGhhbmRsaW5nCisvLyAgZmFjaWxpdHkKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfVU5JVF9URVNUX1BBUkFNRVRFUlNfSVBQXzAxMjIwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1VOSVRfVEVTVF9QQVJBTUVURVJTX0lQUF8wMTIyMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3VuaXRfdGVzdF9wYXJhbWV0ZXJzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2NvbXBhcmUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9pby5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9maXhlZF9tYXBwaW5nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RlYnVnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHA+CisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW0KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2R1YWxfbmFtZV9wYXJhbWV0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvcGFyc2VyLmhwcD4KKworbmFtZXNwYWNlIHJ0ICA9IG5kbmJvb3N0OjpydW50aW1lOworbmFtZXNwYWNlIGNsYSA9IHJ0OjpjbGE7CisKKworI2lmbmRlZiBVTkRFUl9DRQorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvdmFyaWFibGUuaHBwPgorCituYW1lc3BhY2UgZW52ID0gcnQ6OmVudjsKKyNlbmRpZgorCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbGV4aWNhbF9jYXN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjIGlmZGVmIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCituYW1lc3BhY2Ugc3RkIHsgdXNpbmcgOjpnZXRlbnY7IHVzaW5nIDo6c3RybmNtcDsgdXNpbmcgOjpzdHJjbXA7IH0KKyMgZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICBpbnB1dCBvcGVyYXRpb25zIGZvciB1bml0X3Rlc3QncyBlbnVtcyAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RkOjppc3RyZWFtJgorb3BlcmF0b3I+Piggc3RkOjppc3RyZWFtJiBpbiwgdW5pdF90ZXN0Ojpsb2dfbGV2ZWwmIGxsICkKK3sKKyAgICBzdGF0aWMgZml4ZWRfbWFwcGluZzxjb25zdF9zdHJpbmcsdW5pdF90ZXN0Ojpsb2dfbGV2ZWwsY2FzZV9pbnNfbGVzczxjaGFyIGNvbnN0PiA+IGxvZ19sZXZlbF9uYW1lKAorICAgICAgICAiYWxsIiAgICAgICAgICAgLCBsb2dfc3VjY2Vzc2Z1bF90ZXN0cywKKyAgICAgICAgInN1Y2Nlc3MiICAgICAgICwgbG9nX3N1Y2Nlc3NmdWxfdGVzdHMsCisgICAgICAgICJ0ZXN0X3N1aXRlIiAgICAsIGxvZ190ZXN0X3VuaXRzLAorICAgICAgICAidW5pdF9zY29wZSIgICAgLCBsb2dfdGVzdF91bml0cywKKyAgICAgICAgIm1lc3NhZ2UiICAgICAgICwgbG9nX21lc3NhZ2VzLAorICAgICAgICAid2FybmluZyIgICAgICAgLCBsb2dfd2FybmluZ3MsCisgICAgICAgICJlcnJvciIgICAgICAgICAsIGxvZ19hbGxfZXJyb3JzLAorICAgICAgICAiY3BwX2V4Y2VwdGlvbiIgLCBsb2dfY3BwX2V4Y2VwdGlvbl9lcnJvcnMsCisgICAgICAgICJzeXN0ZW1fZXJyb3IiICAsIGxvZ19zeXN0ZW1fZXJyb3JzLAorICAgICAgICAiZmF0YWxfZXJyb3IiICAgLCBsb2dfZmF0YWxfZXJyb3JzLAorICAgICAgICAibm90aGluZyIgICAgICAgLCBsb2dfbm90aGluZywKKworICAgICAgICBpbnZhbGlkX2xvZ19sZXZlbAorICAgICAgICApOworCisgICAgc3RkOjpzdHJpbmcgdmFsOworICAgIGluID4+IHZhbDsKKworICAgIGxsID0gbG9nX2xldmVsX25hbWVbdmFsXTsKKyAgICBCT09TVF9URVNUX1NFVFVQX0FTU0VSVCggbGwgIT0gdW5pdF90ZXN0OjppbnZhbGlkX2xvZ19sZXZlbCwgImludmFsaWQgbG9nIGxldmVsICIgKyB2YWwgKTsKKworICAgIHJldHVybiBpbjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RkOjppc3RyZWFtJgorb3BlcmF0b3I+Piggc3RkOjppc3RyZWFtJiBpbiwgdW5pdF90ZXN0OjpyZXBvcnRfbGV2ZWwmIHJsICkKK3sKKyAgICBmaXhlZF9tYXBwaW5nPGNvbnN0X3N0cmluZyx1bml0X3Rlc3Q6OnJlcG9ydF9sZXZlbCxjYXNlX2luc19sZXNzPGNoYXIgY29uc3Q+ID4gcmVwb3J0X2xldmVsX25hbWUgKAorICAgICAgICAiY29uZmlybSIsICBDT05GSVJNQVRJT05fUkVQT1JULAorICAgICAgICAic2hvcnQiLCAgICBTSE9SVF9SRVBPUlQsCisgICAgICAgICJkZXRhaWxlZCIsIERFVEFJTEVEX1JFUE9SVCwKKyAgICAgICAgIm5vIiwgICAgICAgTk9fUkVQT1JULAorCisgICAgICAgIElOVl9SRVBPUlRfTEVWRUwKKyAgICAgICAgKTsKKworICAgIHN0ZDo6c3RyaW5nIHZhbDsKKyAgICBpbiA+PiB2YWw7CisKKyAgICBybCA9IHJlcG9ydF9sZXZlbF9uYW1lW3ZhbF07CisgICAgQk9PU1RfVEVTVF9TRVRVUF9BU1NFUlQoIHJsICE9IElOVl9SRVBPUlRfTEVWRUwsICJpbnZhbGlkIHJlcG9ydCBsZXZlbCAiICsgdmFsICk7CisKKyAgICByZXR1cm4gaW47Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0ZDo6aXN0cmVhbSYKK29wZXJhdG9yPj4oIHN0ZDo6aXN0cmVhbSYgaW4sIHVuaXRfdGVzdDo6b3V0cHV0X2Zvcm1hdCYgb2YgKQoreworICAgIGZpeGVkX21hcHBpbmc8Y29uc3Rfc3RyaW5nLHVuaXRfdGVzdDo6b3V0cHV0X2Zvcm1hdCxjYXNlX2luc19sZXNzPGNoYXIgY29uc3Q+ID4gb3V0cHV0X2Zvcm1hdF9uYW1lICgKKyAgICAgICAgIkhSRiIsIHVuaXRfdGVzdDo6Q0xGLAorICAgICAgICAiQ0xGIiwgdW5pdF90ZXN0OjpDTEYsCisgICAgICAgICJYTUwiLCB1bml0X3Rlc3Q6OlhNTCwKKworICAgICAgICB1bml0X3Rlc3Q6OklOVl9PRgorICAgICAgICApOworCisgICAgc3RkOjpzdHJpbmcgdmFsOworICAgIGluID4+IHZhbDsKKworICAgIG9mID0gb3V0cHV0X2Zvcm1hdF9uYW1lW3ZhbF07CisgICAgQk9PU1RfVEVTVF9TRVRVUF9BU1NFUlQoIG9mICE9IHVuaXRfdGVzdDo6SU5WX09GLCAiaW52YWxpZCBvdXRwdXQgZm9ybWF0ICIgKyB2YWwgKTsKKworICAgIHJldHVybiBpbjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICBydW50aW1lX2NvbmZpZyAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgcnVudGltZV9jb25maWcgeworCituYW1lc3BhY2UgeworCisvLyBmcmFtZXdvcmsgcGFyYW1ldGVycyBhbmQgY29ycmVzcG9uZGluZyBjb21tYW5kLWxpbmUgYXJndW1lbnRzCitzdGQ6OnN0cmluZyBBVVRPX1NUQVJUX0RCRyAgICA9ICJhdXRvX3N0YXJ0X2RiZyI7CitzdGQ6OnN0cmluZyBCUkVBS19FWEVDX1BBVEggICA9ICJicmVha19leGVjX3BhdGgiOworc3RkOjpzdHJpbmcgQlVJTERfSU5GTyAgICAgICAgPSAiYnVpbGRfaW5mbyI7CitzdGQ6OnN0cmluZyBDQVRDSF9TWVNfRVJST1JTICA9ICJjYXRjaF9zeXN0ZW1fZXJyb3JzIjsKK3N0ZDo6c3RyaW5nIERFVEVDVF9GUF9FWENFUFQgID0gImRldGVjdF9mcF9leGNlcHRpb25zIjsKK3N0ZDo6c3RyaW5nIERFVEVDVF9NRU1fTEVBS1MgID0gImRldGVjdF9tZW1vcnlfbGVha3MiOworc3RkOjpzdHJpbmcgTE9HX0ZPUk1BVCAgICAgICAgPSAibG9nX2Zvcm1hdCI7CitzdGQ6OnN0cmluZyBMT0dfTEVWRUwgICAgICAgICA9ICJsb2dfbGV2ZWwiOworc3RkOjpzdHJpbmcgTE9HX1NJTksgICAgICAgICAgPSAibG9nX3NpbmsiOworc3RkOjpzdHJpbmcgT1VUUFVUX0ZPUk1BVCAgICAgPSAib3V0cHV0X2Zvcm1hdCI7CitzdGQ6OnN0cmluZyBSQU5ET01fU0VFRCAgICAgICA9ICJyYW5kb20iOworc3RkOjpzdHJpbmcgUkVQT1JUX0ZPUk1BVCAgICAgPSAicmVwb3J0X2Zvcm1hdCI7CitzdGQ6OnN0cmluZyBSRVBPUlRfTEVWRUwgICAgICA9ICJyZXBvcnRfbGV2ZWwiOworc3RkOjpzdHJpbmcgUkVQT1JUX1NJTksgICAgICAgPSAicmVwb3J0X3NpbmsiOworc3RkOjpzdHJpbmcgUkVTVUxUX0NPREUgICAgICAgPSAicmVzdWx0X2NvZGUiOworc3RkOjpzdHJpbmcgVEVTVFNfVE9fUlVOICAgICAgPSAicnVuX3Rlc3QiOworc3RkOjpzdHJpbmcgU0FWRV9URVNUX1BBVFRFUk4gPSAic2F2ZV9wYXR0ZXJuIjsKK3N0ZDo6c3RyaW5nIFNIT1dfUFJPR1JFU1MgICAgID0gInNob3dfcHJvZ3Jlc3MiOworc3RkOjpzdHJpbmcgVVNFX0FMVF9TVEFDSyAgICAgPSAidXNlX2FsdF9zdGFjayI7CisKK2ZpeGVkX21hcHBpbmc8Y29uc3Rfc3RyaW5nLGNvbnN0X3N0cmluZz4gcGFyYW1ldGVyXzJfZW52X3ZhcigKKyAgICBBVVRPX1NUQVJUX0RCRyAgICAsICJCT09TVF9URVNUX0FVVE9fU1RBUlRfREJHIiwKKyAgICBCUkVBS19FWEVDX1BBVEggICAsICJCT09TVF9URVNUX0JSRUFLX0VYRUNfUEFUSCIsCisgICAgQlVJTERfSU5GTyAgICAgICAgLCAiQk9PU1RfVEVTVF9CVUlMRF9JTkZPIiwKKyAgICBDQVRDSF9TWVNfRVJST1JTICAsICJCT09TVF9URVNUX0NBVENIX1NZU1RFTV9FUlJPUlMiLAorICAgIERFVEVDVF9GUF9FWENFUFQgICwgIkJPT1NUX1RFU1RfREVURUNUX0ZQX0VYQ0VQVElPTlMiLAorICAgIERFVEVDVF9NRU1fTEVBS1MgICwgIkJPT1NUX1RFU1RfREVURUNUX01FTU9SWV9MRUFLIiwKKyAgICBMT0dfRk9STUFUICAgICAgICAsICJCT09TVF9URVNUX0xPR19GT1JNQVQiLAorICAgIExPR19MRVZFTCAgICAgICAgICwgIkJPT1NUX1RFU1RfTE9HX0xFVkVMIiwKKyAgICBMT0dfU0lOSyAgICAgICAgICAsICJCT09TVF9URVNUX0xPR19TSU5LIiwKKyAgICBPVVRQVVRfRk9STUFUICAgICAsICJCT09TVF9URVNUX09VVFBVVF9GT1JNQVQiLAorICAgIFJBTkRPTV9TRUVEICAgICAgICwgIkJPT1NUX1RFU1RfUkFORE9NIiwKKyAgICBSRVBPUlRfRk9STUFUICAgICAsICJCT09TVF9URVNUX1JFUE9SVF9GT1JNQVQiLAorICAgIFJFUE9SVF9MRVZFTCAgICAgICwgIkJPT1NUX1RFU1RfUkVQT1JUX0xFVkVMIiwKKyAgICBSRVBPUlRfU0lOSyAgICAgICAsICJCT09TVF9URVNUX1JFUE9SVF9TSU5LIiwKKyAgICBSRVNVTFRfQ09ERSAgICAgICAsICJCT09TVF9URVNUX1JFU1VMVF9DT0RFIiwKKyAgICBURVNUU19UT19SVU4gICAgICAsICJCT09TVF9URVNUU19UT19SVU4iLAorICAgIFNBVkVfVEVTVF9QQVRURVJOICwgIkJPT1NUX1RFU1RfU0FWRV9QQVRURVJOIiwKKyAgICBTSE9XX1BST0dSRVNTICAgICAsICJCT09TVF9URVNUX1NIT1dfUFJPR1JFU1MiLAorICAgIFVTRV9BTFRfU1RBQ0sgICAgICwgIkJPT1NUX1RFU1RfVVNFX0FMVF9TVEFDSyIsCisKKyAgICAiIgorKTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gc3RvcmFnZSBmb3IgdGhlIENMQXMKK2NsYTo6cGFyc2VyICAgICBzX2NsYV9wYXJzZXI7CitzdGQ6OnN0cmluZyAgICAgc19lbXB0eTsKKworb3V0cHV0X2Zvcm1hdCAgIHNfcmVwb3J0X2Zvcm1hdDsKK291dHB1dF9mb3JtYXQgICBzX2xvZ19mb3JtYXQ7CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitUCityZXRyaWV2ZV9wYXJhbWV0ZXIoIGNvbnN0X3N0cmluZyBwYXJhbWV0ZXJfbmFtZSwgY2xhOjpwYXJzZXIgY29uc3QmIHNfY2xhX3BhcnNlciwgVCBjb25zdCYgZGVmYXVsdF92YWx1ZSA9IFQoKSwgVCBjb25zdCYgb3B0aW9uYWxfdmFsdWUgPSBUKCkgKQoreworICAgIHJ0Ojpjb25zdF9hcmd1bWVudF9wdHIgYXJnID0gc19jbGFfcGFyc2VyW3BhcmFtZXRlcl9uYW1lXTsKKyAgICBpZiggYXJnICkgeworICAgICAgICBpZiggcnR0aTo6dHlwZV9pZDxUPigpID09IHJ0dGk6OnR5cGVfaWQ8Ym9vbD4oKSB8fAorICAgICAgICAgICAgIXN0YXRpY19jYXN0PGNsYTo6cGFyYW1ldGVyIGNvbnN0Jj4oIGFyZy0+cF9mb3JtYWxfcGFyYW1ldGVyLmdldCgpICkucF9vcHRpb25hbF92YWx1ZSApCisgICAgICAgICAgICByZXR1cm4gc19jbGFfcGFyc2VyLmdldDxUPiggcGFyYW1ldGVyX25hbWUgKTsKKworICAgICAgICBvcHRpb25hbDxUPiB2YWwgPSBzX2NsYV9wYXJzZXIuZ2V0PG9wdGlvbmFsPFQ+ID4oIHBhcmFtZXRlcl9uYW1lICk7CisgICAgICAgIGlmKCB2YWwgKQorICAgICAgICAgICAgcmV0dXJuICp2YWw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBvcHRpb25hbF92YWx1ZTsKKyAgICB9CisKKyAgICBuZG5ib29zdDo6b3B0aW9uYWw8VD4gdjsKKworI2lmbmRlZiBVTkRFUl9DRQorICAgIGVudjo6Z2V0KCBwYXJhbWV0ZXJfMl9lbnZfdmFyW3BhcmFtZXRlcl9uYW1lXSwgdiApOworI2VuZGlmCisKKyAgICBpZiggdiApCisgICAgICAgIHJldHVybiAqdjsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIGxvY2FsIG5hbWVzcGFjZSAKKwordm9pZAoraW5pdCggaW50JiBhcmdjLCBjaGFyKiogYXJndiApCit7CisgICAgdXNpbmcgbmFtZXNwYWNlIGNsYTsKKworICAgIHRyeSB7CisgICAgICAgIHNfY2xhX3BhcnNlciAtIGNsYTo6aWdub3JlX21pc21hdGNoCisgICAgICAgICAgPDwgY2xhOjpkdWFsX25hbWVfcGFyYW1ldGVyPGJvb2w+KCBBVVRPX1NUQVJUX0RCRyArICJ8ZCIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiQXV0b21hdGljYWxseSBzdGFydHMgZGVidWdnZXIgaWYgc3lzdGVtIGxldmVsIGVycm9yIChzaWduYWwpIG9jY3VycyIpCisgICAgICAgICAgPDwgY2xhOjpuYW1lZF9wYXJhbWV0ZXI8c3RkOjpzdHJpbmc+KCBCUkVBS19FWEVDX1BBVEggKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS0iLGNsYTo6c2VwYXJhdG9yID0gIj0iLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJGb3IgdGhlIGV4Y2VwdGlvbiBzYWZldHkgdGVzdGluZyBhbGxvd3MgdG8gYnJlYWsgYXQgc3BlY2lmaWMgZXhlY3V0aW9uIHBhdGgiKQorICAgICAgICAgIDw8IGNsYTo6ZHVhbF9uYW1lX3BhcmFtZXRlcjxib29sPiggQlVJTERfSU5GTyArICJ8aSIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiU2hvd3MgbGlicmFyeSBidWlsZCBpbmZvcm1hdGlvbiIgKQorICAgICAgICAgIDw8IGNsYTo6ZHVhbF9uYW1lX3BhcmFtZXRlcjxib29sPiggQ0FUQ0hfU1lTX0VSUk9SUyArICJ8cyIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiQWxsb3dzIHRvIHN3aXRjaCBiZXR3ZWVuIGNhdGNoaW5nIGFuZCBpZ25vcmluZyBzeXN0ZW0gZXJyb3JzIChzaWduYWxzKSIpCisgICAgICAgICAgPDwgY2xhOjpuYW1lZF9wYXJhbWV0ZXI8Ym9vbD4oIERFVEVDVF9GUF9FWENFUFQgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS0iLGNsYTo6c2VwYXJhdG9yID0gIj0iLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJBbGxvd3MgdG8gc3dpdGNoIGJldHdlZW4gY2F0Y2hpbmcgYW5kIGlnbm9yaW5nIGZsb2F0aW5nIHBvaW50IGV4Y2VwdGlvbnMiKQorICAgICAgICAgIDw8IGNsYTo6bmFtZWRfcGFyYW1ldGVyPGxvbmc+KCBERVRFQ1RfTUVNX0xFQUtTICkKKyAgICAgICAgICAgIC0gKGNsYTo6cHJlZml4ID0gIi0tIixjbGE6OnNlcGFyYXRvciA9ICI9IixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiQWxsb3dzIHRvIHN3aXRjaCBiZXR3ZWVuIGNhdGNoaW5nIGFuZCBpZ25vcmluZyBtZW1vcnkgbGVha3MiKQorICAgICAgICAgIDw8IGNsYTo6ZHVhbF9uYW1lX3BhcmFtZXRlcjx1bml0X3Rlc3Q6Om91dHB1dF9mb3JtYXQ+KCBMT0dfRk9STUFUICsgInxmIiApCisgICAgICAgICAgICAtIChjbGE6OnByZWZpeCA9ICItLXwtIixjbGE6OnNlcGFyYXRvciA9ICI9fCAiLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJTcGVjaWZpZXMgbG9nIGZvcm1hdCIpCisgICAgICAgICAgPDwgY2xhOjpkdWFsX25hbWVfcGFyYW1ldGVyPHVuaXRfdGVzdDo6bG9nX2xldmVsPiggTE9HX0xFVkVMICsgInxsIiApCisgICAgICAgICAgICAtIChjbGE6OnByZWZpeCA9ICItLXwtIixjbGE6OnNlcGFyYXRvciA9ICI9fCAiLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJTcGVjaWZpZXMgbG9nIGxldmVsIikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8c3RkOjpzdHJpbmc+KCBMT0dfU0lOSyArICJ8ayIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiU3BlY2lmaWVzIGxvZyBzaW5rOnN0ZG91dChkZWZhdWx0KSxzdGRlcnIgb3IgZmlsZSBuYW1lIikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8dW5pdF90ZXN0OjpvdXRwdXRfZm9ybWF0PiggT1VUUFVUX0ZPUk1BVCArICJ8byIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiU3BlY2lmaWVzIG91dHB1dCBmb3JtYXQgKGJvdGggbG9nIGFuZCByZXBvcnQpIikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8aW50PiggUkFORE9NX1NFRUQgKyAifGEiICkKKyAgICAgICAgICAgIC0gKGNsYTo6cHJlZml4ID0gIi0tfC0iLGNsYTo6c2VwYXJhdG9yID0gIj18ICIsY2xhOjpndWVzc19uYW1lLGNsYTo6b3B0aW9uYWwsY2xhOjpvcHRpb25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiQWxsb3dzIHRvIHN3aXRjaCBiZXR3ZWVuIHNlcXVlbnRpYWwgYW5kIHJhbmRvbSBvcmRlciBvZiB0ZXN0IHVuaXRzIGV4ZWN1dGlvbi5cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3B0aW9uYWxseSBhbGxvd3MgdG8gc3BlY2lmeSBjb25jcmV0ZSBzZWVkIGZvciByYW5kb20gbnVtYmVyIGdlbmVyYXRvciIpCisgICAgICAgICAgPDwgY2xhOjpkdWFsX25hbWVfcGFyYW1ldGVyPHVuaXRfdGVzdDo6b3V0cHV0X2Zvcm1hdD4oIFJFUE9SVF9GT1JNQVQgKyAifG0iICkKKyAgICAgICAgICAgIC0gKGNsYTo6cHJlZml4ID0gIi0tfC0iLGNsYTo6c2VwYXJhdG9yID0gIj18ICIsY2xhOjpndWVzc19uYW1lLGNsYTo6b3B0aW9uYWwsCisgICAgICAgICAgICAgICBjbGE6OmRlc2NyaXB0aW9uID0gIlNwZWNpZmllcyByZXBvcnQgZm9ybWF0IikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8dW5pdF90ZXN0OjpyZXBvcnRfbGV2ZWw+KFJFUE9SVF9MRVZFTCArICJ8ciIpCisgICAgICAgICAgICAtIChjbGE6OnByZWZpeCA9ICItLXwtIixjbGE6OnNlcGFyYXRvciA9ICI9fCAiLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJTcGVjaWZpZXMgcmVwb3J0IGxldmVsIikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8c3RkOjpzdHJpbmc+KCBSRVBPUlRfU0lOSyArICJ8ZSIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiU3BlY2lmaWVzIHJlcG9ydCBzaW5rOnN0ZGVycihkZWZhdWx0KSxzdGRvdXQgb3IgZmlsZSBuYW1lIikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8Ym9vbD4oIFJFU1VMVF9DT0RFICsgInxjIiApCisgICAgICAgICAgICAtIChjbGE6OnByZWZpeCA9ICItLXwtIixjbGE6OnNlcGFyYXRvciA9ICI9fCAiLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJBbGxvd3MgdG8gZGlzYWJsZSB0ZXN0IG1vZHVsZXMncyByZXN1bHQgY29kZSBnZW5lcmF0aW9uIikKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8c3RkOjpzdHJpbmc+KCBURVNUU19UT19SVU4gKyAifHQiICkKKyAgICAgICAgICAgIC0gKGNsYTo6cHJlZml4ID0gIi0tfC0iLGNsYTo6c2VwYXJhdG9yID0gIj18ICIsY2xhOjpndWVzc19uYW1lLGNsYTo6b3B0aW9uYWwsCisgICAgICAgICAgICAgICBjbGE6OmRlc2NyaXB0aW9uID0gIkFsbG93cyB0byBmaWx0ZXIgd2hpY2ggdGVzdCB1bml0cyB0byBydW4iKQorICAgICAgICAgIDw8IGNsYTo6bmFtZWRfcGFyYW1ldGVyPGJvb2w+KCBTQVZFX1RFU1RfUEFUVEVSTiApCisgICAgICAgICAgICAtIChjbGE6OnByZWZpeCA9ICItLSIsY2xhOjpzZXBhcmF0b3IgPSAiPSIsY2xhOjpndWVzc19uYW1lLGNsYTo6b3B0aW9uYWwsCisgICAgICAgICAgICAgICBjbGE6OmRlc2NyaXB0aW9uID0gIkFsbG93cyB0byBzd2l0Y2ggYmV0d2VlbiBzYXZpbmcgYW5kIG1hdGNoaW5nIGFnYWluc3QgdGVzdCBwYXR0ZXJuIGZpbGUiKQorICAgICAgICAgIDw8IGNsYTo6ZHVhbF9uYW1lX3BhcmFtZXRlcjxib29sPiggU0hPV19QUk9HUkVTUyArICJ8cCIgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS18LSIsY2xhOjpzZXBhcmF0b3IgPSAiPXwgIixjbGE6Omd1ZXNzX25hbWUsY2xhOjpvcHRpb25hbCwKKyAgICAgICAgICAgICAgIGNsYTo6ZGVzY3JpcHRpb24gPSAiVHVybnMgb24gcHJvZ3Jlc3MgZGlzcGxheSIpCisgICAgICAgICAgPDwgY2xhOjpuYW1lZF9wYXJhbWV0ZXI8Ym9vbD4oIFVTRV9BTFRfU1RBQ0sgKQorICAgICAgICAgICAgLSAoY2xhOjpwcmVmaXggPSAiLS0iLGNsYTo6c2VwYXJhdG9yID0gIj0iLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJUdXJucyBvbi9vZmYgdXNhZ2Ugb2YgYW4gYWx0ZXJuYXRpdmUgc3RhY2sgZm9yIHNpZ25hbCBoYW5kbGluZyIpCisKKyAgICAgICAgICA8PCBjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXI8Ym9vbD4oICJoZWxwfD8iICkKKyAgICAgICAgICAgIC0gKGNsYTo6cHJlZml4ID0gIi0tfC0iLGNsYTo6c2VwYXJhdG9yID0gIj0iLGNsYTo6Z3Vlc3NfbmFtZSxjbGE6Om9wdGlvbmFsLAorICAgICAgICAgICAgICAgY2xhOjpkZXNjcmlwdGlvbiA9ICJ0aGlzIGhlbHAgbWVzc2FnZSIpCisgICAgICAgICAgICA7CisKKyAgICAgICAgc19jbGFfcGFyc2VyLnBhcnNlKCBhcmdjLCBhcmd2ICk7CisKKyAgICAgICAgaWYoIHNfY2xhX3BhcnNlclsiaGVscCJdICkgeworICAgICAgICAgICAgc19jbGFfcGFyc2VyLmhlbHAoIHN0ZDo6Y291dCApOworICAgICAgICAgICAgdGhyb3cgZnJhbWV3b3JrOjpub3RoaW5nX3RvX3Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNfcmVwb3J0X2Zvcm1hdCAgICAgPSByZXRyaWV2ZV9wYXJhbWV0ZXIoIFJFUE9SVF9GT1JNQVQsIHNfY2xhX3BhcnNlciwgdW5pdF90ZXN0OjpDTEYgKTsKKyAgICAgICAgc19sb2dfZm9ybWF0ICAgICAgICA9IHJldHJpZXZlX3BhcmFtZXRlciggTE9HX0ZPUk1BVCwgc19jbGFfcGFyc2VyLCB1bml0X3Rlc3Q6OkNMRiApOworCisgICAgICAgIHVuaXRfdGVzdDo6b3V0cHV0X2Zvcm1hdCBvZiA9IHJldHJpZXZlX3BhcmFtZXRlciggT1VUUFVUX0ZPUk1BVCwgc19jbGFfcGFyc2VyLCB1bml0X3Rlc3Q6OklOVl9PRiApOworCisgICAgICAgIGlmKCBvZiAhPSB1bml0X3Rlc3Q6OklOVl9PRiApCisgICAgICAgICAgICBzX3JlcG9ydF9mb3JtYXQgPSBzX2xvZ19mb3JtYXQgPSBvZjsKKyAgICB9CisgICAgY2F0Y2goIHJ0Ojpsb2dpY19lcnJvciBjb25zdCYgZXggKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBlcnI7CisgICAgICAgIAorICAgICAgICBlcnIgPDwgIkZhaWwgdG8gcHJvY2VzcyBydW50aW1lIHBhcmFtZXRlcnM6ICIgPDwgZXgubXNnKCkgPDwgc3RkOjplbmRsOworICAgICAgICBzX2NsYV9wYXJzZXIudXNhZ2UoIGVyciApOworCisgICAgICAgIHRocm93IGZyYW1ld29yazo6c2V0dXBfZXJyb3IoIGVyci5zdHIoKSApOworICAgIH0KK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordW5pdF90ZXN0Ojpsb2dfbGV2ZWwKK2xvZ19sZXZlbCgpCit7CisgICAgcmV0dXJuIHJldHJpZXZlX3BhcmFtZXRlciggTE9HX0xFVkVMLCBzX2NsYV9wYXJzZXIsIHVuaXRfdGVzdDo6bG9nX2FsbF9lcnJvcnMgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworYm9vbAorbm9fcmVzdWx0X2NvZGUoKQoreworICAgIHJldHVybiAhcmV0cmlldmVfcGFyYW1ldGVyKCBSRVNVTFRfQ09ERSwgc19jbGFfcGFyc2VyLCB0cnVlICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3VuaXRfdGVzdDo6cmVwb3J0X2xldmVsCityZXBvcnRfbGV2ZWwoKQoreworICAgIHJldHVybiByZXRyaWV2ZV9wYXJhbWV0ZXIoIFJFUE9SVF9MRVZFTCwgc19jbGFfcGFyc2VyLCB1bml0X3Rlc3Q6OkNPTkZJUk1BVElPTl9SRVBPUlQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworY29uc3Rfc3RyaW5nCit0ZXN0X3RvX3J1bigpCit7CisgICAgc3RhdGljIHN0ZDo6c3RyaW5nIHNfdGVzdF90b19ydW4gPSByZXRyaWV2ZV9wYXJhbWV0ZXIoIFRFU1RTX1RPX1JVTiwgc19jbGFfcGFyc2VyLCBzX2VtcHR5ICk7CisKKyAgICByZXR1cm4gc190ZXN0X3RvX3J1bjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworY29uc3Rfc3RyaW5nCiticmVha19leGVjX3BhdGgoKQoreworICAgIHN0YXRpYyBzdGQ6OnN0cmluZyBzX2JyZWFrX2V4ZWNfcGF0aCA9IHJldHJpZXZlX3BhcmFtZXRlciggQlJFQUtfRVhFQ19QQVRILCBzX2NsYV9wYXJzZXIsIHNfZW1wdHkgKTsKKworICAgIHJldHVybiBzX2JyZWFrX2V4ZWNfcGF0aDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworYm9vbAorc2F2ZV9wYXR0ZXJuKCkKK3sKKyAgICByZXR1cm4gcmV0cmlldmVfcGFyYW1ldGVyKCBTQVZFX1RFU1RfUEFUVEVSTiwgc19jbGFfcGFyc2VyLCBmYWxzZSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitib29sCitzaG93X3Byb2dyZXNzKCkKK3sKKyAgICByZXR1cm4gcmV0cmlldmVfcGFyYW1ldGVyKCBTSE9XX1BST0dSRVNTLCBzX2NsYV9wYXJzZXIsIGZhbHNlICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wKK3Nob3dfYnVpbGRfaW5mbygpCit7CisgICAgcmV0dXJuIHJldHJpZXZlX3BhcmFtZXRlciggQlVJTERfSU5GTywgc19jbGFfcGFyc2VyLCBmYWxzZSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitib29sCitjYXRjaF9zeXNfZXJyb3JzKCkKK3sKKyAgICByZXR1cm4gcmV0cmlldmVfcGFyYW1ldGVyKCBDQVRDSF9TWVNfRVJST1JTLCBzX2NsYV9wYXJzZXIsIAorI2lmZGVmIEJPT1NUX1RFU1RfREVGQVVMVFNfVE9fQ09SRV9EVU1QCisgICAgICAgIGZhbHNlCisjZWxzZQorICAgICAgICB0cnVlIAorI2VuZGlmCisgICAgICAgICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wKK2F1dG9fc3RhcnRfZGJnKCkKK3sKKyAgICAvLyAhISBzZXQgZGVidWdnZXIgYXMgYW4gb3B0aW9uCisgICAgcmV0dXJuIHJldHJpZXZlX3BhcmFtZXRlciggQVVUT19TVEFSVF9EQkcsIHNfY2xhX3BhcnNlciwgZmFsc2UgKTsKKzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworYm9vbAordXNlX2FsdF9zdGFjaygpCit7CisgICAgcmV0dXJuIHJldHJpZXZlX3BhcmFtZXRlciggVVNFX0FMVF9TVEFDSywgc19jbGFfcGFyc2VyLCB0cnVlICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wKK2RldGVjdF9mcF9leGNlcHRpb25zKCkKK3sKKyAgICByZXR1cm4gcmV0cmlldmVfcGFyYW1ldGVyKCBERVRFQ1RfRlBfRVhDRVBULCBzX2NsYV9wYXJzZXIsIGZhbHNlICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK291dHB1dF9mb3JtYXQKK3JlcG9ydF9mb3JtYXQoKQoreworICAgIHJldHVybiBzX3JlcG9ydF9mb3JtYXQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK291dHB1dF9mb3JtYXQKK2xvZ19mb3JtYXQoKQoreworICAgIHJldHVybiBzX2xvZ19mb3JtYXQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0ZDo6b3N0cmVhbSoKK3JlcG9ydF9zaW5rKCkKK3sKKyAgICBzdGQ6OnN0cmluZyBzaW5rX25hbWUgPSByZXRyaWV2ZV9wYXJhbWV0ZXIoIFJFUE9SVF9TSU5LLCBzX2NsYV9wYXJzZXIsIHNfZW1wdHkgKTsKKworICAgIGlmKCBzaW5rX25hbWUuZW1wdHkoKSB8fCBzaW5rX25hbWUgPT0gInN0ZGVyciIgKQorICAgICAgICByZXR1cm4gJnN0ZDo6Y2VycjsgICAgCisgICAgCisgICAgaWYoIHNpbmtfbmFtZSA9PSAic3Rkb3V0IiApCisgICAgICAgIHJldHVybiAmc3RkOjpjb3V0OworCisgICAgc3RhdGljIHN0ZDo6b2ZzdHJlYW0gbG9nX2ZpbGUoIHNpbmtfbmFtZS5jX3N0cigpICk7CisgICAgcmV0dXJuICZsb2dfZmlsZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RkOjpvc3RyZWFtKgorbG9nX3NpbmsoKQoreworICAgIHN0ZDo6c3RyaW5nIHNpbmtfbmFtZSA9IHJldHJpZXZlX3BhcmFtZXRlciggTE9HX1NJTkssIHNfY2xhX3BhcnNlciwgc19lbXB0eSApOworCisgICAgaWYoIHNpbmtfbmFtZS5lbXB0eSgpIHx8IHNpbmtfbmFtZSA9PSAic3Rkb3V0IiApCisgICAgICAgIHJldHVybiAmc3RkOjpjb3V0OyAgICAKKworICAgIGlmKCBzaW5rX25hbWUgPT0gInN0ZGVyciIgKQorICAgICAgICByZXR1cm4gJnN0ZDo6Y2VycjsgICAgCisKKyAgICBzdGF0aWMgc3RkOjpvZnN0cmVhbSByZXBvcnRfZmlsZSggc2lua19uYW1lLmNfc3RyKCkgKTsKKyAgICByZXR1cm4gJnJlcG9ydF9maWxlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitsb25nCitkZXRlY3RfbWVtb3J5X2xlYWtzKCkKK3sKKyAgICByZXR1cm4gcmV0cmlldmVfcGFyYW1ldGVyKCBERVRFQ1RfTUVNX0xFQUtTLCBzX2NsYV9wYXJzZXIsIHN0YXRpY19jYXN0PGxvbmc+KDEpICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2ludAorcmFuZG9tX3NlZWQoKQoreworICAgIHJldHVybiByZXRyaWV2ZV9wYXJhbWV0ZXIoIFJBTkRPTV9TRUVELCBzX2NsYV9wYXJzZXIsIDAsIDEgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgcnVudGltZV9jb25maWcKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9VTklUX1RFU1RfUEFSQU1FVEVSU19JUFBfMDEyMjA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW1wbC91bml0X3Rlc3Rfc3VpdGUuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3N1aXRlLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODM2ODJkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwvdW5pdF90ZXN0X3N1aXRlLmlwcApAQCAtMCwwICsxLDM0NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IHByaXZpZGVzIGNvcmUgaW1wbGVtZW50YXRpb24gZm9yIFVuaXQgVGVzdCBGcmFtZXdvcmsuCisvLyAgICAgICAgICAgICAgICBFeHRlbnNpb25zIGNhbiBiZSBwcm92aWRlZCBpbiBzZXBhcmF0ZSBmaWxlcworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9VTklUX1RFU1RfU1VJVEVfSVBQXzAxMjIwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1VOSVRfVEVTVF9TVUlURV9JUFBfMDEyMjA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvZm9yZWFjaC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9yZXN1bHRzX2NvbGxlY3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvdW5pdF90ZXN0X3BhcmFtZXRlcnMuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3RpbWVyLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKSAmJiBcCisgICAgQk9PU1RfV09SS0FST1VORChfU1RMUE9SVF9WRVJTSU9OLCA8PSAweDQ1MCkgXAorICAgIC8qKi8KKyAgICB1c2luZyBzdGQ6OnJhbmQ7IC8vIHJhbmQgaXMgaW4gc3RkIGFuZCByYW5kb21fc2h1ZmZsZSBpcyBpbiBfU1RMCisjZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICB0ZXN0X3VuaXQgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVzdF91bml0Ojp0ZXN0X3VuaXQoIGNvbnN0X3N0cmluZyBuYW1lLCB0ZXN0X3VuaXRfdHlwZSB0ICkKKzogcF90eXBlKCB0ICkKKywgcF90eXBlX25hbWUoIHQgPT0gdHV0X2Nhc2UgPyAiY2FzZSIgOiAic3VpdGUiICkKKywgcF9pZCggSU5WX1RFU1RfVU5JVF9JRCApCissIHBfbmFtZSggc3RkOjpzdHJpbmcoIG5hbWUuYmVnaW4oKSwgbmFtZS5zaXplKCkgKSApCissIHBfZW5hYmxlZCggdHJ1ZSApCit7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3Rlc3RfdW5pdDo6fnRlc3RfdW5pdCgpCit7CisgICAgZnJhbWV3b3JrOjpkZXJlZ2lzdGVyX3Rlc3RfdW5pdCggdGhpcyApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit0ZXN0X3VuaXQ6OmRlcGVuZHNfb24oIHRlc3RfdW5pdCogdHUgKQoreworICAgIG1fZGVwZW5kZW5jaWVzLnB1c2hfYmFjayggdHUtPnBfaWQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworYm9vbAordGVzdF91bml0OjpjaGVja19kZXBlbmRlbmNpZXMoKSBjb25zdAoreworICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF91bml0X2lkLCB0dV9pZCwgbV9kZXBlbmRlbmNpZXMgKSB7CisgICAgICAgIGlmKCAhdW5pdF90ZXN0OjpyZXN1bHRzX2NvbGxlY3Rvci5yZXN1bHRzKCB0dV9pZCApLnBhc3NlZCgpICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordGVzdF91bml0OjppbmNyZWFzZV9leHBfZmFpbCggdW5zaWduZWQgbnVtICkKK3sKKyAgICBwX2V4cGVjdGVkX2ZhaWx1cmVzLnZhbHVlICs9IG51bTsKKworICAgIGlmKCBwX3BhcmVudF9pZCAhPSAwICkKKyAgICAgICAgZnJhbWV3b3JrOjpnZXQ8dGVzdF9zdWl0ZT4oIHBfcGFyZW50X2lkICkuaW5jcmVhc2VfZXhwX2ZhaWwoIG51bSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgdGVzdF9jYXNlICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3Rlc3RfY2FzZTo6dGVzdF9jYXNlKCBjb25zdF9zdHJpbmcgbmFtZSwgY2FsbGJhY2swPD4gY29uc3QmIHRlc3RfZnVuYyApCis6IHRlc3RfdW5pdCggbmFtZSwgc3RhdGljX2Nhc3Q8dGVzdF91bml0X3R5cGU+KHR5cGUpICkKKywgbV90ZXN0X2Z1bmMoIHRlc3RfZnVuYyApCit7CisgICAgIC8vICEhIHdlaXJkZXN0IE1TVkMgQlVHOyB0cnkgdG8gcmVtb3ZlIHRoaXMgc3RhdGVtZW50OyBsb29rcyBsaWtlIGl0IGVhdHMgZmlyc3QgdG9rZW4gb2YgbmV4dCBzdGF0ZW1lbnQgICAKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPDEzMDApICAgCisgICAgIDA7ICAgCisjZW5kaWYgCisgICAgZnJhbWV3b3JrOjpyZWdpc3Rlcl90ZXN0X3VuaXQoIHRoaXMgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZXN0X3N1aXRlOjp0ZXN0X3N1aXRlKCBjb25zdF9zdHJpbmcgbmFtZSApCis6IHRlc3RfdW5pdCggbmFtZSwgc3RhdGljX2Nhc3Q8dGVzdF91bml0X3R5cGU+KHR5cGUpICkKK3sKKyAgICBmcmFtZXdvcms6OnJlZ2lzdGVyX3Rlc3RfdW5pdCggdGhpcyApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit0ZXN0X3N1aXRlOjphZGQoIHRlc3RfdW5pdCogdHUsIGNvdW50ZXJfdCBleHBlY3RlZF9mYWlsdXJlcywgdW5zaWduZWQgdGltZW91dCApCit7CisgICAgaWYoIHRpbWVvdXQgIT0gMCApCisgICAgICAgIHR1LT5wX3RpbWVvdXQudmFsdWUgPSB0aW1lb3V0OworCisgICAgbV9tZW1iZXJzLnB1c2hfYmFjayggdHUtPnBfaWQgKTsKKyAgICB0dS0+cF9wYXJlbnRfaWQudmFsdWUgPSBwX2lkOworCisgICAgaWYoIHR1LT5wX2V4cGVjdGVkX2ZhaWx1cmVzICkKKyAgICAgICAgaW5jcmVhc2VfZXhwX2ZhaWwoIHR1LT5wX2V4cGVjdGVkX2ZhaWx1cmVzICk7CisKKyAgICBpZiggZXhwZWN0ZWRfZmFpbHVyZXMgKQorICAgICAgICB0dS0+aW5jcmVhc2VfZXhwX2ZhaWwoIGV4cGVjdGVkX2ZhaWx1cmVzICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3Rlc3Rfc3VpdGU6OmFkZCggdGVzdF91bml0X2dlbmVyYXRvciBjb25zdCYgZ2VuLCB1bnNpZ25lZCB0aW1lb3V0ICkKK3sKKyAgICB0ZXN0X3VuaXQqIHR1OworICAgIHdoaWxlKCh0dSA9IGdlbi5uZXh0KCksIHR1KSkKKyAgICAgICAgYWRkKCB0dSwgMCwgdGltZW91dCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit0ZXN0X3N1aXRlOjpyZW1vdmUoIHRlc3RfdW5pdF9pZCBpZCApCit7CisgICAgc3RkOjp2ZWN0b3I8dGVzdF91bml0X2lkPjo6aXRlcmF0b3IgaXQgPSBzdGQ6OmZpbmQoIG1fbWVtYmVycy5iZWdpbigpLCBtX21lbWJlcnMuZW5kKCksIGlkICk7CisKKyAgICBpZiggaXQgIT0gbV9tZW1iZXJzLmVuZCgpICkKKyAgICAgICAgbV9tZW1iZXJzLmVyYXNlKCBpdCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZXN0X3VuaXRfaWQKK3Rlc3Rfc3VpdGU6OmdldCggY29uc3Rfc3RyaW5nIHR1X25hbWUgKSBjb25zdAoreworICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF91bml0X2lkLCBpZCwgbV9tZW1iZXJzICkgeworICAgICAgICBpZiggdHVfbmFtZSA9PSBmcmFtZXdvcms6OmdldCggaWQsIHV0X2RldGFpbDo6dGVzdF9pZF8yX3VuaXRfdHlwZSggaWQgKSApLnBfbmFtZS5nZXQoKSApCisgICAgICAgICAgICByZXR1cm4gaWQ7CisgICAgfQorCisgICAgcmV0dXJuIElOVl9URVNUX1VOSVRfSUQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordm9pZAordHJhdmVyc2VfdGVzdF90cmVlKCB0ZXN0X2Nhc2UgY29uc3QmIHRjLCB0ZXN0X3RyZWVfdmlzaXRvciYgViApCit7CisgICAgaWYoIHRjLnBfZW5hYmxlZCApCisgICAgVi52aXNpdCggdGMgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAordHJhdmVyc2VfdGVzdF90cmVlKCB0ZXN0X3N1aXRlIGNvbnN0JiBzdWl0ZSwgdGVzdF90cmVlX3Zpc2l0b3ImIFYgKQoreworICAgIGlmKCAhc3VpdGUucF9lbmFibGVkIHx8ICFWLnRlc3Rfc3VpdGVfc3RhcnQoIHN1aXRlICkgKQorICAgICAgICByZXR1cm47CisKKyAgICB0cnkgeworICAgICAgICBpZiggcnVudGltZV9jb25maWc6OnJhbmRvbV9zZWVkKCkgPT0gMCApIHsKKyAgICAgICAgICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggdGVzdF91bml0X2lkLCBpZCwgc3VpdGUubV9tZW1iZXJzICkKKyAgICAgICAgICAgICAgICB0cmF2ZXJzZV90ZXN0X3RyZWUoIGlkLCBWICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx0ZXN0X3VuaXRfaWQ+IG1lbWJlcnMoIHN1aXRlLm1fbWVtYmVycyApOworICAgICAgICAgICAgc3RkOjpyYW5kb21fc2h1ZmZsZSggbWVtYmVycy5iZWdpbigpLCBtZW1iZXJzLmVuZCgpICk7CisgICAgICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHRlc3RfdW5pdF9pZCwgaWQsIG1lbWJlcnMgKQorICAgICAgICAgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggaWQsIFYgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9IGNhdGNoKCB0ZXN0X2JlaW5nX2Fib3J0ZWQgY29uc3QmICkgeworICAgICAgICBWLnRlc3Rfc3VpdGVfZmluaXNoKCBzdWl0ZSApOworICAgICAgICBmcmFtZXdvcms6OnRlc3RfdW5pdF9hYm9ydGVkKCBzdWl0ZSApOworCisgICAgICAgIHRocm93OworICAgIH0KKworICAgIFYudGVzdF9zdWl0ZV9maW5pc2goIHN1aXRlICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3RyYXZlcnNlX3Rlc3RfdHJlZSggdGVzdF91bml0X2lkIGlkLCB0ZXN0X3RyZWVfdmlzaXRvciYgViApCit7CisgICAgaWYoIHV0X2RldGFpbDo6dGVzdF9pZF8yX3VuaXRfdHlwZSggaWQgKSA9PSB0dXRfY2FzZSApCisgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggZnJhbWV3b3JrOjpnZXQ8dGVzdF9jYXNlPiggaWQgKSwgViApOworICAgIGVsc2UKKyAgICAgICAgdHJhdmVyc2VfdGVzdF90cmVlKCBmcmFtZXdvcms6OmdldDx0ZXN0X3N1aXRlPiggaWQgKSwgViApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgdGVzdF9jYXNlX2NvdW50ZXIgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3ZvaWQKK3Rlc3RfY2FzZV9jb3VudGVyOjp2aXNpdCggdGVzdF9jYXNlIGNvbnN0JiB0YyApCit7CisgICAgaWYoIHRjLnBfZW5hYmxlZCApCisgICAgICAgICsrcF9jb3VudC52YWx1ZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgb2JqZWN0IGdlbmVyYXRvcnMgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworc3RkOjpzdHJpbmcKK25vcm1hbGl6ZV90ZXN0X2Nhc2VfbmFtZSggY29uc3Rfc3RyaW5nIG5hbWUgKQoreworICAgIHJldHVybiAoIG5hbWVbMF0gPT0gJyYnCisgICAgICAgICAgICAgICAgPyBzdGQ6OnN0cmluZyggbmFtZS5iZWdpbigpKzEsIG5hbWUuc2l6ZSgpLTEgKQorICAgICAgICAgICAgICAgIDogc3RkOjpzdHJpbmcoIG5hbWUuYmVnaW4oKSwgbmFtZS5zaXplKCkgKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgIGF1dG9fdGVzdF91bml0X3JlZ2lzdHJhciAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2F1dG9fdGVzdF91bml0X3JlZ2lzdHJhcjo6YXV0b190ZXN0X3VuaXRfcmVnaXN0cmFyKCB0ZXN0X2Nhc2UqIHRjLCBjb3VudGVyX3QgZXhwX2ZhaWwgKQoreworICAgIGN1cnJfdHNfc3RvcmUoKS5iYWNrKCktPmFkZCggdGMsIGV4cF9mYWlsICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2F1dG9fdGVzdF91bml0X3JlZ2lzdHJhcjo6YXV0b190ZXN0X3VuaXRfcmVnaXN0cmFyKCBjb25zdF9zdHJpbmcgdHNfbmFtZSApCit7CisgICAgdGVzdF91bml0X2lkIGlkID0gY3Vycl90c19zdG9yZSgpLmJhY2soKS0+Z2V0KCB0c19uYW1lICk7CisKKyAgICB0ZXN0X3N1aXRlKiB0czsKKworICAgIGlmKCBpZCAhPSBJTlZfVEVTVF9VTklUX0lEICkgeworICAgICAgICB0cyA9ICZmcmFtZXdvcms6OmdldDx0ZXN0X3N1aXRlPiggaWQgKTsgLy8gISEgdGVzdCBmb3IgaW52YWxpZCB0dSB0eXBlCisgICAgICAgIEJPT1NUX0FTU0VSVCggdHMtPnBfcGFyZW50X2lkID09IGN1cnJfdHNfc3RvcmUoKS5iYWNrKCktPnBfaWQgKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHRzID0gbmV3IHRlc3Rfc3VpdGUoIHRzX25hbWUgKTsKKyAgICAgICAgY3Vycl90c19zdG9yZSgpLmJhY2soKS0+YWRkKCB0cyApOworICAgIH0KKworICAgIGN1cnJfdHNfc3RvcmUoKS5wdXNoX2JhY2soIHRzICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2F1dG9fdGVzdF91bml0X3JlZ2lzdHJhcjo6YXV0b190ZXN0X3VuaXRfcmVnaXN0cmFyKCB0ZXN0X3VuaXRfZ2VuZXJhdG9yIGNvbnN0JiB0Y19nZW4gKQoreworICAgIGN1cnJfdHNfc3RvcmUoKS5iYWNrKCktPmFkZCggdGNfZ2VuICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2F1dG9fdGVzdF91bml0X3JlZ2lzdHJhcjo6YXV0b190ZXN0X3VuaXRfcmVnaXN0cmFyKCBpbnQgKQoreworICAgIGlmKCBjdXJyX3RzX3N0b3JlKCkuc2l6ZSgpID09IDAgKQorICAgICAgICByZXR1cm47IC8vIHJlcG9ydCBlcnJvcj8KKworICAgIGN1cnJfdHNfc3RvcmUoKS5wb3BfYmFjaygpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdGQ6Omxpc3Q8dGVzdF9zdWl0ZSo+JgorYXV0b190ZXN0X3VuaXRfcmVnaXN0cmFyOjpjdXJyX3RzX3N0b3JlKCkKK3sKKyAgICBzdGF0aWMgc3RkOjpsaXN0PHRlc3Rfc3VpdGUqPiBpbnN0KCAxLCAmZnJhbWV3b3JrOjptYXN0ZXJfdGVzdF9zdWl0ZSgpICk7CisgICAgcmV0dXJuIGluc3Q7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHV0X2RldGFpbAorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgZ2xvYmFsX2ZpeHR1cmUgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2dsb2JhbF9maXh0dXJlOjpnbG9iYWxfZml4dHVyZSgpCit7CisgICAgZnJhbWV3b3JrOjpyZWdpc3Rlcl9vYnNlcnZlciggKnRoaXMgKTsKK30gCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfVU5JVF9URVNUX1NVSVRFX0lQUF8wMTIyMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3htbF9sb2dfZm9ybWF0dGVyLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3htbF9sb2dfZm9ybWF0dGVyLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmY2NDYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwveG1sX2xvZ19mb3JtYXR0ZXIuaXBwCkBAIC0wLDAgKzEsMTgwIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTc5OTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGltcGxlbWVudHMgWE1MIExvZyBmb3JtYXR0ZXIKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfWE1MX0xPR19GT1JNQVRURVJfSVBQXzAyMDEwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1hNTF9MT0dfRk9STUFUVEVSX0lQUF8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3Qvb3V0cHV0L3htbF9sb2dfZm9ybWF0dGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9zdWl0ZV9pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ZyYW1ld29yay5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMveG1sX3ByaW50ZXIuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3ZlcnNpb24uaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSBvdXRwdXQgeworCitzdGF0aWMgY29uc3Rfc3RyaW5nIHR1X3R5cGVfbmFtZSggdGVzdF91bml0IGNvbnN0JiB0dSApCit7CisgICAgcmV0dXJuIHR1LnBfdHlwZSA9PSB0dXRfY2FzZSA/ICJUZXN0Q2FzZSIgOiAiVGVzdFN1aXRlIjsKK30KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgeG1sX2xvZ19mb3JtYXR0ZXIgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit2b2lkCit4bWxfbG9nX2Zvcm1hdHRlcjo6bG9nX3N0YXJ0KCBzdGQ6Om9zdHJlYW0mIG9zdHIsIGNvdW50ZXJfdCApCit7CisgICAgb3N0ciAgPDwgIjxUZXN0TG9nPiI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3htbF9sb2dfZm9ybWF0dGVyOjpsb2dfZmluaXNoKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIG9zdHIgIDw8ICI8L1Rlc3RMb2c+IjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAoreG1sX2xvZ19mb3JtYXR0ZXI6OmxvZ19idWlsZF9pbmZvKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIG9zdHIgIDw8ICI8QnVpbGRJbmZvIgorICAgICAgICAgICAgPDwgIiBwbGF0Zm9ybSIgIDw8IGF0dHJfdmFsdWUoKSA8PCBCT09TVF9QTEFURk9STQorICAgICAgICAgICAgPDwgIiBjb21waWxlciIgIDw8IGF0dHJfdmFsdWUoKSA8PCBCT09TVF9DT01QSUxFUgorICAgICAgICAgICAgPDwgIiBzdGwiICAgICAgIDw8IGF0dHJfdmFsdWUoKSA8PCBCT09TVF9TVERMSUIKKyAgICAgICAgICAgIDw8ICIgYm9vc3Q9XCIiICA8PCBCT09TVF9WRVJTSU9OLzEwMDAwMCAgICAgPDwgIi4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgQk9PU1RfVkVSU0lPTi8xMDAgJSAxMDAwIDw8ICIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IEJPT1NUX1ZFUlNJT04gJSAxMDAgICAgICA8PCAnXCInCisgICAgICAgICAgICA8PCAiLz4iOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit4bWxfbG9nX2Zvcm1hdHRlcjo6dGVzdF91bml0X3N0YXJ0KCBzdGQ6Om9zdHJlYW0mIG9zdHIsIHRlc3RfdW5pdCBjb25zdCYgdHUgKQoreworICAgIG9zdHIgPDwgIjwiIDw8IHR1X3R5cGVfbmFtZSggdHUgKSA8PCAiIG5hbWUiIDw8IGF0dHJfdmFsdWUoKSA8PCB0dS5wX25hbWUuZ2V0KCkgPDwgIj4iOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit4bWxfbG9nX2Zvcm1hdHRlcjo6dGVzdF91bml0X2ZpbmlzaCggc3RkOjpvc3RyZWFtJiBvc3RyLCB0ZXN0X3VuaXQgY29uc3QmIHR1LCB1bnNpZ25lZCBsb25nIGVsYXBzZWQgKQoreworICAgIGlmKCB0dS5wX3R5cGUgPT0gdHV0X2Nhc2UgKQorICAgICAgICBvc3RyIDw8ICI8VGVzdGluZ1RpbWU+IiA8PCBlbGFwc2VkIDw8ICI8L1Rlc3RpbmdUaW1lPiI7CisgICAgICAgIAorICAgIG9zdHIgPDwgIjwvIiA8PCB0dV90eXBlX25hbWUoIHR1ICkgPDwgIj4iOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit4bWxfbG9nX2Zvcm1hdHRlcjo6dGVzdF91bml0X3NraXBwZWQoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgdGVzdF91bml0IGNvbnN0JiB0dSApCit7CisgICAgb3N0ciA8PCAiPCIgPDwgdHVfdHlwZV9uYW1lKCB0dSApCisgICAgICAgICA8PCAiIG5hbWUiICAgIDw8IGF0dHJfdmFsdWUoKSA8PCB0dS5wX25hbWUuZ2V0KCkKKyAgICAgICAgIDw8ICIgc2tpcHBlZCIgPDwgYXR0cl92YWx1ZSgpIDw8ICJ5ZXMiCisgICAgICAgICA8PCAiLz4iOworfQorICAgIAorLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAoreG1sX2xvZ19mb3JtYXR0ZXI6OmxvZ19leGNlcHRpb24oIHN0ZDo6b3N0cmVhbSYgb3N0ciwgbG9nX2NoZWNrcG9pbnRfZGF0YSBjb25zdCYgY2hlY2twb2ludF9kYXRhLCBleGVjdXRpb25fZXhjZXB0aW9uIGNvbnN0JiBleCApCit7CisgICAgZXhlY3V0aW9uX2V4Y2VwdGlvbjo6bG9jYXRpb24gY29uc3QmIGxvYyA9IGV4LndoZXJlKCk7CisKKyAgICBvc3RyIDw8ICI8RXhjZXB0aW9uIGZpbGUiIDw8IGF0dHJfdmFsdWUoKSA8PCBsb2MubV9maWxlX25hbWUKKyAgICAgICAgIDw8ICIgbGluZSIgICAgICAgICAgIDw8IGF0dHJfdmFsdWUoKSA8PCBsb2MubV9saW5lX251bTsKKworICAgIGlmKCAhbG9jLm1fZnVuY3Rpb24uaXNfZW1wdHkoKSApCisgICAgICAgIG9zdHIgPDwgIiBmdW5jdGlvbiIgICA8PCBhdHRyX3ZhbHVlKCkgPDwgbG9jLm1fZnVuY3Rpb247CisKKyAgICBvc3RyIDw8ICI+IiA8PCBjZGF0YSgpIDw8IGV4LndoYXQoKTsKKworICAgIGlmKCAhY2hlY2twb2ludF9kYXRhLm1fZmlsZV9uYW1lLmlzX2VtcHR5KCkgKSB7CisgICAgICAgIG9zdHIgPDwgIjxMYXN0Q2hlY2twb2ludCBmaWxlIiA8PCBhdHRyX3ZhbHVlKCkgPDwgY2hlY2twb2ludF9kYXRhLm1fZmlsZV9uYW1lCisgICAgICAgICAgICAgPDwgIiBsaW5lIiAgICAgICAgICAgICAgICA8PCBhdHRyX3ZhbHVlKCkgPDwgY2hlY2twb2ludF9kYXRhLm1fbGluZV9udW0KKyAgICAgICAgICAgICA8PCAiPiIKKyAgICAgICAgICAgICA8PCBjZGF0YSgpIDw8IGNoZWNrcG9pbnRfZGF0YS5tX21lc3NhZ2UKKyAgICAgICAgICAgICA8PCAiPC9MYXN0Q2hlY2twb2ludD4iOworICAgIH0KKworICAgIG9zdHIgPDwgIjwvRXhjZXB0aW9uPiI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3htbF9sb2dfZm9ybWF0dGVyOjpsb2dfZW50cnlfc3RhcnQoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgbG9nX2VudHJ5X2RhdGEgY29uc3QmIGVudHJ5X2RhdGEsIGxvZ19lbnRyeV90eXBlcyBsZXQgKQoreworICAgIHN0YXRpYyBsaXRlcmFsX3N0cmluZyB4bWxfdGFnc1tdID0geyAiSW5mbyIsICJNZXNzYWdlIiwgIldhcm5pbmciLCAiRXJyb3IiLCAiRmF0YWxFcnJvciIgfTsKKworICAgIG1fY3Vycl90YWcgPSB4bWxfdGFnc1tsZXRdOworICAgIG9zdHIgPDwgJzwnIDw8IG1fY3Vycl90YWcKKyAgICAgICAgIDw8IEJPT1NUX1RFU1RfTCggIiBmaWxlIiApIDw8IGF0dHJfdmFsdWUoKSA8PCBlbnRyeV9kYXRhLm1fZmlsZV9uYW1lCisgICAgICAgICA8PCBCT09TVF9URVNUX0woICIgbGluZSIgKSA8PCBhdHRyX3ZhbHVlKCkgPDwgZW50cnlfZGF0YS5tX2xpbmVfbnVtCisgICAgICAgICA8PCBCT09TVF9URVNUX0woICI+PCFbQ0RBVEFbIiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit4bWxfbG9nX2Zvcm1hdHRlcjo6bG9nX2VudHJ5X3ZhbHVlKCBzdGQ6Om9zdHJlYW0mIG9zdHIsIGNvbnN0X3N0cmluZyB2YWx1ZSApCit7CisgICAgb3N0ciA8PCB2YWx1ZTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAoreG1sX2xvZ19mb3JtYXR0ZXI6OmxvZ19lbnRyeV9maW5pc2goIHN0ZDo6b3N0cmVhbSYgb3N0ciApCit7CisgICAgb3N0ciA8PCBCT09TVF9URVNUX0woICJdXT48LyIgKSA8PCBtX2N1cnJfdGFnIDw8IEJPT1NUX1RFU1RfTCggIj4iICk7CisKKyAgICBtX2N1cnJfdGFnLmNsZWFyKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIG91dHB1dAorCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX1hNTF9MT0dfRk9STUFUVEVSX0lQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3htbF9yZXBvcnRfZm9ybWF0dGVyLmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbXBsL3htbF9yZXBvcnRfZm9ybWF0dGVyLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjY1NWVlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L2ltcGwveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaXBwCkBAIC0wLDAgKzEsMTE1IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IFhNTCByZXBvcnQgZm9ybWF0dGVyCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX1hNTF9SRVBPUlRfRk9STUFUVEVSX0lQUF8wMjAxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9YTUxfUkVQT1JUX0ZPUk1BVFRFUl9JUFBfMDIwMTA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Jlc3VsdHNfY29sbGVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9zdWl0ZV9pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L291dHB1dC94bWxfcmVwb3J0X2Zvcm1hdHRlci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3htbF9wcmludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworbmFtZXNwYWNlIG91dHB1dCB7CisKK3ZvaWQKK3htbF9yZXBvcnRfZm9ybWF0dGVyOjpyZXN1bHRzX3JlcG9ydF9zdGFydCggc3RkOjpvc3RyZWFtJiBvc3RyICkKK3sKKyAgICBvc3RyIDw8ICI8VGVzdFJlc3VsdD4iOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit2b2lkCit4bWxfcmVwb3J0X2Zvcm1hdHRlcjo6cmVzdWx0c19yZXBvcnRfZmluaXNoKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIG9zdHIgPDwgIjwvVGVzdFJlc3VsdD4iOworfQorCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3ZvaWQKK3htbF9yZXBvcnRfZm9ybWF0dGVyOjp0ZXN0X3VuaXRfcmVwb3J0X3N0YXJ0KCB0ZXN0X3VuaXQgY29uc3QmIHR1LCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIHRlc3RfcmVzdWx0cyBjb25zdCYgdHIgPSByZXN1bHRzX2NvbGxlY3Rvci5yZXN1bHRzKCB0dS5wX2lkICk7CisKKyAgICBjb25zdF9zdHJpbmcgZGVzY3I7CisKKyAgICBpZiggdHIucGFzc2VkKCkgKQorICAgICAgICBkZXNjciA9ICJwYXNzZWQiOworICAgIGVsc2UgaWYoIHRyLnBfc2tpcHBlZCApCisgICAgICAgIGRlc2NyID0gInNraXBwZWQiOworICAgIGVsc2UgaWYoIHRyLnBfYWJvcnRlZCApCisgICAgICAgIGRlc2NyID0gImFib3J0ZWQiOworICAgIGVsc2UKKyAgICAgICAgZGVzY3IgPSAiZmFpbGVkIjsKKworICAgIG9zdHIgPDwgJzwnIDw8ICggdHUucF90eXBlID09IHR1dF9jYXNlID8gIlRlc3RDYXNlIiA6ICJUZXN0U3VpdGUiICkgCisgICAgICAgICA8PCAiIG5hbWUiICAgICA8PCBhdHRyX3ZhbHVlKCkgPDwgdHUucF9uYW1lLmdldCgpCisgICAgICAgICA8PCAiIHJlc3VsdCIgICA8PCBhdHRyX3ZhbHVlKCkgPDwgZGVzY3IKKyAgICAgICAgIDw8ICIgYXNzZXJ0aW9uc19wYXNzZWQiICAgICAgICA8PCBhdHRyX3ZhbHVlKCkgPDwgdHIucF9hc3NlcnRpb25zX3Bhc3NlZAorICAgICAgICAgPDwgIiBhc3NlcnRpb25zX2ZhaWxlZCIgICAgICAgIDw8IGF0dHJfdmFsdWUoKSA8PCB0ci5wX2Fzc2VydGlvbnNfZmFpbGVkCisgICAgICAgICA8PCAiIGV4cGVjdGVkX2ZhaWx1cmVzIiAgICAgICAgPDwgYXR0cl92YWx1ZSgpIDw8IHRyLnBfZXhwZWN0ZWRfZmFpbHVyZXM7CisKKyAgICBpZiggdHUucF90eXBlID09IHR1dF9zdWl0ZSApCisgICAgICAgIG9zdHIgPDwgIiB0ZXN0X2Nhc2VzX3Bhc3NlZCIgICAgPDwgYXR0cl92YWx1ZSgpIDw8IHRyLnBfdGVzdF9jYXNlc19wYXNzZWQKKyAgICAgICAgICAgICA8PCAiIHRlc3RfY2FzZXNfZmFpbGVkIiAgICA8PCBhdHRyX3ZhbHVlKCkgPDwgdHIucF90ZXN0X2Nhc2VzX2ZhaWxlZAorICAgICAgICAgICAgIDw8ICIgdGVzdF9jYXNlc19za2lwcGVkIiAgIDw8IGF0dHJfdmFsdWUoKSA8PCB0ci5wX3Rlc3RfY2FzZXNfc2tpcHBlZAorICAgICAgICAgICAgIDw8ICIgdGVzdF9jYXNlc19hYm9ydGVkIiAgIDw8IGF0dHJfdmFsdWUoKSA8PCB0ci5wX3Rlc3RfY2FzZXNfYWJvcnRlZDsKKyAgICAgICAgICAgICAKKyAgICAKKyAgICBvc3RyIDw8ICc+JzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAoreG1sX3JlcG9ydF9mb3JtYXR0ZXI6OnRlc3RfdW5pdF9yZXBvcnRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmIHR1LCBzdGQ6Om9zdHJlYW0mIG9zdHIgKQoreworICAgIG9zdHIgPDwgIjwvIiA8PCAoIHR1LnBfdHlwZSA9PSB0dXRfY2FzZSA/ICJUZXN0Q2FzZSIgOiAiVGVzdFN1aXRlIiApIDw8ICc+JzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordm9pZAoreG1sX3JlcG9ydF9mb3JtYXR0ZXI6OmRvX2NvbmZpcm1hdGlvbl9yZXBvcnQoIHRlc3RfdW5pdCBjb25zdCYgdHUsIHN0ZDo6b3N0cmVhbSYgb3N0ciApCit7CisgICAgdGVzdF91bml0X3JlcG9ydF9zdGFydCggdHUsIG9zdHIgKTsKKyAgICB0ZXN0X3VuaXRfcmVwb3J0X2ZpbmlzaCggdHUsIG9zdHIgKTsgICAgCit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIG91dHB1dAorCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX1hNTF9SRVBPUlRfRk9STUFUVEVSX0lQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9pbnRlcmFjdGlvbl9iYXNlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW50ZXJhY3Rpb25fYmFzZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzhkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvaW50ZXJhY3Rpb25fYmFzZWQuaHBwCkBAIC0wLDAgKzEsMjYyIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IEZhY2lsaXRpZXMgdG8gcGVyZm9ybSBpbnRlcmFjdGlvbi1iYXNlZCB0ZXN0aW5nCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0lOVEVSQUNUSU9OX0JBU0VEX0hQUF8xMTIxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9JTlRFUkFDVElPTl9CQVNFRF9IUFBfMTEyMTA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvd3JhcF9zdHJpbmdzdHJlYW0uaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L2xleGljYWxfY2FzdC5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIEJPT1NUX0lURVNUX0VQT0lOVCAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2RlZmluZSBCT09TVF9JVEVTVF9FUE9JTlQoIGRlc2NyaXB0aW9uICkgXAorICAgIDo6bmRuYm9vc3Q6Oml0ZXN0OjptYW5hZ2VyOjppbnN0YW5jZSgpLmV4Y2VwdGlvbl9wb2ludCggQk9PU1RfVEVTVF9MKF9fRklMRV9fKSwgX19MSU5FX18sIGRlc2NyaXB0aW9uICkKKy8qKi8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgQk9PU1RfSVRFU1RfRFBPSU5UICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0lURVNUX0RQT0lOVCgpIFwKKyAgICA6Om5kbmJvb3N0OjppdGVzdDo6bWFuYWdlcjo6aW5zdGFuY2UoKS5kZWNpc2lvbl9wb2ludCggQk9PU1RfVEVTVF9MKF9fRklMRV9fKSwgX19MSU5FX18gKQorLyoqLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgQk9PU1RfSVRFU1RfU0NPUEUgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfSVRFU1RfU0NPUEUoIHNjb3BlX25hbWUgKSBcCisgICAgOjpuZG5ib29zdDo6aXRlc3Q6OnNjb3BlX2d1YXJkIGl0ZXN0X3Njb3BlX2d1YXJkICMjIF9fTElORV9fKCBCT09TVF9URVNUX0woX19GSUxFX18pLCBfX0xJTkVfXywgQk9PU1RfU1RSSU5HSVpFKHNjb3BlX25hbWUpICkKKy8qKi8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICBCT09TVF9JVEVTVF9ORVcgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0lURVNUX05FVyggdHlwZV9uYW1lICkgXAorICAgIG5ldyAoIDo6bmRuYm9vc3Q6Oml0ZXN0Ojpsb2NhdGlvbiggQk9PU1RfVEVTVF9MKF9fRklMRV9fKSwgX19MSU5FX18gKSApIHR5cGVfbmFtZQorLyoqLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgIEJPT1NUX0lURVNUX0RBVEFfRkxPVyAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfSVRFU1RfREFUQV9GTE9XKCB2ICkgXAorICAgIDo6bmRuYm9vc3Q6Oml0ZXN0OjptYW5hZ2VyOjppbnN0YW5jZSgpLmdlbmVyaWNfZGF0YV9mbG93KCB2ICkKKy8qKi8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgQk9PU1RfSVRFU1RfUkVUVVJOICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0lURVNUX1JFVFVSTiggdHlwZSwgZGVmYXVsdF92YWx1ZSApIFwKKyAgICA6Om5kbmJvb3N0OjppdGVzdDo6bWFuYWdlcjo6aW5zdGFuY2UoKS5nZW5lcmljX3JldHVybjx0eXBlPiggZGVmYXVsdF92YWx1ZSApCisvKiovCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgQk9PU1RfSVRFU1RfTU9DS19GVU5DICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2RlZmluZSBCT09TVF9JVEVTVF9NT0NLX0ZVTkMoIGZ1bmN0aW9uX25hbWUgKSAgICAgICAgICBcCisgICAgQk9PU1RfSVRFU1RfU0NPUEUoIGZ1bmN0aW9uX25hbWUgKTsgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9JVEVTVF9FUE9JTlQoIDAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiA6Om5kbmJvb3N0OjppdGVzdDo6bW9ja19vYmplY3Q8Pjo6cHJvdG90eXBlKCk7ICBcCisvKiovCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBpdGVzdCB7IC8vIGludGVyYWN0aW9uLWJhc2VkIHRlc3RpbmcKKwordXNpbmcgdW5pdF90ZXN0Ojpjb25zdF9zdHJpbmc7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICAgbWFuYWdlciAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIG1hbmFnZXIgeworcHVibGljOgorICAgIC8vIGluc3RhbmNlIGFjY2VzcworICAgIHN0YXRpYyBtYW5hZ2VyJiAgICAgaW5zdGFuY2UoKSB7IHJldHVybiAqaW5zdGFuY2VfcHRyKCk7IH0KKworICAgIC8vIE1vY2sgb2JqZWN0cyBpbnRlcmZhY2UgaG9va3MKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIGV4Y2VwdGlvbl9wb2ludCggY29uc3Rfc3RyaW5nIC8qZmlsZSovLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgLypsaW5lX251bSovLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rfc3RyaW5nIC8qZGVzY3IqLyApe30KKyAgICB2aXJ0dWFsIGJvb2wgICAgICAgIGRlY2lzaW9uX3BvaW50KCBjb25zdF9zdHJpbmcgLypmaWxlKi8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IC8qbGluZV9udW0qLyApICAgICAgICAgIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkICAgIGVudGVyX3Njb3BlKCBjb25zdF9zdHJpbmcgLypmaWxlKi8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IC8qbGluZV9udW0qLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9zdHJpbmcgLypzY29wZV9uYW1lKi8peyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCAgICAgICAgbGVhdmVfc2NvcGUoIHVuc2lnbmVkICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CisgICAgdmlydHVhbCB2b2lkICAgICAgICBhbGxvY2F0ZWQoIGNvbnN0X3N0cmluZyAvKmZpbGUqLywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IC8qbGluZV9udW0qLywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIC8qcCovLCBzdGQ6OnNpemVfdCAvKnMqLyApICAgICAgICAge30KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIGZyZWVkKCB2b2lkKiAvKnAqLyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQorICAgIHZpcnR1YWwgdm9pZCAgICAgICAgZGF0YV9mbG93KCBjb25zdF9zdHJpbmcgLypkKi8gKSAgICAgICAgICAgICAgICAgICAgIHt9CisgICAgdmlydHVhbCBzdGQ6OnN0cmluZyByZXR1cm5fdmFsdWUoIGNvbnN0X3N0cmluZyAvKmRlZmF1bHRfdmFsdWUgKi8gKSAgICAgeyByZXR1cm4gIiI7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCAgICAgICAgICAgICAgICBnZW5lcmljX2RhdGFfZmxvdyggVCBjb25zdCYgdCApCisgICAgeworICAgICAgICB3cmFwX3N0cmluZ3N0cmVhbSB3czsKKworICAgICAgICBkYXRhX2Zsb3coICh3cyA8PCB0KS5zdHIoKSApOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWZhdWx0VmFsdWVUeXBlPgorICAgIFQgICAgICAgICAgICAgICAgICAgZ2VuZXJpY19yZXR1cm4oIERlZmF1bHRWYWx1ZVR5cGUgY29uc3QmIGR2ICkKKyAgICB7CisgICAgICAgIHdyYXBfc3RyaW5nc3RyZWFtIHdzOworCisgICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiByZXMgPSByZXR1cm5fdmFsdWUoICh3cyA8PCBkdikuc3RyKCkgKTsKKworICAgICAgICBpZiggcmVzLmVtcHR5KCkgKQorICAgICAgICAgICAgcmV0dXJuIGR2OworCisgICAgICAgIHJldHVybiBsZXhpY2FsX2Nhc3Q8VD4oIHJlcyApOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIG1hbmFnZXIoKTsKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTY0KSkgCitwdWJsaWM6CisjZW5kaWYKKyAgICBCT09TVF9URVNUX1BST1RFQ1RFRF9WSVJUVUFMIH5tYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IGR1bW15X2NvbnN0cnt9OworICAgIGV4cGxpY2l0IG1hbmFnZXIoIGR1bW15X2NvbnN0ciogKSB7fQorCisgICAgc3RhdGljIG1hbmFnZXIqICAgICBpbnN0YW5jZV9wdHIoIGJvb2wgcmVzZXQgPSBmYWxzZSwgbWFuYWdlciogcHRyID0gMCApOworfTsgLy8gbWFuYWdlcgorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICBzY29wZV9ndWFyZCAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIHNjb3BlX2d1YXJkIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIHNjb3BlX2d1YXJkKCBjb25zdF9zdHJpbmcgZmlsZSwgc3RkOjpzaXplX3QgbGluZV9udW0sIGNvbnN0X3N0cmluZyBzY29wZV9uYW1lICkKKyAgICB7CisgICAgICAgIG1fc2NvcGVfaW5kZXggPSBtYW5hZ2VyOjppbnN0YW5jZSgpLmVudGVyX3Njb3BlKCBmaWxlLCBsaW5lX251bSwgc2NvcGVfbmFtZSApOworICAgIH0KKyAgICB+c2NvcGVfZ3VhcmQoKQorICAgIHsKKyAgICAgICAgbWFuYWdlcjo6aW5zdGFuY2UoKS5sZWF2ZV9zY29wZSggbV9zY29wZV9pbmRleCApOworICAgIH0KKworICAgIHVuc2lnbmVkIG1fc2NvcGVfaW5kZXg7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0cnVjdCBsb2NhdGlvbiB7CisgICAgbG9jYXRpb24oIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lICkgCisgICAgOiBtX2ZpbGVfbmFtZSggZmlsZSApCisgICAgLCBtX2xpbmVfbnVtKCBsaW5lICkKKyAgICB7fQorCisgICAgY29uc3Rfc3RyaW5nICAgIG1fZmlsZV9uYW1lOworICAgIHN0ZDo6c2l6ZV90ICAgICBtX2xpbmVfbnVtOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGl0ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgb3BlcmF0b3IgbmV3IG92ZXJsb2FkICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2lmICFkZWZpbmVkKEJPT1NUX0lURVNUX05PX05FV19PVkVSTE9BRFMpCisKKy8vIFNUTAorI2luY2x1ZGUgPGNzdGRsaWI+CisKKyMgaWZkZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKK25hbWVzcGFjZSBzdGQgeyB1c2luZyA6Om1hbGxvYzsgdXNpbmcgOjpmcmVlOyB9CisjIGVuZGlmCisjIGlmZGVmIF9DUlREQkdfTUFQX0FMTE9DCituYW1lc3BhY2Ugc3RkIHsgdXNpbmcgOjpfbWFsbG9jX2RiZzsgdXNpbmcgOjpfZnJlZV9kYmc7IH0KKyMgZW5kaWYKKworaW5saW5lIHZvaWQqCitvcGVyYXRvciBuZXcoIHN0ZDo6c2l6ZV90IHMsIDo6bmRuYm9vc3Q6Oml0ZXN0Ojpsb2NhdGlvbiBjb25zdCYgbCApCit7CisgICAgdm9pZCogcmVzID0gc3RkOjptYWxsb2MocyA/IHMgOiAxKTsKKworICAgIGlmKCByZXMgKQorICAgICAgICA6Om5kbmJvb3N0OjppdGVzdDo6bWFuYWdlcjo6aW5zdGFuY2UoKS5hbGxvY2F0ZWQoIGwubV9maWxlX25hbWUsIGwubV9saW5lX251bSwgcmVzLCBzICk7CisgICAgZWxzZQorICAgICAgICB0aHJvdyBzdGQ6OmJhZF9hbGxvYygpOworICAgICAgICAKKyAgICByZXR1cm4gcmVzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitpbmxpbmUgdm9pZCoKK29wZXJhdG9yIG5ld1tdKCBzdGQ6OnNpemVfdCBzLCA6Om5kbmJvb3N0OjppdGVzdDo6bG9jYXRpb24gY29uc3QmIGwgKQoreworICAgIHZvaWQqIHJlcyA9IHN0ZDo6bWFsbG9jKHMgPyBzIDogMSk7CisKKyAgICBpZiggcmVzICkKKyAgICAgICAgOjpuZG5ib29zdDo6aXRlc3Q6Om1hbmFnZXI6Omluc3RhbmNlKCkuYWxsb2NhdGVkKCBsLm1fZmlsZV9uYW1lLCBsLm1fbGluZV9udW0sIHJlcywgcyApOworICAgIGVsc2UKKyAgICAgICAgdGhyb3cgc3RkOjpiYWRfYWxsb2MoKTsKKyAgICAgICAgCisgICAgcmV0dXJuIHJlczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworaW5saW5lIHZvaWQKK29wZXJhdG9yIGRlbGV0ZSggdm9pZCogcCwgOjpuZG5ib29zdDo6aXRlc3Q6OmxvY2F0aW9uIGNvbnN0JiApCit7CisgICAgOjpuZG5ib29zdDo6aXRlc3Q6Om1hbmFnZXI6Omluc3RhbmNlKCkuZnJlZWQoIHAgKTsKKworICAgIHN0ZDo6ZnJlZSggcCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitpbmxpbmUgdm9pZAorb3BlcmF0b3IgZGVsZXRlW10oIHZvaWQqIHAsIDo6bmRuYm9vc3Q6Oml0ZXN0Ojpsb2NhdGlvbiBjb25zdCYgKQoreworICAgIDo6bmRuYm9vc3Q6Oml0ZXN0OjptYW5hZ2VyOjppbnN0YW5jZSgpLmZyZWVkKCBwICk7CisKKyAgICBzdGQ6OmZyZWUoIHAgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9JTlRFUkFDVElPTl9CQVNFRF9IUFBfMTEyMTA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvbWluaW1hbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvbWluaW1hbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY0Y2E0NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9taW5pbWFsLmhwcApAQCAtMCwwICsxLDE0MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwMi0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzaW1wbGUgbWluaW1hbCB0ZXN0aW5nIGRlZmluaXRpb25zIGFuZCBpbXBsZW1lbnRhdGlvbgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9NSU5JTUFMX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9NSU5JTUFMX0hQUF8wNzE4OTRHRVIKKworI2RlZmluZSBCT09TVF9DSEVDSyhleHApICAgICAgIFwKKyAgKCAoZXhwKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICA/IHN0YXRpY19jYXN0PHZvaWQ+KDApICAgXAorICAgICAgOiBuZG5ib29zdDo6bWluaW1hbF90ZXN0OjpyZXBvcnRfZXJyb3IoI2V4cCxfX0ZJTEVfXyxfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTikgKQorCisjZGVmaW5lIEJPT1NUX1JFUVVJUkUoZXhwKSAgICAgXAorICAoIChleHApICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgID8gc3RhdGljX2Nhc3Q8dm9pZD4oMCkgICBcCisgICAgICA6IG5kbmJvb3N0OjptaW5pbWFsX3Rlc3Q6OnJlcG9ydF9jcml0aWNhbF9lcnJvcigjZXhwLF9fRklMRV9fLF9fTElORV9fLEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04pKQorCisjZGVmaW5lIEJPT1NUX0VSUk9SKCBtc2dfICkgICAgXAorICAgICAgICBuZG5ib29zdDo6bWluaW1hbF90ZXN0OjpyZXBvcnRfZXJyb3IoIChtc2dfKSxfX0ZJTEVfXyxfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiwgdHJ1ZSApCisjZGVmaW5lIEJPT1NUX0ZBSUwoIG1zZ18gKSAgICAgXAorICAgICAgICBuZG5ib29zdDo6bWluaW1hbF90ZXN0OjpyZXBvcnRfY3JpdGljYWxfZXJyb3IoIChtc2dfKSxfX0ZJTEVfXyxfX0xJTkVfXywgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiwgdHJ1ZSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9pbXBsL2V4ZWN1dGlvbl9tb25pdG9yLmlwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2ltcGwvZGVidWcuaXBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2xhc3NfcHJvcGVydGllcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkbGliLmhwcD4gICAgICAgICAgICAvLyBmb3IgZXhpdCBjb2RlcyNpbmNsdWRlIDxuZG5ib29zdC9jc3RkbGliLmhwcD4gICAgICAgICAgICAvLyBmb3IgZXhpdCBjb2RlcworI2luY2x1ZGUgPG5kbmJvb3N0L2N1cnJlbnRfZnVuY3Rpb24uaHBwPiAgIC8vIGZvciBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OCisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgICAgICAgICAgICAgICAgIC8vIHN0ZDo6Y2Vyciwgc3RkOjplbmRsCisjaW5jbHVkZSA8c3RyaW5nPiAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RkOjpzdHJpbmcKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworaW50IHRlc3RfbWFpbiggaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApOyAgLy8gcHJvdG90eXBlIGZvciB1c2VycyB0ZXN0X21haW4oKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIG1pbmltYWxfdGVzdCB7CisKK3R5cGVkZWYgbmRuYm9vc3Q6OnVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIGNvbnN0X3N0cmluZzsKKworaW5saW5lIHVuaXRfdGVzdDo6Y291bnRlcl90JiBlcnJvcnNfY291bnRlcigpIHsgc3RhdGljIHVuaXRfdGVzdDo6Y291bnRlcl90IGVjID0gMDsgcmV0dXJuIGVjOyB9CisKK2lubGluZSB2b2lkCityZXBvcnRfZXJyb3IoIGNvbnN0IGNoYXIqIG1zZywgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0X3N0cmluZyBmdW5jX25hbWUsIGJvb2wgaXNfbXNnID0gZmFsc2UgKQoreworICAgICsrZXJyb3JzX2NvdW50ZXIoKTsKKyAgICBzdGQ6OmNlcnIgPDwgZmlsZSA8PCAiKCIgPDwgbGluZSA8PCAiKTogIjsKKworICAgIGlmKCBpc19tc2cgKQorICAgICAgICBzdGQ6OmNlcnIgPDwgbXNnOworICAgIGVsc2UKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJ0ZXN0ICIgPDwgbXNnIDw8ICIgZmFpbGVkIjsKKworICAgIGlmKCBmdW5jX25hbWUgIT0gIih1bmtub3duKSIgKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIiBpbiBmdW5jdGlvbjogJyIgPDwgZnVuY19uYW1lIDw8ICInIjsKKworICAgIHN0ZDo6Y2VyciA8PCBzdGQ6OmVuZGw7Cit9CisKK2lubGluZSB2b2lkCityZXBvcnRfY3JpdGljYWxfZXJyb3IoIGNvbnN0IGNoYXIqIG1zZywgY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0X3N0cmluZyBmdW5jX25hbWUsIGJvb2wgaXNfbXNnID0gZmFsc2UgKQoreworICAgIHJlcG9ydF9lcnJvciggbXNnLCBmaWxlLCBsaW5lLCBmdW5jX25hbWUsIGlzX21zZyApOworCisgICAgdGhyb3cgbmRuYm9vc3Q6OmV4ZWN1dGlvbl9hYm9ydGVkKCk7Cit9CisKK2NsYXNzIGNhbGxlciB7CitwdWJsaWM6CisgICAgLy8gY29uc3RydWN0b3IKKyAgICBjYWxsZXIoIGludCBhcmdjLCBjaGFyKiogYXJndiApCisgICAgOiBtX2FyZ2MoIGFyZ2MgKSwgbV9hcmd2KCBhcmd2ICkge30KKworICAgIC8vIGV4ZWN1dGlvbiBtb25pdG9yIGhvb2sgaW1wbGVtZW50YXRpb24KKyAgICBpbnQgb3BlcmF0b3IoKSgpIHsgcmV0dXJuIHRlc3RfbWFpbiggbV9hcmdjLCBtX2FyZ3YgKTsgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIGludCAgICAgICAgIG1fYXJnYzsKKyAgICBjaGFyKiogICAgICBtX2FyZ3Y7Cit9OyAvLyBtb25pdG9yCisKK30gLy8gbmFtZXNwYWNlIG1pbmltYWxfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitpbnQgQk9PU1RfVEVTVF9DQUxMX0RFQ0wgbWFpbiggaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSApCit7CisgICAgdXNpbmcgbmFtZXNwYWNlIG5kbmJvb3N0OjptaW5pbWFsX3Rlc3Q7CisKKyAgICB0cnkgeworICAgICAgICA6Om5kbmJvb3N0OjpleGVjdXRpb25fbW9uaXRvciBleF9tb247CisgICAgICAgIGludCBydW5fcmVzdWx0ID0gZXhfbW9uLmV4ZWN1dGUoIGNhbGxlciggYXJnYywgYXJndiApICk7CisKKyAgICAgICAgQk9PU1RfQ0hFQ0soIHJ1bl9yZXN1bHQgPT0gMCB8fCBydW5fcmVzdWx0ID09IG5kbmJvb3N0OjpleGl0X3N1Y2Nlc3MgKTsKKyAgICB9CisgICAgY2F0Y2goIG5kbmJvb3N0OjpleGVjdXRpb25fZXhjZXB0aW9uIGNvbnN0JiBleGV4ICkgeworICAgICAgICBpZiggZXhleC5jb2RlKCkgIT0gbmRuYm9vc3Q6OmV4ZWN1dGlvbl9leGNlcHRpb246Om5vX2Vycm9yICkKKyAgICAgICAgICAgIEJPT1NUX0VSUk9SKCAoc3RkOjpzdHJpbmcoICJleGNlcHRpb24gXCIiICkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCBleGV4LndoYXQoKS5iZWdpbigpLCBleGV4LndoYXQoKS5lbmQoKSApLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCggIlwiIGNhdWdodCIgKSApLmNfc3RyKCkgKTsKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJcbioqKiogVGVzdGluZyBhYm9ydGVkLiI7CisgICAgfQorCisgICAgaWYoIG5kbmJvb3N0OjptaW5pbWFsX3Rlc3Q6OmVycm9yc19jb3VudGVyKCkgIT0gMCApIHsKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJcbioqKiogIiA8PCBlcnJvcnNfY291bnRlcigpCisgICAgICAgICAgICAgICAgICA8PCAiIGVycm9yIiA8PCAoZXJyb3JzX2NvdW50ZXIoKSA+IDEgPyAicyIgOiAiIiApIDw8ICIgZGV0ZWN0ZWRcbiI7CisKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpleGl0X3Rlc3RfZmFpbHVyZTsKKyAgICB9CisKKyAgICBzdGQ6OmNvdXQgPDwgIlxuKioqKiBubyBlcnJvcnMgZGV0ZWN0ZWRcbiI7CisgICAgCisgICAgcmV0dXJuIG5kbmJvb3N0OjpleGl0X3N1Y2Nlc3M7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9NSU5JTUFMX0hQUF8wNzE4OTRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9tb2NrX29iamVjdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvbW9ja19vYmplY3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYWQ3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvbW9ja19vYmplY3QuaHBwCkBAIC0wLDAgKzEsMzI4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogRmFjaWxpdGllcyB0byBwZXJmb3JtIGV4Y2VwdGlvbiBzYWZldHlfdGVzdHMKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfTU9DS19PQkpFQ1RfSFBQXzExMjIwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX01PQ0tfT0JKRUNUX0hQUF8xMTIyMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9pbnRlcmFjdGlvbl9iYXNlZC5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGl0ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIG1vY2tfb2JqZWN0X2Jhc2UgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBtb2NrX29iamVjdF9iYXNlIHsKK3B1YmxpYzoKKyAgICBtb2NrX29iamVjdF9iYXNlKCkge30KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxPgorICAgIG1vY2tfb2JqZWN0X2Jhc2UoIFQxIGNvbnN0JiApIHt9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgICAgbW9ja19vYmplY3RfYmFzZSggVDEgY29uc3QmLCBUMiBjb25zdCYgKSB7fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KKyAgICBtb2NrX29iamVjdF9iYXNlKCBUMSBjb25zdCYsIFQyIGNvbnN0JiwgVDMgY29uc3QmICkge30KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PgorICAgIG1vY2tfb2JqZWN0X2Jhc2UoIFQxIGNvbnN0JiwgVDIgY29uc3QmLCBUMyBjb25zdCYsIFQ0IGNvbnN0JiApIHt9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+CisgICAgbW9ja19vYmplY3RfYmFzZSggVDEgY29uc3QmLCBUMiBjb25zdCYsIFQzIGNvbnN0JiwgVDQgY29uc3QmLCBUNSBjb25zdCYgKSB7fQorfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgbW9ja19vYmplY3QgaW1wbGVtZW50YXRpb24gaGVscGVycyAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIE1PX09QX0lNUEwoIG9wLCBkZXNjciwgcmV0ICkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfSVRFU1RfU0NPUEUoIG1vY2tfb2JqZWN0OjpvcGVyYXRvciBvcCApOyAgICAgICAgICBcCisgICAgQk9PU1RfSVRFU1RfRVBPSU5UKCBkZXNjciApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNkZWZpbmUgTU9fVU5BUllfT1AoIG9wLCBkZXNjciApICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3NlbGZfdHlwZSBjb25zdCYgb3BlcmF0b3Igb3AoKSBjb25zdCAgICAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNT19PUF9JTVBMKCBvcCwgZGVzY3IsIHByb3RvdHlwZSgpICk7ICAgICAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworI2RlZmluZSBNT19VTkFSWV9CT09MX09QKCBvcCwgZGVzY3IgKSAgICAgICAgICAgICAgICAgICAgICAgXAorYm9vbCBvcGVyYXRvciBvcCgpIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1PX09QX0lNUEwoIG9wLCBkZXNjciwgKCEhQk9PU1RfSVRFU1RfRFBPSU5UKCkpICk7ICAgICAgXAorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCisjZGVmaW5lIE1PX0JJTkFSWV9PUCggb3AsIGRlc2NyICkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZTxpbnQgaTEsIHR5cGVuYW1lIEJhc2UxLGludCBpMiwgdHlwZW5hbWUgQmFzZTI+ICAgICBcCitpbmxpbmUgbW9ja19vYmplY3Q8aTEsQmFzZTE+IGNvbnN0JiAgICAgICAgICAgICAgICAgICAgICAgICBcCitvcGVyYXRvciBvcCggbW9ja19vYmplY3Q8aTEsQmFzZTE+IGNvbnN0JiBtbywgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgbW9ja19vYmplY3Q8aTIsQmFzZTI+IGNvbnN0JiApICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTU9fT1BfSU1QTCggb3AsIGRlc2NyLCBtbyApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZTxpbnQgaSwgdHlwZW5hbWUgQmFzZSwgdHlwZW5hbWUgVD4gICAgICAgICAgICAgICAgICBcCitpbmxpbmUgbW9ja19vYmplY3Q8aSxCYXNlPiBjb25zdCYgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitvcGVyYXRvciBvcCggbW9ja19vYmplY3Q8aSxCYXNlPiBjb25zdCYgbW8sIFQgY29uc3QmICkgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTU9fT1BfSU1QTCggb3AsIGRlc2NyLCBtbyApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZTxpbnQgaSwgdHlwZW5hbWUgQmFzZSwgdHlwZW5hbWUgVD4gICAgICAgICAgICAgICAgICBcCitpbmxpbmUgbW9ja19vYmplY3Q8aSxCYXNlPiBjb25zdCYgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitvcGVyYXRvciBvcCggVCBjb25zdCYsIG1vY2tfb2JqZWN0PGksQmFzZT4gY29uc3QmIG1vICkgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTU9fT1BfSU1QTCggb3AsIGRlc2NyLCBtbyApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNkZWZpbmUgTU9fQklOQVJZX0JPT0xfT1AoIG9wLCBkZXNjciApICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGludCBpMSwgdHlwZW5hbWUgQmFzZTEsaW50IGkyLCB0eXBlbmFtZSBCYXNlMj4gICAgIFwKK2lubGluZSBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK29wZXJhdG9yIG9wKCBtb2NrX29iamVjdDxpMSxCYXNlMT4gY29uc3QmLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICBtb2NrX29iamVjdDxpMixCYXNlMj4gY29uc3QmICkgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNT19PUF9JTVBMKCBvcCwgZGVzY3IsIEJPT1NUX0lURVNUX0RQT0lOVCgpICk7ICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGludCBpLCB0eXBlbmFtZSBCYXNlLCB0eXBlbmFtZSBUPiAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK29wZXJhdG9yIG9wKCBtb2NrX29iamVjdDxpLEJhc2U+IGNvbnN0JiwgVCBjb25zdCYgKSAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNT19PUF9JTVBMKCBvcCwgZGVzY3IsIEJPT1NUX0lURVNUX0RQT0lOVCgpICk7ICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGludCBpLCB0eXBlbmFtZSBCYXNlLCB0eXBlbmFtZSBUPiAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK29wZXJhdG9yIG9wKCBUIGNvbnN0JiwgbW9ja19vYmplY3Q8aSxCYXNlPiBjb25zdCYgKSAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNT19PUF9JTVBMKCBvcCwgZGVzY3IsIEJPT1NUX0lURVNUX0RQT0lOVCgpICk7ICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgbW9ja19vYmplY3QgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTxpbnQgaSA9IDAsIHR5cGVuYW1lIEJhc2U9bW9ja19vYmplY3RfYmFzZT4KK2NsYXNzIG1vY2tfb2JqZWN0OworCit0ZW1wbGF0ZTxpbnQgaSwgdHlwZW5hbWUgQmFzZT4KK2NsYXNzIG1vY2tfb2JqZWN0IDogcHVibGljIEJhc2UgeworICAgIC8vIFByaXZhdGUgdHlwZWVmcworICAgIHR5cGVkZWYgbW9ja19vYmplY3Q8aSxCYXNlPiBzZWxmX3R5cGU7CisgICAgc3RydWN0IGR1bW15IHsgdm9pZCBub25udWxsKCkge307IH07CisgICAgdHlwZWRlZiB2b2lkIChkdW1teTo6KnNhZmVfYm9vbCkoKTsKKworICAgIC8vIHByb3RvdHlwZSBjb25zdHJ1Y3RvcgorICAgIG1vY2tfb2JqZWN0KCBkdW1teSogKSB7fQorCitwdWJsaWM6CisgICAgc3RhdGljIG1vY2tfb2JqZWN0JiBwcm90b3R5cGUoKQorICAgIHsKKyAgICAgICAgc3RhdGljIG1vY2tfb2JqZWN0IHAoIHJlaW50ZXJwcmV0X2Nhc3Q8ZHVtbXkqPigwKSApOyAKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorCisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgbW9ja19vYmplY3QoKQorICAgIHsKKyAgICAgICAgQk9PU1RfSVRFU1RfU0NPUEUoIG1vY2tfb2JqZWN0Ojptb2NrX29iamVjdCApOworICAgICAgICBCT09TVF9JVEVTVF9FUE9JTlQoICJNb2NrIG9iamVjdCBkZWZhdWx0IGNvbnN0cnVjdG9yIiApOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxPgorICAgIG1vY2tfb2JqZWN0KCBUMSBjb25zdCYgYXJnMSApCisgICAgOiBtb2NrX29iamVjdF9iYXNlKCBhcmcxICkKKyAgICB7CisgICAgICAgIEJPT1NUX0lURVNUX1NDT1BFKCBtb2NrX29iamVjdDo6bW9ja19vYmplY3QgKTsKKyAgICAgICAgQk9PU1RfSVRFU1RfRVBPSU5UKCAiTW9jayBvYmplY3QgY29uc3RydWN0b3IiICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgorICAgIG1vY2tfb2JqZWN0KCBUMSBjb25zdCYgYXJnMSwgVDIgY29uc3QmIGFyZzIgKQorICAgIDogbW9ja19vYmplY3RfYmFzZSggYXJnMSwgYXJnMiApCisgICAgeworICAgICAgICBCT09TVF9JVEVTVF9TQ09QRSggbW9ja19vYmplY3Q6Om1vY2tfb2JqZWN0ICk7CisgICAgICAgIEJPT1NUX0lURVNUX0VQT0lOVCggIk1vY2sgb2JqZWN0IGNvbnN0cnVjdG9yIiApOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+CisgICAgbW9ja19vYmplY3QoIFQxIGNvbnN0JiBhcmcxLCBUMiBjb25zdCYgYXJnMiwgVDMgY29uc3QmIGFyZzMgKQorICAgIDogbW9ja19vYmplY3RfYmFzZSggYXJnMSwgYXJnMiwgYXJnMyApCisgICAgeworICAgICAgICBCT09TVF9JVEVTVF9TQ09QRSggbW9ja19vYmplY3Q6Om1vY2tfb2JqZWN0ICk7CisgICAgICAgIEJPT1NUX0lURVNUX0VQT0lOVCggIk1vY2sgb2JqZWN0IGNvbnN0cnVjdG9yIiApOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PgorICAgIG1vY2tfb2JqZWN0KCBUMSBjb25zdCYgYXJnMSwgVDIgY29uc3QmIGFyZzIsIFQzIGNvbnN0JiBhcmczLCBUNCBjb25zdCYgYXJnNCApCisgICAgOiBtb2NrX29iamVjdF9iYXNlKCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0ICkKKyAgICB7CisgICAgICAgIEJPT1NUX0lURVNUX1NDT1BFKCBtb2NrX29iamVjdDo6bW9ja19vYmplY3QgKTsKKyAgICAgICAgQk9PU1RfSVRFU1RfRVBPSU5UKCAiTW9jayBvYmplY3QgY29uc3RydWN0b3IiICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgorICAgIG1vY2tfb2JqZWN0KCBUMSBjb25zdCYgYXJnMSwgVDIgY29uc3QmIGFyZzIsIFQzIGNvbnN0JiBhcmczLCBUNCBjb25zdCYgYXJnNCwgVDUgY29uc3QmIGFyZzUgKQorICAgIDogbW9ja19vYmplY3RfYmFzZSggYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSApCisgICAgeworICAgICAgICBCT09TVF9JVEVTVF9TQ09QRSggbW9ja19vYmplY3Q6Om1vY2tfb2JqZWN0ICk7CisgICAgICAgIEJPT1NUX0lURVNUX0VQT0lOVCggIk1vY2sgb2JqZWN0IGNvbnN0cnVjdG9yIiApOworICAgIH0KKworICAgIG1vY2tfb2JqZWN0KCBtb2NrX29iamVjdCBjb25zdCYgKQorICAgIHsKKyAgICAgICAgQk9PU1RfSVRFU1RfU0NPUEUoIG1vY2tfb2JqZWN0Ojptb2NrX29iamVjdCApOworICAgICAgICBCT09TVF9JVEVTVF9FUE9JTlQoICJNb2NrIG9iamVjdCBjb3B5IGNvbnN0cnVjdG9yIiApOworICAgIH0KKworICAgIC8vIGFzc2lnbm1lbnQKKyAgICBzZWxmX3R5cGUgY29uc3QmICAgIG9wZXJhdG9yID0oIG1vY2tfb2JqZWN0IGNvbnN0JiApIGNvbnN0CisgICAgeworICAgICAgICBNT19PUF9JTVBMKCA9LCAiQ29weSBhc3NpZ25tZW50IiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBzZWxmX3R5cGUgY29uc3QmICAgIG9wZXJhdG9yID0oIFQgY29uc3QmICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoID0sICJDb3B5IGFzc2lnbm1lbnQiLCBwcm90b3R5cGUoKSApOworICAgIH0KKworICAgIC8vIFVuYXJ5IG9wZXJhdG9ycworICAgIE1PX1VOQVJZX0JPT0xfT1AoICEsICJMb2dpY2FsIE5PVCBvcGVyYXRvciIgKQorICAgIE1PX1VOQVJZX09QKCAmLCAiQWRkcmVzcy1vZiBvcGVyYXRvciIgKQorICAgIE1PX1VOQVJZX09QKCB+LCAiT25lJ3MgY29tcGxlbWVudCBvcGVyYXRvciIgKQorICAgIE1PX1VOQVJZX09QKCAqLCAiUG9pbnRlciBkZXJlZmVyZW5jZSIgKQorICAgIE1PX1VOQVJZX09QKCArLCAiVW5hcnkgcGx1cyIgKQorCisgICAgLy8gSW5jcmVtZW50IGFuZCBEZWNyZW1lbnQKKyAgICBNT19VTkFSWV9PUCggKyssICJQcmVmaXggaW5jcmVtZW50IiApCisgICAgTU9fVU5BUllfT1AoIC0tLCAiUHJlZml4IGRlY3JlbWVudCIgKQorICAgIHNlbGZfdHlwZSBjb25zdCYgICAgb3BlcmF0b3IgKysoaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgTU9fT1BfSU1QTCggKyssICJQb3N0Zml4IGluY3JlbWVudCIsIHByb3RvdHlwZSgpICk7CisgICAgfQorICAgIHNlbGZfdHlwZSBjb25zdCYgICAgb3BlcmF0b3IgLS0oaW50KSBjb25zdAorICAgIHsKKyAgICAgICAgTU9fT1BfSU1QTCggLS0sICJQb3N0Zml4IGRlY3JlbWVudCIsIHByb3RvdHlwZSgpICk7CisgICAgfQorCisgICAgLy8gQm9vbCBjb250ZXh0IGNvbnZlcnRpb24KKyAgICBvcGVyYXRvciBzYWZlX2Jvb2woKSBjb25zdAorICAgIHsKKyAgICAgICAgTU9fT1BfSU1QTCggc2FmZV9ib29sLCAiQm9vbCBjb250ZXh0IGNvbnZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAoQk9PU1RfSVRFU1RfRFBPSU5UKCkgPyAwIDogJmR1bW15Ojpub25udWxsKSApOworICAgIH0KKworICAgIC8vIEZ1bmN0aW9uLWNhbGwgb3BlcmF0b3JzCisgICAgc2VsZl90eXBlIGNvbnN0JiAgICBvcGVyYXRvciAoKSgpIGNvbnN0CisgICAgeworICAgICAgICBNT19PUF9JTVBMKCAoKSwgIjAtYXJpdHkgZnVuY3Rpb24tY2FsbCIsIHByb3RvdHlwZSgpICk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxPgorICAgIHNlbGZfdHlwZSBjb25zdCYgICAgb3BlcmF0b3IgKCkoIFQxIGNvbnN0JiBhcmcxICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoICgpLCAiMS1hcml0eSBmdW5jdGlvbi1jYWxsIiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgorICAgIHNlbGZfdHlwZSBjb25zdCYgICAgb3BlcmF0b3IgKCkoIFQxIGNvbnN0JiwgVDIgY29uc3QmICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoICgpLCAiMi1hcml0eSBmdW5jdGlvbi1jYWxsIiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KKyAgICBzZWxmX3R5cGUgY29uc3QmICAgIG9wZXJhdG9yICgpKCBUMSBjb25zdCYsIFQyIGNvbnN0JiwgVDMgY29uc3QmICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoICgpLCAiMy1hcml0eSBmdW5jdGlvbi1jYWxsIiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+CisgICAgc2VsZl90eXBlIGNvbnN0JiAgICBvcGVyYXRvciAoKSggVDEgY29uc3QmLCBUMiBjb25zdCYsIFQzIGNvbnN0JiwgVDQgY29uc3QmICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoICgpLCAiNC1hcml0eSBmdW5jdGlvbi1jYWxsIiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgorICAgIHNlbGZfdHlwZSBjb25zdCYgICAgb3BlcmF0b3IgKCkoIFQxIGNvbnN0JiwgVDIgY29uc3QmLCBUMyBjb25zdCYsIFQ0IGNvbnN0JiwgVDUgY29uc3QmICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoICgpLCAiNS1hcml0eSBmdW5jdGlvbi1jYWxsIiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisKKyAgICAvLyBTdWJzdHJpcHRpbmcKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHNlbGZfdHlwZSBjb25zdCYgICAgb3BlcmF0b3IgW10oIFQgY29uc3QmICkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoIFtdLCAiU3Vic3RyaXB0aW5nIiwgcHJvdG90eXBlKCkgKTsKKyAgICB9CisKKyAgICAvLyBDbGFzcyBtZW1iZXIgYWNjZXNzCisgICAgc2VsZl90eXBlIGNvbnN0KiAgICBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7CisgICAgICAgIE1PX09QX0lNUEwoIC0+LCAiQ2xhc3MgbWVtYmVyIGFjY2VzcyIsIHRoaXMgKTsKKyAgICB9Cit9OworCisvLyAhISBNT19CSU5BUllfT1AoIEJPT1NUX1BQX0NPTU1BKCksICJDb21tYSBvcGVyYXRvciIgKQorCitNT19CSU5BUllfQk9PTF9PUCggIT0sICJJbmVxdWFsaXR5IiApCitNT19CSU5BUllfT1AoICUsICJNb2R1bHVzIiApCitNT19CSU5BUllfT1AoICU9LCAiTW9kdWx1cy9hc3NpZ25tZW50IiApCitNT19CSU5BUllfT1AoICYsICJCaXR3aXNlIEFORCIgKQorTU9fQklOQVJZX0JPT0xfT1AoICYmLCAiTG9naWNhbCBBTkQiICkKK01PX0JJTkFSWV9PUCggJj0sICJCaXR3aXNlIEFORC9hc3NpZ25tZW50IiApCitNT19CSU5BUllfT1AoICosICJNdWx0aXBsaWNhdGlvbiIgKQorTU9fQklOQVJZX09QKCAqPSwgIk11bHRpcGxpY2F0aW9uL2Fzc2lnbm1lbnQiICkKK01PX0JJTkFSWV9PUCggKywgIkFkZGl0aW9uIiApCitNT19CSU5BUllfT1AoICs9LCAiQWRkaXRpb24vYXNzaWdubWVudCIgKQorLy9NT19CSU5BUllfT1AoIC0sICJTdWJ0cmFjdGlvbiIgKQorTU9fQklOQVJZX09QKCAtPSwgIlN1YnRyYWN0aW9uL2Fzc2lnbm1lbnQiICkKK01PX0JJTkFSWV9PUCggLT4qLCAiUG9pbnRlci10by1tZW1iZXIgc2VsZWN0aW9uIiApCitNT19CSU5BUllfT1AoIC8sICJEaXZpc2lvbiIgKQorTU9fQklOQVJZX09QKCAvPSwgIkRpdmlzaW9uL2Fzc2lnbm1lbnQiICkKK01PX0JJTkFSWV9CT09MX09QKCA8LCAiTGVzcyB0aGFuIiApCitNT19CSU5BUllfT1AoIDw8PSwgIkxlZnQgc2hpZnQvYXNzaWdubWVudCIgKQorTU9fQklOQVJZX0JPT0xfT1AoIDw9LCAiTGVzcyB0aGFuIG9yIGVxdWFsIHRvIiApCitNT19CSU5BUllfQk9PTF9PUCggPT0sICJFcXVhbGl0eSIgKQorTU9fQklOQVJZX0JPT0xfT1AoID4sICJHcmVhdGVyIHRoYW4iICkKK01PX0JJTkFSWV9CT09MX09QKCA+PSwgIkdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byIgKQorTU9fQklOQVJZX09QKCA+Pj0sICJSaWdodCBzaGlmdC9hc3NpZ25tZW50IiApCitNT19CSU5BUllfT1AoIF4sICJFeGNsdXNpdmUgT1IiICkKK01PX0JJTkFSWV9PUCggXj0sICJFeGNsdXNpdmUgT1IvYXNzaWdubWVudCIgKQorTU9fQklOQVJZX09QKCB8LCAiQml0d2lzZSBpbmNsdXNpdmUgT1IiICkKK01PX0JJTkFSWV9PUCggfD0sICJCaXR3aXNlIGluY2x1c2l2ZSBPUi9hc3NpZ25tZW50IiApCitNT19CSU5BUllfQk9PTF9PUCggfHwsICJMb2dpY2FsIE9SIiApCisKK01PX0JJTkFSWV9PUCggPDwsICJMZWZ0IHNoaWZ0IiApCitNT19CSU5BUllfT1AoID4+LCAiUmlnaHQgc2hpZnQiICkKKworfSAvLyBuYW1lc3BhY2UgaXRlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX01PQ0tfT0JKRUNUX0hQUF8xMTIyMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXQvY29tcGlsZXJfbG9nX2Zvcm1hdHRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3Qvb3V0cHV0L2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZWYxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3Qvb3V0cHV0L2NvbXBpbGVyX2xvZ19mb3JtYXR0ZXIuaHBwCkBAIC0wLDAgKzEsNjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogY29udGFpbnMgY29tcGlsZXIgbGlrZSBMb2cgZm9ybWF0dGVyIGRlZmluaXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfQ09NUElMRVJfTE9HX0ZPUk1BVFRFUl9IUFBfMDIwMTA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfQ09NUElMRVJfTE9HX0ZPUk1BVFRFUl9IUFBfMDIwMTA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nX2Zvcm1hdHRlci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCituYW1lc3BhY2Ugb3V0cHV0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIGNvbXBpbGVyX2xvZ19mb3JtYXR0ZXIgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgY29tcGlsZXJfbG9nX2Zvcm1hdHRlciA6IHB1YmxpYyB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlciB7CitwdWJsaWM6CisgICAgLy8gRm9ybWF0dGVyIGludGVyZmFjZQorICAgIHZvaWQgICAgbG9nX3N0YXJ0KCBzdGQ6Om9zdHJlYW0mLCBjb3VudGVyX3QgdGVzdF9jYXNlc19hbW91bnQgKTsKKyAgICB2b2lkICAgIGxvZ19maW5pc2goIHN0ZDo6b3N0cmVhbSYgKTsKKyAgICB2b2lkICAgIGxvZ19idWlsZF9pbmZvKCBzdGQ6Om9zdHJlYW0mICk7CisKKyAgICB2b2lkICAgIHRlc3RfdW5pdF9zdGFydCggc3RkOjpvc3RyZWFtJiwgdGVzdF91bml0IGNvbnN0JiB0dSApOworICAgIHZvaWQgICAgdGVzdF91bml0X2ZpbmlzaCggc3RkOjpvc3RyZWFtJiwgdGVzdF91bml0IGNvbnN0JiB0dSwgdW5zaWduZWQgbG9uZyBlbGFwc2VkICk7CisgICAgdm9pZCAgICB0ZXN0X3VuaXRfc2tpcHBlZCggc3RkOjpvc3RyZWFtJiwgdGVzdF91bml0IGNvbnN0JiB0dSApOworCisgICAgdm9pZCAgICBsb2dfZXhjZXB0aW9uKCBzdGQ6Om9zdHJlYW0mLCBsb2dfY2hlY2twb2ludF9kYXRhIGNvbnN0JiwgZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgZXggKTsKKworICAgIHZvaWQgICAgbG9nX2VudHJ5X3N0YXJ0KCBzdGQ6Om9zdHJlYW0mLCBsb2dfZW50cnlfZGF0YSBjb25zdCYsIGxvZ19lbnRyeV90eXBlcyBsZXQgKTsKKyAgICB2b2lkICAgIGxvZ19lbnRyeV92YWx1ZSggc3RkOjpvc3RyZWFtJiwgY29uc3Rfc3RyaW5nIHZhbHVlICk7CisgICAgdm9pZCAgICBsb2dfZW50cnlfdmFsdWUoIHN0ZDo6b3N0cmVhbSYsIGxhenlfb3N0cmVhbSBjb25zdCYgdmFsdWUgKTsKKyAgICB2b2lkICAgIGxvZ19lbnRyeV9maW5pc2goIHN0ZDo6b3N0cmVhbSYgKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCAgICBwcmludF9wcmVmaXgoIHN0ZDo6b3N0cmVhbSYsIGNvbnN0X3N0cmluZyBmaWxlLCBzdGQ6OnNpemVfdCBsaW5lICk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBvdXRwdXQKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9DT01QSUxFUl9MT0dfRk9STUFUVEVSX0hQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXQvcGxhaW5fcmVwb3J0X2Zvcm1hdHRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3Qvb3V0cHV0L3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YmQwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3Qvb3V0cHV0L3BsYWluX3JlcG9ydF9mb3JtYXR0ZXIuaHBwCkBAIC0wLDAgKzEsNjIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogcGxhaW4gcmVwb3J0IGZvcm1hdHRlciBpbXBsZW1lbnRhdGlvbgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9QTEFJTl9SRVBPUlRfRk9STUFUVEVSX0hQUF8wMjAxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9QTEFJTl9SRVBPUlRfRk9STUFUVEVSX0hQUF8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Jlc3VsdHNfcmVwb3J0ZXIuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworbmFtZXNwYWNlIG91dHB1dCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBwbGFpbl9yZXBvcnRfZm9ybWF0dGVyICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgcGxhaW5fcmVwb3J0X2Zvcm1hdHRlciA6IHB1YmxpYyByZXN1bHRzX3JlcG9ydGVyOjpmb3JtYXQgeworcHVibGljOgorICAgIC8vIEZvcm1hdHRlciBpbnRlcmZhY2UKKyAgICB2b2lkICAgIHJlc3VsdHNfcmVwb3J0X3N0YXJ0KCBzdGQ6Om9zdHJlYW0mIG9zdHIgKTsKKyAgICB2b2lkICAgIHJlc3VsdHNfcmVwb3J0X2ZpbmlzaCggc3RkOjpvc3RyZWFtJiBvc3RyICk7CisKKyAgICB2b2lkICAgIHRlc3RfdW5pdF9yZXBvcnRfc3RhcnQoIHRlc3RfdW5pdCBjb25zdCYsIHN0ZDo6b3N0cmVhbSYgb3N0ciApOworICAgIHZvaWQgICAgdGVzdF91bml0X3JlcG9ydF9maW5pc2goIHRlc3RfdW5pdCBjb25zdCYsIHN0ZDo6b3N0cmVhbSYgb3N0ciApOworCisgICAgdm9pZCAgICBkb19jb25maXJtYXRpb25fcmVwb3J0KCB0ZXN0X3VuaXQgY29uc3QmLCBzdGQ6Om9zdHJlYW0mIG9zdHIgKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBjb3VudGVyX3QgbV9pbmRlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBvdXRwdXQKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9QTEFJTl9SRVBPUlRfRk9STUFUVEVSX0hQUF8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX2xvZ19mb3JtYXR0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L291dHB1dC94bWxfbG9nX2Zvcm1hdHRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlmZmRjYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX2xvZ19mb3JtYXR0ZXIuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogY29udGFpbnMgWE1MIExvZyBmb3JtYXR0ZXIgZGVmaW5pdGlvbgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9YTUxfTE9HX0ZPUk1BVFRFUl8wMjAxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9YTUxfTE9HX0ZPUk1BVFRFUl8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9sb2dfZm9ybWF0dGVyLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8Y3N0ZGRlZj4gLy8gc3RkOjpzaXplX3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSBvdXRwdXQgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICB4bWxfbG9nX2Zvcm1hdHRlciAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIHhtbF9sb2dfZm9ybWF0dGVyIDogcHVibGljIHVuaXRfdGVzdF9sb2dfZm9ybWF0dGVyIHsKK3B1YmxpYzoKKyAgICAvLyBGb3JtYXR0ZXIgaW50ZXJmYWNlCisgICAgdm9pZCAgICBsb2dfc3RhcnQoIHN0ZDo6b3N0cmVhbSYsIGNvdW50ZXJfdCB0ZXN0X2Nhc2VzX2Ftb3VudCApOworICAgIHZvaWQgICAgbG9nX2ZpbmlzaCggc3RkOjpvc3RyZWFtJiApOworICAgIHZvaWQgICAgbG9nX2J1aWxkX2luZm8oIHN0ZDo6b3N0cmVhbSYgKTsKKworICAgIHZvaWQgICAgdGVzdF91bml0X3N0YXJ0KCBzdGQ6Om9zdHJlYW0mLCB0ZXN0X3VuaXQgY29uc3QmIHR1ICk7CisgICAgdm9pZCAgICB0ZXN0X3VuaXRfZmluaXNoKCBzdGQ6Om9zdHJlYW0mLCB0ZXN0X3VuaXQgY29uc3QmIHR1LCB1bnNpZ25lZCBsb25nIGVsYXBzZWQgKTsKKyAgICB2b2lkICAgIHRlc3RfdW5pdF9za2lwcGVkKCBzdGQ6Om9zdHJlYW0mLCB0ZXN0X3VuaXQgY29uc3QmIHR1ICk7CisKKyAgICB2b2lkICAgIGxvZ19leGNlcHRpb24oIHN0ZDo6b3N0cmVhbSYsIGxvZ19jaGVja3BvaW50X2RhdGEgY29uc3QmLCBleGVjdXRpb25fZXhjZXB0aW9uIGNvbnN0JiBleCApOworCisgICAgdm9pZCAgICBsb2dfZW50cnlfc3RhcnQoIHN0ZDo6b3N0cmVhbSYsIGxvZ19lbnRyeV9kYXRhIGNvbnN0JiwgbG9nX2VudHJ5X3R5cGVzIGxldCApOworICAgIHVzaW5nICAgdW5pdF90ZXN0X2xvZ19mb3JtYXR0ZXI6OmxvZ19lbnRyeV92YWx1ZTsgLy8gYnJpbmcgYmFzZSBjbGFzcyBmdW5jdGlvbnMgaW50byBvdmVybG9hZCBzZXQKKyAgICB2b2lkICAgIGxvZ19lbnRyeV92YWx1ZSggc3RkOjpvc3RyZWFtJiwgY29uc3Rfc3RyaW5nIHZhbHVlICk7CisgICAgdm9pZCAgICBsb2dfZW50cnlfZmluaXNoKCBzdGQ6Om9zdHJlYW0mICk7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgY29uc3Rfc3RyaW5nICAgIG1fY3Vycl90YWc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBvdXRwdXQKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9YTUxfTE9HX0ZPUk1BVFRFUl8wMjAxMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L291dHB1dC94bWxfcmVwb3J0X2Zvcm1hdHRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmYmU4ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXQveG1sX3JlcG9ydF9mb3JtYXR0ZXIuaHBwCkBAIC0wLDAgKzEsNTggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogWE1MIHJlcG9ydCBmb3JtYXR0ZXIgaW1wbGVtZW50YXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfWE1MX1JFUE9SVF9GT1JNQVRURVJfSFBQXzAyMDEwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1hNTF9SRVBPUlRfRk9STUFUVEVSX0hQUF8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3Jlc3VsdHNfcmVwb3J0ZXIuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworbmFtZXNwYWNlIG91dHB1dCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgeG1sX3JlcG9ydF9mb3JtYXR0ZXIgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgeG1sX3JlcG9ydF9mb3JtYXR0ZXIgOiBwdWJsaWMgcmVzdWx0c19yZXBvcnRlcjo6Zm9ybWF0IHsKK3B1YmxpYzoKKyAgICAvLyBGb3JtYXR0ZXIgaW50ZXJmYWNlCisgICAgdm9pZCAgICByZXN1bHRzX3JlcG9ydF9zdGFydCggc3RkOjpvc3RyZWFtJiBvc3RyICk7CisgICAgdm9pZCAgICByZXN1bHRzX3JlcG9ydF9maW5pc2goIHN0ZDo6b3N0cmVhbSYgb3N0ciApOworCisgICAgdm9pZCAgICB0ZXN0X3VuaXRfcmVwb3J0X3N0YXJ0KCB0ZXN0X3VuaXQgY29uc3QmLCBzdGQ6Om9zdHJlYW0mIG9zdHIgKTsKKyAgICB2b2lkICAgIHRlc3RfdW5pdF9yZXBvcnRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmLCBzdGQ6Om9zdHJlYW0mIG9zdHIgKTsKKworICAgIHZvaWQgICAgZG9fY29uZmlybWF0aW9uX3JlcG9ydCggdGVzdF91bml0IGNvbnN0Jiwgc3RkOjpvc3RyZWFtJiBvc3RyICk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBvdXRwdXQKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9YTUxfUkVQT1JUX0ZPUk1BVFRFUl9IUFBfMDIwMTA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3Qvb3V0cHV0X3Rlc3Rfc3RyZWFtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9vdXRwdXRfdGVzdF9zdHJlYW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2MmFhZWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3Qvb3V0cHV0X3Rlc3Rfc3RyZWFtLmhwcApAQCAtMCwwICsxLDc4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IG91dHB1dF90ZXN0X3N0cmVhbSBjbGFzcyBkZWZpbml0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX09VVFBVVF9URVNUX1NUUkVBTV9IUFBfMDEyNzA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfT1VUUFVUX1RFU1RfU1RSRUFNX0hQUF8wMTI3MDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3dyYXBfc3RyaW5nc3RyZWFtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3ByZWRpY2F0ZV9yZXN1bHQuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAvLyBmb3Igc3RkOjpzaXplX3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgb3V0cHV0X3Rlc3Rfc3RyZWFtICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisvLyBjbGFzcyB0byBiZSB1c2VkIHRvIHNpbXBsaWZ5IHRlc3Rpbmcgb2Ygb3N0cmVhbS1iYXNlZCBvdXRwdXQgb3BlcmF0aW9ucworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdGVzdF90b29scyB7CisKK2NsYXNzIEJPT1NUX1RFU1RfREVDTCBvdXRwdXRfdGVzdF9zdHJlYW0gOiBwdWJsaWMgd3JhcF9zdHJpbmdzdHJlYW06OndyYXBwZWRfc3RyZWFtIHsKKyAgICB0eXBlZGVmIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nIGNvbnN0X3N0cmluZzsKKyAgICB0eXBlZGVmIHByZWRpY2F0ZV9yZXN1bHQgICAgICAgIHJlc3VsdF90eXBlOworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9yCisgICAgZXhwbGljaXQgICAgICAgIG91dHB1dF90ZXN0X3N0cmVhbSggY29uc3Rfc3RyaW5nICAgIHBhdHRlcm5fZmlsZV9uYW1lID0gY29uc3Rfc3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAgICAgICAgICAgIG1hdGNoX29yX3NhdmUgICAgID0gdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sICAgICAgICAgICAgdGV4dF9vcl9iaW5hcnkgICAgPSB0cnVlICk7CisKKyAgICAvLyBEZXN0cnVjdG9yCisgICAgfm91dHB1dF90ZXN0X3N0cmVhbSgpOworCisgICAgLy8gY2hlY2tpbmcgZnVuY3Rpb24KKyAgICByZXN1bHRfdHlwZSAgICAgaXNfZW1wdHkoIGJvb2wgZmx1c2hfc3RyZWFtID0gdHJ1ZSApOworICAgIHJlc3VsdF90eXBlICAgICBjaGVja19sZW5ndGgoIHN0ZDo6c2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVzaF9zdHJlYW0gPSB0cnVlICk7CisgICAgcmVzdWx0X3R5cGUgICAgIGlzX2VxdWFsKCBjb25zdF9zdHJpbmcgYXJnXywgYm9vbCBmbHVzaF9zdHJlYW0gPSB0cnVlICk7CisgICAgcmVzdWx0X3R5cGUgICAgIG1hdGNoX3BhdHRlcm4oIGJvb2wgZmx1c2hfc3RyZWFtID0gdHJ1ZSApOworCisgICAgLy8gZXhwbGljaXQgZmx1c2gKKyAgICB2b2lkICAgICAgICAgICAgZmx1c2goKTsKKworcHJpdmF0ZToKKyAgICAvLyBoZWxwZXIgZnVuY3Rpb25zCisgICAgc3RkOjpzaXplX3QgICAgIGxlbmd0aCgpOworICAgIHZvaWQgICAgICAgICAgICBzeW5jKCk7CisKKyAgICBzdHJ1Y3QgSW1wbDsKKyAgICBJbXBsKiAgICAgICAgICAgbV9waW1wbDsKK307CisKK30gLy8gbmFtZXNwYWNlIHRlc3RfdG9vbHMKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX09VVFBVVF9URVNUX1NUUkVBTV9IUFBfMDEyNzA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvcHJlZGljYXRlX3Jlc3VsdC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvcHJlZGljYXRlX3Jlc3VsdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNkYzY2OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9wcmVkaWNhdGVfcmVzdWx0LmhwcApAQCAtMCwwICsxLDg4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGVuaGFuY2VkIHJlc3VsdCBmb3IgdGVzdCBwcmVkaWNhdGUgdGhhdCBpbmNsdWRlIG1lc3NhZ2UgZXhwbGFpbmluZyBmYWlsdXJlCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX1BSRURJQ0FURV9SRVNVTFRfSFBQXzAxMjcwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1BSRURJQ0FURV9SRVNVTFRfSFBQXzAxMjcwNUdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3dyYXBfc3RyaW5nc3RyZWFtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3Qvc2hhcmVkX3B0ci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxjc3RkZGVmPiAgICAgICAgICAvLyBmb3Igc3RkOjpzaXplX3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHRlc3RfdG9vbHMgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgcHJlZGljYXRlX3Jlc3VsdCAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIEJPT1NUX1RFU1RfREVDTCBwcmVkaWNhdGVfcmVzdWx0IHsKKyAgICB0eXBlZGVmIHVuaXRfdGVzdDo6Y29uc3Rfc3RyaW5nICAgICAgY29uc3Rfc3RyaW5nOworICAgIHN0cnVjdCBkdW1teSB7IHZvaWQgbm9ubnVsbCgpIHt9OyB9OworICAgIHR5cGVkZWYgdm9pZCAoZHVtbXk6OipzYWZlX2Jvb2wpKCk7CisKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIHByZWRpY2F0ZV9yZXN1bHQoIGJvb2wgcHZfICkgCisgICAgOiBwX3ByZWRpY2F0ZV92YWx1ZSggcHZfICkKKyAgICB7fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQm9vbENvbnZlcnRhYmxlPgorICAgIHByZWRpY2F0ZV9yZXN1bHQoIEJvb2xDb252ZXJ0YWJsZSBjb25zdCYgcHZfICkgOiBwX3ByZWRpY2F0ZV92YWx1ZSggISFwdl8gKSB7fQorCisgICAgLy8gQWNjZXNzIG1ldGhvZHMKKyAgICBib29sICAgICAgICAgICAgICAgIG9wZXJhdG9yISgpIGNvbnN0ICAgICAgICAgICB7IHJldHVybiAhcF9wcmVkaWNhdGVfdmFsdWU7IH0KKyAgICB2b2lkICAgICAgICAgICAgICAgIG9wZXJhdG9yPSggYm9vbCBwdl8gKSAgICAgICB7IHBfcHJlZGljYXRlX3ZhbHVlLnZhbHVlID0gcHZfOyB9CisgICAgb3BlcmF0b3IgICAgICAgICAgICBzYWZlX2Jvb2woKSBjb25zdCAgICAgICAgICAgeyByZXR1cm4gISFwX3ByZWRpY2F0ZV92YWx1ZSA/ICZkdW1teTo6bm9ubnVsbCA6IDA7IH0KKworICAgIC8vIFB1YmxpYyBwcm9wZXJ0aWVzCisgICAgQk9PU1RfUkVBRE9OTFlfUFJPUEVSVFkoIGJvb2wsIChwcmVkaWNhdGVfcmVzdWx0KSApIHBfcHJlZGljYXRlX3ZhbHVlOworCisgICAgLy8gQWNjZXNzIG1ldGhvZHMKKyAgICBib29sICAgICAgICAgICAgICAgIGhhc19lbXB0eV9tZXNzYWdlKCkgY29uc3QgICB7IHJldHVybiAhbV9tZXNzYWdlOyB9CisgICAgd3JhcF9zdHJpbmdzdHJlYW0mICBtZXNzYWdlKCkKKyAgICB7CisgICAgICAgIGlmKCAhbV9tZXNzYWdlICkKKyAgICAgICAgICAgIG1fbWVzc2FnZS5yZXNldCggbmV3IHdyYXBfc3RyaW5nc3RyZWFtICk7CisKKyAgICAgICAgcmV0dXJuICptX21lc3NhZ2U7CisgICAgfQorICAgIGNvbnN0X3N0cmluZyAgICAgICAgbWVzc2FnZSgpIGNvbnN0ICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuICFtX21lc3NhZ2UgPyBjb25zdF9zdHJpbmcoKSA6IGNvbnN0X3N0cmluZyggbV9tZXNzYWdlLT5zdHIoKSApOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgc2hhcmVkX3B0cjx3cmFwX3N0cmluZ3N0cmVhbT4gbV9tZXNzYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgdGVzdF90b29scworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfUFJFRElDQVRFX1JFU1VMVF9IUFBfMDEyNzA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvcHJvZ3Jlc3NfbW9uaXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvcHJvZ3Jlc3NfbW9uaXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNhNzhhZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9wcm9ncmVzc19tb25pdG9yLmhwcApAQCAtMCwwICsxLDcwIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgc2ltcGxlIHRleHQgYmFzZWQgcHJvZ3Jlc3MgbW9uaXRvcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9QUk9HUkVTU19NT05JVE9SX0hQUF8wMjAxMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9QUk9HUkVTU19NT05JVE9SX0hQUF8wMjAxMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdGVzdF9vYnNlcnZlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy90cml2aWFsX3NpbmdsZXRvbi5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc2Z3ZD4gICAvLyBmb3Igc3RkOjpvc3RyZWFtJgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIHByb2dyZXNzX21vbml0b3IgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgcHJvZ3Jlc3NfbW9uaXRvcl90IDogcHVibGljIHRlc3Rfb2JzZXJ2ZXIsIHB1YmxpYyBzaW5nbGV0b248cHJvZ3Jlc3NfbW9uaXRvcl90PiB7CitwdWJsaWM6CisgICAgLy8gdGVzdCBvYnNlcnZlciBpbnRlcmZhY2UKKyAgICB2b2lkICAgIHRlc3Rfc3RhcnQoIGNvdW50ZXJfdCB0ZXN0X2Nhc2VzX2Ftb3VudCApOworICAgIHZvaWQgICAgdGVzdF9maW5pc2goKSB7fQorICAgIHZvaWQgICAgdGVzdF9hYm9ydGVkKCk7CisKKyAgICB2b2lkICAgIHRlc3RfdW5pdF9zdGFydCggdGVzdF91bml0IGNvbnN0JiApIHt9CisgICAgdm9pZCAgICB0ZXN0X3VuaXRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmLCB1bnNpZ25lZCBsb25nICk7CisgICAgdm9pZCAgICB0ZXN0X3VuaXRfc2tpcHBlZCggdGVzdF91bml0IGNvbnN0JiApOworICAgIHZvaWQgICAgdGVzdF91bml0X2Fib3J0ZWQoIHRlc3RfdW5pdCBjb25zdCYgKSB7fQorCisgICAgdm9pZCAgICBhc3NlcnRpb25fcmVzdWx0KCBib29sICkge30KKyAgICB2b2lkICAgIGV4Y2VwdGlvbl9jYXVnaHQoIGV4ZWN1dGlvbl9leGNlcHRpb24gY29uc3QmICkge30KKworICAgIC8vIGNvbmZpZ3VyYXRpb24KKyAgICB2b2lkICAgIHNldF9zdHJlYW0oIHN0ZDo6b3N0cmVhbSYgKTsKKworcHJpdmF0ZToKKyAgICBCT09TVF9URVNUX1NJTkdMRVRPTl9DT05TKCBwcm9ncmVzc19tb25pdG9yX3QgKTsKK307IC8vIHByb2dyZXNzX21vbml0b3JfdAorCitCT09TVF9URVNUX1NJTkdMRVRPTl9JTlNUKCBwcm9ncmVzc19tb25pdG9yICkKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9QUk9HUkVTU19NT05JVE9SX0hQUF8wMjAxMDVHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3Jlc3VsdHNfY29sbGVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9yZXN1bHRzX2NvbGxlY3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU4YmM1MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9yZXN1bHRzX2NvbGxlY3Rvci5ocHAKQEAgLTAsMCArMSwxMTIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBjbGFzcyB1bml0X3Rlc3RfcmVzdWx0IHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIAorLy8gIGdhdGhlcmluZyB0ZXN0IHJlc3VsdHMgYW5kIHByZXNlbnRpbmcgdGhpcyBpbmZvcm1hdGlvbiB0byBlbmQtdXNlcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9SRVNVTFRTX0NPTExFQ1RPUl9IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfUkVTVUxUU19DT0xMRUNUT1JfSFBQXzA3MTg5NEdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X29ic2VydmVyLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2dsb2JhbF90eXBlZGVmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3RyaXZpYWxfc2luZ2xldG9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NsYXNzX3Byb3BlcnRpZXMuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgZmlyc3QgZmFpbGVkIGFzc2VydGlvbiBkZWJ1Z2dlciBob29rICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgeworaW5saW5lIHZvaWQgZmlyc3RfZmFpbGVkX2Fzc2VydGlvbigpIHt9Cit9CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIHRlc3RfcmVzdWx0cyB7CitwdWJsaWM6CisgICAgdGVzdF9yZXN1bHRzKCk7CisKKyAgICB0eXBlZGVmIEJPT1NUX1JFQURPTkxZX1BST1BFUlRZKCBjb3VudGVyX3QsIChyZXN1bHRzX2NvbGxlY3Rvcl90KSh0ZXN0X3Jlc3VsdHMpKHJlc3VsdHNfY29sbGVjdF9oZWxwZXIpICkgY291bnRlcl9wcm9wOworICAgIHR5cGVkZWYgQk9PU1RfUkVBRE9OTFlfUFJPUEVSVFkoIGJvb2wsICAgICAgKHJlc3VsdHNfY29sbGVjdG9yX3QpKHRlc3RfcmVzdWx0cykocmVzdWx0c19jb2xsZWN0X2hlbHBlcikgKSBib29sX3Byb3A7CisKKyAgICBjb3VudGVyX3Byb3AgICAgcF9hc3NlcnRpb25zX3Bhc3NlZDsKKyAgICBjb3VudGVyX3Byb3AgICAgcF9hc3NlcnRpb25zX2ZhaWxlZDsKKyAgICBjb3VudGVyX3Byb3AgICAgcF9leHBlY3RlZF9mYWlsdXJlczsKKyAgICBjb3VudGVyX3Byb3AgICAgcF90ZXN0X2Nhc2VzX3Bhc3NlZDsKKyAgICBjb3VudGVyX3Byb3AgICAgcF90ZXN0X2Nhc2VzX2ZhaWxlZDsKKyAgICBjb3VudGVyX3Byb3AgICAgcF90ZXN0X2Nhc2VzX3NraXBwZWQ7CisgICAgY291bnRlcl9wcm9wICAgIHBfdGVzdF9jYXNlc19hYm9ydGVkOworICAgIGJvb2xfcHJvcCAgICAgICBwX2Fib3J0ZWQ7CisgICAgYm9vbF9wcm9wICAgICAgIHBfc2tpcHBlZDsKKworICAgIC8vICJjb25jbHVzaW9uIiBtZXRob2RzCisgICAgYm9vbCAgICAgICAgICAgIHBhc3NlZCgpIGNvbnN0OworICAgIGludCAgICAgICAgICAgICByZXN1bHRfY29kZSgpIGNvbnN0OworCisgICAgLy8gY29sbGVjdGlvbiBoZWxwZXIKKyAgICB2b2lkICAgICAgICAgICAgb3BlcmF0b3IrPSggdGVzdF9yZXN1bHRzIGNvbnN0JiApOworCisgICAgdm9pZCAgICAgICAgICAgIGNsZWFyKCk7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICByZXN1bHRzX2NvbGxlY3RvciAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIEJPT1NUX1RFU1RfREVDTCByZXN1bHRzX2NvbGxlY3Rvcl90IDogcHVibGljIHRlc3Rfb2JzZXJ2ZXIsIHB1YmxpYyBzaW5nbGV0b248cmVzdWx0c19jb2xsZWN0b3JfdD4geworcHVibGljOgorICAgIC8vIHRlc3Rfb2JzZXJ2ZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uCisgICAgdm9pZCAgICAgICAgICAgICAgICB0ZXN0X3N0YXJ0KCBjb3VudGVyX3QgdGVzdF9jYXNlc19hbW91bnQgKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHRlc3RfZmluaXNoKCk7CisgICAgdm9pZCAgICAgICAgICAgICAgICB0ZXN0X2Fib3J0ZWQoKTsKKworICAgIHZvaWQgICAgICAgICAgICAgICAgdGVzdF91bml0X3N0YXJ0KCB0ZXN0X3VuaXQgY29uc3QmICk7CisgICAgdm9pZCAgICAgICAgICAgICAgICB0ZXN0X3VuaXRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmLCB1bnNpZ25lZCBsb25nIGVsYXBzZWQgKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHRlc3RfdW5pdF9za2lwcGVkKCB0ZXN0X3VuaXQgY29uc3QmICk7CisgICAgdm9pZCAgICAgICAgICAgICAgICB0ZXN0X3VuaXRfYWJvcnRlZCggdGVzdF91bml0IGNvbnN0JiApOworCisgICAgdm9pZCAgICAgICAgICAgICAgICBhc3NlcnRpb25fcmVzdWx0KCBib29sIHBhc3NlZCApOworICAgIHZvaWQgICAgICAgICAgICAgICAgZXhjZXB0aW9uX2NhdWdodCggZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgKTsKKworICAgIC8vIHJlc3VsdHMgYWNjZXNzCisgICAgdGVzdF9yZXN1bHRzIGNvbnN0JiByZXN1bHRzKCB0ZXN0X3VuaXRfaWQgKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBCT09TVF9URVNUX1NJTkdMRVRPTl9DT05TKCByZXN1bHRzX2NvbGxlY3Rvcl90ICk7Cit9OworCitCT09TVF9URVNUX1NJTkdMRVRPTl9JTlNUKCByZXN1bHRzX2NvbGxlY3RvciApCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfUkVTVUxUU19DT0xMRUNUT1JfSFBQXzA3MTg5NEdFUgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvcmVzdWx0c19yZXBvcnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEzNTIzYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC9yZXN1bHRzX3JlcG9ydGVyLmhwcApAQCAtMCwwICsxLDg4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgY2xhc3MgdW5pdF90ZXN0X3Jlc3VsdCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciAKKy8vICBnYXRoZXJpbmcgdGVzdCByZXN1bHRzIGFuZCBwcmVzZW50aW5nIHRoaXMgaW5mb3JtYXRpb24gdG8gZW5kLXVzZXIKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfUkVTVUxUU19SRVBPUlRFUl9IUFBfMDIxMjA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfUkVTVUxUU19SRVBPUlRFUl9IUFBfMDIxMjA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZndkX2RlY2wuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxpb3Nmd2Q+ICAgLy8gZm9yIHN0ZDo6b3N0cmVhbSYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSByZXN1bHRzX3JlcG9ydGVyIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICBmb3JtYXR0ZXIgaW50ZXJmYWNlICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgZm9ybWF0IHsKK3B1YmxpYzoKKyAgICAvLyBEZXN0cnVjdG9yCisgICAgdmlydHVhbCB+Zm9ybWF0KCkge30KKworICAgIHZpcnR1YWwgdm9pZCAgICByZXN1bHRzX3JlcG9ydF9zdGFydCggc3RkOjpvc3RyZWFtJiBvc3RyICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAgICByZXN1bHRzX3JlcG9ydF9maW5pc2goIHN0ZDo6b3N0cmVhbSYgb3N0ciApID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCAgICB0ZXN0X3VuaXRfcmVwb3J0X3N0YXJ0KCB0ZXN0X3VuaXQgY29uc3QmLCBzdGQ6Om9zdHJlYW0mIG9zdHIgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICAgIHRlc3RfdW5pdF9yZXBvcnRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmLCBzdGQ6Om9zdHJlYW0mIG9zdHIgKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgICAgZG9fY29uZmlybWF0aW9uX3JlcG9ydCggdGVzdF91bml0IGNvbnN0Jiwgc3RkOjpvc3RyZWFtJiBvc3RyICkgPSAwOworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICByZXBvcnQgY29uZmlndXJhdGlvbiAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitCT09TVF9URVNUX0RFQ0wgdm9pZCAgICBzZXRfbGV2ZWwoIHJlcG9ydF9sZXZlbCApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgc2V0X3N0cmVhbSggc3RkOjpvc3RyZWFtJiApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgc2V0X2Zvcm1hdCggb3V0cHV0X2Zvcm1hdCApOworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgc2V0X2Zvcm1hdCggcmVzdWx0c19yZXBvcnRlcjo6Zm9ybWF0KiApOworCitCT09TVF9URVNUX0RFQ0wgc3RkOjpvc3RyZWFtJiBnZXRfc3RyZWFtKCk7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIHJlcG9ydCBpbml0aWF0aW9uICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworQk9PU1RfVEVTVF9ERUNMIHZvaWQgICAgbWFrZV9yZXBvcnQoIHJlcG9ydF9sZXZlbCBsID0gSU5WX1JFUE9SVF9MRVZFTCwgdGVzdF91bml0X2lkID0gSU5WX1RFU1RfVU5JVF9JRCApOworaW5saW5lIHZvaWQgICAgICAgICAgICAgY29uZmlybWF0aW9uX3JlcG9ydCggdGVzdF91bml0X2lkIGlkID0gSU5WX1RFU1RfVU5JVF9JRCApICAgCit7IG1ha2VfcmVwb3J0KCBDT05GSVJNQVRJT05fUkVQT1JULCBpZCApOyB9CitpbmxpbmUgdm9pZCAgICAgICAgICAgICBzaG9ydF9yZXBvcnQoIHRlc3RfdW5pdF9pZCBpZCA9IElOVl9URVNUX1VOSVRfSUQgKQoreyBtYWtlX3JlcG9ydCggU0hPUlRfUkVQT1JULCBpZCApOyB9CitpbmxpbmUgdm9pZCAgICAgICAgICAgICBkZXRhaWxlZF9yZXBvcnQoIHRlc3RfdW5pdF9pZCBpZCA9IElOVl9URVNUX1VOSVRfSUQgKQoreyBtYWtlX3JlcG9ydCggREVUQUlMRURfUkVQT1JULCBpZCApOyB9CisKK30gLy8gbmFtZXNwYWNlIHJlc3VsdHNfcmVwb3J0ZXIKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9SRVNVTFRTX1JFUE9SVEVSX0hQUF8wMjEyMDVHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3Rlc3Rfb2JzZXJ2ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3Rlc3Rfb2JzZXJ2ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxYTA4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdGVzdF9vYnNlcnZlci5ocHAKQEAgLTAsMCArMSw2NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBkZWZpbmVzIGFic3RyYWN0IGludGVyZmFjZSBmb3IgdGVzdCBvYnNlcnZlcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9URVNUX09CU0VSVkVSX0hQUF8wMjEwMDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9URVNUX09CU0VSVkVSX0hQUF8wMjEwMDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2Z3ZF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgdGVzdF9vYnNlcnZlciAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIHRlc3Rfb2JzZXJ2ZXIgeworcHVibGljOgorICAgIC8vIHRlc3Qgb2JzZXJ2ZXIgaW50ZXJmYWNlCisgICAgdmlydHVhbCB2b2lkICAgIHRlc3Rfc3RhcnQoIGNvdW50ZXJfdCAvKiB0ZXN0X2Nhc2VzX2Ftb3VudCAqLyApIHt9CisgICAgdmlydHVhbCB2b2lkICAgIHRlc3RfZmluaXNoKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgICAgdGVzdF9hYm9ydGVkKCkge30KKworICAgIHZpcnR1YWwgdm9pZCAgICB0ZXN0X3VuaXRfc3RhcnQoIHRlc3RfdW5pdCBjb25zdCYgKSB7fQorICAgIHZpcnR1YWwgdm9pZCAgICB0ZXN0X3VuaXRfZmluaXNoKCB0ZXN0X3VuaXQgY29uc3QmLCB1bnNpZ25lZCBsb25nIC8qIGVsYXBzZWQgKi8gKSB7fQorICAgIHZpcnR1YWwgdm9pZCAgICB0ZXN0X3VuaXRfc2tpcHBlZCggdGVzdF91bml0IGNvbnN0JiApIHt9CisgICAgdmlydHVhbCB2b2lkICAgIHRlc3RfdW5pdF9hYm9ydGVkKCB0ZXN0X3VuaXQgY29uc3QmICkge30KKworICAgIHZpcnR1YWwgdm9pZCAgICBhc3NlcnRpb25fcmVzdWx0KCBib29sIC8qIHBhc3NlZCAqLyApIHt9CisgICAgdmlydHVhbCB2b2lkICAgIGV4Y2VwdGlvbl9jYXVnaHQoIGV4ZWN1dGlvbl9leGNlcHRpb24gY29uc3QmICkge30KKworICAgIHZpcnR1YWwgaW50ICAgICBwcmlvcml0eSgpIHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgorICAgIEJPT1NUX1RFU1RfUFJPVEVDVEVEX1ZJUlRVQUwgfnRlc3Rfb2JzZXJ2ZXIoKSB7fQorfTsKKworfSAvLyB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX1RFU1RfT0JTRVJWRVJfSFBQXzAyMTAwNUdFUgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdGVzdF90b29scy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdGVzdF90b29scy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDlhMGY3MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC90ZXN0X3Rvb2xzLmhwcApAQCAtMCwwICsxLDcxOSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwMS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBjb250YWlucyBkZWZpbml0aW9uIGZvciBhbGwgdGVzdCB0b29scyBpbiB0ZXN0IHRvb2xib3gKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfVEVTVF9UT09MU19IUFBfMDEyNzA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfVEVTVF9UT09MU19IUFBfMDEyNzA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3ByZWRpY2F0ZV9yZXN1bHQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mbG9hdGluZ19wb2ludF9jb21wYXJpc29uLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZ2xvYmFsX3R5cGVkZWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy93cmFwX3N0cmluZ3N0cmVhbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2xhenlfb3N0cmVhbS5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2VudW0uaHBwPiAKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9jb21tYV9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvYWRkLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9vci5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGNzdGRkZWY+ICAgICAgICAgIC8vIGZvciBzdGQ6OnNpemVfdAorI2luY2x1ZGUgPGlvc2Z3ZD4KKyNpbmNsdWRlIDxpb3M+ICAgICAgICAgICAgICAvLyBmb3Igc3RkOjpib29sYWxwaGEKKyNpbmNsdWRlIDxjbGltaXRzPiAgICAgICAgICAvLyBmb3IgQ0hBUl9CSVQKKworI2lmZGVmIEJPT1NUX01TVkMKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDEyNykgLy8gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudAorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICAgVE9PTCBCT1ggICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworLy8gSW4gbWFjcm9zIGJlbG93IGZvbGxvd2luZyBhcmd1bWVudCBhYmJyZXZpYXRpb25zIGFyZSB1c2VkOgorLy8gUCAtIHByZWRpY2F0ZQorLy8gTSAtIG1lc3NhZ2UKKy8vIFMgLSBzdGF0ZW1lbnQKKy8vIEUgLSBleGNlcHRpb24KKy8vIEwgLSBsZWZ0IGFyZ3VtZW50CisvLyBSIC0gcmlnaHQgYXJndW1lbnQKKy8vIFRMIC0gdG9vbCBsZXZlbAorLy8gQ1QgLSBjaGVjayB0eXBlCisvLyBBUkdTIC0gYXJndW1lbnRzIGxpc3QKKworI2RlZmluZSBCT09TVF9URVNUX1RPT0xfSU1QTCggZnVuYywgUCwgY2hlY2tfZGVzY3IsIFRMLCBDVCApICAgICAgICAgICAgXAorICAgIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnR0X2RldGFpbDo6ZnVuYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6Omxhenlfb3N0cmVhbTo6aW5zdGFuY2UoKSA8PCBjaGVja19kZXNjciwgICAgXAorICAgICAgICBCT09TVF9URVNUX0woX19GSUxFX18pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oX19MSU5FX18pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OlRMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OkNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX0NIRUNLX0lNUEwoIFAsIGNoZWNrX2Rlc2NyLCBUTCwgQ1QgKSAgICAgICAgICAgICAgICAgIFwKK2RvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RFU1RfUEFTU1BPSU5UKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfVEVTVF9UT09MX0lNUEwoIGNoZWNrX2ltcGwsIFAsIGNoZWNrX2Rlc2NyLCBUTCwgQ1QgKSwgMCApO1wKK30gd2hpbGUoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmR1bW15X2NvbmQgKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1RFU1RfUEFTU19BUkdfSU5GTyggciwgZGF0YSwgYXJnICkgLCBhcmcsIEJPT1NUX1NUUklOR0laRSggYXJnICkKKworI2RlZmluZSBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggUCwgY2hlY2tfZGVzY3IsIFRMLCBDVCwgQVJHUyApICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9URVNUX1BBU1NQT0lOVCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RFU1RfVE9PTF9JTVBMKCBjaGVja19mcndkLCBQLCBjaGVja19kZXNjciwgVEwsIENUICkgICAgICBcCisgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIKCBCT09TVF9URVNUX1BBU1NfQVJHX0lORk8sICdfJywgQVJHUyApICk7IFwKK30gd2hpbGUoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmR1bW15X2NvbmQgKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1dBUk4oIFAgKSAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0NIRUNLX0lNUEwoIChQKSwgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIFAgKSwgV0FSTiwgQ0hFQ0tfUFJFRCApCisjZGVmaW5lIEJPT1NUX0NIRUNLKCBQICkgICAgICAgICAgICAgICAgICAgIEJPT1NUX0NIRUNLX0lNUEwoIChQKSwgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIFAgKSwgQ0hFQ0ssIENIRUNLX1BSRUQgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFKCBQICkgICAgICAgICAgICAgICAgICBCT09TVF9DSEVDS19JTVBMKCAoUCksIEJPT1NUX1RFU1RfU1RSSU5HSVpFKCBQICksIFJFUVVJUkUsIENIRUNLX1BSRUQgKQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1dBUk5fTUVTU0FHRSggUCwgTSApICAgICAgICAgIEJPT1NUX0NIRUNLX0lNUEwoIChQKSwgTSwgV0FSTiwgQ0hFQ0tfTVNHICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfTUVTU0FHRSggUCwgTSApICAgICAgICAgQk9PU1RfQ0hFQ0tfSU1QTCggKFApLCBNLCBDSEVDSywgQ0hFQ0tfTVNHICkKKyNkZWZpbmUgQk9PU1RfUkVRVUlSRV9NRVNTQUdFKCBQLCBNICkgICAgICAgQk9PU1RfQ0hFQ0tfSU1QTCggKFApLCBNLCBSRVFVSVJFLCBDSEVDS19NU0cgKQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX0VSUk9SKCBNICkgICAgICAgICAgICAgICAgICAgIEJPT1NUX0NIRUNLX01FU1NBR0UoIGZhbHNlLCBNICkKKyNkZWZpbmUgQk9PU1RfRkFJTCggTSApICAgICAgICAgICAgICAgICAgICAgQk9PU1RfUkVRVUlSRV9NRVNTQUdFKCBmYWxzZSwgTSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfVEhST1dfSU1QTCggUywgRSwgUCwgcHJlZml4LCBUTCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRyeSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfUEFTU1BPSU5UKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9DSEVDS19JTVBMKCBmYWxzZSwgImV4Y2VwdGlvbiAiIEJPT1NUX1NUUklOR0laRSggRSApICIgaXMgZXhwZWN0ZWQiLCBUTCwgQ0hFQ0tfTVNHICk7IH0gICBcCisgICAgY2F0Y2goIEUgY29uc3QmIGV4ICkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgOjpuZG5ib29zdDo6dW5pdF90ZXN0Ojp1dF9kZXRhaWw6Omlnbm9yZV91bnVzZWRfdmFyaWFibGVfd2FybmluZyggZXggKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9DSEVDS19JTVBMKCBQLCBwcmVmaXggQk9PU1RfU1RSSU5HSVpFKCBFICkgIiBpcyBjYXVnaHQiLCBUTCwgQ0hFQ0tfTVNHICk7ICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9XQVJOX1RIUk9XKCBTLCBFICkgICAgICAgICAgICBCT09TVF9DSEVDS19USFJPV19JTVBMKCBTLCBFLCB0cnVlLCAiZXhjZXB0aW9uICIsIFdBUk4gKQorI2RlZmluZSBCT09TVF9DSEVDS19USFJPVyggUywgRSApICAgICAgICAgICBCT09TVF9DSEVDS19USFJPV19JTVBMKCBTLCBFLCB0cnVlLCAiZXhjZXB0aW9uICIsIENIRUNLICkKKyNkZWZpbmUgQk9PU1RfUkVRVUlSRV9USFJPVyggUywgRSApICAgICAgICAgQk9PU1RfQ0hFQ0tfVEhST1dfSU1QTCggUywgRSwgdHJ1ZSwgImV4Y2VwdGlvbiAiLCBSRVFVSVJFICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9XQVJOX0VYQ0VQVElPTiggUywgRSwgUCApICAgICBCT09TVF9DSEVDS19USFJPV19JTVBMKCBTLCBFLCBQKCBleCApLCAiaW5jb3JyZWN0IGV4Y2VwdGlvbiAiLCBXQVJOICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfRVhDRVBUSU9OKCBTLCBFLCBQICkgICAgQk9PU1RfQ0hFQ0tfVEhST1dfSU1QTCggUywgRSwgUCggZXggKSwgImluY29ycmVjdCBleGNlcHRpb24gIiwgQ0hFQ0sgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX0VYQ0VQVElPTiggUywgRSwgUCApICBCT09TVF9DSEVDS19USFJPV19JTVBMKCBTLCBFLCBQKCBleCApLCAiaW5jb3JyZWN0IGV4Y2VwdGlvbiAiLCBSRVFVSVJFICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9DSEVDS19OT19USFJPV19JTVBMKCBTLCBUTCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0cnkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9DSEVDS19JTVBMKCB0cnVlLCAibm8gZXhjZXB0aW9ucyB0aHJvd24gYnkgIiBCT09TVF9TVFJJTkdJWkUoIFMgKSwgVEwsIENIRUNLX01TRyApOyB9IFwKKyAgICBjYXRjaCggLi4uICkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX0NIRUNLX0lNUEwoIGZhbHNlLCAiZXhjZXB0aW9uIHRocm93biBieSAiIEJPT1NUX1NUUklOR0laRSggUyApLCBUTCwgQ0hFQ0tfTVNHICk7ICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9XQVJOX05PX1RIUk9XKCBTICkgICAgICAgICAgICBCT09TVF9DSEVDS19OT19USFJPV19JTVBMKCBTLCBXQVJOICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfTk9fVEhST1coIFMgKSAgICAgICAgICAgQk9PU1RfQ0hFQ0tfTk9fVEhST1dfSU1QTCggUywgQ0hFQ0sgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX05PX1RIUk9XKCBTICkgICAgICAgICBCT09TVF9DSEVDS19OT19USFJPV19JTVBMKCBTLCBSRVFVSVJFICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9XQVJOX0VRVUFMKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmVxdWFsX2ltcGxfZnJ3ZCgpLCAiIiwgV0FSTiwgQ0hFQ0tfRVFVQUwsIChMKShSKSApCisjZGVmaW5lIEJPT1NUX0NIRUNLX0VRVUFMKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmVxdWFsX2ltcGxfZnJ3ZCgpLCAiIiwgQ0hFQ0ssIENIRUNLX0VRVUFMLCAoTCkoUikgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX0VRVUFMKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmVxdWFsX2ltcGxfZnJ3ZCgpLCAiIiwgUkVRVUlSRSwgQ0hFQ0tfRVFVQUwsIChMKShSKSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfV0FSTl9ORSggTCwgUiApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6dHRfZGV0YWlsOjpuZV9pbXBsKCksICIiLCBXQVJOLCBDSEVDS19ORSwgKEwpKFIpICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfTkUoIEwsIFIgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnR0X2RldGFpbDo6bmVfaW1wbCgpLCAiIiwgQ0hFQ0ssIENIRUNLX05FLCAoTCkoUikgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX05FKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6Om5lX2ltcGwoKSwgIiIsIFJFUVVJUkUsIENIRUNLX05FLCAoTCkoUikgKQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1dBUk5fTFQoIEwsIFIgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnR0X2RldGFpbDo6bHRfaW1wbCgpLCAiIiwgV0FSTiwgQ0hFQ0tfTFQsIChMKShSKSApCisjZGVmaW5lIEJPT1NUX0NIRUNLX0xUKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6Omx0X2ltcGwoKSwgIiIsIENIRUNLLCBDSEVDS19MVCwgKEwpKFIpICkKKyNkZWZpbmUgQk9PU1RfUkVRVUlSRV9MVCggTCwgUiApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6dHRfZGV0YWlsOjpsdF9pbXBsKCksICIiLCBSRVFVSVJFLCBDSEVDS19MVCwgKEwpKFIpICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9XQVJOX0xFKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmxlX2ltcGwoKSwgIiIsIFdBUk4sIENIRUNLX0xFLCAoTCkoUikgKQorI2RlZmluZSBCT09TVF9DSEVDS19MRSggTCwgUiApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6dHRfZGV0YWlsOjpsZV9pbXBsKCksICIiLCBDSEVDSywgQ0hFQ0tfTEUsIChMKShSKSApCisjZGVmaW5lIEJPT1NUX1JFUVVJUkVfTEUoIEwsIFIgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnR0X2RldGFpbDo6bGVfaW1wbCgpLCAiIiwgUkVRVUlSRSwgQ0hFQ0tfTEUsIChMKShSKSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfV0FSTl9HVCggTCwgUiApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6dHRfZGV0YWlsOjpndF9pbXBsKCksICIiLCBXQVJOLCBDSEVDS19HVCwgKEwpKFIpICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfR1QoIEwsIFIgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnR0X2RldGFpbDo6Z3RfaW1wbCgpLCAiIiwgQ0hFQ0ssIENIRUNLX0dULCAoTCkoUikgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX0dUKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6Omd0X2ltcGwoKSwgIiIsIFJFUVVJUkUsIENIRUNLX0dULCAoTCkoUikgKQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1dBUk5fR0UoIEwsIFIgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnR0X2RldGFpbDo6Z2VfaW1wbCgpLCAiIiwgV0FSTiwgQ0hFQ0tfR0UsIChMKShSKSApCisjZGVmaW5lIEJPT1NUX0NIRUNLX0dFKCBMLCBSICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmdlX2ltcGwoKSwgIiIsIENIRUNLLCBDSEVDS19HRSwgKEwpKFIpICkKKyNkZWZpbmUgQk9PU1RfUkVRVUlSRV9HRSggTCwgUiApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6dHRfZGV0YWlsOjpnZV9pbXBsKCksICIiLCBSRVFVSVJFLCBDSEVDS19HRSwgKEwpKFIpICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9XQVJOX0NMT1NFKCBMLCBSLCBUICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjpjaGVja19pc19jbG9zZSwgIiIsIFdBUk4sIENIRUNLX0NMT1NFLCBcCisgICAgICAgIChMKShSKSg6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjpwZXJjZW50X3RvbGVyYW5jZShUKSkgKQorI2RlZmluZSBCT09TVF9DSEVDS19DTE9TRSggTCwgUiwgVCApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6Y2hlY2tfaXNfY2xvc2UsICIiLCBDSEVDSywgQ0hFQ0tfQ0xPU0UsIFwKKyAgICAgICAgKEwpKFIpKDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnBlcmNlbnRfdG9sZXJhbmNlKFQpKSApCisjZGVmaW5lIEJPT1NUX1JFUVVJUkVfQ0xPU0UoIEwsIFIsIFQgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmNoZWNrX2lzX2Nsb3NlLCAiIiwgUkVRVUlSRSwgQ0hFQ0tfQ0xPU0UsIFwKKyAgICAgICAgKEwpKFIpKDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OnBlcmNlbnRfdG9sZXJhbmNlKFQpKSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfV0FSTl9DTE9TRV9GUkFDVElPTiggTCwgUiwgVCApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6Y2hlY2tfaXNfY2xvc2UsICIiLCBXQVJOLCBDSEVDS19DTE9TRV9GUkFDVElPTiwgXAorICAgIChMKShSKSg6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjpmcmFjdGlvbl90b2xlcmFuY2UoVCkpICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfQ0xPU0VfRlJBQ1RJT04oIEwsIFIsIFQgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmNoZWNrX2lzX2Nsb3NlLCAiIiwgQ0hFQ0ssIENIRUNLX0NMT1NFX0ZSQUNUSU9OLCBcCisgICAgKEwpKFIpKDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmZyYWN0aW9uX3RvbGVyYW5jZShUKSkgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX0NMT1NFX0ZSQUNUSU9OKCBMLCBSLCBUICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjpjaGVja19pc19jbG9zZSwgIiIsIFJFUVVJUkUsIENIRUNLX0NMT1NFX0ZSQUNUSU9OLCBcCisgICAgKEwpKFIpKDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmZyYWN0aW9uX3RvbGVyYW5jZShUKSkgKQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1dBUk5fU01BTEwoIEZQViwgVCApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggOjpuZG5ib29zdDo6dGVzdF90b29sczo6Y2hlY2tfaXNfc21hbGwsICIiLCBXQVJOLCBDSEVDS19TTUFMTCwgKEZQVikoVCkgKQorI2RlZmluZSBCT09TVF9DSEVDS19TTUFMTCggRlBWLCBUICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjpjaGVja19pc19zbWFsbCwgIiIsIENIRUNLLCBDSEVDS19TTUFMTCwgKEZQVikoVCkgKQorI2RlZmluZSBCT09TVF9SRVFVSVJFX1NNQUxMKCBGUFYsIFQgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmNoZWNrX2lzX3NtYWxsLCAiIiwgUkVRVUlSRSwgQ0hFQ0tfU01BTEwsIChGUFYpKFQpICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9XQVJOX1BSRURJQ0FURSggUCwgQVJHUyApIFwKKyAgICBCT09TVF9DSEVDS19XSVRIX0FSR1NfSU1QTCggUCwgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIFAgKSwgV0FSTiwgQ0hFQ0tfUFJFRF9XSVRIX0FSR1MsIEFSR1MgKQorI2RlZmluZSBCT09TVF9DSEVDS19QUkVESUNBVEUoIFAsIEFSR1MgKSBcCisgICAgQk9PU1RfQ0hFQ0tfV0lUSF9BUkdTX0lNUEwoIFAsIEJPT1NUX1RFU1RfU1RSSU5HSVpFKCBQICksIENIRUNLLCBDSEVDS19QUkVEX1dJVEhfQVJHUywgQVJHUyApCisjZGVmaW5lIEJPT1NUX1JFUVVJUkVfUFJFRElDQVRFKCBQLCBBUkdTICkgXAorICAgIEJPT1NUX0NIRUNLX1dJVEhfQVJHU19JTVBMKCBQLCBCT09TVF9URVNUX1NUUklOR0laRSggUCApLCBSRVFVSVJFLCBDSEVDS19QUkVEX1dJVEhfQVJHUywgQVJHUyApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfRVFVQUxfQ09MTEVDVElPTlNfSU1QTCggTF9iZWdpbiwgTF9lbmQsIFJfYmVnaW4sIFJfZW5kLCBUTCApICAgICAgXAorICAgIEJPT1NUX1RFU1RfVE9PTF9JTVBMKCBjaGVja19pbXBsLCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmVxdWFsX2NvbGxfaW1wbCggXAorICAgICAgICAoTF9iZWdpbiksIChMX2VuZCksIChSX2JlZ2luKSwgKFJfZW5kKSApLCAiIiwgVEwsIENIRUNLX0VRVUFMX0NPTEwgKSwgICBcCisgICAgNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9TVFJJTkdJWkUoIExfYmVnaW4gKSwgQk9PU1RfU1RSSU5HSVpFKCBMX2VuZCApLCAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1NUUklOR0laRSggUl9iZWdpbiApLCBCT09TVF9TVFJJTkdJWkUoIFJfZW5kICkgKSAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfV0FSTl9FUVVBTF9DT0xMRUNUSU9OUyggTF9iZWdpbiwgTF9lbmQsIFJfYmVnaW4sIFJfZW5kICkgICAgICAgICAgXAorICAgIEJPT1NUX0VRVUFMX0NPTExFQ1RJT05TX0lNUEwoIExfYmVnaW4sIExfZW5kLCBSX2JlZ2luLCBSX2VuZCwgV0FSTiApCisjZGVmaW5lIEJPT1NUX0NIRUNLX0VRVUFMX0NPTExFQ1RJT05TKCBMX2JlZ2luLCBMX2VuZCwgUl9iZWdpbiwgUl9lbmQgKSAgICAgICAgIFwKKyAgICBCT09TVF9FUVVBTF9DT0xMRUNUSU9OU19JTVBMKCBMX2JlZ2luLCBMX2VuZCwgUl9iZWdpbiwgUl9lbmQsIENIRUNLICkKKyNkZWZpbmUgQk9PU1RfUkVRVUlSRV9FUVVBTF9DT0xMRUNUSU9OUyggTF9iZWdpbiwgTF9lbmQsIFJfYmVnaW4sIFJfZW5kICkgICAgICAgXAorICAgIEJPT1NUX0VRVUFMX0NPTExFQ1RJT05TX0lNUEwoIExfYmVnaW4sIExfZW5kLCBSX2JlZ2luLCBSX2VuZCwgUkVRVUlSRSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfQklUV0lTRV9FUVVBTF9JTVBMKCBMLCBSLCBUTCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RFU1RfVE9PTF9JTVBMKCBjaGVja19pbXBsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OmJpdHdpc2VfZXF1YWxfaW1wbCggKEwpLCAoUikgKSwgICAgICAgICAgIFwKKyAgICAgICIiLCBUTCwgQ0hFQ0tfQklUV0lTRV9FUVVBTCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIDIsIEJPT1NUX1NUUklOR0laRSggTCApLCBCT09TVF9TVFJJTkdJWkUoIFIgKSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfV0FSTl9CSVRXSVNFX0VRVUFMKCBMLCBSICkgICAgQk9PU1RfQklUV0lTRV9FUVVBTF9JTVBMKCBMLCBSLCBXQVJOICkKKyNkZWZpbmUgQk9PU1RfQ0hFQ0tfQklUV0lTRV9FUVVBTCggTCwgUiApICAgQk9PU1RfQklUV0lTRV9FUVVBTF9JTVBMKCBMLCBSLCBDSEVDSyApCisjZGVmaW5lIEJPT1NUX1JFUVVJUkVfQklUV0lTRV9FUVVBTCggTCwgUiApIEJPT1NUX0JJVFdJU0VfRVFVQUxfSU1QTCggTCwgUiwgUkVRVUlSRSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfSVNfREVGSU5FRCggc3ltYiApICAgICAgICAgICAgOjpuZG5ib29zdDo6dGVzdF90b29sczo6dHRfZGV0YWlsOjppc19kZWZpbmVkX2ltcGwoICNzeW1iLCBCT09TVF9TVFJJTkdJWkUoPSBzeW1iKSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyBkZXByZWNhdGVkIGludGVyZmFjZQorCisjZGVmaW5lIEJPT1NUX0JJVFdJU0VfRVFVQUwoIEwsIFIgKSAgICAgICAgIEJPT1NUX0NIRUNLX0JJVFdJU0VfRVFVQUwoIEwsIFIgKQorI2RlZmluZSBCT09TVF9NRVNTQUdFKCBNICkgICAgICAgICAgICAgICAgICBCT09TVF9URVNUX01FU1NBR0UoIE0gKQorI2RlZmluZSBCT09TVF9DSEVDS1BPSU5UKCBNICkgICAgICAgICAgICAgICBCT09TVF9URVNUX0NIRUNLUE9JTlQoIE0gKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdGVzdF90b29scyB7CisKK3R5cGVkZWYgdW5pdF90ZXN0Ojpjb25zdF9zdHJpbmcgICAgICBjb25zdF9zdHJpbmc7CisKK25hbWVzcGFjZSB7IGJvb2wgZHVtbXlfY29uZCA9IGZhbHNlOyB9CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICBwcmludF9sb2dfdmFsdWUgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBwcmludF9sb2dfdmFsdWUgeworICAgIHZvaWQgICAgb3BlcmF0b3IoKSggc3RkOjpvc3RyZWFtJiBvc3RyLCBUIGNvbnN0JiB0ICkKKyAgICB7CisgICAgICAgIC8vIGF2b2lkIHdhcm5pbmc6ICduZG5ib29zdDo6dGVzdF90b29sczo6PHVubmFtZWQ+OjpkdW1teV9jb25kJyBkZWZpbmVkIGJ1dCBub3QgdXNlZCAKKyAgICAgICAgaWYgKDo6bmRuYm9vc3Q6OnRlc3RfdG9vbHM6OmR1bW15X2NvbmQpIHt9CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6Om9yXzxpc19hcnJheTxUPixpc19mdW5jdGlvbjxUPixpc19hYnN0cmFjdDxUPiA+Ojp0eXBlIGNhbnRfdXNlX25sOworCisgICAgICAgIHNldF9wcmVjaXNpb24oIG9zdHIsIGNhbnRfdXNlX25sKCkgKTsKKworICAgICAgICBvc3RyIDw8IHQ7IC8vIGJ5IGRlZmF1bHQgcHJpbnQgdGhlIHZhbHVlCisgICAgfQorCisgICAgdm9pZCBzZXRfcHJlY2lzaW9uKCBzdGQ6Om9zdHJlYW0mIG9zdHIsIG1wbDo6ZmFsc2VfICkKKyAgICB7CisgICAgICAgIGlmKCBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojppc19zcGVjaWFsaXplZCAmJiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpyYWRpeCA9PSAyICkKKyAgICAgICAgICAgIG9zdHIucHJlY2lzaW9uKCAyICsgc3RkOjpudW1lcmljX2xpbWl0czxUPjo6ZGlnaXRzICogMzAxLzEwMDAgKTsgCisgICAgfQorCisgICAgdm9pZCBzZXRfcHJlY2lzaW9uKCBzdGQ6Om9zdHJlYW0mLCBtcGw6OnRydWVfICkge30KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfVEVTVF9ET05UX1BSSU5UX0xPR19WQUxVRSggdGhlX3R5cGUgKSAgICAgICAgIFwKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0ZXN0X3Rvb2xzIHsgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0cnVjdCBwcmludF9sb2dfdmFsdWU8dGhlX3R5cGUgPiB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIG9wZXJhdG9yKCkoIHN0ZDo6b3N0cmVhbSYsIHRoZV90eXBlIGNvbnN0JiApIHt9ICAgIFwKK307ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK319ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQordGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTiA+CitzdHJ1Y3QgcHJpbnRfbG9nX3ZhbHVlPCBUW05dID4geworICAgIHZvaWQgICAgb3BlcmF0b3IoKSggc3RkOjpvc3RyZWFtJiBvc3RyLCBUIGNvbnN0KiB0ICkKKyAgICB7CisgICAgICAgIG9zdHIgPDwgdDsKKyAgICB9Cit9OworI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBCT09TVF9URVNUX0RFQ0wgcHJpbnRfbG9nX3ZhbHVlPGJvb2w+IHsKKyAgICB2b2lkICAgIG9wZXJhdG9yKCkoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgYm9vbCB0ICkKKyAgICB7CisgICAgICAgICBvc3RyIDw8IHN0ZDo6Ym9vbGFscGhhIDw8IHQ7CisgICAgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8Pgorc3RydWN0IEJPT1NUX1RFU1RfREVDTCBwcmludF9sb2dfdmFsdWU8Y2hhcj4geworICAgIHZvaWQgICAgb3BlcmF0b3IoKSggc3RkOjpvc3RyZWFtJiBvc3RyLCBjaGFyIHQgKTsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBCT09TVF9URVNUX0RFQ0wgcHJpbnRfbG9nX3ZhbHVlPHVuc2lnbmVkIGNoYXI+IHsKKyAgICB2b2lkICAgIG9wZXJhdG9yKCkoIHN0ZDo6b3N0cmVhbSYgb3N0ciwgdW5zaWduZWQgY2hhciB0ICk7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgQk9PU1RfVEVTVF9ERUNMIHByaW50X2xvZ192YWx1ZTxjaGFyIGNvbnN0Kj4geworICAgIHZvaWQgICAgb3BlcmF0b3IoKSggc3RkOjpvc3RyZWFtJiBvc3RyLCBjaGFyIGNvbnN0KiB0ICk7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgQk9PU1RfVEVTVF9ERUNMIHByaW50X2xvZ192YWx1ZTx3Y2hhcl90IGNvbnN0Kj4geworICAgIHZvaWQgICAgb3BlcmF0b3IoKSggc3RkOjpvc3RyZWFtJiBvc3RyLCB3Y2hhcl90IGNvbnN0KiB0ICk7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgdHRfZGV0YWlsIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICB0b29scyBjbGFzc2lmaWNhdGlvbiAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitlbnVtIGNoZWNrX3R5cGUgeworICAgIENIRUNLX1BSRUQsIAorICAgIENIRUNLX01TRywKKyAgICBDSEVDS19FUVVBTCwKKyAgICBDSEVDS19ORSwKKyAgICBDSEVDS19MVCwKKyAgICBDSEVDS19MRSwKKyAgICBDSEVDS19HVCwKKyAgICBDSEVDS19HRSwKKyAgICBDSEVDS19DTE9TRSwKKyAgICBDSEVDS19DTE9TRV9GUkFDVElPTiwKKyAgICBDSEVDS19TTUFMTCwKKyAgICBDSEVDS19CSVRXSVNFX0VRVUFMLAorICAgIENIRUNLX1BSRURfV0lUSF9BUkdTLAorICAgIENIRUNLX0VRVUFMX0NPTEwKK307CisKK2VudW0gdG9vbF9sZXZlbCB7CisgICAgV0FSTiwgQ0hFQ0ssIFJFUVVJUkUsIFBBU1MKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgcHJpbnRfaGVscGVyICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vIEFkZHMgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gdG8gdGhlIG91dHB1dCBvcGVyYXRpb24sIGFsbG93aW5nIHVzIHRvIGN1c3RvbWl6ZSAKKy8vIGl0IGZvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IG9wZXJhdG9yIDw8IGRpcmVjdGx5IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgcHJpbnRfaGVscGVyX3QgeworICAgIGV4cGxpY2l0ICAgIHByaW50X2hlbHBlcl90KCBUIGNvbnN0JiB0ICkgOiBtX3QoIHQgKSB7fQorCisgICAgVCBjb25zdCYgICAgbV90OworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKSAKKy8vIEJvcmxhbmQgc3VmZmVycyBwcmVtYXR1cmUgcG9pbnRlciBkZWNheSBwYXNzaW5nIGFycmF5cyBieSByZWZlcmVuY2UKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4gPgorc3RydWN0IHByaW50X2hlbHBlcl90PCBUW05dID4geworICAgIGV4cGxpY2l0ICAgIHByaW50X2hlbHBlcl90KCBUIGNvbnN0ICogdCApIDogbV90KCB0ICkge30KKworICAgIFQgY29uc3QgKiAgIG1fdDsKK307CisjZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBwcmludF9oZWxwZXJfdDxUPiBwcmludF9oZWxwZXIoIFQgY29uc3QmIHQgKQoreworICAgIHJldHVybiBwcmludF9oZWxwZXJfdDxUPiggdCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHN0ZDo6b3N0cmVhbSYgCitvcGVyYXRvcjw8KCBzdGQ6Om9zdHJlYW0mIG9zdHIsIHByaW50X2hlbHBlcl90PFQ+IGNvbnN0JiBwaCApCit7CisgICAgcHJpbnRfbG9nX3ZhbHVlPFQ+KCkoIG9zdHIsIHBoLm1fdCApOworCisgICAgcmV0dXJuIG9zdHI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgIFRPT0wgQk9YIEltcGxlbWVudGF0aW9uICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworQk9PU1RfVEVTVF9ERUNMIAorYm9vbCBjaGVja19pbXBsKCBwcmVkaWNhdGVfcmVzdWx0IGNvbnN0JiBwciwgOjpuZG5ib29zdDo6dW5pdF90ZXN0OjpsYXp5X29zdHJlYW0gY29uc3QmIGNoZWNrX2Rlc2NyLAorICAgICAgICAgICAgICAgICBjb25zdF9zdHJpbmcgZmlsZV9uYW1lLCBzdGQ6OnNpemVfdCBsaW5lX251bSwKKyAgICAgICAgICAgICAgICAgdG9vbF9sZXZlbCB0bCwgY2hlY2tfdHlwZSBjdCwKKyAgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgbnVtX2FyZ3MsIC4uLiApOworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIFRFTVBMX1BBUkFNUyggeiwgbSwgZHVtbXkgKSAsIHR5cGVuYW1lIEJPT1NUX0pPSU4oIEFyZywgbSApCisjZGVmaW5lIEZVTkNfUEFSQU1TKCB6LCBtLCBkdW1teSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgLCBCT09TVF9KT0lOKCBBcmcsIG0gKSBjb25zdCYgQk9PU1RfSk9JTiggYXJnLCBtICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgLCBjaGFyIGNvbnN0KiBCT09TVF9KT0lOKCBCT09TVF9KT0lOKCBhcmcsIG0gKSwgX2Rlc2NyICkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNkZWZpbmUgUFJFRF9QQVJBTVMoIHosIG0sIGR1bW15ICkgQk9PU1RfUFBfQ09NTUFfSUYoIG0gKSBCT09TVF9KT0lOKCBhcmcsIG0gKSAKKworI2RlZmluZSBBUkdfSU5GTyggeiwgbSwgZHVtbXkgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICwgQk9PU1RfSk9JTiggQk9PU1RfSk9JTiggYXJnLCBtICksIF9kZXNjciApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICwgJnN0YXRpY19jYXN0PGNvbnN0IHVuaXRfdGVzdDo6bGF6eV9vc3RyZWFtJj4odW5pdF90ZXN0OjpsYXp5X29zdHJlYW06Omluc3RhbmNlKCkgXAorICAgICAgICA8PCA6Om5kbmJvb3N0Ojp0ZXN0X3Rvb2xzOjp0dF9kZXRhaWw6OnByaW50X2hlbHBlciggQk9PU1RfSk9JTiggYXJnLCBtICkgKSkgICAgXAorLyoqLworCisjZGVmaW5lIElNUExfRlJXRCggeiwgbiwgZHVtbXkgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZTx0eXBlbmFtZSBQcmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICBCT09TVF9QUF9SRVBFQVRfICMjIHooIEJPT1NUX1BQX0FERCggbiwgMSApLCBURU1QTF9QQVJBTVMsIF8gKT4gICAgICAgICAgICBcCitpbmxpbmUgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjaGVja19mcndkKCBQcmVkIFAsIHVuaXRfdGVzdDo6bGF6eV9vc3RyZWFtIGNvbnN0JiBjaGVja19kZXNjciwgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBjb25zdF9zdHJpbmcgZmlsZV9uYW1lLCBzdGQ6OnNpemVfdCBsaW5lX251bSwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0b29sX2xldmVsIHRsLCBjaGVja190eXBlIGN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9QUF9SRVBFQVRfICMjIHooIEJPT1NUX1BQX0FERCggbiwgMSApLCBGVU5DX1BBUkFNUywgXyApICAgICAgICAgICBcCispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2hlY2tfaW1wbCggUCggQk9PU1RfUFBfUkVQRUFUXyAjIyB6KCBCT09TVF9QUF9BREQoIG4sIDEgKSwgUFJFRF9QQVJBTVMsIF8gKSApLCBcCisgICAgICAgICAgICAgICAgY2hlY2tfZGVzY3IsIGZpbGVfbmFtZSwgbGluZV9udW0sIHRsLCBjdCwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgQk9PU1RfUFBfQUREKCBuLCAxICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgQk9PU1RfUFBfUkVQRUFUXyAjIyB6KCBCT09TVF9QUF9BREQoIG4sIDEgKSwgQVJHX0lORk8sIF8gKSAgICAgICAgICBcCisgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9NQVhfUFJFRElDQVRFX0FSSVRZCisjZGVmaW5lIEJPT1NUX1RFU1RfTUFYX1BSRURJQ0FURV9BUklUWSA1CisjZW5kaWYKKworQk9PU1RfUFBfUkVQRUFUKCBCT09TVF9URVNUX01BWF9QUkVESUNBVEVfQVJJVFksIElNUExfRlJXRCwgXyApCisKKyN1bmRlZiBURU1QTF9QQVJBTVMKKyN1bmRlZiBGVU5DX1BBUkFNUworI3VuZGVmIFBSRURfSU5GTworI3VuZGVmIEFSR19JTkZPCisjdW5kZWYgSU1QTF9GUldECisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlIDxjbGFzcyBMZWZ0LCBjbGFzcyBSaWdodD4KK3ByZWRpY2F0ZV9yZXN1bHQgZXF1YWxfaW1wbCggTGVmdCBjb25zdCYgbGVmdCwgUmlnaHQgY29uc3QmIHJpZ2h0ICkKK3sKKyAgICByZXR1cm4gbGVmdCA9PSByaWdodDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworcHJlZGljYXRlX3Jlc3VsdCAgICAgICAgQk9PU1RfVEVTVF9ERUNMIGVxdWFsX2ltcGwoIGNoYXIgY29uc3QqIGxlZnQsIGNoYXIgY29uc3QqIHJpZ2h0ICk7CitpbmxpbmUgcHJlZGljYXRlX3Jlc3VsdCBlcXVhbF9pbXBsKCBjaGFyKiBsZWZ0LCBjaGFyIGNvbnN0KiByaWdodCApIHsgcmV0dXJuIGVxdWFsX2ltcGwoIHN0YXRpY19jYXN0PGNoYXIgY29uc3QqPihsZWZ0KSwgc3RhdGljX2Nhc3Q8Y2hhciBjb25zdCo+KHJpZ2h0KSApOyB9CitpbmxpbmUgcHJlZGljYXRlX3Jlc3VsdCBlcXVhbF9pbXBsKCBjaGFyIGNvbnN0KiBsZWZ0LCBjaGFyKiByaWdodCApIHsgcmV0dXJuIGVxdWFsX2ltcGwoIHN0YXRpY19jYXN0PGNoYXIgY29uc3QqPihsZWZ0KSwgc3RhdGljX2Nhc3Q8Y2hhciBjb25zdCo+KHJpZ2h0KSApOyB9CitpbmxpbmUgcHJlZGljYXRlX3Jlc3VsdCBlcXVhbF9pbXBsKCBjaGFyKiBsZWZ0LCBjaGFyKiByaWdodCApICAgICAgIHsgcmV0dXJuIGVxdWFsX2ltcGwoIHN0YXRpY19jYXN0PGNoYXIgY29uc3QqPihsZWZ0KSwgc3RhdGljX2Nhc3Q8Y2hhciBjb25zdCo+KHJpZ2h0KSApOyB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1dDSEFSICkKK3ByZWRpY2F0ZV9yZXN1bHQgICAgICAgIEJPT1NUX1RFU1RfREVDTCBlcXVhbF9pbXBsKCB3Y2hhcl90IGNvbnN0KiBsZWZ0LCB3Y2hhcl90IGNvbnN0KiByaWdodCApOworaW5saW5lIHByZWRpY2F0ZV9yZXN1bHQgZXF1YWxfaW1wbCggd2NoYXJfdCogbGVmdCwgd2NoYXJfdCBjb25zdCogcmlnaHQgKSB7IHJldHVybiBlcXVhbF9pbXBsKCBzdGF0aWNfY2FzdDx3Y2hhcl90IGNvbnN0Kj4obGVmdCksIHN0YXRpY19jYXN0PHdjaGFyX3QgY29uc3QqPihyaWdodCkgKTsgfQoraW5saW5lIHByZWRpY2F0ZV9yZXN1bHQgZXF1YWxfaW1wbCggd2NoYXJfdCBjb25zdCogbGVmdCwgd2NoYXJfdCogcmlnaHQgKSB7IHJldHVybiBlcXVhbF9pbXBsKCBzdGF0aWNfY2FzdDx3Y2hhcl90IGNvbnN0Kj4obGVmdCksIHN0YXRpY19jYXN0PHdjaGFyX3QgY29uc3QqPihyaWdodCkgKTsgfQoraW5saW5lIHByZWRpY2F0ZV9yZXN1bHQgZXF1YWxfaW1wbCggd2NoYXJfdCogbGVmdCwgd2NoYXJfdCogcmlnaHQgKSAgICAgICB7IHJldHVybiBlcXVhbF9pbXBsKCBzdGF0aWNfY2FzdDx3Y2hhcl90IGNvbnN0Kj4obGVmdCksIHN0YXRpY19jYXN0PHdjaGFyX3QgY29uc3QqPihyaWdodCkgKTsgfQorI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0cnVjdCBlcXVhbF9pbXBsX2Zyd2QgeworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBMZWZ0LCB0eXBlbmFtZSBSaWdodD4KKyAgICBpbmxpbmUgcHJlZGljYXRlX3Jlc3VsdAorICAgIGNhbGxfaW1wbCggTGVmdCBjb25zdCYgbGVmdCwgUmlnaHQgY29uc3QmIHJpZ2h0LCBtcGw6OmZhbHNlXyApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZXF1YWxfaW1wbCggbGVmdCwgcmlnaHQgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGVmdCwgdHlwZW5hbWUgUmlnaHQ+CisgICAgaW5saW5lIHByZWRpY2F0ZV9yZXN1bHQKKyAgICBjYWxsX2ltcGwoIExlZnQgY29uc3QmIGxlZnQsIFJpZ2h0IGNvbnN0JiByaWdodCwgbXBsOjp0cnVlXyApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKCp0aGlzKSggcmlnaHQsICZsZWZ0WzBdICk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIExlZnQsIHR5cGVuYW1lIFJpZ2h0PgorICAgIGlubGluZSBwcmVkaWNhdGVfcmVzdWx0CisgICAgb3BlcmF0b3IoKSggTGVmdCBjb25zdCYgbGVmdCwgUmlnaHQgY29uc3QmIHJpZ2h0ICkgY29uc3QKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgaXNfYXJyYXk8TGVmdD46OnR5cGUgbGVmdF9pc19hcnJheTsKKyAgICAgICAgcmV0dXJuIGNhbGxfaW1wbCggbGVmdCwgcmlnaHQsIGxlZnRfaXNfYXJyYXkoKSApOworICAgIH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3N0cnVjdCBuZV9pbXBsIHsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgTGVmdCwgY2xhc3MgUmlnaHQ+CisgICAgcHJlZGljYXRlX3Jlc3VsdCBvcGVyYXRvcigpKCBMZWZ0IGNvbnN0JiBsZWZ0LCBSaWdodCBjb25zdCYgcmlnaHQgKQorICAgIHsKKyAgICAgICAgcmV0dXJuICFlcXVhbF9pbXBsX2Zyd2QoKSggbGVmdCwgcmlnaHQgKTsKKyAgICB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdHJ1Y3QgbHRfaW1wbCB7CisgICAgdGVtcGxhdGUgPGNsYXNzIExlZnQsIGNsYXNzIFJpZ2h0PgorICAgIHByZWRpY2F0ZV9yZXN1bHQgb3BlcmF0b3IoKSggTGVmdCBjb25zdCYgbGVmdCwgUmlnaHQgY29uc3QmIHJpZ2h0ICkKKyAgICB7CisgICAgICAgIHJldHVybiBsZWZ0IDwgcmlnaHQ7CisgICAgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RydWN0IGxlX2ltcGwgeworICAgIHRlbXBsYXRlIDxjbGFzcyBMZWZ0LCBjbGFzcyBSaWdodD4KKyAgICBwcmVkaWNhdGVfcmVzdWx0IG9wZXJhdG9yKCkoIExlZnQgY29uc3QmIGxlZnQsIFJpZ2h0IGNvbnN0JiByaWdodCApCisgICAgeworICAgICAgICByZXR1cm4gbGVmdCA8PSByaWdodDsKKyAgICB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitzdHJ1Y3QgZ3RfaW1wbCB7CisgICAgdGVtcGxhdGUgPGNsYXNzIExlZnQsIGNsYXNzIFJpZ2h0PgorICAgIHByZWRpY2F0ZV9yZXN1bHQgb3BlcmF0b3IoKSggTGVmdCBjb25zdCYgbGVmdCwgUmlnaHQgY29uc3QmIHJpZ2h0ICkKKyAgICB7CisgICAgICAgIHJldHVybiBsZWZ0ID4gcmlnaHQ7CisgICAgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworc3RydWN0IGdlX2ltcGwgeworICAgIHRlbXBsYXRlIDxjbGFzcyBMZWZ0LCBjbGFzcyBSaWdodD4KKyAgICBwcmVkaWNhdGVfcmVzdWx0IG9wZXJhdG9yKCkoIExlZnQgY29uc3QmIGxlZnQsIFJpZ2h0IGNvbnN0JiByaWdodCApCisgICAgeworICAgICAgICByZXR1cm4gbGVmdCA+PSByaWdodDsKKyAgICB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGVmdCwgdHlwZW5hbWUgUmlnaHQ+CitpbmxpbmUgcHJlZGljYXRlX3Jlc3VsdAorZXF1YWxfY29sbF9pbXBsKCBMZWZ0IGxlZnRfYmVnaW4sIExlZnQgbGVmdF9lbmQsIFJpZ2h0IHJpZ2h0X2JlZ2luLCBSaWdodCByaWdodF9lbmQgKQoreworICAgIHByZWRpY2F0ZV9yZXN1bHQgICAgcmVzKCB0cnVlICk7CisgICAgc3RkOjpzaXplX3QgICAgICAgICBwb3MgPSAwOworCisgICAgZm9yKCA7IGxlZnRfYmVnaW4gIT0gbGVmdF9lbmQgJiYgcmlnaHRfYmVnaW4gIT0gcmlnaHRfZW5kOyArK2xlZnRfYmVnaW4sICsrcmlnaHRfYmVnaW4sICsrcG9zICkgeworICAgICAgICBpZiggKmxlZnRfYmVnaW4gIT0gKnJpZ2h0X2JlZ2luICkgeworICAgICAgICAgICAgcmVzID0gZmFsc2U7CisgICAgICAgICAgICByZXMubWVzc2FnZSgpIDw8ICJcbk1pc21hdGNoIGluIGEgcG9zaXRpb24gIiA8PCBwb3MgPDwgIjogIiAgPDwgKmxlZnRfYmVnaW4gPDwgIiAhPSAiIDw8ICpyaWdodF9iZWdpbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmKCBsZWZ0X2JlZ2luICE9IGxlZnRfZW5kICkgeworICAgICAgICBzdGQ6OnNpemVfdCByX3NpemUgPSBwb3M7CisgICAgICAgIHdoaWxlKCBsZWZ0X2JlZ2luICE9IGxlZnRfZW5kICkgeworICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICArK2xlZnRfYmVnaW47CisgICAgICAgIH0KKworICAgICAgICByZXMgPSBmYWxzZTsKKyAgICAgICAgcmVzLm1lc3NhZ2UoKSA8PCAiXG5Db2xsZWN0aW9ucyBzaXplIG1pc21hdGNoOiAiIDw8IHBvcyA8PCAiICE9ICIgPDwgcl9zaXplOworICAgIH0KKworICAgIGlmKCByaWdodF9iZWdpbiAhPSByaWdodF9lbmQgKSB7CisgICAgICAgIHN0ZDo6c2l6ZV90IGxfc2l6ZSA9IHBvczsKKyAgICAgICAgd2hpbGUoIHJpZ2h0X2JlZ2luICE9IHJpZ2h0X2VuZCApIHsKKyAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgKytyaWdodF9iZWdpbjsKKyAgICAgICAgfQorCisgICAgICAgIHJlcyA9IGZhbHNlOworICAgICAgICByZXMubWVzc2FnZSgpIDw8ICJcbkNvbGxlY3Rpb25zIHNpemUgbWlzbWF0Y2g6ICIgPDwgbF9zaXplIDw8ICIgIT0gIiA8PCBwb3M7CisgICAgfQorCisgICAgcmV0dXJuIHJlczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGUgPGNsYXNzIExlZnQsIGNsYXNzIFJpZ2h0PgoraW5saW5lIHByZWRpY2F0ZV9yZXN1bHQKK2JpdHdpc2VfZXF1YWxfaW1wbCggTGVmdCBjb25zdCYgbGVmdCwgUmlnaHQgY29uc3QmIHJpZ2h0ICkKK3sKKyAgICBwcmVkaWNhdGVfcmVzdWx0ICAgIHJlcyggdHJ1ZSApOworCisgICAgc3RkOjpzaXplX3QgbGVmdF9iaXRfc2l6ZSAgPSBzaXplb2YoTGVmdCkqQ0hBUl9CSVQ7CisgICAgc3RkOjpzaXplX3QgcmlnaHRfYml0X3NpemUgPSBzaXplb2YoUmlnaHQpKkNIQVJfQklUOworCisgICAgc3RhdGljIExlZnQgY29uc3QgbGVmdE9uZSggMSApOworICAgIHN0YXRpYyBSaWdodCBjb25zdCByaWdodE9uZSggMSApOworCisgICAgc3RkOjpzaXplX3QgdG90YWxfYml0cyA9IGxlZnRfYml0X3NpemUgPCByaWdodF9iaXRfc2l6ZSA/IGxlZnRfYml0X3NpemUgOiByaWdodF9iaXRfc2l6ZTsKKworICAgIGZvciggc3RkOjpzaXplX3QgY291bnRlciA9IDA7IGNvdW50ZXIgPCB0b3RhbF9iaXRzOyArK2NvdW50ZXIgKSB7CisgICAgICAgIGlmKCAoIGxlZnQgJiAoIGxlZnRPbmUgPDwgY291bnRlciApICkgIT0gKCByaWdodCAmICggcmlnaHRPbmUgPDwgY291bnRlciApICkgKSB7CisgICAgICAgICAgICByZXMgPSBmYWxzZTsKKyAgICAgICAgICAgIHJlcy5tZXNzYWdlKCkgPDwgIlxuTWlzbWF0Y2ggaW4gYSBwb3NpdGlvbiAiIDw8IGNvdW50ZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiggbGVmdF9iaXRfc2l6ZSAhPSByaWdodF9iaXRfc2l6ZSApIHsKKyAgICAgICAgcmVzID0gZmFsc2U7CisgICAgICAgIHJlcy5tZXNzYWdlKCkgPDwgIlxuT3BlcmFuZHMgYml0IHNpemVzIG1pc21hdGNoOiAiIDw8IGxlZnRfYml0X3NpemUgPDwgIiAhPSAiIDw8IHJpZ2h0X2JpdF9zaXplOworICAgIH0KKworICAgIHJldHVybiByZXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2Jvb2wgQk9PU1RfVEVTVF9ERUNMIGlzX2RlZmluZWRfaW1wbCggY29uc3Rfc3RyaW5nIHN5bWJvbF9uYW1lLCBjb25zdF9zdHJpbmcgc3ltYm9sX3ZhbHVlICk7CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHR0X2RldGFpbAorCit9IC8vIG5hbWVzcGFjZSB0ZXN0X3Rvb2xzCisKK25hbWVzcGFjZSB0ZXN0X3Rvb2xib3ggPSB0ZXN0X3Rvb2xzOworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfVEVTVF9UT09MU19IUFBfMDEyNzA1R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X2xvZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ0YjZkNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nLmhwcApAQCAtMCwwICsxLDE3NyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwMS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBkZWZpbmVzIHNpbmdsZXRvbiBjbGFzcyB1bml0X3Rlc3RfbG9nIGFuZCBhbGwgbWFuaXB1bGF0b3JzLgorLy8gIHVuaXRfdGVzdF9sb2cgaGFzIG91dHB1dCBzdHJlYW0gbGlrZSBpbnRlcmZhY2UuIEl0J3MgaW1wbGVtZW50YXRpb24gaXMKKy8vICBjb21wbGV0ZWx5IGhpZGRlbiB3aXRoIHBpbXBsZSBpZGlvbQorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0hQUF8wNzE4OTRHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdGVzdF9vYnNlcnZlci5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvbG9nX2xldmVsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3dyYXBfc3RyaW5nc3RyZWFtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3RyaXZpYWxfc2luZ2xldG9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2xhenlfb3N0cmVhbS5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc2Z3ZD4gICAvLyBmb3Igc3RkOjpvc3RyZWFtJgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIGxvZyBtYW5pcHVsYXRvcnMgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgbG9nIHsKKworc3RydWN0IEJPT1NUX1RFU1RfREVDTCBiZWdpbiB7CisgICAgYmVnaW4oIGNvbnN0X3N0cmluZyBmbiwgc3RkOjpzaXplX3QgbG4gKQorICAgIDogbV9maWxlX25hbWUoIGZuICkKKyAgICAsIG1fbGluZV9udW0oIGxuICkKKyAgICB7fQorCisgICAgY29uc3Rfc3RyaW5nIG1fZmlsZV9uYW1lOworICAgIHN0ZDo6c2l6ZV90IG1fbGluZV9udW07Cit9OworCitzdHJ1Y3QgZW5kIHt9OworCit9IC8vIG5hbWVzcGFjZSBsb2cKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIGVudHJ5X3ZhbHVlX2NvbGxlY3RvciAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIGVudHJ5X3ZhbHVlX2NvbGxlY3RvciB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgZW50cnlfdmFsdWVfY29sbGVjdG9yKCkgOiBtX2xhc3QoIHRydWUgKSB7fQorICAgIGVudHJ5X3ZhbHVlX2NvbGxlY3RvciggZW50cnlfdmFsdWVfY29sbGVjdG9yIGNvbnN0JiByaHMgKSA6IG1fbGFzdCggdHJ1ZSApIHsgcmhzLm1fbGFzdCA9IGZhbHNlOyB9CisgICAgfmVudHJ5X3ZhbHVlX2NvbGxlY3RvcigpOworCisgICAgLy8gY29sbGVjdGlvbiBpbnRlcmZhY2UKKyAgICBlbnRyeV92YWx1ZV9jb2xsZWN0b3IgY29uc3QmIG9wZXJhdG9yPDwoIGxhenlfb3N0cmVhbSBjb25zdCYgKSBjb25zdDsKKyAgICBlbnRyeV92YWx1ZV9jb2xsZWN0b3IgY29uc3QmIG9wZXJhdG9yPDwoIGNvbnN0X3N0cmluZyApIGNvbnN0OworCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIG11dGFibGUgYm9vbCAgICBtX2xhc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICB1bml0X3Rlc3RfbG9nICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgdW5pdF90ZXN0X2xvZ190IDogcHVibGljIHRlc3Rfb2JzZXJ2ZXIsIHB1YmxpYyBzaW5nbGV0b248dW5pdF90ZXN0X2xvZ190PiB7CitwdWJsaWM6CisgICAgLy8gdGVzdF9vYnNlcnZlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24KKyAgICB2b2lkICAgICAgICAgICAgICAgIHRlc3Rfc3RhcnQoIGNvdW50ZXJfdCB0ZXN0X2Nhc2VzX2Ftb3VudCApOworICAgIHZvaWQgICAgICAgICAgICAgICAgdGVzdF9maW5pc2goKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHRlc3RfYWJvcnRlZCgpOworCisgICAgdm9pZCAgICAgICAgICAgICAgICB0ZXN0X3VuaXRfc3RhcnQoIHRlc3RfdW5pdCBjb25zdCYgKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHRlc3RfdW5pdF9maW5pc2goIHRlc3RfdW5pdCBjb25zdCYsIHVuc2lnbmVkIGxvbmcgZWxhcHNlZCApOworICAgIHZvaWQgICAgICAgICAgICAgICAgdGVzdF91bml0X3NraXBwZWQoIHRlc3RfdW5pdCBjb25zdCYgKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHRlc3RfdW5pdF9hYm9ydGVkKCB0ZXN0X3VuaXQgY29uc3QmICk7CisKKyAgICB2b2lkICAgICAgICAgICAgICAgIGFzc2VydGlvbl9yZXN1bHQoIGJvb2wgcGFzc2VkICk7CisgICAgdm9pZCAgICAgICAgICAgICAgICBleGNlcHRpb25fY2F1Z2h0KCBleGVjdXRpb25fZXhjZXB0aW9uIGNvbnN0JiApOworCisgICAgdmlydHVhbCBpbnQgICAgICAgICBwcmlvcml0eSgpIHsgcmV0dXJuIDE7IH0KKworICAgIC8vIGxvZyBjb25maWd1cmF0aW9uIG1ldGhvZHMKKyAgICB2b2lkICAgICAgICAgICAgICAgIHNldF9zdHJlYW0oIHN0ZDo6b3N0cmVhbSYgKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgIHNldF90aHJlc2hvbGRfbGV2ZWwoIGxvZ19sZXZlbCApOworICAgIHZvaWQgICAgICAgICAgICAgICAgc2V0X2Zvcm1hdCggb3V0cHV0X2Zvcm1hdCApOworICAgIHZvaWQgICAgICAgICAgICAgICAgc2V0X2Zvcm1hdHRlciggdW5pdF90ZXN0X2xvZ19mb3JtYXR0ZXIqICk7CisKKyAgICAvLyB0ZXN0IHByb2dyZXNzIGxvZ2dpbmcKKyAgICB2b2lkICAgICAgICAgICAgICAgIHNldF9jaGVja3BvaW50KCBjb25zdF9zdHJpbmcgZmlsZSwgc3RkOjpzaXplX3QgbGluZV9udW0sIGNvbnN0X3N0cmluZyBtc2cgPSBjb25zdF9zdHJpbmcoKSApOworCisgICAgLy8gZW50cnkgbG9nZ2luZworICAgIHVuaXRfdGVzdF9sb2dfdCYgICAgb3BlcmF0b3I8PCggbG9nOjpiZWdpbiBjb25zdCYgKTsgICAgICAgIC8vIGJlZ2luIGVudHJ5IAorICAgIHVuaXRfdGVzdF9sb2dfdCYgICAgb3BlcmF0b3I8PCggbG9nOjplbmQgY29uc3QmICk7ICAgICAgICAgIC8vIGVuZCBlbnRyeQorICAgIHVuaXRfdGVzdF9sb2dfdCYgICAgb3BlcmF0b3I8PCggbG9nX2xldmVsICk7ICAgICAgICAgICAgICAgIC8vIHNldCBlbnRyeSBsZXZlbAorICAgIHVuaXRfdGVzdF9sb2dfdCYgICAgb3BlcmF0b3I8PCggY29uc3Rfc3RyaW5nICk7ICAgICAgICAgICAgIC8vIGxvZyBlbnRyeSB2YWx1ZQorICAgIHVuaXRfdGVzdF9sb2dfdCYgICAgb3BlcmF0b3I8PCggbGF6eV9vc3RyZWFtIGNvbnN0JiApOyAgICAgIC8vIGxvZyBlbnRyeSB2YWx1ZQorCisgICAgdXRfZGV0YWlsOjplbnRyeV92YWx1ZV9jb2xsZWN0b3Igb3BlcmF0b3IoKSggbG9nX2xldmVsICk7ICAgLy8gaW5pdGlhdGUgZW50cnkgY29sbGVjdGlvbgorCitwcml2YXRlOgorICAgIGJvb2wgICAgICAgICAgICBsb2dfZW50cnlfc3RhcnQoKTsKKworICAgIEJPT1NUX1RFU1RfU0lOR0xFVE9OX0NPTlMoIHVuaXRfdGVzdF9sb2dfdCApOworfTsgLy8gdW5pdF90ZXN0X2xvZ190CisKK0JPT1NUX1RFU1RfU0lOR0xFVE9OX0lOU1QoIHVuaXRfdGVzdF9sb2cgKQorCisvLyBoZWxwZXIgbWFjcm9zCisjZGVmaW5lIEJPT1NUX1RFU1RfTE9HX0VOVFJZKCBsbCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6dW5pdF90ZXN0X2xvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIDw8IDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6bG9nOjpiZWdpbiggQk9PU1RfVEVTVF9MKF9fRklMRV9fKSwgX19MSU5FX18gKSkobGwpICBcCisvKiovCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgVW5pdCB0ZXN0IGxvZyBpbnRlcmZhY2UgaGVscGVycyAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfVEVTVF9NRVNTQUdFKCBNICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfVEVTVF9MT0dfRU5UUlkoIDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6bG9nX21lc3NhZ2VzICkgICAgXAorICAgIDw8ICg6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6Omxhenlfb3N0cmVhbTo6aW5zdGFuY2UoKSA8PCBNKSAgICAgIFwKKy8qKi8KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9URVNUX1BBU1NQT0lOVCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnVuaXRfdGVzdF9sb2cuc2V0X2NoZWNrcG9pbnQoICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfTChfX0ZJTEVfXyksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oX19MSU5FX18pICkgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2RlZmluZSBCT09TVF9URVNUX0NIRUNLUE9JTlQoIE0gKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnVuaXRfdGVzdF9sb2cuc2V0X2NoZWNrcG9pbnQoICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfTChfX0ZJTEVfXyksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oX19MSU5FX18pLCAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKDo6bmRuYm9vc3Q6OndyYXBfc3RyaW5nc3RyZWFtKCkucmVmKCkgPDwgTSkuc3RyKCkgKSAgICAgICBcCisvKiovCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0hQUF8wNzE4OTRHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9sb2dfZm9ybWF0dGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nX2Zvcm1hdHRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ0OWM4MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91bml0X3Rlc3RfbG9nX2Zvcm1hdHRlci5ocHAKQEAgLTAsMCArMSwxMjMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDMtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX1VOSVRfVEVTVF9MT0dfRk9STUFUVEVSX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9VTklUX1RFU1RfTE9HX0ZPUk1BVFRFUl9IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvbG9nX2xldmVsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8aW9zZndkPgorI2luY2x1ZGUgPHN0cmluZz4gLy8gZm9yIHN0ZDo6c3RyaW5nCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgbG9nX2VudHJ5X2RhdGEgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0cnVjdCBCT09TVF9URVNUX0RFQ0wgbG9nX2VudHJ5X2RhdGEgeworICAgIGxvZ19lbnRyeV9kYXRhKCkKKyAgICB7CisgICAgICAgIG1fZmlsZV9uYW1lLnJlc2VydmUoIDIwMCApOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nICAgICBtX2ZpbGVfbmFtZTsKKyAgICBzdGQ6OnNpemVfdCAgICAgbV9saW5lX251bTsKKyAgICBsb2dfbGV2ZWwgICAgICAgbV9sZXZlbDsKKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgbV9maWxlX25hbWUuZXJhc2UoKTsKKyAgICAgICAgbV9saW5lX251bSAgICAgID0gMDsKKyAgICAgICAgbV9sZXZlbCAgICAgPSBsb2dfbm90aGluZzsKKyAgICB9Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgY2hlY2twb2ludF9kYXRhICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0cnVjdCBCT09TVF9URVNUX0RFQ0wgbG9nX2NoZWNrcG9pbnRfZGF0YQoreworICAgIGNvbnN0X3N0cmluZyAgICBtX2ZpbGVfbmFtZTsKKyAgICBzdGQ6OnNpemVfdCAgICAgbV9saW5lX251bTsKKyAgICBzdGQ6OnN0cmluZyAgICAgbV9tZXNzYWdlOworCisgICAgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBtX2ZpbGVfbmFtZS5jbGVhcigpOworICAgICAgICBtX2xpbmVfbnVtICAgID0gMDsKKyAgICAgICAgbV9tZXNzYWdlID0gc3RkOjpzdHJpbmcoKTsKKyAgICB9Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlciAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIEJPT1NUX1RFU1RfREVDTCB1bml0X3Rlc3RfbG9nX2Zvcm1hdHRlciB7CitwdWJsaWM6CisgICAgZW51bSBsb2dfZW50cnlfdHlwZXMgeyBCT09TVF9VVExfRVRfSU5GTywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9VVExfRVRfTUVTU0FHRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1VUTF9FVF9XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfVVRMX0VUX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfVVRMX0VUX0ZBVEFMX0VSUk9SIH07CisKKyAgICAvLyBEZXN0cnVjdG9yCisgICAgdmlydHVhbCAgICAgICAgICAgICB+dW5pdF90ZXN0X2xvZ19mb3JtYXR0ZXIoKSB7fQorCisgICAgLy8gRm9ybWF0dGVyIGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCAgICAgICAgbG9nX3N0YXJ0KCBzdGQ6Om9zdHJlYW0mLCBjb3VudGVyX3QgdGVzdF9jYXNlc19hbW91bnQgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICAgICAgICBsb2dfZmluaXNoKCBzdGQ6Om9zdHJlYW0mICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgbG9nX2J1aWxkX2luZm8oIHN0ZDo6b3N0cmVhbSYgKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIHRlc3RfdW5pdF9zdGFydCggc3RkOjpvc3RyZWFtJiwgdGVzdF91bml0IGNvbnN0JiB0dSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIHRlc3RfdW5pdF9maW5pc2goIHN0ZDo6b3N0cmVhbSYsIHRlc3RfdW5pdCBjb25zdCYgdHUsIHVuc2lnbmVkIGxvbmcgZWxhcHNlZCApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIHRlc3RfdW5pdF9za2lwcGVkKCBzdGQ6Om9zdHJlYW0mLCB0ZXN0X3VuaXQgY29uc3QmICkgPSAwOworCisgICAgdmlydHVhbCB2b2lkICAgICAgICBsb2dfZXhjZXB0aW9uKCBzdGQ6Om9zdHJlYW0mIG9zLCBsb2dfY2hlY2twb2ludF9kYXRhIGNvbnN0JiBjZCwgZXhlY3V0aW9uX2V4Y2VwdGlvbiBjb25zdCYgZXggKQorICAgIHsKKyAgICAgICAgLy8gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgbG9nX2V4Y2VwdGlvbiggb3MsIGNkLCBleC53aGF0KCkgKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkICAgICAgICBsb2dfZXhjZXB0aW9uKCBzdGQ6Om9zdHJlYW0mLCBsb2dfY2hlY2twb2ludF9kYXRhIGNvbnN0JiwgY29uc3Rfc3RyaW5nIC8qIGV4cGxhbmF0aW9uICovICkge30KKworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgbG9nX2VudHJ5X3N0YXJ0KCBzdGQ6Om9zdHJlYW0mLCBsb2dfZW50cnlfZGF0YSBjb25zdCYsIGxvZ19lbnRyeV90eXBlcyBsZXQgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICAgICAgICBsb2dfZW50cnlfdmFsdWUoIHN0ZDo6b3N0cmVhbSYsIGNvbnN0X3N0cmluZyB2YWx1ZSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgIGxvZ19lbnRyeV92YWx1ZSggc3RkOjpvc3RyZWFtJiwgbGF6eV9vc3RyZWFtIGNvbnN0JiB2YWx1ZSApOyAvLyB0aGVyZSBpcyBhIGRlZmF1bHQgaW1wbAorICAgIHZpcnR1YWwgdm9pZCAgICAgICAgbG9nX2VudHJ5X2ZpbmlzaCggc3RkOjpvc3RyZWFtJiApID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfVU5JVF9URVNUX0xPR19GT1JNQVRURVJfSFBQXzA3MTg5NEdFUgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X21vbml0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9tb25pdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Nzc3ZDE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9tb25pdG9yLmhwcApAQCAtMCwwICsxLDY5IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgc3BlY2lmaWMgdmVyc2lvbiBvZiBleGVjdXRpb24gbW9uaXRvciB1c2VkIHRvIG1hbmFnZWQgCisvLyAgcnVuIHVuaXQgb2YgdGVzdCBjYXNlcy4gVHJhbnNsYXRlcyBleGVjdXRpb24gZXhjZXB0aW9uIGludG8gZXJyb3IgbGV2ZWwKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfVU5JVF9URVNUX01PTklUT1JfSFBQXzAyMDkwNUdFUgorI2RlZmluZSBCT09TVF9URVNUX1VOSVRfVEVTVF9NT05JVE9SX0hQUF8wMjA5MDVHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZXhlY3V0aW9uX21vbml0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2Z3ZF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3RyaXZpYWxfc2luZ2xldG9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NhbGxiYWNrLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIHVuaXRfdGVzdF9tb25pdG9yICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIHVuaXRfdGVzdF9tb25pdG9yX3QgOiBwdWJsaWMgc2luZ2xldG9uPHVuaXRfdGVzdF9tb25pdG9yX3Q+LCBwdWJsaWMgZXhlY3V0aW9uX21vbml0b3IgeworcHVibGljOgorICAgIGVudW0gZXJyb3JfbGV2ZWwgeyAKKyAgICAgICAgdGVzdF9mYWlsICAgICAgICAgICAgICAgPSAgMSwKKyAgICAgICAgdGVzdF9vayAgICAgICAgICAgICAgICAgPSAgMCwKKyAgICAgICAgY29uc3RydWN0b3JfZXJyb3IgICAgICAgPSAtMSwgCisgICAgICAgIHVuZXhwZWN0ZWRfZXhjZXB0aW9uICAgID0gLTIsIAorICAgICAgICBvc19leGNlcHRpb24gICAgICAgICAgICA9IC0zLCAKKyAgICAgICAgb3NfdGltZW91dCAgICAgICAgICAgICAgPSAtNCwgCisgICAgICAgIGZhdGFsX2Vycm9yICAgICAgICAgICAgID0gLTUsICAvLyBpbmNsdWRlcyBib3RoIHN5c3RlbSBhbmQgdXNlcgorICAgICAgICBkZXN0cnVjdG9yX2Vycm9yICAgICAgICA9IC02CisgICAgfTsKKworICAgIHN0YXRpYyBib29sIGlzX2NyaXRpY2FsX2Vycm9yKCBlcnJvcl9sZXZlbCBlICkgeyByZXR1cm4gZSA8PSBmYXRhbF9lcnJvcjsgfQorCisgICAgLy8gbW9uaXRvciBtZXRob2QKKyAgICBlcnJvcl9sZXZlbCBleGVjdXRlX2FuZF90cmFuc2xhdGUoIHRlc3RfY2FzZSBjb25zdCYgKTsKKworcHJpdmF0ZToKKyAgICBCT09TVF9URVNUX1NJTkdMRVRPTl9DT05TKCB1bml0X3Rlc3RfbW9uaXRvcl90ICk7Cit9OworCitCT09TVF9URVNUX1NJTkdMRVRPTl9JTlNUKCB1bml0X3Rlc3RfbW9uaXRvciApCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfVU5JVF9URVNUX01PTklUT1JfSFBQXzAyMDkwNUdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9zdWl0ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWY1ZjEzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3VuaXRfdGVzdF9zdWl0ZS5ocHAKQEAgLTAsMCArMSwyNDUgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDEtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBVbml0IFRlc3QgRnJhbWV3b3JrIHB1YmxpYyBBUEkKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfVU5JVF9URVNUX1NVSVRFX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9VTklUX1RFU1RfU1VJVEVfSFBQXzA3MTg5NEdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9mcmFtZXdvcmsuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgTm9uLWF1dG8gKGV4cGxpY2l0KSB0ZXN0IGNhc2UgaW50ZXJmYWNlICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfVEVTVF9DQVNFKCB0ZXN0X2Z1bmN0aW9uICkgXAorbmRuYm9vc3Q6OnVuaXRfdGVzdDo6bWFrZV90ZXN0X2Nhc2UoIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmNhbGxiYWNrMDw+KHRlc3RfZnVuY3Rpb24pLCBCT09TVF9URVNUX1NUUklOR0laRSggdGVzdF9mdW5jdGlvbiApICkKKyNkZWZpbmUgQk9PU1RfQ0xBU1NfVEVTVF9DQVNFKCB0ZXN0X2Z1bmN0aW9uLCB0Y19pbnN0YW5jZSApIFwKK25kbmJvb3N0Ojp1bml0X3Rlc3Q6Om1ha2VfdGVzdF9jYXNlKCh0ZXN0X2Z1bmN0aW9uKSwgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIHRlc3RfZnVuY3Rpb24gKSwgdGNfaW5zdGFuY2UgKQorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICBCT09TVF9URVNUX1NVSVRFICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfVEVTVF9TVUlURSggdGVzdHN1aXRlX25hbWUgKSBcCisoIG5ldyBuZG5ib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlKCB0ZXN0c3VpdGVfbmFtZSApICkKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIEJPT1NUX0FVVE9fVEVTVF9TVUlURSAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0FVVE9fVEVTVF9TVUlURSggc3VpdGVfbmFtZSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCituYW1lc3BhY2Ugc3VpdGVfbmFtZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitCT09TVF9BVVRPX1RVX1JFR0lTVFJBUiggc3VpdGVfbmFtZSApKCBCT09TVF9TVFJJTkdJWkUoIHN1aXRlX25hbWUgKSApOyBcCisvKiovCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgIEJPT1NUX0ZJWFRVUkVfVEVTVF9TVUlURSAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2RlZmluZSBCT09TVF9GSVhUVVJFX1RFU1RfU1VJVEUoIHN1aXRlX25hbWUsIEYgKSAgICAgICAgICAgICAgICAgICAgICAgXAorQk9PU1RfQVVUT19URVNUX1NVSVRFKCBzdWl0ZV9uYW1lICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAordHlwZWRlZiBGIEJPT1NUX0FVVE9fVEVTVF9DQVNFX0ZJWFRVUkU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgIEJPT1NUX0FVVE9fVEVTVF9TVUlURV9FTkQgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfQVVUT19URVNUX1NVSVRFX0VORCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK0JPT1NUX0FVVE9fVFVfUkVHSVNUUkFSKCBCT09TVF9KT0lOKCBlbmRfc3VpdGUsIF9fTElORV9fICkgKSggMSApOyAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgIEJPT1NUX0FVVE9fVEVTVF9DQVNFX0VYUEVDVEVEX0ZBSUxVUkVTICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0FVVE9fVEVTVF9DQVNFX0VYUEVDVEVEX0ZBSUxVUkVTKCB0ZXN0X25hbWUsIG4gKSAgICAgICAgICBcCitzdHJ1Y3QgQk9PU1RfQVVUT19UQ19VTklRVUVfSUQoIHRlc3RfbmFtZSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitzdGF0aWMgc3RydWN0IEJPT1NUX0pPSU4oIHRlc3RfbmFtZSwgX2V4cF9mYWlsX251bV9zcGVjICkgICAgICAgICAgICAgICBcCis6IG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnV0X2RldGFpbDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGF1dG9fdGNfZXhwX2ZhaWw8Qk9PU1RfQVVUT19UQ19VTklRVUVfSUQoIHRlc3RfbmFtZSApID4gICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfSk9JTiggdGVzdF9uYW1lLCBfZXhwX2ZhaWxfbnVtX3NwZWMgKSgpICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgOiBuZG5ib29zdDo6dW5pdF90ZXN0Ojp1dF9kZXRhaWw6OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBhdXRvX3RjX2V4cF9mYWlsPEJPT1NUX0FVVE9fVENfVU5JUVVFX0lEKCB0ZXN0X25hbWUgKSA+KCBuICkgICAgICBcCisgICAge30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IEJPT1NUX0pPSU4oIHRlc3RfbmFtZSwgX2V4cF9mYWlsX251bV9zcGVjX2luc3QgKTsgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgIEJPT1NUX0ZJWFRVUkVfVEVTVF9DQVNFICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2RlZmluZSBCT09TVF9GSVhUVVJFX1RFU1RfQ0FTRSggdGVzdF9uYW1lLCBGICkgICAgICAgICAgICAgICAgICAgICAgICAgXAorc3RydWN0IHRlc3RfbmFtZSA6IHB1YmxpYyBGIHsgdm9pZCB0ZXN0X21ldGhvZCgpOyB9OyAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorc3RhdGljIHZvaWQgQk9PU1RfQVVUT19UQ19JTlZPS0VSKCB0ZXN0X25hbWUgKSgpICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRlc3RfbmFtZSB0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHQudGVzdF9tZXRob2QoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorc3RydWN0IEJPT1NUX0FVVE9fVENfVU5JUVVFX0lEKCB0ZXN0X25hbWUgKSB7fTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorQk9PU1RfQVVUT19UVV9SRUdJU1RSQVIoIHRlc3RfbmFtZSApKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6Om1ha2VfdGVzdF9jYXNlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAmQk9PU1RfQVVUT19UQ19JTlZPS0VSKCB0ZXN0X25hbWUgKSwgI3Rlc3RfbmFtZSApLCAgICAgICAgICAgICAgXAorICAgIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnV0X2RldGFpbDo6YXV0b190Y19leHBfZmFpbDwgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9BVVRPX1RDX1VOSVFVRV9JRCggdGVzdF9uYW1lICk+OjppbnN0YW5jZSgpLT52YWx1ZSgpICk7ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAordm9pZCB0ZXN0X25hbWU6OnRlc3RfbWV0aG9kKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgQk9PU1RfQVVUT19URVNUX0NBU0UgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfQVVUT19URVNUX0NBU0UoIHRlc3RfbmFtZSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK0JPT1NUX0ZJWFRVUkVfVEVTVF9DQVNFKCB0ZXN0X25hbWUsIEJPT1NUX0FVVE9fVEVTVF9DQVNFX0ZJWFRVUkUgKQorLyoqLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgQk9PU1RfRklYVFVSRV9URVNUX0NBU0VfVEVNUExBVEUgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNkZWZpbmUgQk9PU1RfRklYVFVSRV9URVNUX0NBU0VfVEVNUExBVEUoIHRlc3RfbmFtZSwgdHlwZV9uYW1lLCBUTCwgRiApIFwKK3RlbXBsYXRlPHR5cGVuYW1lIHR5cGVfbmFtZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0cnVjdCB0ZXN0X25hbWUgOiBwdWJsaWMgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3sgdm9pZCB0ZXN0X21ldGhvZCgpOyB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0cnVjdCBCT09TVF9BVVRPX1RDX0lOVk9LRVIoIHRlc3RfbmFtZSApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUZXN0VHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgdm9pZCBydW4oIG5kbmJvb3N0Ojp0eXBlPFRlc3RUeXBlPiogPSAwICkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVzdF9uYW1lPFRlc3RUeXBlPiB0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdC50ZXN0X21ldGhvZCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK307ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK0JPT1NUX0FVVE9fVFVfUkVHSVNUUkFSKCB0ZXN0X25hbWUgKSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBuZG5ib29zdDo6dW5pdF90ZXN0Ojp1dF9kZXRhaWw6OnRlbXBsYXRlX3Rlc3RfY2FzZV9nZW48ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfQVVUT19UQ19JTlZPS0VSKCB0ZXN0X25hbWUgKSxUTCA+KCAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBCT09TVF9TVFJJTkdJWkUoIHRlc3RfbmFtZSApICkgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPHR5cGVuYW1lIHR5cGVfbmFtZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3ZvaWQgdGVzdF9uYW1lPHR5cGVfbmFtZT46OnRlc3RfbWV0aG9kKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICBCT09TVF9BVVRPX1RFU1RfQ0FTRV9URU1QTEFURSAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0FVVE9fVEVTVF9DQVNFX1RFTVBMQVRFKCB0ZXN0X25hbWUsIHR5cGVfbmFtZSwgVEwgKSAgICAgICBcCitCT09TVF9GSVhUVVJFX1RFU1RfQ0FTRV9URU1QTEFURSggdGVzdF9uYW1lLCB0eXBlX25hbWUsIFRMLCBCT09TVF9BVVRPX1RFU1RfQ0FTRV9GSVhUVVJFICkKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICBCT09TVF9URVNUX0NBU0VfVEVNUExBVEUgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX1RFU1RfQ0FTRV9URU1QTEFURSggbmFtZSwgdHlwZWxpc3QgKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnV0X2RldGFpbDo6dGVtcGxhdGVfdGVzdF9jYXNlX2dlbjxuYW1lLHR5cGVsaXN0ID4oICAgIFwKKyAgICAgICAgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIG5hbWUgKSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgIEJPT1NUX1RFU1RfQ0FTRV9URU1QTEFURV9GVU5DVElPTiAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2RlZmluZSBCT09TVF9URVNUX0NBU0VfVEVNUExBVEVfRlVOQ1RJT04oIG5hbWUsIHR5cGVfbmFtZSApICAgIFwKK3RlbXBsYXRlPHR5cGVuYW1lIHR5cGVfbmFtZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit2b2lkIEJPT1NUX0pPSU4oIG5hbWUsIF9pbXBsICkoIG5kbmJvb3N0Ojp0eXBlPHR5cGVfbmFtZT4qICk7ICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0cnVjdCBuYW1lIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGVzdFR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyB2b2lkIHJ1biggbmRuYm9vc3Q6OnR5cGU8VGVzdFR5cGU+KiBmcndyZCA9IDAgKSAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgQk9PU1RfSk9JTiggbmFtZSwgX2ltcGwgKSggZnJ3cmQgKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK307ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAordGVtcGxhdGU8dHlwZW5hbWUgdHlwZV9uYW1lPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3ZvaWQgQk9PU1RfSk9JTiggbmFtZSwgX2ltcGwgKSggbmRuYm9vc3Q6OnR5cGU8dHlwZV9uYW1lPiogKSAgICAgICBcCisvKiovCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgQk9PU1RfR0xPQkFMX0ZJWFVSRSAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2RlZmluZSBCT09TVF9HTE9CQUxfRklYVFVSRSggRiApIFwKK3N0YXRpYyBuZG5ib29zdDo6dW5pdF90ZXN0Ojp1dF9kZXRhaWw6Omdsb2JhbF9maXh0dXJlX2ltcGw8Rj4gQk9PU1RfSk9JTiggZ2ZfLCBGICkgOyBcCisvKiovCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgIEJPT1NUX0FVVE9fVEVTVF9DQVNFX0ZJWFRVUkUgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHVuaXRfdGVzdCB7IG5hbWVzcGFjZSB1dF9kZXRhaWwgeworCitzdHJ1Y3QgbmlsX3Qge307CisKK30gLy8gbmFtZXNwYWNlIHV0X2RldGFpbAorfSAvLyB1bml0X3Rlc3QKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vIEludGVudGlvbmFsbHkgaXMgaW4gZ2xvYmFsIG5hbWVzcGFjZSwgc28gdGhhdCBGSVhVUkVfVEVTVF9TVUlURSBjYW4gcmVzZXQgaXQgaW4gdXNlciBjb2RlLgordHlwZWRlZiA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OnV0X2RldGFpbDo6bmlsX3QgQk9PU1RfQVVUT19URVNUX0NBU0VfRklYVFVSRTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgQXV0byByZWdpc3RyYXRpb24gZmFjaWxpdHkgaGVscGVyIG1hY3JvcyAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX0FVVE9fVFVfUkVHSVNUUkFSKCB0ZXN0X25hbWUgKSAgICBcCitzdGF0aWMgbmRuYm9vc3Q6OnVuaXRfdGVzdDo6dXRfZGV0YWlsOjphdXRvX3Rlc3RfdW5pdF9yZWdpc3RyYXIgQk9PU1RfSk9JTiggQk9PU1RfSk9JTiggdGVzdF9uYW1lLCBfcmVnaXN0cmFyICksIF9fTElORV9fICkKKyNkZWZpbmUgQk9PU1RfQVVUT19UQ19JTlZPS0VSKCB0ZXN0X25hbWUgKSAgICAgIEJPT1NUX0pPSU4oIHRlc3RfbmFtZSwgX2ludm9rZXIgKQorI2RlZmluZSBCT09TVF9BVVRPX1RDX1VOSVFVRV9JRCggdGVzdF9uYW1lICkgICAgQk9PU1RfSk9JTiggdGVzdF9uYW1lLCBfaWQgKQorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgQk9PU1RfVEVTVF9NQUlOICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNpZiBkZWZpbmVkKEJPT1NUX1RFU1RfTUFJTikKKworI2lmZGVmIEJPT1NUX1RFU1RfQUxURVJOQVRJVkVfSU5JVF9BUEkKK2Jvb2wgaW5pdF91bml0X3Rlc3QoKSAgICAgICAgICAgICAgICAgICB7CisjZWxzZQorOjpuZG5ib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlKgoraW5pdF91bml0X3Rlc3Rfc3VpdGUoIGludCwgY2hhciogW10gKSAgIHsKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfVEVTVF9NT0RVTEUKKyAgICB1c2luZyBuYW1lc3BhY2UgOjpuZG5ib29zdDo6dW5pdF90ZXN0OworICAgIGFzc2lnbl9vcCggZnJhbWV3b3JrOjptYXN0ZXJfdGVzdF9zdWl0ZSgpLnBfbmFtZS52YWx1ZSwgQk9PU1RfVEVTVF9TVFJJTkdJWkUoIEJPT1NUX1RFU1RfTU9EVUxFICkudHJpbSggIlwiIiApLCAwICk7CisgICAgCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX1RFU1RfQUxURVJOQVRJVkVfSU5JVF9BUEkKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbHNlCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNlbmRpZiAvLyBCT09TVF9URVNUX1VOSVRfVEVTVF9TVUlURV9IUFBfMDcxODk0R0VSCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91bml0X3Rlc3Rfc3VpdGVfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyOTMzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdW5pdF90ZXN0X3N1aXRlX2ltcGwuaHBwCkBAIC0wLDAgKzEsNDM0IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgdGVzdF91bml0LCB0ZXN0X2Nhc2UsIHRlc3RfY2FzZV9yZXN1bHRzLCB0ZXN0X3N1aXRlIGFuZCB0ZXN0X3RyZWVfdmlzaXRvcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9VTklUX1RFU1RfU1VJVEVfSU1QTF9IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfVU5JVF9URVNUX1NVSVRFX0lNUExfSFBQXzA3MTg5NEdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9nbG9iYWxfdHlwZWRlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NhbGxiYWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9md2RfZGVjbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC90ZXN0X29ic2VydmVyLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9zaGFyZWRfcHRyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvZm9yX2VhY2guaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZGVudGl0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDx0eXBlaW5mbz4gLy8gZm9yIHR5cGVpZAorI2luY2x1ZGUgPHN0cmluZz4gICAvLyBmb3Igc3RkOjpzdHJpbmcKKyNpbmNsdWRlIDxsaXN0PiAgICAgLy8gZm9yIHN0ZDo6bGlzdAorI2luY2x1ZGUgPHZlY3Rvcj4gICAvLyBmb3Igc3RkOjp2ZWN0b3IKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICB0ZXN0X3VuaXQgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIHRlc3RfdW5pdCB7CitwdWJsaWM6CisgICAgZW51bSB7IHR5cGUgPSB0dXRfYW55IH07CisKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIHRlc3RfdW5pdCggY29uc3Rfc3RyaW5nIHR1X25hbWUsIHRlc3RfdW5pdF90eXBlIHQgKTsKKworICAgIC8vIGRlcGVuZGVuY2llcyBtYW5hZ2VtZW50CisgICAgdm9pZCAgICBkZXBlbmRzX29uKCB0ZXN0X3VuaXQqIHR1ICk7CisgICAgYm9vbCAgICBjaGVja19kZXBlbmRlbmNpZXMoKSBjb25zdDsKKworICAgIC8vIFB1YmxpYyByL28gcHJvcGVydGllcworICAgIHR5cGVkZWYgQk9PU1RfUkVBRE9OTFlfUFJPUEVSVFkodGVzdF91bml0X2lkLChmcmFtZXdvcmtfaW1wbCkpICBpZF90OworICAgIHR5cGVkZWYgQk9PU1RfUkVBRE9OTFlfUFJPUEVSVFkodGVzdF91bml0X2lkLCh0ZXN0X3N1aXRlKSkgICAgICBwYXJlbnRfaWRfdDsKKyAgICByZWFkb25seV9wcm9wZXJ0eTx0ZXN0X3VuaXRfdHlwZT4gICBwX3R5cGU7ICAgICAgICAgICAgICAgICAvLyB0eXBlIGZvciB0aGlzIHRlc3QgdW5pdAorICAgIHJlYWRvbmx5X3Byb3BlcnR5PGNvbnN0X3N0cmluZz4gICAgIHBfdHlwZV9uYW1lOyAgICAgICAgICAgIC8vICJjYXNlIi8ic3VpdGUiCisgICAgaWRfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9pZDsgICAgICAgICAgICAgICAgICAgLy8gdW5pcXVlIGlkIGZvciB0aGlzIHRlc3QgdW5pdAorICAgIHBhcmVudF9pZF90ICAgICAgICAgICAgICAgICAgICAgICAgIHBfcGFyZW50X2lkOyAgICAgICAgICAgIC8vIHBhcmVudCB0ZXN0IHN1aXRlIGlkCisKKyAgICAvLyBQdWJsaWMgci93IHByb3BlcnRpZXMKKyAgICByZWFkd3JpdGVfcHJvcGVydHk8c3RkOjpzdHJpbmc+ICAgICBwX25hbWU7ICAgICAgICAgICAgICAgICAvLyBuYW1lIGZvciB0aGlzIHRlc3QgdW5pdAorICAgIHJlYWR3cml0ZV9wcm9wZXJ0eTx1bnNpZ25lZD4gICAgICAgIHBfdGltZW91dDsgICAgICAgICAgICAgIC8vIHRpbWVvdXQgZm9yIHRoZSB0ZXN0IHVuaXQgZXhlY3V0aW9uIAorICAgIHJlYWR3cml0ZV9wcm9wZXJ0eTxjb3VudGVyX3Q+ICAgICAgIHBfZXhwZWN0ZWRfZmFpbHVyZXM7ICAgIC8vIG51bWJlciBvZiBleHBlY3RlZCBmYWlsdXJlcyBpbiB0aGlzIHRlc3QgdW5pdAorICAgIG11dGFibGUgcmVhZHdyaXRlX3Byb3BlcnR5PGJvb2w+ICAgIHBfZW5hYmxlZDsgICAgICAgICAgICAgIC8vIGVuYWJsZWQgc3RhdHVzIGZvciB0aGlzIHVuaXQKKworICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNlX2V4cF9mYWlsKCB1bnNpZ25lZCBudW0gKTsKKworcHJvdGVjdGVkOgorICAgIH50ZXN0X3VuaXQoKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBzdGQ6Omxpc3Q8dGVzdF91bml0X2lkPiAgICAgICAgICAgICBtX2RlcGVuZGVuY2llczsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgdGVzdF9jYXNlX2dlbmVyYXRvciAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIHRlc3RfdW5pdF9nZW5lcmF0b3IgeworcHVibGljOgorICAgIHZpcnR1YWwgdGVzdF91bml0KiAgbmV4dCgpIGNvbnN0ID0gMDsKKworcHJvdGVjdGVkOgorICAgIEJPT1NUX1RFU1RfUFJPVEVDVEVEX1ZJUlRVQUwgfnRlc3RfdW5pdF9nZW5lcmF0b3IoKSB7fQorfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgIHRlc3RfY2FzZSAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgdGVzdF9jYXNlIDogcHVibGljIHRlc3RfdW5pdCB7CitwdWJsaWM6CisgICAgZW51bSB7IHR5cGUgPSB0dXRfY2FzZSB9OworCisgICAgLy8gQ29uc3RydWN0b3IKKyAgICB0ZXN0X2Nhc2UoIGNvbnN0X3N0cmluZyB0Y19uYW1lLCBjYWxsYmFjazA8PiBjb25zdCYgdGVzdF9mdW5jICk7CisKKyAgICAvLyBBY2Nlc3MgbWV0aG9kcworICAgIGNhbGxiYWNrMDw+IGNvbnN0JiAgdGVzdF9mdW5jKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0X2Z1bmM7IH0KKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgZnJhbWV3b3JrX2ltcGw7CisgICAgfnRlc3RfY2FzZSgpIHt9CisKKyAgICAvLyBCT09TVF9NU1ZDIDw9IDEyMDAgaGF2ZSBwcm9ibGVtcyB3aXRoIGNhbGxiYWNrIGFzIHByb3BlcnR5CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgY2FsbGJhY2swPD4gbV90ZXN0X2Z1bmM7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIEJPT1NUX1RFU1RfREVDTCB0ZXN0X3N1aXRlIDogcHVibGljIHRlc3RfdW5pdCB7CitwdWJsaWM6CisgICAgZW51bSB7IHR5cGUgPSB0dXRfc3VpdGUgfTsKKworICAgIC8vIENvbnN0cnVjdG9yCisgICAgZXhwbGljaXQgICAgICAgIHRlc3Rfc3VpdGUoIGNvbnN0X3N0cmluZyB0c19uYW1lICk7CisKKyAgICAvLyB0ZXN0IHVuaXQgbGlzdCBtYW5hZ2VtZW50CisgICAgdm9pZCAgICAgICAgICAgIGFkZCggdGVzdF91bml0KiB0dSwgY291bnRlcl90IGV4cGVjdGVkX2ZhaWx1cmVzID0gMCwgdW5zaWduZWQgdGltZW91dCA9IDAgKTsKKyAgICB2b2lkICAgICAgICAgICAgYWRkKCB0ZXN0X3VuaXRfZ2VuZXJhdG9yIGNvbnN0JiBnZW4sIHVuc2lnbmVkIHRpbWVvdXQgPSAwICk7CisgICAgdm9pZCAgICAgICAgICAgIHJlbW92ZSggdGVzdF91bml0X2lkIGlkICk7CisKKyAgICAvLyBhY2Nlc3MgbWV0aG9kcworICAgIHRlc3RfdW5pdF9pZCAgICBnZXQoIGNvbnN0X3N0cmluZyB0dV9uYW1lICkgY29uc3Q7CisgICAgc3RkOjpzaXplX3QgICAgIHNpemUoKSBjb25zdCB7IHJldHVybiBtX21lbWJlcnMuc2l6ZSgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBmcmllbmQgQk9PU1RfVEVTVF9ERUNMIAorICAgIHZvaWQgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggdGVzdF9zdWl0ZSBjb25zdCYsIHRlc3RfdHJlZV92aXNpdG9yJiApOworICAgIGZyaWVuZCBjbGFzcyBmcmFtZXdvcmtfaW1wbDsKKyAgICB2aXJ0dWFsICAgICB+dGVzdF9zdWl0ZSgpIHt9CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBzdGQ6OnZlY3Rvcjx0ZXN0X3VuaXRfaWQ+IG1fbWVtYmVyczsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIG1hc3Rlcl90ZXN0X3N1aXRlICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgQk9PU1RfVEVTVF9ERUNMIG1hc3Rlcl90ZXN0X3N1aXRlX3QgOiBwdWJsaWMgdGVzdF9zdWl0ZSB7CitwdWJsaWM6CisgICAgbWFzdGVyX3Rlc3Rfc3VpdGVfdCgpIDogdGVzdF9zdWl0ZSggIk1hc3RlciBUZXN0IFN1aXRlIiApCisgICAgLCBhcmdjKCAwICkKKyAgICAsIGFyZ3YoIDAgKQorICAgIHt9CisgICAgCisgICAgLy8gRGF0YSBtZW1iZXJzICAgIAorICAgIGludCAgICAgIGFyZ2M7CisgICAgY2hhcioqICAgYXJndjsKK307CisKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgdGVzdF90cmVlX3Zpc2l0b3IgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgdGVzdF90cmVlX3Zpc2l0b3IgeworcHVibGljOgorICAgIC8vIHRlc3QgdHJlZSB2aXNpdG9yIGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCAgICB2aXNpdCggdGVzdF9jYXNlIGNvbnN0JiApICAgICAgICAgICAgICAge30KKyAgICB2aXJ0dWFsIGJvb2wgICAgdGVzdF9zdWl0ZV9zdGFydCggdGVzdF9zdWl0ZSBjb25zdCYgKSAgIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgICAgdGVzdF9zdWl0ZV9maW5pc2goIHRlc3Rfc3VpdGUgY29uc3QmICkgIHt9CisKK3Byb3RlY3RlZDoKKyAgICBCT09TVF9URVNUX1BST1RFQ1RFRF9WSVJUVUFMIH50ZXN0X3RyZWVfdmlzaXRvcigpIHt9Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICB0cmF2ZXJzZV90ZXN0X3RyZWUgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggdGVzdF9jYXNlIGNvbnN0JiwgdGVzdF90cmVlX3Zpc2l0b3ImICk7CitCT09TVF9URVNUX0RFQ0wgdm9pZCAgICB0cmF2ZXJzZV90ZXN0X3RyZWUoIHRlc3Rfc3VpdGUgY29uc3QmLCB0ZXN0X3RyZWVfdmlzaXRvciYgKTsKK0JPT1NUX1RFU1RfREVDTCB2b2lkICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggdGVzdF91bml0X2lkICAgICAsIHRlc3RfdHJlZV92aXNpdG9yJiApOworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitpbmxpbmUgdm9pZAordHJhdmVyc2VfdGVzdF90cmVlKCB0ZXN0X3VuaXQgY29uc3QmIHR1LCB0ZXN0X3RyZWVfdmlzaXRvciYgViApCit7CisgICAgaWYoIHR1LnBfdHlwZSA9PSB0dXRfY2FzZSApCisgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggc3RhdGljX2Nhc3Q8dGVzdF9jYXNlIGNvbnN0Jj4oIHR1ICksIFYgKTsKKyAgICBlbHNlCisgICAgICAgIHRyYXZlcnNlX3Rlc3RfdHJlZSggc3RhdGljX2Nhc3Q8dGVzdF9zdWl0ZSBjb25zdCY+KCB0dSApLCBWICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICB0ZXN0X2Nhc2VfY291bnRlciAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgdGVzdF9jYXNlX2NvdW50ZXIgOiBwdWJsaWMgdGVzdF90cmVlX3Zpc2l0b3IgeworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9yCisgICAgdGVzdF9jYXNlX2NvdW50ZXIoKSA6IHBfY291bnQoIDAgKSB7fQorCisgICAgQk9PU1RfUkVBRE9OTFlfUFJPUEVSVFkoIGNvdW50ZXJfdCwgKHRlc3RfY2FzZV9jb3VudGVyKSkgcF9jb3VudDsKK3ByaXZhdGU6CisgICAgLy8gdGVzdCB0cmVlIHZpc2l0b3IgaW50ZXJmYWNlCisgICAgdmlydHVhbCB2b2lkICAgIHZpc2l0KCB0ZXN0X2Nhc2UgY29uc3QmICk7CisgICAgdmlydHVhbCBib29sICAgIHRlc3Rfc3VpdGVfc3RhcnQoIHRlc3Rfc3VpdGUgY29uc3QmIHRzICkgICAgeyByZXR1cm4gdHMucF9lbmFibGVkOyB9Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICB0ZXN0X2JlaW5nX2Fib3J0ZWQgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3N0cnVjdCBCT09TVF9URVNUX0RFQ0wgdGVzdF9iZWluZ19hYm9ydGVkIHt9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICBvYmplY3QgZ2VuZXJhdG9ycyAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSB1dF9kZXRhaWwgeworCitCT09TVF9URVNUX0RFQ0wgc3RkOjpzdHJpbmcgbm9ybWFsaXplX3Rlc3RfY2FzZV9uYW1lKCBjb25zdF9zdHJpbmcgdHVfbmFtZSApOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBJbnN0YW5jZVR5cGUsdHlwZW5hbWUgVXNlclRlc3RDYXNlPgorc3RydWN0IHVzZXJfdGNfbWV0aG9kX2ludm9rZXIgeworICAgIHR5cGVkZWYgdm9pZCAoVXNlclRlc3RDYXNlOjoqVGVzdE1ldGhvZCApKCk7CisKKyAgICB1c2VyX3RjX21ldGhvZF9pbnZva2VyKCBzaGFyZWRfcHRyPEluc3RhbmNlVHlwZT4gaW5zdCwgVGVzdE1ldGhvZCB0ZXN0X21ldGhvZCApCisgICAgOiBtX2luc3QoIGluc3QgKSwgbV90ZXN0X21ldGhvZCggdGVzdF9tZXRob2QgKSB7fQorCisgICAgdm9pZCBvcGVyYXRvcigpKCkgeyAoKCptX2luc3QpLiptX3Rlc3RfbWV0aG9kKSgpOyB9CisKKyAgICBzaGFyZWRfcHRyPEluc3RhbmNlVHlwZT4gbV9pbnN0OworICAgIFRlc3RNZXRob2QgICAgICAgICAgICAgICBtX3Rlc3RfbWV0aG9kOworfTsKKworfSAvLyBuYW1lc3BhY2UgdXRfZGV0YWlsCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2lubGluZSB0ZXN0X2Nhc2UqCittYWtlX3Rlc3RfY2FzZSggY2FsbGJhY2swPD4gY29uc3QmIHRlc3RfZnVuYywgY29uc3Rfc3RyaW5nIHRjX25hbWUgKQoreworICAgIHJldHVybiBuZXcgdGVzdF9jYXNlKCB1dF9kZXRhaWw6Om5vcm1hbGl6ZV90ZXN0X2Nhc2VfbmFtZSggdGNfbmFtZSApLCB0ZXN0X2Z1bmMgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVXNlclRlc3RDYXNlLCB0eXBlbmFtZSBJbnN0YW5jZVR5cGU+CitpbmxpbmUgdGVzdF9jYXNlKgorbWFrZV90ZXN0X2Nhc2UoIHZvaWQgKFVzZXJUZXN0Q2FzZTo6KiAgICAgICAgICAgdGVzdF9tZXRob2QgKSgpLAorICAgICAgICAgICAgICAgIGNvbnN0X3N0cmluZyAgICAgICAgICAgICAgICAgICAgdGNfbmFtZSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxJbnN0YW5jZVR5cGU+IHVzZXJfdGVzdF9jYXNlICkKK3sKKyAgICByZXR1cm4gbmV3IHRlc3RfY2FzZSggdXRfZGV0YWlsOjpub3JtYWxpemVfdGVzdF9jYXNlX25hbWUoIHRjX25hbWUgKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIHV0X2RldGFpbDo6dXNlcl90Y19tZXRob2RfaW52b2tlcjxJbnN0YW5jZVR5cGUsVXNlclRlc3RDYXNlPiggdXNlcl90ZXN0X2Nhc2UsIHRlc3RfbWV0aG9kICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICBhdXRvX3Rlc3RfdW5pdF9yZWdpc3RyYXIgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworc3RydWN0IEJPT1NUX1RFU1RfREVDTCBhdXRvX3Rlc3RfdW5pdF9yZWdpc3RyYXIKK3sKKyAgICAvLyBDb25zdHJ1Y3RvcnMKKyAgICAgICAgICAgICAgICBhdXRvX3Rlc3RfdW5pdF9yZWdpc3RyYXIoIHRlc3RfY2FzZSogdGMsIGNvdW50ZXJfdCBleHBfZmFpbCApOworICAgIGV4cGxpY2l0ICAgIGF1dG9fdGVzdF91bml0X3JlZ2lzdHJhciggY29uc3Rfc3RyaW5nIHRzX25hbWUgKTsKKyAgICBleHBsaWNpdCAgICBhdXRvX3Rlc3RfdW5pdF9yZWdpc3RyYXIoIHRlc3RfdW5pdF9nZW5lcmF0b3IgY29uc3QmIHRjX2dlbiApOworICAgIGV4cGxpY2l0ICAgIGF1dG9fdGVzdF91bml0X3JlZ2lzdHJhciggaW50ICk7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHN0ZDo6bGlzdDx0ZXN0X3N1aXRlKj4mIGN1cnJfdHNfc3RvcmUoKTsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYXV0b190Y19leHBfZmFpbCB7CisgICAgYXV0b190Y19leHBfZmFpbCgpIDogbV92YWx1ZSggMCApIHt9CisKKyAgICBleHBsaWNpdCAgICBhdXRvX3RjX2V4cF9mYWlsKCB1bnNpZ25lZCB2ICkKKyAgICA6IG1fdmFsdWUoIHYgKQorICAgIHsKKyAgICAgICAgaW5zdGFuY2UoKSA9IHRoaXM7CisgICAgfQorCisgICAgc3RhdGljIGF1dG9fdGNfZXhwX2ZhaWwqJiBpbnN0YW5jZSgpIAorICAgIHsKKyAgICAgICAgc3RhdGljIGF1dG9fdGNfZXhwX2ZhaWwgICAgIGluc3Q7IAorICAgICAgICBzdGF0aWMgYXV0b190Y19leHBfZmFpbCogICAgaW5zdF9wdHIgPSAmaW5zdDsgCisKKyAgICAgICAgcmV0dXJuIGluc3RfcHRyOworICAgIH0KKworICAgIHVuc2lnbmVkICAgIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIHVuc2lnbmVkICAgIG1fdmFsdWU7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIGdsb2JhbF9maXh0dXJlICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBCT09TVF9URVNUX0RFQ0wgZ2xvYmFsX2ZpeHR1cmUgOiBwdWJsaWMgdGVzdF9vYnNlcnZlciB7IAorcHVibGljOiAKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGdsb2JhbF9maXh0dXJlKCk7Cit9OyAKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIHV0X2RldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIEY+IAorc3RydWN0IGdsb2JhbF9maXh0dXJlX2ltcGwgOiBwdWJsaWMgZ2xvYmFsX2ZpeHR1cmUgeworICAgIC8vIENvbnN0cnVjdG9yCisgICAgZ2xvYmFsX2ZpeHR1cmVfaW1wbCgpOiBtX2ZpeHVyZSggMCApICAgIHt9CisKKyAgICAvLyB0ZXN0IG9ic2VydmVyIGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCAgICB0ZXN0X3N0YXJ0KCBjb3VudGVyX3QgKSB7IG1fZml4dXJlID0gbmV3IEY7IH0KKyAgICB2aXJ0dWFsIHZvaWQgICAgdGVzdF9maW5pc2goKSAgICAgICAgICAgeyBkZWxldGUgbV9maXh1cmU7IG1fZml4dXJlID0gMDsgfSAKKyAgICB2aXJ0dWFsIHZvaWQgICAgdGVzdF9hYm9ydGVkKCkgICAgICAgICAgeyBkZWxldGUgbV9maXh1cmU7IG1fZml4dXJlID0gMDsgfSAKKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBGKiAgbV9maXh1cmU7Cit9OyAKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgIHRlc3RfY2FzZV90ZW1wbGF0ZV9pbnZva2VyICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUZXN0Q2FzZVRlbXBsYXRlLHR5cGVuYW1lIFRlc3RUeXBlPgorY2xhc3MgdGVzdF9jYXNlX3RlbXBsYXRlX2ludm9rZXIgeworcHVibGljOgorICAgIHZvaWQgICAgb3BlcmF0b3IoKSgpICAgIHsgVGVzdENhc2VUZW1wbGF0ZTo6cnVuKCAobmRuYm9vc3Q6OnR5cGU8VGVzdFR5cGU+KikwICk7IH0KK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgZ2VuZXJhdGVfdGVzdF9jYXNlXzRfdHlwZSAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgR2VuZXJhdG9yLHR5cGVuYW1lIFRlc3RDYXNlVGVtcGxhdGU+CitzdHJ1Y3QgZ2VuZXJhdGVfdGVzdF9jYXNlXzRfdHlwZSB7CisgICAgZXhwbGljaXQgICAgZ2VuZXJhdGVfdGVzdF9jYXNlXzRfdHlwZSggY29uc3Rfc3RyaW5nIHRjX25hbWUsIEdlbmVyYXRvciYgRyApCisgICAgOiBtX3Rlc3RfY2FzZV9uYW1lKCB0Y19uYW1lICkKKyAgICAsIG1faG9sZGVyKCBHICkKKyAgICB7fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGVzdFR5cGU+CisgICAgdm9pZCAgICAgICAgb3BlcmF0b3IoKSggbXBsOjppZGVudGl0eTxUZXN0VHlwZT4gKQorICAgIHsKKyAgICAgICAgc3RkOjpzdHJpbmcgZnVsbF9uYW1lOworICAgICAgICBhc3NpZ25fb3AoIGZ1bGxfbmFtZSwgbV90ZXN0X2Nhc2VfbmFtZSwgMCApOworICAgICAgICBmdWxsX25hbWUgKz0gJzwnOworICAgICAgICBmdWxsX25hbWUgKz0gdHlwZWlkKFRlc3RUeXBlKS5uYW1lKCk7CisgICAgICAgIGlmKCBuZG5ib29zdDo6aXNfY29uc3Q8VGVzdFR5cGU+Ojp2YWx1ZSApCisgICAgICAgICAgICBmdWxsX25hbWUgKz0gIiBjb25zdCI7CisgICAgICAgIGZ1bGxfbmFtZSArPSAnPic7CisKKyAgICAgICAgbV9ob2xkZXIubV90ZXN0X2Nhc2VzLnB1c2hfYmFjayggCisgICAgICAgICAgICBuZXcgdGVzdF9jYXNlKCBmdWxsX25hbWUsIHRlc3RfY2FzZV90ZW1wbGF0ZV9pbnZva2VyPFRlc3RDYXNlVGVtcGxhdGUsVGVzdFR5cGU+KCkgKSApOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBjb25zdF9zdHJpbmcgICAgbV90ZXN0X2Nhc2VfbmFtZTsKKyAgICBHZW5lcmF0b3ImICAgICAgbV9ob2xkZXI7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgIHRlc3RfY2FzZV90ZW1wbGF0ZSAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFRlc3RDYXNlVGVtcGxhdGUsdHlwZW5hbWUgVGVzdFR5cGVzTGlzdD4KK2NsYXNzIHRlbXBsYXRlX3Rlc3RfY2FzZV9nZW4gOiBwdWJsaWMgdGVzdF91bml0X2dlbmVyYXRvciB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICB0ZW1wbGF0ZV90ZXN0X2Nhc2VfZ2VuKCBjb25zdF9zdHJpbmcgdGNfbmFtZSApCisgICAgeworICAgICAgICB0eXBlZGVmIGdlbmVyYXRlX3Rlc3RfY2FzZV80X3R5cGU8dGVtcGxhdGVfdGVzdF9jYXNlX2dlbjxUZXN0Q2FzZVRlbXBsYXRlLFRlc3RUeXBlc0xpc3Q+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdENhc2VUZW1wbGF0ZQorICAgICAgICA+IHNpbmdsZV90ZXN0X2dlbjsKKyAgICAgICAgbXBsOjpmb3JfZWFjaDxUZXN0VHlwZXNMaXN0LG1wbDo6bWFrZV9pZGVudGl0eTxtcGw6Ol8+ID4oIHNpbmdsZV90ZXN0X2dlbiggdGNfbmFtZSwgKnRoaXMgKSApOworICAgIH0KKworICAgIHZpcnR1YWwgdGVzdF91bml0KiBuZXh0KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmKCBtX3Rlc3RfY2FzZXMuZW1wdHkoKSApCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICAgICAgdGVzdF91bml0KiByZXMgPSBtX3Rlc3RfY2FzZXMuZnJvbnQoKTsKKyAgICAgICAgbV90ZXN0X2Nhc2VzLnBvcF9mcm9udCgpOworCisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgbXV0YWJsZSBzdGQ6Omxpc3Q8dGVzdF91bml0Kj4gbV90ZXN0X2Nhc2VzOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgdXRfZGV0YWlsCisKK30gLy8gdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9VTklUX1RFU1RfU1VJVEVfSU1QTF9IUFBfMDcxODk0R0VSCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9hbGdvcml0aG0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2FsZ29yaXRobS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAwM2RmZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9hbGdvcml0aG0uaHBwCkBAIC0wLDAgKzEsMjI4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA0LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGFkZGl0aW9uIHRvIFNUTCBhbGdvcml0aG1zCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9BTEdPUklUSE1fSFBQXzA2MjMwNEdFUgorI2RlZmluZSBCT09TVF9BTEdPUklUSE1fSFBQXzA2MjMwNEdFUgorCisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIHN0ZDo6ZmluZAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+IC8vIHN0ZDo6YmluZDFzdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8vIEBicmllZiB0aGlzIGFsZ29yaXRobSBzZWFyY2ggdGhyb3VnaCB0d28gY29sbGVjdGlvbnMgZm9yIGZpcnN0IG1pc21hdGNoIHBvc2l0aW9uIHRoYXQgZ2V0IHJldHVybmVkIGFzIGEgcGFpcgorLy8vIG9mIGl0ZXJhdG9ycywgZmlyc3QgcG9pbnRpbmcgdG8gdGhlIG1pc21hdGNoIHBvc2l0aW9uIGluIGZpcnN0IGNvbGxlY3Rpb24sIHNlY29uZCBpdGVyYXRvciBpbiBzZWNvbmQgb25lCisKKy8vLyBAcGFyYW0gZmlyc3QxIC0gZmlyc3QgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gZW5kIGl0ZXJhdG9yCisvLy8gQHBhcmFtIGZpcnN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGJlZ2luIGl0ZXJhdG9yCisvLy8gQHBhcmFtIGxhc3QyIC0gc2Vjb25kIGNvbGxlY3Rpb24gZW5kIGl0ZXJhdG9yCit0ZW1wbGF0ZSA8Y2xhc3MgSW5wdXRJdGVyMSwgY2xhc3MgSW5wdXRJdGVyMj4KK2lubGluZSBzdGQ6OnBhaXI8SW5wdXRJdGVyMSwgSW5wdXRJdGVyMj4KK21pc21hdGNoKCBJbnB1dEl0ZXIxIGZpcnN0MSwgSW5wdXRJdGVyMSBsYXN0MSwKKyAgICAgICAgICBJbnB1dEl0ZXIyIGZpcnN0MiwgSW5wdXRJdGVyMiBsYXN0MiApCit7CisgICAgd2hpbGUoIGZpcnN0MSAhPSBsYXN0MSAmJiBmaXJzdDIgIT0gbGFzdDIgJiYgKmZpcnN0MSA9PSAqZmlyc3QyICkgeworICAgICAgICArK2ZpcnN0MTsKKyAgICAgICAgKytmaXJzdDI7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6cGFpcjxJbnB1dEl0ZXIxLCBJbnB1dEl0ZXIyPihmaXJzdDEsIGZpcnN0Mik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vLyBAYnJpZWYgdGhpcyBhbGdvcml0aG0gc2VhcmNoIHRocm91Z2ggdHdvIGNvbGxlY3Rpb25zIGZvciBmaXJzdCBtaXNtYXRjaCBwb3NpdGlvbiB0aGF0IGdldCByZXR1cm5lZCBhcyBhIHBhaXIKKy8vLyBvZiBpdGVyYXRvcnMsIGZpcnN0IHBvaW50aW5nIHRvIHRoZSBtaXNtYXRjaCBwb3NpdGlvbiBpbiBmaXJzdCBjb2xsZWN0aW9uLCBzZWNvbmQgaXRlcmF0b3IgaW4gc2Vjb25kIG9uZS4gVGhpcyBhbGdvcml0aG1zCisvLy8gdXNlcyBzdXBwbGllZCBwcmVkaWNhdGUgZm9yIGNvbGxlY3Rpb24gZWxlbWVudHMgY29tcGFyaXNvbgorCisvLy8gQHBhcmFtIGZpcnN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gYmVnaW4gaXRlcmF0b3IKKy8vLyBAcGFyYW0gbGFzdDEgLSBmaXJzdCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBmaXJzdDIgLSBzZWNvbmQgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBwcmVkIC0gcHJlZGljYXRlIHRvIGJlIHVzZWQgZm9yIHNlYXJjaAordGVtcGxhdGUgPGNsYXNzIElucHV0SXRlcjEsIGNsYXNzIElucHV0SXRlcjIsIGNsYXNzIFByZWRpY2F0ZT4KK2lubGluZSBzdGQ6OnBhaXI8SW5wdXRJdGVyMSwgSW5wdXRJdGVyMj4KK21pc21hdGNoKCBJbnB1dEl0ZXIxIGZpcnN0MSwgSW5wdXRJdGVyMSBsYXN0MSwKKyAgICAgICAgICBJbnB1dEl0ZXIyIGZpcnN0MiwgSW5wdXRJdGVyMiBsYXN0MiwKKyAgICAgICAgICBQcmVkaWNhdGUgcHJlZCApCit7CisgICAgd2hpbGUoIGZpcnN0MSAhPSBsYXN0MSAmJiBmaXJzdDIgIT0gbGFzdDIgJiYgcHJlZCggKmZpcnN0MSwgKmZpcnN0MiApICkgeworICAgICAgICArK2ZpcnN0MTsKKyAgICAgICAgKytmaXJzdDI7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6cGFpcjxJbnB1dEl0ZXIxLCBJbnB1dEl0ZXIyPihmaXJzdDEsIGZpcnN0Mik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vLyBAYnJpZWYgdGhpcyBhbGdvcml0aG0gc2VhcmNoIHRocm91Z2ggZmlyc3QgY29sbGVjdGlvbiBmb3IgZmlyc3QgZWxlbWVudCB0aGF0IGRvZXMgbm90IGJlbG9uZyBhIHNlY29uZCBvbmUKKworLy8vIEBwYXJhbSBmaXJzdDEgLSBmaXJzdCBjb2xsZWN0aW9uIGJlZ2luIGl0ZXJhdG9yCisvLy8gQHBhcmFtIGxhc3QxIC0gZmlyc3QgY29sbGVjdGlvbiBlbmQgaXRlcmF0b3IKKy8vLyBAcGFyYW0gZmlyc3QyIC0gc2Vjb25kIGNvbGxlY3Rpb24gYmVnaW4gaXRlcmF0b3IKKy8vLyBAcGFyYW0gbGFzdDIgLSBzZWNvbmQgY29sbGVjdGlvbiBlbmQgaXRlcmF0b3IKK3RlbXBsYXRlPGNsYXNzIEZvcndhcmRJdGVyYXRvcjEsIGNsYXNzIEZvcndhcmRJdGVyYXRvcjI+CitpbmxpbmUgRm9yd2FyZEl0ZXJhdG9yMQorZmluZF9maXJzdF9ub3Rfb2YoIEZvcndhcmRJdGVyYXRvcjEgZmlyc3QxLCBGb3J3YXJkSXRlcmF0b3IxIGxhc3QxLCAKKyAgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3IyIGZpcnN0MiwgRm9yd2FyZEl0ZXJhdG9yMiBsYXN0MiApCit7CisgICAgd2hpbGUoIGZpcnN0MSAhPSBsYXN0MSApIHsKKyAgICAgICAgaWYoIHN0ZDo6ZmluZCggZmlyc3QyLCBsYXN0MiwgKmZpcnN0MSApID09IGxhc3QyICkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICArK2ZpcnN0MTsKKyAgICB9CisKKyAgICByZXR1cm4gZmlyc3QxOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLy8gQGJyaWVmIHRoaXMgYWxnb3JpdGhtIHNlYXJjaCB0aHJvdWdoIGZpcnN0IGNvbGxlY3Rpb24gZm9yIGZpcnN0IGVsZW1lbnQgdGhhdCBkb2VzIG5vdCBzYXRpc2Z5IGJpbmFyeSAKKy8vLyBwcmVkaWNhdGUgaW4gY29uanVuY3Rpb24gd2lsbCBhbnkgZWxlbWVudCBpbiBzZWNvbmQgY29sbGVjdGlvbgorCisvLy8gQHBhcmFtIGZpcnN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gYmVnaW4gaXRlcmF0b3IKKy8vLyBAcGFyYW0gbGFzdDEgLSBmaXJzdCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBmaXJzdDIgLSBzZWNvbmQgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBwcmVkIC0gcHJlZGljYXRlIHRvIGJlIHVzZWQgZm9yIHNlYXJjaAordGVtcGxhdGU8Y2xhc3MgRm9yd2FyZEl0ZXJhdG9yMSwgY2xhc3MgRm9yd2FyZEl0ZXJhdG9yMiwgY2xhc3MgUHJlZGljYXRlPgoraW5saW5lIEZvcndhcmRJdGVyYXRvcjEKK2ZpbmRfZmlyc3Rfbm90X29mKCBGb3J3YXJkSXRlcmF0b3IxIGZpcnN0MSwgRm9yd2FyZEl0ZXJhdG9yMSBsYXN0MSwgCisgICAgICAgICAgICAgICAgICAgRm9yd2FyZEl0ZXJhdG9yMiBmaXJzdDIsIEZvcndhcmRJdGVyYXRvcjIgbGFzdDIsIAorICAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZSBwcmVkICkKK3sKKyAgICB3aGlsZSggZmlyc3QxICE9IGxhc3QxICkgeworICAgICAgICBpZiggc3RkOjpmaW5kX2lmKCBmaXJzdDIsIGxhc3QyLCBzdGQ6OmJpbmQxc3QoIHByZWQsICpmaXJzdDEgKSApID09IGxhc3QyICkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICArK2ZpcnN0MTsKKyAgICB9CisKKyAgICByZXR1cm4gZmlyc3QxOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLy8gQGJyaWVmIHRoaXMgYWxnb3JpdGhtIHNlYXJjaCB0aHJvdWdoIGZpcnN0IGNvbGxlY3Rpb24gZm9yIGxhc3QgZWxlbWVudCB0aGF0IGJlbG9uZ3MgdG8gYSBzZWNvbmQgb25lCisKKy8vLyBAcGFyYW0gZmlyc3QxIC0gZmlyc3QgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gZW5kIGl0ZXJhdG9yCisvLy8gQHBhcmFtIGZpcnN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGJlZ2luIGl0ZXJhdG9yCisvLy8gQHBhcmFtIGxhc3QyIC0gc2Vjb25kIGNvbGxlY3Rpb24gZW5kIGl0ZXJhdG9yCit0ZW1wbGF0ZTxjbGFzcyBCaWRpcmVjdGlvbmFsSXRlcmF0b3IxLCBjbGFzcyBGb3J3YXJkSXRlcmF0b3IyPgoraW5saW5lIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEKK2ZpbmRfbGFzdF9vZiggQmlkaXJlY3Rpb25hbEl0ZXJhdG9yMSBmaXJzdDEsIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEgbGFzdDEsIAorICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3IyIGZpcnN0MiwgRm9yd2FyZEl0ZXJhdG9yMiBsYXN0MiApCit7CisgICAgaWYoIGZpcnN0MSA9PSBsYXN0MSB8fCBmaXJzdDIgPT0gbGFzdDIgKQorICAgICAgICByZXR1cm4gbGFzdDE7CisKKyAgICBCaWRpcmVjdGlvbmFsSXRlcmF0b3IxIGl0MSA9IGxhc3QxOworICAgIHdoaWxlKCAtLWl0MSAhPSBmaXJzdDEgJiYgc3RkOjpmaW5kKCBmaXJzdDIsIGxhc3QyLCAqaXQxICkgPT0gbGFzdDIgKSB7fQorCisgICAgcmV0dXJuIGl0MSA9PSBmaXJzdDEgJiYgc3RkOjpmaW5kKCBmaXJzdDIsIGxhc3QyLCAqaXQxICkgPT0gbGFzdDIgPyBsYXN0MSA6IGl0MTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8vIEBicmllZiB0aGlzIGFsZ29yaXRobSBzZWFyY2ggdGhyb3VnaCBmaXJzdCBjb2xsZWN0aW9uIGZvciBsYXN0IGVsZW1lbnQgdGhhdCBzYXRpc2Z5IGJpbmFyeSAKKy8vLyBwcmVkaWNhdGUgaW4gY29uanVuY3Rpb24gd2lsbCBhdCBsZWFzdCBvbmUgZWxlbWVudCBpbiBzZWNvbmQgY29sbGVjdGlvbgorCisvLy8gQHBhcmFtIGZpcnN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gYmVnaW4gaXRlcmF0b3IKKy8vLyBAcGFyYW0gbGFzdDEgLSBmaXJzdCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBmaXJzdDIgLSBzZWNvbmQgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBwcmVkIC0gcHJlZGljYXRlIHRvIGJlIHVzZWQgZm9yIHNlYXJjaAordGVtcGxhdGU8Y2xhc3MgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yMSwgY2xhc3MgRm9yd2FyZEl0ZXJhdG9yMiwgY2xhc3MgUHJlZGljYXRlPgoraW5saW5lIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEKK2ZpbmRfbGFzdF9vZiggQmlkaXJlY3Rpb25hbEl0ZXJhdG9yMSBmaXJzdDEsIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEgbGFzdDEsIAorICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3IyIGZpcnN0MiwgRm9yd2FyZEl0ZXJhdG9yMiBsYXN0MiwgCisgICAgICAgICAgICAgIFByZWRpY2F0ZSBwcmVkICkKK3sKKyAgICBpZiggZmlyc3QxID09IGxhc3QxIHx8IGZpcnN0MiA9PSBsYXN0MiApCisgICAgICAgIHJldHVybiBsYXN0MTsKKworICAgIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEgaXQxID0gbGFzdDE7CisgICAgd2hpbGUoIC0taXQxICE9IGZpcnN0MSAmJiBzdGQ6OmZpbmRfaWYoIGZpcnN0MiwgbGFzdDIsIHN0ZDo6YmluZDFzdCggcHJlZCwgKml0MSApICkgPT0gbGFzdDIgKSB7fQorCisgICAgcmV0dXJuIGl0MSA9PSBmaXJzdDEgJiYgc3RkOjpmaW5kX2lmKCBmaXJzdDIsIGxhc3QyLCBzdGQ6OmJpbmQxc3QoIHByZWQsICppdDEgKSApID09IGxhc3QyID8gbGFzdDEgOiBpdDE7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vLyBAYnJpZWYgdGhpcyBhbGdvcml0aG0gc2VhcmNoIHRocm91Z2ggZmlyc3QgY29sbGVjdGlvbiBmb3IgbGFzdCBlbGVtZW50IHRoYXQgZG9lcyBub3QgYmVsb25nIHRvIGEgc2Vjb25kIG9uZQorCisvLy8gQHBhcmFtIGZpcnN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gYmVnaW4gaXRlcmF0b3IKKy8vLyBAcGFyYW0gbGFzdDEgLSBmaXJzdCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBmaXJzdDIgLSBzZWNvbmQgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgordGVtcGxhdGU8Y2xhc3MgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yMSwgY2xhc3MgRm9yd2FyZEl0ZXJhdG9yMj4KK2lubGluZSBCaWRpcmVjdGlvbmFsSXRlcmF0b3IxCitmaW5kX2xhc3Rfbm90X29mKCBCaWRpcmVjdGlvbmFsSXRlcmF0b3IxIGZpcnN0MSwgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yMSBsYXN0MSwgCisgICAgICAgICAgICAgICAgICBGb3J3YXJkSXRlcmF0b3IyIGZpcnN0MiwgRm9yd2FyZEl0ZXJhdG9yMiBsYXN0MiApCit7CisgICAgaWYoIGZpcnN0MSA9PSBsYXN0MSB8fCBmaXJzdDIgPT0gbGFzdDIgKQorICAgICAgICByZXR1cm4gbGFzdDE7CisKKyAgICBCaWRpcmVjdGlvbmFsSXRlcmF0b3IxIGl0MSA9IGxhc3QxOworICAgIHdoaWxlKCAtLWl0MSAhPSBmaXJzdDEgJiYgc3RkOjpmaW5kKCBmaXJzdDIsIGxhc3QyLCAqaXQxICkgIT0gbGFzdDIgKSB7fQorCisgICAgcmV0dXJuIGl0MSA9PSBmaXJzdDEgJiYgc3RkOjpmaW5kKCBmaXJzdDIsIGxhc3QyLCAqaXQxICkgIT0gbGFzdDIgPyBsYXN0MSA6IGl0MTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8vIEBicmllZiB0aGlzIGFsZ29yaXRobSBzZWFyY2ggdGhyb3VnaCBmaXJzdCBjb2xsZWN0aW9uIGZvciBsYXN0IGVsZW1lbnQgdGhhdCBkb2VzIG5vdCBzYXRpc2Z5IGJpbmFyeSAKKy8vLyBwcmVkaWNhdGUgaW4gY29uanVuY3Rpb24gd2lsbCBhbnkgZWxlbWVudCBpbiBzZWNvbmQgY29sbGVjdGlvbgorCisvLy8gQHBhcmFtIGZpcnN0MSAtIGZpcnN0IGNvbGxlY3Rpb24gYmVnaW4gaXRlcmF0b3IKKy8vLyBAcGFyYW0gbGFzdDEgLSBmaXJzdCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBmaXJzdDIgLSBzZWNvbmQgY29sbGVjdGlvbiBiZWdpbiBpdGVyYXRvcgorLy8vIEBwYXJhbSBsYXN0MiAtIHNlY29uZCBjb2xsZWN0aW9uIGVuZCBpdGVyYXRvcgorLy8vIEBwYXJhbSBwcmVkIC0gcHJlZGljYXRlIHRvIGJlIHVzZWQgZm9yIHNlYXJjaAordGVtcGxhdGU8Y2xhc3MgQmlkaXJlY3Rpb25hbEl0ZXJhdG9yMSwgY2xhc3MgRm9yd2FyZEl0ZXJhdG9yMiwgY2xhc3MgUHJlZGljYXRlPgoraW5saW5lIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEKK2ZpbmRfbGFzdF9ub3Rfb2YoIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEgZmlyc3QxLCBCaWRpcmVjdGlvbmFsSXRlcmF0b3IxIGxhc3QxLCAKKyAgICAgICAgICAgICAgICAgIEZvcndhcmRJdGVyYXRvcjIgZmlyc3QyLCBGb3J3YXJkSXRlcmF0b3IyIGxhc3QyLCAKKyAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZSBwcmVkICkKK3sKKyAgICBpZiggZmlyc3QxID09IGxhc3QxIHx8IGZpcnN0MiA9PSBsYXN0MiApCisgICAgICAgIHJldHVybiBsYXN0MTsKKworICAgIEJpZGlyZWN0aW9uYWxJdGVyYXRvcjEgaXQxID0gbGFzdDE7CisgICAgd2hpbGUoIC0taXQxICE9IGZpcnN0MSAmJiBzdGQ6OmZpbmRfaWYoIGZpcnN0MiwgbGFzdDIsIHN0ZDo6YmluZDFzdCggcHJlZCwgKml0MSApICkgIT0gbGFzdDIgKSB7fQorCisgICAgcmV0dXJuIGl0MSA9PSBmaXJzdDEgJiYgc3RkOjpmaW5kX2lmKCBmaXJzdDIsIGxhc3QyLCBzdGQ6OmJpbmQxc3QoIHByZWQsICppdDEgKSApID09IGxhc3QyID8gbGFzdDEgOiBpdDE7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX0FMR09SSVRITV9IUFBfMDYyMzA0R0VSCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Fzc2lnbl9vcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvYXNzaWduX29wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2Q3Y2EwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Fzc2lnbl9vcC5ocHAKQEAgLTAsMCArMSw0MSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBvdmVybG9hZGFibGUgYXNzaWdubWVudAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9BU1NJR05fT1BfMDMzMDA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfQVNTSUdOX09QXzAzMzAwNUdFUgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIGdlbmVyaWMgYXNzaWduIG9wZXJhdG9yICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisvLyBnZW5lcmljCit0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIFM+CitpbmxpbmUgdm9pZAorYXNzaWduX29wKCBUJiB0LCBTIGNvbnN0JiBzLCBsb25nICkKK3sKKyAgICB0ID0gczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0FTU0lHTl9PUF8wMzMwMDVHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9iYXNpY19jc3RyaW5nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzk4MmRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHAKQEAgLTAsMCArMSw3MzEgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDQtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogY2xhc3MgYmFzaWNfY3N0cmluZyB3cmFwcyBDIHN0cmluZyBhbmQgcHJvdmlkZSBzdGRfc3RyaW5nIGxpa2UgCisvLyAgICAgICAgICAgICAgICBpbnRlcmZhY2UKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfQkFTSUNfQ1NUUklOR19IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfQkFTSUNfQ1NUUklOR19IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZ19md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9iY3NfY2hhcl90cmFpdHMuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgYmFzaWNfY3N0cmluZyAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgorY2xhc3MgYmFzaWNfY3N0cmluZyB7CisgICAgdHlwZWRlZiBiYXNpY19jc3RyaW5nPENoYXJUPiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGZfdHlwZTsKK3B1YmxpYzoKKyAgICAvLyBTdWJ0eXBlcworICAgIHR5cGVkZWYgdXRfZGV0YWlsOjpiY3NfY2hhcl90cmFpdHM8Q2hhclQ+ICAgICAgICAgICB0cmFpdHNfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHV0X2RldGFpbDo6YmNzX2NoYXJfdHJhaXRzPENoYXJUPjo6c3RkX3N0cmluZyAgc3RkX3N0cmluZzsKKworICAgIHR5cGVkZWYgQ2hhclQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdmFsdWVfdHlwZSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyOworICAgIHR5cGVkZWYgdmFsdWVfdHlwZSBjb25zdCogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9wb2ludGVyOworICAgIHR5cGVkZWYgdmFsdWVfdHlwZSYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2U7CisgICAgdHlwZWRlZiBjb25zdCB2YWx1ZV90eXBlJiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X3JlZmVyZW5jZTsKKyAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90eXBlOworICAgIHR5cGVkZWYgc3RkOjpwdHJkaWZmX3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbmNlX3R5cGU7CisKKyAgICB0eXBlZGVmIHZhbHVlX3R5cGUgY29uc3QqICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfaXRlcmF0b3I7CisgICAgdHlwZWRlZiB2YWx1ZV90eXBlKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yOworCisgICAgLy8gISEgc2hvdWxkIGFsc28gcHJlc2VudCByZXZlcnNlX2l0ZXJhdG9yLCBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNjAwKSkKKyAgICBlbnVtIG5wb3NfdHlwZSB7IG5wb3MgPSBzdGF0aWNfY2FzdDxzaXplX3R5cGU+KC0xKSB9OworI2Vsc2UKKyAgICAvLyBJQk0vVmlzdWFsQWdlIHZlcnNpb24gNiBpcyBub3QgYWJsZSB0byBoYW5kbGUgZW51bXMgbGFyZ2VyIHRoYW4gNCBieXRlcy4KKyAgICAvLyBCdXQgc2l6ZV90eXBlIGlzIDggYnl0ZXMgaW4gNjRiaXQgbW9kZS4KKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90eXBlIG5wb3MgPSAtMSA7CisjZW5kaWYKKworICAgIHN0YXRpYyBwb2ludGVyICBudWxsX3N0cigpOworCisgICAgLy8gQ29uc3RydWN0b3JzOyBkZWZhdWx0IGNvcHkgY29uc3RydWN0b3IgaXMgZ2VuZXJhdGVkIGJ5IGNvbXBpbGVyCisgICAgYmFzaWNfY3N0cmluZygpOworICAgIGJhc2ljX2NzdHJpbmcoIHN0ZF9zdHJpbmcgY29uc3QmIHMgKTsKKyAgICBiYXNpY19jc3RyaW5nKCBwb2ludGVyIHMgKTsKKyAgICBiYXNpY19jc3RyaW5nKCBwb2ludGVyIHMsIHNpemVfdHlwZSBhcmdfc2l6ZSApOworICAgIGJhc2ljX2NzdHJpbmcoIHBvaW50ZXIgZmlyc3QsIHBvaW50ZXIgbGFzdCApOworCisgICAgLy8gZGF0YSBhY2Nlc3MgbWV0aG9kcworICAgIHZhbHVlX3R5cGUgICAgICBvcGVyYXRvcltdKCBzaXplX3R5cGUgaW5kZXggKSBjb25zdDsKKyAgICB2YWx1ZV90eXBlICAgICAgYXQoIHNpemVfdHlwZSBpbmRleCApIGNvbnN0OworCisgICAgLy8gc2l6ZSBvcGVyYXRvcnMKKyAgICBzaXplX3R5cGUgICAgICAgc2l6ZSgpIGNvbnN0OworICAgIGJvb2wgICAgICAgICAgICBpc19lbXB0eSgpIGNvbnN0OworICAgIHZvaWQgICAgICAgICAgICBjbGVhcigpOworICAgIHZvaWQgICAgICAgICAgICByZXNpemUoIHNpemVfdHlwZSBuZXdfbGVuICk7CisKKyAgICAvLyAhISBvbmx5IGZvciBTVEwgY29udGFpbmVyIGNvbmZvcm1hbmNlIHVzZSBpc19lbXB0eSBpbnN0ZWFkCisgICAgYm9vbCAgICAgICAgICAgIGVtcHR5KCkgY29uc3Q7IAorCisgICAgLy8gVHJpbW1pbmcKKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9yaWdodCggc2l6ZV90eXBlIHRyaW1fc2l6ZSApOworICAgIHNlbGZfdHlwZSYgICAgICB0cmltX2xlZnQoIHNpemVfdHlwZSB0cmltX3NpemUgKTsKKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9yaWdodCggaXRlcmF0b3IgaXQgKTsKKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9sZWZ0KCBpdGVyYXRvciBpdCApOworI2lmbmRlZiBfX0lCTUNQUF9fCisgICAgc2VsZl90eXBlJiAgICAgIHRyaW1fbGVmdCggc2VsZl90eXBlIGV4Y2x1c2lvbnMgPSBzZWxmX3R5cGUoKSApIDsKKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9yaWdodCggc2VsZl90eXBlIGV4Y2x1c2lvbnMgPSBzZWxmX3R5cGUoKSApIDsKKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbSggc2VsZl90eXBlIGV4Y2x1c2lvbnMgPSBzZWxmX3R5cGUoKSApIDsKKyNlbHNlCisgICAgLy8gVmlzdWFsQWdlIHZlcnNpb24gNiBoYXMgaW4gdGhpcyBjYXNlIGEgcHJvYmxlbSB3aXRoIHRoZSBkZWZhdWx0IGFyZ3VtZW50cy4KKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9sZWZ0KCBzZWxmX3R5cGUgZXhjbHVzaW9ucyApIDsKKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9yaWdodCggc2VsZl90eXBlIGV4Y2x1c2lvbnMgKSA7CisgICAgc2VsZl90eXBlJiAgICAgIHRyaW0oIHNlbGZfdHlwZSBleGNsdXNpb25zICkgOworICAgIHNlbGZfdHlwZSYgICAgICB0cmltX2xlZnQoKSB7IHRyaW1fbGVmdCggc2VsZl90eXBlKCkgKSA7IH0KKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbV9yaWdodCgpIHsgdHJpbV9yaWdodCggc2VsZl90eXBlKCkgKSA7IH0KKyAgICBzZWxmX3R5cGUmICAgICAgdHJpbSgpIHsgdHJpbSggc2VsZl90eXBlKCkgKSA7IH0KKyNlbmRpZgorCisgICAgLy8gQXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICBiYXNpY19jc3RyaW5nJiAgb3BlcmF0b3I9KCBzZWxmX3R5cGUgY29uc3QmIHMgKTsKKyAgICBiYXNpY19jc3RyaW5nJiAgb3BlcmF0b3I9KCBzdGRfc3RyaW5nIGNvbnN0JiBzICk7CisgICAgYmFzaWNfY3N0cmluZyYgIG9wZXJhdG9yPSggcG9pbnRlciBzICk7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVDI+CisgICAgYmFzaWNfY3N0cmluZyYgIGFzc2lnbiggYmFzaWNfY3N0cmluZzxDaGFyVDI+IGNvbnN0JiBzICkgeyAqdGhpcyA9IGJhc2ljX2NzdHJpbmc8Q2hhclQ+KCBzLmJlZ2luKCksIHMuZW5kKCkgKTsgcmV0dXJuICp0aGlzOyB9CisgICAgYmFzaWNfY3N0cmluZyYgIGFzc2lnbiggc2VsZl90eXBlIGNvbnN0JiBzLCBzaXplX3R5cGUgcG9zLCBzaXplX3R5cGUgbGVuICk7CisgICAgYmFzaWNfY3N0cmluZyYgIGFzc2lnbiggc3RkX3N0cmluZyBjb25zdCYgcyApOworICAgIGJhc2ljX2NzdHJpbmcmICBhc3NpZ24oIHN0ZF9zdHJpbmcgY29uc3QmIHMsIHNpemVfdHlwZSBwb3MsIHNpemVfdHlwZSBsZW4gKTsKKyAgICBiYXNpY19jc3RyaW5nJiAgYXNzaWduKCBwb2ludGVyIHMgKTsKKyAgICBiYXNpY19jc3RyaW5nJiAgYXNzaWduKCBwb2ludGVyIHMsIHNpemVfdHlwZSBsZW4gKTsKKyAgICBiYXNpY19jc3RyaW5nJiAgYXNzaWduKCBwb2ludGVyIGYsIHBvaW50ZXIgbCApOworCisgICAgLy8gc3dhcHBpbmcKKyAgICB2b2lkICAgICAgICAgICAgc3dhcCggc2VsZl90eXBlJiBzICk7CisKKyAgICAvLyBJdGVyYXRvcnMKKyAgICBpdGVyYXRvciAgICAgICAgYmVnaW4oKTsKKyAgICBjb25zdF9pdGVyYXRvciAgYmVnaW4oKSBjb25zdDsKKyAgICBpdGVyYXRvciAgICAgICAgZW5kKCk7CisgICAgY29uc3RfaXRlcmF0b3IgIGVuZCgpIGNvbnN0OworCisgICAgLy8gISEgc2hvdWxkIGhhdmUgcmJlZ2luLCByZW5kCisKKyAgICAvLyBzdWJzdHJpbmcgc2VhcmNoIG9wZXJhdGlvbgorICAgIHNpemVfdHlwZSAgICAgICBmaW5kKCBiYXNpY19jc3RyaW5nICkgY29uc3Q7CisgICAgc2l6ZV90eXBlICAgICAgIHJmaW5kKCBiYXNpY19jc3RyaW5nICkgY29uc3Q7CisgICAgc2VsZl90eXBlICAgICAgIHN1YnN0ciggc2l6ZV90eXBlIGJlZ19pbmRleCwgc2l6ZV90eXBlIGVuZF9pbmRleCA9IG5wb3MgKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgc2VsZl90eXBlIGRlZmF1bHRfdHJpbV9leCgpOworCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgaXRlcmF0b3IgICAgICAgIG1fYmVnaW47CisgICAgaXRlcmF0b3IgICAgICAgIG1fZW5kOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgdHlwZW5hbWUgYmFzaWNfY3N0cmluZzxDaGFyVD46OnBvaW50ZXIKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpudWxsX3N0cigpCit7CisgICAgc3RhdGljIENoYXJUIG51bGwgPSAwOworICAgIHJldHVybiAmbnVsbDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpiYXNpY19jc3RyaW5nKCkKKzogbV9iZWdpbiggbnVsbF9zdHIoKSApCissIG1fZW5kKCBtX2JlZ2luICkKK3sKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpiYXNpY19jc3RyaW5nKCBzdGRfc3RyaW5nIGNvbnN0JiBzICkKKzogbV9iZWdpbiggcy5jX3N0cigpICkKKywgbV9lbmQoIG1fYmVnaW4gKyBzLnNpemUoKSApCit7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lCitiYXNpY19jc3RyaW5nPENoYXJUPjo6YmFzaWNfY3N0cmluZyggcG9pbnRlciBzICkKKzogbV9iZWdpbiggcyA/IHMgOiBudWxsX3N0cigpICkKKywgbV9lbmQgICggbV9iZWdpbiArIChzID8gdHJhaXRzX3R5cGU6Omxlbmd0aCggcyApIDogMCApICkKK3sKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpiYXNpY19jc3RyaW5nKCBwb2ludGVyIHMsIHNpemVfdHlwZSBhcmdfc2l6ZSApCis6IG1fYmVnaW4oIHMgKSwgbV9lbmQoIG1fYmVnaW4gKyBhcmdfc2l6ZSApCit7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lCitiYXNpY19jc3RyaW5nPENoYXJUPjo6YmFzaWNfY3N0cmluZyggcG9pbnRlciBmaXJzdCwgcG9pbnRlciBsYXN0ICkKKzogbV9iZWdpbiggZmlyc3QgKQorLCBtX2VuZCggbGFzdCApCit7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+Ojp2YWx1ZV90eXBlCitiYXNpY19jc3RyaW5nPENoYXJUPjo6b3BlcmF0b3JbXSggc2l6ZV90eXBlIGluZGV4ICkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iZWdpbltpbmRleF07Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+Ojp2YWx1ZV90eXBlCitiYXNpY19jc3RyaW5nPENoYXJUPjo6YXQoIHNpemVfdHlwZSBpbmRleCApIGNvbnN0Cit7CisgICAgaWYoIG1fYmVnaW4gKyBpbmRleCA+PSBtX2VuZCApCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPigwKTsKKworICAgIHJldHVybiBtX2JlZ2luW2luZGV4XTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgdHlwZW5hbWUgYmFzaWNfY3N0cmluZzxDaGFyVD46OnNpemVfdHlwZQorYmFzaWNfY3N0cmluZzxDaGFyVD46OnNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX2VuZCAtIG1fYmVnaW47Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+Ojppc19lbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW5kID09IG1fYmVnaW47Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjplbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzX2VtcHR5KCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHZvaWQKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpjbGVhcigpCit7CisgICAgbV9iZWdpbiA9IG1fZW5kOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSB2b2lkCitiYXNpY19jc3RyaW5nPENoYXJUPjo6cmVzaXplKCBzaXplX3R5cGUgbmV3X2xlbiApCit7CisgICAgaWYoIG1fYmVnaW4gKyBuZXdfbGVuIDwgbV9lbmQgKQorICAgICAgICBtX2VuZCA9IG1fYmVnaW4gKyBuZXdfbGVuOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY19jc3RyaW5nPENoYXJUPiYKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+Ojp0cmltX2xlZnQoIHNpemVfdHlwZSB0cmltX3NpemUgKQoreworICAgIG1fYmVnaW4gKz0gdHJpbV9zaXplOworICAgIGlmKCBtX2VuZCA8PSBtX2JlZ2luICkKKyAgICAgICAgY2xlYXIoKTsKKworICAgIHJldHVybiAqdGhpczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6dHJpbV9sZWZ0KCBpdGVyYXRvciBpdCApCit7CisgICAgbV9iZWdpbiA9IGl0OworICAgIGlmKCBtX2VuZCA8PSBtX2JlZ2luICkKKyAgICAgICAgY2xlYXIoKTsKKworICAgIHJldHVybiAqdGhpczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6dHJpbV9sZWZ0KCBiYXNpY19jc3RyaW5nIGV4Y2x1c2lvbnMgKQoreworICAgIGlmKCBleGNsdXNpb25zLmlzX2VtcHR5KCkgKQorICAgICAgICBleGNsdXNpb25zID0gZGVmYXVsdF90cmltX2V4KCk7CisKKyAgICBpdGVyYXRvciBpdDsKKyAgICBmb3IoIGl0ID0gYmVnaW4oKTsgaXQgIT0gZW5kKCk7ICsraXQgKSB7CisgICAgICAgIGlmKCB0cmFpdHNfdHlwZTo6ZmluZCggZXhjbHVzaW9ucy5iZWdpbigpLCBleGNsdXNpb25zLnNpemUoKSwgKml0ICkgPT0gcmVpbnRlcnByZXRfY2FzdDxwb2ludGVyPigwKSApCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRyaW1fbGVmdCggaXQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6dHJpbV9yaWdodCggc2l6ZV90eXBlIHRyaW1fc2l6ZSApCit7CisgICAgbV9lbmQgIC09IHRyaW1fc2l6ZTsKKyAgICBpZiggbV9lbmQgPD0gbV9iZWdpbiApCisgICAgICAgIGNsZWFyKCk7CisKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+JgorYmFzaWNfY3N0cmluZzxDaGFyVD46OnRyaW1fcmlnaHQoIGl0ZXJhdG9yIGl0ICkKK3sKKyAgICBtX2VuZCA9IGl0OworICAgIGlmKCBtX2VuZCA8PSBtX2JlZ2luICkKKyAgICAgICAgY2xlYXIoKTsKKworICAgIHJldHVybiAqdGhpczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6dHJpbV9yaWdodCggYmFzaWNfY3N0cmluZyBleGNsdXNpb25zICkKK3sKKyAgICBpZiggZXhjbHVzaW9ucy5pc19lbXB0eSgpICkKKyAgICAgICAgZXhjbHVzaW9ucyA9IGRlZmF1bHRfdHJpbV9leCgpOworCisgICAgaXRlcmF0b3IgaXQ7CisKKyAgICBmb3IoIGl0ID0gZW5kKCktMTsgaXQgIT0gYmVnaW4oKS0xOyAtLWl0ICkgeworICAgICAgICBpZiggc2VsZl90eXBlOjp0cmFpdHNfdHlwZTo6ZmluZCggZXhjbHVzaW9ucy5iZWdpbigpLCAgZXhjbHVzaW9ucy5zaXplKCksICppdCApID09IHJlaW50ZXJwcmV0X2Nhc3Q8cG9pbnRlcj4oMCkgKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIAorICAgIHJldHVybiB0cmltX3JpZ2h0KCBpdCsxICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+JgorYmFzaWNfY3N0cmluZzxDaGFyVD46OnRyaW0oIGJhc2ljX2NzdHJpbmcgZXhjbHVzaW9ucyApCit7CisgICAgdHJpbV9sZWZ0KCBleGNsdXNpb25zICk7CisgICAgdHJpbV9yaWdodCggZXhjbHVzaW9ucyApOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY19jc3RyaW5nPENoYXJUPiYKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpvcGVyYXRvcj0oIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IGNvbnN0JiBzICkKK3sKKyAgICBtX2JlZ2luID0gcy5tX2JlZ2luOworICAgIG1fZW5kICAgPSBzLm1fZW5kOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY19jc3RyaW5nPENoYXJUPiYKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpvcGVyYXRvcj0oIHN0ZF9zdHJpbmcgY29uc3QmIHMgKQoreworICAgIHJldHVybiAqdGhpcyA9IHNlbGZfdHlwZSggcyApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY19jc3RyaW5nPENoYXJUPiYKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpvcGVyYXRvcj0oIHBvaW50ZXIgcyApCit7CisgICAgcmV0dXJuICp0aGlzID0gc2VsZl90eXBlKCBzICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+JgorYmFzaWNfY3N0cmluZzxDaGFyVD46OmFzc2lnbiggYmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHMsIHNpemVfdHlwZSBwb3MsIHNpemVfdHlwZSBsZW4gKQoreworICAgIHJldHVybiAqdGhpcyA9IHNlbGZfdHlwZSggcy5tX2JlZ2luICsgcG9zLCBsZW4gKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6YXNzaWduKCBzdGRfc3RyaW5nIGNvbnN0JiBzICkKK3sKKyAgICByZXR1cm4gKnRoaXMgPSBzZWxmX3R5cGUoIHMgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6YXNzaWduKCBzdGRfc3RyaW5nIGNvbnN0JiBzLCBzaXplX3R5cGUgcG9zLCBzaXplX3R5cGUgbGVuICkKK3sKKyAgICByZXR1cm4gKnRoaXMgPSBzZWxmX3R5cGUoIHMuY19zdHIoKSArIHBvcywgbGVuICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+JgorYmFzaWNfY3N0cmluZzxDaGFyVD46OmFzc2lnbiggcG9pbnRlciBzICkKK3sKKyAgICByZXR1cm4gKnRoaXMgPSBzZWxmX3R5cGUoIHMgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYmFzaWNfY3N0cmluZzxDaGFyVD4mCitiYXNpY19jc3RyaW5nPENoYXJUPjo6YXNzaWduKCBwb2ludGVyIHMsIHNpemVfdHlwZSBsZW4gKQoreworICAgIHJldHVybiAqdGhpcyA9IHNlbGZfdHlwZSggcywgbGVuICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+JgorYmFzaWNfY3N0cmluZzxDaGFyVD46OmFzc2lnbiggcG9pbnRlciBmLCBwb2ludGVyIGwgKQoreworICAgIHJldHVybiAqdGhpcyA9IHNlbGZfdHlwZSggZiwgbCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSB2b2lkCitiYXNpY19jc3RyaW5nPENoYXJUPjo6c3dhcCggYmFzaWNfY3N0cmluZzxDaGFyVD4mIHMgKQoreworICAgIC8vIGRvIG5vdCB3YW50IHRvIGluY2x1ZGUgYWxvZ3JpdGhtCisgICAgcG9pbnRlciB0bXAxICAgID0gbV9iZWdpbjsKKyAgICBwb2ludGVyIHRtcDIgICAgPSBtX2VuZDsKKworICAgIG1fYmVnaW4gICAgICAgICA9IHMubV9iZWdpbjsKKyAgICBtX2VuZCAgICAgICAgICAgPSBzLm1fZW5kOworCisgICAgcy5tX2JlZ2luICAgICAgID0gdG1wMTsKKyAgICBzLm1fZW5kICAgICAgICAgPSB0bXAyOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSB0eXBlbmFtZSBiYXNpY19jc3RyaW5nPENoYXJUPjo6aXRlcmF0b3IKK2Jhc2ljX2NzdHJpbmc8Q2hhclQ+OjpiZWdpbigpCit7CisgICAgcmV0dXJuIG1fYmVnaW47Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+Ojpjb25zdF9pdGVyYXRvcgorYmFzaWNfY3N0cmluZzxDaGFyVD46OmJlZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iZWdpbjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgdHlwZW5hbWUgYmFzaWNfY3N0cmluZzxDaGFyVD46Oml0ZXJhdG9yCitiYXNpY19jc3RyaW5nPENoYXJUPjo6ZW5kKCkKK3sKKyAgICByZXR1cm4gbV9lbmQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+Ojpjb25zdF9pdGVyYXRvcgorYmFzaWNfY3N0cmluZzxDaGFyVD46OmVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW5kOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSB0eXBlbmFtZSBiYXNpY19jc3RyaW5nPENoYXJUPjo6c2l6ZV90eXBlCitiYXNpY19jc3RyaW5nPENoYXJUPjo6ZmluZCggYmFzaWNfY3N0cmluZzxDaGFyVD4gc3RyICkgY29uc3QKK3sKKyAgICBpZiggc3RyLmlzX2VtcHR5KCkgfHwgc3RyLnNpemUoKSA+IHNpemUoKSApCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3R5cGU+KG5wb3MpOworCisgICAgY29uc3RfaXRlcmF0b3IgaXQgICA9IGJlZ2luKCk7CisgICAgY29uc3RfaXRlcmF0b3IgbGFzdCA9IGVuZCgpIC0gc3RyLnNpemUoKSArIDE7CisKKyAgICB3aGlsZSggaXQgIT0gbGFzdCApIHsKKyAgICAgICAgaWYoIHRyYWl0c190eXBlOjpjb21wYXJlKCBpdCwgc3RyLmJlZ2luKCksIHN0ci5zaXplKCkgKSA9PSAwICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICsraXQ7CisgICAgfQorCisgICAgcmV0dXJuIGl0ID09IGxhc3QgPyBzdGF0aWNfY2FzdDxzaXplX3R5cGU+KG5wb3MpIDogaXQgLSBiZWdpbigpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSB0eXBlbmFtZSBiYXNpY19jc3RyaW5nPENoYXJUPjo6c2l6ZV90eXBlCitiYXNpY19jc3RyaW5nPENoYXJUPjo6cmZpbmQoIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IHN0ciApIGNvbnN0Cit7CisgICAgaWYoIHN0ci5pc19lbXB0eSgpIHx8IHN0ci5zaXplKCkgPiBzaXplKCkgKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90eXBlPihucG9zKTsKKworICAgIGNvbnN0X2l0ZXJhdG9yIGl0ICAgPSBlbmQoKSAtIHN0ci5zaXplKCk7CisgICAgY29uc3RfaXRlcmF0b3IgbGFzdCA9IGJlZ2luKCktMTsKKworICAgIHdoaWxlKCBpdCAhPSBsYXN0ICkgeworICAgICAgICBpZiggdHJhaXRzX3R5cGU6OmNvbXBhcmUoIGl0LCBzdHIuYmVnaW4oKSwgc3RyLnNpemUoKSApID09IDAgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLS1pdDsKKyAgICB9CisKKyAgICByZXR1cm4gaXQgPT0gbGFzdCA/IHN0YXRpY19jYXN0PHNpemVfdHlwZT4obnBvcykgOiBzdGF0aWNfY2FzdDxzaXplX3R5cGU+KGl0IC0gYmVnaW4oKSk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+CitiYXNpY19jc3RyaW5nPENoYXJUPjo6c3Vic3RyKCBzaXplX3R5cGUgYmVnX2luZGV4LCBzaXplX3R5cGUgZW5kX2luZGV4ICkgY29uc3QKK3sKKyAgICByZXR1cm4gYmVnX2luZGV4ID4gc2l6ZSgpCisgICAgICAgICAgICA/ICAgICAgIHNlbGZfdHlwZSgpCisgICAgICAgICAgICA6IGVuZF9pbmRleCA+IHNpemUoKQorICAgICAgICAgICAgICAgID8gICBzZWxmX3R5cGUoIG1fYmVnaW4gKyBiZWdfaW5kZXgsIG1fZW5kICkKKyAgICAgICAgICAgICAgICA6ICAgc2VsZl90eXBlKCBtX2JlZ2luICsgYmVnX2luZGV4LCBtX2JlZ2luICsgZW5kX2luZGV4ICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+CitiYXNpY19jc3RyaW5nPENoYXJUPjo6ZGVmYXVsdF90cmltX2V4KCkKK3sKKyAgICBzdGF0aWMgQ2hhclQgd3NbM10gPSB7IENoYXJUKCcgJyksIENoYXJUKCdcdCcpLCBDaGFyVCgnXG4nKSB9OyAvLyAhISB3aWRlIGNhc2UKKworICAgIHJldHVybiBzZWxmX3R5cGUoIHdzLCAzICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBjb21wYXJpc29uIG9wZXJhdG9ycyAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQxLHR5cGVuYW1lIENoYXJUMj4KK2lubGluZSBib29sCitvcGVyYXRvcj09KCBiYXNpY19jc3RyaW5nPENoYXJUMT4gY29uc3QmIHMxLCBiYXNpY19jc3RyaW5nPENoYXJUMj4gY29uc3QmIHMyICkKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQxPjo6dHJhaXRzX3R5cGUgdHJhaXRzX3R5cGU7CisgICAgcmV0dXJuIHMxLnNpemUoKSA9PSBzMi5zaXplKCkgJiYgCisgICAgICAgICAgICAgICB0cmFpdHNfdHlwZTo6Y29tcGFyZSggczEuYmVnaW4oKSwgczIuYmVnaW4oKSwgczEuc2l6ZSgpICkgPT0gMDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQxLHR5cGVuYW1lIENoYXJUMj4KK2lubGluZSBib29sCitvcGVyYXRvcj09KCBiYXNpY19jc3RyaW5nPENoYXJUMT4gY29uc3QmIHMxLCBDaGFyVDIqIHMyICkKK3sKKyNpZiAhZGVmaW5lZChfX0RNQ19fKQorICAgIHJldHVybiBzMSA9PSBiYXNpY19jc3RyaW5nPENoYXJUMj4oIHMyICk7CisjZWxzZQorICAgIHJldHVybiBzMSA9PSBiYXNpY19jc3RyaW5nPENoYXJUMiBjb25zdD4oIHMyICk7CisjZW5kaWYKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgYm9vbAorb3BlcmF0b3I9PSggYmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHMxLCB0eXBlbmFtZSBiYXNpY19jc3RyaW5nPENoYXJUPjo6c3RkX3N0cmluZyBjb25zdCYgczIgKQoreworICAgIHJldHVybiBzMSA9PSBiYXNpY19jc3RyaW5nPENoYXJUPiggczIgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQxLHR5cGVuYW1lIENoYXJUMj4KK2lubGluZSBib29sCitvcGVyYXRvcj09KCBDaGFyVDEqIHMyLCBiYXNpY19jc3RyaW5nPENoYXJUMj4gY29uc3QmIHMxICkKK3sKKyAgICByZXR1cm4gczEgPT0gczI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yPT0oIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+OjpzdGRfc3RyaW5nIGNvbnN0JiBzMiwgYmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHMxICkKK3sKKyAgICByZXR1cm4gczEgPT0gczI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yIT0oIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IGNvbnN0JiBzMSwgQ2hhclQqIHMyICkKK3sKKyAgICByZXR1cm4gIShzMSA9PSBzMik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yIT0oIENoYXJUKiBzMiwgYmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHMxICkKK3sKKyAgICByZXR1cm4gIShzMSA9PSBzMik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yIT0oIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IGNvbnN0JiBzMSwgYmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHMyICkKK3sKKyAgICByZXR1cm4gIShzMSA9PSBzMik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yIT0oIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IGNvbnN0JiBzMSwgdHlwZW5hbWUgYmFzaWNfY3N0cmluZzxDaGFyVD46OnN0ZF9zdHJpbmcgY29uc3QmIHMyICkKK3sKKyAgICByZXR1cm4gIShzMSA9PSBzMik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yIT0oIHR5cGVuYW1lIGJhc2ljX2NzdHJpbmc8Q2hhclQ+OjpzdGRfc3RyaW5nIGNvbnN0JiBzMiwgYmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHMxICkKK3sKKyAgICByZXR1cm4gIShzMSA9PSBzMik7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgIGZpcnN0X2NoYXIgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgdHlwZW5hbWUgYmFzaWNfY3N0cmluZzxDaGFyVD46OnZhbHVlX3R5cGUKK2ZpcnN0X2NoYXIoIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IHNvdXJjZSApCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNpY19jc3RyaW5nPENoYXJUPjo6dmFsdWVfdHlwZSBzdHJpbmdfdmFsdWVfdHlwZTsKKworICAgIHJldHVybiBzb3VyY2UuaXNfZW1wdHkoKSA/IHN0YXRpY19jYXN0PHN0cmluZ192YWx1ZV90eXBlPigwKSA6ICpzb3VyY2UuYmVnaW4oKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgbGFzdF9jaGFyICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSB0eXBlbmFtZSBiYXNpY19jc3RyaW5nPENoYXJUPjo6dmFsdWVfdHlwZQorbGFzdF9jaGFyKCBiYXNpY19jc3RyaW5nPENoYXJUPiBzb3VyY2UgKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgYmFzaWNfY3N0cmluZzxDaGFyVD46OnZhbHVlX3R5cGUgc3RyaW5nX3ZhbHVlX3R5cGU7CisKKyAgICByZXR1cm4gc291cmNlLmlzX2VtcHR5KCkgPyBzdGF0aWNfY2FzdDxzdHJpbmdfdmFsdWVfdHlwZT4oMCkgOiAqKHNvdXJjZS5lbmQoKS0xKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgYXNzaWduX29wICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVDEsIHR5cGVuYW1lIENoYXJUMj4KK2lubGluZSB2b2lkCithc3NpZ25fb3AoIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXJUMT4mIHRhcmdldCwgYmFzaWNfY3N0cmluZzxDaGFyVDI+IHNyYywgaW50ICkKK3sKKyAgICB0YXJnZXQuYXNzaWduKCBzcmMuYmVnaW4oKSwgc3JjLnNpemUoKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0JBU0lDX0NTVFJJTkdfSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZ19md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZ19md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0Y2IzM2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9iYXNpY19jc3RyaW5nX2Z3ZC5ocHAKQEAgLTAsMCArMSw0MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNC0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBiYXNpY19jc3RyaW5nIGNsYXNzIHdyYXAgQyBzdHJpbmcgYW5kIHByb3ZpZGUgc3RkX3N0cmluZyBsaWtlIAorLy8gICAgICAgICAgICAgICAgaW50ZXJmYWNlCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0JBU0lDX0NTVFJJTkdfRldEX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9CQVNJQ19DU1RSSU5HX0ZXRF9IUFBfMDcxODk0R0VSCisKKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4gY2xhc3MgICAgICBiYXNpY19jc3RyaW5nOwordHlwZWRlZiBiYXNpY19jc3RyaW5nPGNoYXIgY29uc3Q+ICAgY29uc3Rfc3RyaW5nOworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19ERUNDWFhfVkVSLCBCT09TVF9URVNURURfQVQoNjA1OTAwNDEpKQordHlwZWRlZiBjb25zdF9zdHJpbmcgICAgICAgICAgICAgICAgbGl0ZXJhbF9zdHJpbmc7CisjZWxzZQordHlwZWRlZiBjb25zdF9zdHJpbmcgY29uc3QgICAgICAgICAgbGl0ZXJhbF9zdHJpbmc7CisjZW5kaWYKKwordHlwZWRlZiBjaGFyIGNvbnN0KiBjb25zdCAgICAgICAgICAgY19saXRlcmFsX3N0cmluZzsKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0JBU0lDX0NTVFJJTkdfRldEX0hQUF8wNzE4OTRHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmNzX2NoYXJfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jjc19jaGFyX3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY1NzFmNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jjc19jaGFyX3RyYWl0cy5ocHAKQEAgLTAsMCArMSwxNTAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDQtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZ2VuZXJpYyBjaGFyIHRyYWl0cyBjbGFzczsgd3JhcHMgc3RkOjpjaGFyX3RyYWl0cworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9CQ1NfQ0hBUl9UUkFJVFNfSFBQXzA3MTg5NEdFUgorI2RlZmluZSBCT09TVF9URVNUX0JDU19DSEFSX1RSQUlUU19IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxzdHJpbmc+ICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGQ6OmNoYXJfdHJhaXRzCisjaW5jbHVkZSA8Y3N0ZGRlZj4gICAgICAgICAgICAgICAgICAgICAgLy8gc3RkOjpzaXplX3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSB1dF9kZXRhaWwgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4gc3RydWN0IGJjc19iYXNlX2NoYXIgICAgICAgICAgIHsgdHlwZWRlZiBDaGFyVCB0eXBlOyB9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBiY3NfYmFzZV9jaGFyPGNoYXIgY29uc3Q+ICAgICAgICAgICAgIHsgdHlwZWRlZiBjaGFyIHR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBiY3NfYmFzZV9jaGFyPHVuc2lnbmVkIGNoYXI+ICAgICAgICAgIHsgdHlwZWRlZiBjaGFyIHR5cGU7IH07CisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NTEpKQordGVtcGxhdGU8PiBzdHJ1Y3QgYmNzX2Jhc2VfY2hhcjx1bnNpZ25lZCBjaGFyIGNvbnN0PiAgICB7IHR5cGVkZWYgY2hhciB0eXBlOyB9OworI2VuZGlmCisKK3RlbXBsYXRlPD4gc3RydWN0IGJjc19iYXNlX2NoYXI8d2NoYXJfdCBjb25zdD4gICAgICAgICAgeyB0eXBlZGVmIHdjaGFyX3QgdHlwZTsgfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgYmNzX2NoYXJfdHJhaXRzICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK3N0cnVjdCBiY3NfY2hhcl90cmFpdHNfaW1wbAoreworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQorICAgIHR5cGVkZWYgQ2hhclQgY29uc3QgY29uc3RfY2hhcjsKKyNlbHNlCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX2NvbnN0PENoYXJUPjo6dHlwZSBjb25zdF9jaGFyOworI2VuZGlmCisgICAgc3RhdGljIGJvb2wgZXEoIENoYXJUIGMxLCBDaGFyVCBjMiApCisgICAgeworICAgICAgICByZXR1cm4gYzEgPT0gYzI7CisgICAgfQorICAgIHN0YXRpYyBib29sIGx0KCBDaGFyVCBjMSwgQ2hhclQgYzIgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGMxIDwgYzI7CisgICAgfQorCisgICAgc3RhdGljIGludCBjb21wYXJlKCBjb25zdF9jaGFyKiBjc3RyMSwgY29uc3RfY2hhciogY3N0cjIsIHN0ZDo6c2l6ZV90IG4gKQorICAgIHsKKyAgICAgICAgd2hpbGUoIG4gPiAwICkgeworICAgICAgICAgICAgaWYoICFlcSggKmNzdHIxLCAqY3N0cjIgKSApCisgICAgICAgICAgICAgICAgcmV0dXJuIGx0KCAqY3N0cjEsICpjc3RyMiApID8gLTEgOiAxOworICAgICAgICAgICAgKytjc3RyMTsKKyAgICAgICAgICAgICsrY3N0cjI7CisgICAgICAgICAgICAtLW47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpzaXplX3QgbGVuZ3RoKCBjb25zdF9jaGFyKiBjc3RyICkKKyAgICB7CisgICAgICAgIGNvbnN0X2NoYXIgbnVsbF9jaGFyID0gQ2hhclQoKTsKKworICAgICAgICBjb25zdF9jaGFyKiBwdHIgPSBjc3RyOworICAgICAgICB3aGlsZSggIWVxKCAqcHRyLCBudWxsX2NoYXIgKSApCisgICAgICAgICAgICArK3B0cjsKKworICAgICAgICByZXR1cm4gcHRyIC0gY3N0cjsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RfY2hhciogZmluZCggY29uc3RfY2hhciogcywgc3RkOjpzaXplX3QgbiwgQ2hhclQgYyApCisgICAgeworICAgICAgICB3aGlsZSggbiA+IDAgKSB7CisgICAgICAgICAgICBpZiggZXEoICpzLCBjICkgKQorICAgICAgICAgICAgICAgIHJldHVybiBzOworCisgICAgICAgICAgICArK3M7CisgICAgICAgICAgICAtLW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfTsKKworI2lmZGVmIEJPT1NUX0NMQVNTSUNfSU9TVFJFQU1TCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK3N0cnVjdCBjaGFyX3RyYWl0c193aXRoX2ZpbmQgOiBzdGQ6OnN0cmluZ19jaGFyX3RyYWl0czxDaGFyVD4geworICAgIHN0YXRpYyBDaGFyVCBjb25zdCogZmluZCggQ2hhclQgY29uc3QqIHMsIHN0ZDo6c2l6ZV90IG4sIENoYXJUIGMgKQorICAgIHsKKyAgICAgICAgd2hpbGUoIG4gPiAwICkgeworICAgICAgICAgICAgaWYoIGVxKCAqcywgYyApICkKKyAgICAgICAgICAgICAgICByZXR1cm4gczsKKworICAgICAgICAgICAgKytzOworICAgICAgICAgICAgLS1uOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGJjc19jaGFyX3RyYWl0c19pbXBsPGNoYXI+IDogY2hhcl90cmFpdHNfd2l0aF9maW5kPGNoYXI+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgYmNzX2NoYXJfdHJhaXRzX2ltcGw8d2NoYXJfdD4gOiBjaGFyX3RyYWl0c193aXRoX2ZpbmQ8d2NoYXJfdD4ge307CisjZWxzZQordGVtcGxhdGU8PiBzdHJ1Y3QgYmNzX2NoYXJfdHJhaXRzX2ltcGw8Y2hhcj4gOiBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+IHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgYmNzX2NoYXJfdHJhaXRzX2ltcGw8d2NoYXJfdD4gOiBzdGQ6OmNoYXJfdHJhaXRzPHdjaGFyX3Q+IHt9OworI2VuZGlmCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgorY2xhc3MgYmNzX2NoYXJfdHJhaXRzIDogcHVibGljIGJjc19jaGFyX3RyYWl0c19pbXBsPENoYXJUPiB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSB1dF9kZXRhaWw6OmJjc19iYXNlX2NoYXI8Q2hhclQ+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlX2Jhc2VfY2hhcjsKK3B1YmxpYzoKKyNpZmRlZiBCT09TVF9DTEFTU0lDX0lPU1RSRUFNUworICAgIHR5cGVkZWYgc3RkOjpiYXNpY19zdHJpbmc8dGhlX2Jhc2VfY2hhciwgc3RkOjpzdHJpbmdfY2hhcl90cmFpdHM8dGhlX2Jhc2VfY2hhcj4gPiAgIHN0ZF9zdHJpbmc7CisjZWxzZQorICAgIHR5cGVkZWYgc3RkOjpiYXNpY19zdHJpbmc8dGhlX2Jhc2VfY2hhciwgc3RkOjpjaGFyX3RyYWl0czx0aGVfYmFzZV9jaGFyPiA+ICAgICAgICAgIHN0ZF9zdHJpbmc7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIHV0X2RldGFpbAorCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0JDU19DSEFSX1RSQUlUU19IUFBfMDcxODk0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9jb21wYXJlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2NvbXBhcmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiOWM4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9jb21wYXJlLmhwcApAQCAtMCwwICsxLDExNSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNC0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBjbGFzcyBiYXNpY19jc3RyaW5nIGNvbXBhcmlzb25zIGltcGxlbWVudGF0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiAgQk9PU1RfVEVTVF9CQVNJQ19DU1RSSU5HX0NPTVBBUkVfSFBQXzA3MTg5NEdFUgorI2RlZmluZSAgQk9PU1RfVEVTVF9CQVNJQ19DU1RSSU5HX0NPTVBBUkVfSFBQXzA3MTg5NEdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jhc2ljX2NzdHJpbmcuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPGNjdHlwZT4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworIyBpZiBkZWZpbmVkKEJPT1NUX05PX1NURENfTkFNRVNQQUNFKSAmJiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDw9IDB4NTcwKQorbmFtZXNwYWNlIHN0ZCB7IHVzaW5nIDo6dG91cHBlcjsgfQorIyBlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgIGNhc2VfaW5zX2NvbXBhcmUgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKwordGVtcGxhdGU8Y2xhc3MgQ2hhclQ+CitzdHJ1Y3QgY2FzZV9pbnMKK3sKKyAgICBzdGF0aWMgYm9vbCAgICAgICAgIGVxKCBDaGFyVCBjMSwgQ2hhclQgYzIgKSB7IHJldHVybiAoc3RkOjp0b3VwcGVyKSggYzEgKSA9PSAoc3RkOjp0b3VwcGVyKSggYzIgKTsgfQorICAgIHN0YXRpYyBib29sICAgICAgICAgbHQoIENoYXJUIGMxLCBDaGFyVCBjMiApIHsgcmV0dXJuIChzdGQ6OnRvdXBwZXIpKCBjMSApIDwgIChzdGQ6OnRvdXBwZXIpKCBjMiApOyB9CisKKyAgICBzdGF0aWMgaW50ICAgICAgICAgIGNvbXBhcmUoIENoYXJUIGNvbnN0KiBzMSwgQ2hhclQgY29uc3QqIHMyLCBzdGQ6OnNpemVfdCBuICkKKyAgICB7CisgICAgICAgIGZvciggc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBuOyArK2kgKSB7CisgICAgICAgICAgICBpZiggIWVxKCBzMVtpXSwgczJbaV0gKSApCisgICAgICAgICAgICAgICAgcmV0dXJuIGx0KCBzMVtpXSwgczJbaV0gKSA/IC0xIDogMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgY2FzZV9pbnNfZXEgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTxjbGFzcyBDaGFyVD4KK2lubGluZSBib29sCitjYXNlX2luc19lcSggYmFzaWNfY3N0cmluZzxDaGFyVD4geCwgYmFzaWNfY3N0cmluZzxDaGFyVD4geSApCit7CisgICAgcmV0dXJuIHguc2l6ZSgpID09IHkuc2l6ZSgpICYmIHV0X2RldGFpbDo6Y2FzZV9pbnM8Q2hhclQ+Ojpjb21wYXJlKCB4LmJlZ2luKCksIHkuYmVnaW4oKSwgeC5zaXplKCkgKSA9PSAwOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgIGNhc2VfaW5zX2xlc3MgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPGNsYXNzIENoYXJUPgorY2xhc3MgY2FzZV9pbnNfbGVzcyA6IHB1YmxpYyBzdGQ6OmJpbmFyeV9mdW5jdGlvbjxiYXNpY19jc3RyaW5nPENoYXJUPixiYXNpY19jc3RyaW5nPENoYXJUPixib29sPgoreworcHVibGljOgorICAgIGJvb2wgb3BlcmF0b3IoKSggYmFzaWNfY3N0cmluZzxDaGFyVD4geCwgYmFzaWNfY3N0cmluZzxDaGFyVD4geSApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4geC5zaXplKCkgIT0geS5zaXplKCkgCisgICAgICAgICAgICAgICAgPyB4LnNpemUoKSA8IHkuc2l6ZSgpIAorICAgICAgICAgICAgICAgIDogdXRfZGV0YWlsOjpjYXNlX2luczxDaGFyVD46OmNvbXBhcmUoIHguYmVnaW4oKSwgeS5iZWdpbigpLCB4LnNpemUoKSApIDwgMDsKKyAgICB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICBvcGVyYXRvciA8ICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPGNsYXNzIENoYXJUPgoraW5saW5lIGJvb2wKK29wZXJhdG9yIDwoIG5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmJhc2ljX2NzdHJpbmc8Q2hhclQ+IGNvbnN0JiB4LAorICAgICAgICAgICAgbmRuYm9vc3Q6OnVuaXRfdGVzdDo6YmFzaWNfY3N0cmluZzxDaGFyVD4gY29uc3QmIHkgKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnVuaXRfdGVzdDo6YmFzaWNfY3N0cmluZzxDaGFyVD46OnRyYWl0c190eXBlIHRyYWl0c190eXBlOworICAgIHJldHVybiB4LnNpemUoKSAhPSB5LnNpemUoKSAKKyAgICAgICAgICAgID8geC5zaXplKCkgPCB5LnNpemUoKSAKKyAgICAgICAgICAgIDogdHJhaXRzX3R5cGU6OmNvbXBhcmUoIHguYmVnaW4oKSwgeS5iZWdpbigpLCB4LnNpemUoKSApIDwgMDsKK30KKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9CQVNJQ19DU1RSSU5HX0NPTVBBUkVfSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYjZkMWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9pby5ocHAKQEAgLTAsMCArMSw3MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNC0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBiYXNpY19jc3RyaW5nIGkvbyBpbXBsZW1lbnRhdGlvbgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgIEJPT1NUX1RFU1RfQkFTSUNfQ1NUUklOR19JT19IUFBfMDcxODk0R0VSCisjZGVmaW5lICBCT09TVF9URVNUX0JBU0lDX0NTVFJJTkdfSU9fSFBQXzA3MTg5NEdFUgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jhc2ljX2NzdHJpbmcuaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxpb3Nmd2Q+CisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworI2lmZGVmIEJPT1NUX0NMQVNTSUNfSU9TVFJFQU1TCisKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHN0ZDo6b3N0cmVhbSYKK29wZXJhdG9yPDwoIHN0ZDo6b3N0cmVhbSYgb3MsIGJhc2ljX2NzdHJpbmc8Q2hhclQ+IGNvbnN0JiBzdHIgKQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgdXRfZGV0YWlsOjpiY3NfYmFzZV9jaGFyPENoYXJUPjo6dHlwZSBjaGFyX3R5cGU7CisgICAgY2hhcl90eXBlIGNvbnN0KiBjb25zdCBiZWcgPSByZWludGVycHJldF9jYXN0PGNoYXJfdHlwZSBjb25zdCogY29uc3Q+KCBzdHIuYmVnaW4oKSApOworICAgIGNoYXJfdHlwZSBjb25zdCogY29uc3QgZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyX3R5cGUgY29uc3QqIGNvbnN0Piggc3RyLmVuZCgpICk7CisgICAgb3MgPDwgc3RkOjpiYXNpY19zdHJpbmc8Y2hhcl90eXBlPiggYmVnLCBlbmQgLSBiZWcgKTsKKworICAgIHJldHVybiBvczsKK30KKworI2Vsc2UKKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQxLCB0eXBlbmFtZSBUcix0eXBlbmFtZSBDaGFyVDI+CitpbmxpbmUgc3RkOjpiYXNpY19vc3RyZWFtPENoYXJUMSxUcj4mCitvcGVyYXRvcjw8KCBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhclQxLFRyPiYgb3MsIGJhc2ljX2NzdHJpbmc8Q2hhclQyPiBjb25zdCYgc3RyICkKK3sKKyAgICBDaGFyVDEgY29uc3QqIGNvbnN0IGJlZyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q2hhclQxIGNvbnN0Kj4oIHN0ci5iZWdpbigpICk7IC8vICEhCisgICAgQ2hhclQxIGNvbnN0KiBjb25zdCBlbmQgPSByZWludGVycHJldF9jYXN0PENoYXJUMSBjb25zdCo+KCBzdHIuZW5kKCkgKTsKKyAgICBvcyA8PCBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyVDEsVHI+KCBiZWcsIGVuZCAtIGJlZyApOworCisgICAgcmV0dXJuIG9zOworfQorCisjZW5kaWYKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworCit9IC8vIG5hbWVzcGFjZSB1bml0X3Rlc3QKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0JBU0lDX0NTVFJJTkdfSU9fSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2NhbGxiYWNrLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9jYWxsYmFjay5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFlMjNmMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9jYWxsYmFjay5ocHAKQEAgLTAsMCArMSwzMTAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9DQUxMQkFDS18wMjA1MDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9DQUxMQkFDS18wMjA1MDVHRVIKKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zaGFyZWRfcHRyLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKSB8fCBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX0lOVEVMLCA8PSA3MDApCisjICBkZWZpbmUgQk9PU1RfQ0FMTEJBQ0tfRVhQTElDSVRfQ09QWV9DT05TVFJVQ1RPUgorI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKworc3RydWN0IHVudXNlZCB7fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUj4KK3N0cnVjdCBpbnZva2VyIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIFIgICAgICAgaW52b2tlKCBGdW5jdG9yJiBmICkgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBmKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yLCB0eXBlbmFtZSBUMT4KKyAgICBSICAgICAgIGludm9rZSggRnVuY3RvciYgZiwgVDEgdDEgKSAgICAgICAgICAgICAgICAgeyByZXR1cm4gZiggdDEgKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3IsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KKyAgICBSICAgICAgIGludm9rZSggRnVuY3RvciYgZiwgVDEgdDEsIFQyIHQyICkgICAgICAgICAgeyByZXR1cm4gZiggdDEsIHQyICk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPgorICAgIFIgICAgICAgaW52b2tlKCBGdW5jdG9yJiBmLCBUMSB0MSwgVDIgdDIsIFQzIHQzICkgICB7IHJldHVybiBmKCB0MSwgdDIsIHQzICk7IH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbnZva2VyPHVudXNlZD4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdW51c2VkICBpbnZva2UoIEZ1bmN0b3ImIGYgKSAgICAgICAgICAgICAgICAgICAgICAgIHsgZigpOyByZXR1cm4gdW51c2VkKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yLCB0eXBlbmFtZSBUMT4KKyAgICB1bnVzZWQgIGludm9rZSggRnVuY3RvciYgZiwgVDEgdDEgKSAgICAgICAgICAgICAgICAgeyBmKCB0MSApOyByZXR1cm4gdW51c2VkKCk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgICAgdW51c2VkICBpbnZva2UoIEZ1bmN0b3ImIGYsIFQxIHQxLCBUMiB0MiApICAgICAgICAgIHsgZiggdDEsIHQyICk7IHJldHVybiB1bnVzZWQoKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3IsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+CisgICAgdW51c2VkICBpbnZva2UoIEZ1bmN0b3ImIGYsIFQxIHQxLCBUMiB0MiwgVDMgdDMgKSAgIHsgZiggdDEsIHQyLCB0MyApOyByZXR1cm4gdW51c2VkKCk7IH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHV0X2RldGFpbAorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgdW5pdF90ZXN0OjpjYWxsYmFjazAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSB1dF9kZXRhaWwgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSPgorc3RydWN0IGNhbGxiYWNrMF9pbXBsIHsKKyAgICB2aXJ0dWFsIH5jYWxsYmFjazBfaW1wbCgpIHt9CisKKyAgICB2aXJ0dWFsIFIgaW52b2tlKCkgPSAwOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgRnVuY3Rvcj4KK3N0cnVjdCBjYWxsYmFjazBfaW1wbF90IDogY2FsbGJhY2swX2ltcGw8Uj4geworICAgIC8vIENvbnN0cnVjdG9yCisgICAgZXhwbGljaXQgY2FsbGJhY2swX2ltcGxfdCggRnVuY3RvciBmICkgOiBtX2YoIGYgKSB7fQorCisgICAgdmlydHVhbCBSIGludm9rZSgpIHsgcmV0dXJuIGludm9rZXI8Uj4oKS5pbnZva2UoIG1fZiApOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgRnVuY3RvciBtX2Y7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKwordGVtcGxhdGU8dHlwZW5hbWUgUiA9IHV0X2RldGFpbDo6dW51c2VkPgorY2xhc3MgY2FsbGJhY2swIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcnMKKyAgICBjYWxsYmFjazAoKSB7fQorI2lmZGVmIEJPT1NUX0NBTExCQUNLX0VYUExJQ0lUX0NPUFlfQ09OU1RSVUNUT1IKKyAgICBjYWxsYmFjazAoIGNhbGxiYWNrMCBjb25zdCYgcmhzICkgOiBtX2ltcGwoIHJocy5tX2ltcGwgKSB7fQorI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIGNhbGxiYWNrMCggRnVuY3RvciBmICkKKyAgICA6IG1faW1wbCggbmV3IHV0X2RldGFpbDo6Y2FsbGJhY2swX2ltcGxfdDxSLEZ1bmN0b3I+KCBmICkgKSB7fQorICAgIAorICAgIHZvaWQgICAgICAgIG9wZXJhdG9yPSggY2FsbGJhY2swIGNvbnN0JiByaHMgKSB7IG1faW1wbCA9IHJocy5tX2ltcGw7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCAgICAgICAgb3BlcmF0b3I9KCBGdW5jdG9yIGYgKSB7IG1faW1wbC5yZXNldCggbmV3IHV0X2RldGFpbDo6Y2FsbGJhY2swX2ltcGxfdDxSLEZ1bmN0b3I+KCBmICkgKTsgIH0KKworICAgIFIgICAgICAgICAgIG9wZXJhdG9yKCkoKSBjb25zdCB7IHJldHVybiBtX2ltcGwtPmludm9rZSgpOyB9CisKKyAgICBib29sICAgICAgICBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9pbXBsOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8dXRfZGV0YWlsOjpjYWxsYmFjazBfaW1wbDxSPiA+IG1faW1wbDsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICB1bml0X3Rlc3Q6OmNhbGxiYWNrMSAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIHV0X2RldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxPgorc3RydWN0IGNhbGxiYWNrMV9pbXBsIHsKKyAgICB2aXJ0dWFsIH5jYWxsYmFjazFfaW1wbCgpIHt9CisKKyAgICB2aXJ0dWFsIFIgaW52b2tlKCBUMSB0MSApID0gMDsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLHR5cGVuYW1lIEZ1bmN0b3I+CitzdHJ1Y3QgY2FsbGJhY2sxX2ltcGxfdCA6IGNhbGxiYWNrMV9pbXBsPFIsVDE+IHsKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0IGNhbGxiYWNrMV9pbXBsX3QoIEZ1bmN0b3IgZiApIDogbV9mKCBmICkge30KKworICAgIHZpcnR1YWwgUiBpbnZva2UoIFQxIHQxICkgeyByZXR1cm4gaW52b2tlcjxSPigpLmludm9rZSggbV9mLCB0MSApOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgRnVuY3RvciBtX2Y7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKwordGVtcGxhdGU8dHlwZW5hbWUgVDEsdHlwZW5hbWUgUiA9IHV0X2RldGFpbDo6dW51c2VkPgorY2xhc3MgY2FsbGJhY2sxIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcnMKKyAgICBjYWxsYmFjazEoKSB7fQorI2lmZGVmIEJPT1NUX0NBTExCQUNLX0VYUExJQ0lUX0NPUFlfQ09OU1RSVUNUT1IKKyAgICBjYWxsYmFjazEoIGNhbGxiYWNrMSBjb25zdCYgcmhzICkgOiBtX2ltcGwoIHJocy5tX2ltcGwgKSB7fQorI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIGNhbGxiYWNrMSggRnVuY3RvciBmICkKKyAgICA6IG1faW1wbCggbmV3IHV0X2RldGFpbDo6Y2FsbGJhY2sxX2ltcGxfdDxSLFQxLEZ1bmN0b3I+KCBmICkgKSB7fQorCisgICAgdm9pZCAgICAgICAgb3BlcmF0b3I9KCBjYWxsYmFjazEgY29uc3QmIHJocyApIHsgbV9pbXBsID0gcmhzLm1faW1wbDsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkICAgICAgICBvcGVyYXRvcj0oIEZ1bmN0b3IgZiApIHsgbV9pbXBsLnJlc2V0KCBuZXcgdXRfZGV0YWlsOjpjYWxsYmFjazFfaW1wbF90PFIsVDEsRnVuY3Rvcj4oIGYgKSApOyAgfQorCisgICAgUiAgICAgICAgICAgb3BlcmF0b3IoKSggVDEgdDEgKSBjb25zdCB7IHJldHVybiBtX2ltcGwtPmludm9rZSggdDEgKTsgfQorCisgICAgYm9vbCAgICAgICAgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1faW1wbDsgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPHV0X2RldGFpbDo6Y2FsbGJhY2sxX2ltcGw8UixUMT4gPiBtX2ltcGw7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgdW5pdF90ZXN0OjpjYWxsYmFjazIgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSB1dF9kZXRhaWwgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSx0eXBlbmFtZSBUMj4KK3N0cnVjdCBjYWxsYmFjazJfaW1wbCB7CisgICAgdmlydHVhbCB+Y2FsbGJhY2syX2ltcGwoKSB7fQorCisgICAgdmlydHVhbCBSIGludm9rZSggVDEgdDEsIFQyIHQyICkgPSAwOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBGdW5jdG9yPgorc3RydWN0IGNhbGxiYWNrMl9pbXBsX3QgOiBjYWxsYmFjazJfaW1wbDxSLFQxLFQyPiB7CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCBjYWxsYmFjazJfaW1wbF90KCBGdW5jdG9yIGYgKSA6IG1fZiggZiApIHt9CisKKyAgICB2aXJ0dWFsIFIgaW52b2tlKCBUMSB0MSwgVDIgdDIgKSB7IHJldHVybiBpbnZva2VyPFI+KCkudGVtcGxhdGUgaW52b2tlPEZ1bmN0b3IsVDEsVDI+KCBtX2YsIHQxLCB0MiApOyB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgRnVuY3RvciBtX2Y7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSB1dF9kZXRhaWwKKwordGVtcGxhdGU8dHlwZW5hbWUgVDEsdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFIgPSB1dF9kZXRhaWw6OnVudXNlZD4KK2NsYXNzIGNhbGxiYWNrMiB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgY2FsbGJhY2syKCkge30KKyNpZmRlZiBCT09TVF9DQUxMQkFDS19FWFBMSUNJVF9DT1BZX0NPTlNUUlVDVE9SCisgICAgY2FsbGJhY2syKCBjYWxsYmFjazIgY29uc3QmIHJocyApIDogbV9pbXBsKCByaHMubV9pbXBsICkge30KKyNlbmRpZgorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICAgICAgICAgICAgICBjYWxsYmFjazIoIEZ1bmN0b3IgZiApIDogbV9pbXBsKCBuZXcgdXRfZGV0YWlsOjpjYWxsYmFjazJfaW1wbF90PFIsVDEsVDIsRnVuY3Rvcj4oIGYgKSApIHt9CisKKyAgICB2b2lkICAgICAgICBvcGVyYXRvcj0oIGNhbGxiYWNrMiBjb25zdCYgcmhzICkgeyBtX2ltcGwgPSByaHMubV9pbXBsOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHZvaWQgICAgICAgIG9wZXJhdG9yPSggRnVuY3RvciBmICkgeyBtX2ltcGwucmVzZXQoIG5ldyB1dF9kZXRhaWw6OmNhbGxiYWNrMl9pbXBsX3Q8UixUMSxUMixGdW5jdG9yPiggZiApICk7ICB9CisKKyAgICBSICAgICAgICAgICBvcGVyYXRvcigpKCBUMSB0MSwgVDIgdDIgKSBjb25zdCB7IHJldHVybiBtX2ltcGwtPmludm9rZSggdDEsIHQyICk7IH0KKworICAgIGJvb2wgICAgICAgIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2ltcGw7IH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjx1dF9kZXRhaWw6OmNhbGxiYWNrMl9pbXBsPFIsVDEsVDI+ID4gbV9pbXBsOworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIHVuaXRfdGVzdDo6Y2FsbGJhY2szICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgdXRfZGV0YWlsIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KK3N0cnVjdCBjYWxsYmFjazNfaW1wbCB7CisgICAgdmlydHVhbCB+Y2FsbGJhY2szX2ltcGwoKSB7fQorCisgICAgdmlydHVhbCBSIGludm9rZSggVDEgdDEsIFQyIHQyLCBUMyB0MyApID0gMDsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIEZ1bmN0b3I+CitzdHJ1Y3QgY2FsbGJhY2szX2ltcGxfdCA6IGNhbGxiYWNrM19pbXBsPFIsVDEsVDIsVDM+IHsKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0IGNhbGxiYWNrM19pbXBsX3QoIEZ1bmN0b3IgZiApIDogbV9mKCBmICkge30KKworICAgIHZpcnR1YWwgUiBpbnZva2UoIFQxIHQxLCBUMiB0MiwgVDMgdDMgKSB7IHJldHVybiBpbnZva2VyPFI+KCkuaW52b2tlKCBtX2YsIHQxLCB0MiwgdDMgKTsgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIEZ1bmN0b3IgbV9mOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgdXRfZGV0YWlsCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQxLHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgUiA9IHV0X2RldGFpbDo6dW51c2VkPgorY2xhc3MgY2FsbGJhY2szIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcnMKKyAgICBjYWxsYmFjazMoKSB7fQorI2lmZGVmIEJPT1NUX0NBTExCQUNLX0VYUExJQ0lUX0NPUFlfQ09OU1RSVUNUT1IKKyAgICBjYWxsYmFjazMoIGNhbGxiYWNrMyBjb25zdCYgcmhzICkgOiBtX2ltcGwoIHJocy5tX2ltcGwgKSB7fQorI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIGNhbGxiYWNrMyggRnVuY3RvciBmICkKKyAgICA6IG1faW1wbCggbmV3IHV0X2RldGFpbDo6Y2FsbGJhY2szX2ltcGxfdDxSLFQxLFQyLFQzLEZ1bmN0b3I+KCBmICkgKSB7fQorCisgICAgdm9pZCAgICAgICAgb3BlcmF0b3I9KCBjYWxsYmFjazMgY29uc3QmIHJocyApIHsgbV9pbXBsID0gcmhzLm1faW1wbDsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkICAgICAgICBvcGVyYXRvcj0oIEZ1bmN0b3IgZiApIHsgbV9pbXBsLnJlc2V0KCBuZXcgdXRfZGV0YWlsOjpjYWxsYmFjazNfaW1wbF90PFIsVDEsVDIsVDMsRnVuY3Rvcj4oIGYgKSApOyAgfQorCisgICAgUiAgICAgICAgICAgb3BlcmF0b3IoKSggVDEgdDEsIFQyIHQyLCBUMyB0MyApIGNvbnN0IHsgcmV0dXJuIG1faW1wbC0+aW52b2tlKCB0MSwgdDIsIHQzICk7IH0KKworICAgIGJvb2wgICAgICAgIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2ltcGw7IH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjx1dF9kZXRhaWw6OmNhbGxiYWNrM19pbXBsPFIsVDEsVDIsVDM+ID4gbV9pbXBsOworfTsKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyN1bmRlZiBCT09TVF9DQUxMQkFDS19FWFBMSUNJVF9DT1BZX0NPTlNUUlVDVE9SCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9DQUxMQkFDS18wMjA1MDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGExZjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2NsYXNzX3Byb3BlcnRpZXMuaHBwCkBAIC0wLDAgKzEsMjIxIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IHNpbXBsZSBmYWNpbGl0eSB0aGF0IG1pbW1pYyBub3Rpb24gb2YgcmVhZC1vbmx5IHJlYWQtd3JpdGUgCisvLyAgcHJvcGVydGllcyBpbiBDKysgY2xhc3Nlcy4gT3JpZ2luYWwgaWRlYSBieSBIZW5yaWsgUmF2bi4KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfQ0xBU1NfUFJPUEVSVElFU19IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfQ0xBU1NfUFJPUEVSVElFU19IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwPgorCisvLyBCb29zdAorI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fSUJNQ1BQX18sIEJPT1NUX1RFU1RFRF9BVCg2MDApKQorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZm9yX2VhY2guaHBwPgorI2VuZGlmCisjaW5jbHVkZSA8bmRuYm9vc3QvY2FsbF90cmFpdHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvYWRkcmVzc29mLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8aW9zZndkPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICBjbGFzc19wcm9wZXJ0eSAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTxjbGFzcyBQcm9wZXJ0eVR5cGU+CitjbGFzcyBjbGFzc19wcm9wZXJ0eSB7Citwcm90ZWN0ZWQ6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBjYWxsX3RyYWl0czxQcm9wZXJ0eVR5cGU+Ojpjb25zdF9yZWZlcmVuY2UgICAgIHJlYWRfYWNjZXNzX3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBjYWxsX3RyYWl0czxQcm9wZXJ0eVR5cGU+OjpwYXJhbV90eXBlICAgICAgICAgIHdyaXRlX3BhcmFtX3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcG9pbnRlcjx0eXBlbmFtZSBhZGRfY29uc3Q8UHJvcGVydHlUeXBlPjo6dHlwZT46OnR5cGUgYWRkcmVzc19yZXNfdDsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgICAgICAgICAgICAgICAgICBjbGFzc19wcm9wZXJ0eSgpIDogdmFsdWUoIFByb3BlcnR5VHlwZSgpICkge30KKyAgICBleHBsaWNpdCAgICAgICAgY2xhc3NfcHJvcGVydHkoIHdyaXRlX3BhcmFtX3QgaW5pdF92YWx1ZSApCisgICAgOiB2YWx1ZSggaW5pdF92YWx1ZSApIHt9CisKKyAgICAvLyBBY2Nlc3MgbWV0aG9kcworICAgIG9wZXJhdG9yICAgICAgICByZWFkX2FjY2Vzc190KCkgY29uc3QgICB7IHJldHVybiB2YWx1ZTsgfQorICAgIHJlYWRfYWNjZXNzX3QgICBnZXQoKSBjb25zdCAgICAgICAgICAgICB7IHJldHVybiB2YWx1ZTsgfQorICAgIGJvb2wgICAgICAgICAgICBvcGVyYXRvciEoKSBjb25zdCAgICAgICB7IHJldHVybiAhdmFsdWU7IH0KKyAgICBhZGRyZXNzX3Jlc190ICAgb3BlcmF0b3ImKCkgY29uc3QgICAgICAgeyByZXR1cm4gJnZhbHVlOyB9CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyNpZm5kZWYgQk9PU1RfVEVTVF9OT19QUk9URUNURURfVVNJTkcKK3Byb3RlY3RlZDoKKyNlbmRpZgorICAgIFByb3BlcnR5VHlwZSAgICAgICAgdmFsdWU7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWZkZWYgQk9PU1RfQ0xBU1NJQ19JT1NUUkVBTVMKKwordGVtcGxhdGU8Y2xhc3MgUHJvcGVydHlUeXBlPgoraW5saW5lIHN0ZDo6b3N0cmVhbSYKK29wZXJhdG9yPDwoIHN0ZDo6b3N0cmVhbSYgb3MsIGNsYXNzX3Byb3BlcnR5PFByb3BlcnR5VHlwZT4gY29uc3QmIHAgKQorCisjZWxzZQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVDEsIHR5cGVuYW1lIFRyLGNsYXNzIFByb3BlcnR5VHlwZT4KK2lubGluZSBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhclQxLFRyPiYKK29wZXJhdG9yPDwoIHN0ZDo6YmFzaWNfb3N0cmVhbTxDaGFyVDEsVHI+JiBvcywgY2xhc3NfcHJvcGVydHk8UHJvcGVydHlUeXBlPiBjb25zdCYgcCApCisKKyNlbmRpZgoreworICAgIHJldHVybiBvcyA8PCBwLmdldCgpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIERFRklORV9QUk9QRVJUWV9GUkVFX0JJTkFSWV9PUEVSQVRPUiggb3AgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIFByb3BlcnR5VHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoraW5saW5lIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitvcGVyYXRvciBvcCggUHJvcGVydHlUeXBlIGNvbnN0JiBsaHMsIGNsYXNzX3Byb3BlcnR5PFByb3BlcnR5VHlwZT4gY29uc3QmIHJocyApIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBsaHMgb3AgcmhzLmdldCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIFByb3BlcnR5VHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoraW5saW5lIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitvcGVyYXRvciBvcCggY2xhc3NfcHJvcGVydHk8UHJvcGVydHlUeXBlPiBjb25zdCYgbGhzLCBQcm9wZXJ0eVR5cGUgY29uc3QmIHJocyApIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBsaHMuZ2V0KCkgb3AgcmhzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPGNsYXNzIFByb3BlcnR5VHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoraW5saW5lIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitvcGVyYXRvciBvcCggY2xhc3NfcHJvcGVydHk8UHJvcGVydHlUeXBlPiBjb25zdCYgbGhzLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICBjbGFzc19wcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+IGNvbnN0JiByaHMgKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIGxocy5nZXQoKSBvcCByaHMuZ2V0KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLyoqLworCitERUZJTkVfUFJPUEVSVFlfRlJFRV9CSU5BUllfT1BFUkFUT1IoID09ICkKK0RFRklORV9QUk9QRVJUWV9GUkVFX0JJTkFSWV9PUEVSQVRPUiggIT0gKQorCisjdW5kZWYgREVGSU5FX1BST1BFUlRZX0ZSRUVfQklOQVJZX09QRVJBVE9SCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKworI2RlZmluZSBERUZJTkVfUFJPUEVSVFlfTE9HSUNBTF9PUEVSQVRPUiggb3AgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZTxjbGFzcyBQcm9wZXJ0eVR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorb3BlcmF0b3Igb3AoIGJvb2wgYiwgY2xhc3NfcHJvcGVydHk8UHJvcGVydHlUeXBlPiBjb25zdCYgcCApICAgICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gYiBvcCBwLmdldCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit0ZW1wbGF0ZTxjbGFzcyBQcm9wZXJ0eVR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorb3BlcmF0b3Igb3AoIGNsYXNzX3Byb3BlcnR5PFByb3BlcnR5VHlwZT4gY29uc3QmIHAsIGJvb2wgYiApICAgICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gYiBvcCBwLmdldCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKK0RFRklORV9QUk9QRVJUWV9MT0dJQ0FMX09QRVJBVE9SKCAmJiApCitERUZJTkVfUFJPUEVSVFlfTE9HSUNBTF9PUEVSQVRPUiggfHwgKQorCisjZW5kaWYKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgcmVhZG9ubHlfcHJvcGVydHkgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTxjbGFzcyBQcm9wZXJ0eVR5cGU+CitjbGFzcyByZWFkb25seV9wcm9wZXJ0eSA6IHB1YmxpYyBjbGFzc19wcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+IHsKKyAgICB0eXBlZGVmIGNsYXNzX3Byb3BlcnR5PFByb3BlcnR5VHlwZT4gICAgICAgICBiYXNlX3Byb3A7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNlX3Byb3A6OmFkZHJlc3NfcmVzX3QgICAgYXJyb3dfcmVzX3Q7Citwcm90ZWN0ZWQ6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNlX3Byb3A6OndyaXRlX3BhcmFtX3QgICAgd3JpdGVfcGFyYW1fdDsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgICAgICAgICAgICAgICAgICByZWFkb25seV9wcm9wZXJ0eSgpIHt9CisgICAgZXhwbGljaXQgICAgICAgIHJlYWRvbmx5X3Byb3BlcnR5KCB3cml0ZV9wYXJhbV90IGluaXRfdmFsdWUgKSA6IGJhc2VfcHJvcCggaW5pdF92YWx1ZSApIHt9CisKKyAgICAvLyBhY2Nlc3MgbWV0aG9kcworICAgIGFycm93X3Jlc190ICAgICBvcGVyYXRvci0+KCkgY29uc3QgICAgICB7IHJldHVybiBuZG5ib29zdDo6YWRkcmVzc29mKCBiYXNlX3Byb3A6OnZhbHVlICk7IH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fSUJNQ1BQX18sIEJPT1NUX1RFU1RFRF9BVCg2MDApKQorCisjZGVmaW5lIEJPT1NUX1JFQURPTkxZX1BST1BFUlRZKCBwcm9wZXJ0eV90eXBlLCBmcmllbmRzICkgbmRuYm9vc3Q6OnVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PHByb3BlcnR5X3R5cGUgPgorCisjZWxzZQorCisjZGVmaW5lIEJPT1NUX1JFQURPTkxZX1BST1BFUlRZX0RFQ0xBUkVfRlJJRU5EKHIsIGRhdGEsIGVsZW0pIGZyaWVuZCBjbGFzcyBlbGVtOworCisjZGVmaW5lIEJPT1NUX1JFQURPTkxZX1BST1BFUlRZKCBwcm9wZXJ0eV90eXBlLCBmcmllbmRzICkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjbGFzcyBCT09TVF9KT0lOKCByZWFkb25seV9wcm9wZXJ0eSwgX19MSU5FX18gKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCis6IHB1YmxpYyBuZG5ib29zdDo6dW5pdF90ZXN0OjpyZWFkb25seV9wcm9wZXJ0eTxwcm9wZXJ0eV90eXBlID4geyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5pdF90ZXN0OjpyZWFkb25seV9wcm9wZXJ0eTxwcm9wZXJ0eV90eXBlID4gYmFzZV9wcm9wOyAgICAgICAgICBcCisgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIKCBCT09TVF9SRUFET05MWV9QUk9QRVJUWV9ERUNMQVJFX0ZSSUVORCwgJyAnLCBmcmllbmRzICkgICBcCisgICAgdHlwZWRlZiBiYXNlX3Byb3A6OndyaXRlX3BhcmFtX3QgIHdyaXRlX3BhcmFtX3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitwdWJsaWM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgQk9PU1RfSk9JTiggcmVhZG9ubHlfcHJvcGVydHksIF9fTElORV9fICkoKSB7fSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZXhwbGljaXQgICAgQk9PU1RfSk9JTiggcmVhZG9ubHlfcHJvcGVydHksIF9fTElORV9fICkoIHdyaXRlX3BhcmFtX3QgaW5pdF92ICApICBcCisgICAgOiBiYXNlX3Byb3AoIGluaXRfdiApIHt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNlbmRpZgorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgIHJlYWR3cml0ZV9wcm9wZXJ0eSAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPGNsYXNzIFByb3BlcnR5VHlwZT4KK2NsYXNzIHJlYWR3cml0ZV9wcm9wZXJ0eSA6IHB1YmxpYyBjbGFzc19wcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+IHsKKyAgICB0eXBlZGVmIGNsYXNzX3Byb3BlcnR5PFByb3BlcnR5VHlwZT4gICAgICAgICAgICAgICAgYmFzZV9wcm9wOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3BvaW50ZXI8UHJvcGVydHlUeXBlPjo6dHlwZSAgICBhcnJvd19yZXNfdDsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJhc2VfcHJvcDo6YWRkcmVzc19yZXNfdCAgICAgICAgICAgY29uc3RfYXJyb3dfcmVzX3Q7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBiYXNlX3Byb3A6OndyaXRlX3BhcmFtX3QgICAgICAgICAgIHdyaXRlX3BhcmFtX3Q7CitwdWJsaWM6CisgICAgICAgICAgICAgICAgICAgIHJlYWR3cml0ZV9wcm9wZXJ0eSgpIDogYmFzZV9wcm9wKCkge30KKyAgICBleHBsaWNpdCAgICAgICAgcmVhZHdyaXRlX3Byb3BlcnR5KCB3cml0ZV9wYXJhbV90IGluaXRfdmFsdWUgKSA6IGJhc2VfcHJvcCggaW5pdF92YWx1ZSApIHt9CisKKyAgICAvLyBhY2Nlc3MgbWV0aG9kcworICAgIHZvaWQgICAgICAgICAgICBzZXQoIHdyaXRlX3BhcmFtX3QgdiApICB7IGJhc2VfcHJvcDo6dmFsdWUgPSB2OyB9CisgICAgYXJyb3dfcmVzX3QgICAgIG9wZXJhdG9yLT4oKSAgICAgICAgICAgIHsgcmV0dXJuIG5kbmJvb3N0OjphZGRyZXNzb2YoIGJhc2VfcHJvcDo6dmFsdWUgKTsgfQorICAgIGNvbnN0X2Fycm93X3Jlc190IG9wZXJhdG9yLT4oKSBjb25zdCAgICB7IHJldHVybiBuZG5ib29zdDo6YWRkcmVzc29mKCBiYXNlX3Byb3A6OnZhbHVlICk7IH0KKworI2lmbmRlZiBCT09TVF9URVNUX05PX1BST1RFQ1RFRF9VU0lORworICAgIHVzaW5nICAgICAgICAgICBiYXNlX3Byb3A6OnZhbHVlOworI2VuZGlmCit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI3VuZGVmIEJPT1NUX1RFU1RfTk9fUFJPVEVDVEVEX1VTSU5HCisKKyNlbmRpZiAvLyBCT09TVF9URVNUX0NMQVNTX1BST1BFUlRJRVNfSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2N1c3RvbV9tYW5pcC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvY3VzdG9tX21hbmlwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjVkNzZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2N1c3RvbV9tYW5pcC5ocHAKQEAgLTAsMCArMSw2MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzaW1wbGUgaGVscGVycyBmb3IgY3JlYXRpbmcgY3Vzb20gb3V0cHV0IG1hbmlwdWxhdG9ycworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9DVVNUT01fTUFOSVBfSFBQXzA3MTg5NEdFUgorI2RlZmluZSBCT09TVF9URVNUX0NVU1RPTV9NQU5JUF9IUFBfMDcxODk0R0VSCisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc2Z3ZD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICBjdXN0b20gbWFuaXB1bGF0b3JzIGhlbHBlcnMgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgTWFuaXA+CitzdHJ1Y3QgY3VzdG9tX3ByaW50ZXIgeworICAgIGV4cGxpY2l0IGN1c3RvbV9wcmludGVyKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKSA6IG1fb3N0ciggJm9zdHIgKSB7fQorCisgICAgc3RkOjpvc3RyZWFtJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiAqbV9vc3RyOyB9CisKK3ByaXZhdGU6CisgICAgc3RkOjpvc3RyZWFtKiBjb25zdCBtX29zdHI7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBVbmlxPiBzdHJ1Y3QgY3VzdG9tX21hbmlwIHt9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBVbmlxPgoraW5saW5lIGN1c3RvbV9wcmludGVyPGN1c3RvbV9tYW5pcDxVbmlxPiA+CitvcGVyYXRvcjw8KCBzdGQ6Om9zdHJlYW0mIG9zdHIsIGN1c3RvbV9tYW5pcDxVbmlxPiBjb25zdCYgKSB7IHJldHVybiBjdXN0b21fcHJpbnRlcjxjdXN0b21fbWFuaXA8VW5pcT4gPiggb3N0ciApOyB9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfQ1VTVE9NX01BTklQX0hQUF8wNzE4OTRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9maXhlZF9tYXBwaW5nLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9maXhlZF9tYXBwaW5nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzA4NTkzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2ZpeGVkX21hcHBpbmcuaHBwCkBAIC0wLDAgKzEsMTI0IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAxLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGZpeGVkIHNpemVkIG1hcHBpbmcgd2l0aCBzcGVjaWZpZWQgaW52YWxpZCB2YWx1ZQorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9GSVhFRF9NQVBQSU5HX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9GSVhFRF9NQVBQSU5HX0hQUF8wNzE4OTRHRVIKKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2FkZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY2FsbF90cmFpdHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC9iaW5hcnlfc2VhcmNoLmhwcD4KKworLy8gU1RMCisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCisvLyBjb25maWd1cmFibGUgbWF4aW11bSBmaXhlZCBzaXplZCBtYXBwaW5nIHNpemUgc3VwcG9ydGVkIGJ5IHRoaXMgaGVhZGVyLgorLy8gWW91IGNhbiByZWRlZmluZSBpdCBiZWZvcmUgaW5jbHVzaW9uIG9mIHRoaXMgZmlsZS4KKyNpZm5kZWYgTUFYX01BUF9TSVpFCisjZGVmaW5lIE1BWF9NQVBfU0laRSAyMAorI2VuZGlmCisKKyNkZWZpbmUgQ09OU1RSX0RFQ0xfTUlEKCB6LCBpLCBkdW1teTEgKSBrZXlfcGFyYW1fdHlwZSBrZXkjI2ksIHZhbHVlX3BhcmFtX3R5cGUgdiMjaSwKKyNkZWZpbmUgQ09OU1RSX0JPRFlfTUlEKCB6LCBpLCBkdW1teTEgKSBhZGRfcGFpcigga2V5IyNpLCB2IyNpICk7CisKKyNkZWZpbmUgQ09OU1RSX0RFQ0woIHosIG4sIGR1bW15MSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZpeGVkX21hcHBpbmcoIEJPT1NUX1BQX1JFUEVBVF8gIyMgeiggbiwgQ09OU1RSX0RFQ0xfTUlELCAiIiApICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVfcGFyYW1fdHlwZSBpbnZhbGlkX3ZhbHVlICkgICAgICAgICAgIFwKKyAgICA6IG1faW52YWxpZF92YWx1ZSggaW52YWxpZF92YWx1ZSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX1JFUEVBVF8gIyMgeiggbiwgQ09OU1RSX0JPRFlfTUlELCAiIiApICAgICAgICAgICAgIFwKKyAgICAgICAgaW5pdCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisvKiovCisKKyNkZWZpbmUgQ09OVFJVQ1RPUlMoIG4gKSBCT09TVF9QUF9SRVBFQVQoIG4sIENPTlNUUl9ERUNMLCAiIiApCisKK3RlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIENvbXBhcmUgPSBzdGQ6Omxlc3M8S2V5PiA+CitjbGFzcyBmaXhlZF9tYXBwaW5nCit7CisgICAgdHlwZWRlZiBzdGQ6OnBhaXI8S2V5LFZhbHVlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtX3R5cGU7CisgICAgdHlwZWRlZiBzdGQ6OnZlY3RvcjxlbGVtX3R5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6dmVjdG9yPGVsZW1fdHlwZT46OmNvbnN0X2l0ZXJhdG9yIGl0ZXJhdG9yOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBjYWxsX3RyYWl0czxLZXk+OjpwYXJhbV90eXBlICAgICAgICAgICBrZXlfcGFyYW1fdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGNhbGxfdHJhaXRzPFZhbHVlPjo6cGFyYW1fdHlwZSAgICAgICAgIHZhbHVlX3BhcmFtX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBjYWxsX3RyYWl0czxWYWx1ZT46OmNvbnN0X3JlZmVyZW5jZSAgICB2YWx1ZV9yZWZfdHlwZTsKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19ERUNDWFhfVkVSLCBCT09TVF9URVNURURfQVQoNjA1OTAwNDIpKQorICAgIHN0cnVjdCBwMTsgZnJpZW5kIHN0cnVjdCBwMTsKKyAgICBzdHJ1Y3QgcDI7IGZyaWVuZCBzdHJ1Y3QgcDI7CisjZW5kaWYKKworICAgIC8vIGJpbmQoIENvbXBhcmUoKSwgYmluZChzZWxlY3Qxc3Q8ZWxlbV90eXBlPigpLCBfMSksICBiaW5kKGlkZW50aXR5PEtleT4oKSwgXzIpICkKKyAgICBzdHJ1Y3QgcDEgOiBwdWJsaWMgc3RkOjpiaW5hcnlfZnVuY3Rpb248ZWxlbV90eXBlLEtleSxib29sPgorICAgIHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKCBlbGVtX3R5cGUgY29uc3QmIHgsIEtleSBjb25zdCYgeSApIGNvbnN0IHsgcmV0dXJuIENvbXBhcmUoKSggeC5maXJzdCwgeSApOyB9CisgICAgfTsKKworICAgIC8vIGJpbmQoIENvbXBhcmUoKSwgYmluZChzZWxlY3Qxc3Q8ZWxlbV90eXBlPigpLCBfMSksIGJpbmQoc2VsZWN0MXN0PGVsZW1fdHlwZT4oKSwgXzIpICkKKyAgICBzdHJ1Y3QgcDIgOiBwdWJsaWMgc3RkOjpiaW5hcnlfZnVuY3Rpb248ZWxlbV90eXBlLGVsZW1fdHlwZSxib29sPgorICAgIHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKCBlbGVtX3R5cGUgY29uc3QmIHgsIGVsZW1fdHlwZSBjb25zdCYgeSApIGNvbnN0IHsgcmV0dXJuIENvbXBhcmUoKSggeC5maXJzdCwgeS5maXJzdCApOyB9CisgICAgfTsKKworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9ycworICAgIENPTlRSVUNUT1JTKCBCT09TVF9QUF9BREQoIE1BWF9NQVBfU0laRSwgMSApICkKKworICAgIC8vIGtleSAtPiB2YWx1ZSBhY2Nlc3MKKyAgICB2YWx1ZV9yZWZfdHlwZSAgb3BlcmF0b3JbXSgga2V5X3BhcmFtX3R5cGUga2V5ICkgY29uc3QKKyAgICB7CisgICAgICAgIGl0ZXJhdG9yIGl0ID0gbmRuYm9vc3Q6OmRldGFpbDo6bG93ZXJfYm91bmQoIG1fbWFwLmJlZ2luKCksIG1fbWFwLmVuZCgpLCBrZXksIHAxKCkgKTsKKworICAgICAgICByZXR1cm4gKGl0ID09IG1fbWFwLmVuZCgpIHx8IENvbXBhcmUoKSgga2V5LCBpdC0+Zmlyc3QgKSApID8gbV9pbnZhbGlkX3ZhbHVlIDogaXQtPnNlY29uZDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gSW1wbGVtZW50YXRpb24KKyAgICB2b2lkICAgICAgICAgICAgaW5pdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHN0ZDo6c29ydCggbV9tYXAuYmVnaW4oKSwgbV9tYXAuZW5kKCksIHAyKCkgKTsgfQorICAgIHZvaWQgICAgICAgICAgICBhZGRfcGFpcigga2V5X3BhcmFtX3R5cGUga2V5LCB2YWx1ZV9wYXJhbV90eXBlIHZhbHVlICkgIHsgbV9tYXAucHVzaF9iYWNrKCBlbGVtX3R5cGUoIGtleSwgdmFsdWUgKSApOyB9CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBWYWx1ZSAgICAgICAgICAgbV9pbnZhbGlkX3ZhbHVlOworICAgIG1hcF90eXBlICAgICAgICBtX21hcDsKK307CisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI3VuZGVmIE1BWF9NQVBfU0laRQorI3VuZGVmIENPTlNUUl9ERUNMX01JRAorI3VuZGVmIENPTlNUUl9CT0RZX01JRAorI3VuZGVmIENPTlNUUl9ERUNMCisjdW5kZWYgQ09OVFJVQ1RPUlMKKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfRklYRURfTUFQUElOR19IUFBfMDcxODk0R0VSCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9mb3JlYWNoLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9mb3JlYWNoLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDA0ZTcyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2ZvcmVhY2guaHBwCkBAIC0wLDAgKzEsMjgxIEBACisvLyAgKEMpIENvcHlyaWdodCBFcmljIE5pZWJsZXIgMjAwNC0yMDA1CisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogdGhpcyBpcyBhbiBhYnJpZGdlZCB2ZXJzaW9uIG9mIGFuIGV4Y2VsZW50IEJPT1NUX0ZPUkVBQ0ggZmFjaWxpdHkKKy8vICBwcmVzZW50ZWQgYnkgRXJpYyBOaWVibGVyLiBJIGFtIHNvIGZvbmQgb2YgaXQgc28gSSBjYW4ndCB3YWl0IHRpbGwgaXQgCisvLyAgZ29pbmcgdG8gYmUgYWNjZXB0ZWQgaW50byBCb29zdC4gQWxzbyBJIG5lZWQgdmVyc2lvbiB3aXRoIGxlc3MgbnVtYmVyIG9mIGRlcGVuZGVuY2llcyAKKy8vICBhbmQgbW9yZSBwb3J0YWJsZS4gVGhpcyB2ZXJzaW9uIGRvZXNuJ3Qgc3VwcG9ydCBydmFsdWVzIGFuZCB3aWxsIHJlZXZlbHVhdGUgaXQncyAKKy8vICBwYXJhbWV0ZXJzLCBidXQgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBteSBwdXJwb3Nlcy4KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1RFU1RfRk9SRUFDSF9IUFBfMDIxMDA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfRk9SRUFDSF9IUFBfMDIxMDA1R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnN0LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKK25hbWVzcGFjZSBmb3JfZWFjaCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgIHN0YXRpY19hbnkgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RydWN0IHN0YXRpY19hbnlfYmFzZQoreworICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgSXRlcj4KK3N0cnVjdCBzdGF0aWNfYW55IDogc3RhdGljX2FueV9iYXNlCit7CisgICAgc3RhdGljX2FueSggSXRlciBjb25zdCYgdCApIDogbV9pdCggdCApIHt9CisKKyAgICBtdXRhYmxlIEl0ZXIgbV9pdDsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3R5cGVkZWYgc3RhdGljX2FueV9iYXNlIGNvbnN0JiBzdGF0aWNfYW55X3Q7CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZXI+CitpbmxpbmUgSXRlciYKK3N0YXRpY19hbnlfY2FzdCggc3RhdGljX2FueV90IGEsIEl0ZXIqID0gMCApCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEl0ZXImPiggc3RhdGljX2Nhc3Q8c3RhdGljX2FueTxJdGVyPiBjb25zdCY+KCBhICkubV9pdCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgaXNfY29uc3QgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIEM+CitpbmxpbmUgaXNfY29uc3Q8Qz4KK2lzX2NvbnN0X2NvbGwoIEMmICkKK3sKKyAgICByZXR1cm4gaXNfY29uc3Q8Qz4oKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgICAgYmVnaW4gICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgoraW5saW5lIHN0YXRpY19hbnk8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjppdGVyYXRvcj4KK2JlZ2luKCBDJiB0LCBtcGw6OmZhbHNlXyApCit7CisgICAgcmV0dXJuIHN0YXRpY19hbnk8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjppdGVyYXRvcj4oIHQuYmVnaW4oKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgoraW5saW5lIHN0YXRpY19hbnk8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjpjb25zdF9pdGVyYXRvcj4KK2JlZ2luKCBDIGNvbnN0JiB0LCBtcGw6OnRydWVfICkKK3sKKyAgICByZXR1cm4gc3RhdGljX2FueTxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6OmNvbnN0X2l0ZXJhdG9yPiggdC5iZWdpbigpICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICAgICBlbmQgICAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQz4KK2lubGluZSBzdGF0aWNfYW55PEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgQzo6aXRlcmF0b3I+CitlbmQoIEMmIHQsIG1wbDo6ZmFsc2VfICkKK3sKKyAgICByZXR1cm4gc3RhdGljX2FueTxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6Oml0ZXJhdG9yPiggdC5lbmQoKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgoraW5saW5lIHN0YXRpY19hbnk8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjpjb25zdF9pdGVyYXRvcj4KK2VuZCggQyBjb25zdCYgdCwgbXBsOjp0cnVlXyApCit7CisgICAgcmV0dXJuIHN0YXRpY19hbnk8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjpjb25zdF9pdGVyYXRvcj4oIHQuZW5kKCkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgICAgIGRvbmUgICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgoraW5saW5lIGJvb2wKK2RvbmUoIHN0YXRpY19hbnlfdCBjdXIsIHN0YXRpY19hbnlfdCBlbmQsIEMmLCBtcGw6OmZhbHNlXyApCit7CisgICAgcmV0dXJuICBzdGF0aWNfYW55X2Nhc3Q8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjppdGVyYXRvcj4oIGN1ciApID09CisgICAgICAgICAgICBzdGF0aWNfYW55X2Nhc3Q8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjppdGVyYXRvcj4oIGVuZCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgoraW5saW5lIGJvb2wKK2RvbmUoIHN0YXRpY19hbnlfdCBjdXIsIHN0YXRpY19hbnlfdCBlbmQsIEMgY29uc3QmLCBtcGw6OnRydWVfICkKK3sKKyAgICByZXR1cm4gIHN0YXRpY19hbnlfY2FzdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6OmNvbnN0X2l0ZXJhdG9yPiggY3VyICkgPT0KKyAgICAgICAgICAgIHN0YXRpY19hbnlfY2FzdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6OmNvbnN0X2l0ZXJhdG9yPiggZW5kICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgICAgICBuZXh0ICAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQz4KK2lubGluZSB2b2lkCituZXh0KCBzdGF0aWNfYW55X3QgY3VyLCBDJiwgbXBsOjpmYWxzZV8gKQoreworICAgICsrc3RhdGljX2FueV9jYXN0PEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgQzo6aXRlcmF0b3I+KCBjdXIgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQz4KK2lubGluZSB2b2lkCituZXh0KCBzdGF0aWNfYW55X3QgY3VyLCBDIGNvbnN0JiwgbXBsOjp0cnVlXyApCit7CisgICAgKytzdGF0aWNfYW55X2Nhc3Q8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSBDOjpjb25zdF9pdGVyYXRvcj4oIGN1ciApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgICAgZGVyZWYgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPGNsYXNzIFJlZlR5cGUsdHlwZW5hbWUgQz4KK2lubGluZSBSZWZUeXBlCitkZXJlZiggc3RhdGljX2FueV90IGN1ciwgQyYsIDo6bmRuYm9vc3Q6OnR5cGU8UmVmVHlwZT4sIG1wbDo6ZmFsc2VfICkKK3sKKyAgICByZXR1cm4gKnN0YXRpY19hbnlfY2FzdDxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIEM6Oml0ZXJhdG9yPiggY3VyICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPGNsYXNzIFJlZlR5cGUsdHlwZW5hbWUgQz4KK2lubGluZSBSZWZUeXBlCitkZXJlZiggc3RhdGljX2FueV90IGN1ciwgQyBjb25zdCYsIDo6bmRuYm9vc3Q6OnR5cGU8UmVmVHlwZT4sIG1wbDo6dHJ1ZV8gKQoreworICAgIHJldHVybiAqc3RhdGljX2FueV9jYXN0PEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgQzo6Y29uc3RfaXRlcmF0b3I+KCBjdXIgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0ggICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCisjZGVmaW5lIEJPT1NUX1RFU1RfRkVfQU5ZICAgICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6Zm9yX2VhY2g6OnN0YXRpY19hbnlfdAorI2RlZmluZSBCT09TVF9URVNUX0ZFX0lTX0NPTlNUKCBDT0wgKSAgICAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmZvcl9lYWNoOjppc19jb25zdF9jb2xsKCBDT0wgKQorCisjZGVmaW5lIEJPT1NUX1RFU1RfRkVfQkVHKCBDT0wgKSAgICAgICAgICAgIFwKKyAgICA6Om5kbmJvb3N0Ojp1bml0X3Rlc3Q6OmZvcl9lYWNoOjpiZWdpbiggICAgXAorICAgICAgICBDT0wsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfRkVfSVNfQ09OU1QoIENPTCApICkgICAgIFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9URVNUX0ZFX0VORCggQ09MICkgICAgICAgICAgICBcCisgICAgOjpuZG5ib29zdDo6dW5pdF90ZXN0Ojpmb3JfZWFjaDo6ZW5kKCAgICAgIFwKKyAgICAgICAgQ09MLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9URVNUX0ZFX0lTX0NPTlNUKCBDT0wgKSApICAgICBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVEVTVF9GRV9ET05FKCBDT0wgKSAgICAgICAgICAgXAorICAgIDo6bmRuYm9vc3Q6OnVuaXRfdGVzdDo6Zm9yX2VhY2g6OmRvbmUoICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfRkVfQ1VSX1ZBUiwgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfVEVTVF9GRV9FTkRfVkFSLCAgICAgICAgICAgICAgXAorICAgICAgICBDT0wsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfRkVfSVNfQ09OU1QoIENPTCApICkgICAgIFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9URVNUX0ZFX05FWFQoIENPTCApICAgICAgICAgICBcCisgICAgOjpuZG5ib29zdDo6dW5pdF90ZXN0Ojpmb3JfZWFjaDo6bmV4dCggICAgIFwKKyAgICAgICAgQk9PU1RfVEVTVF9GRV9DVVJfVkFSLCAgICAgICAgICAgICAgXAorICAgICAgICBDT0wsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1RFU1RfRkVfSVNfQ09OU1QoIENPTCApICkgICAgIFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9GT1JFQUNIX05PT1AoQ09MKSAgICAgICAgICAgICBcCisgICAgKCh2b2lkKSYoQ09MKSkKKworI2RlZmluZSBCT09TVF9URVNUX0ZFX0RFUkVGKCBDT0wsIFJlZlR5cGUgKSBcCisgICAgOjpuZG5ib29zdDo6dW5pdF90ZXN0Ojpmb3JfZWFjaDo6ZGVyZWYoICAgIFwKKyAgICAgICAgQk9PU1RfVEVTVF9GRV9DVVJfVkFSLCAgICAgICAgICAgICAgXAorICAgICAgICBDT0wsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGU8UmVmVHlwZSA+KCksICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfVEVTVF9GRV9JU19DT05TVCggQ09MICkgKSAgICAgXAorLyoqLworCisjaWYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPT0gMTMxMCApCisjZGVmaW5lIEJPT1NUX1RFU1RfTElORV9OVU0KKyNlbHNlCisjZGVmaW5lIEJPT1NUX1RFU1RfTElORV9OVU0gICAgIF9fTElORV9fCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9URVNUX0ZFX0NVUl9WQVIgICBCT09TVF9KT0lOKCBfZmVfY3VyXywgQk9PU1RfVEVTVF9MSU5FX05VTSApCisjZGVmaW5lIEJPT1NUX1RFU1RfRkVfRU5EX1ZBUiAgIEJPT1NUX0pPSU4oIF9mZV9lbmRfLCBCT09TVF9URVNUX0xJTkVfTlVNICkKKyNkZWZpbmUgQk9PU1RfVEVTVF9GRV9DT05fVkFSICAgQk9PU1RfSk9JTiggX2ZlX2Nvbl8sIEJPT1NUX1RFU1RfTElORV9OVU0gKQorCisjZGVmaW5lIEJPT1NUX1RFU1RfRk9SRUFDSCggUmVmVHlwZSwgdmFyLCBDT0wgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2lmKCBCT09TVF9URVNUX0ZFX0FOWSBCT09TVF9URVNUX0ZFX0NVUl9WQVIgPSBCT09TVF9URVNUX0ZFX0JFRyggQ09MICkgKSB7fSBlbHNlICAgICAgICAgICAgXAoraWYoIEJPT1NUX1RFU1RfRkVfQU5ZIEJPT1NUX1RFU1RfRkVfRU5EX1ZBUiA9IEJPT1NUX1RFU1RfRkVfRU5EKCBDT0wgKSApIHt9IGVsc2UgICAgICAgICAgICBcCitmb3IoIGJvb2wgQk9PU1RfVEVTVF9GRV9DT05fVkFSID0gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICBCT09TVF9URVNUX0ZFX0NPTl9WQVIgJiYgIUJPT1NUX1RFU1RfRkVfRE9ORSggQ09MICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgIEJPT1NUX1RFU1RfRkVfQ09OX1ZBUiA/IEJPT1NUX1RFU1RfRkVfTkVYVCggQ09MICkgOiBCT09TVF9GT1JFQUNIX05PT1AoIENPTCApKSAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiggKEJPT1NUX1RFU1RfRkVfQ09OX1ZBUiA9IGZhbHNlLCBmYWxzZSkgKSB7fSBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGZvciggUmVmVHlwZSB2YXIgPSBCT09TVF9URVNUX0ZFX0RFUkVGKCBDT0wsIFJlZlR5cGUgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAhQk9PU1RfVEVTVF9GRV9DT05fVkFSOyBCT09TVF9URVNUX0ZFX0NPTl9WQVIgPSB0cnVlICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgZm9yX2VhY2gKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9GT1JFQUNIX0hQUF8wMjEwMDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9pdGVyYXRvci9pbnB1dF9pdGVyYXRvcl9mYWNhZGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL2lucHV0X2l0ZXJhdG9yX2ZhY2FkZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI5NjhhYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9pdGVyYXRvci9pbnB1dF9pdGVyYXRvcl9mYWNhZGUuaHBwCkBAIC0wLDAgKzEsMTA5IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA0LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IElucHV0IGl0ZXJhdG9yIGZhY2FkZSAKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX0lOUFVUX0lURVJBVE9SX0ZBQ0FERV9IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX0lOUFVUX0lURVJBVE9SX0ZBQ0FERV9IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IvaXRlcmF0b3JfZmFjYWRlLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICBpbnB1dF9pdGVyYXRvcl9jb3JlX2FjY2VzcyAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgaW5wdXRfaXRlcmF0b3JfY29yZV9hY2Nlc3MKK3sKKyNpZiBkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTKSB8fCBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTUxKSkKK3B1YmxpYzoKKyNlbHNlCisgICAgdGVtcGxhdGUgPGNsYXNzIEksIGNsYXNzIFYsIGNsYXNzIFIsIGNsYXNzIFRDPiBmcmllbmQgY2xhc3MgaW5wdXRfaXRlcmF0b3JfZmFjYWRlOworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRmFjYWRlPgorICAgIHN0YXRpYyBib29sIGdldCggRmFjYWRlJiBmICkKKyAgICB7CisgICAgICAgIHJldHVybiBmLmdldCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBvYmplY3RzIG9mIHRoaXMgY2xhc3MgYXJlIHVzZWxlc3MKKyAgICBpbnB1dF9pdGVyYXRvcl9jb3JlX2FjY2VzcygpOyAvL3VuZGVmaW5lZAorfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgaW5wdXRfaXRlcmF0b3JfZmFjYWRlICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZXJpdmVkLAorICAgICAgICAgdHlwZW5hbWUgVmFsdWVUeXBlLAorICAgICAgICAgdHlwZW5hbWUgUmVmZXJlbmNlID0gVmFsdWVUeXBlIGNvbnN0JiwKKyAgICAgICAgIHR5cGVuYW1lIFRyYXZlcnNhbCA9IHNpbmdsZV9wYXNzX3RyYXZlcnNhbF90YWc+CitjbGFzcyBpbnB1dF9pdGVyYXRvcl9mYWNhZGUgOiBwdWJsaWMgaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQsVmFsdWVUeXBlLFRyYXZlcnNhbCxSZWZlcmVuY2U+Cit7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBpbnB1dF9pdGVyYXRvcl9mYWNhZGUoKSA6IG1fdmFsaWQoIGZhbHNlICksIG1fdmFsdWUoKSB7fQorCitwcm90ZWN0ZWQ6IC8vIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBEZXJpdmVkCisgICAgdm9pZCAgICAgICAgICAgICAgICBpbml0KCkKKyAgICB7CisgICAgICAgIG1fdmFsaWQgPSB0cnVlOworICAgICAgICBpbmNyZW1lbnQoKTsKKyAgICB9CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBtdXRhYmxlIGJvb2wgICAgICAgIG1fdmFsaWQ7CisgICAgVmFsdWVUeXBlICAgICAgICAgICBtX3ZhbHVlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBuZG5ib29zdDo6aXRlcmF0b3JfY29yZV9hY2Nlc3M7CisKKyAgICAvLyBpdGVyYXRvciBmYWNhZGUgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uCisgICAgdm9pZCAgICAgICAgICAgICAgICBpbmNyZW1lbnQoKQorICAgIHsKKyAgICAgICAgLy8gd2UgbWFrZSBwb3N0LWVuZCBpbmNyZW1lbnRhdGlvbiBpbmRlZmluZXRseSBzYWZlIAorICAgICAgICBpZiggbV92YWxpZCApCisgICAgICAgICAgICBtX3ZhbGlkID0gaW5wdXRfaXRlcmF0b3JfY29yZV9hY2Nlc3M6OmdldCggKnN0YXRpY19jYXN0PERlcml2ZWQqPih0aGlzKSApOworICAgIH0KKyAgICBSZWZlcmVuY2UgICAgICAgICAgIGRlcmVmZXJlbmNlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAgIH0KKworICAgIC8vIGl0ZXJhdG9yIGZhY2FkZSBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24KKyAgICBib29sICAgICAgICAgICAgICAgIGVxdWFsKCBpbnB1dF9pdGVyYXRvcl9mYWNhZGUgY29uc3QmIHJocyApIGNvbnN0CisgICAgeworICAgICAgICAvLyB0d28gaW52YWxpZCBpdGVyYXRvciBlcXVhbHMsIGluZXF1YWwgb3RoZXJ3aXNlCisgICAgICAgIHJldHVybiAhbV92YWxpZCAmJiAhcmhzLm1fdmFsaWQ7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfSU5QVVRfSVRFUkFUT1JfRkFDQURFX0hQUF8wNzE4OTRHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL3Rva2VuX2l0ZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9pdGVyYXRvci90b2tlbl9pdGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFiMmRiYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9pdGVyYXRvci90b2tlbl9pdGVyYXRvci5ocHAKQEAgLTAsMCArMSw0MTggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDQtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogdG9rZW4gaXRlcmF0b3IgZm9yIHN0cmluZyBhbmQgcmFuZ2UgdG9rZW5pemF0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9UT0tFTl9JVEVSQVRPUl9IUFBfMDcxODk0R0VSCisjZGVmaW5lIEJPT1NUX1RPS0VOX0lURVJBVE9SX0hQUF8wNzE4OTRHRVIKKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX2NhdGVnb3JpZXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2l0ZXJhdG9yL2l0ZXJhdG9yX3RyYWl0cy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2l0ZXJhdG9yL2lucHV0X2l0ZXJhdG9yX2ZhY2FkZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2Jhc2ljX2NzdHJpbmcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvbmFtZWRfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2ZvcmVhY2guaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxpb3Nmd2Q+CisjaW5jbHVkZSA8Y2N0eXBlPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWZkZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKK25hbWVzcGFjZSBzdGR7IHVzaW5nIDo6aXNwdW5jdDsgdXNpbmcgOjppc3NwYWNlOyB9CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRfdGVzdCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIHRpX2RlbGltZXRlcl90eXBlICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworZW51bSB0aV9kZWxpbWV0ZXJfdHlwZSB7IAorICAgIGR0X2NoYXIsICAgICAgICAvLyBjaGFyYWN0ZXIgaXMgZGVsaW1ldGVyIGlmIGl0IGFtb25nIGV4cGxpY2l0IGxpc3Qgb2Ygc29tZSBjaGFyYWN0ZXJzCisgICAgZHRfaXNwdW5jdCwgICAgIC8vIGNoYXJhY3RlciBpcyBkZWxpbWV0ZXIgaWYgaXQgc2F0aXNmaWVzIGlzcHVuY3QgZnVuY3RvcgorICAgIGR0X2lzc3BhY2UsICAgICAvLyBjaGFyYWN0ZXIgaXMgZGVsaW1ldGVyIGlmIGl0IHNhdGlzZmllcyBpc3NwYWNlIGZ1bmN0b3IKKyAgICBkdF9ub25lICAgICAgICAgLy8gbm8gY2hhcmFjdGVyIGlzIGRlbGltZXRlcgorfTsKKworbmFtZXNwYWNlIHV0X2RldGFpbCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBkZWZhdWx0X2NoYXJfY29tcGFyZSAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQ+CitjbGFzcyBkZWZhdWx0X2NoYXJfY29tcGFyZSB7CitwdWJsaWM6CisgICAgYm9vbCBvcGVyYXRvcigpKCBDaGFyVCBjMSwgQ2hhclQgYzIgKQorICAgIHsKKyNpZmRlZiBCT09TVF9DTEFTU0lDX0lPU1RSRUFNUworICAgICAgICByZXR1cm4gc3RkOjpzdHJpbmdfY2hhcl90cmFpdHM8Q2hhclQ+OjplcSggYzEsIGMyICk7CisjZWxzZQorICAgICAgICByZXR1cm4gc3RkOjpjaGFyX3RyYWl0czxDaGFyVD46OmVxKCBjMSwgYzIgKTsKKyNlbmRpZgorICAgIH0KK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgZGVsaW1fcG9saWN5ICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQsdHlwZW5hbWUgQ2hhckNvbXBhcmU+CitjbGFzcyBkZWxpbV9wb2xpY3kgeworICAgIHR5cGVkZWYgYmFzaWNfY3N0cmluZzxDaGFyVCBjb25zdD4gY3N0cmluZzsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0ICAgIGRlbGltX3BvbGljeSggdGlfZGVsaW1ldGVyX3R5cGUgdCA9IGR0X2NoYXIsIGNzdHJpbmcgZCA9IGNzdHJpbmcoKSApCisgICAgOiBtX3R5cGUoIHQgKQorICAgIHsKKyAgICAgICAgc2V0X2RlbGltZXRlcnMoIGQgKTsKKyAgICB9CisKKyAgICB2b2lkICAgICAgICBzZXRfZGVsaW1ldGVycyggdGlfZGVsaW1ldGVyX3R5cGUgdCApIHsgbV90eXBlID0gdDsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFNyYz4KKyAgICB2b2lkICAgICAgICBzZXRfZGVsaW1ldGVycyggU3JjIGQgKQorICAgIHsKKyAgICAgICAgbmZwOjpvcHRpb25hbGx5X2Fzc2lnbiggbV9kZWxpbWV0ZXJzLCBkICk7CisgICAgICAgIAorICAgICAgICBpZiggIW1fZGVsaW1ldGVycy5pc19lbXB0eSgpICkKKyAgICAgICAgICAgIG1fdHlwZSA9IGR0X2NoYXI7CisgICAgfQorCisgICAgYm9vbCAgICAgICAgb3BlcmF0b3IoKSggQ2hhclQgYyApCisgICAgeworICAgICAgICBzd2l0Y2goIG1fdHlwZSApIHsKKyAgICAgICAgY2FzZSBkdF9jaGFyOiB7CisgICAgICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIENoYXJULCBkZWxpbSwgbV9kZWxpbWV0ZXJzICkKKyAgICAgICAgICAgICAgICBpZiggQ2hhckNvbXBhcmUoKSggZGVsaW0sIGMgKSApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBkdF9pc3B1bmN0OgorICAgICAgICAgICAgcmV0dXJuIChzdGQ6OmlzcHVuY3QpKCBjICkgIT0gMDsKKyAgICAgICAgY2FzZSBkdF9pc3NwYWNlOgorICAgICAgICAgICAgcmV0dXJuIChzdGQ6Omlzc3BhY2UpKCBjICkgIT0gMDsKKyAgICAgICAgY2FzZSBkdF9ub25lOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBjc3RyaW5nICAgICAgICAgICAgIG1fZGVsaW1ldGVyczsKKyAgICB0aV9kZWxpbWV0ZXJfdHlwZSAgIG1fdHlwZTsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgdG9rZW5fYXNzaWduZXIgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhdmVyc2FsVGFnPgorc3RydWN0IHRva2VuX2Fzc2lnbmVyIHsKKyNpZiBCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9ESU5LVU1XQVJFX1NURExJQiwgPCAzMDYgKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yLCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBUPgorICAgIHN0YXRpYyB2b2lkIGFzc2lnbiggSXRlcmF0b3IgYiwgSXRlcmF0b3IgZSwgc3RkOjpiYXNpY19zdHJpbmc8QyxUPiYgdCApCisgICAgeyBmb3IoIDsgYiAhPSBlOyArK2IgKSB0ICs9ICpiOyB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlcmF0b3IsIHR5cGVuYW1lIEM+CisgICAgc3RhdGljIHZvaWQgYXNzaWduKCBJdGVyYXRvciBiLCBJdGVyYXRvciBlLCBiYXNpY19jc3RyaW5nPEM+JiB0ICkgIHsgdC5hc3NpZ24oIGIsIGUgKTsgfQorI2Vsc2UKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgVG9rZW4+CisgICAgc3RhdGljIHZvaWQgYXNzaWduKCBJdGVyYXRvciBiLCBJdGVyYXRvciBlLCBUb2tlbiYgdCApICB7IHQuYXNzaWduKCBiLCBlICk7IH0KKyNlbmRpZgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yLCB0eXBlbmFtZSBUb2tlbj4KKyAgICBzdGF0aWMgdm9pZCBhcHBlbmRfbW92ZSggSXRlcmF0b3ImIGIsIFRva2VuJiApICAgICAgICAgIHsgKytiOyB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgdG9rZW5fYXNzaWduZXI8c2luZ2xlX3Bhc3NfdHJhdmVyc2FsX3RhZz4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yLCB0eXBlbmFtZSBUb2tlbj4KKyAgICBzdGF0aWMgdm9pZCBhc3NpZ24oIEl0ZXJhdG9yIGIsIEl0ZXJhdG9yIGUsIFRva2VuJiB0ICkgIHt9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvciwgdHlwZW5hbWUgVG9rZW4+CisgICAgc3RhdGljIHZvaWQgYXBwZW5kX21vdmUoIEl0ZXJhdG9yJiBiLCBUb2tlbiYgdCApICAgICAgICB7IHQgKz0gKmI7ICsrYjsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgdXRfZGV0YWlsCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICAgIG1vZGlmaWVycyAgICAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIHsKK25mcDo6a2V5d29yZDxzdHJ1Y3QgZHJvcHBlZF9kZWxpbWV0ZXJzX3QgPiAgICAgICAgICAgZHJvcHBlZF9kZWxpbWV0ZXJzOworbmZwOjprZXl3b3JkPHN0cnVjdCBrZXB0X2RlbGltZXRlcnNfdCA+ICAgICAgICAgICAgICBrZXB0X2RlbGltZXRlcnM7CituZnA6OnR5cGVkX2tleXdvcmQ8Ym9vbCxzdHJ1Y3Qga2VlcF9lbXB0eV90b2tlbnNfdCA+IGtlZXBfZW1wdHlfdG9rZW5zOworbmZwOjp0eXBlZF9rZXl3b3JkPHN0ZDo6c2l6ZV90LHN0cnVjdCBtYXhfdG9rZW5zX3QgPiBtYXhfdG9rZW5zOworfQorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgdG9rZW5faXRlcmF0b3JfYmFzZSAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIERlcml2ZWQsCisgICAgICAgICB0eXBlbmFtZSBDaGFyVCwKKyAgICAgICAgIHR5cGVuYW1lIENoYXJDb21wYXJlICAgPSB1dF9kZXRhaWw6OmRlZmF1bHRfY2hhcl9jb21wYXJlPENoYXJUPiwKKyAgICAgICAgIHR5cGVuYW1lIFZhbHVlVHlwZSAgICAgPSBiYXNpY19jc3RyaW5nPENoYXJUIGNvbnN0PiwKKyAgICAgICAgIHR5cGVuYW1lIFJlZmVyZW5jZSAgICAgPSBiYXNpY19jc3RyaW5nPENoYXJUIGNvbnN0PiwKKyAgICAgICAgIHR5cGVuYW1lIFRyYXZlcnNhbCAgICAgPSBmb3J3YXJkX3RyYXZlcnNhbF90YWc+CitjbGFzcyB0b2tlbl9pdGVyYXRvcl9iYXNlCis6IHB1YmxpYyBpbnB1dF9pdGVyYXRvcl9mYWNhZGU8RGVyaXZlZCxWYWx1ZVR5cGUsUmVmZXJlbmNlLFRyYXZlcnNhbD4geworICAgIHR5cGVkZWYgYmFzaWNfY3N0cmluZzxDaGFyVCBjb25zdD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzdHJpbmc7CisgICAgdHlwZWRlZiB1dF9kZXRhaWw6OmRlbGltX3BvbGljeTxDaGFyVCxDaGFyQ29tcGFyZT4gICAgICAgICAgICAgICAgICAgICAgZGVsaW1fcG9saWN5OworICAgIHR5cGVkZWYgaW5wdXRfaXRlcmF0b3JfZmFjYWRlPERlcml2ZWQsVmFsdWVUeXBlLFJlZmVyZW5jZSxUcmF2ZXJzYWw+ICAgIGJhc2U7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0ICAgIHRva2VuX2l0ZXJhdG9yX2Jhc2UoKQorICAgIDogbV9pc19kcm9wcGVkKCBkdF9pc3NwYWNlICkKKyAgICAsIG1faXNfa2VwdCggZHRfaXNwdW5jdCApCisgICAgLCBtX2tlZXBfZW1wdHlfdG9rZW5zKCBmYWxzZSApCisgICAgLCBtX3Rva2Vuc19sZWZ0KCBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oLTEpICkKKyAgICAsIG1fdG9rZW5fcHJvZHVjZWQoIGZhbHNlICkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTW9kaWZpZXI+CisgICAgdm9pZAorICAgIGFwcGx5X21vZGlmaWVyKCBNb2RpZmllciBjb25zdCYgbSApCisgICAgeworICAgICAgICBpZiggbS5oYXMoIGRyb3BwZWRfZGVsaW1ldGVycyApICkKKyAgICAgICAgICAgIG1faXNfZHJvcHBlZC5zZXRfZGVsaW1ldGVycyggbVtkcm9wcGVkX2RlbGltZXRlcnNdICk7CisKKyAgICAgICAgaWYoIG0uaGFzKCBrZXB0X2RlbGltZXRlcnMgKSApCisgICAgICAgICAgICBtX2lzX2tlcHQuc2V0X2RlbGltZXRlcnMoIG1ba2VwdF9kZWxpbWV0ZXJzXSApOworCisgICAgICAgIGlmKCBtLmhhcygga2VlcF9lbXB0eV90b2tlbnMgKSApCisgICAgICAgICAgICBtX2tlZXBfZW1wdHlfdG9rZW5zID0gdHJ1ZTsKKworICAgICAgICBuZnA6Om9wdGlvbmFsbHlfYXNzaWduKCBtX3Rva2Vuc19sZWZ0LCBtLCBtYXhfdG9rZW5zICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlcj4gCisgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgZ2V0KCBJdGVyJiBiZWdpbiwgSXRlciBlbmQgKQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB1dF9kZXRhaWw6OnRva2VuX2Fzc2lnbmVyPEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgaXRlcmF0b3JfdHJhdmVyc2FsPEl0ZXI+Ojp0eXBlPiBBc3NpZ25lcjsKKyAgICAgICAgSXRlciBjaGVja19wb2ludDsKKworICAgICAgICB0aGlzLT5tX3ZhbHVlLmNsZWFyKCk7CisKKyAgICAgICAgaWYoICFtX2tlZXBfZW1wdHlfdG9rZW5zICkgeworICAgICAgICAgICAgd2hpbGUoIGJlZ2luICE9IGVuZCAmJiBtX2lzX2Ryb3BwZWQoICpiZWdpbiApICkKKyAgICAgICAgICAgICAgICArK2JlZ2luOworCisgICAgICAgICAgICBpZiggYmVnaW4gPT0gZW5kICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGNoZWNrX3BvaW50ID0gYmVnaW47CisKKyAgICAgICAgICAgIGlmKCBtX3Rva2Vuc19sZWZ0ID09IDEgKQorICAgICAgICAgICAgICAgIHdoaWxlKCBiZWdpbiAhPSBlbmQgKQorICAgICAgICAgICAgICAgICAgICBBc3NpZ25lcjo6YXBwZW5kX21vdmUoIGJlZ2luLCB0aGlzLT5tX3ZhbHVlICk7CisgICAgICAgICAgICBlbHNlIGlmKCBtX2lzX2tlcHQoICpiZWdpbiApICkKKyAgICAgICAgICAgICAgICBBc3NpZ25lcjo6YXBwZW5kX21vdmUoIGJlZ2luLCB0aGlzLT5tX3ZhbHVlICk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgd2hpbGUoIGJlZ2luICE9IGVuZCAmJiAhbV9pc19kcm9wcGVkKCAqYmVnaW4gKSAmJiAhbV9pc19rZXB0KCAqYmVnaW4gKSApCisgICAgICAgICAgICAgICAgICAgIEFzc2lnbmVyOjphcHBlbmRfbW92ZSggYmVnaW4sIHRoaXMtPm1fdmFsdWUgKTsKKworICAgICAgICAgICAgLS1tX3Rva2Vuc19sZWZ0OworICAgICAgICB9IAorICAgICAgICBlbHNlIHsgLy8gbV9rZWVwX2VtcHR5X3Rva2VucyBpcyB0cnVlCisgICAgICAgICAgICBjaGVja19wb2ludCA9IGJlZ2luOworCisgICAgICAgICAgICBpZiggYmVnaW4gPT0gZW5kICkgeworICAgICAgICAgICAgICAgIGlmKCBtX3Rva2VuX3Byb2R1Y2VkICkgCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIG1fdG9rZW5fcHJvZHVjZWQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIG1faXNfa2VwdCggKmJlZ2luICkgKSB7CisgICAgICAgICAgICAgICAgaWYoIG1fdG9rZW5fcHJvZHVjZWQgKSAKKyAgICAgICAgICAgICAgICAgICAgQXNzaWduZXI6OmFwcGVuZF9tb3ZlKCBiZWdpbiwgdGhpcy0+bV92YWx1ZSApOworCisgICAgICAgICAgICAgICAgbV90b2tlbl9wcm9kdWNlZCA9ICFtX3Rva2VuX3Byb2R1Y2VkOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYoICFtX3Rva2VuX3Byb2R1Y2VkICYmIG1faXNfZHJvcHBlZCggKmJlZ2luICkgKQorICAgICAgICAgICAgICAgIG1fdG9rZW5fcHJvZHVjZWQgPSB0cnVlOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYoIG1faXNfZHJvcHBlZCggKmJlZ2luICkgKQorICAgICAgICAgICAgICAgICAgICBjaGVja19wb2ludCA9ICsrYmVnaW47CisKKyAgICAgICAgICAgICAgICB3aGlsZSggYmVnaW4gIT0gZW5kICYmICFtX2lzX2Ryb3BwZWQoICpiZWdpbiApICYmICFtX2lzX2tlcHQoICpiZWdpbiApICkKKyAgICAgICAgICAgICAgICAgICAgQXNzaWduZXI6OmFwcGVuZF9tb3ZlKCBiZWdpbiwgdGhpcy0+bV92YWx1ZSApOworCisgICAgICAgICAgICAgICAgbV90b2tlbl9wcm9kdWNlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBBc3NpZ25lcjo6YXNzaWduKCBjaGVja19wb2ludCwgYmVnaW4sIHRoaXMtPm1fdmFsdWUgKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgZGVsaW1fcG9saWN5ICAgICAgICAgICAgbV9pc19kcm9wcGVkOworICAgIGRlbGltX3BvbGljeSAgICAgICAgICAgIG1faXNfa2VwdDsKKyAgICBib29sICAgICAgICAgICAgICAgICAgICBtX2tlZXBfZW1wdHlfdG9rZW5zOworICAgIHN0ZDo6c2l6ZV90ICAgICAgICAgICAgIG1fdG9rZW5zX2xlZnQ7CisgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgbV90b2tlbl9wcm9kdWNlZDsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICBiYXNpY19zdHJpbmdfdG9rZW5faXRlcmF0b3IgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQsCisgICAgICAgICB0eXBlbmFtZSBDaGFyQ29tcGFyZSA9IHV0X2RldGFpbDo6ZGVmYXVsdF9jaGFyX2NvbXBhcmU8Q2hhclQ+ID4KK2NsYXNzIGJhc2ljX3N0cmluZ190b2tlbl9pdGVyYXRvcgorOiBwdWJsaWMgdG9rZW5faXRlcmF0b3JfYmFzZTxiYXNpY19zdHJpbmdfdG9rZW5faXRlcmF0b3I8Q2hhclQsQ2hhckNvbXBhcmU+LENoYXJULENoYXJDb21wYXJlPiB7CisgICAgdHlwZWRlZiBiYXNpY19jc3RyaW5nPENoYXJUIGNvbnN0PiBjc3RyaW5nOworICAgIHR5cGVkZWYgdG9rZW5faXRlcmF0b3JfYmFzZTxiYXNpY19zdHJpbmdfdG9rZW5faXRlcmF0b3I8Q2hhclQsQ2hhckNvbXBhcmU+LENoYXJULENoYXJDb21wYXJlPiBiYXNlOworcHVibGljOgorICAgIGV4cGxpY2l0ICAgIGJhc2ljX3N0cmluZ190b2tlbl9pdGVyYXRvcigpIHt9CisgICAgZXhwbGljaXQgICAgYmFzaWNfc3RyaW5nX3Rva2VuX2l0ZXJhdG9yKCBjc3RyaW5nIHNyYyApCisgICAgOiBtX3NyYyggc3JjICkKKyAgICB7CisgICAgICAgIHRoaXMtPmluaXQoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTcmMsIHR5cGVuYW1lIE1vZGlmaWVyPgorICAgIGJhc2ljX3N0cmluZ190b2tlbl9pdGVyYXRvciggU3JjIHNyYywgTW9kaWZpZXIgY29uc3QmIG0gKQorICAgIDogbV9zcmMoIHNyYyApCisgICAgeworICAgICAgICB0aGlzLT5hcHBseV9tb2RpZmllciggbSApOworCisgICAgICAgIHRoaXMtPmluaXQoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIGlucHV0X2l0ZXJhdG9yX2NvcmVfYWNjZXNzOworCisgICAgLy8gaW5wdXQgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24KKyAgICBib29sICAgICAgICBnZXQoKQorICAgIHsKKyAgICAgICAgdHlwZW5hbWUgY3N0cmluZzo6aXRlcmF0b3IgYmVnaW4gPSBtX3NyYy5iZWdpbigpOworICAgICAgICBib29sIHJlcyA9IGJhc2U6OmdldCggYmVnaW4sIG1fc3JjLmVuZCgpICk7CisKKyAgICAgICAgbV9zcmMuYXNzaWduKCBiZWdpbiwgbV9zcmMuZW5kKCkgKTsKKworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIC8vIERhdGEgbWVtYmVycworICAgIGNzdHJpbmcgICAgIG1fc3JjOworfTsKKwordHlwZWRlZiBiYXNpY19zdHJpbmdfdG9rZW5faXRlcmF0b3I8Y2hhcj4gICAgICAgc3RyaW5nX3Rva2VuX2l0ZXJhdG9yOwordHlwZWRlZiBiYXNpY19zdHJpbmdfdG9rZW5faXRlcmF0b3I8d2NoYXJfdD4gICAgd3N0cmluZ190b2tlbl9pdGVyYXRvcjsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICByYW5nZV90b2tlbl9pdGVyYXRvciAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyLAorICAgICAgICAgdHlwZW5hbWUgQ2hhckNvbXBhcmUgPSB1dF9kZXRhaWw6OmRlZmF1bHRfY2hhcl9jb21wYXJlPEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgaXRlcmF0b3JfdmFsdWU8SXRlcj46OnR5cGU+LAorICAgICAgICAgdHlwZW5hbWUgVmFsdWVUeXBlICAgPSBzdGQ6OmJhc2ljX3N0cmluZzxCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGl0ZXJhdG9yX3ZhbHVlPEl0ZXI+Ojp0eXBlPiwKKyAgICAgICAgIHR5cGVuYW1lIFJlZmVyZW5jZSAgID0gVmFsdWVUeXBlIGNvbnN0Jj4KK2NsYXNzIHJhbmdlX3Rva2VuX2l0ZXJhdG9yCis6IHB1YmxpYyB0b2tlbl9pdGVyYXRvcl9iYXNlPHJhbmdlX3Rva2VuX2l0ZXJhdG9yPEl0ZXIsQ2hhckNvbXBhcmUsVmFsdWVUeXBlLFJlZmVyZW5jZT4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIGl0ZXJhdG9yX3ZhbHVlPEl0ZXI+Ojp0eXBlLENoYXJDb21wYXJlLFZhbHVlVHlwZSxSZWZlcmVuY2U+IHsKKyAgICB0eXBlZGVmIGJhc2ljX2NzdHJpbmc8dHlwZW5hbWUgVmFsdWVUeXBlOjp2YWx1ZV90eXBlPiBjc3RyaW5nOworICAgIHR5cGVkZWYgdG9rZW5faXRlcmF0b3JfYmFzZTxyYW5nZV90b2tlbl9pdGVyYXRvcjxJdGVyLENoYXJDb21wYXJlLFZhbHVlVHlwZSxSZWZlcmVuY2U+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBpdGVyYXRvcl92YWx1ZTxJdGVyPjo6dHlwZSxDaGFyQ29tcGFyZSxWYWx1ZVR5cGUsUmVmZXJlbmNlPiBiYXNlOworcHVibGljOgorICAgIGV4cGxpY2l0ICAgIHJhbmdlX3Rva2VuX2l0ZXJhdG9yKCkge30KKyAgICBleHBsaWNpdCAgICByYW5nZV90b2tlbl9pdGVyYXRvciggSXRlciBiZWdpbiwgSXRlciBlbmQgPSBJdGVyKCkgKQorICAgIDogbV9iZWdpbiggYmVnaW4gKSwgbV9lbmQoIGVuZCApCisgICAgeworICAgICAgICB0aGlzLT5pbml0KCk7CisgICAgfQorICAgIHJhbmdlX3Rva2VuX2l0ZXJhdG9yKCByYW5nZV90b2tlbl9pdGVyYXRvciBjb25zdCYgcmhzICkKKyAgICA6IGJhc2UoIHJocyApCisgICAgeworICAgICAgICBpZiggdGhpcy0+bV92YWxpZCApIHsKKyAgICAgICAgICAgIG1fYmVnaW4gPSByaHMubV9iZWdpbjsKKyAgICAgICAgICAgIG1fZW5kICAgPSByaHMubV9lbmQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNb2RpZmllcj4KKyAgICByYW5nZV90b2tlbl9pdGVyYXRvciggSXRlciBiZWdpbiwgSXRlciBlbmQsIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICA6IG1fYmVnaW4oIGJlZ2luICksIG1fZW5kKCBlbmQgKQorICAgIHsKKyAgICAgICAgdGhpcy0+YXBwbHlfbW9kaWZpZXIoIG0gKTsKKworICAgICAgICB0aGlzLT5pbml0KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBpbnB1dF9pdGVyYXRvcl9jb3JlX2FjY2VzczsKKworICAgIC8vIGlucHV0IGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uCisgICAgYm9vbCAgICAgICAgZ2V0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBiYXNlOjpnZXQoIG1fYmVnaW4sIG1fZW5kICk7CisgICAgfQorCisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgSXRlciBtX2JlZ2luOworICAgIEl0ZXIgbV9lbmQ7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICBtYWtlX3JhbmdlX3Rva2VuX2l0ZXJhdG9yICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZXI+CitpbmxpbmUgcmFuZ2VfdG9rZW5faXRlcmF0b3I8SXRlcj4KK21ha2VfcmFuZ2VfdG9rZW5faXRlcmF0b3IoIEl0ZXIgYmVnaW4sIEl0ZXIgZW5kID0gSXRlcigpICkKK3sKKyAgICByZXR1cm4gcmFuZ2VfdG9rZW5faXRlcmF0b3I8SXRlcj4oIGJlZ2luLCBlbmQgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgSXRlcix0eXBlbmFtZSBNb2RpZmllcj4KK2lubGluZSByYW5nZV90b2tlbl9pdGVyYXRvcjxJdGVyPgorbWFrZV9yYW5nZV90b2tlbl9pdGVyYXRvciggSXRlciBiZWdpbiwgSXRlciBlbmQsIE1vZGlmaWVyIGNvbnN0JiBtICkKK3sKKyAgICByZXR1cm4gcmFuZ2VfdG9rZW5faXRlcmF0b3I8SXRlcj4oIGJlZ2luLCBlbmQsIG0gKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVE9LRU5fSVRFUkFUT1JfSFBQXzA3MTg5NEdFUgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvbGF6eV9vc3RyZWFtLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9sYXp5X29zdHJlYW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiOWEwYTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvbGF6eV9vc3RyZWFtLmhwcApAQCAtMCwwICsxLDExNCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogY29udGFpbnMgZGVmaW5pdGlvbiBmb3IgYWxsIHRlc3QgdG9vbHMgaW4gdGVzdCB0b29sYm94CisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX0xBWllfT1NUUkVBTV9IUFBfMDcwNzA4R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfTEFaWV9PU1RSRUFNX0hQUF8wNzA3MDhHRVIKKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2NvbmZpZy5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc2Z3ZD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgbGF6eV9vc3RyZWFtICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworY2xhc3MgbGF6eV9vc3RyZWFtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgbGF6eV9vc3RyZWFtJiAgICBpbnN0YW5jZSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljIGxhenlfb3N0cmVhbSBpbnN0OyByZXR1cm4gaW5zdDsgfQorCisgICAgZnJpZW5kIHN0ZDo6b3N0cmVhbSYgICAgb3BlcmF0b3I8PCggc3RkOjpvc3RyZWFtJiBvc3RyLCBsYXp5X29zdHJlYW0gY29uc3QmIG8gKSB7IHJldHVybiBvKCBvc3RyICk7IH0KKworICAgIC8vIGFjY2VzcyBtZXRob2QKKyAgICBib29sICAgICAgICAgICAgICAgICAgICBlbXB0eSgpIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIG1fZW1wdHk7IH0KKworICAgIC8vIGFjdHVhbCBwcmludGluZyBpbnRlcmZhY2U7IHRvIGJlIGFjY2Vzc2VkIG9ubHkgYnkgdGhpcyBjbGFzcyBhbmQgY2hpbGRyZW4KKyAgICB2aXJ0dWFsIHN0ZDo6b3N0cmVhbSYgICBvcGVyYXRvcigpKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKSBjb25zdCAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIG9zdHI7IH0KK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCAgICAgICAgICAgICAgICBsYXp5X29zdHJlYW0oIGJvb2wgZW1wdHkgPSB0cnVlICkgOiBtX2VtcHR5KCBlbXB0eSApICAgIHt9CisKKyAgICAvLyBwcm90ZWN0ZWQgZGVzdHJ1Y3RvciB0byBtYWtlIHN1cmUgcmlnaHQgb25lIGlzIGNhbGxlZAorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1ODIpKQorcHVibGljOgorI2VuZGlmCisgICAgQk9PU1RfVEVTVF9QUk9URUNURURfVklSVFVBTCB+bGF6eV9vc3RyZWFtKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIGJvb2wgICAgICAgICAgICAgICAgICAgIG1fZW1wdHk7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgbGF6eV9vc3RyZWFtX2ltcGwgOiBwdWJsaWMgbGF6eV9vc3RyZWFtIHsKK3B1YmxpYzoKKyAgICBsYXp5X29zdHJlYW1faW1wbCggbGF6eV9vc3RyZWFtIGNvbnN0JiBwcmV2LCBUIHZhbHVlICkKKyAgICA6IGxhenlfb3N0cmVhbSggZmFsc2UgKQorICAgICwgbV9wcmV2KCBwcmV2ICkKKyAgICAsIG1fdmFsdWUoIHZhbHVlICkKKyAgICB7fQorcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHN0ZDo6b3N0cmVhbSYgICBvcGVyYXRvcigpKCBzdGQ6Om9zdHJlYW0mIG9zdHIgKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcHJldihvc3RyKSA8PCBtX3ZhbHVlOworICAgIH0KKworICAgIC8vIERhdGEgbWVtYmVycworICAgIGxhenlfb3N0cmVhbSBjb25zdCYgICAgIG1fcHJldjsKKyAgICBUICAgICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBsYXp5X29zdHJlYW1faW1wbDxUIGNvbnN0Jj4KK29wZXJhdG9yPDwoIGxhenlfb3N0cmVhbSBjb25zdCYgcHJldiwgVCBjb25zdCYgdiApCit7CisgICAgcmV0dXJuIGxhenlfb3N0cmVhbV9pbXBsPFQgY29uc3QmPiggcHJldiwgdiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaWYgQk9PU1RfVEVTVF9VU0VfU1REX0xPQ0FMRQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLHR5cGVuYW1lIFM+CitpbmxpbmUgbGF6eV9vc3RyZWFtX2ltcGw8UiYgKEJPT1NUX1RFU1RfQ0FMTF9ERUNMICopKFMmKT4KK29wZXJhdG9yPDwoIGxhenlfb3N0cmVhbSBjb25zdCYgcHJldiwgUiYgKEJPT1NUX1RFU1RfQ0FMTF9ERUNMICptYW4pKFMmKSApCit7CisgICAgcmV0dXJuIGxhenlfb3N0cmVhbV9pbXBsPFImIChCT09TVF9URVNUX0NBTExfREVDTCAqKShTJik+KCBwcmV2LCBtYW4gKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIHVuaXRfdGVzdAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvZW5hYmxlX3dhcm5pbmdzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RFU1RfTEFaWV9PU1RSRUFNX0hQUF8wNzA3MDhHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9uYW1lZF9wYXJhbXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL25hbWVkX3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcxZDU5NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9uYW1lZF9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsMzI5IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGZhY2lsaXRpZXMgZm9yIG5hbWVkIGZ1bmN0aW9uIHBhcmFtZXRlcnMgc3VwcG9ydAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9OQU1FRF9QQVJBTV8wMjI1MDVHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9OQU1FRF9QQVJBTV8wMjI1MDVHRVIKKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnR0aS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9hc3NpZ25fb3AuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBuZnAgeyAvLyBuYW1lZCBmdW5jdGlvbiBwYXJhbWV0ZXJzCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgdW5pcXVlX2lkLHR5cGVuYW1lIFJlZlR5cGU+ICAgc3RydWN0IG5hbWVkX3BhcmFtZXRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIHVuaXF1ZV9pZCxib29sIHJlcXVpcmVkPiAgICAgICAgICAgICAgICAgIHN0cnVjdCBrZXl3b3JkOworCituYW1lc3BhY2UgbmZwX2RldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIE5QMSx0eXBlbmFtZSBOUDI+ICAgICAgICBzdHJ1Y3QgbmFtZWRfcGFyYW1ldGVyX2NvbWJpbmU7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICBhY2Nlc3NfdG9faW52YWxpZF9wYXJhbWV0ZXIgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworc3RydWN0IGFjY2Vzc190b19pbnZhbGlkX3BhcmFtZXRlciB7fTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworaW5saW5lIHZvaWQgCityZXBvcnRfYWNjZXNzX3RvX2ludmFsaWRfcGFyYW1ldGVyKCkKK3sKKyAgICB0aHJvdyBhY2Nlc3NfdG9faW52YWxpZF9wYXJhbWV0ZXIoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgICAgICBuaWwgICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitzdHJ1Y3QgbmlsIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19IUF9hQ0MpIHx8IGRlZmluZWQoX19FREdfXykgfHwgZGVmaW5lZChfX1NVTlBST19DQykKKyAgICBvcGVyYXRvciBUKCkgY29uc3QKKyNlbHNlCisgICAgb3BlcmF0b3IgVCBjb25zdCYoKSBjb25zdAorI2VuZGlmCisgICAgeyByZXBvcnRfYWNjZXNzX3RvX2ludmFsaWRfcGFyYW1ldGVyKCk7IHN0YXRpYyBUKiB2ID0gMDsgcmV0dXJuICp2OyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIFQgYW55X2Nhc3QoKSBjb25zdAorICAgIHsgcmVwb3J0X2FjY2Vzc190b19pbnZhbGlkX3BhcmFtZXRlcigpOyBzdGF0aWMgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZSogdiA9IDA7IHJldHVybiAqdjsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnMT4KKyAgICBuaWwgb3BlcmF0b3IoKSggQXJnMSBjb25zdCYgKQorICAgIHsgcmVwb3J0X2FjY2Vzc190b19pbnZhbGlkX3BhcmFtZXRlcigpOyByZXR1cm4gbmlsKCk7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZzEsdHlwZW5hbWUgQXJnMj4KKyAgICBuaWwgb3BlcmF0b3IoKSggQXJnMSBjb25zdCYsIEFyZzIgY29uc3QmICkKKyAgICB7IHJlcG9ydF9hY2Nlc3NfdG9faW52YWxpZF9wYXJhbWV0ZXIoKTsgcmV0dXJuIG5pbCgpOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmcxLHR5cGVuYW1lIEFyZzIsdHlwZW5hbWUgQXJnMz4KKyAgICBuaWwgb3BlcmF0b3IoKSggQXJnMSBjb25zdCYsIEFyZzIgY29uc3QmLCBBcmczIGNvbnN0JiApCisgICAgeyByZXBvcnRfYWNjZXNzX3RvX2ludmFsaWRfcGFyYW1ldGVyKCk7IHJldHVybiBuaWwoKTsgfQorCisgICAgLy8gVmlzaXRhdGlvbiBzdXBwb3J0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KKyAgICB2b2lkICAgICAgICAgICAgYXBwbHlfdG8oIFZpc2l0b3ImIFYgKSBjb25zdCB7fQorCisgICAgc3RhdGljIG5pbCYgICAgIGluc3QoKSB7IHN0YXRpYyBuaWwgc19pbnN0OyByZXR1cm4gc19pbnN0OyB9Citwcml2YXRlOgorICAgIG5pbCgpIHt9Cit9OworICAgIAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICBuYW1lZF9wYXJhbWV0ZXJfYmFzZSAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZXJpdmVkPgorc3RydWN0IG5hbWVkX3BhcmFtZXRlcl9iYXNlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBOUD4KKyAgICBuYW1lZF9wYXJhbWV0ZXJfY29tYmluZTxOUCxEZXJpdmVkPgorICAgIG9wZXJhdG9yLCggTlAgY29uc3QmIG5wICkgY29uc3QgeyByZXR1cm4gbmFtZWRfcGFyYW1ldGVyX2NvbWJpbmU8TlAsRGVyaXZlZD4oIG5wLCAqc3RhdGljX2Nhc3Q8RGVyaXZlZCBjb25zdCo+KHRoaXMpICk7IH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBuYW1lZF9wYXJhbWV0ZXJfY29tYmluZSAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgTlAsIHR5cGVuYW1lIFJlc3QgPSBuaWw+CitzdHJ1Y3QgbmFtZWRfcGFyYW1ldGVyX2NvbWJpbmUgCis6IFJlc3QKKywgbmFtZWRfcGFyYW1ldGVyX2Jhc2U8bmFtZWRfcGFyYW1ldGVyX2NvbWJpbmU8TlAsUmVzdD4gPiB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBOUDo6cmVmX3R5cGUgIHJlc190eXBlOworICAgIHR5cGVkZWYgbmFtZWRfcGFyYW1ldGVyX2NvbWJpbmU8TlAsUmVzdD4gc2VsZl90eXBlOworCisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBuYW1lZF9wYXJhbWV0ZXJfY29tYmluZSggTlAgY29uc3QmIG5wLCBSZXN0IGNvbnN0JiByICkKKyAgICA6IFJlc3QoIHIgKQorICAgICwgbV9wYXJhbSggbnAgKQorICAgIHt9CisKKyAgICAvLyBBY2Nlc3MgbWV0aG9kcworICAgIHJlc190eXBlICAgIG9wZXJhdG9yW10oIGtleXdvcmQ8dHlwZW5hbWUgTlA6OmlkLHRydWU+IGt3ICkgY29uc3QgICAgeyByZXR1cm4gbV9wYXJhbVtrd107IH0KKyAgICByZXNfdHlwZSAgICBvcGVyYXRvcltdKCBrZXl3b3JkPHR5cGVuYW1lIE5QOjppZCxmYWxzZT4ga3cgKSBjb25zdCAgIHsgcmV0dXJuIG1fcGFyYW1ba3ddOyB9CisgICAgdXNpbmcgICAgICAgUmVzdDo6b3BlcmF0b3JbXTsKKworICAgIGJvb2wgICAgICAgIGhhcygga2V5d29yZDx0eXBlbmFtZSBOUDo6aWQsZmFsc2U+IGt3ICkgY29uc3QgICAgICAgICAgeyByZXR1cm4gbV9wYXJhbS5oYXMoIGt3ICk7IH0KKyAgICB1c2luZyAgICAgICBSZXN0OjpoYXM7CisKKyAgICB2b2lkICAgICAgICBlcmFzZSgga2V5d29yZDx0eXBlbmFtZSBOUDo6aWQsZmFsc2U+IGt3ICkgY29uc3QgICAgICAgIHsgbV9wYXJhbS5lcmFzZSgga3cgKTsgfQorICAgIHVzaW5nICAgICAgIFJlc3Q6OmVyYXNlOworCisjaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCBCT09TVF9URVNURURfQVQoMHgzMjA2KSkgfHwgXAorICAgIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHgwNjEwKSkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBOUD4KKyAgICBuYW1lZF9wYXJhbWV0ZXJfY29tYmluZTxOUCxzZWxmX3R5cGU+IG9wZXJhdG9yLCggTlAgY29uc3QmIG5wICkgY29uc3QKKyAgICB7IHJldHVybiBuYW1lZF9wYXJhbWV0ZXJfY29tYmluZTxOUCxzZWxmX3R5cGU+KCBucCwgKnRoaXMgKTsgfQorI2Vsc2UKKyAgICB1c2luZyAgICAgICBuYW1lZF9wYXJhbWV0ZXJfYmFzZTxuYW1lZF9wYXJhbWV0ZXJfY29tYmluZTxOUCxSZXN0PiA+OjpvcGVyYXRvciw7CisjZW5kaWYKKworICAgIC8vIFZpc2l0YXRpb24gc3VwcG9ydAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CisgICAgdm9pZCAgICAgICAgICAgIGFwcGx5X3RvKCBWaXNpdG9yJiBWICkgY29uc3QKKyAgICB7CisgICAgICAgIG1fcGFyYW0uYXBwbHlfdG8oIFYgKTsKKworICAgICAgICBSZXN0OjphcHBseV90byggViApOworICAgIH0KK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgTlAgICAgICAgICAgbV9wYXJhbTsKK307CisKK30gLy8gbmFtZXNwYWNlIG5mcF9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICBuYW1lZF9wYXJhbWV0ZXIgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSB1bmlxdWVfaWQsdHlwZW5hbWUgUmVmZXJlbmNlVHlwZT1UJj4KK3N0cnVjdCBuYW1lZF9wYXJhbWV0ZXIKKzogbmZwX2RldGFpbDo6bmFtZWRfcGFyYW1ldGVyX2Jhc2U8bmFtZWRfcGFyYW1ldGVyPFQsIHVuaXF1ZV9pZCxSZWZlcmVuY2VUeXBlPiA+Cit7CisgICAgdHlwZWRlZiBuZnBfZGV0YWlsOjpuaWwgbmlsX3Q7CisgICAgdHlwZWRlZiBUICAgICAgICAgICAgICAgZGF0YV90eXBlOworICAgIHR5cGVkZWYgUmVmZXJlbmNlVHlwZSAgIHJlZl90eXBlOworICAgIHR5cGVkZWYgdW5pcXVlX2lkICAgICAgIGlkOworCisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICAgICAgbmFtZWRfcGFyYW1ldGVyKCByZWZfdHlwZSB2ICkgCisgICAgOiBtX3ZhbHVlKCB2ICkKKyAgICAsIG1fZXJhc2VkKCBmYWxzZSApCisgICAge30KKyAgICBuYW1lZF9wYXJhbWV0ZXIoIG5hbWVkX3BhcmFtZXRlciBjb25zdCYgbnAgKQorICAgIDogbV92YWx1ZSggbnAubV92YWx1ZSApCisgICAgLCBtX2VyYXNlZCggbnAubV9lcmFzZWQgKQorICAgIHt9CisKKyAgICAvLyBBY2Nlc3MgbWV0aG9kcworICAgIHJlZl90eXBlICAgICAgICBvcGVyYXRvcltdKCBrZXl3b3JkPHVuaXF1ZV9pZCx0cnVlPiApIGNvbnN0ICAgICB7IHJldHVybiBtX2VyYXNlZCA/IG5pbF90OjppbnN0KCkudGVtcGxhdGUgYW55X2Nhc3Q8cmVmX3R5cGU+KCkgOiAgbV92YWx1ZTsgfQorICAgIHJlZl90eXBlICAgICAgICBvcGVyYXRvcltdKCBrZXl3b3JkPHVuaXF1ZV9pZCxmYWxzZT4gKSBjb25zdCAgICB7IHJldHVybiBtX2VyYXNlZCA/IG5pbF90OjppbnN0KCkudGVtcGxhdGUgYW55X2Nhc3Q8cmVmX3R5cGU+KCkgOiAgbV92YWx1ZTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFVua25vd25JZD4KKyAgICBuaWxfdCAgICAgICAgICAgb3BlcmF0b3JbXSgga2V5d29yZDxVbmtub3duSWQsZmFsc2U+ICkgY29uc3QgICAgeyByZXR1cm4gbmlsX3Q6Omluc3QoKTsgfQorCisgICAgYm9vbCAgICAgICAgICAgIGhhcygga2V5d29yZDx1bmlxdWVfaWQsZmFsc2U+ICkgY29uc3QgICAgICAgICAgIHsgcmV0dXJuICFtX2VyYXNlZDsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFVua25vd25JZD4KKyAgICBib29sICAgICAgICAgICAgaGFzKCBrZXl3b3JkPFVua25vd25JZCxmYWxzZT4gKSBjb25zdCAgICAgICAgICAgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZvaWQgICAgICAgICAgICBlcmFzZSgga2V5d29yZDx1bmlxdWVfaWQsZmFsc2U+ICkgY29uc3QgICAgICAgICB7IG1fZXJhc2VkID0gdHJ1ZTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFVua25vd25JZD4KKyAgICB2b2lkICAgICAgICAgICAgZXJhc2UoIGtleXdvcmQ8VW5rbm93bklkLGZhbHNlPiApIGNvbnN0ICAgICAgICAge30KKworICAgIC8vIFZpc2l0YXRpb24gc3VwcG9ydAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CisgICAgdm9pZCAgICAgICAgICAgIGFwcGx5X3RvKCBWaXNpdG9yJiBWICkgY29uc3QKKyAgICB7CisgICAgICAgIFYuc2V0X3BhcmFtZXRlciggcnR0aTo6dHlwZV9pZDx1bmlxdWVfaWQ+KCksIG1fdmFsdWUgKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgcmVmX3R5cGUgICAgICAgIG1fdmFsdWU7CisgICAgbXV0YWJsZSBib29sICAgIG1fZXJhc2VkOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgICBub19wYXJhbXMgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgbmZwX2RldGFpbCB7Cit0eXBlZGVmIG5hbWVkX3BhcmFtZXRlcjxjaGFyLCBzdHJ1Y3Qgbm9fcGFyYW1zX3R5cGVfdCxjaGFyPiBub19wYXJhbXNfdHlwZTsKK30gLy8gbmFtZXNwYWNlIG5mcF9kZXRhaWwKKworbmFtZXNwYWNlIHsKK25mcF9kZXRhaWw6Om5vX3BhcmFtc190eXBlIG5vX3BhcmFtcyggJ1wwJyApOworfSAvLyBsb2NhbCBuYW1lc3BhY2UKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgICAga2V5d29yZCAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSB1bmlxdWVfaWQsIGJvb2wgcmVxdWlyZWQgPSBmYWxzZT4KK3N0cnVjdCBrZXl3b3JkIHsKKyAgICB0eXBlZGVmIHVuaXF1ZV9pZCBpZDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgbmFtZWRfcGFyYW1ldGVyPFQgY29uc3QsdW5pcXVlX2lkPgorICAgIG9wZXJhdG9yPSggVCBjb25zdCYgdCApIGNvbnN0ICAgICAgIHsgcmV0dXJuIG5hbWVkX3BhcmFtZXRlcjxUIGNvbnN0LHVuaXF1ZV9pZD4oIHQgKTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBuYW1lZF9wYXJhbWV0ZXI8VCx1bmlxdWVfaWQ+CisgICAgb3BlcmF0b3I9KCBUJiB0ICkgY29uc3QgICB7IHJldHVybiBuYW1lZF9wYXJhbWV0ZXI8VCx1bmlxdWVfaWQ+KCB0ICk7IH0KKworICAgIG5hbWVkX3BhcmFtZXRlcjxjaGFyIGNvbnN0Kix1bmlxdWVfaWQsY2hhciBjb25zdCo+CisgICAgb3BlcmF0b3I9KCBjaGFyIGNvbnN0KiB0ICkgY29uc3QgICB7IHJldHVybiBuYW1lZF9wYXJhbWV0ZXI8Y2hhciBjb25zdCosdW5pcXVlX2lkLGNoYXIgY29uc3QqPiggdCApOyB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICB0eXBlZF9rZXl3b3JkICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIHVuaXF1ZV9pZCwgYm9vbCByZXF1aXJlZCA9IGZhbHNlPgorc3RydWN0IHR5cGVkX2tleXdvcmQgOiBrZXl3b3JkPHVuaXF1ZV9pZCxyZXF1aXJlZD4geworICAgIG5hbWVkX3BhcmFtZXRlcjxUIGNvbnN0LHVuaXF1ZV9pZD4KKyAgICBvcGVyYXRvcj0oIFQgY29uc3QmIHQgKSBjb25zdCAgICAgICB7IHJldHVybiBuYW1lZF9wYXJhbWV0ZXI8VCBjb25zdCx1bmlxdWVfaWQ+KCB0ICk7IH0KKworICAgIG5hbWVkX3BhcmFtZXRlcjxULHVuaXF1ZV9pZD4KKyAgICBvcGVyYXRvcj0oIFQmIHQgKSBjb25zdCAgICAgICAgICAgICB7IHJldHVybiBuYW1lZF9wYXJhbWV0ZXI8VCx1bmlxdWVfaWQ+KCB0ICk7IH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIHVuaXF1ZV9pZD4KK3N0cnVjdCB0eXBlZF9rZXl3b3JkPGJvb2wsdW5pcXVlX2lkLGZhbHNlPgorOiBrZXl3b3JkPHVuaXF1ZV9pZCxmYWxzZT4KKywgbmFtZWRfcGFyYW1ldGVyPGJvb2wsdW5pcXVlX2lkLGJvb2w+IHsKKyAgICB0eXBlZGVmIHVuaXF1ZV9pZCBpZDsKKworICAgIHR5cGVkX2tleXdvcmQoKSA6IG5hbWVkX3BhcmFtZXRlcjxib29sLHVuaXF1ZV9pZCxib29sPiggdHJ1ZSApIHt9CisKKyAgICBuYW1lZF9wYXJhbWV0ZXI8Ym9vbCx1bmlxdWVfaWQsYm9vbD4KKyAgICBvcGVyYXRvciEoKSBjb25zdCAgICAgICAgICAgeyByZXR1cm4gbmFtZWRfcGFyYW1ldGVyPGJvb2wsdW5pcXVlX2lkLGJvb2w+KCBmYWxzZSApOyB9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgb3B0aW9uYWxseV9hc3NpZ24gICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZAorb3B0aW9uYWxseV9hc3NpZ24oIFQmLCBuZnBfZGV0YWlsOjpuaWwgKQoreworICAgIG5mcF9kZXRhaWw6OnJlcG9ydF9hY2Nlc3NfdG9faW52YWxpZF9wYXJhbWV0ZXIoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgU291cmNlPgoraW5saW5lIHZvaWQKKyNpZiBCT09TVF9XT1JLQVJPVU5EKCBfX01XRVJLU19fLCBCT09TVF9URVNURURfQVQoIDB4MzAwMyApICkgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoIF9fREVDQ1hYX1ZFUiwgQk9PU1RfVEVTVEVEX0FUKDYwNTkwMDQyKSApCitvcHRpb25hbGx5X2Fzc2lnbiggVCYgdGFyZ2V0LCBTb3VyY2Ugc3JjICkKKyNlbHNlCitvcHRpb25hbGx5X2Fzc2lnbiggVCYgdGFyZ2V0LCBTb3VyY2UgY29uc3QmIHNyYyApCisjZW5kaWYKK3sKKyAgICB1c2luZyBuYW1lc3BhY2UgdW5pdF90ZXN0OworCisgICAgYXNzaWduX29wKCB0YXJnZXQsIHNyYywgc3RhdGljX2Nhc3Q8aW50PigwKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQYXJhbXMsIHR5cGVuYW1lIEtleXdvcmQ+CitpbmxpbmUgdm9pZAorb3B0aW9uYWxseV9hc3NpZ24oIFQmIHRhcmdldCwgUGFyYW1zIGNvbnN0JiBwLCBLZXl3b3JkIGsgKQoreworICAgIGlmKCBwLmhhcyhrKSApCisgICAgICAgIG9wdGlvbmFsbHlfYXNzaWduKCB0YXJnZXQsIHBba10gKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgbmZwCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9OQU1FRF9QQVJBTV8wMjI1MDVHRVIKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J0dGkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J0dGkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MTMxMDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnR0aS5ocHAKQEAgLTAsMCArMSw2NCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzaW1wbGUgZmFjaWxpdGllcyBmb3IgYWNjZXNzaW5nIHR5cGUgaW5mb3JtYXRpb24gYXQgcnVudGltZQorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9SVFRJX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9SVFRJX0hQUF8wNjI2MDRHRVIKKworI2luY2x1ZGUgPGNzdGRkZWY+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBydHRpIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgICAgIHJ0dGk6OnR5cGVfaWQgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0eXBlZGVmIHN0ZDo6cHRyZGlmZl90IGlkX3Q7CisKK25hbWVzcGFjZSBydHRpX2RldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgcnR0aWRfaG9sZGVyIHsKKyAgICBzdGF0aWMgaWRfdCBpZCgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8aWRfdD4oICZpbnN0KCkgKTsgfQorCitwcml2YXRlOgorICAgIHN0cnVjdCBydHRpZCB7fTsKKworICAgIHN0YXRpYyBydHRpZCBjb25zdCYgaW5zdCgpIHsgc3RhdGljIHJ0dGlkIHNfaW5zdDsgIHJldHVybiBzX2luc3Q7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIHJ0dGlfZGV0YWlsCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+ICAgCitpbmxpbmUgaWRfdAordHlwZV9pZCgpCit7CisgICAgcmV0dXJuIHJ0dGlfZGV0YWlsOjpydHRpZF9ob2xkZXI8VD46OmlkKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfUlRUSV9TV0lUQ0goIHR5cGVfaWRfICkgaWYoIDo6bmRuYm9vc3Q6OnJ0dGk6OmlkX3Qgc3dpdGNoX2J5X2lkID0gdHlwZV9pZF8gKQorI2RlZmluZSBCT09TVF9SVFRJX0NBU0UoIHR5cGUgKSAgICAgICBpZiggc3dpdGNoX2J5X2lkID09IDo6bmRuYm9vc3Q6OnJ0dGk6OnR5cGVfaWQ8dHlwZT4oKSApCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHJ0dGkKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX1JUVElfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvYXJndW1lbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvYXJndW1lbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNDk1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9hcmd1bWVudC5ocHAKQEAgLTAsMCArMSwxMTIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogbW9kZWwgb2YgYWN0dWFsIGFyZ3VtZW50IChib3RoIHR5cGVkIGFuZCBhYnN0cmFjdCBpbnRlcmZhY2UpCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9BUkdVTUVOVF9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0FSR1VNRU5UX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdmFsaWRhdGlvbi5ocHA+CisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NsYXNzX3Byb3BlcnRpZXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnR0aS5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGNhc3NlcnQ+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgIHJ1bnRpbWU6OmFyZ3VtZW50ICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICBwcmFnbWEgd2FybmluZyhwdXNoKQorIyAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MjQ0KQorI2VuZGlmCisKK2NsYXNzIGFyZ3VtZW50IHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGFyZ3VtZW50KCBwYXJhbWV0ZXIgY29uc3QmIHAsIHJ0dGk6OmlkX3QgdmFsdWVfdHlwZSApCisgICAgOiBwX2Zvcm1hbF9wYXJhbWV0ZXIoIHAgKQorICAgICwgcF92YWx1ZV90eXBlKCB2YWx1ZV90eXBlICkKKyAgICB7fQorCisgICAgLy8gRGVzdHJ1Y3RvcgorICAgIHZpcnR1YWwgICAgIH5hcmd1bWVudCgpICB7fQorCisgICAgLy8gUHVibGljIHByb3BlcnRpZXMKKyAgICB1bml0X3Rlc3Q6OnJlYWRvbmx5X3Byb3BlcnR5PHBhcmFtZXRlciBjb25zdCY+IHBfZm9ybWFsX3BhcmFtZXRlcjsKKyAgICB1bml0X3Rlc3Q6OnJlYWRvbmx5X3Byb3BlcnR5PHJ0dGk6OmlkX3Q+ICAgICAgIHBfdmFsdWVfdHlwZTsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBydW50aW1lOjp0eXBlZF9hcmd1bWVudCAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIHR5cGVkX2FyZ3VtZW50IDogcHVibGljIGFyZ3VtZW50IHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0IHR5cGVkX2FyZ3VtZW50KCBwYXJhbWV0ZXIgY29uc3QmIHAgKQorICAgIDogYXJndW1lbnQoIHAsIHJ0dGk6OnR5cGVfaWQ8VD4oKSApCisgICAge30KKyAgICB0eXBlZF9hcmd1bWVudCggcGFyYW1ldGVyIGNvbnN0JiBwLCBUIGNvbnN0JiB0ICkKKyAgICA6IGFyZ3VtZW50KCBwLCBydHRpOjp0eXBlX2lkPFQ+KCkgKQorICAgICwgcF92YWx1ZSggdCApCisgICAge30KKworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PFQ+ICAgIHBfdmFsdWU7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICBydW50aW1lOjphcmdfdmFsdWUgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCBjb25zdCYKK2FyZ192YWx1ZSggYXJndW1lbnQgY29uc3QmIGFyZ18gKQoreworICAgIGFzc2VydCggYXJnXy5wX3ZhbHVlX3R5cGUgPT0gcnR0aTo6dHlwZV9pZDxUPigpICk7IC8vIGRldGVjdCBsb2dpYyBlcnJvcgorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVkX2FyZ3VtZW50PFQ+IGNvbnN0Jj4oIGFyZ18gKS5wX3ZhbHVlLnZhbHVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIFQmCithcmdfdmFsdWUoIGFyZ3VtZW50JiBhcmdfICkKK3sKKyAgICBhc3NlcnQoIGFyZ18ucF92YWx1ZV90eXBlID09IHJ0dGk6OnR5cGVfaWQ8VD4oKSApOyAvLyBkZXRlY3QgbG9naWMgZXJyb3IKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDx0eXBlZF9hcmd1bWVudDxUPiY+KCBhcmdfICkucF92YWx1ZS52YWx1ZTsKK30KKworI2lmZGVmIEJPT1NUX01TVkMKKyMgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0FSR1VNRU5UX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd1bWVudF9mYWN0b3J5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd1bWVudF9mYWN0b3J5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjY3MDliCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3VtZW50X2ZhY3RvcnkuaHBwCkBAIC0wLDAgKzEsMjE4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBnZW5lcmljIHR5cGVkX2FyZ3VtZW50X2ZhY3RvcnkgaW1wbGVtZW50YXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9BUkdVTUVOVF9GQUNUT1JZX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX0FSR1VNRU5UX0ZBQ1RPUllfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9hcmd1bWVudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3RyYWNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbHVlX2dlbmVyYXRvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWx1ZV9oYW5kbGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZGV0YWlsL2FyZ3VtZW50X3ZhbHVlX3VzYWdlLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWZhY2UvYXJndW1lbnRfZmFjdG9yeS5ocHA+CisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NhbGxiYWNrLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9vcHRpb25hbC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICBkZWZhdWx0X3ZhbHVlX2ludGVycHJldGVyICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgcnRfY2xhX2RldGFpbCB7CisKK3N0cnVjdCBkZWZhdWx0X3ZhbHVlX2ludGVycHJldGVyIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgb3BlcmF0b3IoKSggYXJndl90cmF2ZXJzZXImIHRyLCBuZG5ib29zdDo6b3B0aW9uYWw8VD4mIHZhbHVlICkKKyAgICB7CisgICAgICAgIGlmKCBpbnRlcnByZXRfYXJndW1lbnRfdmFsdWUoIHRyLnRva2VuKCksIHZhbHVlLCAwICkgKQorICAgICAgICAgICAgdHIubmV4dF90b2tlbigpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIHJ0X2NsYV9kZXRhaWwKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIHR5cGVkX2FyZ3VtZW50X2ZhY3RvcnkgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IHR5cGVkX2FyZ3VtZW50X2ZhY3RvcnkgOiBwdWJsaWMgYXJndW1lbnRfZmFjdG9yeSB7CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICB0eXBlZF9hcmd1bWVudF9mYWN0b3J5KCkKKyAgICA6IG1fdmFsdWVfaW50ZXJwcmV0ZXIoIHJ0X2NsYV9kZXRhaWw6OmRlZmF1bHRfdmFsdWVfaW50ZXJwcmV0ZXIoKSApCisgICAge30KKyAgICBCT09TVF9SVF9QQVJBTV9VTk5FRURFRF9WSVJUVUFMIH50eXBlZF9hcmd1bWVudF9mYWN0b3J5KCkge30KKworICAgIC8vIHByb3BlcnRpZXMgbW9kaWZpY2F0aW9uCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTW9kaWZpZXI+CisgICAgdm9pZCAgICAgICAgICAgICAgICBhY2NlcHRfbW9kaWZpZXIoIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICB7CisgICAgICAgIG9wdGlvbmFsbHlfYXNzaWduKCBtX3ZhbHVlX2hhbmRsZXIsIG0sIGhhbmRsZXIgKTsKKyAgICAgICAgb3B0aW9uYWxseV9hc3NpZ24oIG1fdmFsdWVfaW50ZXJwcmV0ZXIsIG0sIGludGVycHJldGVyICk7CisKKyAgICAgICAgaWYoIG0uaGFzKCBkZWZhdWx0X3ZhbHVlICkgKSB7CisgICAgICAgICAgICBCT09TVF9SVF9QQVJBTV9WQUxJREFURV9MT0dJQyggIW1fdmFsdWVfZ2VuZXJhdG9yLCAKKyAgICAgICAgICAgICAgICBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAibXVsdGlwbGUgdmFsdWUgZ2VuZXJhdG9ycyBmb3IgcGFyYW1ldGVyIiApICk7CisKKyAgICAgICAgICAgIFQgY29uc3QmIGR2X3JlZiA9IG1bZGVmYXVsdF92YWx1ZV07CisgICAgICAgICAgICBtX3ZhbHVlX2dlbmVyYXRvciA9IHJ0X2NsYV9kZXRhaWw6OmNvbnN0X2dlbmVyYXRvcjxUPiggZHZfcmVmICk7CisgICAgICAgIH0KKworICAgICAgICBpZiggbS5oYXMoIGRlZmF1bHRfcmVmZXJfdG8gKSApIHsKKyAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX1ZBTElEQVRFX0xPR0lDKCAhbV92YWx1ZV9nZW5lcmF0b3IsIAorICAgICAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICJtdWx0aXBsZSB2YWx1ZSBnZW5lcmF0b3JzIGZvciBwYXJhbWV0ZXIiICkgKTsKKworICAgICAgICAgICAgY3N0cmluZyByZWZfaWQgPSBtW2RlZmF1bHRfcmVmZXJfdG9dOworICAgICAgICAgICAgbV92YWx1ZV9nZW5lcmF0b3IgPSBydF9jbGFfZGV0YWlsOjpyZWZfZ2VuZXJhdG9yPFQ+KCByZWZfaWQgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBtLmhhcyggYXNzaWduX3RvICkgKSB7CisgICAgICAgICAgICBCT09TVF9SVF9QQVJBTV9WQUxJREFURV9MT0dJQyggIW1fdmFsdWVfaGFuZGxlciwgCisgICAgICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggIm11bHRpcGxlIHZhbHVlIGhhbmRsZXJzIGZvciBwYXJhbWV0ZXIiICkgKTsKKworICAgICAgICAgICAgbV92YWx1ZV9oYW5kbGVyID0gcnRfY2xhX2RldGFpbDo6YXNzaWduZXI8VD4oIG1bYXNzaWduX3RvXSApOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQXJndW1lbnQgZmFjdG9yeSBpbXBsZW1lbnRhdGlvbgorICAgIHZpcnR1YWwgYXJndW1lbnRfcHRyIHByb2R1Y2VfdXNpbmcoIHBhcmFtZXRlciYgcCwgYXJndl90cmF2ZXJzZXImIHRyICk7CisgICAgdmlydHVhbCBhcmd1bWVudF9wdHIgcHJvZHVjZV91c2luZyggcGFyYW1ldGVyJiBwLCBwYXJzZXIgY29uc3QmICk7CisgICAgdmlydHVhbCB2b2lkICAgICAgICAgYXJndW1lbnRfdXNhZ2VfaW5mbyggZm9ybWF0X3N0cmVhbSYgZnMgKTsKKworLy8gISEgcHJpdmF0ZT8KKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICB1bml0X3Rlc3Q6OmNhbGxiYWNrMjxwYXJhbWV0ZXIgY29uc3QmLFQmPiAgICAgICAgICAgICAgICAgICBtX3ZhbHVlX2hhbmRsZXI7CisgICAgdW5pdF90ZXN0OjpjYWxsYmFjazI8cGFyc2VyIGNvbnN0JixuZG5ib29zdDo6b3B0aW9uYWw8VD4mPiAgICAgbV92YWx1ZV9nZW5lcmF0b3I7CisgICAgdW5pdF90ZXN0OjpjYWxsYmFjazI8YXJndl90cmF2ZXJzZXImLG5kbmJvb3N0OjpvcHRpb25hbDxUPiY+ICAgbV92YWx1ZV9pbnRlcnByZXRlcjsKK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgYXJndW1lbnRfcHRyCit0eXBlZF9hcmd1bWVudF9mYWN0b3J5PFQ+Ojpwcm9kdWNlX3VzaW5nKCBwYXJhbWV0ZXImIHAsIGFyZ3ZfdHJhdmVyc2VyJiB0ciApCit7CisgICAgbmRuYm9vc3Q6Om9wdGlvbmFsPFQ+IHZhbHVlOworCisgICAgdHJ5IHsKKyAgICAgICAgbV92YWx1ZV9pbnRlcnByZXRlciggdHIsIHZhbHVlICk7CisgICAgfQorICAgIGNhdGNoKCAuLi4gKSB7IC8vICEhIHNob3VsZCB3ZSBkbyB0aGF0PworICAgICAgICBCT09TVF9SVF9QQVJBTV9UUkFDRSggIkZhaWwgdG8gcGFyc2UgYXJndW1lbnQgdmFsdWUiICk7CisKKyAgICAgICAgaWYoICFwLnBfb3B0aW9uYWxfdmFsdWUgKQorICAgICAgICAgICAgdGhyb3c7CisgICAgfQorCisgICAgYXJndW1lbnRfcHRyIGFjdHVhbF9hcmcgPSBwLmFjdHVhbF9hcmd1bWVudCgpOworCisgICAgQk9PU1RfUlRfQ0xBX1ZBTElEQVRFX0lOUFVUKCAhIXZhbHVlIHx8IHAucF9vcHRpb25hbF92YWx1ZSwgdHIsIAorICAgICAgICBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAiQXJndW1lbnQgdmFsdWUgbWlzc2luZyBmb3IgcGFyYW1ldGVyICIgKSA8PCBwLmlkXzJfcmVwb3J0KCkgKTsKKworICAgIEJPT1NUX1JUX0NMQV9WQUxJREFURV9JTlBVVCggIWFjdHVhbF9hcmcgfHwgcC5wX211bHRpcGxpY2FibGUsIHRyLCAKKyAgICAgICAgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggIlVuZXhwZWN0ZWQgcmVwZXRpdGlvbiBvZiB0aGUgcGFyYW1ldGVyICIgKSA8PCBwLmlkXzJfcmVwb3J0KCkgKTsKKworICAgIGlmKCAhIXZhbHVlICYmICEhbV92YWx1ZV9oYW5kbGVyICkKKyAgICAgICAgbV92YWx1ZV9oYW5kbGVyKCBwLCAqdmFsdWUgKTsKKworICAgIGlmKCAhcC5wX211bHRpcGxpY2FibGUgKQorICAgICAgICBhY3R1YWxfYXJnLnJlc2V0KCBwLnBfb3B0aW9uYWxfdmFsdWUgJiYgKHJ0dGk6OnR5cGVfaWQ8VD4oKSAhPSBydHRpOjp0eXBlX2lkPGJvb2w+KCkpCisgICAgICAgICAgICA/IHN0YXRpY19jYXN0PGFyZ3VtZW50Kj4obmV3IHR5cGVkX2FyZ3VtZW50PG5kbmJvb3N0OjpvcHRpb25hbDxUPiA+KCBwLCB2YWx1ZSApKQorICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxhcmd1bWVudCo+KG5ldyB0eXBlZF9hcmd1bWVudDxUPiggcCwgKnZhbHVlICkpICk7CisgICAgZWxzZSB7CisgICAgICAgIHR5cGVkZWYgc3RkOjpsaXN0PG5kbmJvb3N0OjpvcHRpb25hbDxUPiA+IG9wdGlvbmFsX2xpc3Q7CisKKyAgICAgICAgaWYoICFhY3R1YWxfYXJnICkKKyAgICAgICAgICAgIGFjdHVhbF9hcmcucmVzZXQoIHAucF9vcHRpb25hbF92YWx1ZSAKKyAgICAgICAgICAgICAgICA/IHN0YXRpY19jYXN0PGFyZ3VtZW50Kj4obmV3IHR5cGVkX2FyZ3VtZW50PG9wdGlvbmFsX2xpc3Q+KCBwICkpCisgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxhcmd1bWVudCo+KG5ldyB0eXBlZF9hcmd1bWVudDxzdGQ6Omxpc3Q8VD4gPiggcCApKSApOworCisgICAgICAgIGlmKCBwLnBfb3B0aW9uYWxfdmFsdWUgKSB7CisgICAgICAgICAgICBvcHRpb25hbF9saXN0JiB2YWx1ZXMgPSBhcmdfdmFsdWU8b3B0aW9uYWxfbGlzdD4oICphY3R1YWxfYXJnICk7CisKKyAgICAgICAgICAgIHZhbHVlcy5wdXNoX2JhY2soIHZhbHVlICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzdGQ6Omxpc3Q8VD4mIHZhbHVlcyA9IGFyZ192YWx1ZTxzdGQ6Omxpc3Q8VD4gPiggKmFjdHVhbF9hcmcgKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFsdWVzLnB1c2hfYmFjayggKnZhbHVlICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gYWN0dWFsX2FyZzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBhcmd1bWVudF9wdHIgCit0eXBlZF9hcmd1bWVudF9mYWN0b3J5PFQ+Ojpwcm9kdWNlX3VzaW5nKCBwYXJhbWV0ZXImIHAsIHBhcnNlciBjb25zdCYgcGEgKQoreworICAgIGFyZ3VtZW50X3B0ciBhY3R1YWxfYXJnOworCisgICAgaWYoICFtX3ZhbHVlX2dlbmVyYXRvciApCisgICAgICAgIHJldHVybiBhY3R1YWxfYXJnOworCisgICAgbmRuYm9vc3Q6Om9wdGlvbmFsPFQ+IHZhbHVlOworICAgIG1fdmFsdWVfZ2VuZXJhdG9yKCBwYSwgdmFsdWUgKTsKKworICAgIGlmKCAhdmFsdWUgKQorICAgICAgICByZXR1cm4gYWN0dWFsX2FyZzsKKworICAgIGlmKCAhIW1fdmFsdWVfaGFuZGxlciApCisgICAgICAgIG1fdmFsdWVfaGFuZGxlciggcCwgKnZhbHVlICk7CisKKyAgICBhY3R1YWxfYXJnLnJlc2V0KCBuZXcgdHlwZWRfYXJndW1lbnQ8VD4oIHAsICp2YWx1ZSApICk7CisKKyAgICByZXR1cm4gYWN0dWFsX2FyZzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkCit0eXBlZF9hcmd1bWVudF9mYWN0b3J5PFQ+Ojphcmd1bWVudF91c2FnZV9pbmZvKCBmb3JtYXRfc3RyZWFtJiBmcyApCit7CisgICAgcnRfY2xhX2RldGFpbDo6YXJndW1lbnRfdmFsdWVfdXNhZ2UoIGZzLCAwLCByZWludGVycHJldF9jYXN0PFQqPigwKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgY2xhCisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfQVJHVU1FTlRfRkFDVE9SWV9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Njc0YmQyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmhwcApAQCAtMCwwICsxLDk4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBkZWZpbmVzIGZhY2lsaXR5IHRvIGhpZGUgaW5wdXQgdHJhdmVyc2luZyBkZXRhaWxzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfQVJHVl9UUkFWRVJTRVJfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfQVJHVl9UUkFWRVJTRVJfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9ub25jb3B5YWJsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3Qvc2hhcmVkX2FycmF5LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgcnVudGltZTo6Y2xhOjphcmd2X3RyYXZlcnNlciAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIGFyZ3ZfdHJhdmVyc2VyIDogbm9uY29weWFibGUgeworICAgIGNsYXNzIHBhcnNlcjsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGFyZ3ZfdHJhdmVyc2VyKCk7CisKKyAgICAvLyBwdWJsaWNfcHJvcGVydGllcworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PGJvb2w+ICAgICAgICAgcF9pZ25vcmVfbWlzbWF0Y2g7CisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8Y2hhcl90eXBlPiAgICBwX3NlcGFyYXRvcjsKKworICAgIC8vIGFyZ2MrYXJndiA8LT4gaW50ZXJuYWwgYnVmZmVyIGV4Y2hhbmdlCisgICAgdm9pZCAgICAgICAgICAgIGluaXQoIGludCBhcmdjLCBjaGFyX3R5cGUqKiBhcmd2ICk7CisgICAgdm9pZCAgICAgICAgICAgIHJlbWFpbmRlciggaW50JiBhcmdjLCBjaGFyX3R5cGUqKiBhcmd2ICk7CisKKyAgICAvLyB0b2tlbiBiYXNlZCBwYXJzaW5nCisgICAgY3N0cmluZyAgICAgICAgIHRva2VuKCkgY29uc3Q7CisgICAgdm9pZCAgICAgICAgICAgIG5leHRfdG9rZW4oKTsKKworICAgIC8vIHdob2xlIGlucHV0IHBhcnNpbmcKKyAgICBjc3RyaW5nICAgICAgICAgaW5wdXQoKSBjb25zdDsKKyAgICB2b2lkICAgICAgICAgICAgdHJpbSggc3RkOjpzaXplX3Qgc2l6ZSApOworICAgIGJvb2wgICAgICAgICAgICBtYXRjaF9mcm9udCggY3N0cmluZyApOworICAgIGJvb2wgICAgICAgICAgICBtYXRjaF9mcm9udCggY2hhcl90eXBlIGMgKTsKKyAgICBib29sICAgICAgICAgICAgZW9pKCkgY29uc3Q7CisKKyAgICAvLyB0cmFuc2FjdGlvbiBsb2dpYyBzdXBwb3J0CisgICAgdm9pZCAgICAgICAgICAgIGNvbW1pdCgpOworICAgIHZvaWQgICAgICAgICAgICByb2xsYmFjaygpOworCisgICAgLy8gY3VycmVudCBwb3NpdGlvbiBhY2Nlc3M7IHVzZWQgdG8gc2F2ZSBzb21lIHJlZmVyZW5jZSBwb2ludHMgaW4gaW5wdXQKKyAgICBzdGQ6OnNpemVfdCAgICAgaW5wdXRfcG9zKCkgY29uc3Q7CisKKyAgICAvLyByZXR1cm5zIHRydWUgaWYgbWlzbWF0Y2ggZGV0ZWN0ZWQgZHVyaW5nIGlucHV0IHBhcnNpbmcgaGFuZGxlZCBzdWNjZXNzZnVsbHkKKyAgICBib29sICAgICAgICAgICAgaGFuZGxlX21pc21hdGNoKCk7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgZHN0cmluZyAgICAgICAgICAgICAgICAgbV9idWZmZXI7CisgICAgY3N0cmluZyAgICAgICAgICAgICAgICAgbV93b3JrX2J1ZmZlcjsKKworICAgIGNzdHJpbmcgICAgICAgICAgICAgICAgIG1fdG9rZW47CisgICAgY3N0cmluZzo6aXRlcmF0b3IgICAgICAgbV9jb21taXRlZF9lbmQ7CisKKyAgICBzaGFyZWRfYXJyYXk8Y2hhcl90eXBlPiBtX3JlbWFpbmRlcjsKKyAgICBzdGQ6OnNpemVfdCAgICAgICAgICAgICBtX3JlbWFpbmRlcl9zaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWZuZGVmIEJPT1NUX1JUX1BBUkFNX09GRkxJTkUKKworIyAgZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0lOTElORSBpbmxpbmUKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaXBwPgorCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9BUkdWX1RSQVZFUlNFUl9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTAzY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmlwcApAQCAtMCwwICsxLDIwOSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW1wbGVtZW50cyBmYWNpbGl0eSB0byBoaWRlIGlucHV0IHRyYXZlcnNpbmcgZGV0YWlscworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX0FSR1ZfVFJBVkVSU0VSX0lQUF8wNzA2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX0FSR1ZfVFJBVkVSU0VSX0lQUF8wNzA2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdHJhY2UuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9hcmd2X3RyYXZlcnNlci5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxjc3RyaW5nPgorCisjaWZkZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKK25hbWVzcGFjZSBzdGQgeyB1c2luZyA6Om1lbWNweTsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgIHJ1bnRpbWU6OmNsYTo6YXJndl90cmF2ZXJzZXIgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUKK2FyZ3ZfdHJhdmVyc2VyOjphcmd2X3RyYXZlcnNlcigpCis6IHBfaWdub3JlX21pc21hdGNoKCBmYWxzZSApLCBwX3NlcGFyYXRvciggQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJyAnICkgKQoreworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdm9pZAorYXJndl90cmF2ZXJzZXI6OmluaXQoIGludCBhcmdjLCBjaGFyX3R5cGUqKiBhcmd2ICkKK3sKKyAgICBmb3IoIGludCBpbmRleCA9IDE7IGluZGV4IDwgYXJnYzsgKytpbmRleCApIHsKKyAgICAgICAgbV9idWZmZXIgKz0gYXJndltpbmRleF07CisgICAgICAgIGlmKCBpbmRleCAhPSBhcmdjLTEgKQorICAgICAgICAgICAgbV9idWZmZXIgKz0gQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJyAnICk7CisgICAgfQorCisgICAgbV9yZW1haW5kZXIucmVzZXQoIG5ldyBjaGFyX3R5cGVbbV9idWZmZXIuc2l6ZSgpKzFdICk7CisgICAgbV9yZW1haW5kZXJfc2l6ZSAgICA9IDA7CisgICAgbV93b3JrX2J1ZmZlciAgICAgICA9IG1fYnVmZmVyOworICAgIG1fY29tbWl0ZWRfZW5kICAgICAgPSBtX3dvcmtfYnVmZmVyLmJlZ2luKCk7CisKKyAgICBCT09TVF9SVF9QQVJBTV9UUkFDRSggIklucHV0IGJ1ZmZlcjogIiA8PCBtX2J1ZmZlciApOworCisgICAgbmV4dF90b2tlbigpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdm9pZAorYXJndl90cmF2ZXJzZXI6OnJlbWFpbmRlciggaW50JiBhcmdjLCBjaGFyX3R5cGUqKiBhcmd2ICkKK3sKKyAgICBhcmdjID0gMTsKKyAgICBzdGQ6OnNpemVfdCBwb3MgPSAwOworICAgIHdoaWxlKHBvcyA8IG1fcmVtYWluZGVyX3NpemUgKSB7CisgICAgICAgIGFyZ3ZbYXJnYysrXSA9IG1fcmVtYWluZGVyLmdldCgpICsgcG9zOworCisgICAgICAgIHBvcyA9IHN0ZDo6ZmluZCggbV9yZW1haW5kZXIuZ2V0KCkgKyBwb3MsIG1fcmVtYWluZGVyLmdldCgpICsgbV9yZW1haW5kZXJfc2l6ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJyAnICkgKSAtIG1fcmVtYWluZGVyLmdldCgpOworICAgICAgICBtX3JlbWFpbmRlcltwb3MrK10gPSBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAnXDAnICk7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgY3N0cmluZworYXJndl90cmF2ZXJzZXI6OnRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90b2tlbjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHZvaWQKK2FyZ3ZfdHJhdmVyc2VyOjpuZXh0X3Rva2VuKCkKK3sKKyAgICBpZiggbV93b3JrX2J1ZmZlci5pc19lbXB0eSgpICkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93b3JrX2J1ZmZlci50cmltX2xlZnQoIG1fdG9rZW4uc2l6ZSgpICk7IC8vIHNraXAgcmVtYWluZGVyIG9mIGN1cnJlbnQgdG9rZW4KKworICAgIGlmKCBtX3dvcmtfYnVmZmVyLnNpemUoKSAhPSBtX2J1ZmZlci5zaXplKCkgKSAvLyAhISBpcyB0aGVyZSBhIGJldHRlciB3YXkgdG8gaWRlbnRpZnkgZmlyc3QgdG9rZW4KKyAgICAgICAgbV93b3JrX2J1ZmZlci50cmltX2xlZnQoIDEgKTsgLy8gc2tpcCBzZXBhcmF0b3IgaWYgbm90IGZpcnN0IHRva2VuOworCisgICAgbV90b2tlbi5hc3NpZ24oIG1fd29ya19idWZmZXIuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpmaW5kKCBtX3dvcmtfYnVmZmVyLmJlZ2luKCksIG1fd29ya19idWZmZXIuZW5kKCksIHBfc2VwYXJhdG9yICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGNzdHJpbmcKK2FyZ3ZfdHJhdmVyc2VyOjppbnB1dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd29ya19idWZmZXI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSB2b2lkCithcmd2X3RyYXZlcnNlcjo6dHJpbSggc3RkOjpzaXplX3Qgc2l6ZSApCit7CisgICAgbV93b3JrX2J1ZmZlci50cmltX2xlZnQoIHNpemUgKTsKKworICAgIGlmKCBzaXplIDw9IG1fdG9rZW4uc2l6ZSgpICkKKyAgICAgICAgbV90b2tlbi50cmltX2xlZnQoIHNpemUgKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbV90b2tlbi5hc3NpZ24oIG1fd29ya19idWZmZXIuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6ZmluZCggbV93b3JrX2J1ZmZlci5iZWdpbigpLCBtX3dvcmtfYnVmZmVyLmVuZCgpLCBwX3NlcGFyYXRvciApICk7CisgICAgfQorfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgYm9vbAorYXJndl90cmF2ZXJzZXI6Om1hdGNoX2Zyb250KCBjc3RyaW5nIHN0ciApCit7CisgICAgcmV0dXJuIG1fd29ya19idWZmZXIuc2l6ZSgpIDwgc3RyLnNpemUoKSA/IGZhbHNlIDogbV93b3JrX2J1ZmZlci5zdWJzdHIoIDAsIHN0ci5zaXplKCkgKSA9PSBzdHI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBib29sCithcmd2X3RyYXZlcnNlcjo6bWF0Y2hfZnJvbnQoIGNoYXJfdHlwZSBjICkKK3sKKyAgICByZXR1cm4gZmlyc3RfY2hhciggbV93b3JrX2J1ZmZlciApID09IGM7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBib29sCithcmd2X3RyYXZlcnNlcjo6ZW9pKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93b3JrX2J1ZmZlci5pc19lbXB0eSgpOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdm9pZAorYXJndl90cmF2ZXJzZXI6OmNvbW1pdCgpCit7CisgICAgbV9jb21taXRlZF9lbmQgPSBtX3dvcmtfYnVmZmVyLmJlZ2luKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSB2b2lkCithcmd2X3RyYXZlcnNlcjo6cm9sbGJhY2soKQoreworICAgIG1fd29ya19idWZmZXIuYXNzaWduKCBtX2NvbW1pdGVkX2VuZCwgbV93b3JrX2J1ZmZlci5lbmQoKSApOworICAgIG1fdG9rZW4uYXNzaWduKCBtX3dvcmtfYnVmZmVyLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6ZmluZCggbV93b3JrX2J1ZmZlci5iZWdpbigpLCBtX3dvcmtfYnVmZmVyLmVuZCgpLCBwX3NlcGFyYXRvciApICk7CisKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHN0ZDo6c2l6ZV90Cithcmd2X3RyYXZlcnNlcjo6aW5wdXRfcG9zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93b3JrX2J1ZmZlci5iZWdpbigpIC0gbV9jb21taXRlZF9lbmQ7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBib29sCithcmd2X3RyYXZlcnNlcjo6aGFuZGxlX21pc21hdGNoKCkKK3sKKyAgICBpZiggIXBfaWdub3JlX21pc21hdGNoICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RkOjptZW1jcHkoIG1fcmVtYWluZGVyLmdldCgpICsgbV9yZW1haW5kZXJfc2l6ZSwgdG9rZW4oKS5iZWdpbigpLCB0b2tlbigpLnNpemUoKSApOworICAgIG1fcmVtYWluZGVyX3NpemUgKz0gdG9rZW4oKS5zaXplKCk7CisgICAgbV9yZW1haW5kZXJbbV9yZW1haW5kZXJfc2l6ZSsrXSA9IHBfc2VwYXJhdG9yOworCisgICAgbmV4dF90b2tlbigpOworICAgIGNvbW1pdCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGNsYQorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9BUkdWX1RSQVZFUlNFUl9JUFBfMDcwNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYmFzaWNfcGFyYW1ldGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9iYXNpY19wYXJhbWV0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ZWJiNzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYmFzaWNfcGFyYW1ldGVyLmhwcApAQCAtMCwwICsxLDg1IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBnZW5lcmljIGN1c3RvbSBwYXJhbWV0ZXIgZ2VuZXJhdG9yCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfQkFTSUNfUEFSQU1FVEVSX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX0JBU0lDX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3R5cGVkX3BhcmFtZXRlci5ocHA+CisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J0dGkuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvYmFzZV9mcm9tX21lbWJlci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgcnVudGltZTo6Y2xhOjpiYXNpY19wYXJhbWV0ZXIgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBJZFBvbGljeT4KK2NsYXNzIGJhc2ljX3BhcmFtZXRlciA6IHByaXZhdGUgYmFzZV9mcm9tX21lbWJlcjxJZFBvbGljeT4sIHB1YmxpYyB0eXBlZF9wYXJhbWV0ZXI8VD4geworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9ycworICAgIGV4cGxpY2l0ICAgIGJhc2ljX3BhcmFtZXRlciggY3N0cmluZyBuICkgCisgICAgOiBiYXNlX2Zyb21fbWVtYmVyPElkUG9saWN5PigpCisgICAgLCB0eXBlZF9wYXJhbWV0ZXI8VD4oIGJhc2VfZnJvbV9tZW1iZXI8SWRQb2xpY3k+OjptZW1iZXIgKQorICAgIHsKKyAgICAgICAgdGhpcy0+YWNjZXB0X21vZGlmaWVyKCBuYW1lID0gbiApOworICAgIH0KKworICAgIC8vIHBhcmFtZXRlciBwcm9wZXJ0aWVzIG1vZGlmaWNhdGlvbgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1vZGlmaWVyPgorICAgIHZvaWQgICAgICAgIGFjY2VwdF9tb2RpZmllciggTW9kaWZpZXIgY29uc3QmIG0gKQorICAgIHsKKyAgICAgICAgdHlwZWRfcGFyYW1ldGVyPFQ+OjphY2NlcHRfbW9kaWZpZXIoIG0gKTsKKworICAgICAgICBiYXNlX2Zyb21fbWVtYmVyPElkUG9saWN5Pjo6bWVtYmVyLmFjY2VwdF9tb2RpZmllciggbSApOworICAgIH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX05BTUVEX1BBUkFNX0dFTkVSQVRPUlMoIHBhcmFtX3R5cGUgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBzaGFyZWRfcHRyPHBhcmFtX3R5cGUgIyMgX3Q8VD4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3BhcmFtX3R5cGUoIGNzdHJpbmcgbmFtZSA9IGNzdHJpbmcoKSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gc2hhcmVkX3B0cjxwYXJhbV90eXBlICMjIF90PFQ+ID4oIG5ldyBwYXJhbV90eXBlICMjIF90PFQ+KCBuYW1lICkgKTsgICAgICAgICAgICAgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2lubGluZSBzaGFyZWRfcHRyPHBhcmFtX3R5cGUgIyMgX3Q8Y3N0cmluZz4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3BhcmFtX3R5cGUoIGNzdHJpbmcgbmFtZSA9IGNzdHJpbmcoKSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gc2hhcmVkX3B0cjxwYXJhbV90eXBlICMjIF90PGNzdHJpbmc+ID4oIG5ldyBwYXJhbV90eXBlICMjIF90PGNzdHJpbmc+KCBuYW1lICkgKTsgICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0JBU0lDX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2NoYXJfcGFyYW1ldGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTViOTViCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2NoYXJfcGFyYW1ldGVyLmhwcApAQCAtMCwwICsxLDk4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBkZWZpbmVzIG1vZGVsIG9mIHBhcmFtZXRlciB3aXRoIHNpbmdsZSBjaGFyIG5hbWUKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9DSEFSX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9DSEFSX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9iYXNpY19wYXJhbWV0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWRfcG9saWN5LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICBjaGFyX25hbWVfcG9saWN5ICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIGNoYXJfbmFtZV9wb2xpY3kgOiBwdWJsaWMgYmFzaWNfbmFtaW5nX3BvbGljeSB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBjaGFyX25hbWVfcG9saWN5KCk7CisgICAgQk9PU1RfUlRfUEFSQU1fVU5ORUVERURfVklSVFVBTCB+Y2hhcl9uYW1lX3BvbGljeSgpIHt9CisKKyAgICAvLyBwb2xpY3kgaW50ZXJmYWNlCisgICAgdmlydHVhbCBib29sICAgIGNvbmZsaWN0X3dpdGgoIGlkZW50aWZpY2F0aW9uX3BvbGljeSBjb25zdCYgKSBjb25zdDsKKworICAgIC8vIEFjY2VwdCBtb2RpZmllcgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1vZGlmaWVyPgorICAgIHZvaWQgICAgICAgICAgICBhY2NlcHRfbW9kaWZpZXIoIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICB7CisgICAgICAgIGJhc2ljX25hbWluZ19wb2xpY3k6OmFjY2VwdF9tb2RpZmllciggbSApOworCisgICAgICAgIEJPT1NUX1JUX1BBUkFNX1ZBTElEQVRFX0xPR0lDKCBwX25hbWUtPnNpemUoKSA8PSAxLCAiSW52YWxpZCBwYXJhbWV0ZXIgbmFtZSAiICA8PCBwX25hbWUgKTsKKyAgICB9Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgcnVudGltZTo6Y2xhOjpjaGFyX3BhcmFtZXRlciAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBjaGFyX3BhcmFtZXRlcl90IDogcHVibGljIGJhc2ljX3BhcmFtZXRlcjxULGNoYXJfbmFtZV9wb2xpY3k+IHsKKyAgICB0eXBlZGVmIGJhc2ljX3BhcmFtZXRlcjxULGNoYXJfbmFtZV9wb2xpY3k+IGJhc2U7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgZXhwbGljaXQgICAgY2hhcl9wYXJhbWV0ZXJfdCggY2hhcl90eXBlIG5hbWUgKSA6IGJhc2UoIGNzdHJpbmcoICZuYW1lLCAxICkgKSB7fQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBzaGFyZWRfcHRyPGNoYXJfcGFyYW1ldGVyX3Q8VD4gPgorY2hhcl9wYXJhbWV0ZXIoIGNoYXJfdHlwZSBuYW1lICkKK3sKKyAgICByZXR1cm4gc2hhcmVkX3B0cjxjaGFyX3BhcmFtZXRlcl90PFQ+ID4oIG5ldyBjaGFyX3BhcmFtZXRlcl90PFQ+KCBuYW1lICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworaW5saW5lIHNoYXJlZF9wdHI8Y2hhcl9wYXJhbWV0ZXJfdDxjc3RyaW5nPiA+CitjaGFyX3BhcmFtZXRlciggY2hhcl90eXBlIG5hbWUgKQoreworICAgIHJldHVybiBzaGFyZWRfcHRyPGNoYXJfcGFyYW1ldGVyX3Q8Y3N0cmluZz4gPiggbmV3IGNoYXJfcGFyYW1ldGVyX3Q8Y3N0cmluZz4oIG5hbWUgKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBjbGEKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZm5kZWYgQk9PU1RfUlRfUEFSQU1fT0ZGTElORQorCisjICBkZWZpbmUgQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGlubGluZQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9jaGFyX3BhcmFtZXRlci5pcHA+CisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0NIQVJfUEFSQU1FVEVSX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9jaGFyX3BhcmFtZXRlci5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MjI5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaXBwCkBAIC0wLDAgKzEsNTcgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGltcGxlbWVudHMgbW9kZWwgb2YgcGFyYW1ldGVyIHdpdGggc2luZ2xlIGNoYXIgbmFtZQorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX0NIQVJfUEFSQU1FVEVSX0lQUF8wNjI5MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX0NIQVJfUEFSQU1FVEVSX0lQUF8wNjI5MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIGNoYXJfbmFtZV9wb2xpY3kgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIAorY2hhcl9uYW1lX3BvbGljeTo6Y2hhcl9uYW1lX3BvbGljeSgpCis6IGJhc2ljX25hbWluZ19wb2xpY3koIHJ0dGk6OnR5cGVfaWQ8Y2hhcl9uYW1lX3BvbGljeT4oKSApCit7CisgICAgYXNzaWduX29wKCBwX3ByZWZpeC52YWx1ZSwgQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAiLSIgKSwgMCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgYm9vbAorY2hhcl9uYW1lX3BvbGljeTo6Y29uZmxpY3Rfd2l0aCggaWRlbnRpZmljYXRpb25fcG9saWN5IGNvbnN0JiBpZCApIGNvbnN0Cit7CisgICAgcmV0dXJuIGlkLnBfdHlwZV9pZCA9PSBwX3R5cGVfaWQgJiYgCisgICAgICAgICAgIHBfbmFtZSA9PSBzdGF0aWNfY2FzdDxjaGFyX25hbWVfcG9saWN5IGNvbnN0Jj4oIGlkICkucF9uYW1lOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBjbGEKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfQ0hBUl9QQVJBTUVURVJfSVBQXzA2MjkwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2RldGFpbC9hcmd1bWVudF92YWx1ZV91c2FnZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZGV0YWlsL2FyZ3VtZW50X3ZhbHVlX3VzYWdlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzgwOTdiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2RldGFpbC9hcmd1bWVudF92YWx1ZV91c2FnZS5ocHAKQEAgLTAsMCArMSw4MiBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFBlcm1pc3Npb24gdG8gY29weSwgdXNlLCBtb2RpZnksIHNlbGwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZQorLy8gIGlzIGdyYW50ZWQgcHJvdmlkZWQgdGhpcyBjb3B5cmlnaHQgbm90aWNlIGFwcGVhcnMgaW4gYWxsIGNvcGllcy4KKy8vICBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHksCisvLyAgYW5kIHdpdGggbm8gY2xhaW0gYXMgdG8gaXRzIHN1aXRhYmlsaXR5IGZvciBhbnkgcHVycG9zZS4KKyAgCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBhcmd1bWVudCB1c2FnZSBwcmludGluZyBoZWxwZXJzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfQVJHVU1FTlRfVkFMVUVfVVNBR0VfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfQVJHVU1FTlRfVkFMVUVfVVNBR0VfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvY29tcGFyZS5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9sZXhpY2FsX2Nhc3QuaHBwPgorCisvLyBTVEwKKy8vICEhIGNhbiB3ZSBlbGltaW5hdGUgdGhlc2UgaW5jbHVkZXM/CisjaW5jbHVkZSA8bGlzdD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCituYW1lc3BhY2UgcnRfY2xhX2RldGFpbCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBhcmd1bWVudF92YWx1ZV91c2FnZSAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworLy8gZ2VuZXJpYyBjYXNlCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQKK2FyZ3VtZW50X3ZhbHVlX3VzYWdlKCBmb3JtYXRfc3RyZWFtJiBmcywgbG9uZywgVCogPSAwICkKK3sKKyAgICBmcyA8PCBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoICI8dmFsdWU+IiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyBzcGVjaWFsaXphdGlvbiBmb3IgbGlzdCBvZiB2YWx1ZXMKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZAorYXJndW1lbnRfdmFsdWVfdXNhZ2UoIGZvcm1hdF9zdHJlYW0mIGZzLCBpbnQsIHN0ZDo6bGlzdDxUPiogPSAwICkKK3sKKyAgICBmcyA8PCBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoICIoPHZhbHVlMT4sIC4uLiwgPHZhbHVlTj4pIiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyBzcGVjaWFsaXphdGlvbiBmb3IgdHlwZSBib29sCitpbmxpbmUgdm9pZAorYXJndW1lbnRfdmFsdWVfdXNhZ2UoIGZvcm1hdF9zdHJlYW0mIGZzLCAgaW50LCBib29sKiA9IDAgKQoreworICAgIGZzIDw8IEJPT1NUX1JUX1BBUkFNX0NTVFJJTkdfTElURVJBTCggInllc3x5fG5vfG4iICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHJ0X2NsYV9kZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0FSR1VNRU5UX1ZBTFVFX1VTQUdFX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9kdWFsX25hbWVfcGFyYW1ldGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9kdWFsX25hbWVfcGFyYW1ldGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWRiYjg1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2R1YWxfbmFtZV9wYXJhbWV0ZXIuaHBwCkBAIC0wLDAgKzEsOTYgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgbW9kZWwgb2YgZ2VuZXJpYyBwYXJhbWV0ZXIgd2l0aCBkdWFsIG5hbWluZworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX0RVQUxfTkFNRV9QQVJBTUVURVJfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfRFVBTF9OQU1FX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9jaGFyX3BhcmFtZXRlci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgZHVhbF9uYW1lX3BvbGljeSAgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBkdWFsX25hbWVfcG9saWN5IDogcHVibGljIGR1YWxfaWRfcG9saWN5PGR1YWxfbmFtZV9wb2xpY3ksc3RyaW5nX25hbWVfcG9saWN5LGNoYXJfbmFtZV9wb2xpY3k+IHsKK3B1YmxpYzoKKyAgICBkdWFsX25hbWVfcG9saWN5KCk7CisKKyAgICAvLyBBY2NlcHQgbW9kaWZpZXIKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNb2RpZmllcj4KKyAgICB2b2lkICAgIGFjY2VwdF9tb2RpZmllciggTW9kaWZpZXIgY29uc3QmIG0gKQorICAgIHsKKyAgICAgICAgaWYoIG0uaGFzKCBwcmVmaXggKSApIHsKKyAgICAgICAgICAgIHNldF9wcmVmaXgoIG1bcHJlZml4XSApOworICAgICAgICAgICAgbS5lcmFzZSggcHJlZml4ICk7CisgICAgICAgIH0KKworICAgICAgICBpZiggbS5oYXMoIG5hbWUgKSApIHsKKyAgICAgICAgICAgIHNldF9uYW1lKCBtW25hbWVdICk7CisgICAgICAgICAgICBtLmVyYXNlKCBuYW1lICk7CisgICAgICAgIH0KKworICAgICAgICBpZiggbS5oYXMoIHNlcGFyYXRvciApICkgeworICAgICAgICAgICAgc2V0X3NlcGFyYXRvciggbVtzZXBhcmF0b3JdICk7CisgICAgICAgICAgICBtLmVyYXNlKCBzZXBhcmF0b3IgKTsKKyAgICAgICAgfQorCisgICAgICAgIGR1YWxfaWRfcG9saWN5PGR1YWxfbmFtZV9wb2xpY3ksc3RyaW5nX25hbWVfcG9saWN5LGNoYXJfbmFtZV9wb2xpY3k+OjphY2NlcHRfbW9kaWZpZXIoIG0gKTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgICAgc2V0X3ByZWZpeCggY3N0cmluZyApOworICAgIHZvaWQgICAgc2V0X25hbWUoIGNzdHJpbmcgKTsKKyAgICB2b2lkICAgIHNldF9zZXBhcmF0b3IoIGNzdHJpbmcgKTsKK307CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICBydW50aW1lOjpjbGE6OmR1YWxfbmFtZV9wYXJhbWV0ZXIgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIGR1YWxfbmFtZV9wYXJhbWV0ZXJfdCA6IHB1YmxpYyBiYXNpY19wYXJhbWV0ZXI8VCxkdWFsX25hbWVfcG9saWN5PiB7CisgICAgdHlwZWRlZiBiYXNpY19wYXJhbWV0ZXI8VCxkdWFsX25hbWVfcG9saWN5PiBiYXNlOworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9ycworICAgIGV4cGxpY2l0ICAgIGR1YWxfbmFtZV9wYXJhbWV0ZXJfdCggY3N0cmluZyBuYW1lICkgOiBiYXNlKCBuYW1lICkge30KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX0NMQV9OQU1FRF9QQVJBTV9HRU5FUkFUT1JTKCBkdWFsX25hbWVfcGFyYW1ldGVyICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWZuZGVmIEJPT1NUX1JUX1BBUkFNX09GRkxJTkUKKworIyAgZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0lOTElORSBpbmxpbmUKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZHVhbF9uYW1lX3BhcmFtZXRlci5pcHA+CisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0RVQUxfTkFNRV9QQVJBTUVURVJfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2R1YWxfbmFtZV9wYXJhbWV0ZXIuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2R1YWxfbmFtZV9wYXJhbWV0ZXIuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmY2IwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZHVhbF9uYW1lX3BhcmFtZXRlci5pcHAKQEAgLTAsMCArMSw5MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW1wbGVtZW50cyBtb2RlbCBvZiBnZW5lcmljIHBhcmFtZXRlciB3aXRoIGR1YWwgbmFtaW5nCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfRFVBTF9OQU1FX1BBUkFNRVRFUl9JUFBfMDYyOTA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9EVUFMX05BTUVfUEFSQU1FVEVSX0lQUF8wNjI5MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdmFsaWRhdGlvbi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2R1YWxfbmFtZV9wYXJhbWV0ZXIuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIGR1YWxfbmFtZV9wb2xpY3kgICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIAorZHVhbF9uYW1lX3BvbGljeTo6ZHVhbF9uYW1lX3BvbGljeSgpCit7CisgICAgbV9wcmltYXJ5LmFjY2VwdF9tb2RpZmllciggcHJlZml4ID0gQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAiLS0iICkgKTsKKyAgICBtX3NlY29uZGFyeS5hY2NlcHRfbW9kaWZpZXIoIHByZWZpeCA9IEJPT1NUX1JUX1BBUkFNX0NTVFJJTkdfTElURVJBTCggIi0iICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgSz4KK2lubGluZSB2b2lkCitzcGxpdCggc3RyaW5nX25hbWVfcG9saWN5JiBzbnAsIGNoYXJfbmFtZV9wb2xpY3kmIGNucCwgY3N0cmluZyBzcmMsIEsgY29uc3QmIGsgKQoreworICAgIGNzdHJpbmc6Oml0ZXJhdG9yIHNlcCA9IHN0ZDo6ZmluZCggc3JjLmJlZ2luKCksIHNyYy5lbmQoKSwgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJ3wnICkgKTsKKyAgICAKKyAgICBpZiggc2VwICE9IHNyYy5iZWdpbigpICkKKyAgICAgICAgc25wLmFjY2VwdF9tb2RpZmllciggayA9IGNzdHJpbmcoIHNyYy5iZWdpbigpLCBzZXAgKSApOworCisgICAgaWYoIHNlcCAhPSBzcmMuZW5kKCkgKQorICAgICAgICBjbnAuYWNjZXB0X21vZGlmaWVyKCBrID0gY3N0cmluZyggc2VwKzEsIHNyYy5lbmQoKSApICk7Cit9CisKK30gLy8gbG9jYWwgbmFtZXNwYWNlCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSB2b2lkCitkdWFsX25hbWVfcG9saWN5OjpzZXRfcHJlZml4KCBjc3RyaW5nIHNyYyApCit7CisgICAgc3BsaXQoIG1fcHJpbWFyeSwgbV9zZWNvbmRhcnksIHNyYywgcHJlZml4ICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSB2b2lkCitkdWFsX25hbWVfcG9saWN5OjpzZXRfbmFtZSggY3N0cmluZyBzcmMgKQoreworICAgIHNwbGl0KCBtX3ByaW1hcnksIG1fc2Vjb25kYXJ5LCBzcmMsIG5hbWUgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHZvaWQKK2R1YWxfbmFtZV9wb2xpY3k6OnNldF9zZXBhcmF0b3IoIGNzdHJpbmcgc3JjICkKK3sKKyAgICBzcGxpdCggbV9wcmltYXJ5LCBtX3NlY29uZGFyeSwgc3JjLCBzZXBhcmF0b3IgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0RVQUxfTkFNRV9QQVJBTUVURVJfSVBQXzA2MjkwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDY1ZTliCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2Z3ZC5ocHAKQEAgLTAsMCArMSw1NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogY2xhIHN1YnN5c3RlbSBmb3J3YXJkIGRlY2xhcmF0aW9ucworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX0ZXRF9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9GV0RfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3NoYXJlZF9wdHIuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKK2NsYXNzIHBhcnNlcjsKK2NsYXNzIHBhcmFtZXRlcjsKK3R5cGVkZWYgc2hhcmVkX3B0cjxwYXJhbWV0ZXI+IHBhcmFtZXRlcl9wdHI7CitjbGFzcyBuYW1pbmdfcG9saWN5OwordHlwZWRlZiBzaGFyZWRfcHRyPG5hbWluZ19wb2xpY3k+IG5hbWluZ19wb2xpY3lfcHRyOworY2xhc3MgYXJndl90cmF2ZXJzZXI7CisKK25hbWVzcGFjZSBydF9jbGFfZGV0YWlsIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgY29uc3RfZ2VuZXJhdG9yOwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgcmVmX2dlbmVyYXRvcjsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgYXNzaWduZXI7CisKK2NsYXNzIG5hbWVkX3BhcmFtZXRlcl9iYXNlOworY2xhc3MgcG9zaXRpb25hbF9wYXJhbWV0ZXJfYmFzZTsKKworfSAvLyBuYW1lc3BhY2UgcnRfY2xhX2RldGFpbAorCit9IC8vIG5hbWVzcGFjZSBjbGEKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfRldEX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZF9wb2xpY3kuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIyOWNiNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZF9wb2xpY3kuaHBwCkBAIC0wLDAgKzEsMTQ1IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogc29tZSBnZW5lcmljIGlkZW50aWZpY2F0aW9uIHBvbGljaWVzIGRlZmluaXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9JRF9QT0xJQ1lfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfSURfUE9MSUNZX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL21vZGlmaWVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWZhY2UvaWRfcG9saWN5LmhwcD4KKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2xhc3NfcHJvcGVydGllcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydHRpLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICBuYW1pbmdfcG9saWN5X2Jhc2UgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyBtb2RlbDogPHByZWZpeD4gPG5hbWU+IDxzZXBhcnRvcj4KKworY2xhc3MgYmFzaWNfbmFtaW5nX3BvbGljeSA6IHB1YmxpYyBpZGVudGlmaWNhdGlvbl9wb2xpY3kgeworcHVibGljOgorICAgIC8vIFB1YmxpYyBwcm9wZXJ0aWVzCisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8ZHN0cmluZz4gICAgcF9wcmVmaXg7CisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8ZHN0cmluZz4gICAgcF9uYW1lOworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PGRzdHJpbmc+ICAgIHBfc2VwYXJhdG9yOworCisgICAgLy8gUG9saWN5IGludGVyZmFjZQorICAgIHZpcnR1YWwgYm9vbCAgICByZXNwb25kc190byggY3N0cmluZyBuYW1lICkgY29uc3QgICAgICAgeyByZXR1cm4gcF9uYW1lID09IG5hbWU7IH0KKyAgICB2aXJ0dWFsIGNzdHJpbmcgaWRfMl9yZXBvcnQoKSBjb25zdCAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIHBfbmFtZS5nZXQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCAgICB1c2FnZV9pbmZvKCBmb3JtYXRfc3RyZWFtJiBmcyApIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCAgICBtYXRjaGluZyggcGFyYW1ldGVyIGNvbnN0JiBwLCBhcmd2X3RyYXZlcnNlciYgdHIsIGJvb2wgcHJpbWFyeSApIGNvbnN0OworCisgICAgLy8gQWNjZXB0IG1vZGlmaWVyCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTW9kaWZpZXI+CisgICAgdm9pZCAgICAgICAgICAgIGFjY2VwdF9tb2RpZmllciggTW9kaWZpZXIgY29uc3QmIG0gKQorICAgIHsKKyAgICAgICAgbmZwOjpvcHRpb25hbGx5X2Fzc2lnbiggcF9wcmVmaXgudmFsdWUsICAgIG0sIHByZWZpeCApOworICAgICAgICBuZnA6Om9wdGlvbmFsbHlfYXNzaWduKCBwX25hbWUudmFsdWUsICAgICAgbSwgbmFtZSApOworICAgICAgICBuZnA6Om9wdGlvbmFsbHlfYXNzaWduKCBwX3NlcGFyYXRvci52YWx1ZSwgbSwgc2VwYXJhdG9yICk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgYmFzaWNfbmFtaW5nX3BvbGljeSggcnR0aTo6aWRfdCBkeW5fdHlwZSApCisgICAgOiBpZGVudGlmaWNhdGlvbl9wb2xpY3koIGR5bl90eXBlICkKKyAgICB7fQorICAgIEJPT1NUX1JUX1BBUkFNX1VOTkVFREVEX1ZJUlRVQUwgfmJhc2ljX25hbWluZ19wb2xpY3koKSB7fQorCisgICAgLy8gTmFtaW5nIHBvbGljeSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgICAgbWF0Y2hfcHJlZml4KCBhcmd2X3RyYXZlcnNlciYgdHIgKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgICAgbWF0Y2hfbmFtZSggYXJndl90cmF2ZXJzZXImIHRyICkgY29uc3Q7CisgICAgdmlydHVhbCBib29sICAgIG1hdGNoX3NlcGFyYXRvciggYXJndl90cmF2ZXJzZXImIHRyLCBib29sIG9wdGlvbmFsX3ZhbHVlICkgY29uc3Q7Cit9OworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgIGR1YWxfaWRfcG9saWN5ICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIE1vc3REZXJpdmVkLHR5cGVuYW1lIFByaW1hcnlJZCx0eXBlbmFtZSBTZWNvbmRJZD4KK2NsYXNzIGR1YWxfaWRfcG9saWN5IDogcHVibGljIGlkZW50aWZpY2F0aW9uX3BvbGljeSB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBkdWFsX2lkX3BvbGljeSgpCisgICAgOiBpZGVudGlmaWNhdGlvbl9wb2xpY3koIHJ0dGk6OnR5cGVfaWQ8TW9zdERlcml2ZWQ+KCkgKQorICAgICwgbV9wcmltYXJ5KCkKKyAgICAsIG1fc2Vjb25kYXJ5KCkKKyAgICB7fQorCisgICAgLy8gUG9saWN5IGludGVyZmFjZQorICAgIHZpcnR1YWwgYm9vbCAgICByZXNwb25kc190byggY3N0cmluZyBuYW1lICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ByaW1hcnkucmVzcG9uZHNfdG8oIG5hbWUgKSB8fCBtX3NlY29uZGFyeS5yZXNwb25kc190byggbmFtZSApOworICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgICAgY29uZmxpY3Rfd2l0aCggaWRlbnRpZmljYXRpb25fcG9saWN5IGNvbnN0JiBpZF9wICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBpZF9wLmNvbmZsaWN0X3dpdGgoIG1fcHJpbWFyeSApIHx8IGlkX3AuY29uZmxpY3Rfd2l0aCggbV9zZWNvbmRhcnkgKTsKKyAgICB9CisgICAgdmlydHVhbCBjc3RyaW5nIGlkXzJfcmVwb3J0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ByaW1hcnkuaWRfMl9yZXBvcnQoKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkICAgIHVzYWdlX2luZm8oIGZvcm1hdF9zdHJlYW0mIGZzICkgY29uc3QKKyAgICB7CisgICAgICAgIGZzIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICd7JyApOworICAgICAgICBtX3ByaW1hcnkudXNhZ2VfaW5mbyggZnMgKTsKKyAgICAgICAgZnMgPDwgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJ3wnICk7CisgICAgICAgIG1fc2Vjb25kYXJ5LnVzYWdlX2luZm8oIGZzICk7CisgICAgICAgIGZzIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICd9JyApOworICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgICAgbWF0Y2hpbmcoIHBhcmFtZXRlciBjb25zdCYgcCwgYXJndl90cmF2ZXJzZXImIHRyLCBib29sIHByaW1hcnkgKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcHJpbWFyeS5tYXRjaGluZyggcCwgdHIsIHByaW1hcnkgKSB8fCBtX3NlY29uZGFyeS5tYXRjaGluZyggcCwgdHIsIHByaW1hcnkgKTsKKyAgICB9CisKKyAgICAvLyBBY2NlcHQgbW9kaWZpZXIKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNb2RpZmllcj4KKyAgICB2b2lkICAgIGFjY2VwdF9tb2RpZmllciggTW9kaWZpZXIgY29uc3QmIG0gKQorICAgIHsKKyAgICAgICAgbV9wcmltYXJ5LmFjY2VwdF9tb2RpZmllciggbSApOworICAgICAgICBtX3NlY29uZGFyeS5hY2NlcHRfbW9kaWZpZXIoIG0gKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBCT09TVF9SVF9QQVJBTV9VTk5FRURFRF9WSVJUVUFMIH5kdWFsX2lkX3BvbGljeSgpIHt9CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBQcmltYXJ5SWQgICAgICAgbV9wcmltYXJ5OworICAgIFNlY29uZElkICAgICAgICBtX3NlY29uZGFyeTsKK307CisKK30gLy8gbmFtZXNwYWNlIGNsYQorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmbmRlZiBCT09TVF9SVF9QQVJBTV9PRkZMSU5FCisKKyMgIGRlZmluZSBCT09TVF9SVF9QQVJBTV9JTkxJTkUgaW5saW5lCisjICBpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5pcHA+CisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0lEX1BPTElDWV9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWRfcG9saWN5LmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZF9wb2xpY3kuaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMmMyZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWRfcG9saWN5LmlwcApAQCAtMCwwICsxLDExOCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogc29tZSBnZW5lcmljIGlkZW50aWZpY2F0aW9uIHBvbGljaWVzIGltcGxlbWVudGF0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfSURfUE9MSUNZX0lQUF8wNjI5MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX0lEX1BPTElDWV9JUFBfMDYyOTA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9wYXJhbWV0ZXIuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgYmFzaWNfbmFtaW5nX3BvbGljeSAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHZvaWQKK2Jhc2ljX25hbWluZ19wb2xpY3k6OnVzYWdlX2luZm8oIGZvcm1hdF9zdHJlYW0mIGZzICkgY29uc3QKK3sKKyAgICBmcyA8PCBwX3ByZWZpeCA8PCBwX25hbWUgPDwgcF9zZXBhcmF0b3I7CisKKyAgICBpZiggcF9zZXBhcmF0b3ItPmVtcHR5KCkgKQorICAgICAgICBmcyA8PCBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAnICcgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGJvb2wKK2Jhc2ljX25hbWluZ19wb2xpY3k6Om1hdGNoX3ByZWZpeCggYXJndl90cmF2ZXJzZXImIHRyICkgY29uc3QKK3sKKyAgICBpZiggIXRyLm1hdGNoX2Zyb250KCBwX3ByZWZpeC5nZXQoKSApICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdHIudHJpbSggcF9wcmVmaXgtPnNpemUoKSApOworICAgIHJldHVybiB0cnVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworICAgIAorQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGJvb2wKK2Jhc2ljX25hbWluZ19wb2xpY3k6Om1hdGNoX25hbWUoIGFyZ3ZfdHJhdmVyc2VyJiB0ciApIGNvbnN0Cit7CisgICAgaWYoICF0ci5tYXRjaF9mcm9udCggcF9uYW1lLmdldCgpICkgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0ci50cmltKCBwX25hbWUtPnNpemUoKSApOworICAgIHJldHVybiB0cnVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworICAgIAorQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGJvb2wKK2Jhc2ljX25hbWluZ19wb2xpY3k6Om1hdGNoX3NlcGFyYXRvciggYXJndl90cmF2ZXJzZXImIHRyLCBib29sIG9wdGlvbmFsX3ZhbHVlICkgY29uc3QKK3sKKyAgICBpZiggcF9zZXBhcmF0b3ItPmVtcHR5KCkgKSB7CisgICAgICAgIGlmKCAhdHIudG9rZW4oKS5pc19lbXB0eSgpICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB0ci50cmltKCAxICk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpZiggIXRyLm1hdGNoX2Zyb250KCBwX3NlcGFyYXRvci5nZXQoKSApICkgeworICAgICAgICAgICAgLy8gaWYgcGFyYW1ldGVyIGhhcyBvcHRpb25hbCB2YWx1ZSBzZXBhcmF0b3IgaXMgb3B0aW9uYWwgYXMgd2VsbAorICAgICAgICAgICAgaWYoIG9wdGlvbmFsX3ZhbHVlICYmICggdHIuZW9pKCkgfHwgdHIubWF0Y2hfZnJvbnQoICcgJyApICkgKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICB0ci50cmltKCBwX3NlcGFyYXRvci0+c2l6ZSgpICk7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBib29sCitiYXNpY19uYW1pbmdfcG9saWN5OjptYXRjaGluZyggcGFyYW1ldGVyIGNvbnN0JiBwLCBhcmd2X3RyYXZlcnNlciYgdHIsIGJvb2wgKSBjb25zdAoreworICAgIGlmKCAhbWF0Y2hfcHJlZml4KCB0ciApICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICBpZiggIW1hdGNoX25hbWUoIHRyICkgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiggIW1hdGNoX3NlcGFyYXRvciggdHIsIHAucF9vcHRpb25hbF92YWx1ZSApICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGNsYQorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9JRF9QT0xJQ1lfSVBQXzA2MjkwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lmYWNlL2FyZ3VtZW50X2ZhY3RvcnkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lmYWNlL2FyZ3VtZW50X2ZhY3RvcnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YzFlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWZhY2UvYXJndW1lbnRfZmFjdG9yeS5ocHAKQEAgLTAsMCArMSw1MSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBpbnRlcmZhY2UgZm9yIGFyZ3VtZW50X2ZhY3RvcnkKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9JRkFDRV9BUkdVTUVOVF9GQUNUT1JZX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX0lGQUNFX0FSR1VNRU5UX0ZBQ1RPUllfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9md2QuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9md2QuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgICBhcmd1bWVudF9mYWN0b3J5ICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vIGFub3RoZXIgbmFtZSBjYW4gYmUgYXJndW1lbnQgcHJvZHVjdGlvbiBwb2xpY3kKKworY2xhc3MgYXJndW1lbnRfZmFjdG9yeSB7CitwdWJsaWM6CisgICAgLy8gQXJndW1lbnQgZmFjdG9yeSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGFyZ3VtZW50X3B0ciBwcm9kdWNlX3VzaW5nKCBwYXJhbWV0ZXImIHAsIGFyZ3ZfdHJhdmVyc2VyJiB0ciApID0gMDsgIC8vLyBwcm9kdWNlIGFyZ3VtZW50IGJhc2VkIG9uIGlucHV0CisgICAgdmlydHVhbCBhcmd1bWVudF9wdHIgcHJvZHVjZV91c2luZyggcGFyYW1ldGVyJiBwLCBwYXJzZXIgY29uc3QmICkgICAgICA9IDA7ICAvLy8gcHJvZHVjZSBhcmd1bWVudCBiYXNlZCBvbiBpbnRlcm5hbCBnZW5lcmF0b3IgYW5kL29yIHZhbHVlcyBvZiBvdGhlciBwYXJhbWV0ZXJzCisgICAgdmlydHVhbCB2b2lkICAgICAgICAgYXJndW1lbnRfdXNhZ2VfaW5mbyggZm9ybWF0X3N0cmVhbSYgZnMgKSAgICAgICAgICA9IDA7ICAvLy8gYXJndW1lbnQgdmFsdWUgZm9ybWF0IGluZm9ybWF0aW9uCitwcm90ZWN0ZWQ6CisgICAgQk9PU1RfVEVTVF9QUk9URUNURURfVklSVFVBTCB+YXJndW1lbnRfZmFjdG9yeSgpIHt9Cit9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgY2xhCisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfSUZBQ0VfQVJHVU1FTlRfRkFDVE9SWV9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWZhY2UvaWRfcG9saWN5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZmFjZS9pZF9wb2xpY3kuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzOGY4ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWZhY2UvaWRfcG9saWN5LmhwcApAQCAtMCwwICsxLDczIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBpbnRlcmZhY2UgZm9yIGlkZW50aWZpY2F0aW9uX3BvbGljeQorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX0lGQUNFX0lEX1BPTElDWV9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9JRkFDRV9JRF9QT0xJQ1lfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9md2QuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9jbGFzc19wcm9wZXJ0aWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J0dGkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBpZGVudGlmaWNhdGlvbl9wb2xpY3kgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworI2lmZGVmIEJPT1NUX01TVkMKKyMgIHByYWdtYSB3YXJuaW5nKHB1c2gpCisjICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQyNDQpCisjZW5kaWYKKworY2xhc3MgaWRlbnRpZmljYXRpb25fcG9saWN5IHsKK3B1YmxpYzoKKyAgICAvLyBQdWJsaWMgcHJvcGVydGllcworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PHJ0dGk6OmlkX3Q+ICAgIHBfdHlwZV9pZDsKKworICAgIC8vIFBvbGljeSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgICAgcmVzcG9uZHNfdG8oIGNzdHJpbmcgbmFtZSApIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNzdHJpbmcgaWRfMl9yZXBvcnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkICAgIHVzYWdlX2luZm8oIGZvcm1hdF9zdHJlYW0mIGZzICkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCAgICBtYXRjaGluZyggcGFyYW1ldGVyIGNvbnN0JiBwLCBhcmd2X3RyYXZlcnNlciYgdHIsIGJvb2wgcHJpbWFyeSApIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCAgICBjb25mbGljdF93aXRoKCBpZGVudGlmaWNhdGlvbl9wb2xpY3kgY29uc3QmICkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICAgICAgaWRlbnRpZmljYXRpb25fcG9saWN5KCBydHRpOjppZF90IGR5bl90eXBlICkKKyAgICA6IHBfdHlwZV9pZCggZHluX3R5cGUgKQorICAgIHt9CisgICAgQk9PU1RfVEVTVF9QUk9URUNURURfVklSVFVBTCB+aWRlbnRpZmljYXRpb25fcG9saWN5KCkge30KK307CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICBwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX0lGQUNFX0lEX1BPTElDWV9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvbW9kaWZpZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL21vZGlmaWVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjcxOWFiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL21vZGlmaWVyLmhwcApAQCAtMCwwICsxLDY5IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBwYXJhbWV0ZXIgbW9kaWZpZXJzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfTU9ESUZJRVJfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfTU9ESUZJRVJfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9uYW1lZF9wYXJhbXMuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIG1vZGlmaWVycyAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIHsKKworbmZwOjp0eXBlZF9rZXl3b3JkPGJvb2wsc3RydWN0IG9wdGlvbmFsX3Q+ICAgICAgICAgICAgICBvcHRpb25hbF9tOworbmZwOjpuYW1lZF9wYXJhbWV0ZXI8Ym9vbCxvcHRpb25hbF90LGJvb2w+ICAgICAgICAgICAgICBvcHRpb25hbCggdHJ1ZSApOworbmZwOjp0eXBlZF9rZXl3b3JkPGJvb2wsc3RydWN0IHJlcXVpcmVkX3Q+ICAgICAgICAgICAgICByZXF1aXJlZF9tOworbmZwOjpuYW1lZF9wYXJhbWV0ZXI8Ym9vbCxyZXF1aXJlZF90LGJvb2w+ICAgICAgICAgICAgICByZXF1aXJlZCggdHJ1ZSApOworbmZwOjp0eXBlZF9rZXl3b3JkPGJvb2wsc3RydWN0IG11bHRpcGxpY2FibGVfdD4gICAgICAgICBtdWx0aXBsaWNhYmxlX207CituZnA6Om5hbWVkX3BhcmFtZXRlcjxib29sLG11bHRpcGxpY2FibGVfdCxib29sPiAgICAgICAgIG11bHRpcGxpY2FibGUoIHRydWUgKTsKK25mcDo6dHlwZWRfa2V5d29yZDxib29sLHN0cnVjdCBndWVzc19uYW1lX3Q+ICAgICAgICAgICAgZ3Vlc3NfbmFtZV9tOworbmZwOjpuYW1lZF9wYXJhbWV0ZXI8Ym9vbCxndWVzc19uYW1lX3QsYm9vbD4gICAgICAgICAgICBndWVzc19uYW1lKCB0cnVlICk7CituZnA6OnR5cGVkX2tleXdvcmQ8Ym9vbCxzdHJ1Y3QgaWdub3JlX21pc21hdGNoX3Q+ICAgICAgIGlnbm9yZV9taXNtYXRjaF9tOworbmZwOjpuYW1lZF9wYXJhbWV0ZXI8Ym9vbCxpZ25vcmVfbWlzbWF0Y2hfdCxib29sPiAgICAgICBpZ25vcmVfbWlzbWF0Y2goIHRydWUgKTsKK25mcDo6dHlwZWRfa2V5d29yZDxib29sLHN0cnVjdCBvcHRpb25hbF92YWx1ZV90PiAgICAgICAgb3B0aW9uYWxfdmFsdWVfbTsKK25mcDo6bmFtZWRfcGFyYW1ldGVyPGJvb2wsb3B0aW9uYWxfdmFsdWVfdCxib29sPiAgICAgICAgb3B0aW9uYWxfdmFsdWUoIHRydWUgKTsKKworbmZwOjp0eXBlZF9rZXl3b3JkPGNoYXJfdHlwZSxzdHJ1Y3QgaW5wdXRfc2VwYXJhdG9yX3Q+ICBpbnB1dF9zZXBhcmF0b3I7CituZnA6OnR5cGVkX2tleXdvcmQ8Y3N0cmluZyxzdHJ1Y3QgcHJlZml4X3Q+ICAgICAgICAgICAgIHByZWZpeDsKK25mcDo6dHlwZWRfa2V5d29yZDxjc3RyaW5nLHN0cnVjdCBuYW1lX3Q+ICAgICAgICAgICAgICAgbmFtZTsKK25mcDo6dHlwZWRfa2V5d29yZDxjc3RyaW5nLHN0cnVjdCBzZXBhcmF0b3JfdD4gICAgICAgICAgc2VwYXJhdG9yOworbmZwOjp0eXBlZF9rZXl3b3JkPGNzdHJpbmcsc3RydWN0IGRlc2NyaXB0aW9uX3Q+ICAgICAgICBkZXNjcmlwdGlvbjsKK25mcDo6dHlwZWRfa2V5d29yZDxjc3RyaW5nLHN0cnVjdCByZWZlcl90b190PiAgICAgICAgICAgZGVmYXVsdF9yZWZlcl90bzsKKworbmZwOjprZXl3b3JkPHN0cnVjdCBkZWZhdWx0X3ZhbHVlX3Q+ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlOworbmZwOjprZXl3b3JkPHN0cnVjdCBoYW5kbGVyX3Q+ICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyOworbmZwOjprZXl3b3JkPHN0cnVjdCBpbnRlcnByZXRlcl90PiAgICAgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlcjsKK25mcDo6a2V5d29yZDxzdHJ1Y3QgYXNzaWduX3RvX3Q+ICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduX3RvOworCit9IC8vIGxvY2FsIG5hbWVzcGFjZQorCit9IC8vIG5hbWVzcGFjZSBjbGEKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfTU9ESUZJRVJfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvbmFtZWRfcGFyYW1ldGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGYwM2I0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5ocHAKQEAgLTAsMCArMSw5MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBtb2RlbCBvZiBuYW1lZCBwYXJhbWV0ZXIKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9OQU1FRF9QQVJBTUVURVJfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfTkFNRURfUEFSQU1FVEVSX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYmFzaWNfcGFyYW1ldGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2lkX3BvbGljeS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICBzdHJpbmdfbmFtZV9wb2xpY3kgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitjbGFzcyBzdHJpbmdfbmFtZV9wb2xpY3kgOiBwdWJsaWMgYmFzaWNfbmFtaW5nX3BvbGljeSB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBzdHJpbmdfbmFtZV9wb2xpY3koKTsKKyAgICBCT09TVF9SVF9QQVJBTV9VTk5FRURFRF9WSVJUVUFMIH5zdHJpbmdfbmFtZV9wb2xpY3koKSB7fQorCisgICAgLy8gcG9saWN5IGludGVyZmFjZQorICAgIHZpcnR1YWwgYm9vbCAgICByZXNwb25kc190byggY3N0cmluZyBuYW1lICkgY29uc3Q7CisgICAgdmlydHVhbCBib29sICAgIGNvbmZsaWN0X3dpdGgoIGlkZW50aWZpY2F0aW9uX3BvbGljeSBjb25zdCYgKSBjb25zdDsKKworICAgIC8vIEFjY2VwdCBtb2RpZmllcgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1vZGlmaWVyPgorICAgIHZvaWQgICAgICAgICAgICBhY2NlcHRfbW9kaWZpZXIoIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICB7CisgICAgICAgIGJhc2ljX25hbWluZ19wb2xpY3k6OmFjY2VwdF9tb2RpZmllciggbSApOworCisgICAgICAgIGlmKCBtLmhhcyggZ3Vlc3NfbmFtZV9tICkgKQorICAgICAgICAgICAgbV9ndWVzc19uYW1lID0gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gTmFtaW5nIHBvbGljeSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgICAgbWF0Y2hfbmFtZSggYXJndl90cmF2ZXJzZXImIHRyICkgY29uc3Q7CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBib29sICAgICAgICAgICAgbV9ndWVzc19uYW1lOworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgcnVudGltZTo6Y2xhOjpuYW1lZF9wYXJhbWV0ZXIgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgbmFtZWRfcGFyYW1ldGVyX3QgOiBwdWJsaWMgYmFzaWNfcGFyYW1ldGVyPFQsc3RyaW5nX25hbWVfcG9saWN5PiB7CisgICAgdHlwZWRlZiBiYXNpY19wYXJhbWV0ZXI8VCxzdHJpbmdfbmFtZV9wb2xpY3k+IGJhc2U7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgZXhwbGljaXQgICAgbmFtZWRfcGFyYW1ldGVyX3QoIGNzdHJpbmcgbmFtZSApIDogYmFzZSggbmFtZSApIHt9Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9DTEFfTkFNRURfUEFSQU1fR0VORVJBVE9SUyggbmFtZWRfcGFyYW1ldGVyICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWZuZGVmIEJPT1NUX1JUX1BBUkFNX09GRkxJTkUKKworIyAgZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0lOTElORSBpbmxpbmUKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvbmFtZWRfcGFyYW1ldGVyLmlwcD4KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfTkFNRURfUEFSQU1FVEVSX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9uYW1lZF9wYXJhbWV0ZXIuaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL25hbWVkX3BhcmFtZXRlci5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ3NzAxOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9uYW1lZF9wYXJhbWV0ZXIuaXBwCkBAIC0wLDAgKzEsMTI5IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBpbXBsZW1lbnRzIG1vZGVsIG9mIG5hbWVkIHBhcmFtZXRlcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX05BTUVEX1BBUkFNRVRFUl9JUFBfMDYyOTA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9OQU1FRF9QQVJBTUVURVJfSVBQXzA2MjkwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9uYW1lZF9wYXJhbWV0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvY2hhcl9wYXJhbWV0ZXIuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9hbGdvcml0aG0uaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgc3RyaW5nX25hbWVfcG9saWN5ICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIAorc3RyaW5nX25hbWVfcG9saWN5OjpzdHJpbmdfbmFtZV9wb2xpY3koKQorOiBiYXNpY19uYW1pbmdfcG9saWN5KCBydHRpOjp0eXBlX2lkPHN0cmluZ19uYW1lX3BvbGljeT4oKSApCissIG1fZ3Vlc3NfbmFtZSggZmFsc2UgKQoreworICAgIGFzc2lnbl9vcCggcF9wcmVmaXgudmFsdWUsIEJPT1NUX1JUX1BBUkFNX0NTVFJJTkdfTElURVJBTCggIi0iICksIDAgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGJvb2wKK3N0cmluZ19uYW1lX3BvbGljeTo6cmVzcG9uZHNfdG8oIGNzdHJpbmcgbmFtZSApIGNvbnN0Cit7CisgICAgc3RkOjpwYWlyPGNzdHJpbmc6Oml0ZXJhdG9yLGRzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yPiBtbV9wb3M7CisKKyAgICBtbV9wb3MgPSB1bml0X3Rlc3Q6Om1pc21hdGNoKCBuYW1lLmJlZ2luKCksIG5hbWUuZW5kKCksIHBfbmFtZS0+YmVnaW4oKSwgcF9uYW1lLT5lbmQoKSApOworCisgICAgcmV0dXJuIG1tX3Bvcy5maXJzdCA9PSBuYW1lLmVuZCgpICYmIChtX2d1ZXNzX25hbWUgfHwgKG1tX3Bvcy5zZWNvbmQgPT0gcF9uYW1lLT5lbmQoKSkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmZGVmIEJPT1NUX01TVkMKKyMgIHByYWdtYSB3YXJuaW5nKHB1c2gpCisjICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQyNDQpCisjZW5kaWYKKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGJvb2wKK3N0cmluZ19uYW1lX3BvbGljeTo6Y29uZmxpY3Rfd2l0aCggaWRlbnRpZmljYXRpb25fcG9saWN5IGNvbnN0JiBpZCApIGNvbnN0Cit7CisgICAgaWYoIGlkLnBfdHlwZV9pZCA9PSBwX3R5cGVfaWQgKSB7CisgICAgICAgIHN0cmluZ19uYW1lX3BvbGljeSBjb25zdCYgc25wID0gc3RhdGljX2Nhc3Q8c3RyaW5nX25hbWVfcG9saWN5IGNvbnN0Jj4oIGlkICk7CisKKyAgICAgICAgaWYoIHBfbmFtZS0+ZW1wdHkoKSB8fCBzbnAucF9uYW1lLT5lbXB0eSgpICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiggcF9wcmVmaXggIT0gc25wLnBfcHJlZml4ICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBzdGQ6OnBhaXI8ZHN0cmluZzo6Y29uc3RfaXRlcmF0b3IsZHN0cmluZzo6Y29uc3RfaXRlcmF0b3I+IG1tX3BvcyA9CisgICAgICAgICAgICB1bml0X3Rlc3Q6Om1pc21hdGNoKCBwX25hbWUtPmJlZ2luKCksIHBfbmFtZS0+ZW5kKCksIHNucC5wX25hbWUtPmJlZ2luKCksIHNucC5wX25hbWUtPmVuZCgpICk7CisKKyAgICAgICAgcmV0dXJuIG1tX3Bvcy5maXJzdCAhPSBwX25hbWUtPmJlZ2luKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAgLy8gdGhlcmUgaXMgY29tbW9uIHN1YnN0cmluZworICAgICAgICAgICAgICAgICgobV9ndWVzc19uYW1lICAgICYmIChtbV9wb3Muc2Vjb25kID09IHNucC5wX25hbWUtPmVuZCgpKSApIHx8ICAvLyB0aGF0IG1hdGNoIG90aGVyIGd1eSBhbmQgSSBhbSBndWVzc2luZworICAgICAgICAgICAgICAgIChzbnAubV9ndWVzc19uYW1lICYmIChtbV9wb3MuZmlyc3QgID09IHBfbmFtZS0+ZW5kKCkpICkpOyAgICAgICAvLyBvciBtZSBhbmQgdGhlIG90aGVyIGd1eSBpcworICAgIH0KKyAgICAKKyAgICBpZiggaWQucF90eXBlX2lkID09IHJ0dGk6OnR5cGVfaWQ8Y2hhcl9uYW1lX3BvbGljeT4oKSApIHsKKyAgICAgICAgY2hhcl9uYW1lX3BvbGljeSBjb25zdCYgY25wID0gc3RhdGljX2Nhc3Q8Y2hhcl9uYW1lX3BvbGljeSBjb25zdCY+KCBpZCApOworCisgICAgICAgIHJldHVybiBtX2d1ZXNzX25hbWUgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgKHBfcHJlZml4ID09IGNucC5wX3ByZWZpeCkgICAmJiAKKyAgICAgICAgICAgICAgIHVuaXRfdGVzdDo6Zmlyc3RfY2hhciggY3N0cmluZyggcF9uYW1lICkgKSA9PSB1bml0X3Rlc3Q6OmZpcnN0X2NoYXIoIGNzdHJpbmcoIGNucC5wX25hbWUgKSApOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gZmFsc2U7ICAgIAorfQorCisjaWZkZWYgQk9PU1RfTVNWQworIyAgcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBib29sCitzdHJpbmdfbmFtZV9wb2xpY3k6Om1hdGNoX25hbWUoIGFyZ3ZfdHJhdmVyc2VyJiB0ciApIGNvbnN0Cit7CisgICAgaWYoICFtX2d1ZXNzX25hbWUgKQorICAgICAgICByZXR1cm4gYmFzaWNfbmFtaW5nX3BvbGljeTo6bWF0Y2hfbmFtZSggdHIgKTsKKworICAgIGNzdHJpbmcgaW4gPSB0ci5pbnB1dCgpOworCisgICAgc3RkOjpwYWlyPGNzdHJpbmc6Oml0ZXJhdG9yLGRzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yPiBtbV9wb3M7CisgICAgCisgICAgbW1fcG9zID0gdW5pdF90ZXN0OjptaXNtYXRjaCggaW4uYmVnaW4oKSwgaW4uZW5kKCksIHBfbmFtZS0+YmVnaW4oKSwgcF9uYW1lLT5lbmQoKSApOworCisgICAgaWYoIG1tX3Bvcy5maXJzdCA9PSBpbi5iZWdpbigpICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdHIudHJpbSggbW1fcG9zLmZpcnN0IC0gaW4uYmVnaW4oKSApOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGNsYQorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9OQU1FRF9QQVJBTUVURVJfSVBQXzA2MjkwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcmFtZXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvcGFyYW1ldGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmVkYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcmFtZXRlci5ocHAKQEAgLTAsMCArMSwxNTAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogODE5MTMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgbW9kZWwgb2YgZm9ybWFsIHBhcmFtZXRlcgorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9QQVJBTUVURVJfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3BhcmFtZXRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvbW9kaWZpZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvaWZhY2UvYXJndW1lbnRfZmFjdG9yeS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9pZmFjZS9pZF9wb2xpY3kuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydHRpLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICBydW50aW1lOjpjbGE6OnBhcmFtZXRlciAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIHBhcmFtZXRlciA6IHB1YmxpYyBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0U6OnBhcmFtZXRlciB7CitwdWJsaWM6CisgICAgcGFyYW1ldGVyKCBpZGVudGlmaWNhdGlvbl9wb2xpY3kmIElELCBhcmd1bWVudF9mYWN0b3J5JiBGLCBib29sIG9wdGlvbmFsX3ZhbHVlID0gZmFsc2UgKQorICAgIDogcF9vcHRpb25hbCggZmFsc2UgKQorICAgICwgcF9tdWx0aXBsaWNhYmxlKCBmYWxzZSApCisgICAgLCBwX29wdGlvbmFsX3ZhbHVlKCBvcHRpb25hbF92YWx1ZSApCisgICAgLCBtX2lkX3BvbGljeSggSUQgKQorICAgICwgbV9hcmdfZmFjdG9yeSggRiApCisgICAge30KKworICAgIC8vIERlc3RydWN0b3IKKyAgICB2aXJ0dWFsICAgICAgICAgfnBhcmFtZXRlcigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQorCisgICAgdW5pdF90ZXN0OjpyZWFkd3JpdGVfcHJvcGVydHk8Ym9vbD4gICAgICBwX29wdGlvbmFsOworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PGJvb2w+ICAgICAgcF9tdWx0aXBsaWNhYmxlOworICAgIHVuaXRfdGVzdDo6cmVhZHdyaXRlX3Byb3BlcnR5PGJvb2w+ICAgICAgcF9vcHRpb25hbF92YWx1ZTsKKyAgICB1bml0X3Rlc3Q6OnJlYWR3cml0ZV9wcm9wZXJ0eTxkc3RyaW5nPiAgIHBfZGVzY3JpcHRpb247CisKKyAgICAvLyBwYXJhbWV0ZXIgcHJvcGVydGllcyBtb2RpZmljYXRpb24KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNb2RpZmllcj4KKyAgICB2b2lkICAgICAgICAgICAgYWNjZXB0X21vZGlmaWVyKCBNb2RpZmllciBjb25zdCYgbSApCisgICAgeworICAgICAgICBpZiggbS5oYXMoIG9wdGlvbmFsX20gKSApCisgICAgICAgICAgICBwX29wdGlvbmFsLnZhbHVlID0gdHJ1ZTsKKworICAgICAgICBpZiggbS5oYXMoIHJlcXVpcmVkX20gKSApCisgICAgICAgICAgICBwX29wdGlvbmFsLnZhbHVlID0gZmFsc2U7CisKKyAgICAgICAgaWYoIG0uaGFzKCBtdWx0aXBsaWNhYmxlX20gKSApCisgICAgICAgICAgICBwX211bHRpcGxpY2FibGUudmFsdWUgPSB0cnVlOworCisgICAgICAgIGlmKCBtLmhhcyggb3B0aW9uYWxfdmFsdWVfbSApICkKKyAgICAgICAgICAgIHBfb3B0aW9uYWxfdmFsdWUudmFsdWUgPSB0cnVlOworCisgICAgICAgIG5mcDo6b3B0aW9uYWxseV9hc3NpZ24oIHBfZGVzY3JpcHRpb24udmFsdWUsIG0sIGRlc2NyaXB0aW9uICk7CisgICAgfQorCisgICAgLy8gYWNjZXNzIG1ldGhvZHMKKyAgICBib29sICAgICAgICAgICAgaGFzX2FyZ3VtZW50KCkgY29uc3QgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBtX2FjdHVhbF9hcmd1bWVudCE9MDsgfQorICAgIGFyZ3VtZW50IGNvbnN0JiBhY3R1YWxfYXJndW1lbnQoKSBjb25zdCAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuICptX2FjdHVhbF9hcmd1bWVudDsgfQorICAgIGFyZ3VtZW50X3B0ciAgICBhY3R1YWxfYXJndW1lbnQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIG1fYWN0dWFsX2FyZ3VtZW50OyB9CisKKworICAgIC8vIGlkZW50aWZpY2F0aW9uIGludGVyZmFjZQorICAgIGJvb2wgICAgICAgICAgICByZXNwb25kc190byggY3N0cmluZyBuYW1lICkgY29uc3QgICAgICAgICAgIHsgcmV0dXJuIG1faWRfcG9saWN5LnJlc3BvbmRzX3RvKCBuYW1lICk7IH0KKyAgICBib29sICAgICAgICAgICAgY29uZmxpY3Rfd2l0aCggcGFyYW1ldGVyIGNvbnN0JiBwICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAoaWRfMl9yZXBvcnQoKSA9PSBwLmlkXzJfcmVwb3J0KCkgJiYgIWlkXzJfcmVwb3J0KCkuaXNfZW1wdHkoKSkgIHx8CisgICAgICAgICAgICAgICBtX2lkX3BvbGljeS5jb25mbGljdF93aXRoKCBwLm1faWRfcG9saWN5ICkgICAgICAgICAgICAgICAgICAgICAgIHx8IAorICAgICAgICAgICAgICAgKChtX2lkX3BvbGljeS5wX3R5cGVfaWQgIT0gcC5tX2lkX3BvbGljeS5wX3R5cGVfaWQpICYmIHAubV9pZF9wb2xpY3kuY29uZmxpY3Rfd2l0aCggbV9pZF9wb2xpY3kgKSk7CisgICAgfQorICAgIGNzdHJpbmcgICAgICAgICBpZF8yX3JlcG9ydCgpIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIG1faWRfcG9saWN5LmlkXzJfcmVwb3J0KCk7IH0KKyAgICB2b2lkICAgICAgICAgICAgdXNhZ2VfaW5mbyggZm9ybWF0X3N0cmVhbSYgZnMgKSBjb25zdAorICAgIHsgCisgICAgICAgIG1faWRfcG9saWN5LnVzYWdlX2luZm8oIGZzICk7CisgICAgICAgIGlmKCBwX29wdGlvbmFsX3ZhbHVlICkKKyAgICAgICAgICAgIGZzIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICdbJyApOworCisgICAgICAgIG1fYXJnX2ZhY3RvcnkuYXJndW1lbnRfdXNhZ2VfaW5mbyggZnMgKTsKKworICAgICAgICBpZiggcF9vcHRpb25hbF92YWx1ZSApCisgICAgICAgICAgICBmcyA8PCBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAnXScgKTsKKyAgICB9CisKKyAgICAvLyBhcmd1bWVudCBtYXRjaC9wcm9kdWNlIGJhc2VkIG9uIGlucHV0CisgICAgYm9vbCAgICAgICAgICAgIG1hdGNoaW5nKCBhcmd2X3RyYXZlcnNlciYgdHIsIGJvb2wgcHJpbWFyeSApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZF9wb2xpY3kubWF0Y2hpbmcoICp0aGlzLCB0ciwgcHJpbWFyeSApOworICAgIH0KKworICAgIC8vIGFyZ3VtZW50IHByb2R1Y3Rpb24gYmFzZWQgb24gZGlmZmVyZW50IHNvdXJjZQorICAgIHZvaWQgICAgICAgICAgICBwcm9kdWNlX2FyZ3VtZW50KCBhcmd2X3RyYXZlcnNlciYgdHIgKQorICAgIHsKKyAgICAgICAgbV9pZF9wb2xpY3kubWF0Y2hpbmcoICp0aGlzLCB0ciwgdHJ1ZSApOyAvLyAhISBjYW4gd2Ugc2F2ZSB0aGlzIHBvc2l0aW9uIHNvbWVob3cKKyAgICAgICAgbV9hY3R1YWxfYXJndW1lbnQgPSBtX2FyZ19mYWN0b3J5LnByb2R1Y2VfdXNpbmcoICp0aGlzLCB0ciApOworICAgIH0KKyAgICB2b2lkICAgICAgICAgICAgcHJvZHVjZV9hcmd1bWVudCggcGFyc2VyIGNvbnN0JiBwICkKKyAgICB7CisgICAgICAgIG1fYWN0dWFsX2FyZ3VtZW50ID0gbV9hcmdfZmFjdG9yeS5wcm9kdWNlX3VzaW5nKCAqdGhpcywgcCApOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvL0RhdGEgbWVtYmVycworICAgIGlkZW50aWZpY2F0aW9uX3BvbGljeSYgIG1faWRfcG9saWN5OworICAgIGFyZ3VtZW50X2ZhY3RvcnkmICAgICAgIG1fYXJnX2ZhY3Rvcnk7CisgICAgYXJndW1lbnRfcHRyICAgICAgICAgICAgbV9hY3R1YWxfYXJndW1lbnQ7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBQYXJhbWV0ZXIsdHlwZW5hbWUgTW9kaWZpZXI+CitpbmxpbmUgc2hhcmVkX3B0cjxQYXJhbWV0ZXI+CitvcGVyYXRvci0oIHNoYXJlZF9wdHI8UGFyYW1ldGVyPiBwLCBNb2RpZmllciBjb25zdCYgbSApCit7CisgICAgcC0+YWNjZXB0X21vZGlmaWVyKCBtICk7CisKKyAgICByZXR1cm4gcDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvcGFyc2VyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9wYXJzZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ODYyNWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvcGFyc2VyLmhwcApAQCAtMCwwICsxLDE1MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBwYXJzZXIgLSBwdWJsaWMgaW50ZXJmYWNlIGZvciBDTEEgcGFyc2luZyBhbmQgYWNjZXNzaW5nCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfUEFSU0VSX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX1BBUlNFUl9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2FyZ3VtZW50LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL21vZGlmaWVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9vcHRpb25hbC5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGxpc3Q+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgIHJ1bnRpbWU6OmNsYTo6cGFyc2VyICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCituYW1lc3BhY2UgY2xhX2RldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1vZGlmaWVyPgorY2xhc3MgZ2xvYmFsX21vZF9wYXJzZXIgeworcHVibGljOgorICAgIGdsb2JhbF9tb2RfcGFyc2VyKCBwYXJzZXImIHAsIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICA6IG1fcGFyc2VyKCBwICkKKyAgICAsIG1fbW9kaWZpZXJzKCBtICkKKyAgICB7fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUGFyYW0+CisgICAgZ2xvYmFsX21vZF9wYXJzZXIgY29uc3QmCisgICAgb3BlcmF0b3I8PCggc2hhcmVkX3B0cjxQYXJhbT4gcGFyYW0gKSBjb25zdAorICAgIHsKKyAgICAgICAgcGFyYW0tPmFjY2VwdF9tb2RpZmllciggbV9tb2RpZmllcnMgKTsKKworICAgICAgICBtX3BhcnNlciA8PCBwYXJhbTsKKworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVyczsKKyAgICBwYXJzZXImICAgICAgICAgICAgIG1fcGFyc2VyOworICAgIE1vZGlmaWVyIGNvbnN0JiAgICAgbV9tb2RpZmllcnM7Cit9OworCit9CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBydW50aW1lOjpjbGE6OnBhcnNlciAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgcGFyc2VyIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6bGlzdDxwYXJhbWV0ZXJfcHRyPjo6Y29uc3RfaXRlcmF0b3IgcGFyYW1faXRlcmF0b3I7CisKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0ICAgICAgICAgICAgcGFyc2VyKCBjc3RyaW5nIHByb2dyYW1fbmFtZSA9IGNzdHJpbmcoKSApOworCisgICAgLy8gcGFyYW1ldGVyIGxpc3QgY29uc3RydWN0aW9uIGludGVyZmFjZQorICAgIHBhcnNlciYgICAgICAgICAgICAgb3BlcmF0b3I8PCggcGFyYW1ldGVyX3B0ciBwYXJhbSApOworCisgICAgLy8gcGFyc2VyIGFuZCBnbG9iYWwgcGFyYW1ldGVycyBtb2RpZmllcnMKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNb2RpZmllcj4KKyAgICBjbGFfZGV0YWlsOjpnbG9iYWxfbW9kX3BhcnNlcjxNb2RpZmllcj4KKyAgICBvcGVyYXRvci0oIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICB7CisgICAgICAgIG5mcDo6b3B0aW9uYWxseV9hc3NpZ24oIG1fdHJhdmVyc2VyLnBfc2VwYXJhdG9yLnZhbHVlLCBtLCBpbnB1dF9zZXBhcmF0b3IgKTsKKyAgICAgICAgbmZwOjpvcHRpb25hbGx5X2Fzc2lnbiggbV90cmF2ZXJzZXIucF9pZ25vcmVfbWlzbWF0Y2gudmFsdWUsIG0sIGlnbm9yZV9taXNtYXRjaF9tICk7CisKKyAgICAgICAgcmV0dXJuIGNsYV9kZXRhaWw6Omdsb2JhbF9tb2RfcGFyc2VyPE1vZGlmaWVyPiggKnRoaXMsIG0gKTsKKyAgICB9CisKKyAgICAvLyBpbnB1dCBwcm9jZXNzaW5nIG1ldGhvZAorICAgIHZvaWQgICAgICAgICAgICAgICAgcGFyc2UoIGludCYgYXJnYywgY2hhcl90eXBlKiogYXJndiApOworCisgICAgLy8gcGFyYW1ldGVycyBhY2Nlc3MKKyAgICBwYXJhbV9pdGVyYXRvciAgICAgIGZpcnN0X3BhcmFtKCkgY29uc3Q7CisgICAgcGFyYW1faXRlcmF0b3IgICAgICBsYXN0X3BhcmFtKCkgY29uc3Q7CisKKyAgICAvLyBhcmd1bWVudHMgYWNjZXNzCisgICAgY29uc3RfYXJndW1lbnRfcHRyICBvcGVyYXRvcltdKCBjc3RyaW5nIHN0cmluZ19pZCApIGNvbnN0OworICAgIGNzdHJpbmcgICAgICAgICAgICAgZ2V0KCBjc3RyaW5nIHN0cmluZ19pZCApIGNvbnN0OyAgICAKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgVCBjb25zdCYgICAgICAgICAgICBnZXQoIGNzdHJpbmcgc3RyaW5nX2lkICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBhcmdfdmFsdWU8VD4oIHZhbGlkX2FyZ3VtZW50KCBzdHJpbmdfaWQgKSApOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCAgICAgICAgICAgICAgICBnZXQoIGNzdHJpbmcgc3RyaW5nX2lkLCBuZG5ib29zdDo6b3B0aW9uYWw8VD4mIHJlcyApIGNvbnN0CisgICAgeworICAgICAgICBjb25zdF9hcmd1bWVudF9wdHIgYWN0dWFsX2FyZyA9ICgqdGhpcylbc3RyaW5nX2lkXTsKKworICAgICAgICBpZiggYWN0dWFsX2FyZyApCisgICAgICAgICAgICByZXMgPSBhcmdfdmFsdWU8VD4oICphY3R1YWxfYXJnICk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcy5yZXNldCgpOworICAgIH0KKworICAgIC8vIGhlbHAvdXNhZ2UKKyAgICB2b2lkICAgICAgICAgICAgICAgIHVzYWdlKCBvdXRfc3RyZWFtJiBvc3RyICk7CisgICAgdm9pZCAgICAgICAgICAgICAgICBoZWxwKCAgb3V0X3N0cmVhbSYgb3N0ciApOworCitwcml2YXRlOgorICAgIGFyZ3VtZW50IGNvbnN0JiAgICAgdmFsaWRfYXJndW1lbnQoIGNzdHJpbmcgc3RyaW5nX2lkICkgY29uc3Q7CisKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBhcmd2X3RyYXZlcnNlciAgICAgICAgICAgICAgbV90cmF2ZXJzZXI7CisgICAgc3RkOjpsaXN0PHBhcmFtZXRlcl9wdHI+ICAgIG1fcGFyYW1ldGVyczsKKyAgICBkc3RyaW5nICAgICAgICAgICAgICAgICAgICAgbV9wcm9ncmFtX25hbWU7Cit9OworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBjbGEKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZm5kZWYgQk9PU1RfUlRfUEFSQU1fT0ZGTElORQorCisjICBkZWZpbmUgQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGlubGluZQorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9wYXJzZXIuaXBwPgorCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9QQVJTRVJfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5pcHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvcGFyc2VyLmlwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmU4NTAzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5pcHAKQEAgLTAsMCArMSwyNTggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBpbXBsZW1lbnRzIHBhcnNlciAtIHB1YmxpYyBpbnRlcmZhY2UgZm9yIENMQSBwYXJzaW5nIGFuZCBhY2Nlc3NpbmcKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9QQVJTRVJfSVBQXzA2MjkwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfUEFSU0VSX0lQUF8wNjI5MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdHJhY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9hcmd1bWVudC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL2FyZ3ZfdHJhdmVyc2VyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcmFtZXRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9tb2RpZmllci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWxpZGF0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5ocHA+CisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvZm9yZWFjaC5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvbGV4aWNhbF9jYXN0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgcnVudGltZTo6Y2xhOjpwYXJzZXIgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORQorcGFyc2VyOjpwYXJzZXIoIGNzdHJpbmcgcHJvZ3JhbV9uYW1lICkKK3sKKyAgICBhc3NpZ25fb3AoIG1fcHJvZ3JhbV9uYW1lLCBwcm9ncmFtX25hbWUsIDAgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHBhcnNlcjo6cGFyYW1faXRlcmF0b3IKK3BhcnNlcjo6Zmlyc3RfcGFyYW0oKSBjb25zdAoreworICAgIHJldHVybiBtX3BhcmFtZXRlcnMuYmVnaW4oKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHBhcnNlcjo6cGFyYW1faXRlcmF0b3IKK3BhcnNlcjo6bGFzdF9wYXJhbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFyYW1ldGVycy5lbmQoKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGFyZ3VtZW50IGNvbnN0JgorcGFyc2VyOjp2YWxpZF9hcmd1bWVudCggY3N0cmluZyBzdHJpbmdfaWQgKSBjb25zdAoreworICAgIGNvbnN0X2FyZ3VtZW50X3B0ciBhcmcgPSAoKnRoaXMpW3N0cmluZ19pZF07CisKKyAgICBCT09TVF9SVF9QQVJBTV9WQUxJREFURV9MT0dJQyggISFhcmcsICJBY3R1YWwgYXJndW1lbnQgZm9yIHBhcmFtZXRlciAiIDw8IHN0cmluZ19pZCA8PCAiIGlzIG5vdCBwcmVzZW50IiApOworCisgICAgcmV0dXJuICphcmc7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBwYXJzZXImCitwYXJzZXI6Om9wZXJhdG9yPDwoIHBhcmFtZXRlcl9wdHIgbmV3X3BhcmFtICkKK3sKKyAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHBhcmFtZXRlcl9wdHIsIG9sZF9wYXJhbSwgbV9wYXJhbWV0ZXJzICkgeworICAgICAgICBCT09TVF9SVF9QQVJBTV9WQUxJREFURV9MT0dJQyggIW9sZF9wYXJhbS0+Y29uZmxpY3Rfd2l0aCggKm5ld19wYXJhbSApLAorICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggIkRlZmluaXRpb24gb2YgcGFyYW1ldGVyICIgKSAgICAgICAgICAgICAgICA8PCBuZXdfcGFyYW0tPmlkXzJfcmVwb3J0KCkgPDwgCisgICAgICAgICAgICBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAiIGNvbmZsaWN0cyB3aXRoIGRlZmludGlvbiBvZiBwYXJhbWV0ZXIgIiApIDw8IG9sZF9wYXJhbS0+aWRfMl9yZXBvcnQoKSApOworICAgIH0KKworICAgIG1fcGFyYW1ldGVycy5wdXNoX2JhY2soIG5ld19wYXJhbSApOworCisgICAgcmV0dXJuICp0aGlzOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdm9pZAorcGFyc2VyOjpwYXJzZSggaW50JiBhcmdjLCBjaGFyX3R5cGUqKiBhcmd2ICkKK3sKKyAgICBpZiggbV9wcm9ncmFtX25hbWUuZW1wdHkoKSApIHsKKyAgICAgICAgbV9wcm9ncmFtX25hbWUuYXNzaWduKCBhcmd2WzBdICk7CisgICAgICAgIGRzdHJpbmc6OnNpemVfdHlwZSBwb3MgPSBtX3Byb2dyYW1fbmFtZS5maW5kX2xhc3Rfb2YoIEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICIvXFwiICkgKTsKKworICAgICAgICBpZiggcG9zICE9IHN0YXRpY19jYXN0PGRzdHJpbmc6OnNpemVfdHlwZT4oY3N0cmluZzo6bnBvcykgKQorICAgICAgICAgICAgbV9wcm9ncmFtX25hbWUuZXJhc2UoIDAsIHBvcysxICk7CisgICAgfQorCisgICAgbV90cmF2ZXJzZXIuaW5pdCggYXJnYywgYXJndiApOworCisgICAgdHJ5IHsKKyAgICAgICAgd2hpbGUoICFtX3RyYXZlcnNlci5lb2koKSApIHsKKyAgICAgICAgICAgIHBhcmFtZXRlcl9wdHIgZm91bmRfcGFyYW07CisKKyAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX1RSQUNFKCAiVG90YWwgIiA8PCBtX3BhcmFtZXRlcnMuc2l6ZSgpIDw8ICIgcGFyYW1ldGVycyByZWdpc3RlcmVkIiApOworCisgICAgICAgICAgICBCT09TVF9URVNUX0ZPUkVBQ0goIHBhcmFtZXRlcl9wdHIgY29uc3QmLCBjdXJyX3BhcmFtLCBtX3BhcmFtZXRlcnMgKSB7CisgICAgICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJUcnkgcGFyYW1ldGVyICIgPDwgY3Vycl9wYXJhbS0+aWRfMl9yZXBvcnQoKSApOworCisgICAgICAgICAgICAgICAgaWYoIGN1cnJfcGFyYW0tPm1hdGNoaW5nKCBtX3RyYXZlcnNlciwgIWZvdW5kX3BhcmFtICkgKSB7CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX1RSQUNFKCAiTWF0Y2ggZm91bmQiICk7CisgICAgICAgICAgICAgICAgICAgIEJPT1NUX1JUX0NMQV9WQUxJREFURV9JTlBVVCggIWZvdW5kX3BhcmFtLCAobV90cmF2ZXJzZXIucm9sbGJhY2soKSxtX3RyYXZlcnNlciksICJBbWJpZ3VvdXMgaW5wdXQiICk7CisKKyAgICAgICAgICAgICAgICAgICAgZm91bmRfcGFyYW0gPSBjdXJyX3BhcmFtOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1fdHJhdmVyc2VyLnJvbGxiYWNrKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKCAhZm91bmRfcGFyYW0gKSB7CisgICAgICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJObyBtYXRjaCBmb3VuZCIgKTsKKyAgICAgICAgICAgICAgICBCT09TVF9SVF9DTEFfVkFMSURBVEVfSU5QVVQoIG1fdHJhdmVyc2VyLmhhbmRsZV9taXNtYXRjaCgpLCBtX3RyYXZlcnNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICJVbmV4cGVjdGVkIGlucHV0IiApICk7CisKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJQYXJzZSBhcmd1bWVudCB2YWx1ZSIgKTsKKyAgICAgICAgICAgIGZvdW5kX3BhcmFtLT5wcm9kdWNlX2FyZ3VtZW50KCBtX3RyYXZlcnNlciApOworCisgICAgICAgICAgICBtX3RyYXZlcnNlci5jb21taXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggcGFyYW1ldGVyX3B0ciBjb25zdCYsIGN1cnJfcGFyYW0sIG1fcGFyYW1ldGVycyApIHsKKyAgICAgICAgICAgIGlmKCAhY3Vycl9wYXJhbS0+cF9vcHRpb25hbCAmJiAhY3Vycl9wYXJhbS0+YWN0dWFsX2FyZ3VtZW50KCkgKSB7CisgICAgICAgICAgICAgICAgY3Vycl9wYXJhbS0+cHJvZHVjZV9hcmd1bWVudCggKnRoaXMgKTsKKworICAgICAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX1ZBTElEQVRFX0xPR0lDKCBjdXJyX3BhcmFtLT5hY3R1YWxfYXJndW1lbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggIlJlcXVpcmVkIGFyZ3VtZW50IGZvciBwYXJhbWV0ZXIgIiApIDw8IGN1cnJfcGFyYW0tPmlkXzJfcmVwb3J0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICIgaXMgbWlzc2luZyIgKSApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGNhdGNoKCBiYWRfbGV4aWNhbF9jYXN0IGNvbnN0JiApIHsKKyAgICAgICAgQk9PU1RfUlRfUEFSQU1fUkVQT1JUX0xPR0lDX0VSUk9SKCAKKyAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICJTdHJpbmcgdG8gdmFsdWUgY29udmVydGlvbiBlcnJvciBkdXJpbmcgaW5wdXQgcGFyc2luZyIgKSApOworICAgIH0KKworICAgIG1fdHJhdmVyc2VyLnJlbWFpbmRlciggYXJnYywgYXJndiApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgY29uc3RfYXJndW1lbnRfcHRyCitwYXJzZXI6Om9wZXJhdG9yW10oIGNzdHJpbmcgc3RyaW5nX2lkICkgY29uc3QKK3sKKyAgICBwYXJhbWV0ZXJfcHRyIGZvdW5kX3BhcmFtOworCisgICAgQk9PU1RfVEVTVF9GT1JFQUNIKCBwYXJhbWV0ZXJfcHRyIGNvbnN0JiwgY3Vycl9wYXJhbSwgbV9wYXJhbWV0ZXJzICkgeworICAgICAgICBpZiggY3Vycl9wYXJhbS0+cmVzcG9uZHNfdG8oIHN0cmluZ19pZCApICkgeworICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fVkFMSURBVEVfTE9HSUMoICFmb3VuZF9wYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAiQW1iaWd1b3VzIHBhcmFtZXRlciBzdHJpbmcgaWQ6ICIgKSA8PCBzdHJpbmdfaWQgKTsKKworICAgICAgICAgICAgZm91bmRfcGFyYW0gPSBjdXJyX3BhcmFtOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZvdW5kX3BhcmFtID8gZm91bmRfcGFyYW0tPmFjdHVhbF9hcmd1bWVudCgpIDogYXJndW1lbnRfcHRyKCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSBjc3RyaW5nCitwYXJzZXI6OmdldCggY3N0cmluZyBzdHJpbmdfaWQgKSBjb25zdAoreworICAgIHJldHVybiBnZXQ8Y3N0cmluZz4oIHN0cmluZ19pZCApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdm9pZAorcGFyc2VyOjp1c2FnZSggb3V0X3N0cmVhbSYgb3N0ciApCit7CisgICAgaWYoIG1fcHJvZ3JhbV9uYW1lLmVtcHR5KCkgKQorICAgICAgICBhc3NpZ25fb3AoIG1fcHJvZ3JhbV9uYW1lLCBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoICI8cHJvZ3JhbT4iICksIDAgKTsKKworICAgIGZvcm1hdF9zdHJlYW0gZnM7CisKKyAgICBmcyA8PCBtX3Byb2dyYW1fbmFtZTsKKworICAgIEJPT1NUX1RFU1RfRk9SRUFDSCggcGFyYW1ldGVyX3B0ciBjb25zdCYsIGN1cnJfcGFyYW0sIG1fcGFyYW1ldGVycyApIHsKKyAgICAgICAgZnMgPDwgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJyAnICk7CisKKyAgICAgICAgaWYoIGN1cnJfcGFyYW0tPnBfb3B0aW9uYWwgKQorICAgICAgICAgICAgZnMgPDwgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggJ1snICk7CisKKyAgICAgICAgY3Vycl9wYXJhbS0+dXNhZ2VfaW5mbyggZnMgKTsKKworICAgICAgICBpZiggY3Vycl9wYXJhbS0+cF9vcHRpb25hbCApCisgICAgICAgICAgICBmcyA8PCBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAnXScgKTsKKworICAgICAgICBpZiggY3Vycl9wYXJhbS0+cF9tdWx0aXBsaWNhYmxlICkgeworICAgICAgICAgICAgZnMgPDwgQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAiIC4uLiAiICk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKCBjdXJyX3BhcmFtLT5wX29wdGlvbmFsICkKKyAgICAgICAgICAgICAgICBmcyA8PCBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAnWycgKTsKKworICAgICAgICAgICAgY3Vycl9wYXJhbS0+dXNhZ2VfaW5mbyggZnMgKTsKKworICAgICAgICAgICAgaWYoIGN1cnJfcGFyYW0tPnBfb3B0aW9uYWwgKQorICAgICAgICAgICAgICAgIGZzIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICddJyApOworICAgICAgICB9CisgICAgfQorCisgICAgb3N0ciA8PCBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoICJVc2FnZTpcbiIgKSA8PCBmcy5zdHIoKSA8PCBzdGQ6OmVuZGw7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSB2b2lkCitwYXJzZXI6OmhlbHAoIG91dF9zdHJlYW0mIG9zdHIgKQoreworICAgIHVzYWdlKCBvc3RyICk7CisKKyAgICBib29sIG5lZWRfd2hlcmUgPSB0cnVlOworCisgICAgQk9PU1RfVEVTVF9GT1JFQUNIKCBwYXJhbWV0ZXJfcHRyIGNvbnN0JiwgY3Vycl9wYXJhbSwgbV9wYXJhbWV0ZXJzICkgeworICAgICAgICBpZiggY3Vycl9wYXJhbS0+cF9kZXNjcmlwdGlvbi0+ZW1wdHkoKSApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiggbmVlZF93aGVyZSApIHsKKyAgICAgICAgICAgIG9zdHIgPDwgQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAid2hlcmU6XG4iICk7CisgICAgICAgICAgICBuZWVkX3doZXJlID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBvc3RyIDw8IGN1cnJfcGFyYW0tPmlkXzJfcmVwb3J0KCkgPDwgQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAiIC0gIiApIDw8IGN1cnJfcGFyYW0tPnBfZGVzY3JpcHRpb24gPDwgc3RkOjplbmRsOworICAgIH0KK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX1BBUlNFUl9JUFBfMDYyOTA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdHlwZWRfcGFyYW1ldGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS90eXBlZF9wYXJhbWV0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4YWQ5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdHlwZWRfcGFyYW1ldGVyLmhwcApAQCAtMCwwICsxLDcwIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU0NjMzICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBnZW5lcmljIHR5cGVkIHBhcmFtZXRlciBtb2RlbAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfQ0xBX1RZUEVEX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9UWVBFRF9QQVJBTUVURVJfSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9wYXJhbWV0ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndW1lbnRfZmFjdG9yeS5ocHA+CisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J0dGkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgIHJ1bnRpbWU6OmNsYTo6dHlwZWRfcGFyYW1ldGVyICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIHR5cGVkX3BhcmFtZXRlciA6IHB1YmxpYyBjbGE6OnBhcmFtZXRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgdHlwZWRfcGFyYW1ldGVyKCBpZGVudGlmaWNhdGlvbl9wb2xpY3kmIElEICkgCisgICAgOiBjbGE6OnBhcmFtZXRlciggSUQsIG1fYXJnX2ZhY3RvcnksIHJ0dGk6OnR5cGVfaWQ8VD4oKSA9PSBydHRpOjp0eXBlX2lkPGJvb2w+KCkgKSAKKyAgICB7fQorCisgICAgLy8gcGFyYW1ldGVyIHByb3BlcnRpZXMgbW9kaWZpY2F0aW9uCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTW9kaWZpZXI+CisgICAgdm9pZCAgICBhY2NlcHRfbW9kaWZpZXIoIE1vZGlmaWVyIGNvbnN0JiBtICkKKyAgICB7CisgICAgICAgIGNsYTo6cGFyYW1ldGVyOjphY2NlcHRfbW9kaWZpZXIoIG0gKTsKKworICAgICAgICBtX2FyZ19mYWN0b3J5LmFjY2VwdF9tb2RpZmllciggbSApOworCisgICAgICAgIEJPT1NUX1JUX1BBUkFNX1ZBTElEQVRFX0xPR0lDKCAhcF9vcHRpb25hbCB8fCAhbV9hcmdfZmFjdG9yeS5tX3ZhbHVlX2dlbmVyYXRvciwKKyAgICAgICAgICAgIEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICJjYW4ndCBkZWZpbmUgYSB2YWx1ZSBnZW5lcmF0b3IgZm9yIG9wdGlvbmFsIHBhcmFtZXRlciAiICkgPDwgaWRfMl9yZXBvcnQoKSApOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICB0eXBlZF9hcmd1bWVudF9mYWN0b3J5PFQ+ICAgbV9hcmdfZmFjdG9yeTsKK307CisKK30gLy8gbmFtZXNwYWNlIGNsYQorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9UWVBFRF9QQVJBTUVURVJfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4YzliNzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsaWRhdGlvbi5ocHAKQEAgLTAsMCArMSw1NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW5wdXQgdmFsaWRhdGlvbiBoZWxwZXJzIGRlZmluaXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9WQUxJREFUSU9OX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX1ZBTElEQVRJT05fSFBQXzA2MjYwNEdFUgorCisvLyBCb29zdC5SdW50aW1lLlBhcmFtZXRlcgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS9md2QuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworbmFtZXNwYWNlIGNsYSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICBydW50aW1lOjpjbGE6OnJlcG9ydF9pbnB1dF9lcnJvciAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordm9pZCByZXBvcnRfaW5wdXRfZXJyb3IoIGFyZ3ZfdHJhdmVyc2VyIGNvbnN0JiB0ciwgZm9ybWF0X3N0cmVhbSYgbXNnICk7CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNkZWZpbmUgQk9PU1RfUlRfQ0xBX1ZBTElEQVRFX0lOUFVUKCBiLCB0ciwgbXNnICkgXAorICAgIGlmKCBiICkgOyBlbHNlIDo6bmRuYm9vc3Q6OkJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRTo6Y2xhOjpyZXBvcnRfaW5wdXRfZXJyb3IoIHRyLCBmb3JtYXRfc3RyZWFtKCkucmVmKCkgPDwgbXNnICkKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWZuZGVmIEJPT1NUX1JUX1BBUkFNX09GRkxJTkUKKworIyAgZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0lOTElORSBpbmxpbmUKKyMgIGluY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsaWRhdGlvbi5pcHA+CisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX1ZBTElEQVRJT05fSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaXBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbGlkYXRpb24uaXBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMjk1ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsaWRhdGlvbi5pcHAKQEAgLTAsMCArMSw2NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW5wdXQgdmFsaWRhdGlvbiBoZWxwZXJzIGltcGxlbWVudGF0aW9uCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfVkFMSURBVElPTl9JUFBfMDcwNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9WQUxJREFUSU9OX0lQUF8wNzA2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvYXJndl90cmF2ZXJzZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvdmFsaWRhdGlvbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwPiAvLyBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0U6OmxvZ2ljX2Vycm9yCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKworLy8gU1RMCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICBydW50aW1lOjpjbGE6OnZhbGlkYXRpb24gICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdm9pZAorcmVwb3J0X2lucHV0X2Vycm9yKCBhcmd2X3RyYXZlcnNlciBjb25zdCYgdHIsIGZvcm1hdF9zdHJlYW0mIG1zZyApCit7CisgICAgaWYoIHRyLmVvaSgpICkKKyAgICAgICAgbXNnIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICIgYXQgdGhlIGVuZCBvZiBpbnB1dCIgKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbXNnIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICIgaW4gdGhlIGZvbGxvd2luZyBwb3NpdGlvbjogIiApOworCisgICAgICAgIGlmKCB0ci5pbnB1dCgpLnNpemUoKSA+IDUgKQorICAgICAgICAgICAgbXNnIDw8IHRyLmlucHV0KCkuc3Vic3RyKCAwLCA1ICkgPDwgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggIi4uLiIgKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbXNnIDw8IHRyLmlucHV0KCk7CisgICAgfQorCisgICAgdGhyb3cgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFOjpsb2dpY19lcnJvciggbXNnLnN0cigpICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGNsYQorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0NMQV9WQUxJREFUSU9OX0lQUF8wNzA2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWx1ZV9nZW5lcmF0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbHVlX2dlbmVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQwMjk3NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWx1ZV9nZW5lcmF0b3IuaHBwCkBAIC0wLDAgKzEsODEgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IHNwZWNpZmljIHZhbHVlIGdlbmVyYXRvcnMKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NMQV9WQUxVRV9HRU5FUkFUT1JfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9DTEFfVkFMVUVfR0VORVJBVE9SX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3BhcnNlci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgY2xhIHsKKworbmFtZXNwYWNlIHJ0X2NsYV9kZXRhaWwgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgIHJ1bnRpbWU6OmNsYTo6Y29uc3RfZ2VuZXJhdG9yICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBjb25zdF9nZW5lcmF0b3IgeworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9yCisgICAgZXhwbGljaXQgICAgY29uc3RfZ2VuZXJhdG9yKCBUIGNvbnN0JiB0ICkgOiBtX2NvbnN0X3ZhbHVlKCB0ICkge30KKworICAgIC8vIGdlbmVyYXRvciBpbnRlcmZhY2UKKyAgICB2b2lkICAgICAgICBvcGVyYXRvcigpKCBwYXJzZXIgY29uc3QmLCBuZG5ib29zdDo6b3B0aW9uYWw8VD4mIHQgKSBjb25zdCAgIHsgdCA9IG1fY29uc3RfdmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBUICAgICAgICAgICBtX2NvbnN0X3ZhbHVlOworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgcnVudGltZTo6Y2xhOjpyZWZfZ2VuZXJhdG9yICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgcmVmX2dlbmVyYXRvciB7CitwdWJsaWM6CisgICAgLy8gQ29uc3RydWN0b3IKKyAgICBleHBsaWNpdCAgICByZWZfZ2VuZXJhdG9yKCBjc3RyaW5nIHJlZl9pZCApIDogbV9yZWZfaWQoIHJlZl9pZCApIHt9CisKKyAgICAvLyBnZW5lcmF0b3IgaW50ZXJmYWNlCisgICAgdm9pZCAgICAgICAgb3BlcmF0b3IoKSggcGFyc2VyIGNvbnN0JiBwLCBuZG5ib29zdDo6b3B0aW9uYWw8VD4mIHQgKSBjb25zdAorICAgIHsKKyAgICAgICAgcC5nZXQoIG1fcmVmX2lkLCB0ICk7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIERhdGEgbWVtYmVycworICAgIGNzdHJpbmcgICAgIG1fcmVmX2lkOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgcnRfY2xhX2RldGFpbAorCit9IC8vIG5hbWVzcGFjZSBjbGEKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9DTEFfVkFMVUVfR0VORVJBVE9SX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWx1ZV9oYW5kbGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NsYS92YWx1ZV9oYW5kbGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDc5MmJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY2xhL3ZhbHVlX2hhbmRsZXIuaHBwCkBAIC0wLDAgKzEsNTcgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IHNwZWNpZmljIHZhbHVlIGhhbmRsZXJzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9DTEFfVkFMVUVfSEFORExFUl9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NMQV9WQUxVRV9IQU5ETEVSX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9jbGEvZndkLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBjbGEgeworCituYW1lc3BhY2UgcnRfY2xhX2RldGFpbCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgIHJ1bnRpbWU6OmNsYTo6YXNzaWduZXIgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIGFzc2lnbmVyIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcgorICAgIGV4cGxpY2l0ICAgIGFzc2lnbmVyKCBUJiBsb2MgKSA6IG1fdGFyZ2V0KCBsb2MgKSAgICB7fQorCisgICAgLy8gdmFsdWUgaGFuZGxlciBpbXBsZW1lbnRhdGlvbgorICAgIHZvaWQgICAgICAgIG9wZXJhdG9yKCkoIHBhcmFtZXRlciBjb25zdCYsIFQmIHQgKSAgeyBtX3RhcmdldCA9IHQ7IH0KKworcHJpdmF0ZToKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBUJiAgICAgICAgICBtX3RhcmdldDsKK307CisKK30gLy8gbmFtZXNwYWNlIHJ0X2NsYV9kZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgY2xhCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ0xBX1ZBTFVFX0hBTkRMRVJfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2N2E5NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHAKQEAgLTAsMCArMSwxNTYgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogUnVudGltZS5QYXJhbSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0NPTkZJR19IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0NPTkZJR19IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpZmRlZiBCT09TVF9NU1ZDCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ1MTEpIC8vIGNvcHkgY29uc3RydWN0b3IgY291bGQgbm90IGJlIGdlbmVyYXRlZAorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NTEyKSAvLyBhc3NpZ25tZW50IG9wZXJhdG9yIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDE4MSkgLy8gcXVhbGlmaWVyIGFwcGxpZWQgdG8gcmVmZXJlbmNlIHR5cGU7IGlnbm9yZWQKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDY3NSkgLy8gcmVzb2x2ZWQgb3ZlcmxvYWQgd2FzIGZvdW5kIGJ5IGFyZ3VtZW50LWRlcGVuZGVudCBsb29rdXAKKyNlbmRpZgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy93cmFwX3N0cmluZ3N0cmVhbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4gLy8gb3BlcmF0b3I8PChuZG5ib29zdDo6cnVudGltZTo6Y3N0cmluZykKKworLy8gU1RMCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPGNzdGRsaWI+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpZm5kZWYgQk9PU1RfUlRfUEFSQU1fQ1VTVE9NX1NUUklORworIyAgaWZuZGVmIEJPT1NUX1JUX1BBUkFNX1dJREVfU1RSSU5HCisjICAgIGRlZmluZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZQorIyAgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZGVfcnVudGltZQorIyAgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgX19TVU5QUk9fQ0MKK2V4dGVybiBpbnQgcHV0ZW52KGNoYXIqKTsKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFIHsKKworI2lmbmRlZiBCT09TVF9SVF9QQVJBTV9DVVNUT01fU1RSSU5HCisjICBpZm5kZWYgQk9PU1RfUlRfUEFSQU1fV0lERV9TVFJJTkcKKwordHlwZWRlZiBjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJfdHlwZTsKK3R5cGVkZWYgc3RkOjpzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RyaW5nOwordHlwZWRlZiB1bml0X3Rlc3Q6OmNvbnN0X3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzdHJpbmc7Cit0eXBlZGVmIHVuaXRfdGVzdDo6bGl0ZXJhbF9zdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbF9jc3RyaW5nOwordHlwZWRlZiB3cmFwX3N0cmluZ3N0cmVhbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9zdHJlYW07CisKKyNpZmRlZiBCT09TVF9DTEFTU0lDX0lPU1RSRUFNUwordHlwZWRlZiBzdGQ6Om9zdHJlYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9zdHJlYW07CisjZWxzZQordHlwZWRlZiBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhcl90eXBlPiAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9zdHJlYW07CisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDk5NikgLy8gcHV0ZW52CisjZW5kaWYKKworI2lmbmRlZiBVTkRFUl9DRQorI2lmIGRlZmluZWQoX19DT01PX18pICYmIDAKK2lubGluZSB2b2lkCitwdXRlbnZfaW1wbCggY3N0cmluZyBuYW1lLCBjc3RyaW5nIHZhbHVlICkKK3sKKyAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOworICAgIC8vICEhIHRoaXMgbWF5IGFjdHVhbGx5IGZhaWwuIFdoYXQgc2hvdWxkIHdlIGRvPworICAgIHNldGVudiggbmFtZS5iZWdpbigpLCB2YWx1ZS5iZWdpbigpLCAxICk7Cit9CisjZWxzZQoraW5saW5lIHZvaWQKK3B1dGVudl9pbXBsKCBjc3RyaW5nIG5hbWUsIGNzdHJpbmcgdmFsdWUgKQoreworICAgIGZvcm1hdF9zdHJlYW0gZnM7CisKKyAgICBmcyA8PCBuYW1lIDw8ICc9JyA8PCB2YWx1ZTsKKworICAgIC8vICEhIHRoaXMgbWF5IGFjdHVhbGx5IGZhaWwuIFdoYXQgc2hvdWxkIHdlIGRvPworICAgIC8vIGNvbnN0X2Nhc3QgaXMgdXNlZCB0byBzYXRpc2Z5IHB1dGVudiBpbnRlcmZhY2UKKyAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOworICAgIHB1dGVudiggY29uc3RfY2FzdDxjaGFyKj4oIGZzLnN0cigpLmNfc3RyKCkgKSApOworfQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX01TVkMgCisjcHJhZ21hIHdhcm5pbmcocG9wKSAKKyNlbmRpZiAKKworI2RlZmluZSBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCBsICkgbAorI2RlZmluZSBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoIGwgKSBjc3RyaW5nKCBsLCBzaXplb2YoIGwgKSAtIDEgKQorI2RlZmluZSBCT09TVF9SVF9QQVJBTV9HRVRFTlYgZ2V0ZW52CisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNX1BVVEVOViA6Om5kbmJvb3N0OjpCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0U6OnB1dGVudl9pbXBsCisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0VYQ0VQVElPTl9JTkhFUklUX1NURAorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjICBlbHNlCisKK3R5cGVkZWYgd2NoYXJfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyX3R5cGU7Cit0eXBlZGVmIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXJfdHlwZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0cmluZzsKK3R5cGVkZWYgdW5pdF90ZXN0OjpiYXNpY19jc3RyaW5nPHdjaGFyX3QgY29uc3Q+ICAgICAgICAgICAgICAgICBjc3RyaW5nOwordHlwZWRlZiBjb25zdCB1bml0X3Rlc3Q6OmJhc2ljX2NzdHJpbmc8d2NoYXJfdCBjb25zdD4gICAgICAgICAgIGxpdGVyYWxfY3N0cmluZzsKK3R5cGVkZWYgd3JhcF93c3RyaW5nc3RyZWFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfc3RyZWFtOwordHlwZWRlZiBzdGQ6Ondvc3RyZWFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9zdHJlYW07CisKKyNpZm5kZWYgVU5ERVJfQ0UKK2lubGluZSB2b2lkCitwdXRlbnZfaW1wbCggY3N0cmluZyBuYW1lLCBjc3RyaW5nIHZhbHVlICkKK3sKKyAgICBmb3JtYXRfc3RyZWFtIGZzOworCisgICAgZnMgPDwgbmFtZSA8PCAnPScgPDwgdmFsdWU7CisKKyAgICAvLyAhISB0aGlzIG1heSBhY3R1YWxseSBmYWlsLiBXaGF0IHNob3VsZCB3ZSBkbz8KKyAgICAvLyBjb25zdF9jYXN0IGlzIHVzZWQgdG8gc2F0aXNmeSBwdXRlbnYgaW50ZXJmYWNlCisgICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyAgICB3cHV0ZW52KCBjb25zdF9jYXN0PHdjaGFyX3QqPiggZnMuc3RyKCkuY19zdHIoKSApICk7Cit9CisjZW5kaWYKKworI2RlZmluZSBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCBsICkgTCAjIyBsCisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0NTVFJJTkdfTElURVJBTCggbCApIGNzdHJpbmcoIEwgIyMgbCwgc2l6ZW9mKCBMICMjIGwgKS9zaXplb2Yod2NoYXJfdCkgLSAxICkKKyNkZWZpbmUgQk9PU1RfUlRfUEFSQU1fR0VURU5WIHdnZXRlbnYKKyNkZWZpbmUgQk9PU1RfUlRfUEFSQU1fUFVURU5WIHB1dGVudl9pbXBsCisKKyMgIGVuZGlmCisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNX1VOTkVFREVEX1ZJUlRVQUwgdmlydHVhbAorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfUlRfUEFSQU1fVU5ORUVERURfVklSVFVBTAorI2VuZGlmCisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfQ09ORklHX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9lbnZpcm9ubWVudC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvZW52aXJvbm1lbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NWYxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvZW52aXJvbm1lbnQuaHBwCkBAIC0wLDAgKzEsMTcyIEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNTQ2MzMgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGRlZmluZXMgYW5kIGltcGxlbWVudHMgaW5saW5lIG1vZGVsIG9mIHByb2dyYW0gZW52aXJvbm1lbnQgCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9FTlZfRU5WSVJPTk1FTlRfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9FTlZfRU5WSVJPTk1FTlRfSFBQXzA2MjYwNEdFUgorCisjaWZkZWYgVU5ERVJfQ0UKKyNlcnJvciBXaW5kb3dzIENFIGRvZXMgbm90IHN1cHBvcnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorI2VuZGlmCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2FyZ3VtZW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvZndkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L21vZGlmaWVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L3ZhcmlhYmxlLmhwcD4KKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvY2FsbGJhY2suaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L29wdGlvbmFsLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgIHJ1bnRpbWU6OmVudmlyb25tZW50IGltcGxlbWVudGF0aW9uICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIGVudmlyb25tZW50IHsKKworbmFtZXNwYWNlIHJ0X2Vudl9kZXRhaWwgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBNb2RpZmllcnM+Cit2YXJpYWJsZV9kYXRhJgoraW5pdF9uZXdfdmFyKCBjc3RyaW5nIHZhcl9uYW1lLCBNb2RpZmllcnMgbSA9IG5mcDo6bm9fcGFyYW1zICkKK3sKKyAgICBydF9lbnZfZGV0YWlsOjp2YXJpYWJsZV9kYXRhJiBuZXdfdmQgPSBuZXdfdmFyX3JlY29yZCggdmFyX25hbWUgKTsKKworICAgIGNzdHJpbmcgc3RyX3ZhbHVlID0gc3lzX3JlYWRfdmFyKCBuZXdfdmQubV92YXJfbmFtZSApOworCisgICAgaWYoICFzdHJfdmFsdWUuaXNfZW1wdHkoKSApIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpvcHRpb25hbDxUPiB2YWx1ZTsKKworICAgICAgICAgICAgaWYoIG0uaGFzKCBpbnRlcnByZXRlciApICkKKyAgICAgICAgICAgICAgICBtW2ludGVycHJldGVyXSggc3RyX3ZhbHVlLCB2YWx1ZSApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGludGVycHJldF9hcmd1bWVudF92YWx1ZSggc3RyX3ZhbHVlLCB2YWx1ZSwgMCApOworCisgICAgICAgICAgICBpZiggISF2YWx1ZSApIHsKKyAgICAgICAgICAgICAgICBuZXdfdmQubV92YWx1ZS5yZXNldCggbmV3IHR5cGVkX2FyZ3VtZW50PFQ+KCBuZXdfdmQgKSApOworCisgICAgICAgICAgICAgICAgYXJnX3ZhbHVlPFQ+KCAqbmV3X3ZkLm1fdmFsdWUgKSA9ICp2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCggLi4uICkgeyAvLyAhISBjb3VsZCB3ZSBkbyB0aGF0CisgICAgICAgICAgICAvLyAhISBzaG91bGQgd2UgcmVwb3J0IGFuIGVycm9yPworICAgICAgICB9CisgICAgfQorCisgICAgaWYoICFuZXdfdmQubV92YWx1ZSAmJiBtLmhhcyggZGVmYXVsdF92YWx1ZSApICkgeworICAgICAgICBuZXdfdmQubV92YWx1ZS5yZXNldCggbmV3IHR5cGVkX2FyZ3VtZW50PFQ+KCBuZXdfdmQgKSApOworCisgICAgICAgIG5mcDo6b3B0aW9uYWxseV9hc3NpZ24oIGFyZ192YWx1ZTxUPiggKm5ld192ZC5tX3ZhbHVlICksIG1bZGVmYXVsdF92YWx1ZV0gKTsKKyAgICB9CisKKyAgICBuZnA6Om9wdGlvbmFsbHlfYXNzaWduKCBuZXdfdmQubV9nbG9iYWxfaWQsIG0sIGdsb2JhbF9pZCApOworCisgICAgcmV0dXJuIG5ld192ZDsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgcnRfZW52X2RldGFpbAorCit9IC8vIG5hbWVzcGFjZSBlbnZpcm9ubWVudAorCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgcnVudGltZTo6ZW52aXJvbm1lbnQgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSBlbnZpcm9ubWVudCB7CisKKyAgICAvLyB2YXJpYWJsZSBhY2Nlc3MKKyAgICB2YXJpYWJsZV9iYXNlCisgICAgdmFyKCBjc3RyaW5nIHZhcl9uYW1lICk7CisKKyAgICAvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB2YXJpYWJsZTxUPgorICAgIHZhciggY3N0cmluZyB2YXJfbmFtZSApCisgICAgeworICAgICAgICBydF9lbnZfZGV0YWlsOjp2YXJpYWJsZV9kYXRhKiB2ZCA9IHJ0X2Vudl9kZXRhaWw6OmZpbmRfdmFyX3JlY29yZCggdmFyX25hbWUgKTsKKworICAgICAgICByZXR1cm4gZW52aXJvbm1lbnQ6OnZhcmlhYmxlPFQ+KCAhdmQgPyBydF9lbnZfZGV0YWlsOjppbml0X25ld192YXI8VD4oIHZhcl9uYW1lLCBuZnA6Om5vX3BhcmFtcyApIDogKnZkICk7CisgICAgfQorCisgICAgLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTW9kaWZpZXJzPgorICAgIGlubGluZSB2YXJpYWJsZTxUPgorICAgIHZhciggY3N0cmluZyB2YXJfbmFtZSwgTW9kaWZpZXJzIGNvbnN0JiBtICkKKyAgICB7CisgICAgICAgIHJ0X2Vudl9kZXRhaWw6OnZhcmlhYmxlX2RhdGEqIHZkID0gcnRfZW52X2RldGFpbDo6ZmluZF92YXJfcmVjb3JkKCB2YXJfbmFtZSApOworCisgICAgICAgIHJldHVybiBlbnZpcm9ubWVudDo6dmFyaWFibGU8VD4oICF2ZCA/IHJ0X2Vudl9kZXRhaWw6OmluaXRfbmV3X3ZhcjxUPiggdmFyX25hbWUsIG0gKSA6ICp2ZCApOworICAgIH0KKworICAgIC8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworICAgIC8vIGRpcmVjdCB2YXJpYWJsZSB2YWx1ZSBhY2Nlc3MKKyAgICBpbmxpbmUgY3N0cmluZworICAgIGdldCggY3N0cmluZyB2YXJfbmFtZSApCisgICAgeworICAgICAgICByZXR1cm4gZW52aXJvbm1lbnQ6OnZhcjxjc3RyaW5nPiggdmFyX25hbWUgKS52YWx1ZSgpOworICAgIH0KKworICAgIC8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIFQgY29uc3QmCisgICAgZ2V0KCBjc3RyaW5nIHZhcl9uYW1lICkKKyAgICB7CisgICAgICAgIHJldHVybiBlbnZpcm9ubWVudDo6dmFyPFQ+KCB2YXJfbmFtZSApLnZhbHVlKCk7CisgICAgfQorCisgICAgLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdm9pZAorICAgIGdldCggY3N0cmluZyB2YXJfbmFtZSwgbmRuYm9vc3Q6Om9wdGlvbmFsPFQ+JiByZXMgKQorICAgIHsKKyAgICAgICAgdmFyaWFibGU8VD4gY29uc3QmIHYgPSBlbnZpcm9ubWVudDo6dmFyPFQ+KCB2YXJfbmFtZSApOworICAgICAgICB2LnZhbHVlKCByZXMgKTsKKyAgICB9CisKKyAgICAvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGVudmlyb25tZW50CisKK25hbWVzcGFjZSBlbnYgPSBlbnZpcm9ubWVudDsKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZm5kZWYgQk9PU1RfUlRfUEFSQU1fT0ZGTElORQorCisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNX0lOTElORSBpbmxpbmUKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L2Vudmlyb25tZW50LmlwcD4KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9SVF9FTlZfRU5WSVJPTk1FTlRfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L2Vudmlyb25tZW50LmlwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9lbnZpcm9ubWVudC5pcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5MjlkZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9lbnZpcm9ubWVudC5pcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1Nzk5MiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogaW1wbGVtZW50cyBtb2RlbCBvZiBwcm9ncmFtIGVudmlyb25tZW50IAorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfRU5WX0VOVklST05NRU5UX0lQUF8wNjI5MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfRU5WX0VOVklST05NRU5UX0lQUF8wNjI5MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdmFsaWRhdGlvbi5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L3ZhcmlhYmxlLmhwcD4KKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvYmFzaWNfY3N0cmluZy9jb21wYXJlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwPgorCisvLyBTVEwKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8bGlzdD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBlbnZpcm9ubWVudCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBydW50aW1lOjplbnZpcm9ubWVudCAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIHJ0X2Vudl9kZXRhaWwgeworCit0eXBlZGVmIHN0ZDo6bWFwPGNzdHJpbmcscnRfZW52X2RldGFpbDo6dmFyaWFibGVfZGF0YT4gcmVnaXN0cnk7Cit0eXBlZGVmIHN0ZDo6bGlzdDxkc3RyaW5nPiBrZXlzOworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgcmVnaXN0cnkmIHNfcmVnaXN0cnkoKSAgICB7IHN0YXRpYyByZWdpc3RyeSBpbnN0YW5jZTsgcmV0dXJuIGluc3RhbmNlOyB9CitCT09TVF9SVF9QQVJBTV9JTkxJTkUga2V5cyYgICAgIHNfa2V5cygpICAgICAgICB7IHN0YXRpYyBrZXlzIGluc3RhbmNlOyByZXR1cm4gaW5zdGFuY2U7IH0KKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHZhcmlhYmxlX2RhdGEmCituZXdfdmFyX3JlY29yZCggY3N0cmluZyB2YXJfbmFtZSApCit7CisgICAgLy8gc2F2ZSB0aGUgbmFtZSBpbiBsaXN0IG9mIGtleXMKKyAgICBzX2tleXMoKS5wdXNoX2JhY2soIGRzdHJpbmcoKSApOworICAgIGRzdHJpbmcmIGtleSA9IHNfa2V5cygpLmJhY2soKTsKKyAgICBhc3NpZ25fb3AoIGtleSwgdmFyX25hbWUsIDAgKTsKKworICAgIC8vIGNyZWF0ZSBhbmQgcmV0dXJuIG5ldyByZWNvcmQKKyAgICB2YXJpYWJsZV9kYXRhJiBuZXdfdmFyX2RhdGEgPSBzX3JlZ2lzdHJ5KClba2V5XTsKKyAgICAKKyAgICBuZXdfdmFyX2RhdGEubV92YXJfbmFtZSA9IGtleTsKKyAgICAKKyAgICByZXR1cm4gbmV3X3Zhcl9kYXRhOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCitCT09TVF9SVF9QQVJBTV9JTkxJTkUgdmFyaWFibGVfZGF0YSoKK2ZpbmRfdmFyX3JlY29yZCggY3N0cmluZyB2YXJfbmFtZSApCit7CisgICAgcmVnaXN0cnk6Oml0ZXJhdG9yIGl0ID0gc19yZWdpc3RyeSgpLmZpbmQoIHZhcl9uYW1lICk7CisKKyAgICByZXR1cm4gaXQgPT0gc19yZWdpc3RyeSgpLmVuZCgpID8gMCA6ICYoaXQtPnNlY29uZCk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpZmRlZiBCT09TVF9NU1ZDIAorI3ByYWdtYSB3YXJuaW5nKHB1c2gpIAorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDk5NikgLy8gZ2V0ZW52CisjZW5kaWYKKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIGNzdHJpbmcKK3N5c19yZWFkX3ZhciggY3N0cmluZyB2YXJfbmFtZSApCit7CisgICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyAgICByZXR1cm4gQk9PU1RfUlRfUEFSQU1fR0VURU5WKCB2YXJfbmFtZS5iZWdpbigpICk7Cit9CisKKyNpZmRlZiBCT09TVF9NU1ZDIAorI3ByYWdtYSB3YXJuaW5nKHBvcCkgCisjZW5kaWYKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK0JPT1NUX1JUX1BBUkFNX0lOTElORSB2b2lkCitzeXNfd3JpdGVfdmFyKCBjc3RyaW5nIHZhcl9uYW1lLCBmb3JtYXRfc3RyZWFtJiB2YXJfdmFsdWUgKQoreworICAgIEJPT1NUX1JUX1BBUkFNX1BVVEVOViggdmFyX25hbWUsIGNzdHJpbmcoIHZhcl92YWx1ZS5zdHIoKSApICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIHJ0X2Vudl9kZXRhaWwKKworQk9PU1RfUlRfUEFSQU1fSU5MSU5FIHZhcmlhYmxlX2Jhc2UKK3ZhciggY3N0cmluZyB2YXJfbmFtZSApCit7CisgICAgcnRfZW52X2RldGFpbDo6dmFyaWFibGVfZGF0YSogdmQgPSBydF9lbnZfZGV0YWlsOjpmaW5kX3Zhcl9yZWNvcmQoIHZhcl9uYW1lICk7CisKKyAgICBCT09TVF9SVF9QQVJBTV9WQUxJREFURV9MT0dJQyggISF2ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfUlRfUEFSQU1fTElURVJBTCggIkZpcnN0IGFjY2VzcyB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgIiApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHZhcl9uYW1lIDw8IEJPT1NUX1JUX1BBUkFNX0xJVEVSQUwoICIgc2hvdWxkIGJlIHR5cGVkIiApICk7CisKKyAgICByZXR1cm4gdmFyaWFibGVfYmFzZSggKnZkICk7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK30gLy8gbmFtZXNwYWNlIGVudmlyb25tZW50CisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfRU5WX0VOVklST05NRU5UX0lQUF8wNjI5MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9md2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2OTYwNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9md2QuaHBwCkBAIC0wLDAgKzEsNTQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA1NDYzMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZW52aXJvbm1lbnQgc3Vic3lzdGVtIGZvcndhcmQgZGVjbGFyYXRpb25zCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9FTlZfRldEX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfRU5WX0ZXRF9IUFBfMDYyNjA0R0VSCisKKyNpZmRlZiBVTkRFUl9DRQorI2Vycm9yIFdpbmRvd3MgQ0UgZG9lcyBub3Qgc3VwcG9ydCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCisjZW5kaWYKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBlbnZpcm9ubWVudCB7CisKK2NsYXNzIHZhcmlhYmxlX2Jhc2U7Cit2YXJpYWJsZV9iYXNlIHZhciggY3N0cmluZyB2YXJfbmFtZSApOworCituYW1lc3BhY2UgcnRfZW52X2RldGFpbCB7CisKK3N0cnVjdCB2YXJpYWJsZV9kYXRhOworCit2YXJpYWJsZV9kYXRhJiAgbmV3X3Zhcl9yZWNvcmQoIGNzdHJpbmcgdmFyX25hbWUgKTsKK3ZhcmlhYmxlX2RhdGEqICBmaW5kX3Zhcl9yZWNvcmQoIGNzdHJpbmcgdmFyX25hbWUgKTsKKworY3N0cmluZyAgICAgICAgIHN5c19yZWFkX3ZhciggY3N0cmluZyB2YXJfbmFtZSApOwordm9pZCAgICAgICAgICAgIHN5c193cml0ZV92YXIoIGNzdHJpbmcgdmFyX25hbWUsIGZvcm1hdF9zdHJlYW0mIHZhcl92YWx1ZSApOworCit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyB2YXJpYWJsZTsKKworfSAvLyBuYW1lc3BhY2UgZW52aXJvbm1lbnQKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9FTlZfRldEX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9tb2RpZmllci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvbW9kaWZpZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3NjAzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvbW9kaWZpZXIuaHBwCkBAIC0wLDAgKzEsNDcgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBkZWZpbmVzIHZhcmlhYmxlIG1vZGlmaWVycworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfRU5WX01PRElGSUVSX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfRU5WX01PRElGSUVSX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKworLy8gQm9vc3QuVGVzdAorI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvbmFtZWRfcGFyYW1zLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBlbnZpcm9ubWVudCB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIG1vZGlmaWVycyAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIHsKKworbmZwOjp0eXBlZF9rZXl3b3JkPGNzdHJpbmcsc3RydWN0IGdsb2JhbF9pZF90PiAgIGdsb2JhbF9pZDsKK25mcDo6a2V5d29yZDxzdHJ1Y3QgZGVmYXVsdF92YWx1ZV90PiAgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlOworbmZwOjprZXl3b3JkPHN0cnVjdCBpbnRlcnByZXRlcl90PiAgICAgICAgICAgICAgIGludGVycHJldGVyOworCit9IC8vIGxvY2FsIG5hbWVzcGFjZQorfSAvLyBuYW1lc3BhY2UgZW52aXJvbm1lbnQKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9FTlZfTU9ESUZJRVJfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZW52L3ZhcmlhYmxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi92YXJpYWJsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdhNGYzOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi92YXJpYWJsZS5ocHAKQEAgLTAsMCArMSwyMjMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA4MTkxMyAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBtb2RlbCBvZiBwcm9ncmFtIGVudmlyb25tZW50IHZhcmlhYmxlCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9FTlZfVkFSSUFCTEVfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9FTlZfVkFSSUFCTEVfSFBQXzA2MjYwNEdFUgorCisjaWZkZWYgVU5ERVJfQ0UKKyNlcnJvciBXaW5kb3dzIENFIGRvZXMgbm90IHN1cHBvcnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorI2VuZGlmCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3BhcmFtZXRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2FyZ3VtZW50LmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9lbnYvZndkLmhwcD4KKworLy8gQm9vc3QKKyNpbmNsdWRlIDxuZG5ib29zdC9vcHRpb25hbC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCituYW1lc3BhY2UgZW52aXJvbm1lbnQgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICBydW50aW1lOjplbnZpcm9ubWVudDo6dmFyaWFibGVfZGF0YSAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK25hbWVzcGFjZSBydF9lbnZfZGV0YWlsIHsKKworc3RydWN0IHZhcmlhYmxlX2RhdGEgOiBwdWJsaWMgcnVudGltZTo6cGFyYW1ldGVyIHsKKyAgICBjc3RyaW5nICAgICAgICAgbV92YXJfbmFtZTsKKyAgICBkc3RyaW5nICAgICAgICAgbV9nbG9iYWxfaWQ7CisgICAgYXJndW1lbnRfcHRyICAgIG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBydF9lbnZfZGV0YWlsCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgcnVudGltZTo6ZW52aXJvbm1lbnQ6OnZhcmlhYmxlX2Jhc2UgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgdmFyaWFibGVfYmFzZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgICAgdmFyaWFibGVfYmFzZSggcnRfZW52X2RldGFpbDo6dmFyaWFibGVfZGF0YSYgZGF0YSApIDogbV9kYXRhKCAmZGF0YSApIHt9CisKKyAgICAvLyBhcmd1bWVudHMgYWNjZXNzCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBUIGNvbnN0JiAgICB2YWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXJnX3ZhbHVlPFQ+KCAqbV9kYXRhLT5tX3ZhbHVlICk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkICAgICAgICB2YWx1ZSggbmRuYm9vc3Q6Om9wdGlvbmFsPFQ+JiByZXMgKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYoIGhhc192YWx1ZSgpICkKKyAgICAgICAgICAgIHJlcyA9IGFyZ192YWx1ZTxUPiggKm1fZGF0YS0+bV92YWx1ZSApOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXMucmVzZXQoKTsKKyAgICB9CisKKyAgICBib29sICAgICAgICBoYXNfdmFsdWUoKSBjb25zdCAgIHsgcmV0dXJuIG1fZGF0YS0+bV92YWx1ZSE9MDsgfQorICAgIGNzdHJpbmcgICAgIG5hbWUoKSBjb25zdCAgICAgICAgeyByZXR1cm4gbV9kYXRhLT5tX3Zhcl9uYW1lOyB9CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICBydF9lbnZfZGV0YWlsOjp2YXJpYWJsZV9kYXRhKiAgbV9kYXRhOworfSA7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgcnVudGltZTo6ZW52aXJvbm1lbnQ6OnZhcmlhYmxlICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVCA9IGNzdHJpbmc+CitjbGFzcyB2YXJpYWJsZSA6IHB1YmxpYyB2YXJpYWJsZV9iYXNlIHsKK3B1YmxpYzoKKyAgICAvLyBDb25zdHJ1Y3RvcnMKKyAgICBleHBsaWNpdCAgICB2YXJpYWJsZSggY3N0cmluZyB2YXJfbmFtZSApOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTW9kaWZpZXJzPgorICAgIGV4cGxpY2l0ICAgIHZhcmlhYmxlKCBjc3RyaW5nIHZhcl9uYW1lLCBNb2RpZmllcnMgY29uc3QmIG0gKTsKKworICAgIGV4cGxpY2l0ICAgIHZhcmlhYmxlKCBydF9lbnZfZGV0YWlsOjp2YXJpYWJsZV9kYXRhJiBkYXRhICkgCisgICAgOiB2YXJpYWJsZV9iYXNlKCBkYXRhICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQorCisgICAgLy8gb3RoZXIgdmFyaWFibGUgYXNzaWdubWVudAorICAgIHZvaWQgICAgICAgIG9wZXJhdG9yPSggdmFyaWFibGUgY29uc3QmIHYgKSAgICAgICAgICAgICAgeyBtX2RhdGEgPSB2Lm1fZGF0YTsgfQorCisgICAgLy8gYWNjZXNzIG1ldGhvZHMKKyAgICBUIGNvbnN0JiAgICB2YWx1ZSgpIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIHZhcmlhYmxlX2Jhc2U6OnZhbHVlPFQ+KCk7IH0KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgQk9PU1RfVEVTVEVEX0FUKDB4MzIwNikpIHx8IFwKKyAgICBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4MDU5MykpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkICAgICAgICB2YWx1ZSggbmRuYm9vc3Q6Om9wdGlvbmFsPFQ+JiByZXMgKSBjb25zdCAgICAgIHsgdmFyaWFibGVfYmFzZTo6dmFsdWUoIHJlcyApOyB9CisjZWxzZQorICAgIHVzaW5nICAgICAgIHZhcmlhYmxlX2Jhc2U6OnZhbHVlOworI2VuZGlmCisKKyAgICAvLyBWYWx1ZSBhc3NpZ25tZW50CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVj4KKyAgICB2b2lkICAgICAgICBvcGVyYXRvcj0oIFYgY29uc3QmIHYgKQorICAgIHsKKyAgICAgICAgaWYoICFoYXNfdmFsdWUoKSApCisgICAgICAgICAgICBtX2RhdGEtPm1fdmFsdWUucmVzZXQoIG5ldyB0eXBlZF9hcmd1bWVudDxUPiggKm1fZGF0YSApICk7CisKKyAgICAgICAgYXJnX3ZhbHVlPFQ+KCAqbV9kYXRhLT5tX3ZhbHVlICkgPSB2OworCisgICAgICAgIHJ0X2Vudl9kZXRhaWw6OnN5c193cml0ZV92YXIoIG1fZGF0YS0+bV92YXJfbmFtZSwgZm9ybWF0X3N0cmVhbSgpLnJlZigpIDw8IHZhbHVlKCkgKTsKKyAgICB9Cit9OyAvLyBjbGFzcyB2YXJpYWJsZQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVCwgdHlwZW5hbWUgVHIsdHlwZW5hbWUgVD4KK2lubGluZSBzdGQ6OmJhc2ljX29zdHJlYW08Q2hhclQsVHI+Jgorb3BlcmF0b3I8PCggc3RkOjpiYXNpY19vc3RyZWFtPENoYXJULFRyPiYgb3MsIHZhcmlhYmxlPFQ+IGNvbnN0JiB2ICkKK3sKKyAgICBvcyA8PCB2Lm5hbWUoKSA8PCAnPSc7CisKKyAgICBpZiggdi5oYXNfdmFsdWUoKSApCisgICAgICAgIG9zIDw8IHYudmFsdWUoKTsKKworICAgIHJldHVybiBvczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVj4KK2lubGluZSBib29sCitvcGVyYXRvcj09KCB2YXJpYWJsZTxUPiBldiwgViBjb25zdCYgdiApCit7CisgICAgcmV0dXJuIGV2Lmhhc192YWx1ZSgpICYmIGV2LnZhbHVlKCkgPT0gdjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVj4KK2lubGluZSBib29sCitvcGVyYXRvcj09KCBWIGNvbnN0JiB2LCB2YXJpYWJsZTxUPiBldiApCit7CisgICAgcmV0dXJuIGV2Lmhhc192YWx1ZSgpICYmIGV2LnZhbHVlKCkgPT0gdjsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVj4KK2lubGluZSBib29sCitvcGVyYXRvciE9KCB2YXJpYWJsZTxUPiBldiwgViBjb25zdCYgdiApCit7CisgICAgcmV0dXJuICFldi5oYXNfdmFsdWUoKSB8fCBldi52YWx1ZSgpICE9IHY7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFY+CitpbmxpbmUgYm9vbAorb3BlcmF0b3IhPSggViBjb25zdCYgdiwgdmFyaWFibGU8VD4gZXYgKQoreworICAgIHJldHVybiAhZXYuaGFzX3ZhbHVlKCkgfHwgZXYudmFsdWUoKSAhPSB2OworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBlbnZpcm9ubWVudAorCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyBJbXBsZW1lbnRhdGlvbgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Vudi9lbnZpcm9ubWVudC5ocHA+CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgcnVudGltZTo6ZW52aXJvbm1lbnQ6OnZhcmlhYmxlICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKK25hbWVzcGFjZSBlbnZpcm9ubWVudCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2YXJpYWJsZTxUPjo6dmFyaWFibGUoIGNzdHJpbmcgdmFyX25hbWUgKQorOiB2YXJpYWJsZV9iYXNlKCBlbnZpcm9ubWVudDo6dmFyPFQ+KCB2YXJfbmFtZSApICkKK3t9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBNb2RpZmllcnM+Cit2YXJpYWJsZTxUPjo6dmFyaWFibGUoIGNzdHJpbmcgdmFyX25hbWUsIE1vZGlmaWVycyBjb25zdCYgbSApCis6IHZhcmlhYmxlX2Jhc2UoIGVudmlyb25tZW50Ojp2YXI8VD4oIHZhcl9uYW1lLCBtICkgKQore30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgZW52aXJvbm1lbnQKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9FTlZfVkFSSUFCTEVfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcxNGJmYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2Z3ZC5ocHAKQEAgLTAsMCArMSw0MSBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBnbG9iYWwgZnJhbWV3b3JrIGxldmVsIGZvcndhcmQgZGVjbGFyYXRpb24KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX0ZXRF9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX0ZXRF9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3Qvc2hhcmVkX3B0ci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCitjbGFzcyBwYXJhbWV0ZXI7CisKK2NsYXNzIGFyZ3VtZW50OwordHlwZWRlZiBzaGFyZWRfcHRyPGFyZ3VtZW50PiBhcmd1bWVudF9wdHI7Cit0eXBlZGVmIHNoYXJlZF9wdHI8YXJndW1lbnQgY29uc3Q+IGNvbnN0X2FyZ3VtZW50X3B0cjsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgdmFsdWVfaW50ZXJwcmV0ZXI7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyB0eXBlZF9hcmd1bWVudDsKKworfSAvLyBuYW1lc3BhY2UgQk9PU1RfUlRfUEFSQU1fTkFNRVNQQUNFCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9SVF9GV0RfSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2ludGVycHJldF9hcmd1bWVudF92YWx1ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY1YTIxNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2ludGVycHJldF9hcmd1bWVudF92YWx1ZS5ocHAKQEAgLTAsMCArMSwxNjMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmYXVsdCBhbGdvcml0aG1zIGZvciBzdHJpbmcgdG8gc3BlY2lmaWMgdHlwZSBjb252ZXJ0aW9ucworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfSU5URVJQUkVUX0FSR1VNRU5UX1ZBTFVFX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfSU5URVJQUkVUX0FSR1VNRU5UX1ZBTFVFX0hQUF8wNjI2MDRHRVIKKworLy8gQm9vc3QuUnVudGltZS5QYXJhbWV0ZXIKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdHJhY2UuaHBwPgorCisvLyBCb29zdC5UZXN0CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9iYXNpY19jc3RyaW5nL2lvLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvY29tcGFyZS5ocHA+CisKKy8vIEJvb3N0CisjaW5jbHVkZSA8bmRuYm9vc3Qvb3B0aW9uYWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2xleGljYWxfY2FzdC5ocHA+CisKKy8vIFNUTAorLy8gISEgY291bGQgd2UgZWxpbWluYXRlIHRoZXNlIGluY2x1ZGVzPworI2luY2x1ZGUgPGxpc3Q+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgcnVudGltZTo6aW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyByZXR1cm5zIHRydWUgaWYgc291cmNlIGlzIHVzZWQgZmFsc2Ugb3RoZXJ3aXNlCisKKy8vIGdlbmVyaWMgY2FzZQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBpbnRlcnByZXRfYXJndW1lbnRfdmFsdWVfaW1wbCB7CisgICAgc3RhdGljIGJvb2wgXyggY3N0cmluZyBzb3VyY2UsIG5kbmJvb3N0OjpvcHRpb25hbDxUPiYgcmVzICkKKyAgICB7CisgICAgICAgIEJPT1NUX1JUX1BBUkFNX1RSQUNFKCAiSW4gaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlX2ltcGw8IiA8PCB0eXBlaWQoVCkubmFtZSgpIDw8ICI+IiApOworCisgICAgICAgIHJlcyA9IGxleGljYWxfY2FzdDxUPiggc291cmNlICk7CisKKyAgICAgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJTdHJpbmcgIiA8PCBzb3VyY2UgPDwgIiBpcyBpbnRlcnByZXRlZCBhcyAiIDw8ICpyZXMgKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyBkc3RyaW5nIGNhc2UKK3RlbXBsYXRlPD4KK3N0cnVjdCBpbnRlcnByZXRfYXJndW1lbnRfdmFsdWVfaW1wbDxkc3RyaW5nPiB7CisgICAgc3RhdGljIGJvb2wgXyggY3N0cmluZyBzb3VyY2UsIG5kbmJvb3N0OjpvcHRpb25hbDxkc3RyaW5nPiYgcmVzICkKKyAgICB7CisgICAgICAgIEJPT1NUX1JUX1BBUkFNX1RSQUNFKCAiSW4gaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlX2ltcGw8ZHN0cmluZz4iICk7CisKKyAgICAgICAgcmVzID0gZHN0cmluZygpOworICAgICAgICBhc3NpZ25fb3AoICpyZXMsIHNvdXJjZSwgMCApOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKy8vIGNzdHJpbmcgY2FzZQordGVtcGxhdGU8Pgorc3RydWN0IGludGVycHJldF9hcmd1bWVudF92YWx1ZV9pbXBsPGNzdHJpbmc+IHsKKyAgICBzdGF0aWMgYm9vbCBfKCBjc3RyaW5nIHNvdXJjZSwgbmRuYm9vc3Q6Om9wdGlvbmFsPGNzdHJpbmc+JiByZXMgKQorICAgIHsKKyAgICAgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJJbiBpbnRlcnByZXRfYXJndW1lbnRfdmFsdWVfaW1wbDxjc3RyaW5nPiIgKTsKKworICAgICAgICByZXMgPSBzb3VyY2U7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworLy8gc3BlY2lhbGl6YXRpb24gZm9yIHR5cGUgYm9vbAordGVtcGxhdGU8Pgorc3RydWN0IGludGVycHJldF9hcmd1bWVudF92YWx1ZV9pbXBsPGJvb2w+IHsKKyAgICBzdGF0aWMgYm9vbCBfKCBjc3RyaW5nIHNvdXJjZSwgbmRuYm9vc3Q6Om9wdGlvbmFsPGJvb2w+JiByZXMgKQorICAgIHsKKyAgICAgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJJbiBpbnRlcnByZXRfYXJndW1lbnRfdmFsdWVfaW1wbDxib29sPiIgKTsKKworICAgICAgICBzdGF0aWMgbGl0ZXJhbF9jc3RyaW5nIFlFUyggQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAiWUVTIiApICk7CisgICAgICAgIHN0YXRpYyBsaXRlcmFsX2NzdHJpbmcgWSggQk9PU1RfUlRfUEFSQU1fQ1NUUklOR19MSVRFUkFMKCAiWSIgKSApOworICAgICAgICBzdGF0aWMgbGl0ZXJhbF9jc3RyaW5nIE5PKCBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoICJOTyIgKSApOworICAgICAgICBzdGF0aWMgbGl0ZXJhbF9jc3RyaW5nIE4oIEJPT1NUX1JUX1BBUkFNX0NTVFJJTkdfTElURVJBTCggIk4iICkgKTsKKyAgICAgICAgc3RhdGljIGxpdGVyYWxfY3N0cmluZyBvbmUoIEJPT1NUX1JUX1BBUkFNX0NTVFJJTkdfTElURVJBTCggIjEiICkgKTsKKyAgICAgICAgc3RhdGljIGxpdGVyYWxfY3N0cmluZyB6ZXJvKCBCT09TVF9SVF9QQVJBTV9DU1RSSU5HX0xJVEVSQUwoICIwIiApICk7CisKKyAgICAgICAgc291cmNlLnRyaW0oKTsKKworICAgICAgICBpZiggY2FzZV9pbnNfZXEoIHNvdXJjZSwgWUVTICkgfHwgY2FzZV9pbnNfZXEoIHNvdXJjZSwgWSApIHx8IGNhc2VfaW5zX2VxKCBzb3VyY2UsIG9uZSApICkgeworICAgICAgICAgICAgcmVzID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoIGNhc2VfaW5zX2VxKCBzb3VyY2UsIE5PICkgfHwgY2FzZV9pbnNfZXEoIHNvdXJjZSwgTiApIHx8IGNhc2VfaW5zX2VxKCBzb3VyY2UsIHplcm8gKSApIHsKKyAgICAgICAgICAgIHJlcyA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXMgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBib29sCitpbnRlcnByZXRfYXJndW1lbnRfdmFsdWUoIGNzdHJpbmcgc291cmNlLCBuZG5ib29zdDo6b3B0aW9uYWw8VD4mIHJlcywgbG9uZyApCit7CisgICAgcmV0dXJuIGludGVycHJldF9hcmd1bWVudF92YWx1ZV9pbXBsPFQ+OjpfKCBzb3VyY2UsIHJlcyApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisvLyBzcGVjaWFsaXphdGlvbiBmb3IgbGlzdCBvZiB2YWx1ZXMKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgYm9vbAoraW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlKCBjc3RyaW5nIHNvdXJjZSwgbmRuYm9vc3Q6Om9wdGlvbmFsPHN0ZDo6bGlzdDxUPiA+JiByZXMsIGludCApCit7CisgICAgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoICJJbiBpbnRlcnByZXRfYXJndW1lbnRfdmFsdWU8c3RkOjpsaXN0PFQ+PiIgKTsKKworICAgIHJlcyA9IHN0ZDo6bGlzdDxUPigpOworCisgICAgd2hpbGUoICFzb3VyY2UuaXNfZW1wdHkoKSApIHsKKyAgICAgICAgLy8gISEgc2hvdWxkIHdlIHVzZSB0b2tlbl9pdGVyYXRvcgorICAgICAgICBjc3RyaW5nOjppdGVyYXRvciBzaW5nbGVfdmFsdWVfZW5kID0gc3RkOjpmaW5kKCBzb3VyY2UuYmVnaW4oKSwgc291cmNlLmVuZCgpLCBCT09TVF9SVF9QQVJBTV9MSVRFUkFMKCAnLCcgKSApOworCisgICAgICAgIG5kbmJvb3N0OjpvcHRpb25hbDxUPiB2YWx1ZTsKKyAgICAgICAgaW50ZXJwcmV0X2FyZ3VtZW50X3ZhbHVlKCBjc3RyaW5nKCBzb3VyY2UuYmVnaW4oKSwgc2luZ2xlX3ZhbHVlX2VuZCApLCB2YWx1ZSwgMCApOworCisgICAgICAgIHJlcy0+cHVzaF9iYWNrKCAqdmFsdWUgKTsKKworICAgICAgICBzb3VyY2UudHJpbV9sZWZ0KCBzaW5nbGVfdmFsdWVfZW5kICsgMSApOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX0lOVEVSUFJFVF9BUkdVTUVOVF9WQUxVRV9IUFBfMDYyNjA0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvcnVudGltZS9wYXJhbWV0ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvcGFyYW1ldGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjZkMWI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvcGFyYW1ldGVyLmhwcApAQCAtMCwwICsxLDM4IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDA1LTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IGFic3RyYWN0IGludGVyZmFjZSBmb3IgdGhlIGZvcm1hbCBwYXJhbWV0ZXIKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisjaWZuZGVmIEJPT1NUX1JUX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNRVRFUl9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgIHJ1bnRpbWU6OnBhcmFtZXRlciAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK2NsYXNzIHBhcmFtZXRlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+cGFyYW1ldGVyKCkge30KK307CisKK30gLy8gbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfUlRfUEFSQU1FVEVSX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3RyYWNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3RyYWNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzFlYjhlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdHJhY2UuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogb3B0aW9uYWwgaW50ZXJuYWwgdHJhY2luZworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfUlRfVFJBQ0VfSFBQXzA2MjYwNEdFUgorI2RlZmluZSBCT09TVF9SVF9UUkFDRV9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKKyNpZmRlZiBCT09TVF9SVF9QQVJBTV9ERUJVRworCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyMgIGRlZmluZSBCT09TVF9SVF9QQVJBTV9UUkFDRSggc3RyICkgc3RkOjpjZXJyIDw8IHN0ciA8PCBzdGQ6OmVuZGwKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfUlRfUEFSQU1fVFJBQ0UoIHN0ciApCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX1JUX1RSQUNFX0hQUF8wNjI2MDRHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3J1bnRpbWUvdmFsaWRhdGlvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5NGRmOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL3ZhbGlkYXRpb24uaHBwCkBAIC0wLDAgKzEsODIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDUtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90ZXN0IGZvciB0aGUgbGlicmFyeSBob21lIHBhZ2UuCisvLworLy8gIEZpbGUgICAgICAgIDogJFJDU2ZpbGUkCisvLworLy8gIFZlcnNpb24gICAgIDogJFJldmlzaW9uOiA0OTMxMiAkCisvLworLy8gIERlc2NyaXB0aW9uIDogZGVmaW5lcyBleGNlcHRpb25zIGFuZCB2YWxpZGF0aW9uIHRvb2xzCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9SVF9WQUxJREFUSU9OX0hQUF8wNjI2MDRHRVIKKyNkZWZpbmUgQk9PU1RfUlRfVkFMSURBVElPTl9IUFBfMDYyNjA0R0VSCisKKy8vIEJvb3N0LlJ1bnRpbWUuUGFyYW1ldGVyCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9ydW50aW1lL2NvbmZpZy5ocHA+CisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2NsYXNzX3Byb3BlcnRpZXMuaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L3NoYXJlZF9wdHIuaHBwPgorCisvLyBTVEwKKyNpZmRlZiBCT09TVF9SVF9QQVJBTV9FWENFUFRJT05fSU5IRVJJVF9TVEQKKyNpbmNsdWRlIDxzdGRleGNlcHQ+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRSB7CisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICBydW50aW1lOjpsb2dpY19lcnJvciAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKworY2xhc3MgbG9naWNfZXJyb3IgCisjaWZkZWYgQk9PU1RfUlRfUEFSQU1fRVhDRVBUSU9OX0lOSEVSSVRfU1RECis6IHB1YmxpYyBzdGQ6OmV4Y2VwdGlvbgorI2VuZGlmCit7CisgICAgdHlwZWRlZiBzaGFyZWRfcHRyPGRzdHJpbmc+IGRzdHJpbmdfcHRyOworcHVibGljOgorICAgIC8vIENvbnN0cnVjdG9yIC8vICEhIGNvdWxkIHdlIGVsaW1pbmF0ZSBzaGFyZWRfcHRyCisgICAgZXhwbGljaXQgICAgbG9naWNfZXJyb3IoIGNzdHJpbmcgbXNnICkgOiBtX21zZyggbmV3IGRzdHJpbmcoIG1zZy5iZWdpbigpLCBtc2cuc2l6ZSgpICkgKSB7fQorICAgIH5sb2dpY19lcnJvcigpIHRocm93KCkgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CisKKyAgICBkc3RyaW5nIGNvbnN0JiAgIG1zZygpIGNvbnN0ICAgICAgICAgICAgICAgICAgICB7IHJldHVybiAqbV9tc2c7IH0KKyAgICB2aXJ0dWFsIGNoYXJfdHlwZSBjb25zdCogd2hhdCgpIGNvbnN0IHRocm93KCkgICB7IHJldHVybiBtX21zZy0+Y19zdHIoKTsgfQorCitwcml2YXRlOgorICAgIGRzdHJpbmdfcHRyIG1fbXNnOworfTsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgIHJ1bnRpbWU6OnJlcG9ydF9sb2dpY19lcnJvciAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitpbmxpbmUgdm9pZAorcmVwb3J0X2xvZ2ljX2Vycm9yKCBmb3JtYXRfc3RyZWFtJiBtc2cgKQoreworICAgIHRocm93IEJPT1NUX1JUX1BBUkFNX05BTUVTUEFDRTo6bG9naWNfZXJyb3IoIG1zZy5zdHIoKSApOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCisjZGVmaW5lIEJPT1NUX1JUX1BBUkFNX1JFUE9SVF9MT0dJQ19FUlJPUiggbXNnICkgXAorICAgIG5kbmJvb3N0OjpCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0U6OnJlcG9ydF9sb2dpY19lcnJvciggZm9ybWF0X3N0cmVhbSgpLnJlZigpIDw8IG1zZyApCisKKyNkZWZpbmUgQk9PU1RfUlRfUEFSQU1fVkFMSURBVEVfTE9HSUMoIGIsIG1zZyApIFwKKyAgICBpZiggYiApIHt9IGVsc2UgQk9PU1RfUlRfUEFSQU1fUkVQT1JUX0xPR0lDX0VSUk9SKCBtc2cgKQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit9IC8vIG5hbWVzcGFjZSBCT09TVF9SVF9QQVJBTV9OQU1FU1BBQ0UKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1JUX1ZBTElEQVRJT05fSFBQXzA2MjYwNEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3RyaXZpYWxfc2luZ2xldG9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy90cml2aWFsX3NpbmdsZXRvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZiYTVjOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy90cml2aWFsX3NpbmdsZXRvbi5ocHAKQEAgLTAsMCArMSw3NCBAQAorLy8gIChDKSBDb3B5cmlnaHQgR2VubmFkaXkgUm96ZW50YWwgMjAwNS0yMDA4LgorLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDQ5MzEyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBzaW1wbGUgaGVscGVycyBmb3IgY3JlYXRpbmcgY3Vzb20gb3V0cHV0IG1hbmlwdWxhdG9ycworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfVEVTVF9UUklWSUFMX1NJR05MRVRPTl9IUFBfMDIwNTA1R0VSCisjZGVmaW5lIEJPT1NUX1RFU1RfVFJJVklBTF9TSUdOTEVUT05fSFBQXzAyMDUwNUdFUgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9ub25jb3B5YWJsZS5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9zdXBwcmVzc193YXJuaW5ncy5ocHA+CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0X3Rlc3QgeworCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKiogICAgICAgICAgICAgICAgICAgc2luZ2xldG9uICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisKK3RlbXBsYXRlPHR5cGVuYW1lIERlcml2ZWQ+CitjbGFzcyBzaW5nbGV0b24gOiBwcml2YXRlIG5kbmJvb3N0Ojpub25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIERlcml2ZWQmIGluc3RhbmNlKCkgeyBzdGF0aWMgRGVyaXZlZCB0aGVfaW5zdDsgcmV0dXJuIHRoZV9pbnN0OyB9ICAgIAorcHJvdGVjdGVkOgorICAgIHNpbmdsZXRvbigpICB7fQorICAgIH5zaW5nbGV0b24oKSB7fQorfTsKKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKKyNkZWZpbmUgQk9PU1RfVEVTVF9TSU5HTEVUT05fQ09OUyggdHlwZSApICAgICAgIFwKK2ZyaWVuZCBjbGFzcyBuZG5ib29zdDo6dW5pdF90ZXN0OjpzaW5nbGV0b248dHlwZT47IFwKK3R5cGUoKSB7fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy8qKi8KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19ERUNDWFhfVkVSLCBCT09TVF9URVNURURfQVQoNjA1OTAwNDIpKQorCisjZGVmaW5lIEJPT1NUX1RFU1RfU0lOR0xFVE9OX0lOU1QoIGluc3QgKSBcCit0ZW1wbGF0ZSBjbGFzcyB1bml0X3Rlc3Q6OnNpbmdsZXRvbjwgQk9PU1RfSk9JTiggaW5zdCwgX3QgKSA+IDsgXAorbmFtZXNwYWNlIHsgQk9PU1RfSk9JTiggaW5zdCwgX3QpJiBpbnN0ID0gQk9PU1RfSk9JTiggaW5zdCwgX3QpOjppbnN0YW5jZSgpOyB9CisKKyNlbGlmIGRlZmluZWQoX19BUFBMRV9DQ19fKSAmJiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA8IDQKKyNkZWZpbmUgQk9PU1RfVEVTVF9TSU5HTEVUT05fSU5TVCggaW5zdCApIFwKK3N0YXRpYyBCT09TVF9KT0lOKCBpbnN0LCBfdCkmIGluc3QgPSBCT09TVF9KT0lOIChpbnN0LCBfdCk6Omluc3RhbmNlKCk7CisKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfVEVTVF9TSU5HTEVUT05fSU5TVCggaW5zdCApIFwKK25hbWVzcGFjZSB7IEJPT1NUX0pPSU4oIGluc3QsIF90KSYgaW5zdCA9IEJPT1NUX0pPSU4oIGluc3QsIF90KTo6aW5zdGFuY2UoKTsgfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9URVNUX1RSSVZJQUxfU0lHTkxFVE9OX0hQUF8wMjA1MDVHRVIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy93cmFwX3N0cmluZ3N0cmVhbS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvd3JhcF9zdHJpbmdzdHJlYW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMTEyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Rlc3QvdXRpbHMvd3JhcF9zdHJpbmdzdHJlYW0uaHBwCkBAIC0wLDAgKzEsMTY0IEBACisvLyAgKEMpIENvcHlyaWdodCBHZW5uYWRpeSBSb3plbnRhbCAyMDAyLTIwMDguCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGVzdCBmb3IgdGhlIGxpYnJhcnkgaG9tZSBwYWdlLgorLy8KKy8vICBGaWxlICAgICAgICA6ICRSQ1NmaWxlJAorLy8KKy8vICBWZXJzaW9uICAgICA6ICRSZXZpc2lvbjogNDkzMTIgJAorLy8KKy8vICBEZXNjcmlwdGlvbiA6IHdyYXBzIHN0cnN0cmVhbSBhbmQgc3RyaW5nc3RyZWFtIChkZXBlbmRzIHdpdGggb25lIGlzIHByZXNlbnQpCisvLyAgICAgICAgICAgICAgICB0byBwcm92aWRlIHRoZSB1bmlmaWVkIGludGVyZmFjZQorLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyNpZm5kZWYgQk9PU1RfV1JBUF9TVFJJTkdTVFJFQU1fSFBQXzA3MTg5NEdFUgorI2RlZmluZSBCT09TVF9XUkFQX1NUUklOR1NUUkVBTV9IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9jb25maWcuaHBwPgorCisvLyBTVEwKKyNpZmRlZiBCT09TVF9OT19TVFJJTkdTVFJFQU0KKyNpbmNsdWRlIDxzdHJzdHJlYW0+ICAgICAgICAvLyBmb3Igc3RkOjpvc3Ryc3RyZWFtCisjZWxzZQorI2luY2x1ZGUgPHNzdHJlYW0+ICAgICAgICAgIC8vIGZvciBzdGQ6Om9zdHJpbmdzdHJlYW0KKyNlbmRpZiAvLyBCT09TVF9OT19TVFJJTkdTVFJFQU0KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL3N1cHByZXNzX3dhcm5pbmdzLmhwcD4KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgYmFzaWNfd3JhcF9zdHJpbmdzdHJlYW0gICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVD4KK2NsYXNzIGJhc2ljX3dyYXBfc3RyaW5nc3RyZWFtIHsKK3B1YmxpYzoKKyNpZiBkZWZpbmVkKEJPT1NUX0NMQVNTSUNfSU9TVFJFQU1TKQorICAgIHR5cGVkZWYgc3RkOjpvc3RyaW5nc3RyZWFtICAgICAgICAgICAgICAgd3JhcHBlZF9zdHJlYW07CisjZWxpZiBkZWZpbmVkKEJPT1NUX05PX1NUUklOR1NUUkVBTSkKKyAgICB0eXBlZGVmIHN0ZDo6YmFzaWNfb3N0cnN0cmVhbTxDaGFyVD4gICAgIHdyYXBwZWRfc3RyZWFtOworI2Vsc2UKKyAgICB0eXBlZGVmIHN0ZDo6YmFzaWNfb3N0cmluZ3N0cmVhbTxDaGFyVD4gIHdyYXBwZWRfc3RyZWFtOworI2VuZGlmIC8vIEJPT1NUX05PX1NUUklOR1NUUkVBTQorICAgIC8vIEFjY2VzcyBtZXRob2RzCisgICAgYmFzaWNfd3JhcF9zdHJpbmdzdHJlYW0mICAgICAgICByZWYoKTsKKyAgICB3cmFwcGVkX3N0cmVhbSYgICAgICAgICAgICAgICAgIHN0cmVhbSgpOworICAgIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXJUPiBjb25zdCYgc3RyKCk7CisKK3ByaXZhdGU6CisgICAgLy8gRGF0YSBtZW1iZXJzCisgICAgd3JhcHBlZF9zdHJlYW0gICAgICAgICAgICAgICAgICBtX3N0cmVhbTsKKyAgICBzdGQ6OmJhc2ljX3N0cmluZzxDaGFyVD4gICAgICAgIG1fc3RyOworfTsKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJULCB0eXBlbmFtZSBUPgoraW5saW5lIGJhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPiYKK29wZXJhdG9yPDwoIGJhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPiYgdGFyZywgVCBjb25zdCYgdCApCit7CisgICAgdGFyZy5zdHJlYW0oKSA8PCB0OworICAgIHJldHVybiB0YXJnOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclQ+CitpbmxpbmUgdHlwZW5hbWUgYmFzaWNfd3JhcF9zdHJpbmdzdHJlYW08Q2hhclQ+Ojp3cmFwcGVkX3N0cmVhbSYKK2Jhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPjo6c3RyZWFtKCkKK3sKKyAgICByZXR1cm4gbV9zdHJlYW07Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mCitiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD46OnJlZigpCit7IAorICAgIHJldHVybiAqdGhpczsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJUPgoraW5saW5lIHN0ZDo6YmFzaWNfc3RyaW5nPENoYXJUPiBjb25zdCYKK2Jhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPjo6c3RyKCkKK3sKKworI2lmZGVmIEJPT1NUX05PX1NUUklOR1NUUkVBTQorICAgIG1fc3RyLmFzc2lnbiggbV9zdHJlYW0uc3RyKCksIG1fc3RyZWFtLnBjb3VudCgpICk7CisgICAgbV9zdHJlYW0uZnJlZXplKCBmYWxzZSApOworI2Vsc2UKKyAgICBtX3N0ciA9IG1fc3RyZWFtLnN0cigpOworI2VuZGlmCisKKyAgICByZXR1cm4gbV9zdHI7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mCitvcGVyYXRvcjw8KCBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mIHRhcmcsIGJhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPiYgc3JjICkKK3sKKyAgICB0YXJnIDw8IHNyYy5zdHIoKTsKKyAgICByZXR1cm4gdGFyZzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2lmIEJPT1NUX1RFU1RfVVNFX1NURF9MT0NBTEUgCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVD4KK2lubGluZSBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mCitvcGVyYXRvcjw8KCBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mIHRhcmcsIHN0ZDo6aW9zX2Jhc2UmIChCT09TVF9URVNUX0NBTExfREVDTCAqbWFuKShzdGQ6Omlvc19iYXNlJikgKQoreworICAgIHRhcmcuc3RyZWFtKCkgPDwgbWFuOworICAgIHJldHVybiB0YXJnOworfQorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVCx0eXBlbmFtZSBFbGVtLHR5cGVuYW1lIFRyPgoraW5saW5lIGJhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPiYKK29wZXJhdG9yPDwoIGJhc2ljX3dyYXBfc3RyaW5nc3RyZWFtPENoYXJUPiYgdGFyZywgc3RkOjpiYXNpY19vc3RyZWFtPEVsZW0sVHI+JiAoQk9PU1RfVEVTVF9DQUxMX0RFQ0wgKm1hbikoc3RkOjpiYXNpY19vc3RyZWFtPEVsZW0sIFRyPiYpICkKK3sKKyAgICB0YXJnLnN0cmVhbSgpIDw8IG1hbjsKKyAgICByZXR1cm4gdGFyZzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQsdHlwZW5hbWUgRWxlbSx0eXBlbmFtZSBUcj4KK2lubGluZSBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mCitvcGVyYXRvcjw8KCBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxDaGFyVD4mIHRhcmcsIHN0ZDo6YmFzaWNfaW9zPEVsZW0sIFRyPiYgKEJPT1NUX1RFU1RfQ0FMTF9ERUNMICptYW4pKHN0ZDo6YmFzaWNfaW9zPEVsZW0sIFRyPiYpICkKK3sKKyAgICB0YXJnLnN0cmVhbSgpIDw8IG1hbjsKKyAgICByZXR1cm4gdGFyZzsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2VuZGlmCisKKy8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKiAgICAgICAgICAgICAgIHdyYXBfc3RyaW5nc3RyZWFtICAgICAgICAgICAgICAqKioqKioqKioqKioqKiAvLworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKwordHlwZWRlZiBiYXNpY193cmFwX3N0cmluZ3N0cmVhbTxjaGFyPiAgICAgICB3cmFwX3N0cmluZ3N0cmVhbTsKK3R5cGVkZWYgYmFzaWNfd3JhcF9zdHJpbmdzdHJlYW08d2NoYXJfdD4gICAgd3JhcF93c3RyaW5nc3RyZWFtOworCit9ICAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3Rlc3QvZGV0YWlsL2VuYWJsZV93YXJuaW5ncy5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfV1JBUF9TVFJJTkdTVFJFQU1fSFBQXzA3MTg5NEdFUgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90ZXN0L3V0aWxzL3htbF9wcmludGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy94bWxfcHJpbnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThlY2M2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGVzdC91dGlscy94bWxfcHJpbnRlci5ocHAKQEAgLTAsMCArMSwxMTggQEAKKy8vICAoQykgQ29weXJpZ2h0IEdlbm5hZGl5IFJvemVudGFsIDIwMDQtMjAwOC4KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Rlc3QgZm9yIHRoZSBsaWJyYXJ5IGhvbWUgcGFnZS4KKy8vCisvLyAgRmlsZSAgICAgICAgOiAkUkNTZmlsZSQKKy8vCisvLyAgVmVyc2lvbiAgICAgOiAkUmV2aXNpb246IDU3OTkyICQKKy8vCisvLyAgRGVzY3JpcHRpb24gOiBjb21tb24gY29kZSB1c2VkIGJ5IGFueSBhZ2VudCBzZXJ2aW5nIGFzIFhNTCBwcmludGVyCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworI2lmbmRlZiBCT09TVF9URVNUX1hNTF9QUklOVEVSX0hQUF8wNzE4OTRHRVIKKyNkZWZpbmUgQk9PU1RfVEVTVF9YTUxfUFJJTlRFUl9IUFBfMDcxODk0R0VSCisKKy8vIEJvb3N0LlRlc3QKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvYmFzaWNfY3N0cmluZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9maXhlZF9tYXBwaW5nLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2N1c3RvbV9tYW5pcC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC91dGlscy9mb3JlYWNoLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L3V0aWxzL2Jhc2ljX2NzdHJpbmcvaW8uaHBwPgorCisvLyBCb29zdAorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKy8vIFNUTAorI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdGVzdC9kZXRhaWwvc3VwcHJlc3Nfd2FybmluZ3MuaHBwPgorCisvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vLworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdW5pdF90ZXN0IHsKKworLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogLy8KKy8vICoqKioqKioqKioqKioqICAgICAgICAgICAgICAgeG1sIHByaW50IGhlbHBlcnMgICAgICAgICAgICAgICoqKioqKioqKioqKioqIC8vCisvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAvLworCitpbmxpbmUgdm9pZAorcHJpbnRfZXNjYXBlZCggc3RkOjpvc3RyZWFtJiB3aGVyZV90bywgY29uc3Rfc3RyaW5nIHZhbHVlICkKK3sKKyAgICBzdGF0aWMgZml4ZWRfbWFwcGluZzxjaGFyLGNoYXIgY29uc3QqPiBjaGFyX3R5cGUoCisgICAgICAgICc8JyAsICJsdCIsCisgICAgICAgICc+JyAsICJndCIsCisgICAgICAgICcmJyAsICJhbXAiLAorICAgICAgICAnXCcnLCAiYXBvcyIgLAorICAgICAgICAnIicgLCAicXVvdCIsCisKKyAgICAgICAgMAorICAgICk7CisKKyAgICBCT09TVF9URVNUX0ZPUkVBQ0goIGNoYXIsIGMsIHZhbHVlICkgeworICAgICAgICBjaGFyIGNvbnN0KiByZWYgPSBjaGFyX3R5cGVbY107CisKKyAgICAgICAgaWYoIHJlZiApCisgICAgICAgICAgICB3aGVyZV90byA8PCAnJicgPDwgcmVmIDw8ICc7JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgd2hlcmVfdG8gPDwgYzsKKyAgICB9Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK2lubGluZSB2b2lkCitwcmludF9lc2NhcGVkKCBzdGQ6Om9zdHJlYW0mIHdoZXJlX3RvLCBzdGQ6OnN0cmluZyBjb25zdCYgdmFsdWUgKQoreworICAgIHByaW50X2VzY2FwZWQoIHdoZXJlX3RvLCBjb25zdF9zdHJpbmcoIHZhbHVlICkgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkCitwcmludF9lc2NhcGVkKCBzdGQ6Om9zdHJlYW0mIHdoZXJlX3RvLCBUIGNvbnN0JiB2YWx1ZSApCit7CisgICAgd2hlcmVfdG8gPDwgdmFsdWU7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3R5cGVkZWYgY3VzdG9tX21hbmlwPHN0cnVjdCBhdHRyX3ZhbHVlX3Q+IGF0dHJfdmFsdWU7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgc3RkOjpvc3RyZWFtJgorb3BlcmF0b3I8PCggY3VzdG9tX3ByaW50ZXI8YXR0cl92YWx1ZT4gY29uc3QmIHAsIFQgY29uc3QmIHZhbHVlICkKK3sKKyAgICAqcCA8PCAiPVwiIjsKKyAgICBwcmludF9lc2NhcGVkKCAqcCwgdmFsdWUgKTsKKyAgICAqcCA8PCAnIic7CisKKyAgICByZXR1cm4gKnA7Cit9CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKK3R5cGVkZWYgY3VzdG9tX21hbmlwPHN0cnVjdCBjZGF0YV90PiBjZGF0YTsKKworaW5saW5lIHN0ZDo6b3N0cmVhbSYKK29wZXJhdG9yPDwoIGN1c3RvbV9wcmludGVyPGNkYXRhPiBjb25zdCYgcCwgY29uc3Rfc3RyaW5nIHZhbHVlICkKK3sKKyAgICByZXR1cm4gKnAgPDwgQk9PU1RfVEVTVF9MKCAiPCFbQ0RBVEFbIiApIDw8IHZhbHVlIDw8IEJPT1NUX1RFU1RfTCggIl1dPiIgKTsKK30KKworLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLy8KKworfSAvLyBuYW1lc3BhY2UgdW5pdF90ZXN0CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90ZXN0L2RldGFpbC9lbmFibGVfd2FybmluZ3MuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVEVTVF9YTUxfUFJJTlRFUl9IUFBfMDcxODk0R0VSCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkyMTJkMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcApAQCAtMCwwICsxLDEwMCBAQAorI2lmbmRlZiBVVUlEX0FBMTVFNzRBODU2RjExRTA4QjhEOTNGMjQ4MjQwMTlCCisjZGVmaW5lIFVVSURfQUExNUU3NEE4NTZGMTFFMDhCOEQ5M0YyNDgyNDAxOUIKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgorI2VuZGlmCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoQk9PU1RfRVhDRVBUSU9OX0VOQUJMRV9XQVJOSU5HUykKKyNwcmFnbWEgd2FybmluZyhwdXNoLDEpCisjZW5kaWYKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDgtMjAwOSBFbWlsIERvdGNoZXZza2kgYW5kIFJldmVyZ2UgU3R1ZGlvcywgSW5jLgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L3Rocm93X2V4Y2VwdGlvbi5odG1sCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvZXhjZXB0aW9uL2RldGFpbC9hdHRyaWJ1dGVfbm9yZXR1cm4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGV4Y2VwdGlvbj4KKworI2lmICFkZWZpbmVkKCBCT09TVF9FWENFUFRJT05fRElTQUJMRSApICYmIGRlZmluZWQoIF9fQk9STEFORENfXyApICYmIEJPT1NUX1dPUktBUk9VTkQoIF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTkzKSApCisjIGRlZmluZSBCT09TVF9FWENFUFRJT05fRElTQUJMRQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfRVhDRVBUSU9OX0RJU0FCTEUgKSAmJiBkZWZpbmVkKCBCT09TVF9NU1ZDICkgJiYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPCAxMzEwICkKKyMgZGVmaW5lIEJPT1NUX0VYQ0VQVElPTl9ESVNBQkxFCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9FWENFUFRJT05fRElTQUJMRSApCisjIGluY2x1ZGUgPG5kbmJvb3N0L2V4Y2VwdGlvbi9leGNlcHRpb24uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcD4KKyMgZGVmaW5lIEJPT1NUX1RIUk9XX0VYQ0VQVElPTih4KSA6Om5kbmJvb3N0OjpleGNlcHRpb25fZGV0YWlsOjp0aHJvd19leGNlcHRpb25fKHgsQk9PU1RfQ1VSUkVOVF9GVU5DVElPTixfX0ZJTEVfXyxfX0xJTkVfXykKKyNlbHNlCisjIGRlZmluZSBCT09TVF9USFJPV19FWENFUFRJT04oeCkgOjpuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKHgpCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisjaWZkZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworCit2b2lkIHRocm93X2V4Y2VwdGlvbiggc3RkOjpleGNlcHRpb24gY29uc3QgJiBlICk7IC8vIHVzZXIgZGVmaW5lZAorCisjZWxzZQorCitpbmxpbmUgdm9pZCB0aHJvd19leGNlcHRpb25fYXNzZXJ0X2NvbXBhdGliaWxpdHkoIHN0ZDo6ZXhjZXB0aW9uIGNvbnN0ICYgKSB7IH0KKwordGVtcGxhdGU8Y2xhc3MgRT4gQk9PU1RfQVRUUklCVVRFX05PUkVUVVJOIGlubGluZSB2b2lkIHRocm93X2V4Y2VwdGlvbiggRSBjb25zdCAmIGUgKQoreworICAgIC8vQWxsIGJvb3N0IGV4Y2VwdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGRlcml2ZSBmcm9tIHN0ZDo6ZXhjZXB0aW9uLAorICAgIC8vdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBCT09TVF9OT19FWENFUFRJT05TLgorICAgIHRocm93X2V4Y2VwdGlvbl9hc3NlcnRfY29tcGF0aWJpbGl0eShlKTsKKworI2lmbmRlZiBCT09TVF9FWENFUFRJT05fRElTQUJMRQorICAgIHRocm93IGVuYWJsZV9jdXJyZW50X2V4Y2VwdGlvbihlbmFibGVfZXJyb3JfaW5mbyhlKSk7CisjZWxzZQorICAgIHRocm93IGU7CisjZW5kaWYKK30KKworI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfRVhDRVBUSU9OX0RJU0FCTEUgKQorICAgIG5hbWVzcGFjZQorICAgIGV4Y2VwdGlvbl9kZXRhaWwKKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBCT09TVF9BVFRSSUJVVEVfTk9SRVRVUk4KKyAgICAgICAgdm9pZAorICAgICAgICB0aHJvd19leGNlcHRpb25fKCBFIGNvbnN0ICYgeCwgY2hhciBjb25zdCAqIGN1cnJlbnRfZnVuY3Rpb24sIGNoYXIgY29uc3QgKiBmaWxlLCBpbnQgbGluZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oCisgICAgICAgICAgICAgICAgc2V0X2luZm8oCisgICAgICAgICAgICAgICAgICAgIHNldF9pbmZvKAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2luZm8oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2Vycm9yX2luZm8oeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dfZnVuY3Rpb24oY3VycmVudF9mdW5jdGlvbikpLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dfZmlsZShmaWxlKSksCisgICAgICAgICAgICAgICAgICAgIHRocm93X2xpbmUobGluZSkpKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdGltZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90aW1lci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjYTdiMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdGltZXIuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vICBib29zdCB0aW1lci5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMTk5NC05OS4gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdAorLy8gIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdGltZXIgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICBSZXZpc2lvbiBIaXN0b3J5CisvLyAgMDEgQXByIDAxICBNb2RpZmllZCB0byB1c2UgbmV3IDxuZG5ib29zdC9saW1pdHMuaHBwPiBoZWFkZXIuIChKTWFkZG9jaykKKy8vICAxMiBKYW4gMDEgIENoYW5nZSB0byBpbmxpbmUgaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdXNlIHdpdGhvdXQgbGlicmFyeQorLy8gICAgICAgICAgICAgYnVpbGRzLiBTZWUgZG9jcyBmb3IgbW9yZSByYXRpb25hbGUuIChCZW1hbiBEYXdlcykgCisvLyAgMjUgU2VwIDk5ICBlbGFwc2VkX21heCgpIGFuZCBlbGFwc2VkX21pbigpIGFkZGVkIChKb2huIE1hZGRvY2spCisvLyAgMTYgSnVsIDk5ICBTZWNvbmQgYmV0YQorLy8gICA2IEp1bCA5OSAgSW5pdGlhbCBib29zdCB2ZXJzaW9uCisKKyNpZm5kZWYgQk9PU1RfVElNRVJfSFBQCisjZGVmaW5lIEJPT1NUX1RJTUVSX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxjdGltZT4KKyNpbmNsdWRlIDxuZG5ib29zdC9saW1pdHMuaHBwPgorCisjIGlmZGVmIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisgICAgbmFtZXNwYWNlIHN0ZCB7IHVzaW5nIDo6Y2xvY2tfdDsgdXNpbmcgOjpjbG9jazsgfQorIyBlbmRpZgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKy8vICB0aW1lciAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBBIHRpbWVyIG9iamVjdCBtZWFzdXJlcyBlbGFwc2VkIHRpbWUuCisKKy8vICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IGltcGxlbWVudGF0aW9ucyBtZWFzdXJlIHdhbGwgY2xvY2sgcmF0aGVyIHRoYW4gQ1BVCisvLyAgdGltZSBzaW5jZSB0aGUgaW50ZW5kZWQgdXNlIGlzIHBlcmZvcm1hbmNlIG1lYXN1cmVtZW50IG9uIHN5c3RlbXMgd2hlcmUKKy8vICB0b3RhbCBlbGFwc2VkIHRpbWUgaXMgbW9yZSBpbXBvcnRhbnQgdGhhbiBqdXN0IHByb2Nlc3Mgb3IgQ1BVIHRpbWUuCisKKy8vICBXYXJuaW5nczogVGhlIG1heGltdW0gbWVhc3VyYWJsZSBlbGFwc2VkIHRpbWUgbWF5IHdlbGwgYmUgb25seSA1OTYuNSsgaG91cnMKKy8vICBkdWUgdG8gaW1wbGVtZW50YXRpb24gbGltaXRhdGlvbnMuICBUaGUgYWNjdXJhY3kgb2YgdGltaW5ncyBkZXBlbmRzIG9uIHRoZQorLy8gIGFjY3VyYWN5IG9mIHRpbWluZyBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybSwgYW5kCisvLyAgdGhpcyB2YXJpZXMgYSBncmVhdCBkZWFsIGZyb20gcGxhdGZvcm0gdG8gcGxhdGZvcm0uCisKK2NsYXNzIHRpbWVyCit7CisgcHVibGljOgorICAgICAgICAgdGltZXIoKSB7IF9zdGFydF90aW1lID0gc3RkOjpjbG9jaygpOyB9IC8vIHBvc3Rjb25kaXRpb246IGVsYXBzZWQoKT09MAorLy8gICAgICAgICB0aW1lciggY29uc3QgdGltZXImIHNyYyApOyAgICAgIC8vIHBvc3Q6IGVsYXBzZWQoKT09c3JjLmVsYXBzZWQoKQorLy8gICAgICAgIH50aW1lcigpe30KKy8vICB0aW1lciYgb3BlcmF0b3I9KCBjb25zdCB0aW1lciYgc3JjICk7ICAvLyBwb3N0OiBlbGFwc2VkKCk9PXNyYy5lbGFwc2VkKCkKKyAgdm9pZCAgIHJlc3RhcnQoKSB7IF9zdGFydF90aW1lID0gc3RkOjpjbG9jaygpOyB9IC8vIHBvc3Q6IGVsYXBzZWQoKT09MAorICBkb3VibGUgZWxhcHNlZCgpIGNvbnN0ICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGVsYXBzZWQgdGltZSBpbiBzZWNvbmRzCisgICAgeyByZXR1cm4gIGRvdWJsZShzdGQ6OmNsb2NrKCkgLSBfc3RhcnRfdGltZSkgLyBDTE9DS1NfUEVSX1NFQzsgfQorCisgIGRvdWJsZSBlbGFwc2VkX21heCgpIGNvbnN0ICAgLy8gcmV0dXJuIGVzdGltYXRlZCBtYXhpbXVtIHZhbHVlIGZvciBlbGFwc2VkKCkKKyAgLy8gUG9ydGFiaWxpdHkgd2FybmluZzogZWxhcHNlZF9tYXgoKSBtYXkgcmV0dXJuIHRvbyBoaWdoIGEgdmFsdWUgb24gc3lzdGVtcworICAvLyB3aGVyZSBzdGQ6OmNsb2NrX3Qgb3ZlcmZsb3dzIG9yIHJlc2V0cyBhdCBzdXJwcmlzaW5nIHZhbHVlcy4KKyAgeworICAgIHJldHVybiAoZG91YmxlKChzdGQ6Om51bWVyaWNfbGltaXRzPHN0ZDo6Y2xvY2tfdD46Om1heCkoKSkKKyAgICAgICAtIGRvdWJsZShfc3RhcnRfdGltZSkpIC8gZG91YmxlKENMT0NLU19QRVJfU0VDKTsgCisgIH0KKworICBkb3VibGUgZWxhcHNlZF9taW4oKSBjb25zdCAgICAgICAgICAgIC8vIHJldHVybiBtaW5pbXVtIHZhbHVlIGZvciBlbGFwc2VkKCkKKyAgIHsgcmV0dXJuIGRvdWJsZSgxKS9kb3VibGUoQ0xPQ0tTX1BFUl9TRUMpOyB9CisKKyBwcml2YXRlOgorICBzdGQ6OmNsb2NrX3QgX3N0YXJ0X3RpbWU7Cit9OyAvLyB0aW1lcgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vIEJPT1NUX1RJTUVSX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ZjdkODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R1cGxlL2RldGFpbC90dXBsZV9iYXNpYy5ocHAKQEAgLTAsMCArMSw5ODAgQEAKKy8vICB0dXBsZV9iYXNpYy5ocHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEphYWtrbyBKYXJ2aSAoamFha2tvLmphcnZpQGNzLnV0dS5maSkKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcKKworLy8gT3V0c2lkZSBoZWxwOgorLy8gVGhpcyBhbmQgdGhhdCwgR2FyeSBQb3dlbGwuCisvLyBGaXhlZCByZXR1cm4gdHlwZXMgZm9yIGdldF9oZWFkL2dldF90YWlsCisvLyAoIGFuZCBvdGhlciBidWdzICkgcGVyIHN1Z2dlc3Rpb24gb2YgSmVucyBNYXVyZXIKKy8vIHNpbXBsaWZpZWQgZWxlbWVudCB0eXBlIGFjY2Vzc29ycyArIGJ1ZyBmaXggIChKZXJlbXkgU2llaykKKy8vIFNldmVyYWwgY2hhbmdlcy9hZGRpdGlvbnMgYWNjb3JkaW5nIHRvIHN1Z2dlc3Rpb25zIGJ5IERvdWdsYXMgR3JlZ29yLAorLy8gV2lsbGlhbSBLZW1wZiwgVmVzYSBLYXJ2b25lbiwgSm9obiBNYXggU2thbGxlciwgRWQgQnJleSwgQmVtYW4gRGF3ZXMsCisvLyBEYXZpZCBBYnJhaGFtcy4KKworLy8gUmV2aXNpb24gaGlzdG9yeToKKy8vIDIwMDIgMDUgMDEgSHVnbyBEdW5jYW46IEZpeCBmb3IgQm9ybGFuZCBhZnRlciBKYWFra28ncyBwcmV2aW91cyBjaGFuZ2VzCisvLyAyMDAyIDA0IDE4IEphYWtrbzogdHVwbGUgZWxlbWVudCB0eXBlcyBjYW4gYmUgdm9pZCBvciBwbGFpbiBmdW5jdGlvbgorLy8gICAgICAgICAgICAgICAgICAgIHR5cGVzLCBhcyBsb25nIGFzIG5vIG9iamVjdCBpcyBjcmVhdGVkLgorLy8gICAgICAgICAgICAgICAgICAgIFR1cGxlIG9iamVjdHMgY2FuIG5vIGhvbGQgZXZlbiBub25jb3B5YWJsZSB0eXBlcworLy8gICAgICAgICAgICAgICAgICAgIHN1Y2ggYXMgYXJyYXlzLgorLy8gMjAwMSAxMCAyMiBKb2huIE1hZGRvY2sKKy8vICAgICAgRml4ZXMgZm9yIEJvcmxhbmQgQysrCisvLyAyMDAxIDA4IDMwIERhdmlkIEFicmFoYW1zCisvLyAgICAgIEFkZGVkIGRlZmF1bHQgY29uc3RydWN0b3IgZm9yIGNvbnM8Pi4KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZm5kZWYgQk9PU1RfVFVQTEVfQkFTSUNfSFBQCisjZGVmaW5lIEJPT1NUX1RVUExFX0JBU0lDX0hQUAorCisKKyNpbmNsdWRlIDx1dGlsaXR5PiAvLyBuZWVkZWQgZm9yIHRoZSBhc3NpZ25tZW50IGZyb20gcGFpciB0byB0dXBsZQorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvY3ZfdHJhaXRzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9mdW5jdGlvbl90cmFpdHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3V0aWxpdHkvc3dhcC5ocHAiCisKKyNpbmNsdWRlICJuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHAiIC8vIG5lZWRlZCBmb3IgQk9PU1RfV09SS0FST1VORAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR1cGxlcyB7CisKKy8vIC0tIG51bGxfdHlwZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RydWN0IG51bGxfdHlwZSB7fTsKKworLy8gYSBoZWxwZXIgZnVuY3Rpb24gdG8gcHJvdmlkZSBhIGNvbnN0IG51bGxfdHlwZSB0eXBlIHRlbXBvcmFyeQorbmFtZXNwYWNlIGRldGFpbCB7CisgIGlubGluZSBjb25zdCBudWxsX3R5cGUgY251bGwoKSB7IHJldHVybiBudWxsX3R5cGUoKTsgfQorCisKKy8vIC0tIGlmIGNvbnN0cnVjdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFByb3Bvc2VkIGJ5IEtyenlzenRvZiBDemFybmVja2kgYW5kIFVscmljaCBFaXNlbmVja2VyCisKK3RlbXBsYXRlIDxib29sIElmLCBjbGFzcyBUaGVuLCBjbGFzcyBFbHNlPiBzdHJ1Y3QgSUYgeyB0eXBlZGVmIFRoZW4gUkVUOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVGhlbiwgY2xhc3MgRWxzZT4gc3RydWN0IElGPGZhbHNlLCBUaGVuLCBFbHNlPiB7CisgIHR5cGVkZWYgRWxzZSBSRVQ7Cit9OworCit9IC8vIGVuZCBkZXRhaWwKKworLy8gLSBjb25zIGZvcndhcmQgZGVjbGFyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3RlbXBsYXRlIDxjbGFzcyBIVCwgY2xhc3MgVFQ+IHN0cnVjdCBjb25zOworCisKKy8vIC0gdHVwbGUgZm9yd2FyZCBkZWNsYXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordGVtcGxhdGUgPAorICBjbGFzcyBUMCA9IG51bGxfdHlwZSwgY2xhc3MgVDEgPSBudWxsX3R5cGUsIGNsYXNzIFQyID0gbnVsbF90eXBlLAorICBjbGFzcyBUMyA9IG51bGxfdHlwZSwgY2xhc3MgVDQgPSBudWxsX3R5cGUsIGNsYXNzIFQ1ID0gbnVsbF90eXBlLAorICBjbGFzcyBUNiA9IG51bGxfdHlwZSwgY2xhc3MgVDcgPSBudWxsX3R5cGUsIGNsYXNzIFQ4ID0gbnVsbF90eXBlLAorICBjbGFzcyBUOSA9IG51bGxfdHlwZT4KK2NsYXNzIHR1cGxlOworCisvLyB0dXBsZV9sZW5ndGggZm9yd2FyZCBkZWNsYXJhdGlvbgordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGxlbmd0aDsKKworCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyAtLSBnZW5lcmF0ZSBlcnJvciB0ZW1wbGF0ZSwgcmVmZXJlbmNpbmcgdG8gbm9uLWV4aXN0aW5nIG1lbWJlcnMgb2YgdGhpcworLy8gdGVtcGxhdGUgaXMgdXNlZCB0byBwcm9kdWNlIGNvbXBpbGF0aW9uIGVycm9ycyBpbnRlbnRpb25hbGx5Cit0ZW1wbGF0ZTxjbGFzcyBUPgorY2xhc3MgZ2VuZXJhdGVfZXJyb3I7CisKK3RlbXBsYXRlPGludCBOPgorc3RydWN0IGRyb3BfZnJvbnQgeworICAgIHRlbXBsYXRlPGNsYXNzIFR1cGxlPgorICAgIHN0cnVjdCBhcHBseSB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBkcm9wX2Zyb250PE4tMT46OkJPT1NUX05FU1RFRF9URU1QTEFURQorICAgICAgICAgICAgYXBwbHk8VHVwbGU+IG5leHQ7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZXh0Ojp0eXBlOjp0YWlsX3R5cGUgdHlwZTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHR5cGUmIGNhbGwoY29uc3QgVHVwbGUmIHR1cCkgeworICAgICAgICAgICAgcmV0dXJuIG5leHQ6OmNhbGwodHVwKS50YWlsOworICAgICAgICB9CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkcm9wX2Zyb250PDA+IHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUdXBsZT4KKyAgICBzdHJ1Y3QgYXBwbHkgeworICAgICAgICB0eXBlZGVmIFR1cGxlIHR5cGU7CisgICAgICAgIHN0YXRpYyBjb25zdCB0eXBlJiBjYWxsKGNvbnN0IFR1cGxlJiB0dXApIHsKKyAgICAgICAgICAgIHJldHVybiB0dXA7CisgICAgICAgIH0KKyAgICB9OworfTsKKworfSAvLyBlbmQgb2YgbmFtZXNwYWNlIGRldGFpbAorCisKKy8vIC1jb25zIHR5cGUgYWNjZXNzb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDxOLFQ+Ojp0eXBlIGdldHMgdGhlIHR5cGUgb2YgdGhlCisvLyBOdGggZWxlbWVudCBvdCBULCBmaXJzdCBlbGVtZW50IGlzIGF0IGluZGV4IDAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2lmbmRlZiBCT09TVF9OT19DVl9TUEVDSUFMSVpBVElPTlMKKwordGVtcGxhdGU8aW50IE4sIGNsYXNzIFQ+CitzdHJ1Y3QgZWxlbWVudAoreworICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZGV0YWlsOjpkcm9wX2Zyb250PE4+OjpCT09TVF9ORVNURURfVEVNUExBVEUKKyAgICAgIGFwcGx5PFQ+Ojp0eXBlOjpoZWFkX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGludCBOLCBjbGFzcyBUPgorc3RydWN0IGVsZW1lbnQ8TiwgY29uc3QgVD4KK3sKK3ByaXZhdGU6CisgIHR5cGVkZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBkZXRhaWw6OmRyb3BfZnJvbnQ8Tj46OkJPT1NUX05FU1RFRF9URU1QTEFURQorICAgICAgYXBwbHk8VD46OnR5cGU6OmhlYWRfdHlwZSB1bnF1YWxpZmllZF90eXBlOworcHVibGljOgorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLDwweDYwMCkKKyAgdHlwZWRlZiBjb25zdCB1bnF1YWxpZmllZF90eXBlIHR5cGU7CisjZWxzZQorICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbmRuYm9vc3Q6OmFkZF9jb25zdDx1bnF1YWxpZmllZF90eXBlPjo6dHlwZSB0eXBlOworI2VuZGlmCit9OworI2Vsc2UgLy8gZGVmIEJPT1NUX05PX0NWX1NQRUNJQUxJWkFUSU9OUworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8aW50IE4sIGNsYXNzIFQsIGJvb2wgSXNDb25zdD4KK3N0cnVjdCBlbGVtZW50X2ltcGwKK3sKKyAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRldGFpbDo6ZHJvcF9mcm9udDxOPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFCisgICAgICBhcHBseTxUPjo6dHlwZTo6aGVhZF90eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxpbnQgTiwgY2xhc3MgVD4KK3N0cnVjdCBlbGVtZW50X2ltcGw8TiwgVCwgdHJ1ZSAvKiBJc0NvbnN0ICovPgoreworICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgZGV0YWlsOjpkcm9wX2Zyb250PE4+OjpCT09TVF9ORVNURURfVEVNUExBVEUKKyAgICAgIGFwcGx5PFQ+Ojp0eXBlOjpoZWFkX3R5cGUgdW5xdWFsaWZpZWRfdHlwZTsKKyAgdHlwZWRlZiBjb25zdCB1bnF1YWxpZmllZF90eXBlIHR5cGU7Cit9OworCit9IC8vIGVuZCBvZiBuYW1lc3BhY2UgZGV0YWlsCisKKwordGVtcGxhdGU8aW50IE4sIGNsYXNzIFQ+CitzdHJ1Y3QgZWxlbWVudDoKKyAgcHVibGljIGRldGFpbDo6ZWxlbWVudF9pbXBsPE4sIFQsIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PFQ+Ojp2YWx1ZT4KK3sKK307CisKKyNlbmRpZgorCisKKy8vIC1nZXQgZnVuY3Rpb24gdGVtcGxhdGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBVc2FnZTogZ2V0PE4+KGFUdXBsZSkKKworLy8gLS0gc29tZSB0cmFpdHMgY2xhc3NlcyBmb3IgZ2V0IGZ1bmN0aW9ucworCisvLyBhY2Nlc3MgdHJhaXRzIGxpZnRlZCBmcm9tIGRldGFpbCBuYW1lc3BhY2UgdG8gYmUgcGFydCBvZiB0aGUgaW50ZXJmYWNlLAorLy8gKEpvZWwgZGUgR3V6bWFuJ3Mgc3VnZ2VzdGlvbikuIFJhdGlvbmFsZTogZ2V0IGZ1bmN0aW9ucyBhcmUgcGFydCBvZiB0aGUKKy8vIGludGVyZmFjZSwgc28gc2hvdWxkIHRoZSB3YXkgdG8gZXhwcmVzcyB0aGVpciByZXR1cm4gdHlwZXMgYmUuCisKK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgYWNjZXNzX3RyYWl0cyB7CisgIHR5cGVkZWYgY29uc3QgVCYgY29uc3RfdHlwZTsKKyAgdHlwZWRlZiBUJiBub25fY29uc3RfdHlwZTsKKworICB0eXBlZGVmIGNvbnN0IHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGUmIHBhcmFtZXRlcl90eXBlOworCisvLyB1c2VkIGFzIHRoZSB0dXBsZSBjb25zdHJ1Y3RvcnMgcGFyYW1ldGVyIHR5cGVzCisvLyBSYXRpb25hbGU6IG5vbi1yZWZlcmVuY2UgdHVwbGUgZWxlbWVudCB0eXBlcyBjYW4gYmUgY3YtcXVhbGlmaWVkLgorLy8gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGluaXRpYWxpemUgc3VjaCB0eXBlcyB3aXRoIHRlbXBvcmFyaWVzLAorLy8gYW5kIHdoZW4gYmluZGluZyB0ZW1wb3JhcmllcyB0byByZWZlcmVuY2VzLCB0aGUgcmVmZXJlbmNlIG11c3QKKy8vIGJlIG5vbi12b2xhdGlsZSBhbmQgY29uc3QuIDguNS4zLiAoNSkKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgYWNjZXNzX3RyYWl0czxUJj4geworCisgIHR5cGVkZWYgVCYgY29uc3RfdHlwZTsKKyAgdHlwZWRlZiBUJiBub25fY29uc3RfdHlwZTsKKworICB0eXBlZGVmIFQmIHBhcmFtZXRlcl90eXBlOworfTsKKworLy8gZ2V0IGZ1bmN0aW9uIGZvciBub24tY29uc3QgY29ucy1saXN0cywgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgZWxlbWVudAorCit0ZW1wbGF0ZTxpbnQgTiwgY2xhc3MgSFQsIGNsYXNzIFRUPgoraW5saW5lIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8CisgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBlbGVtZW50PE4sIGNvbnM8SFQsIFRUPiA+Ojp0eXBlCisgICAgICAgICAgICAgICAgPjo6bm9uX2NvbnN0X3R5cGUKK2dldChjb25zPEhULCBUVD4mIGMgQk9PU1RfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFKGludCwgTikpIHsKKyAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRldGFpbDo6ZHJvcF9mcm9udDxOPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFCisgICAgICBhcHBseTxjb25zPEhULCBUVD4gPiBpbXBsOworICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgaW1wbDo6dHlwZSBjb25zX2VsZW1lbnQ7CisgIHJldHVybiBjb25zdF9jYXN0PGNvbnNfZWxlbWVudCY+KGltcGw6OmNhbGwoYykpLmhlYWQ7Cit9CisKKy8vIGdldCBmdW5jdGlvbiBmb3IgY29uc3QgY29ucy1saXN0cywgcmV0dXJucyBhIGNvbnN0IHJlZmVyZW5jZSB0bworLy8gdGhlIGVsZW1lbnQuIElmIHRoZSBlbGVtZW50IGlzIGEgcmVmZXJlbmNlLCByZXR1cm5zIHRoZSByZWZlcmVuY2UKKy8vIGFzIHN1Y2ggKHRoYXQgaXMsIGNhbiByZXR1cm4gYSBub24tY29uc3QgcmVmZXJlbmNlKQordGVtcGxhdGU8aW50IE4sIGNsYXNzIEhULCBjbGFzcyBUVD4KK2lubGluZSB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgZWxlbWVudDxOLCBjb25zPEhULCBUVD4gPjo6dHlwZQorICAgICAgICAgICAgICAgID46OmNvbnN0X3R5cGUKK2dldChjb25zdCBjb25zPEhULCBUVD4mIGMgQk9PU1RfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFKGludCwgTikpIHsKKyAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGRldGFpbDo6ZHJvcF9mcm9udDxOPjo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFCisgICAgICBhcHBseTxjb25zPEhULCBUVD4gPiBpbXBsOworICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgaW1wbDo6dHlwZSBjb25zX2VsZW1lbnQ7CisgIHJldHVybiBpbXBsOjpjYWxsKGMpLmhlYWQ7Cit9CisKKy8vIC0tIHRoZSBjb25zIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vICBUaGVzZSBoZWxwZXIgdGVtcGxhdGVzIHdyYXAgdm9pZCB0eXBlcyBhbmQgcGxhaW4gZnVuY3Rpb24gdHlwZXMuCisvLyAgVGhlIHJlYXRpb25hbGUgaXMgdG8gYWxsb3cgb25lIHRvIHdyaXRlIHR1cGxlIHR5cGVzIHdpdGggdGhvc2UgdHlwZXMKKy8vICBhcyBlbGVtZW50cywgZXZlbiB0aG91Z2ggaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluc3RhbnRpYXRlIHN1Y2ggb2JqZWN0LgorLy8gIEUuZzogdHlwZWRlZiB0dXBsZTx2b2lkPiBzb21lX3R5cGU7IC8vIG9rCisvLyAgYnV0OiBzb21lX3R5cGUgeDsgLy8gZmFpbHMKKwordGVtcGxhdGUgPGNsYXNzIFQ+IGNsYXNzIG5vbl9zdG9yZWFibGVfdHlwZSB7CisgIG5vbl9zdG9yZWFibGVfdHlwZSgpOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCB3cmFwX25vbl9zdG9yZWFibGVfdHlwZSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgSUY8CisgICAgOjpuZG5ib29zdDo6aXNfZnVuY3Rpb248VD46OnZhbHVlLCBub25fc3RvcmVhYmxlX3R5cGU8VD4sIFQKKyAgPjo6UkVUIHR5cGU7Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IHdyYXBfbm9uX3N0b3JlYWJsZV90eXBlPHZvaWQ+IHsKKyAgdHlwZWRlZiBub25fc3RvcmVhYmxlX3R5cGU8dm9pZD4gdHlwZTsKK307CisKK30gLy8gZGV0YWlsCisKK3RlbXBsYXRlIDxjbGFzcyBIVCwgY2xhc3MgVFQ+CitzdHJ1Y3QgY29ucyB7CisKKyAgdHlwZWRlZiBIVCBoZWFkX3R5cGU7CisgIHR5cGVkZWYgVFQgdGFpbF90eXBlOworCisgIHR5cGVkZWYgdHlwZW5hbWUKKyAgICBkZXRhaWw6OndyYXBfbm9uX3N0b3JlYWJsZV90eXBlPGhlYWRfdHlwZT46OnR5cGUgc3RvcmVkX2hlYWRfdHlwZTsKKworICBzdG9yZWRfaGVhZF90eXBlIGhlYWQ7CisgIHRhaWxfdHlwZSB0YWlsOworCisgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8c3RvcmVkX2hlYWRfdHlwZT46Om5vbl9jb25zdF90eXBlCisgIGdldF9oZWFkKCkgeyByZXR1cm4gaGVhZDsgfQorCisgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8dGFpbF90eXBlPjo6bm9uX2NvbnN0X3R5cGUKKyAgZ2V0X3RhaWwoKSB7IHJldHVybiB0YWlsOyB9CisKKyAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxzdG9yZWRfaGVhZF90eXBlPjo6Y29uc3RfdHlwZQorICBnZXRfaGVhZCgpIGNvbnN0IHsgcmV0dXJuIGhlYWQ7IH0KKworICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPHRhaWxfdHlwZT46OmNvbnN0X3R5cGUKKyAgZ2V0X3RhaWwoKSBjb25zdCB7IHJldHVybiB0YWlsOyB9CisKKyAgY29ucygpIDogaGVhZCgpLCB0YWlsKCkge30KKyAgLy8gIGNvbnMoKSA6IGhlYWQoZGV0YWlsOjpkZWZhdWx0X2FyZzxIVD46OmYoKSksIHRhaWwoKSB7fQorCisgIC8vIHRoZSBhcmd1bWVudCBmb3IgaGVhZCBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkLCBidXQgaXQgcHJldmVudHMKKyAgLy8gYXJyYXkgdHlwZSBlbGVtZW50cy4gVGhpcyBpcyBnb29kLCBzaW5jZSBhcnJheSB0eXBlIGVsZW1lbnRzCisgIC8vIGNhbm5vdCBiZSBzdXBwb3J0ZWQgcHJvcGVybHkgaW4gYW55IGNhc2UgKG5vIGFzc2lnbm1lbnQsCisgIC8vIGNvcHkgd29ya3Mgb25seSBpZiB0aGUgdGFpbHMgYXJlIGV4YWN0bHkgdGhlIHNhbWUgdHlwZSwgLi4uKQorCisgIGNvbnModHlwZW5hbWUgYWNjZXNzX3RyYWl0czxzdG9yZWRfaGVhZF90eXBlPjo6cGFyYW1ldGVyX3R5cGUgaCwKKyAgICAgICBjb25zdCB0YWlsX3R5cGUmIHQpCisgICAgOiBoZWFkIChoKSwgdGFpbCh0KSB7fQorCisgIHRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDUsCisgICAgICAgICAgICBjbGFzcyBUNiwgY2xhc3MgVDcsIGNsYXNzIFQ4LCBjbGFzcyBUOSwgY2xhc3MgVDEwPgorICBjb25zKCBUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1JiB0NSwKKyAgICAgICAgVDYmIHQ2LCBUNyYgdDcsIFQ4JiB0OCwgVDkmIHQ5LCBUMTAmIHQxMCApCisgICAgOiBoZWFkICh0MSksCisgICAgICB0YWlsICh0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCwgZGV0YWlsOjpjbnVsbCgpKQorICAgICAge30KKworICB0ZW1wbGF0ZSA8Y2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDUsCisgICAgICAgICAgICBjbGFzcyBUNiwgY2xhc3MgVDcsIGNsYXNzIFQ4LCBjbGFzcyBUOSwgY2xhc3MgVDEwPgorICBjb25zKCBjb25zdCBudWxsX3R5cGUmIC8qdDEqLywgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUmIHQ1LAorICAgICAgICBUNiYgdDYsIFQ3JiB0NywgVDgmIHQ4LCBUOSYgdDksIFQxMCYgdDEwICkKKyAgICA6IGhlYWQgKCksCisgICAgICB0YWlsICh0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCwgZGV0YWlsOjpjbnVsbCgpKQorICAgICAge30KKworCisgIHRlbXBsYXRlIDxjbGFzcyBIVDIsIGNsYXNzIFRUMj4KKyAgY29ucyggY29uc3QgY29uczxIVDIsIFRUMj4mIHUgKSA6IGhlYWQodS5oZWFkKSwgdGFpbCh1LnRhaWwpIHt9CisKKyAgdGVtcGxhdGUgPGNsYXNzIEhUMiwgY2xhc3MgVFQyPgorICBjb25zJiBvcGVyYXRvcj0oIGNvbnN0IGNvbnM8SFQyLCBUVDI+JiB1ICkgeworICAgIGhlYWQ9dS5oZWFkOyB0YWlsPXUudGFpbDsgcmV0dXJuICp0aGlzOworICB9CisKKyAgLy8gbXVzdCBkZWZpbmUgYXNzaWdubWVudCBvcGVyYXRvciBleHBsaWNpdGx5LCBpbXBsaWNpdCB2ZXJzaW9uIGlzCisgIC8vIGlsbGZvcm1lZCBpZiBIVCBpcyBhIHJlZmVyZW5jZSAoMTIuOC4gKDEyKSkKKyAgY29ucyYgb3BlcmF0b3I9KGNvbnN0IGNvbnMmIHUpIHsKKyAgICBoZWFkID0gdS5oZWFkOyB0YWlsID0gdS50YWlsOyAgcmV0dXJuICp0aGlzOworICB9CisKKyAgdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj4KKyAgY29ucyYgb3BlcmF0b3I9KCBjb25zdCBzdGQ6OnBhaXI8VDEsIFQyPiYgdSApIHsKKyAgICBCT09TVF9TVEFUSUNfQVNTRVJUKGxlbmd0aDxjb25zPjo6dmFsdWUgPT0gMik7IC8vIGNoZWNrIGxlbmd0aCA9IDIKKyAgICBoZWFkID0gdS5maXJzdDsgdGFpbC5oZWFkID0gdS5zZWNvbmQ7IHJldHVybiAqdGhpczsKKyAgfQorCisgIC8vIGdldCBtZW1iZXIgZnVuY3Rpb25zIChub24tY29uc3QgYW5kIGNvbnN0KQorICB0ZW1wbGF0ZSA8aW50IE4+CisgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8CisgICAgICAgICAgICAgdHlwZW5hbWUgZWxlbWVudDxOLCBjb25zPEhULCBUVD4gPjo6dHlwZQorICAgICAgICAgICA+Ojpub25fY29uc3RfdHlwZQorICBnZXQoKSB7CisgICAgcmV0dXJuIG5kbmJvb3N0Ojp0dXBsZXM6OmdldDxOPigqdGhpcyk7IC8vIGRlbGVnYXRlIHRvIG5vbi1tZW1iZXIgZ2V0CisgIH0KKworICB0ZW1wbGF0ZSA8aW50IE4+CisgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8CisgICAgICAgICAgICAgdHlwZW5hbWUgZWxlbWVudDxOLCBjb25zPEhULCBUVD4gPjo6dHlwZQorICAgICAgICAgICA+Ojpjb25zdF90eXBlCisgIGdldCgpIGNvbnN0IHsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnR1cGxlczo6Z2V0PE4+KCp0aGlzKTsgLy8gZGVsZWdhdGUgdG8gbm9uLW1lbWJlciBnZXQKKyAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIEhUPgorc3RydWN0IGNvbnM8SFQsIG51bGxfdHlwZT4geworCisgIHR5cGVkZWYgSFQgaGVhZF90eXBlOworICB0eXBlZGVmIG51bGxfdHlwZSB0YWlsX3R5cGU7CisgIHR5cGVkZWYgY29uczxIVCwgbnVsbF90eXBlPiBzZWxmX3R5cGU7CisKKyAgdHlwZWRlZiB0eXBlbmFtZQorICAgIGRldGFpbDo6d3JhcF9ub25fc3RvcmVhYmxlX3R5cGU8aGVhZF90eXBlPjo6dHlwZSBzdG9yZWRfaGVhZF90eXBlOworICBzdG9yZWRfaGVhZF90eXBlIGhlYWQ7CisKKyAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxzdG9yZWRfaGVhZF90eXBlPjo6bm9uX2NvbnN0X3R5cGUKKyAgZ2V0X2hlYWQoKSB7IHJldHVybiBoZWFkOyB9CisKKyAgbnVsbF90eXBlIGdldF90YWlsKCkgeyByZXR1cm4gbnVsbF90eXBlKCk7IH0KKworICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPHN0b3JlZF9oZWFkX3R5cGU+Ojpjb25zdF90eXBlCisgIGdldF9oZWFkKCkgY29uc3QgeyByZXR1cm4gaGVhZDsgfQorCisgIGNvbnN0IG51bGxfdHlwZSBnZXRfdGFpbCgpIGNvbnN0IHsgcmV0dXJuIG51bGxfdHlwZSgpOyB9CisKKyAgLy8gIGNvbnMoKSA6IGhlYWQoZGV0YWlsOjpkZWZhdWx0X2FyZzxIVD46OmYoKSkge30KKyAgY29ucygpIDogaGVhZCgpIHt9CisKKyAgY29ucyh0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPHN0b3JlZF9oZWFkX3R5cGU+OjpwYXJhbWV0ZXJfdHlwZSBoLAorICAgICAgIGNvbnN0IG51bGxfdHlwZSYgPSBudWxsX3R5cGUoKSkKKyAgICA6IGhlYWQgKGgpIHt9CisKKyAgdGVtcGxhdGU8Y2xhc3MgVDE+CisgIGNvbnMoVDEmIHQxLCBjb25zdCBudWxsX3R5cGUmLCBjb25zdCBudWxsX3R5cGUmLCBjb25zdCBudWxsX3R5cGUmLAorICAgICAgIGNvbnN0IG51bGxfdHlwZSYsIGNvbnN0IG51bGxfdHlwZSYsIGNvbnN0IG51bGxfdHlwZSYsCisgICAgICAgY29uc3QgbnVsbF90eXBlJiwgY29uc3QgbnVsbF90eXBlJiwgY29uc3QgbnVsbF90eXBlJikKKyAgOiBoZWFkICh0MSkge30KKworICBjb25zKGNvbnN0IG51bGxfdHlwZSYsCisgICAgICAgY29uc3QgbnVsbF90eXBlJiwgY29uc3QgbnVsbF90eXBlJiwgY29uc3QgbnVsbF90eXBlJiwKKyAgICAgICBjb25zdCBudWxsX3R5cGUmLCBjb25zdCBudWxsX3R5cGUmLCBjb25zdCBudWxsX3R5cGUmLAorICAgICAgIGNvbnN0IG51bGxfdHlwZSYsIGNvbnN0IG51bGxfdHlwZSYsIGNvbnN0IG51bGxfdHlwZSYpCisgIDogaGVhZCAoKSB7fQorCisgIHRlbXBsYXRlIDxjbGFzcyBIVDI+CisgIGNvbnMoIGNvbnN0IGNvbnM8SFQyLCBudWxsX3R5cGU+JiB1ICkgOiBoZWFkKHUuaGVhZCkge30KKworICB0ZW1wbGF0ZSA8Y2xhc3MgSFQyPgorICBjb25zJiBvcGVyYXRvcj0oY29uc3QgY29uczxIVDIsIG51bGxfdHlwZT4mIHUgKQorICB7IGhlYWQgPSB1LmhlYWQ7IHJldHVybiAqdGhpczsgfQorCisgIC8vIG11c3QgZGVmaW5lIGFzc2lnbm1lbnQgb3BlcmF0b3IgZXhwbGljaXRlbHksIGltcGxpY2l0IHZlcnNpb24KKyAgLy8gaXMgaWxsZm9ybWVkIGlmIEhUIGlzIGEgcmVmZXJlbmNlCisgIGNvbnMmIG9wZXJhdG9yPShjb25zdCBjb25zJiB1KSB7IGhlYWQgPSB1LmhlYWQ7IHJldHVybiAqdGhpczsgfQorCisgIHRlbXBsYXRlIDxpbnQgTj4KKyAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czwKKyAgICAgICAgICAgICB0eXBlbmFtZSBlbGVtZW50PE4sIHNlbGZfdHlwZT46OnR5cGUKKyAgICAgICAgICAgID46Om5vbl9jb25zdF90eXBlCisgIGdldChCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRShpbnQsIE4pKSB7CisgICAgcmV0dXJuIG5kbmJvb3N0Ojp0dXBsZXM6OmdldDxOPigqdGhpcyk7CisgIH0KKworICB0ZW1wbGF0ZSA8aW50IE4+CisgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8CisgICAgICAgICAgICAgdHlwZW5hbWUgZWxlbWVudDxOLCBzZWxmX3R5cGU+Ojp0eXBlCisgICAgICAgICAgID46OmNvbnN0X3R5cGUKKyAgZ2V0KEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFKGludCwgTikpIGNvbnN0IHsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnR1cGxlczo6Z2V0PE4+KCp0aGlzKTsKKyAgfQorCit9OworCisvLyB0ZW1wbGF0ZXMgZm9yIGZpbmRpbmcgb3V0IHRoZSBsZW5ndGggb2YgdGhlIHR1cGxlIC0tLS0tLS0tLS0tLS0tLS0tLS0KKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBsZW5ndGggIHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAxICsgbGVuZ3RoPHR5cGVuYW1lIFQ6OnRhaWxfdHlwZT46OnZhbHVlKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZW5ndGg8dHVwbGU8PiA+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZW5ndGg8dHVwbGU8PiBjb25zdD4geworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LCB2YWx1ZSA9IDApOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGxlbmd0aDxudWxsX3R5cGU+IHsKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBsZW5ndGg8bnVsbF90eXBlIGNvbnN0PiB7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gMCk7Cit9OworCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gVHVwbGUgdG8gY29ucyBtYXBwZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3RlbXBsYXRlIDxjbGFzcyBUMCwgY2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQsCisgICAgICAgICAgY2xhc3MgVDUsIGNsYXNzIFQ2LCBjbGFzcyBUNywgY2xhc3MgVDgsIGNsYXNzIFQ5Pgorc3RydWN0IG1hcF90dXBsZV90b19jb25zCit7CisgIHR5cGVkZWYgY29uczxUMCwKKyAgICAgICAgICAgICAgIHR5cGVuYW1lIG1hcF90dXBsZV90b19jb25zPFQxLCBUMiwgVDMsIFQ0LCBUNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQ2LCBUNywgVDgsIFQ5LCBudWxsX3R5cGU+Ojp0eXBlCisgICAgICAgICAgICAgID4gdHlwZTsKK307CisKKy8vIFRoZSBlbXB0eSB0dXBsZSBpcyBhIG51bGxfdHlwZQordGVtcGxhdGUgPD4KK3N0cnVjdCBtYXBfdHVwbGVfdG9fY29uczxudWxsX3R5cGUsIG51bGxfdHlwZSwgbnVsbF90eXBlLCBudWxsX3R5cGUsIG51bGxfdHlwZSwgbnVsbF90eXBlLCBudWxsX3R5cGUsIG51bGxfdHlwZSwgbnVsbF90eXBlLCBudWxsX3R5cGU+Cit7CisgIHR5cGVkZWYgbnVsbF90eXBlIHR5cGU7Cit9OworCit9IC8vIGVuZCBkZXRhaWwKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gLS0gdHVwbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit0ZW1wbGF0ZSA8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0LAorICAgICAgICAgIGNsYXNzIFQ1LCBjbGFzcyBUNiwgY2xhc3MgVDcsIGNsYXNzIFQ4LCBjbGFzcyBUOT4KKworY2xhc3MgdHVwbGUgOgorICBwdWJsaWMgZGV0YWlsOjptYXBfdHVwbGVfdG9fY29uczxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT46OnR5cGUKK3sKK3B1YmxpYzoKKyAgdHlwZWRlZiB0eXBlbmFtZQorICAgIGRldGFpbDo6bWFwX3R1cGxlX3RvX2NvbnM8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+Ojp0eXBlIGluaGVyaXRlZDsKKyAgdHlwZWRlZiB0eXBlbmFtZSBpbmhlcml0ZWQ6OmhlYWRfdHlwZSBoZWFkX3R5cGU7CisgIHR5cGVkZWYgdHlwZW5hbWUgaW5oZXJpdGVkOjp0YWlsX3R5cGUgdGFpbF90eXBlOworCisKKy8vIGFjY2Vzc190cmFpdHM8VD46OnBhcmFtZXRlcl90eXBlIHRha2VzIG5vbi1yZWZlcmVuY2UgdHlwZXMgYXMgY29uc3QgVCYKKyAgdHVwbGUoKSB7fQorCisgIHR1cGxlKHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDA+OjpwYXJhbWV0ZXJfdHlwZSB0MCkKKyAgICA6IGluaGVyaXRlZCh0MCwgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwKKyAgICAgICAgICAgICAgICBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpLAorICAgICAgICAgICAgICAgIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCkpIHt9CisKKyAgdHVwbGUodHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMD46OnBhcmFtZXRlcl90eXBlIHQwLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQxPjo6cGFyYW1ldGVyX3R5cGUgdDEpCisgICAgOiBpbmhlcml0ZWQodDAsIHQxLCBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwKKyAgICAgICAgICAgICAgICBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpLAorICAgICAgICAgICAgICAgIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCkpIHt9CisKKyAgdHVwbGUodHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMD46OnBhcmFtZXRlcl90eXBlIHQwLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQxPjo6cGFyYW1ldGVyX3R5cGUgdDEsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDI+OjpwYXJhbWV0ZXJfdHlwZSB0MikKKyAgICA6IGluaGVyaXRlZCh0MCwgdDEsIHQyLCBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwKKyAgICAgICAgICAgICAgICBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpLAorICAgICAgICAgICAgICAgIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpKSB7fQorCisgIHR1cGxlKHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDA+OjpwYXJhbWV0ZXJfdHlwZSB0MCwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMT46OnBhcmFtZXRlcl90eXBlIHQxLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQyPjo6cGFyYW1ldGVyX3R5cGUgdDIsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDM+OjpwYXJhbWV0ZXJfdHlwZSB0MykKKyAgICA6IGluaGVyaXRlZCh0MCwgdDEsIHQyLCB0MywgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCksCisgICAgICAgICAgICAgICAgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwKKyAgICAgICAgICAgICAgICBkZXRhaWw6OmNudWxsKCkpIHt9CisKKyAgdHVwbGUodHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMD46OnBhcmFtZXRlcl90eXBlIHQwLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQxPjo6cGFyYW1ldGVyX3R5cGUgdDEsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDI+OjpwYXJhbWV0ZXJfdHlwZSB0MiwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMz46OnBhcmFtZXRlcl90eXBlIHQzLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ0Pjo6cGFyYW1ldGVyX3R5cGUgdDQpCisgICAgOiBpbmhlcml0ZWQodDAsIHQxLCB0MiwgdDMsIHQ0LCBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwKKyAgICAgICAgICAgICAgICBkZXRhaWw6OmNudWxsKCksIGRldGFpbDo6Y251bGwoKSwgZGV0YWlsOjpjbnVsbCgpKSB7fQorCisgIHR1cGxlKHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDA+OjpwYXJhbWV0ZXJfdHlwZSB0MCwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMT46OnBhcmFtZXRlcl90eXBlIHQxLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQyPjo6cGFyYW1ldGVyX3R5cGUgdDIsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDM+OjpwYXJhbWV0ZXJfdHlwZSB0MywKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUND46OnBhcmFtZXRlcl90eXBlIHQ0LAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ1Pjo6cGFyYW1ldGVyX3R5cGUgdDUpCisgICAgOiBpbmhlcml0ZWQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCksCisgICAgICAgICAgICAgICAgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCkpIHt9CisKKyAgdHVwbGUodHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMD46OnBhcmFtZXRlcl90eXBlIHQwLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQxPjo6cGFyYW1ldGVyX3R5cGUgdDEsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDI+OjpwYXJhbWV0ZXJfdHlwZSB0MiwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMz46OnBhcmFtZXRlcl90eXBlIHQzLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ0Pjo6cGFyYW1ldGVyX3R5cGUgdDQsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDU+OjpwYXJhbWV0ZXJfdHlwZSB0NSwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUNj46OnBhcmFtZXRlcl90eXBlIHQ2KQorICAgIDogaW5oZXJpdGVkKHQwLCB0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCBkZXRhaWw6OmNudWxsKCksCisgICAgICAgICAgICAgICAgZGV0YWlsOjpjbnVsbCgpLCBkZXRhaWw6OmNudWxsKCkpIHt9CisKKyAgdHVwbGUodHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMD46OnBhcmFtZXRlcl90eXBlIHQwLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQxPjo6cGFyYW1ldGVyX3R5cGUgdDEsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDI+OjpwYXJhbWV0ZXJfdHlwZSB0MiwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMz46OnBhcmFtZXRlcl90eXBlIHQzLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ0Pjo6cGFyYW1ldGVyX3R5cGUgdDQsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDU+OjpwYXJhbWV0ZXJfdHlwZSB0NSwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUNj46OnBhcmFtZXRlcl90eXBlIHQ2LAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ3Pjo6cGFyYW1ldGVyX3R5cGUgdDcpCisgICAgOiBpbmhlcml0ZWQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCBkZXRhaWw6OmNudWxsKCksCisgICAgICAgICAgICAgICAgZGV0YWlsOjpjbnVsbCgpKSB7fQorCisgIHR1cGxlKHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDA+OjpwYXJhbWV0ZXJfdHlwZSB0MCwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMT46OnBhcmFtZXRlcl90eXBlIHQxLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQyPjo6cGFyYW1ldGVyX3R5cGUgdDIsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDM+OjpwYXJhbWV0ZXJfdHlwZSB0MywKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUND46OnBhcmFtZXRlcl90eXBlIHQ0LAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ1Pjo6cGFyYW1ldGVyX3R5cGUgdDUsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDY+OjpwYXJhbWV0ZXJfdHlwZSB0NiwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUNz46OnBhcmFtZXRlcl90eXBlIHQ3LAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ4Pjo6cGFyYW1ldGVyX3R5cGUgdDgpCisgICAgOiBpbmhlcml0ZWQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgZGV0YWlsOjpjbnVsbCgpKSB7fQorCisgIHR1cGxlKHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDA+OjpwYXJhbWV0ZXJfdHlwZSB0MCwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUMT46OnBhcmFtZXRlcl90eXBlIHQxLAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQyPjo6cGFyYW1ldGVyX3R5cGUgdDIsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDM+OjpwYXJhbWV0ZXJfdHlwZSB0MywKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUND46OnBhcmFtZXRlcl90eXBlIHQ0LAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ1Pjo6cGFyYW1ldGVyX3R5cGUgdDUsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDY+OjpwYXJhbWV0ZXJfdHlwZSB0NiwKKyAgICAgICAgdHlwZW5hbWUgYWNjZXNzX3RyYWl0czxUNz46OnBhcmFtZXRlcl90eXBlIHQ3LAorICAgICAgICB0eXBlbmFtZSBhY2Nlc3NfdHJhaXRzPFQ4Pjo6cGFyYW1ldGVyX3R5cGUgdDgsCisgICAgICAgIHR5cGVuYW1lIGFjY2Vzc190cmFpdHM8VDk+OjpwYXJhbWV0ZXJfdHlwZSB0OSkKKyAgICA6IGluaGVyaXRlZCh0MCwgdDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4LCB0OSkge30KKworCisgIHRlbXBsYXRlPGNsYXNzIFUxLCBjbGFzcyBVMj4KKyAgdHVwbGUoY29uc3QgY29uczxVMSwgVTI+JiBwKSA6IGluaGVyaXRlZChwKSB7fQorCisgIHRlbXBsYXRlIDxjbGFzcyBVMSwgY2xhc3MgVTI+CisgIHR1cGxlJiBvcGVyYXRvcj0oY29uc3QgY29uczxVMSwgVTI+JiBrKSB7CisgICAgaW5oZXJpdGVkOjpvcGVyYXRvcj0oayk7CisgICAgcmV0dXJuICp0aGlzOworICB9CisKKyAgdGVtcGxhdGUgPGNsYXNzIFUxLCBjbGFzcyBVMj4KKyAgdHVwbGUmIG9wZXJhdG9yPShjb25zdCBzdGQ6OnBhaXI8VTEsIFUyPiYgaykgeworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQobGVuZ3RoPHR1cGxlPjo6dmFsdWUgPT0gMik7Ly8gY2hlY2tfbGVuZ3RoID0gMgorICAgIHRoaXMtPmhlYWQgPSBrLmZpcnN0OworICAgIHRoaXMtPnRhaWwuaGVhZCA9IGsuc2Vjb25kOworICAgIHJldHVybiAqdGhpczsKKyAgfQorCit9OworCisvLyBUaGUgZW1wdHkgdHVwbGUKK3RlbXBsYXRlIDw+CitjbGFzcyB0dXBsZTxudWxsX3R5cGUsIG51bGxfdHlwZSwgbnVsbF90eXBlLCBudWxsX3R5cGUsIG51bGxfdHlwZSwgbnVsbF90eXBlLCBudWxsX3R5cGUsIG51bGxfdHlwZSwgbnVsbF90eXBlLCBudWxsX3R5cGU+ICA6CisgIHB1YmxpYyBudWxsX3R5cGUKK3sKK3B1YmxpYzoKKyAgdHlwZWRlZiBudWxsX3R5cGUgaW5oZXJpdGVkOworfTsKKworCisvLyBTd2FsbG93cyBhbnkgYXNzaWdubWVudCAgIChieSBEb3VnIEdyZWdvcikKK25hbWVzcGFjZSBkZXRhaWwgeworCitzdHJ1Y3Qgc3dhbGxvd19hc3NpZ247Cit0eXBlZGVmIHZvaWQgKGRldGFpbDo6c3dhbGxvd19hc3NpZ246OippZ25vcmVfdCkoKTsKK3N0cnVjdCBzd2FsbG93X2Fzc2lnbiB7CisgIHN3YWxsb3dfYXNzaWduKGlnbm9yZV90KCopKGlnbm9yZV90KSkge30KKyAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgc3dhbGxvd19hc3NpZ24gY29uc3QmIG9wZXJhdG9yPShjb25zdCBUJikgY29uc3QgeworICAgIHJldHVybiAqdGhpczsKKyAgfQorfTsKKworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gImlnbm9yZSIgYWxsb3dzIHR1cGxlIHBvc2l0aW9ucyB0byBiZSBpZ25vcmVkIHdoZW4gdXNpbmcgInRpZSIuCitpbmxpbmUgZGV0YWlsOjppZ25vcmVfdCBpZ25vcmUoZGV0YWlsOjppZ25vcmVfdCkgeyByZXR1cm4gMDsgfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRoZSBjYWxsX3RyYWl0cyBmb3IgbWFrZV90dXBsZQorLy8gSG9ub3VycyB0aGUgcmVmZXJlbmNlX3dyYXBwZXIgY2xhc3MuCisKKy8vIE11c3QgYmUgaW5zdGFudGlhdGVkIHdpdGggcGxhaW4gb3IgY29uc3QgcGxhaW4gdHlwZXMgKG5vdCB3aXRoIHJlZmVyZW5jZXMpCisKKy8vIGZyb20gdGVtcGxhdGU8Y2xhc3MgVD4gZm9vKGNvbnN0IFQmIHQpIDogbWFrZV90dXBsZV90cmFpdHM8Y29uc3QgVD46OnR5cGUKKy8vIGZyb20gdGVtcGxhdGU8Y2xhc3MgVD4gZm9vKFQmIHQpIDogbWFrZV90dXBsZV90cmFpdHM8VD46OnR5cGUKKworLy8gQ29udmVyc2lvbnM6CisvLyBUIC0+IFQsCisvLyByZWZlcmVuY2VzIC0+IGNvbXBpbGVfdGltZV9lcnJvcgorLy8gcmVmZXJlbmNlX3dyYXBwZXI8VD4gLT4gVCYKKy8vIGNvbnN0IHJlZmVyZW5jZV93cmFwcGVyPFQ+IC0+IFQmCisvLyBhcnJheSAtPiBjb25zdCByZWYgYXJyYXkKKworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IG1ha2VfdHVwbGVfdHJhaXRzIHsKKyAgdHlwZWRlZiBUIHR5cGU7CisKKyAgLy8gY29tbWVudGVkIGF3YXksIHNlZSBiZWxvdyAgKEpKKQorICAvLyAgdHlwZWRlZiB0eXBlbmFtZSBJRjwKKyAgLy8gIG5kbmJvb3N0Ojppc19mdW5jdGlvbjxUPjo6dmFsdWUsCisgIC8vICBUJiwKKyAgLy8gIFQ+OjpSRVQgdHlwZTsKKworfTsKKworLy8gVGhlIGlzX2Z1bmN0aW9uIHRlc3Qgd2FzIHRoZXJlIG9yaWdpbmFsbHkgZm9yIHBsYWluIGZ1bmN0aW9uIHR5cGVzLAorLy8gd2hpY2ggY2FuJ3QgYmUgc3RvcmVkIGFzIHN1Y2ggKHdlIG11c3QgZWl0aGVyIHN0b3JlIHRoZW0gYXMgcmVmZXJlbmNlcyBvcgorLy8gcG9pbnRlcnMpLiBTdWNoIGEgdHlwZSBjb3VsZCBiZSBmb3JtZWQgaWYgbWFrZV90dXBsZSB3YXMgY2FsbGVkIHdpdGggYQorLy8gcmVmZXJlbmNlIHRvIGEgZnVuY3Rpb24uCisvLyBCdXQgdGhpcyB3b3VsZCBtZWFuIHRoYXQgYSBjb25zdCBxdWFsaWZpZWQgZnVuY3Rpb24gdHlwZSB3YXMgZm9ybWVkIGluCisvLyB0aGUgbWFrZV90dXBsZSBmdW5jdGlvbiBhbmQgaGVuY2UgbWFrZV90dXBsZSBjYW4ndCB0YWtlIGEgZnVuY3Rpb24KKy8vIHJlZmVyZW5jZSBhcyBhIHBhcmFtZXRlciwgYW5kIHRodXMgVCBjYW4ndCBiZSBhIGZ1bmN0aW9uIHR5cGUuCisvLyBTbyBpc19mdW5jdGlvbiB0ZXN0IHdhcyByZW1vdmVkLgorLy8gKDE0LjguMy4gc2F5cyB0aGF0IHR5cGUgZGVkdWN0aW9uIGZhaWxzIGlmIGEgY3YtcXVhbGlmaWVkIGZ1bmN0aW9uIHR5cGUKKy8vIGlzIGNyZWF0ZWQuIChJdCBvbmx5IGFwcGxpZXMgZm9yIHRoZSBjYXNlIG9mIGV4cGxpY2l0bHkgc3BlY2lmeWluZyB0ZW1wbGF0ZQorLy8gYXJncywgdGhvdWdoPykpIChKSikKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBtYWtlX3R1cGxlX3RyYWl0czxUJj4geworICB0eXBlZGVmIHR5cGVuYW1lCisgICAgIGRldGFpbDo6Z2VuZXJhdGVfZXJyb3I8VCY+OjoKKyAgICAgICBkb19ub3RfdXNlX3dpdGhfcmVmZXJlbmNlX3R5cGUgZXJyb3I7Cit9OworCisvLyBBcnJheXMgY2FuJ3QgYmUgc3RvcmVkIGFzIHBsYWluIHR5cGVzOyBjb252ZXJ0IHRoZW0gdG8gcmVmZXJlbmNlcy4KKy8vIEFsbCBhcnJheXMgYXJlIGNvbnZlcnRlZCB0byBjb25zdC4gVGhpcyBpcyBiZWNhdXNlIG1ha2VfdHVwbGUgdGFrZXMgaXRzCisvLyBwYXJhbWV0ZXJzIGFzIGNvbnN0IFQmIGFuZCB0aHVzIHRoZSBrbm93bGVkZ2Ugb2YgdGhlIHBvdGVudGlhbAorLy8gbm9uLWNvbnN0bmVzcyBvZiBhY3R1YWwgYXJndW1lbnQgaXMgbG9zdC4KK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuPiAgc3RydWN0IG1ha2VfdHVwbGVfdHJhaXRzIDxUW25dPiB7CisgIHR5cGVkZWYgY29uc3QgVCAoJnR5cGUpW25dOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgaW50IG4+CitzdHJ1Y3QgbWFrZV90dXBsZV90cmFpdHM8Y29uc3QgVFtuXT4geworICB0eXBlZGVmIGNvbnN0IFQgKCZ0eXBlKVtuXTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGludCBuPiAgc3RydWN0IG1ha2VfdHVwbGVfdHJhaXRzPHZvbGF0aWxlIFRbbl0+IHsKKyAgdHlwZWRlZiBjb25zdCB2b2xhdGlsZSBUICgmdHlwZSlbbl07Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBULCBpbnQgbj4KK3N0cnVjdCBtYWtlX3R1cGxlX3RyYWl0czxjb25zdCB2b2xhdGlsZSBUW25dPiB7CisgIHR5cGVkZWYgY29uc3Qgdm9sYXRpbGUgVCAoJnR5cGUpW25dOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBtYWtlX3R1cGxlX3RyYWl0czxyZWZlcmVuY2Vfd3JhcHBlcjxUPiA+eworICB0eXBlZGVmIFQmIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IG1ha2VfdHVwbGVfdHJhaXRzPGNvbnN0IHJlZmVyZW5jZV93cmFwcGVyPFQ+ID57CisgIHR5cGVkZWYgVCYgdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYWtlX3R1cGxlX3RyYWl0czxkZXRhaWw6Omlnbm9yZV90KGRldGFpbDo6aWdub3JlX3QpPiB7CisgIHR5cGVkZWYgZGV0YWlsOjpzd2FsbG93X2Fzc2lnbiB0eXBlOworfTsKKworCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBhIGhlbHBlciB0cmFpdHMgdG8gbWFrZSB0aGUgbWFrZV90dXBsZSBmdW5jdGlvbnMgc2hvcnRlciAoVmVzYSBLYXJ2b25lbidzCisvLyBzdWdnZXN0aW9uKQordGVtcGxhdGUgPAorICBjbGFzcyBUMCA9IG51bGxfdHlwZSwgY2xhc3MgVDEgPSBudWxsX3R5cGUsIGNsYXNzIFQyID0gbnVsbF90eXBlLAorICBjbGFzcyBUMyA9IG51bGxfdHlwZSwgY2xhc3MgVDQgPSBudWxsX3R5cGUsIGNsYXNzIFQ1ID0gbnVsbF90eXBlLAorICBjbGFzcyBUNiA9IG51bGxfdHlwZSwgY2xhc3MgVDcgPSBudWxsX3R5cGUsIGNsYXNzIFQ4ID0gbnVsbF90eXBlLAorICBjbGFzcyBUOSA9IG51bGxfdHlwZQorPgorc3RydWN0IG1ha2VfdHVwbGVfbWFwcGVyIHsKKyAgdHlwZWRlZgorICAgIHR1cGxlPHR5cGVuYW1lIG1ha2VfdHVwbGVfdHJhaXRzPFQwPjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSBtYWtlX3R1cGxlX3RyYWl0czxUMT46OnR5cGUsCisgICAgICAgICAgdHlwZW5hbWUgbWFrZV90dXBsZV90cmFpdHM8VDI+Ojp0eXBlLAorICAgICAgICAgIHR5cGVuYW1lIG1ha2VfdHVwbGVfdHJhaXRzPFQzPjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSBtYWtlX3R1cGxlX3RyYWl0czxUND46OnR5cGUsCisgICAgICAgICAgdHlwZW5hbWUgbWFrZV90dXBsZV90cmFpdHM8VDU+Ojp0eXBlLAorICAgICAgICAgIHR5cGVuYW1lIG1ha2VfdHVwbGVfdHJhaXRzPFQ2Pjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSBtYWtlX3R1cGxlX3RyYWl0czxUNz46OnR5cGUsCisgICAgICAgICAgdHlwZW5hbWUgbWFrZV90dXBsZV90cmFpdHM8VDg+Ojp0eXBlLAorICAgICAgICAgIHR5cGVuYW1lIG1ha2VfdHVwbGVfdHJhaXRzPFQ5Pjo6dHlwZT4gdHlwZTsKK307CisKK30gLy8gZW5kIGRldGFpbAorCisvLyAtbWFrZV90dXBsZSBmdW5jdGlvbiB0ZW1wbGF0ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2lubGluZSB0dXBsZTw+IG1ha2VfdHVwbGUoKSB7CisgIHJldHVybiB0dXBsZTw+KCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwPgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDA+Ojp0eXBlCittYWtlX3R1cGxlKGNvbnN0IFQwJiB0MCkgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDA+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxPgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxPjo6dHlwZQorbWFrZV90dXBsZShjb25zdCBUMCYgdDAsIGNvbnN0IFQxJiB0MSkgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxPjo6dHlwZSB0OworICByZXR1cm4gdCh0MCwgdDEpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUMCwgY2xhc3MgVDEsIGNsYXNzIFQyPgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxLCBUMj46OnR5cGUKK21ha2VfdHVwbGUoY29uc3QgVDAmIHQwLCBjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MikgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxLCBUMj46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0Mik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzPgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxLCBUMiwgVDM+Ojp0eXBlCittYWtlX3R1cGxlKGNvbnN0IFQwJiB0MCwgY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzJiB0MykgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxLCBUMiwgVDM+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwLCB0MSwgdDIsIHQzKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0PgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXI8VDAsIFQxLCBUMiwgVDMsIFQ0Pjo6dHlwZQorbWFrZV90dXBsZShjb25zdCBUMCYgdDAsIGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyYgdDMsCisgICAgICAgICAgICAgICAgICBjb25zdCBUNCYgdDQpIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6Om1ha2VfdHVwbGVfbWFwcGVyPFQwLCBUMSwgVDIsIFQzLCBUND46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0MiwgdDMsIHQ0KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0LCBjbGFzcyBUNT4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6Om1ha2VfdHVwbGVfbWFwcGVyPFQwLCBUMSwgVDIsIFQzLCBUNCwgVDU+Ojp0eXBlCittYWtlX3R1cGxlKGNvbnN0IFQwJiB0MCwgY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzJiB0MywKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1KSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjptYWtlX3R1cGxlX21hcHBlcjxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1Pjo6dHlwZSB0OworICByZXR1cm4gdCh0MCwgdDEsIHQyLCB0MywgdDQsIHQ1KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0LCBjbGFzcyBUNSwgY2xhc3MgVDY+CitpbmxpbmUgdHlwZW5hbWUgZGV0YWlsOjptYWtlX3R1cGxlX21hcHBlcjxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNj46OnR5cGUKK21ha2VfdHVwbGUoY29uc3QgVDAmIHQwLCBjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMmIHQzLAorICAgICAgICAgICAgICAgICAgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NikgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXIKKyAgICAgICAgICAgPFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2Pjo6dHlwZSB0OworICByZXR1cm4gdCh0MCwgdDEsIHQyLCB0MywgdDQsIHQ1LCB0Nik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDUsIGNsYXNzIFQ2LAorICAgICAgICAgY2xhc3MgVDc+CitpbmxpbmUgdHlwZW5hbWUgZGV0YWlsOjptYWtlX3R1cGxlX21hcHBlcjxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+Ojp0eXBlCittYWtlX3R1cGxlKGNvbnN0IFQwJiB0MCwgY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzJiB0MywKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0NykgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6bWFrZV90dXBsZV9tYXBwZXIKKyAgICAgICAgICAgPFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0LCBjbGFzcyBUNSwgY2xhc3MgVDYsCisgICAgICAgICBjbGFzcyBUNywgY2xhc3MgVDg+CitpbmxpbmUgdHlwZW5hbWUgZGV0YWlsOjptYWtlX3R1cGxlX21hcHBlcgorICA8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD46OnR5cGUKK21ha2VfdHVwbGUoY29uc3QgVDAmIHQwLCBjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMmIHQzLAorICAgICAgICAgICAgICAgICAgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NiwgY29uc3QgVDcmIHQ3LAorICAgICAgICAgICAgICAgICAgY29uc3QgVDgmIHQ4KSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjptYWtlX3R1cGxlX21hcHBlcgorICAgICAgICAgICA8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDUsIGNsYXNzIFQ2LAorICAgICAgICAgY2xhc3MgVDcsIGNsYXNzIFQ4LCBjbGFzcyBUOT4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6Om1ha2VfdHVwbGVfbWFwcGVyCisgIDxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT46OnR5cGUKK21ha2VfdHVwbGUoY29uc3QgVDAmIHQwLCBjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMmIHQzLAorICAgICAgICAgICAgICAgICAgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NiwgY29uc3QgVDcmIHQ3LAorICAgICAgICAgICAgICAgICAgY29uc3QgVDgmIHQ4LCBjb25zdCBUOSYgdDkpIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6Om1ha2VfdHVwbGVfbWFwcGVyCisgICAgICAgICAgIDxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDkpOworfQorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCB0aWVfdHJhaXRzIHsKKyAgdHlwZWRlZiBUJiB0eXBlOworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IHRpZV90cmFpdHM8aWdub3JlX3QoaWdub3JlX3QpPiB7CisgIHR5cGVkZWYgc3dhbGxvd19hc3NpZ24gdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCB0aWVfdHJhaXRzPHZvaWQ+IHsKKyAgdHlwZWRlZiBudWxsX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDwKKyAgY2xhc3MgVDAgPSB2b2lkLCBjbGFzcyBUMSA9IHZvaWQsIGNsYXNzIFQyID0gdm9pZCwKKyAgY2xhc3MgVDMgPSB2b2lkLCBjbGFzcyBUNCA9IHZvaWQsIGNsYXNzIFQ1ID0gdm9pZCwKKyAgY2xhc3MgVDYgPSB2b2lkLCBjbGFzcyBUNyA9IHZvaWQsIGNsYXNzIFQ4ID0gdm9pZCwKKyAgY2xhc3MgVDkgPSB2b2lkCis+CitzdHJ1Y3QgdGllX21hcHBlciB7CisgIHR5cGVkZWYKKyAgICB0dXBsZTx0eXBlbmFtZSB0aWVfdHJhaXRzPFQwPjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQxPjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQyPjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQzPjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQ0Pjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQ1Pjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQ2Pjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQ3Pjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQ4Pjo6dHlwZSwKKyAgICAgICAgICB0eXBlbmFtZSB0aWVfdHJhaXRzPFQ5Pjo6dHlwZT4gdHlwZTsKK307CisKK30KKworLy8gVGllIGZ1bmN0aW9uIHRlbXBsYXRlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit0ZW1wbGF0ZTxjbGFzcyBUMD4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXI8VDA+Ojp0eXBlCit0aWUoVDAmIHQwKSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyPFQwPjo6dHlwZSB0OworICByZXR1cm4gdCh0MCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMT4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXI8VDAsIFQxPjo6dHlwZQordGllKFQwJiB0MCwgVDEmIHQxKSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyPFQwLCBUMT46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMj4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXI8VDAsIFQxLCBUMj46OnR5cGUKK3RpZShUMCYgdDAsIFQxJiB0MSwgVDImIHQyKSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyPFQwLCBUMSwgVDI+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwLCB0MSwgdDIpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUMCwgY2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMz4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXI8VDAsIFQxLCBUMiwgVDM+Ojp0eXBlCit0aWUoVDAmIHQwLCBUMSYgdDEsIFQyJiB0MiwgVDMmIHQzKSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyPFQwLCBUMSwgVDIsIFQzPjo6dHlwZSB0OworICByZXR1cm4gdCh0MCwgdDEsIHQyLCB0Myk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUND4KK2lubGluZSB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXI8VDAsIFQxLCBUMiwgVDMsIFQ0Pjo6dHlwZQordGllKFQwJiB0MCwgVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywKKyAgICAgICAgICAgICAgICAgIFQ0JiB0NCkgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6dGllX21hcHBlcjxUMCwgVDEsIFQyLCBUMywgVDQ+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwLCB0MSwgdDIsIHQzLCB0NCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDU+CitpbmxpbmUgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyPFQwLCBUMSwgVDIsIFQzLCBUNCwgVDU+Ojp0eXBlCit0aWUoVDAmIHQwLCBUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLAorICAgICAgICAgICAgICAgICAgVDQmIHQ0LCBUNSYgdDUpIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXI8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNT46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDUsIGNsYXNzIFQ2PgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6dGllX21hcHBlcjxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNj46OnR5cGUKK3RpZShUMCYgdDAsIFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsCisgICAgICAgICAgICAgICAgICBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2KSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyCisgICAgICAgICAgIDxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNj46OnR5cGUgdDsKKyAgcmV0dXJuIHQodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUMCwgY2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQsIGNsYXNzIFQ1LCBjbGFzcyBUNiwKKyAgICAgICAgIGNsYXNzIFQ3PgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6dGllX21hcHBlcjxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+Ojp0eXBlCit0aWUoVDAmIHQwLCBUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLAorICAgICAgICAgICAgICAgICAgVDQmIHQ0LCBUNSYgdDUsIFQ2JiB0NiwgVDcmIHQ3KSB7CisgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyCisgICAgICAgICAgIDxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwLCB0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwgY2xhc3MgVDUsIGNsYXNzIFQ2LAorICAgICAgICAgY2xhc3MgVDcsIGNsYXNzIFQ4PgoraW5saW5lIHR5cGVuYW1lIGRldGFpbDo6dGllX21hcHBlcgorICA8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD46OnR5cGUKK3RpZShUMCYgdDAsIFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsCisgICAgICAgICAgICAgICAgICBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsCisgICAgICAgICAgICAgICAgICBUOCYgdDgpIHsKKyAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OnRpZV9tYXBwZXIKKyAgICAgICAgICAgPFQwLCBUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwLCB0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUMCwgY2xhc3MgVDEsIGNsYXNzIFQyLCBjbGFzcyBUMywgY2xhc3MgVDQsIGNsYXNzIFQ1LCBjbGFzcyBUNiwKKyAgICAgICAgIGNsYXNzIFQ3LCBjbGFzcyBUOCwgY2xhc3MgVDk+CitpbmxpbmUgdHlwZW5hbWUgZGV0YWlsOjp0aWVfbWFwcGVyCisgIDxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT46OnR5cGUKK3RpZShUMCYgdDAsIFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsCisgICAgICAgICAgICAgICAgICBUNCYgdDQsIFQ1JiB0NSwgVDYmIHQ2LCBUNyYgdDcsCisgICAgICAgICAgICAgICAgICBUOCYgdDgsIFQ5JiB0OSkgeworICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6dGllX21hcHBlcgorICAgICAgICAgICA8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+Ojp0eXBlIHQ7CisgIHJldHVybiB0KHQwLCB0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0NywgdDgsIHQ5KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwKKyAgICAgICAgICBjbGFzcyBUNSwgY2xhc3MgVDYsIGNsYXNzIFQ3LCBjbGFzcyBUOCwgY2xhc3MgVDk+Cit2b2lkIHN3YXAodHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiBsaHMsCisgICAgICAgICAgdHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiByaHMpOworaW5saW5lIHZvaWQgc3dhcChudWxsX3R5cGUmLCBudWxsX3R5cGUmKSB7fQordGVtcGxhdGU8Y2xhc3MgSEg+CitpbmxpbmUgdm9pZCBzd2FwKGNvbnM8SEgsIG51bGxfdHlwZT4mIGxocywgY29uczxISCwgbnVsbF90eXBlPiYgcmhzKSB7CisgIDo6bmRuYm9vc3Q6OnN3YXAobGhzLmhlYWQsIHJocy5oZWFkKTsKK30KK3RlbXBsYXRlPGNsYXNzIEhILCBjbGFzcyBUVD4KK2lubGluZSB2b2lkIHN3YXAoY29uczxISCwgVFQ+JiBsaHMsIGNvbnM8SEgsIFRUPiYgcmhzKSB7CisgIDo6bmRuYm9vc3Q6OnN3YXAobGhzLmhlYWQsIHJocy5oZWFkKTsKKyAgOjpuZG5ib29zdDo6dHVwbGVzOjpzd2FwKGxocy50YWlsLCByaHMudGFpbCk7Cit9Cit0ZW1wbGF0ZSA8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0LAorICAgICAgICAgIGNsYXNzIFQ1LCBjbGFzcyBUNiwgY2xhc3MgVDcsIGNsYXNzIFQ4LCBjbGFzcyBUOT4KK2lubGluZSB2b2lkIHN3YXAodHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiBsaHMsCisgICAgICAgICAgdHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiByaHMpIHsKKyAgdHlwZWRlZiB0dXBsZTxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4gdHVwbGVfdHlwZTsKKyAgdHlwZWRlZiB0eXBlbmFtZSB0dXBsZV90eXBlOjppbmhlcml0ZWQgYmFzZTsKKyAgOjpuZG5ib29zdDo6dHVwbGVzOjpzd2FwKHN0YXRpY19jYXN0PGJhc2UmPihsaHMpLCBzdGF0aWNfY2FzdDxiYXNlJj4ocmhzKSk7Cit9CisKK30gLy8gZW5kIG9mIG5hbWVzcGFjZSB0dXBsZXMKK30gLy8gZW5kIG9mIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAvLyBCT09TVF9UVVBMRV9CQVNJQ19IUFAKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R1cGxlL2RldGFpbC90dXBsZV9iYXNpY19ub19wYXJ0aWFsX3NwZWMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWNfbm9fcGFydGlhbF9zcGVjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Zjg5NDE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWNfbm9fcGFydGlhbF9zcGVjLmhwcApAQCAtMCwwICsxLDg2NSBAQAorLy8gLSB0dXBsZV9iYXNpY19ub19wYXJ0aWFsX3NwZWMuaHBwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLyBDb3B5cmlnaHQgKEMpIDIwMDEgRG91Z2xhcyBHcmVnb3IgKGdyZWdvZEBycGkuZWR1KQorLy8gQ29weXJpZ2h0IChDKSAyMDAxIEdhcnkgUG93ZWxsIChnYXJ5LnBvd2VsbEBzaWVycmEuY29tKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBvciBodHRwOi8vbGFtYmRhLmNzLnV0dS5maQorCisvLyBSZXZpc2lvbiBIaXN0b3J5CisvLyAgMTQgMDIgMDEgICAgUmVtb3ZlIGV4dHJhICc7Jy4gQWxzbywgZml4ZWQgMTAtcGFyYW1ldGVyIHRvIG1ha2VfdHVwbGUuIChERykKKy8vICAxMCAwMiAwMSAgICBGaXhlZCAibnVsbF90eXBlIiBjb25zdHJ1Y3RvcnMuCisvLyAgICAgICAgICAgICAgSW1wbGVtZW50ZWQgY29tcGFyaXNvbiBvcGVyYXRvcnMgZ2xvYmFsbHkuCisvLyAgICAgICAgICAgICAgSGlkZSBlbGVtZW50X3R5cGVfcmVmIGFuZCBlbGVtZW50X3R5cGVfY29uc3RfcmVmLgorLy8gICAgICAgICAgICAgIChERykuCisvLyAgMDkgMDIgMDEgICAgRXh0ZW5kZWQgdG8gdHVwbGVzIG9mIGxlbmd0aCAxMC4gQ2hhbmdlZCBjb21wYXJpc29uIGZvcgorLy8gICAgICAgICAgICAgIG9wZXJhdG9yPCgpCisvLyAgICAgICAgICAgICAgdG8gdGhlIHNhbWUgdXNlZCBieSBzdGQ6OnBhaXI8PiwgYWRkZWQgY251bGxfdHlwZSgpIChHUCkKKy8vICAwMyAwMiAwMSAgICBJbml0aWFsIFZlcnNpb24gZnJvbSBvcmlnaW5hbCB0dXBsZS5ocHAgY29kZSBieSBKSi4gKERHKQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX1RVUExFX0JBU0lDX05PX1BBUlRJQUxfU1BFQ19IUFAKKyNkZWZpbmUgQk9PU1RfVFVQTEVfQkFTSUNfTk9fUEFSVElBTF9TUEVDX0hQUAorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3V0aWxpdHkvc3dhcC5ocHAiCisjaW5jbHVkZSA8dXRpbGl0eT4KKworI2lmIGRlZmluZWQgQk9PU1RfTVNWQworI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDUxOCkgLy8gc3RvcmFnZS1jbGFzcyBvciB0eXBlIHNwZWNpZmllcihzKSB1bmV4cGVjdGVkIGhlcmU7IGlnbm9yZWQKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQxODEpIC8vIHF1YWxpZmllciBhcHBsaWVkIHRvIHJlZmVyZW5jZSB0eXBlIGlnbm9yZWQKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQyMjcpIC8vIHF1YWxpZmllciBhcHBsaWVkIHRvIHJlZmVyZW5jZSB0eXBlIGlnbm9yZWQKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR1cGxlcyB7CisKKyAgICAvLyBudWxsX3R5cGUgZGVub3RlcyB0aGUgZW5kIG9mIGEgbGlzdCBidWlsdCB3aXRoICJjb25zIgorICAgIHN0cnVjdCBudWxsX3R5cGUKKyAgICB7CisgICAgICBudWxsX3R5cGUoKSB7fQorICAgICAgbnVsbF90eXBlKGNvbnN0IG51bGxfdHlwZSYsIGNvbnN0IG51bGxfdHlwZSYpIHt9CisgICAgfTsKKworICAgIC8vIGEgaGVscGVyIGZ1bmN0aW9uIHRvIHByb3ZpZGUgYSBjb25zdCBudWxsX3R5cGUgdHlwZSB0ZW1wb3JhcnkKKyAgICBpbmxpbmUgY29uc3QgbnVsbF90eXBlIGNudWxsX3R5cGUoKSB7IHJldHVybiBudWxsX3R5cGUoKTsgfQorCisvLyBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHR1cGxlCisgICAgdGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSA9IG51bGxfdHlwZSwKKyAgICAgIHR5cGVuYW1lIFQyID0gbnVsbF90eXBlLAorICAgICAgdHlwZW5hbWUgVDMgPSBudWxsX3R5cGUsCisgICAgICB0eXBlbmFtZSBUNCA9IG51bGxfdHlwZSwKKyAgICAgIHR5cGVuYW1lIFQ1ID0gbnVsbF90eXBlLAorICAgICAgdHlwZW5hbWUgVDYgPSBudWxsX3R5cGUsCisgICAgICB0eXBlbmFtZSBUNyA9IG51bGxfdHlwZSwKKyAgICAgIHR5cGVuYW1lIFQ4ID0gbnVsbF90eXBlLAorICAgICAgdHlwZW5hbWUgVDkgPSBudWxsX3R5cGUsCisgICAgICB0eXBlbmFtZSBUMTAgPSBudWxsX3R5cGUKKyAgICA+CisgICAgY2xhc3MgdHVwbGU7CisKKy8vIGZvcndhcmQgZGVjbGFyYXRpb24gb2YgY29ucworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWwgPSBudWxsX3R5cGU+CisgICAgc3RydWN0IGNvbnM7CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgICAgLy8gVGFrZXMgYSBwb2ludGVyIGFuZCByb3V0ZXMgYWxsIGFzc2lnbm1lbnRzIHRvIHdoYXRldmVyIGl0IHBvaW50cyB0bworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgIHN0cnVjdCBhc3NpZ25fdG9fcG9pbnRlZQorICAgICAgeworICAgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBhc3NpZ25fdG9fcG9pbnRlZShUKiBwKSA6IHB0cihwKSB7fQorCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE90aGVyPgorICAgICAgICBhc3NpZ25fdG9fcG9pbnRlZSYgb3BlcmF0b3I9KGNvbnN0IE90aGVyJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICpwdHIgPSBvdGhlcjsKKyAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgcHJpdmF0ZToKKyAgICAgICAgVCogcHRyOworICAgICAgfTsKKworICAgICAgLy8gU3dhbGxvd3MgYW55IGFzc2lnbm1lbnQKKyAgICAgIHN0cnVjdCBzd2FsbG93X2Fzc2lnbgorICAgICAgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzd2FsbG93X2Fzc2lnbiBjb25zdCYgb3BlcmF0b3I9KGNvbnN0IFQmKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisgICAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBhZGRfY29uc3RfcmVmZXJlbmNlIDogYWRkX3JlZmVyZW5jZTx0eXBlbmFtZSBhZGRfY29uc3Q8VD46OnR5cGU+IHt9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIE15VGFpbD4KKyAgICBzdHJ1Y3QgaW5pdF90YWlsCisgICAgeworICAgICAgICAvLyBFYWNoIG9mIHZjNiBhbmQgdmM3IHNlZW0gdG8gcmVxdWlyZSBhIGRpZmZlcmVudCBmb3JtdWxhdGlvbgorICAgICAgICAvLyBvZiB0aGlzIHJldHVybiB0eXBlCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBILCBjbGFzcyBUPgorI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgICAgICBzdGF0aWMgdHlwZW5hbWUgYWRkX3JlZmVyZW5jZTx0eXBlbmFtZSBhZGRfY29uc3Q8VD46OnR5cGU+Ojp0eXBlCisjZWxzZQorICAgICAgICBzdGF0aWMgdHlwZW5hbWUgYWRkX2NvbnN0X3JlZmVyZW5jZTxUPjo6dHlwZQorI2VuZGlmCisgICAgICAgIGV4ZWN1dGUoIGNvbnM8SCxUPiBjb25zdCYgdSwgbG9uZyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB1LmdldF90YWlsKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgaW5pdF90YWlsPG51bGxfdHlwZT4KKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBIPgorICAgICAgICBzdGF0aWMgbnVsbF90eXBlIGV4ZWN1dGUoIGNvbnM8SCxudWxsX3R5cGU+IGNvbnN0JiB1LCBsb25nICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG51bGxfdHlwZSgpOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFU+CisgICAgICAgIHN0YXRpYyBudWxsX3R5cGUgZXhlY3V0ZShVIGNvbnN0JiwgLi4uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbnVsbF90eXBlKCk7CisgICAgICAgIH0KKyAgICAgcHJpdmF0ZToKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEgsIGNsYXNzIFQ+CisgICAgICAgIHZvaWQgZXhlY3V0ZSggY29uczxILFQ+IGNvbnN0JiwgaW50KTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIE90aGVyPgorICAgIE90aGVyIGNvbnN0JgorICAgIGluaXRfaGVhZCggT3RoZXIgY29uc3QmIHUsIC4uLiApCisgICAgeworICAgICAgICByZXR1cm4gdTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSCwgY2xhc3MgVD4KKyAgICB0eXBlbmFtZSBhZGRfcmVmZXJlbmNlPHR5cGVuYW1lIGFkZF9jb25zdDxIPjo6dHlwZT46OnR5cGUKKyAgICBpbml0X2hlYWQoIGNvbnM8SCxUPiBjb25zdCYgdSwgaW50ICkKKyAgICB7CisgICAgICAgIHJldHVybiB1LmdldF9oZWFkKCk7CisgICAgfQorCisgICAgaW5saW5lIGNoYXIqKioqIGluaXRfaGVhZChudWxsX3R5cGUgY29uc3QmLCBpbnQpOworCisgIH0gLy8gZW5kIG9mIG5hbWVzcGFjZSBkZXRhaWwKKworICAgIC8vIGNvbnMgYnVpbGRzIGEgaGV0ZXJvZ2Vub3VzIGxpc3Qgb2YgdHlwZXMKKyAgIHRlbXBsYXRlPHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+CisgICBzdHJ1Y3QgY29ucworICAgeworICAgICB0eXBlZGVmIGNvbnMgc2VsZl90eXBlOworICAgICB0eXBlZGVmIEhlYWQgaGVhZF90eXBlOworICAgICB0eXBlZGVmIFRhaWwgdGFpbF90eXBlOworCisgICAgcHJpdmF0ZToKKyAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPGhlYWRfdHlwZT46OnR5cGUgaGVhZF9yZWY7CisgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX3JlZmVyZW5jZTx0YWlsX3R5cGU+Ojp0eXBlIHRhaWxfcmVmOworICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjphZGRfY29uc3RfcmVmZXJlbmNlPGhlYWRfdHlwZT46OnR5cGUgaGVhZF9jcmVmOworICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjphZGRfY29uc3RfcmVmZXJlbmNlPHRhaWxfdHlwZT46OnR5cGUgdGFpbF9jcmVmOworICAgIHB1YmxpYzoKKyAgICAgaGVhZF90eXBlIGhlYWQ7CisgICAgIHRhaWxfdHlwZSB0YWlsOworCisgICAgIGhlYWRfcmVmIGdldF9oZWFkKCkgeyByZXR1cm4gaGVhZDsgfQorICAgICB0YWlsX3JlZiBnZXRfdGFpbCgpIHsgcmV0dXJuIHRhaWw7IH0KKworICAgICBoZWFkX2NyZWYgZ2V0X2hlYWQoKSBjb25zdCB7IHJldHVybiBoZWFkOyB9CisgICAgIHRhaWxfY3JlZiBnZXRfdGFpbCgpIGNvbnN0IHsgcmV0dXJuIHRhaWw7IH0KKworICAgICBjb25zKCkgOiBoZWFkKCksIHRhaWwoKSB7fQorCisjaWYgZGVmaW5lZCBCT09TVF9NU1ZDCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUYWlsPgorICAgICAgY29ucyhoZWFkX2NyZWYgaCAvKiA9IGhlYWRfdHlwZSgpICovLCAvLyBjYXVzZXMgTVNWQyA2LjUgdG8gYmFyZi4KKyAgICAgICAgICAgICAgICAgICAgY29uc3QgVGFpbCYgdCkgOiBoZWFkKGgpLCB0YWlsKHQuaGVhZCwgdC50YWlsKQorICAgICAgeworICAgICAgfQorCisgICAgICBjb25zKGhlYWRfY3JlZiBoIC8qID0gaGVhZF90eXBlKCkgKi8sIC8vIGNhdXNlcyBNU1ZDIDYuNSB0byBiYXJmLgorICAgICAgICAgICAgICAgICAgICBjb25zdCBudWxsX3R5cGUmIHQpIDogaGVhZChoKSwgdGFpbCh0KQorICAgICAgeworICAgICAgfQorCisjZWxzZQorICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgIGV4cGxpY2l0IGNvbnMoaGVhZF9jcmVmIGgsIGNvbnN0IFQmIHQpIDoKKyAgICAgICAgaGVhZChoKSwgdGFpbCh0LmhlYWQsIHQudGFpbCkKKyAgICAgIHsKKyAgICAgIH0KKworICAgICAgZXhwbGljaXQgY29ucyhoZWFkX2NyZWYgaCA9IGhlYWRfdHlwZSgpLAorICAgICAgICAgICAgICAgICAgICB0YWlsX2NyZWYgdCA9IHRhaWxfdHlwZSgpKSA6CisgICAgICAgIGhlYWQoaCksIHRhaWwodCkKKyAgICAgIHsKKyAgICAgIH0KKyNlbmRpZgorCisgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4KKyAgICAgIGNvbnMoIGNvbnN0IFUmIHUgKQorICAgICAgICA6IGhlYWQoZGV0YWlsOjppbml0X2hlYWQodSwgMCkpCisgICAgICAgICwgdGFpbChkZXRhaWw6OmluaXRfdGFpbDxUYWlsPjo6ZXhlY3V0ZSh1LCAwTCkpCisgICAgICAgeworICAgICAgIH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3RoZXI+CisgICAgICBjb25zJiBvcGVyYXRvcj0oY29uc3QgT3RoZXImIG90aGVyKQorICAgICAgeworICAgICAgICBoZWFkID0gb3RoZXIuaGVhZDsKKyAgICAgICAgdGFpbCA9IG90aGVyLnRhaWw7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgIH0KKyAgICB9OworCisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgICAgIC8vIERldGVybWluZXMgaWYgdGhlIHBhcmFtZXRlciBpcyBudWxsX3R5cGUKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBpc19udWxsX3R5cGUgeyBlbnVtIHsgUkVUID0gMCB9OyB9OworICAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgaXNfbnVsbF90eXBlPG51bGxfdHlwZT4geyBlbnVtIHsgUkVUID0gMSB9OyB9OworCisgICAgICAvKiBCdWlsZCBhIGNvbnMgc3RydWN0dXJlIGZyb20gdGhlIGdpdmVuIEhlYWQgYW5kIFRhaWwuIElmIGJvdGggYXJlIG51bGxfdHlwZSwKKyAgICAgIHJldHVybiBudWxsX3R5cGUuICovCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIZWFkLCB0eXBlbmFtZSBUYWlsPgorICAgICAgc3RydWN0IGJ1aWxkX2NvbnMKKyAgICAgIHsKKyAgICAgIHByaXZhdGU6CisgICAgICAgIGVudW0geyB0YWlsX2lzX251bGxfdHlwZSA9IGlzX251bGxfdHlwZTxUYWlsPjo6UkVUIH07CisgICAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgY29uczxIZWFkLCBUYWlsPiBSRVQ7CisgICAgICB9OworCisgICAgICB0ZW1wbGF0ZTw+CisgICAgICBzdHJ1Y3QgYnVpbGRfY29uczxudWxsX3R5cGUsIG51bGxfdHlwZT4KKyAgICAgIHsKKyAgICAgICAgdHlwZWRlZiBudWxsX3R5cGUgUkVUOworICAgICAgfTsKKworICAgICAgLy8gTWFwIHRoZSBOIGVsZW1lbnRzIG9mIGEgdHVwbGUgaW50byBhIGNvbnMgbGlzdAorICAgICAgdGVtcGxhdGU8CisgICAgICAgIHR5cGVuYW1lIFQxLAorICAgICAgICB0eXBlbmFtZSBUMiA9IG51bGxfdHlwZSwKKyAgICAgICAgdHlwZW5hbWUgVDMgPSBudWxsX3R5cGUsCisgICAgICAgIHR5cGVuYW1lIFQ0ID0gbnVsbF90eXBlLAorICAgICAgICB0eXBlbmFtZSBUNSA9IG51bGxfdHlwZSwKKyAgICAgICAgdHlwZW5hbWUgVDYgPSBudWxsX3R5cGUsCisgICAgICAgIHR5cGVuYW1lIFQ3ID0gbnVsbF90eXBlLAorICAgICAgICB0eXBlbmFtZSBUOCA9IG51bGxfdHlwZSwKKyAgICAgICAgdHlwZW5hbWUgVDkgPSBudWxsX3R5cGUsCisgICAgICAgIHR5cGVuYW1lIFQxMCA9IG51bGxfdHlwZQorICAgICAgPgorICAgICAgc3RydWN0IG1hcF90dXBsZV90b19jb25zCisgICAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpidWlsZF9jb25zPFQxMCwgbnVsbF90eXBlICA+OjpSRVQgY29uczEwOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YnVpbGRfY29uczxUOSwgY29uczEwPjo6UkVUIGNvbnM5OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YnVpbGRfY29uczxUOCwgY29uczk+OjpSRVQgY29uczg7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpidWlsZF9jb25zPFQ3LCBjb25zOD46OlJFVCBjb25zNzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmJ1aWxkX2NvbnM8VDYsIGNvbnM3Pjo6UkVUIGNvbnM2OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YnVpbGRfY29uczxUNSwgY29uczY+OjpSRVQgY29uczU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpidWlsZF9jb25zPFQ0LCBjb25zNT46OlJFVCBjb25zNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmJ1aWxkX2NvbnM8VDMsIGNvbnM0Pjo6UkVUIGNvbnMzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YnVpbGRfY29uczxUMiwgY29uczM+OjpSRVQgY29uczI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjpidWlsZF9jb25zPFQxLCBjb25zMj46OlJFVCBjb25zMTsKKyAgICAgIH07CisKKyAgICAgIC8vIFdvcmthcm91bmQgdGhlIGxhY2sgb2YgcGFydGlhbCBzcGVjaWFsaXphdGlvbiBpbiBzb21lIGNvbXBpbGVycworICAgICAgdGVtcGxhdGU8aW50IE4+CisgICAgICBzdHJ1Y3QgX2VsZW1lbnRfdHlwZQorICAgICAgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUdXBsZT4KKyAgICAgICAgc3RydWN0IGlubmVyCisgICAgICAgIHsKKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR1cGxlOjp0YWlsX3R5cGUgdGFpbF90eXBlOworICAgICAgICAgIHR5cGVkZWYgX2VsZW1lbnRfdHlwZTxOLTE+IG5leHRfZWx0X3R5cGU7CisKKyAgICAgICAgcHVibGljOgorICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgX2VsZW1lbnRfdHlwZTxOLTE+Ojp0ZW1wbGF0ZSBpbm5lcjx0YWlsX3R5cGU+OjpSRVQgUkVUOworICAgICAgICB9OworICAgICAgfTsKKworICAgICAgdGVtcGxhdGU8PgorICAgICAgc3RydWN0IF9lbGVtZW50X3R5cGU8MD4KKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVHVwbGU+CisgICAgICAgIHN0cnVjdCBpbm5lcgorICAgICAgICB7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUdXBsZTo6aGVhZF90eXBlIFJFVDsKKyAgICAgICAgfTsKKyAgICAgIH07CisKKyAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworCisgICAgLy8gUmV0dXJuIHRoZSBOdGggdHlwZSBvZiB0aGUgZ2l2ZW4gVHVwbGUKKyAgICB0ZW1wbGF0ZTxpbnQgTiwgdHlwZW5hbWUgVHVwbGU+CisgICAgc3RydWN0IGVsZW1lbnQKKyAgICB7CisgICAgcHJpdmF0ZToKKyAgICAgIHR5cGVkZWYgZGV0YWlsOjpfZWxlbWVudF90eXBlPE4+IG50aF90eXBlOworCisgICAgcHVibGljOgorICAgICAgdHlwZWRlZiB0eXBlbmFtZSBudGhfdHlwZTo6dGVtcGxhdGUgaW5uZXI8VHVwbGU+OjpSRVQgUkVUOworICAgICAgdHlwZWRlZiBSRVQgdHlwZTsKKyAgICB9OworCisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDID09IDEzMDApCisgICAgICAvLyBzcGVjaWFsIHdvcmthcm91bmQgZm9yIHZjNzoKKworICAgICAgdGVtcGxhdGUgPGJvb2wgeD4KKyAgICAgIHN0cnVjdCByZWZlcmVuY2VfYWRkZXIKKyAgICAgIHsKKyAgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICAgc3RydWN0IHJlYmluZAorICAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBUJiB0eXBlOworICAgICAgICAgfTsKKyAgICAgIH07CisKKyAgICAgIHRlbXBsYXRlIDw+CisgICAgICBzdHJ1Y3QgcmVmZXJlbmNlX2FkZGVyPHRydWU+CisgICAgICB7CisgICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgIHN0cnVjdCByZWJpbmQKKyAgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgfTsKKyAgICAgIH07CisKKworICAgICAgLy8gUmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBOdGggdHlwZSBvZiB0aGUgZ2l2ZW4gVHVwbGUKKyAgICAgIHRlbXBsYXRlPGludCBOLCB0eXBlbmFtZSBUdXBsZT4KKyAgICAgIHN0cnVjdCBlbGVtZW50X3JlZgorICAgICAgeworICAgICAgcHJpdmF0ZToKKyAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZWxlbWVudDxOLCBUdXBsZT46OlJFVCBlbHRfdHlwZTsKKyAgICAgICAgIGVudW0geyBpc19yZWYgPSBpc19yZWZlcmVuY2U8ZWx0X3R5cGU+Ojp2YWx1ZSB9OworCisgICAgICBwdWJsaWM6CisgICAgICAgICB0eXBlZGVmIHJlZmVyZW5jZV9hZGRlcjxpc19yZWY+OjpyZWJpbmQ8ZWx0X3R5cGU+Ojp0eXBlIFJFVDsKKyAgICAgICAgIHR5cGVkZWYgUkVUIHR5cGU7CisgICAgICB9OworCisgICAgICAvLyBSZXR1cm4gYSBjb25zdCByZWZlcmVuY2UgdG8gdGhlIE50aCB0eXBlIG9mIHRoZSBnaXZlbiBUdXBsZQorICAgICAgdGVtcGxhdGU8aW50IE4sIHR5cGVuYW1lIFR1cGxlPgorICAgICAgc3RydWN0IGVsZW1lbnRfY29uc3RfcmVmCisgICAgICB7CisgICAgICBwcml2YXRlOgorICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBlbGVtZW50PE4sIFR1cGxlPjo6UkVUIGVsdF90eXBlOworICAgICAgICAgZW51bSB7IGlzX3JlZiA9IGlzX3JlZmVyZW5jZTxlbHRfdHlwZT46OnZhbHVlIH07CisKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgIHR5cGVkZWYgcmVmZXJlbmNlX2FkZGVyPGlzX3JlZj46OnJlYmluZDxjb25zdCBlbHRfdHlwZT46OnR5cGUgUkVUOworICAgICAgICAgdHlwZWRlZiBSRVQgdHlwZTsKKyAgICAgIH07CisKKyNlbHNlIC8vIHZjNworCisgICAgICAvLyBSZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIE50aCB0eXBlIG9mIHRoZSBnaXZlbiBUdXBsZQorICAgICAgdGVtcGxhdGU8aW50IE4sIHR5cGVuYW1lIFR1cGxlPgorICAgICAgc3RydWN0IGVsZW1lbnRfcmVmCisgICAgICB7CisgICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnQ8TiwgVHVwbGU+OjpSRVQgZWx0X3R5cGU7CisKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcmVmZXJlbmNlPGVsdF90eXBlPjo6dHlwZSBSRVQ7CisgICAgICAgIHR5cGVkZWYgUkVUIHR5cGU7CisgICAgICB9OworCisgICAgICAvLyBSZXR1cm4gYSBjb25zdCByZWZlcmVuY2UgdG8gdGhlIE50aCB0eXBlIG9mIHRoZSBnaXZlbiBUdXBsZQorICAgICAgdGVtcGxhdGU8aW50IE4sIHR5cGVuYW1lIFR1cGxlPgorICAgICAgc3RydWN0IGVsZW1lbnRfY29uc3RfcmVmCisgICAgICB7CisgICAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGVsZW1lbnQ8TiwgVHVwbGU+OjpSRVQgZWx0X3R5cGU7CisKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcmVmZXJlbmNlPGNvbnN0IGVsdF90eXBlPjo6dHlwZSBSRVQ7CisgICAgICAgIHR5cGVkZWYgUkVUIHR5cGU7CisgICAgICB9OworI2VuZGlmIC8vIHZjNworCisgICAgfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKyAgICAvLyBHZXQgbGVuZ3RoIG9mIHRoaXMgdHVwbGUKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUdXBsZT4KKyAgICBzdHJ1Y3QgbGVuZ3RoCisgICAgeworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAxICsgbGVuZ3RoPHR5cGVuYW1lIFR1cGxlOjp0YWlsX3R5cGU+Ojp2YWx1ZSk7CisgICAgfTsKKworICAgIHRlbXBsYXRlPD4gc3RydWN0IGxlbmd0aDx0dXBsZTw+ID4geworICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSAwKTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8PgorICAgIHN0cnVjdCBsZW5ndGg8bnVsbF90eXBlPgorICAgIHsKKyAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gMCk7CisgICAgfTsKKworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworCisgICAgLy8gUmVmZXJlbmNlIHRoZSBOdGggZWxlbWVudCBpbiBhIHR1cGxlIGFuZCByZXRyaWV2ZSBpdCB3aXRoICJnZXQiCisgICAgdGVtcGxhdGU8aW50IE4+CisgICAgc3RydWN0IGdldF9jbGFzcworICAgIHsKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+CisgICAgICBzdGF0aWMgaW5saW5lCisgICAgICB0eXBlbmFtZSBkZXRhaWw6OmVsZW1lbnRfcmVmPE4sIGNvbnM8SGVhZCwgVGFpbD4gPjo6UkVUCisgICAgICBnZXQoY29uczxIZWFkLCBUYWlsPiYgdCkKKyAgICAgIHsKKyAgICAgICAgcmV0dXJuIGdldF9jbGFzczxOLTE+OjpnZXQodC50YWlsKTsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUgVGFpbD4KKyAgICAgIHN0YXRpYyBpbmxpbmUKKyAgICAgIHR5cGVuYW1lIGRldGFpbDo6ZWxlbWVudF9jb25zdF9yZWY8TiwgY29uczxIZWFkLCBUYWlsPiA+OjpSRVQKKyAgICAgIGdldChjb25zdCBjb25zPEhlYWQsIFRhaWw+JiB0KQorICAgICAgeworICAgICAgICByZXR1cm4gZ2V0X2NsYXNzPE4tMT46OmdldCh0LnRhaWwpOworICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+CisgICAgc3RydWN0IGdldF9jbGFzczwwPgorICAgIHsKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+CisgICAgICBzdGF0aWMgaW5saW5lCisgICAgICB0eXBlbmFtZSBhZGRfcmVmZXJlbmNlPEhlYWQ+Ojp0eXBlCisgICAgICBnZXQoY29uczxIZWFkLCBUYWlsPiYgdCkKKyAgICAgIHsKKyAgICAgICAgcmV0dXJuIHQuaGVhZDsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUgVGFpbD4KKyAgICAgIHN0YXRpYyBpbmxpbmUKKyAgICAgIHR5cGVuYW1lIGFkZF9yZWZlcmVuY2U8Y29uc3QgSGVhZD46OnR5cGUKKyAgICAgIGdldChjb25zdCBjb25zPEhlYWQsIFRhaWw+JiB0KQorICAgICAgeworICAgICAgICByZXR1cm4gdC5oZWFkOworICAgICAgfQorICAgIH07CisKKyAgICB9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworICAgIC8vIHR1cGxlIGNsYXNzCisgICAgdGVtcGxhdGU8CisgICAgICB0eXBlbmFtZSBUMSwKKyAgICAgIHR5cGVuYW1lIFQyLAorICAgICAgdHlwZW5hbWUgVDMsCisgICAgICB0eXBlbmFtZSBUNCwKKyAgICAgIHR5cGVuYW1lIFQ1LAorICAgICAgdHlwZW5hbWUgVDYsCisgICAgICB0eXBlbmFtZSBUNywKKyAgICAgIHR5cGVuYW1lIFQ4LAorICAgICAgdHlwZW5hbWUgVDksCisgICAgICB0eXBlbmFtZSBUMTAKKyAgICA+CisgICAgY2xhc3MgdHVwbGUgOgorICAgICAgcHVibGljIGRldGFpbDo6bWFwX3R1cGxlX3RvX2NvbnM8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwPjo6Y29uczEKKyAgICB7CisgICAgcHJpdmF0ZToKKyAgICAgIHR5cGVkZWYgZGV0YWlsOjptYXBfdHVwbGVfdG9fY29uczxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+IG1hcHBlZF90dXBsZTsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbWFwcGVkX3R1cGxlOjpjb25zMTAgY29uczEwOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnM5IGNvbnM5OworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnM4IGNvbnM4OworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnM3IGNvbnM3OworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnM2IGNvbnM2OworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnM1IGNvbnM1OworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnM0IGNvbnM0OworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnMzIGNvbnMzOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnMyIGNvbnMyOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtYXBwZWRfdHVwbGU6OmNvbnMxIGNvbnMxOworCisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YWRkX2NvbnN0X3JlZmVyZW5jZTxUMT46OnR5cGUgdDFfY3JlZjsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjphZGRfY29uc3RfcmVmZXJlbmNlPFQyPjo6dHlwZSB0Ml9jcmVmOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmFkZF9jb25zdF9yZWZlcmVuY2U8VDM+Ojp0eXBlIHQzX2NyZWY7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YWRkX2NvbnN0X3JlZmVyZW5jZTxUND46OnR5cGUgdDRfY3JlZjsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjphZGRfY29uc3RfcmVmZXJlbmNlPFQ1Pjo6dHlwZSB0NV9jcmVmOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmFkZF9jb25zdF9yZWZlcmVuY2U8VDY+Ojp0eXBlIHQ2X2NyZWY7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YWRkX2NvbnN0X3JlZmVyZW5jZTxUNz46OnR5cGUgdDdfY3JlZjsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGV0YWlsOjphZGRfY29uc3RfcmVmZXJlbmNlPFQ4Pjo6dHlwZSB0OF9jcmVmOworICAgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWw6OmFkZF9jb25zdF9yZWZlcmVuY2U8VDk+Ojp0eXBlIHQ5X2NyZWY7CisgICAgICB0eXBlZGVmIHR5cGVuYW1lIGRldGFpbDo6YWRkX2NvbnN0X3JlZmVyZW5jZTxUMTA+Ojp0eXBlIHQxMF9jcmVmOworICAgIHB1YmxpYzoKKyAgICAgIHR5cGVkZWYgY29uczEgaW5oZXJpdGVkOworICAgICAgdHlwZWRlZiB0dXBsZSBzZWxmX3R5cGU7CisKKyAgICAgIHR1cGxlKCkgOiBjb25zMShUMSgpLCBjb25zMihUMigpLCBjb25zMyhUMygpLCBjb25zNChUNCgpLCBjb25zNShUNSgpLCBjb25zNihUNigpLGNvbnM3KFQ3KCksY29uczgoVDgoKSxjb25zOShUOSgpLGNvbnMxMChUMTAoKSkpKSkpKSkpKSkKKyAgICAgICAge30KKworICAgICAgdHVwbGUoCisgICAgICAgICAgdDFfY3JlZiB0MSwKKyAgICAgICAgICB0Ml9jcmVmIHQyLAorICAgICAgICAgIHQzX2NyZWYgdDMgPSBUMygpLAorICAgICAgICAgIHQ0X2NyZWYgdDQgPSBUNCgpLAorICAgICAgICAgIHQ1X2NyZWYgdDUgPSBUNSgpLAorICAgICAgICAgIHQ2X2NyZWYgdDYgPSBUNigpLAorICAgICAgICAgIHQ3X2NyZWYgdDcgPSBUNygpLAorICAgICAgICAgIHQ4X2NyZWYgdDggPSBUOCgpLAorICAgICAgICAgIHQ5X2NyZWYgdDkgPSBUOSgpLAorICAgICAgICAgIHQxMF9jcmVmIHQxMCA9IFQxMCgpCisgICAgICApIDoKKyAgICAgICAgY29uczEodDEsIGNvbnMyKHQyLCBjb25zMyh0MywgY29uczQodDQsIGNvbnM1KHQ1LCBjb25zNih0Nixjb25zNyh0Nyxjb25zOCh0OCxjb25zOSh0OSxjb25zMTAodDEwKSkpKSkpKSkpKQorICAgICAgeworICAgICAgfQorCisgICAgICBleHBsaWNpdCB0dXBsZSh0MV9jcmVmIHQxKQorICAgICAgICA6IGNvbnMxKHQxLCBjb25zMihUMigpLCBjb25zMyhUMygpLCBjb25zNChUNCgpLCBjb25zNShUNSgpLCBjb25zNihUNigpLGNvbnM3KFQ3KCksY29uczgoVDgoKSxjb25zOShUOSgpLGNvbnMxMChUMTAoKSkpKSkpKSkpKSkKKyAgICAgIHt9CisKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+CisgICAgICB0dXBsZShjb25zdCBjb25zPEhlYWQsIFRhaWw+JiBvdGhlcikgOgorICAgICAgICBjb25zMShvdGhlci5oZWFkLCBvdGhlci50YWlsKQorICAgICAgeworICAgICAgfQorCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdCwgdHlwZW5hbWUgU2Vjb25kPgorICAgICAgc2VsZl90eXBlJiBvcGVyYXRvcj0oY29uc3Qgc3RkOjpwYWlyPEZpcnN0LCBTZWNvbmQ+JiBvdGhlcikKKyAgICAgIHsKKyAgICAgICAgdGhpcy0+aGVhZCA9IG90aGVyLmZpcnN0OworICAgICAgICB0aGlzLT50YWlsLmhlYWQgPSBvdGhlci5zZWNvbmQ7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgIH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUgVGFpbD4KKyAgICAgIHNlbGZfdHlwZSYgb3BlcmF0b3I9KGNvbnN0IGNvbnM8SGVhZCwgVGFpbD4mIG90aGVyKQorICAgICAgeworICAgICAgICB0aGlzLT5oZWFkID0gb3RoZXIuaGVhZDsKKyAgICAgICAgdGhpcy0+dGFpbCA9IG90aGVyLnRhaWw7CisKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgfQorICAgIH07CisKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgICAgdGVtcGxhdGU8aW50IE4+IHN0cnVjdCB3b3JrYXJvdW5kX2hvbGRlciB7fTsKKworICAgIH0gLy8gbmFtZXNwYWNlIGRldGFpbAorCisgICAgdGVtcGxhdGU8aW50IE4sIHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+CisgICAgdHlwZW5hbWUgZGV0YWlsOjplbGVtZW50X3JlZjxOLCBjb25zPEhlYWQsIFRhaWw+ID46OlJFVAorICAgIGdldChjb25zPEhlYWQsIFRhaWw+JiB0LCBkZXRhaWw6Ondvcmthcm91bmRfaG9sZGVyPE4+KiA9IDApCisgICAgeworICAgICAgcmV0dXJuIGRldGFpbDo6Z2V0X2NsYXNzPE4+OjpnZXQodCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IE4sIHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+CisgICAgdHlwZW5hbWUgZGV0YWlsOjplbGVtZW50X2NvbnN0X3JlZjxOLCBjb25zPEhlYWQsIFRhaWw+ID46OlJFVAorICAgIGdldChjb25zdCBjb25zPEhlYWQsIFRhaWw+JiB0LCBkZXRhaWw6Ondvcmthcm91bmRfaG9sZGVyPE4+KiA9IDApCisgICAgeworICAgICAgcmV0dXJuIGRldGFpbDo6Z2V0X2NsYXNzPE4+OjpnZXQodCk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDE+CisgICAgaW5saW5lCisgICAgdHVwbGU8VDE+CisgICAgbWFrZV90dXBsZShjb25zdCBUMSYgdDEpCisgICAgeworICAgICAgcmV0dXJuIHR1cGxlPFQxPih0MSk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgorICAgIGlubGluZQorICAgIHR1cGxlPFQxLCBUMj4KKyAgICBtYWtlX3R1cGxlKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyKQorICAgIHsKKyAgICAgIHJldHVybiB0dXBsZTxUMSwgVDI+KHQxLCB0Mik7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxUMSwgVDIsIFQzPgorICAgIG1ha2VfdHVwbGUoY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzJiB0MykKKyAgICB7CisgICAgICByZXR1cm4gdHVwbGU8VDEsIFQyLCBUMz4odDEsIHQyLCB0Myk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+CisgICAgaW5saW5lCisgICAgdHVwbGU8VDEsIFQyLCBUMywgVDQ+CisgICAgbWFrZV90dXBsZShjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMmIHQzLCBjb25zdCBUNCYgdDQpCisgICAgeworICAgICAgcmV0dXJuIHR1cGxlPFQxLCBUMiwgVDMsIFQ0Pih0MSwgdDIsIHQzLCB0NCk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PgorICAgIGlubGluZQorICAgIHR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNT4KKyAgICBtYWtlX3R1cGxlKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyYgdDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1KQorICAgIHsKKyAgICAgIHJldHVybiB0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDU+KHQxLCB0MiwgdDMsIHQ0LCB0NSk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PgorICAgIG1ha2VfdHVwbGUoY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzJiB0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NikKKyAgICB7CisgICAgICByZXR1cm4gdHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0Nik7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+CisgICAgaW5saW5lCisgICAgdHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDc+CisgICAgbWFrZV90dXBsZShjb25zdCBUMSYgdDEsIGNvbnN0IFQyJiB0MiwgY29uc3QgVDMmIHQzLCBjb25zdCBUNCYgdDQsIGNvbnN0IFQ1JiB0NSwgY29uc3QgVDYmIHQ2LCBjb25zdCBUNyYgdDcpCisgICAgeworICAgICAgcmV0dXJuIHR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3Pih0MSwgdDIsIHQzLCB0NCwgdDUsIHQ2LCB0Nyk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4PgorICAgIGlubGluZQorICAgIHR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOD4KKyAgICBtYWtlX3R1cGxlKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyYgdDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0NywgY29uc3QgVDgmIHQ4KQorICAgIHsKKyAgICAgIHJldHVybiB0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5PgorICAgIG1ha2VfdHVwbGUoY29uc3QgVDEmIHQxLCBjb25zdCBUMiYgdDIsIGNvbnN0IFQzJiB0MywgY29uc3QgVDQmIHQ0LCBjb25zdCBUNSYgdDUsIGNvbnN0IFQ2JiB0NiwgY29uc3QgVDcmIHQ3LCBjb25zdCBUOCYgdDgsIGNvbnN0IFQ5JiB0OSkKKyAgICB7CisgICAgICByZXR1cm4gdHVwbGU8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4odDEsIHQyLCB0MywgdDQsIHQ1LCB0NiwgdDcsIHQ4LCB0OSk7CisgICAgfQorCisgICAgLy8gTWFrZSBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwPgorICAgIGlubGluZQorICAgIHR1cGxlPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMD4KKyAgICBtYWtlX3R1cGxlKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQyLCBjb25zdCBUMyYgdDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYsIGNvbnN0IFQ3JiB0NywgY29uc3QgVDgmIHQ4LCBjb25zdCBUOSYgdDksIGNvbnN0IFQxMCYgdDEwKQorICAgIHsKKyAgICAgIHJldHVybiB0dXBsZTxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCk7CisgICAgfQorCisgICAgLy8gVGllIHZhcmlhYmxlcyBpbnRvIGEgdHVwbGUKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMT4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiA+CisgICAgdGllKFQxJiB0MSkKKyAgICB7CisgICAgICByZXR1cm4gbWFrZV90dXBsZShkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPigmdDEpKTsKKyAgICB9CisKKyAgICAvLyBUaWUgdmFyaWFibGVzIGludG8gYSB0dXBsZQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+ID4KKyAgICB0aWUoVDEmIHQxLCBUMiYgdDIpCisgICAgeworICAgICAgcmV0dXJuIG1ha2VfdHVwbGUoZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMT4oJnQxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+KCZ0MikpOworICAgIH0KKworICAgIC8vIFRpZSB2YXJpYWJsZXMgaW50byBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4gPgorICAgIHRpZShUMSYgdDEsIFQyJiB0MiwgVDMmIHQzKQorICAgIHsKKyAgICAgIHJldHVybiBtYWtlX3R1cGxlKGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDE+KCZ0MSksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQyPigmdDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4oJnQzKSk7CisgICAgfQorCisgICAgLy8gVGllIHZhcmlhYmxlcyBpbnRvIGEgdHVwbGUKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PiA+CisgICAgdGllKFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCkKKyAgICB7CisgICAgICByZXR1cm4gbWFrZV90dXBsZShkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPigmdDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMj4oJnQyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDM+KCZ0MyksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PigmdDQpKTsKKyAgICB9CisKKyAgICAvLyBUaWUgdmFyaWFibGVzIGludG8gYSB0dXBsZQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNT4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+ID4KKyAgICB0aWUoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0LCBUNSAmdDUpCisgICAgeworICAgICAgcmV0dXJuIG1ha2VfdHVwbGUoZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMT4oJnQxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+KCZ0MiksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQzPigmdDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUND4oJnQ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+KCZ0NSkpOworICAgIH0KKworICAgIC8vIFRpZSB2YXJpYWJsZXMgaW50byBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4gPgorICAgIHRpZShUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1ICZ0NSwgVDYgJnQ2KQorICAgIHsKKyAgICAgIHJldHVybiBtYWtlX3R1cGxlKGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDE+KCZ0MSksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQyPigmdDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4oJnQzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDQ+KCZ0NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ1PigmdDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4oJnQ2KSk7CisgICAgfQorCisgICAgLy8gVGllIHZhcmlhYmxlcyBpbnRvIGEgdHVwbGUKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ3PiA+CisgICAgdGllKFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUgJnQ1LCBUNiAmdDYsIFQ3ICZ0NykKKyAgICB7CisgICAgICByZXR1cm4gbWFrZV90dXBsZShkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPigmdDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMj4oJnQyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDM+KCZ0MyksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PigmdDQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNT4oJnQ1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDY+KCZ0NiksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ3PigmdDcpKTsKKyAgICB9CisKKyAgICAvLyBUaWUgdmFyaWFibGVzIGludG8gYSB0dXBsZQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ3PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDg+ID4KKyAgICB0aWUoVDEmIHQxLCBUMiYgdDIsIFQzJiB0MywgVDQmIHQ0LCBUNSAmdDUsIFQ2ICZ0NiwgVDcgJnQ3LCBUOCAmdDgpCisgICAgeworICAgICAgcmV0dXJuIG1ha2VfdHVwbGUoZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMT4oJnQxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+KCZ0MiksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQzPigmdDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUND4oJnQ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+KCZ0NSksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ2PigmdDYpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNz4oJnQ3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDg+KCZ0OCkpOworICAgIH0KKworICAgIC8vIFRpZSB2YXJpYWJsZXMgaW50byBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KKyAgICBpbmxpbmUKKyAgICB0dXBsZTxkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQxPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDI+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ0PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDU+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ3PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDg+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUOT4gPgorICAgIHRpZShUMSYgdDEsIFQyJiB0MiwgVDMmIHQzLCBUNCYgdDQsIFQ1ICZ0NSwgVDYgJnQ2LCBUNyAmdDcsIFQ4ICZ0OCwgVDkgJnQ5KQorICAgIHsKKyAgICAgIHJldHVybiBtYWtlX3R1cGxlKGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDE+KCZ0MSksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQyPigmdDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4oJnQzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDQ+KCZ0NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ1PigmdDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4oJnQ2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDc+KCZ0NyksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ4PigmdDgpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUOT4oJnQ5KSk7CisgICAgfQorICAgIC8vIFRpZSB2YXJpYWJsZXMgaW50byBhIHR1cGxlCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOSwgdHlwZW5hbWUgVDEwPgorICAgIGlubGluZQorICAgIHR1cGxlPGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDE+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMj4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQzPiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDQ+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNT4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ2PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDc+LAorICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUOD4sCisgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ5PiwKKyAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDEwPiA+CisgICAgdGllKFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0NCwgVDUgJnQ1LCBUNiAmdDYsIFQ3ICZ0NywgVDggJnQ4LCBUOSAmdDksIFQxMCAmdDEwKQorICAgIHsKKyAgICAgIHJldHVybiBtYWtlX3R1cGxlKGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDE+KCZ0MSksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQyPigmdDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUMz4oJnQzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDQ+KCZ0NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ1PigmdDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUNj4oJnQ2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDc+KCZ0NyksCisgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6OmFzc2lnbl90b19wb2ludGVlPFQ4PigmdDgpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOjphc3NpZ25fdG9fcG9pbnRlZTxUOT4oJnQ5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDo6YXNzaWduX3RvX3BvaW50ZWU8VDEwPigmdDEwKSk7CisgICAgfQorICAgIC8vICJpZ25vcmUiIGFsbG93cyB0dXBsZSBwb3NpdGlvbnMgdG8gYmUgaWdub3JlZCB3aGVuIHVzaW5nICJ0aWUiLgorCitkZXRhaWw6OnN3YWxsb3dfYXNzaWduIGNvbnN0IGlnbm9yZSA9IGRldGFpbDo6c3dhbGxvd19hc3NpZ24oKTsKKwordGVtcGxhdGUgPGNsYXNzIFQwLCBjbGFzcyBUMSwgY2xhc3MgVDIsIGNsYXNzIFQzLCBjbGFzcyBUNCwKKyAgICAgICAgICBjbGFzcyBUNSwgY2xhc3MgVDYsIGNsYXNzIFQ3LCBjbGFzcyBUOCwgY2xhc3MgVDk+Cit2b2lkIHN3YXAodHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiBsaHMsCisgICAgICAgICAgdHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiByaHMpOworaW5saW5lIHZvaWQgc3dhcChudWxsX3R5cGUmLCBudWxsX3R5cGUmKSB7fQordGVtcGxhdGU8Y2xhc3MgSEg+CitpbmxpbmUgdm9pZCBzd2FwKGNvbnM8SEgsIG51bGxfdHlwZT4mIGxocywgY29uczxISCwgbnVsbF90eXBlPiYgcmhzKSB7CisgIDo6bmRuYm9vc3Q6OnN3YXAobGhzLmhlYWQsIHJocy5oZWFkKTsKK30KK3RlbXBsYXRlPGNsYXNzIEhILCBjbGFzcyBUVD4KK2lubGluZSB2b2lkIHN3YXAoY29uczxISCwgVFQ+JiBsaHMsIGNvbnM8SEgsIFRUPiYgcmhzKSB7CisgIDo6bmRuYm9vc3Q6OnN3YXAobGhzLmhlYWQsIHJocy5oZWFkKTsKKyAgOjpuZG5ib29zdDo6dHVwbGVzOjpzd2FwKGxocy50YWlsLCByaHMudGFpbCk7Cit9Cit0ZW1wbGF0ZSA8Y2xhc3MgVDAsIGNsYXNzIFQxLCBjbGFzcyBUMiwgY2xhc3MgVDMsIGNsYXNzIFQ0LAorICAgICAgICAgIGNsYXNzIFQ1LCBjbGFzcyBUNiwgY2xhc3MgVDcsIGNsYXNzIFQ4LCBjbGFzcyBUOT4KK2lubGluZSB2b2lkIHN3YXAodHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiBsaHMsCisgICAgICAgICAgdHVwbGU8VDAsIFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+JiByaHMpIHsKKyAgdHlwZWRlZiB0dXBsZTxUMCwgVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOT4gdHVwbGVfdHlwZTsKKyAgdHlwZWRlZiB0eXBlbmFtZSB0dXBsZV90eXBlOjppbmhlcml0ZWQgYmFzZTsKKyAgOjpuZG5ib29zdDo6dHVwbGVzOjpzd2FwKHN0YXRpY19jYXN0PGJhc2UmPihsaHMpLCBzdGF0aWNfY2FzdDxiYXNlJj4ocmhzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIHR1cGxlcworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKyNlbmRpZiAvLyBCT09TVF9UVVBMRV9CQVNJQ19OT19QQVJUSUFMX1NQRUNfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R1cGxlL3R1cGxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHVwbGUvdHVwbGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2Njg5YmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R1cGxlL3R1cGxlLmhwcApAQCAtMCwwICsxLDkwIEBACisvLyAgdHVwbGUuaHBwIC0gQm9vc3QgVHVwbGUgTGlicmFyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKworI2lmbmRlZiBCT09TVF9UVVBMRV9IUFAKKyNkZWZpbmUgQk9PU1RfVFVQTEVfSFBQCisKKyNpZiBkZWZpbmVkKF9fc2dpKSAmJiBkZWZpbmVkKF9DT01QSUxFUl9WRVJTSU9OKSAmJiBfQ09NUElMRVJfVkVSU0lPTiA8PSA3MzAKKy8vIFdvcmsgYXJvdW5kIGEgY29tcGlsZXIgYnVnLgorLy8gbmRuYm9vc3Q6OnB5dGhvbjo6dHVwbGUgaGFzIHRvIGJlIHNlZW4gYnkgdGhlIGNvbXBpbGVyIGJlZm9yZSB0aGUKKy8vIG5kbmJvb3N0Ojp0dXBsZSBjbGFzcyB0ZW1wbGF0ZS4KK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBweXRob24geyBjbGFzcyB0dXBsZTsgfX0KKyNlbmRpZgorCisjaW5jbHVkZSAibmRuYm9vc3QvY29uZmlnLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcCIKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKy8vIFRoZSBNU1ZDIHZlcnNpb24KKyNpbmNsdWRlICJuZG5ib29zdC90dXBsZS9kZXRhaWwvdHVwbGVfYmFzaWNfbm9fcGFydGlhbF9zcGVjLmhwcCIKKworI2Vsc2UKKy8vIG90aGVyIGNvbXBpbGVycworI2luY2x1ZGUgIm5kbmJvb3N0L3JlZi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHVwbGUvZGV0YWlsL3R1cGxlX2Jhc2ljLmhwcCIKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgICAgCisKK3VzaW5nIHR1cGxlczo6dHVwbGU7Cit1c2luZyB0dXBsZXM6Om1ha2VfdHVwbGU7Cit1c2luZyB0dXBsZXM6OnRpZTsKKyNpZiAhZGVmaW5lZChCT09TVF9OT19VU0lOR19URU1QTEFURSkKK3VzaW5nIHR1cGxlczo6Z2V0OworI2VsaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKy8vCisvLyBUaGUgInVzaW5nIHR1cGxlczo6Z2V0IiBzdGF0ZW1lbnQgY2F1c2VzIHRoZQorLy8gQm9ybGFuZCBjb21waWxlciB0byBJQ0UsIHVzZSBmb3J3YXJkaW5nCisvLyBmdW5jdGlvbnMgaW5zdGVhZDoKKy8vCit0ZW1wbGF0ZTxpbnQgTiwgY2xhc3MgSFQsIGNsYXNzIFRUPgoraW5saW5lIHR5cGVuYW1lIHR1cGxlczo6YWNjZXNzX3RyYWl0czwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDxOLCB0dXBsZXM6OmNvbnM8SFQsIFRUPiA+Ojp0eXBlCisgICAgICAgICAgICAgICAgPjo6bm9uX2NvbnN0X3R5cGUKK2dldCh0dXBsZXM6OmNvbnM8SFQsIFRUPiYgYykgeworICByZXR1cm4gdHVwbGVzOjpnZXQ8TixIVCxUVD4oYyk7Cit9IAorLy8gZ2V0IGZ1bmN0aW9uIGZvciBjb25zdCBjb25zLWxpc3RzLCByZXR1cm5zIGEgY29uc3QgcmVmZXJlbmNlIHRvCisvLyB0aGUgZWxlbWVudC4gSWYgdGhlIGVsZW1lbnQgaXMgYSByZWZlcmVuY2UsIHJldHVybnMgdGhlIHJlZmVyZW5jZQorLy8gYXMgc3VjaCAodGhhdCBpcywgY2FuIHJldHVybiBhIG5vbi1jb25zdCByZWZlcmVuY2UpCit0ZW1wbGF0ZTxpbnQgTiwgY2xhc3MgSFQsIGNsYXNzIFRUPgoraW5saW5lIHR5cGVuYW1lIHR1cGxlczo6YWNjZXNzX3RyYWl0czwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHR1cGxlczo6ZWxlbWVudDxOLCB0dXBsZXM6OmNvbnM8SFQsIFRUPiA+Ojp0eXBlCisgICAgICAgICAgICAgICAgPjo6Y29uc3RfdHlwZQorZ2V0KGNvbnN0IHR1cGxlczo6Y29uczxIVCwgVFQ+JiBjKSB7CisgIHJldHVybiB0dXBsZXM6OmdldDxOLEhULFRUPihjKTsKK30KKyNlbHNlICAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisvLworLy8gTVNWQywgdXNpbmcgZGVjbGFyYXRpb25zIGRvbid0IG1peCB3aXRoIHRlbXBsYXRlcyB3ZWxsLAorLy8gc28gdXNlIGZvcndhcmRpbmcgZnVuY3Rpb25zIGluc3RlYWQ6CisvLwordGVtcGxhdGU8aW50IE4sIHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lIFRhaWw+Cit0eXBlbmFtZSB0dXBsZXM6OmRldGFpbDo6ZWxlbWVudF9yZWY8TiwgdHVwbGVzOjpjb25zPEhlYWQsIFRhaWw+ID46OlJFVAorZ2V0KHR1cGxlczo6Y29uczxIZWFkLCBUYWlsPiYgdCwgdHVwbGVzOjpkZXRhaWw6Ondvcmthcm91bmRfaG9sZGVyPE4+KiA9IDApCit7CisgICByZXR1cm4gdHVwbGVzOjpkZXRhaWw6OmdldF9jbGFzczxOPjo6Z2V0KHQpOworfQorCit0ZW1wbGF0ZTxpbnQgTiwgdHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUgVGFpbD4KK3R5cGVuYW1lIHR1cGxlczo6ZGV0YWlsOjplbGVtZW50X2NvbnN0X3JlZjxOLCB0dXBsZXM6OmNvbnM8SGVhZCwgVGFpbD4gPjo6UkVUCitnZXQoY29uc3QgdHVwbGVzOjpjb25zPEhlYWQsIFRhaWw+JiB0LCB0dXBsZXM6OmRldGFpbDo6d29ya2Fyb3VuZF9ob2xkZXI8Tj4qID0gMCkKK3sKKyAgIHJldHVybiB0dXBsZXM6OmRldGFpbDo6Z2V0X2NsYXNzPE4+OjpnZXQodCk7Cit9CisjZW5kaWYgLy8gQk9PU1RfTk9fVVNJTkdfVEVNUExBVEUKKyAgIAorfSAvLyBlbmQgbmFtZXNwYWNlIG5kbmJvb3N0CisKKworI2VuZGlmIC8vIEJPT1NUX1RVUExFX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U3MjZmOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZS5ocHAKQEAgLTAsMCArMSwxOCBAQAorLy8gKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAxLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVfRFdBMjAwMTAxMjBfSFBQCisjIGRlZmluZSBCT09TVF9UWVBFX0RXQTIwMDEwMTIwX0hQUAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisgIC8vIEp1c3QgYSBzaW1wbGUgInR5cGUgZW52ZWxvcGUiLiBVc2VmdWwgaW4gdmFyaW91cyBjb250ZXh0cywgbW9zdGx5IHRvIHdvcmsKKyAgLy8gYXJvdW5kIHNvbWUgTVNWQyBkZWZpY2llbmNpZXMuCisgIHRlbXBsYXRlIDxjbGFzcyBUPgorICBzdHJ1Y3QgdHlwZSB7fTsKKworfQorCisjZW5kaWYgLy8gQk9PU1RfVFlQRV9EV0EyMDAxMDEyMF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk1ZDMwYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMuaHBwCkBAIC0wLDAgKzEsMTAwIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKy8vICBTZWUgYm9vc3QvdHlwZV90cmFpdHMvKi5ocHAgZm9yIGZ1bGwgY29weXJpZ2h0IG5vdGljZXMuCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0hQUAorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2NvbnN0LmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY3YuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9sdmFsdWVfcmVmZXJlbmNlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcG9pbnRlci5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3J2YWx1ZV9yZWZlcmVuY2UuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF92b2xhdGlsZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25lZF9zdG9yYWdlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbW1vbl90eXBlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9jb25kaXRpb25hbC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvZGVjYXkuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2V4dGVudC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvZmxvYXRpbmdfcG9pbnRfcHJvbW90aW9uLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9mdW5jdGlvbl90cmFpdHMuaHBwIgorI2lmICFkZWZpbmVkKF9fQk9STEFORENfXykgJiYgIWRlZmluZWQoX19DVURBQ0NfXykKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbmV3X29wZXJhdG9yLmhwcCIKKyNlbmRpZgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Fzc2lnbi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdGhyb3dfY29uc3RydWN0b3IuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2NvcHkuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Rlc3RydWN0b3IuaHBwIgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19vcGVyYXRvci5ocHA+CisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfYXNzaWduLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb25zdHJ1Y3Rvci5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29weS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24uaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX21vdmVfY29uc3RydWN0b3IuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc192aXJ0dWFsX2Rlc3RydWN0b3IuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcml0aG1ldGljLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9hbmRfZGVyaXZlZC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9vZi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwIgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbXBsZXguaHBwPgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbXBvdW5kLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VtcHR5LmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mbG9hdC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXRpbmdfcG9pbnQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5kYW1lbnRhbC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfb2JqZWN0X3BvaW50ZXIuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9wb2ludGVyLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19ub3Rocm93X21vdmVfYXNzaWduYWJsZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGUuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX29iamVjdC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2x5bW9ycGhpYy5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9pbnRlci5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19ydmFsdWVfcmVmZXJlbmNlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zaWduZWQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc3RhdGVsZXNzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9pc191bmlvbi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdW5zaWduZWQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZpcnR1YWxfYmFzZV9vZi5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwIgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2VfdW5zaWduZWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2Vfc2lnbmVkLmhwcD4KKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yYW5rLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYm91bmRzLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfZXh0ZW50LmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIgorI2luY2x1ZGUgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jb25zdC5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcG9pbnRlci5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHAiCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3ZvbGF0aWxlLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcCIKKyNpZiAhKGRlZmluZWQoX19zZ2kpICYmIGRlZmluZWQoX19FREdfVkVSU0lPTl9fKSAmJiAoX19FREdfVkVSU0lPTl9fID09IDIzOCkpCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfcHJvbW90aW9uLmhwcCIKKyNpbmNsdWRlICJuZG5ib29zdC90eXBlX3RyYWl0cy9wcm9tb3RlLmhwcCIKKyNlbmRpZgorCisjaW5jbHVkZSAibmRuYm9vc3QvdHlwZV90cmFpdHMvaWNlLmhwcCIKKworI2VuZGlmIC8vIEJPT1NUX1RZUEVfVFJBSVRTX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxZmU2MzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHAKQEAgLTAsMCArMSw0NyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FERF9DT05TVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfQUREX0NPTlNUX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gKiBjb252ZXJ0IGEgdHlwZSBUIHRvIGNvbnN0IHR5cGUgLSBhZGRfY29uc3Q8VD4KKy8vIHRoaXMgaXMgbm90IHJlcXVpcmVkIHNpbmNlIHRoZSByZXN1bHQgaXMgYWx3YXlzCisvLyB0aGUgc2FtZSBhcyAiVCBjb25zdCIsIGJ1dCBpdCBkb2VzIHN1cHByZXNzIHdhcm5pbmdzCisvLyBmcm9tIHNvbWUgY29tcGlsZXJzOgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorLy8gVGhpcyBib2d1cyB3YXJuaW5nIHdpbGwgYXBwZWFyIHdoZW4gYWRkX2NvbnN0IGlzIGFwcGxpZWQgdG8gYQorLy8gY29uc3Qgdm9sYXRpbGUgcmVmZXJlbmNlIGJlY2F1c2Ugd2UgY2FuJ3QgZGV0ZWN0IGNvbnN0IHZvbGF0aWxlCisvLyByZWZlcmVuY2VzIHdpdGggTVNWQzYuCisjICAgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQxODEpIC8vIHdhcm5pbmcgQzQxODE6IHF1YWxpZmllciBhcHBsaWVkIHRvIHJlZmVyZW5jZSB0eXBlIGlnbm9yZWQKKyNlbmRpZiAKKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShhZGRfY29uc3QsVCxUIGNvbnN0KQorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxhZGRfY29uc3QsVCYsVCYpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0FERF9DT05TVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2N2LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2N2LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGYzYWMxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY3YuaHBwCkBAIC0wLDAgKzEsNDggQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkCisvLyAgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfQUREX0NWX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9BRERfQ1ZfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLyAqIGNvbnZlcnQgYSB0eXBlIFQgdG8gYSBjb25zdCB2b2xhdGlsZSB0eXBlIC0gYWRkX2N2PFQ+CisvLyB0aGlzIGlzIG5vdCByZXF1aXJlZCBzaW5jZSB0aGUgcmVzdWx0IGlzIGFsd2F5cworLy8gdGhlIHNhbWUgYXMgIlQgY29uc3Qgdm9sYXRpbGUiLCBidXQgaXQgZG9lcyBzdXBwcmVzcyB3YXJuaW5ncworLy8gZnJvbSBzb21lIGNvbXBpbGVyczoKKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykKKy8vIFRoaXMgYm9ndXMgd2FybmluZyB3aWxsIGFwcGVhciB3aGVuIGFkZF92b2xhdGlsZSBpcyBhcHBsaWVkIHRvIGEKKy8vIGNvbnN0IHZvbGF0aWxlIHJlZmVyZW5jZSBiZWNhdXNlIHdlIGNhbid0IGRldGVjdCBjb25zdCB2b2xhdGlsZQorLy8gcmVmZXJlbmNlcyB3aXRoIE1TVkM2LgorIyAgIHByYWdtYSB3YXJuaW5nKHB1c2gpCisjICAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MTgxKSAvLyB3YXJuaW5nIEM0MTgxOiBxdWFsaWZpZXIgYXBwbGllZCB0byByZWZlcmVuY2UgdHlwZSBpZ25vcmVkCisjZW5kaWYgCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEoYWRkX2N2LFQsVCBjb25zdCB2b2xhdGlsZSkKKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykKKyMgICBwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYgCisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsYWRkX2N2LFQmLFQmKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9BRERfQ1ZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9sdmFsdWVfcmVmZXJlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2x2YWx1ZV9yZWZlcmVuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhM2EyNTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9sdmFsdWVfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDI2IEBACisvLyAgQ29weXJpZ2h0IDIwMTAgSm9obiBNYWRkb2NrCisKKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX0VYVF9BRERfTFZBTFVFX1JFRkVSRU5DRV9fSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0VYVF9BRERfTFZBTFVFX1JFRkVSRU5DRV9fSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcmVmZXJlbmNlLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eworCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKGFkZF9sdmFsdWVfcmVmZXJlbmNlLFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUpCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGFkZF9sdmFsdWVfcmVmZXJlbmNlLFQmJixUJikKKyNlbmRpZgorCit9CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9MVkFMVUVfUkVGRVJFTkNFX19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcG9pbnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM0NzEzOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKworLy8gKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9BRERfUE9JTlRFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfQUREX1BPSU5URVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA8IDB4NUEwKQorLy8KKy8vIEZvciBzb21lIHJlYXNvbiB0aGlzIGltcGxlbWVudGF0aW9uIHN0b3BzIEJvcmxhbmRzIGNvbXBpbGVyCisvLyBmcm9tIGRyb3BwaW5nIGN2LXF1YWxpZmllcnMsIGl0IHN0aWxsIGZhaWxzIHdpdGggcmVmZXJlbmNlcworLy8gdG8gYXJyYXlzIGZvciBzb21lIHJlYXNvbiB0aG91Z2ggKHNocnVnLi4uKSAoSk0gMjAwMjExMDQpCisvLwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWRkX3BvaW50ZXJfaW1wbAoreworICAgIHR5cGVkZWYgVCogdHlwZTsKK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBhZGRfcG9pbnRlcl9pbXBsPFQmPgoreworICAgIHR5cGVkZWYgVCogdHlwZTsKK307Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBhZGRfcG9pbnRlcl9pbXBsPFQmY29uc3Q+Cit7CisgICAgdHlwZWRlZiBUKiB0eXBlOworfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFkZF9wb2ludGVyX2ltcGw8VCZ2b2xhdGlsZT4KK3sKKyAgICB0eXBlZGVmIFQqIHR5cGU7Cit9OwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWRkX3BvaW50ZXJfaW1wbDxUJmNvbnN0IHZvbGF0aWxlPgoreworICAgIHR5cGVkZWYgVCogdHlwZTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFkZF9wb2ludGVyX2ltcGwKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgbm9fcmVmX3R5cGU7CisgICAgdHlwZWRlZiBub19yZWZfdHlwZSogdHlwZTsKK307CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShhZGRfcG9pbnRlcixULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFkZF9wb2ludGVyX2ltcGw8VD46OnR5cGUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9BRERfUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4MjUzNTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsMTA3IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FERF9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0FERF9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgZGVmaW5lZChCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTKQorCit0ZW1wbGF0ZSA8Ym9vbCB4Pgorc3RydWN0IHJlZmVyZW5jZV9hZGRlcgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUJiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IHJlZmVyZW5jZV9hZGRlcjx0cnVlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFkZF9yZWZlcmVuY2VfaW1wbAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVmZXJlbmNlX2FkZGVyPAorICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzxUPiByZXN1bHQ7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc3VsdDo6dHlwZSB0eXBlOworfTsKKworI2Vsc2UKKy8vCisvLyBXZSBjYW4ndCBmaWx0ZXIgb3V0IHJ2YWx1ZV9yZWZlcmVuY2VzIGF0IHRoZSBzYW1lIGxldmVsIGFzCisvLyByZWZlcmVuY2VzIG9yIHdlIGdldCBhbWJpZ3VpdGllcyBmcm9tIG1zdmM6CisvLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBhZGRfcmVmZXJlbmNlX3J2YWx1ZV9sYXllcgoreworICAgIHR5cGVkZWYgVCYgdHlwZTsKK307CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFkZF9yZWZlcmVuY2VfcnZhbHVlX2xheWVyPFQmJj4KK3sKKyAgICB0eXBlZGVmIFQmJiB0eXBlOworfTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBhZGRfcmVmZXJlbmNlX2ltcGwKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9yZWZlcmVuY2VfcnZhbHVlX2xheWVyPFQ+Ojp0eXBlIHR5cGU7Cit9OworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsYWRkX3JlZmVyZW5jZSxUJixUJikKKyNlbmRpZgorCisjZW5kaWYKKworLy8gdGhlc2UgZnVsbCBzcGVjaWFsaXNhdGlvbnMgYXJlIGFsd2F5cyByZXF1aXJlZDoKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEoYWRkX3JlZmVyZW5jZSx2b2lkLHZvaWQpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9JTVBMX1NQRUMxKGFkZF9yZWZlcmVuY2Usdm9pZCBjb25zdCx2b2lkIGNvbnN0KQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfSU1QTF9TUEVDMShhZGRfcmVmZXJlbmNlLHZvaWQgdm9sYXRpbGUsdm9pZCB2b2xhdGlsZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEoYWRkX3JlZmVyZW5jZSx2b2lkIGNvbnN0IHZvbGF0aWxlLHZvaWQgY29uc3Qgdm9sYXRpbGUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEoYWRkX3JlZmVyZW5jZSxULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFkZF9yZWZlcmVuY2VfaW1wbDxUPjo6dHlwZSkKKworLy8gYWd1cnQsIDA3L21hci8wMzogd29ya2Fyb3VuZCBCb3JsYW5kJ3MgaWxsLWZvcm1lZCBzZW5zaXRpdml0eSB0byBhbiBhZGRpdGlvbmFsCisvLyBsZXZlbCBvZiBpbmRpcmVjdGlvbiwgaGVyZQorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsYWRkX3JlZmVyZW5jZSxUJixUJikKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfQUREX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3J2YWx1ZV9yZWZlcmVuY2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcnZhbHVlX3JlZmVyZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEwOWRlNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3J2YWx1ZV9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsNjYgQEAKKy8vICBhZGRfcnZhbHVlX3JlZmVyZW5jZS5ocHAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgMjAxMCBWaWNlbnRlIEouIEJvdGV0IEVzY3JpYmEKKworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9SVkFMVUVfUkVGRVJFTkNFX19IUFAKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9SVkFMVUVfUkVGRVJFTkNFX19IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgQysrMDMgaW1wbGVtZW50YXRpb24gb2YgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAyMC45LjcuMiBSZWZlcmVuY2UgbW9kaWZpY2F0aW9ucyBbbWV0YS50cmFucy5yZWZdICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgVmljZW50ZSBKLiBCb3RldCBFc2NyaWJhICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyBJZiBUIG5hbWVzIGFuIG9iamVjdCBvciBmdW5jdGlvbiB0eXBlIHRoZW4gdGhlIG1lbWJlciB0eXBlZGVmIHR5cGUKKy8vIHNoYWxsIG5hbWUgVCYmOyBvdGhlcndpc2UsIHR5cGUgc2hhbGwgbmFtZSBULiBbIE5vdGU6IFRoaXMgcnVsZSByZWZsZWN0cworLy8gdGhlIHNlbWFudGljcyBvZiByZWZlcmVuY2UgY29sbGFwc2luZy4gRm9yIGV4YW1wbGUsIHdoZW4gYSB0eXBlIFQgbmFtZXMKKy8vIGEgdHlwZSBUMSYsIHRoZSB0eXBlIGFkZF9ydmFsdWVfcmVmZXJlbmNlPFQ+Ojp0eXBlIGlzIG5vdCBhbiBydmFsdWUKKy8vIHJlZmVyZW5jZS4gLWVuZCBub3RlIF0KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB0eXBlX3RyYWl0c19kZXRhaWwgeworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIGJvb2wgYj4KKyAgICBzdHJ1Y3QgYWRkX3J2YWx1ZV9yZWZlcmVuY2VfaGVscGVyCisgICAgeyB0eXBlZGVmIFQgICB0eXBlOyB9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpICYmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IGFkZF9ydmFsdWVfcmVmZXJlbmNlX2hlbHBlcjxULCB0cnVlPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBUJiYgICB0eXBlOworICAgIH07CisjZW5kaWYKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZV9pbXAKKyAgICB7CisgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV90cmFpdHNfZGV0YWlsOjphZGRfcnZhbHVlX3JlZmVyZW5jZV9oZWxwZXIKKyAgICAgICAgICAgICAgICAgIDxULCAoaXNfdm9pZDxUPjo6dmFsdWUgPT0gZmFsc2UgJiYgaXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA9PSBmYWxzZSkgPjo6dHlwZSB0eXBlOworICAgIH07CisKK30KKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShhZGRfcnZhbHVlX3JlZmVyZW5jZSxULHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX3RyYWl0c19kZXRhaWw6OmFkZF9ydmFsdWVfcmVmZXJlbmNlX2ltcDxUPjo6dHlwZSkKKworfSAgLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9SVkFMVUVfUkVGRVJFTkNFX19IUFAKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfdm9sYXRpbGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfdm9sYXRpbGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZGRjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF92b2xhdGlsZS5ocHAKQEAgLTAsMCArMSw0NyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FERF9WT0xBVElMRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfQUREX1ZPTEFUSUxFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gKiBjb252ZXJ0IGEgdHlwZSBUIHRvIHZvbGF0aWxlIHR5cGUgLSBhZGRfdm9sYXRpbGU8VD4KKy8vIHRoaXMgaXMgbm90IHJlcXVpcmVkIHNpbmNlIHRoZSByZXN1bHQgaXMgYWx3YXlzCisvLyB0aGUgc2FtZSBhcyAiVCB2b2xhdGlsZSIsIGJ1dCBpdCBkb2VzIHN1cHByZXNzIHdhcm5pbmdzCisvLyBmcm9tIHNvbWUgY29tcGlsZXJzOgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorLy8gVGhpcyBib2d1cyB3YXJuaW5nIHdpbGwgYXBwZWFyIHdoZW4gYWRkX3ZvbGF0aWxlIGlzIGFwcGxpZWQgdG8gYQorLy8gY29uc3Qgdm9sYXRpbGUgcmVmZXJlbmNlIGJlY2F1c2Ugd2UgY2FuJ3QgZGV0ZWN0IGNvbnN0IHZvbGF0aWxlCisvLyByZWZlcmVuY2VzIHdpdGggTVNWQzYuCisjICAgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQxODEpIC8vIHdhcm5pbmcgQzQxODE6IHF1YWxpZmllciBhcHBsaWVkIHRvIHJlZmVyZW5jZSB0eXBlIGlnbm9yZWQKKyNlbmRpZiAKKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShhZGRfdm9sYXRpbGUsVCxUIHZvbGF0aWxlKQorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZiAKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxhZGRfdm9sYXRpbGUsVCYsVCYpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0FERF9WT0xBVElMRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25lZF9zdG9yYWdlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25lZF9zdG9yYWdlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGI5NzM1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbmVkX3N0b3JhZ2UuaHBwCkBAIC0wLDAgKzEsMTMgQEAKKworLy8gIENvcHlyaWdodCAoQykgSm9obiBNYWRkb2NrIDIwMDUuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FMSUdORURfU1RPUkFHRV9IUFBfSU5DTFVERUQKKyMgIGRlZmluZSBCT09TVF9UVF9BTElHTkVEX1NUT1JBR0VfSFBQX0lOQ0xVREVECisjICBpbmNsdWRlIDxuZG5ib29zdC9hbGlnbmVkX3N0b3JhZ2UuaHBwPgorI2VuZGlmIC8vIEJPT1NUX1RUX0FMSUdORURfU1RPUkFHRV9IUFBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyN2ZmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHAKQEAgLTAsMCArMSwxMjggQEAKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FMSUdOTUVOVF9PRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfQUxJR05NRU5UX09GX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X2RlZi5ocHA+CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICAgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MTIxIDQ1MTIpIC8vIGFsaWdubWVudCBpcyBzZW5zaXRpdmUgdG8gcGFja2luZworI2VuZGlmCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKKyNwcmFnbWEgb3B0aW9uIHB1c2ggLVZ4LSAtVmUtCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBhbGlnbm1lbnRfb2Y7CisKKy8vIGdldCB0aGUgYWxpZ25tZW50IG9mIHNvbWUgYXJiaXRyYXJ5IHR5cGU6CituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDMyNCkgLy8gc3RydWN0dXJlIHdhcyBwYWRkZWQgZHVlIHRvIF9fZGVjbHNwZWMoYWxpZ24oKSkKKyNlbmRpZgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWxpZ25tZW50X29mX2hhY2sKK3sKKyAgICBjaGFyIGM7CisgICAgVCB0OworICAgIGFsaWdubWVudF9vZl9oYWNrKCk7Cit9OworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKwordGVtcGxhdGUgPHVuc2lnbmVkIEEsIHVuc2lnbmVkIFM+CitzdHJ1Y3QgYWxpZ25tZW50X2xvZ2ljCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IEEgPCBTID8gQSA6IFMpOworfTsKKworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgYWxpZ25tZW50X29mX2ltcGwKK3sKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDID49IDE0MDApCisgICAgLy8KKyAgICAvLyBXaXRoIE1TVkMgYm90aCB0aGUgbmF0aXZlIF9fYWxpZ25vZiBvcGVyYXRvcgorICAgIC8vIGFuZCBvdXIgb3duIGxvZ2ljIGdldHMgdGhpbmdzIHdyb25nIGZyb20gdGltZSB0byB0aW1lIDotKAorICAgIC8vIFVzaW5nIGEgY29tYmluYXRpb24gb2YgdGhlIHR3byBzZWVtcyB0byBtYWtlIHRoZSBtb3N0IG9mIGEgYmFkIGpvYjoKKyAgICAvLworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPQorICAgICAgICAoOjpuZG5ib29zdDo6ZGV0YWlsOjphbGlnbm1lbnRfbG9naWM8CisgICAgICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6ZGV0YWlsOjphbGlnbm1lbnRfb2ZfaGFjazxUPikgLSBzaXplb2YoVCksCisgICAgICAgICAgICBfX2FsaWdub2YoVCkKKyAgICAgICAgPjo6dmFsdWUpKTsKKyNlbGlmICFkZWZpbmVkKEJPT1NUX0FMSUdOTUVOVF9PRikKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OmRldGFpbDo6YWxpZ25tZW50X2xvZ2ljPAorICAgICAgICAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OmRldGFpbDo6YWxpZ25tZW50X29mX2hhY2s8VD4pIC0gc2l6ZW9mKFQpLAorICAgICAgICAgICAgc2l6ZW9mKFQpCisgICAgICAgID46OnZhbHVlKSk7CisjZWxzZQorICAgLy8KKyAgIC8vIFdlIHB1dCB0aGlzIGhlcmUsIHJhdGhlciB0aGFuIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAvLyBhbGlnbm1lbnRfb2YgYmVsb3csIGJlY2F1c2UgTVNWQydzIF9fYWxpZ25vZiBkb2Vzbid0CisgICAvLyBhbHdheXMgd29yayBpbiB0aGF0IGNvbnRleHQgZm9yIHNvbWUgdW5leHBsYWluZWQgcmVhc29uLgorICAgLy8gKFNlZSB0eXBlX3dpdGhfYWxpZ25tZW50IHRlc3RzIGZvciB0ZXN0IGNhc2VzKS4KKyAgIC8vCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gQk9PU1RfQUxJR05NRU5UX09GKFQpKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfREVGMShhbGlnbm1lbnRfb2YsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmFsaWdubWVudF9vZl9pbXBsPFQ+Ojp2YWx1ZSkKKworLy8gcmVmZXJlbmNlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgc3BlY2lhbGx5LCBhc3N1bWUKKy8vIHRoYXQgYSByZWZlcmVuY2UgaXMganVzdCBhIHNwZWNpYWwgcG9pbnRlcjoKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWxpZ25tZW50X29mPFQmPgorICAgIDogcHVibGljIGFsaWdubWVudF9vZjxUKj4KK3sKK307CisjZW5kaWYKKyNpZmRlZiBfX0JPUkxBTkRDX18KKy8vIGxvbmcgZG91YmxlIGdpdmVzIGFuIGluY29ycmVjdCB2YWx1ZSBvZiAxMCAoISkKKy8vIHVubGVzcyB3ZSBkbyB0aGlzLi4uCitzdHJ1Y3QgbG9uZ19kb3VibGVfd3JhcHBlcnsgbG9uZyBkb3VibGUgbGQ7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBhbGlnbm1lbnRfb2Y8bG9uZyBkb3VibGU+CisgICA6IHB1YmxpYyBhbGlnbm1lbnRfb2Y8bG9uZ19kb3VibGVfd3JhcHBlcj57fTsKKyNlbmRpZgorCisvLyB2b2lkIGhhcyB0byBiZSB0cmVhdGVkIHNwZWNpYWxseToKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQsMCkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQgY29uc3QsMCkKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQgdm9sYXRpbGUsMCkKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQgY29uc3Qgdm9sYXRpbGUsMCkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKKyNwcmFnbWEgb3B0aW9uIHBvcAorI2VuZGlmCisjaWZkZWYgQk9PU1RfTVNWQworIyAgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9BTElHTk1FTlRfT0ZfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYXJpdGhtZXRpY190cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9hcml0aG1ldGljX3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFlNjUwMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYXJpdGhtZXRpY190cmFpdHMuaHBwCkBAIC0wLDAgKzEsMjAgQEAKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorLy8KKy8vICBkZWZpbmVzIHRyYWl0cyBjbGFzc2VzIGZvciBhcml0aG1ldGljIHR5cGVzOgorLy8gIGlzX3ZvaWQsIGlzX2ludGVncmFsLCBpc19mbG9hdCwgaXNfYXJpdGhtZXRpYywgaXNfZnVuZGFtZW50YWwuCisKKyNpZm5kZWYgQk9PU1RfVFRfQVJJVEhNRVRJQ19UUkFJVFNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0FSSVRITUVUSUNfVFJBSVRTX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmRhbWVudGFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9BUklUSE1FVElDX1RSQUlUU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYnJva2VuX2NvbXBpbGVyX3NwZWMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U1MDIzZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvYnJva2VuX2NvbXBpbGVyX3NwZWMuaHBwCkBAIC0wLDAgKzEsMTE3IEBACisKKy8vICBDb3B5cmlnaHQgMjAwMS0yMDAzIEFsZWtzZXkgR3VydG92b3kuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQ19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisvLyB0aGVzZSBhcmUgbmVlZGVkIHJlZ2FyZGxlc3Mgb2YgQk9PU1RfVFRfTk9fQlJPS0VOX0NPTVBJTEVSX1NQRUMgCisjaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZW1vdmVfY29uc3RfaW1wbCAgICAgeyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlbW92ZV92b2xhdGlsZV9pbXBsICB7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVtb3ZlX3BvaW50ZXJfaW1wbCAgIHsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZW1vdmVfcmVmZXJlbmNlX2ltcGwgeyB0eXBlZGVmIFQgdHlwZTsgfTsKK3R5cGVkZWYgaW50IGludm9rZV9CT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQ19vdXRzaWRlX2FsbF9uYW1lc3BhY2VzOworfX0KKyNlbmRpZgorCisvLyBhZ3VydCwgMjcvanVuLzAzOiBkaXNhYmxlIHRoZSB3b3JrYXJvdW5kIGlmIHVzZXIgZGVmaW5lZCAKKy8vIEJPT1NUX1RUX05PX0JST0tFTl9DT01QSUxFUl9TUEVDCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfVFRfTk9fQlJPS0VOX0NPTVBJTEVSX1NQRUMpCisKKyMgICBkZWZpbmUgQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMoVCkgLyoqLworCisjZWxzZQorCisvLyBzYW1lIGFzIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEgbWFjcm8sIGV4Y2VwdCB0aGF0IGl0CisvLyBuZXZlciBnZXRzICN1bmRlZi1pbmVkCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMSh0cmFpdCxzcGVjLHJlc3VsdCkgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQjI19pbXBsPHNwZWM+IFwKK3sgXAorICAgIHR5cGVkZWYgcmVzdWx0IHR5cGU7IFwKK307IFwKKy8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX0NPTlNUX1ZPTEFUSUxFX1JBTksxX1NQRUMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfY29uc3QsVCBjb25zdCxUKSAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfY29uc3QsVCBjb25zdCB2b2xhdGlsZSxUIHZvbGF0aWxlKSAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfdm9sYXRpbGUsVCB2b2xhdGlsZSxUKSAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfdm9sYXRpbGUsVCBjb25zdCB2b2xhdGlsZSxUIGNvbnN0KSAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX1BUUl9SRUZfUkFOS18xX1NQRUMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKixUKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKmNvbnN0LFQpICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKnZvbGF0aWxlLFQpICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKmNvbnN0IHZvbGF0aWxlLFQpICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcmVmZXJlbmNlLFQmLFQpICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX1BUUl9SRUZfUkFOS18yX1NQRUMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUIGNvbnN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUIHZvbGF0aWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUIGNvbnN0IHZvbGF0aWxlKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX0FMTF9SQU5LXzFfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzJfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQ09OU1RfVk9MQVRJTEVfUkFOSzFfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX0FMTF9SQU5LXzJfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQgY29uc3QqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQgY29uc3Qgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBkZXRhaWwgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgaW52b2tlX0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDX291dHNpZGVfYWxsX25hbWVzcGFjZXMgICAgICAgICAgICAgXAorICAgICAgcGxlYXNlX2ludm9rZV9CT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQ19vdXRzaWRlX2FsbF9uYW1lc3BhY2VzOyAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQgY29uc3QqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQgY29uc3Qgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH19ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMoYm9vbCkKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKGNoYXIpCisjaWZuZGVmIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyh3Y2hhcl90KQorI2VuZGlmCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhzaWduZWQgY2hhcikKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKHVuc2lnbmVkIGNoYXIpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhzaWduZWQgc2hvcnQpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyh1bnNpZ25lZCBzaG9ydCkKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKHNpZ25lZCBpbnQpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyh1bnNpZ25lZCBpbnQpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhzaWduZWQgbG9uZykKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKHVuc2lnbmVkIGxvbmcpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhmbG9hdCkKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKGRvdWJsZSkKKy8vQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMobG9uZyBkb3VibGUpCisKKy8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisjZGVmaW5lIEJPT1NUX0JST0tFTl9DT01QSUxFUl9UWVBFX1RSQUlUU19TUEVDSUFMSVpBVElPTihUKSBcCisgICAgQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMoVCkgXAorLyoqLworCisjZW5kaWYgLy8gQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbW1vbl90eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvY29tbW9uX3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ODE1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbW1vbl90eXBlLmhwcApAQCAtMCwwICsxLDE1NyBAQAorLy8gIGNvbW1vbl90eXBlLmhwcCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCAyMDA4IEhvd2FyZCBIaW5uYW50CisvLyAgQ29weXJpZ2h0IDIwMDggQmVtYW4gRGF3ZXMKKworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfQ09NTU9OX1RZUEVfSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0NPTU1PTl9UWVBFX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmIGRlZmluZWQoX19TVU5QUk9fQ0MpICYmICFkZWZpbmVkKEJPT1NUX0NPTU1PTl9UWVBFX0RPTlRfVVNFX1RZUEVPRikKKyMgIGRlZmluZSBCT09TVF9DT01NT05fVFlQRV9ET05UX1VTRV9UWVBFT0YKKyNlbmRpZgorI2lmIGRlZmluZWQoX19JQk1DUFBfXykgJiYgIWRlZmluZWQoQk9PU1RfQ09NTU9OX1RZUEVfRE9OVF9VU0VfVFlQRU9GKQorIyAgZGVmaW5lIEJPT1NUX0NPTU1PTl9UWVBFX0RPTlRfVVNFX1RZUEVPRgorI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpICYmICFkZWZpbmVkKEJPT1NUX0NPTU1PTl9UWVBFX0FSSVRZKQorI2RlZmluZSBCT09TVF9DT01NT05fVFlQRV9BUklUWSAzCisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFKSAmJiAhZGVmaW5lZChCT09TVF9DT01NT05fVFlQRV9ET05UX1VTRV9UWVBFT0YpCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3R5cGVvZi5ocHA+ICAgLy8gYm9vc3Qgd29uZGVycyBuZXZlciBjZWFzZSEKKyNlbmRpZgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX0NPTU1PTl9UWVBFX1NUQVRJQ19BU1NFUlQoQ05ELCBNU0csIFRZUEVTKSBzdGF0aWNfYXNzZXJ0KENORCxNU0cpCisjZWxpZiBkZWZpbmVkKEJPT1NUX0NPTU1PTl9UWVBFX1VTRVNfTVBMX0FTU0VSVCkKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjZGVmaW5lIEJPT1NUX0NPTU1PTl9UWVBFX1NUQVRJQ19BU1NFUlQoQ05ELCBNU0csIFRZUEVTKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9NUExfQVNTRVJUX01TRyhuZG5ib29zdDo6bXBsOjpib29sXzwgKENORCkgPjo6dHlwZTo6dmFsdWUsIE1TRywgVFlQRVMpCisjZWxzZQorI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorI2RlZmluZSBCT09TVF9DT01NT05fVFlQRV9TVEFUSUNfQVNTRVJUKENORCwgTVNHLCBUWVBFUykgQk9PU1RfU1RBVElDX0FTU0VSVChDTkQpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQpIHx8ICFkZWZpbmVkKEJPT1NUX0NPTU1PTl9UWVBFX1VTRVNfTVBMX0FTU0VSVCkKKyNkZWZpbmUgQk9PU1RfQ09NTU9OX1RZUEVfTVVTVF9CRV9BX0NPTVBMRV9UWVBFICJtdXN0IGJlIGNvbXBsZXRlIHR5cGUiCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUpICYmIGRlZmluZWQoQk9PU1RfQ09NTU9OX1RZUEVfRE9OVF9VU0VfVFlQRU9GKQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jb21tb25fdHlwZV9pbXAuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjZW5kaWYKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3J2YWx1ZV9yZWZlcmVuY2UuaHBwPgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgQysrMDMgaW1wbGVtZW50YXRpb24gb2YgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAyMC45LjcuNiBPdGhlciB0cmFuc2Zvcm1hdGlvbnMgW21ldGEudHJhbnMub3RoZXJdICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgSG93YXJkIEhpbm5hbnQgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgQWRhcHRlZCBmb3IgQm9vc3QgYnkgQmVtYW4gRGF3ZXMsIFZpY2VudGUgQm90ZXQgYW5kICBKZWZmcmV5IEhlbGxydW5nIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gcHJvdG90eXBlCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+CisgICAgc3RydWN0IGNvbW1vbl90eXBlOworI2Vsc2UgLy8gb3Igbm8gc3BlY2lhbGl6YXRpb24KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVSA9IHZvaWQsIGNsYXNzIFYgPSB2b2lkPgorICAgIHN0cnVjdCBjb21tb25fdHlwZQorICAgIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgY29tbW9uX3R5cGU8dHlwZW5hbWUgY29tbW9uX3R5cGU8VCwgVT46OnR5cGUsIFY+Ojp0eXBlIHR5cGU7CisgICAgfTsKKyNlbmRpZgorCisKKy8vIDEgYXJnCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpCisgICAgc3RydWN0IGNvbW1vbl90eXBlPFQ+CisjZWxzZQorICAgIHN0cnVjdCBjb21tb25fdHlwZTxULCB2b2lkLCB2b2lkPgorCisjZW5kaWYKKyAgICB7CisgICAgICAgIEJPT1NUX0NPTU1PTl9UWVBFX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKFQpID4gMCwgQk9PU1RfQ09NTU9OX1RZUEVfTVVTVF9CRV9BX0NPTVBMRV9UWVBFLCAoVCkpOworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgfTsKKworLy8gMiBhcmdzCituYW1lc3BhY2UgdHlwZV90cmFpdHNfZGV0YWlsIHsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgIHN0cnVjdCBjb21tb25fdHlwZV8yCisgICAgeworICAgIHByaXZhdGU6CisgICAgICAgIEJPT1NUX0NPTU1PTl9UWVBFX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKFQpID4gMCwgQk9PU1RfQ09NTU9OX1RZUEVfTVVTVF9CRV9BX0NPTVBMRV9UWVBFLCAoVCkpOworICAgICAgICBCT09TVF9DT01NT05fVFlQRV9TVEFUSUNfQVNTRVJUKHNpemVvZihVKSA+IDAsIEJPT1NUX0NPTU1PTl9UWVBFX01VU1RfQkVfQV9DT01QTEVfVFlQRSwgKFUpKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjbHZhbF9ib29sKCk7ICAvLyB3b3JrYXJvdW5kIGdjYyBidWc7IG5vdCByZXF1aXJlZCBieSBzdGQKKyAgICAgICAgc3RhdGljIHR5cGVuYW1lIGFkZF9ydmFsdWVfcmVmZXJlbmNlPFQ+Ojp0eXBlIGRlY2x2YWxfVCgpOyAgLy8gd29ya2Fyb3VuZCBnY2MgYnVnOyBub3QgcmVxdWlyZWQgYnkgc3RkCisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxVPjo6dHlwZSBkZWNsdmFsX1UoKTsgIC8vIHdvcmthcm91bmQgZ2NjIGJ1Zzsgbm90IHJlcXVpcmVkIGJ5IHN0ZAorICAgICAgICBzdGF0aWMgdHlwZW5hbWUgYWRkX3J2YWx1ZV9yZWZlcmVuY2U8Ym9vbD46OnR5cGUgZGVjbHZhbF9iKCk7ICAKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFKQorICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBkZWNsdHlwZShkZWNsdmFsPGJvb2w+KCkgPyBkZWNsdmFsPFQ+KCkgOiBkZWNsdmFsPFU+KCkpIHR5cGU7CisjZWxpZiBkZWZpbmVkKEJPT1NUX0NPTU1PTl9UWVBFX0RPTlRfVVNFX1RZUEVPRikKKyAgICBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZXRhaWxfdHlwZV90cmFpdHNfY29tbW9uX3R5cGU6OmNvbW1vbl90eXBlX2ltcGw8CisgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ+Ojp0eXBlLAorICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jdjxVPjo6dHlwZQorICAgICAgPjo6dHlwZSB0eXBlOworI2Vsc2UKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgQk9PU1RfVFlQRU9GX1RQTChkZWNsdmFsX2IoKSA/IGRlY2x2YWxfVCgpIDogZGVjbHZhbF9VKCkpIHR5cGU7CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fID09IDMgJiYgKF9fR05VQ19NSU5PUl9fID09IDIgfHwgX19HTlVDX01JTk9SX18gPT0gMykKKyAgICBwdWJsaWM6CisgICAgICAgIHZvaWQgcHVibGljX2R1bW15X2Z1bmN0aW9uX2p1c3RfdG9fc2lsZW5jZV93YXJuaW5nKCk7CisjZW5kaWYKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgc3RydWN0IGNvbW1vbl90eXBlXzI8VCwgVD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgIH07CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBVPgorICAgIHN0cnVjdCBjb21tb25fdHlwZTxULCBVPgorI2Vsc2UKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgICBzdHJ1Y3QgY29tbW9uX3R5cGU8VCwgVSwgdm9pZD4KKyNlbmRpZgorICAgIDogcHVibGljIHR5cGVfdHJhaXRzX2RldGFpbDo6Y29tbW9uX3R5cGVfMjxULFU+CisgICAgeyB9OworCisKKy8vIDMgb3IgbW9yZSBhcmdzCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lLi4uIFY+CisgICAgc3RydWN0IGNvbW1vbl90eXBlPFQsIFUsIFYuLi4+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgY29tbW9uX3R5cGU8dHlwZW5hbWUgY29tbW9uX3R5cGU8VCwgVT46OnR5cGUsIFYuLi4+Ojp0eXBlIHR5cGU7CisgICAgfTsKKyNlbmRpZgorfSAgLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gQk9PU1RfVFlQRV9UUkFJVFNfQ09NTU9OX1RZUEVfSFBQCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbXBvc2l0ZV90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9jb21wb3NpdGVfdHJhaXRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmU5NDY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9jb21wb3NpdGVfdHJhaXRzLmhwcApAQCAtMCwwICsxLDI5IEBACisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisvLworLy8gIGRlZmluZXMgdHJhaXRzIGNsYXNzZXMgZm9yIGNvbXBvc2l0ZSB0eXBlczoKKy8vICBpc19hcnJheSwgaXNfcG9pbnRlciwgaXNfcmVmZXJlbmNlLCBpc19tZW1iZXJfcG9pbnRlciwgaXNfZW51bSwgaXNfdW5pb24uCisvLworCisjaWZuZGVmIEJPT1NUX1RUX0NPTVBPU0lURV9UUkFJVFNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0NPTVBPU0lURV9UUkFJVFNfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3VuaW9uLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0NPTVBPU0lURV9UUkFJVFNfSFBQX0lOQ0xVREVECisKKworCisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9jb25kaXRpb25hbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmRpdGlvbmFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDJmNDVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9jb25kaXRpb25hbC5ocHAKQEAgLTAsMCArMSwyNSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAxMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0NPTkRJVElPTkFMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9DT05ESVRJT05BTF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK3RlbXBsYXRlIDxib29sIGIsIGNsYXNzIFQsIGNsYXNzIFU+CitzdHJ1Y3QgY29uZGl0aW9uYWwgOiBwdWJsaWMgbXBsOjppZl9jPGIsIFQsIFU+Cit7Cit9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAvLyBCT09TVF9UVF9DT05ESVRJT05BTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWZjMzUyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwCkBAIC0wLDAgKzEsNzYgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfQ09ORklHX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9DT05GSUdfSFBQX0lOQ0xVREVECisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0hQUAorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworLy8KKy8vIHdoZW5ldmVyIHdlIGhhdmUgYSBjb252ZXJzaW9uIGZ1bmN0aW9uIHdpdGggZWxsaXBzZXMKKy8vIGl0IG5lZWRzIHRvIGJlIGRlY2xhcmVkIF9fY2RlY2wgdG8gc3VwcHJlc3MgY29tcGlsZXIKKy8vIHdhcm5pbmdzIGZyb20gTVMgYW5kIEJvcmxhbmQgY29tcGlsZXJzICh0aGlzICptdXN0KgorLy8gYXBwZWFyIGJlZm9yZSB3ZSBpbmNsdWRlIGlzX3NhbWUuaHBwIGJlbG93KToKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpIHx8IChkZWZpbmVkKF9fQk9STEFORENfXykgJiYgIWRlZmluZWQoQk9PU1RfRElTQUJMRV9XSU4zMikpCisjICAgZGVmaW5lIEJPT1NUX1RUX0RFQ0wgX19jZGVjbAorI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfVFRfREVDTCAvKiovCisjZW5kaWYKKworIyBpZiAoQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzAwMCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMSkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfHwgIWRlZmluZWQoX19FREdfVkVSU0lPTl9fKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA8IDMpIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fSUJNQ1BQX18sIDwgNjAwICkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NUEwKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfHwgZGVmaW5lZChfX2docykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fSFBfYUNDLCA8IDYwNzAwKSAgICAgICAgICAgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoTVBXX0NQTFVTLCBCT09TVF9URVNURURfQVQoMHg4OTApKSAgICAgICAgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgQk9PU1RfVEVTVEVEX0FUKDB4NTgwKSkpICAgICAgIFwKKyAgICAmJiBkZWZpbmVkKEJPT1NUX05PX0lTX0FCU1RSQUNUKQorCisjICAgZGVmaW5lIEJPT1NUX1RUX05PX0NPTkZPUk1JTkdfSVNfQ0xBU1NfSU1QTEVNRU5UQVRJT04gMQorCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9UVF9OT19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OCisjIGRlZmluZSBCT09TVF9UVF9IQVNfQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTiAxCisjZW5kaWYKKworLy8KKy8vIERlZmluZSBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcgCisvLyB3aGVuIHdlIGNhbid0IHRlc3QgZm9yIGZ1bmN0aW9uIHR5cGVzIHdpdGggZWxpcHNpczoKKy8vCisjaWYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKQorIyAgZGVmaW5lIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORworI2VuZGlmCisKKy8vCisvLyBkZWZpbmUgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKKy8vIHdoZW4gd2Ugd2FudCB0byB0ZXN0IF9fc3RkY2FsbCBldGMgZnVuY3Rpb24gdHlwZXMgd2l0aCBpc19mdW5jdGlvbiBldGMKKy8vIChOb3RlLCBkb2VzIG5vdCB3b3JrIHdpdGggQm9ybGFuZCwgZXZlbiB0aG91Z2ggaXQgZG9lcyBzdXBwb3J0IF9fc3RkY2FsbCBldGMpOgorLy8KKyNpZiBkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgZGVmaW5lIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCisjZW5kaWYKKworLy8KKy8vIGRlZmluZSBCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QKKy8vIGlmIHRlc3RzIGZvciBjdi1xdWFsaWZpZWQgbWVtYmVyIGZ1bmN0aW9ucyBkb24ndCAKKy8vIHdvcmsgaW4gaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIKKy8vCisjaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzAwMCkgfHwgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCA8PSA2MDApCisjICBkZWZpbmUgQk9PU1RfVFRfTk9fQ1ZfRlVOQ19URVNUCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX1RUX0NPTkZJR19IUFBfSU5DTFVERUQKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbnZlcnNpb25fdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvY29udmVyc2lvbl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWM2MTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbnZlcnNpb25fdHJhaXRzLmhwcApAQCAtMCwwICsxLDE3IEBACisKKy8vIENvcHlyaWdodCAyMDAwIEpvaG4gTWFkZG9jayAoam9obkBqb2hubWFkZG9jay5jby51aykKKy8vIENvcHlyaWdodCAyMDAwIEplcmVteSBTaWVrIChqc2lla0Bsc2MubmQuZWR1KQorLy8gQ29weXJpZ2h0IDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfQ09OVkVSU0lPTl9UUkFJVFNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0NPTlZFUlNJT05fVFJBSVRTX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfQ09OVkVSU0lPTl9UUkFJVFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2N2X3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2N2X3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY4NDBiOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvY3ZfdHJhaXRzLmhwcApAQCAtMCwwICsxLDI0IEBACisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisvLworLy8gIGRlZmluZXMgdHJhaXRzIGNsYXNzZXMgZm9yIGN2LXF1YWxpZmllZCB0eXBlczoKKy8vICBpc19jb25zdCwgaXNfdm9sYXRpbGUsIHJlbW92ZV9jb25zdCwgcmVtb3ZlX3ZvbGF0aWxlLCByZW1vdmVfY3YuCisKKyNpZm5kZWYgQk9PU1RfVFRfQ1ZfVFJBSVRTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9DVl9UUkFJVFNfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF92b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2N2LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3ZvbGF0aWxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfQ1ZfVFJBSVRTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZWNheS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RlY2F5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDIzNjdlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZWNheS5ocHAKQEAgLTAsMCArMSw0NCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrICYgVGhvcnN0ZW4gT3R0b3NlbiAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0RFQ0FZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERUNBWV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYm91bmRzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcG9pbnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZGVudGl0eS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCAKK3sKKworICAgIHRlbXBsYXRlPCBjbGFzcyBUID4KKyAgICBzdHJ1Y3QgZGVjYXkKKyAgICB7CisgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgVHk7CisgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgbXBsOjpldmFsX2lmPCAKKyAgICAgICAgICAgIGlzX2FycmF5PFR5PiwKKyAgICAgICAgICAgIG1wbDo6aWRlbnRpdHk8Qk9PU1RfREVEVUNFRF9UWVBFTkFNRSByZW1vdmVfYm91bmRzPFR5Pjo6dHlwZSo+LAorICAgICAgICAgICAgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBtcGw6OmV2YWxfaWY8IAorICAgICAgICAgICAgICAgIGlzX2Z1bmN0aW9uPFR5PiwKKyAgICAgICAgICAgICAgICBhZGRfcG9pbnRlcjxUeT4sCisgICAgICAgICAgICAgICAgbXBsOjppZGVudGl0eTxUeT4KKyAgICAgICAgICAgID4KKyAgICAgICAgPjo6dHlwZSB0eXBlOworICAgIH07CisgICAgCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERUNBWV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODBlOTk5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwCkBAIC0wLDAgKzEsMTk2IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICRTb3VyY2UkCisvLyAkRGF0ZTogMjAxMS0xMC0wOSAxNToyODozMyAtMDcwMCAoU3VuLCAwOSBPY3QgMjAxMSkgJAorLy8gJFJldmlzaW9uOiA3NDg2NSAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfY29uc3RhbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8KKy8vIFVuZm9ydHVuYXRlbHkgc29tZSBsaWJyYXJpZXMgaGF2ZSBzdGFydGVkIHVzaW5nIHRoaXMgaGVhZGVyIHdpdGhvdXQKKy8vIGNsZWFuaW5nIHVwIGFmdGVyd2FyZHM6IHNvIHdlJ2QgYmV0dGVyIHVuZGVmIHRoZSBtYWNyb3MganVzdCBpbiBjYXNlIAorLy8gdGhleSd2ZSBiZWVuIGRlZmluZWQgYWxyZWFkeS4uLi4KKy8vCisjaWZkZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTAorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0wKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzIKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX1NVTlBST19DQykgJiYgKF9fU1VOUFJPX0NDIDwgMHg1NzApCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCxDPiB0eXBlOyBcCisgICAgZW51bSB7IHZhbHVlID0gdHlwZTo6dmFsdWUgfTsgXAorICAgIC8qKi8KKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpCisKKyNlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgQk9PU1RfTVNWQyA8IDEzMDAKKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OmludGVncmFsX2NvbnN0YW50PGJvb2wsQz4gYmFzZV87IFwKKyAgICB1c2luZyBiYXNlXzo6dmFsdWU7IFwKKyAgICAvKiovCisKKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0wKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSAvKiovCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIDogcHVibGljIDo6bmRuYm9vc3Q6OmludGVncmFsX2NvbnN0YW50PGJvb2wsQz4KKyNlbmRpZiAKKworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEodHJhaXQsVCxDKSBcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0cmFpdCBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsdHJhaXQsKFQpKSBcCit9OyBcCitcCitCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLHRyYWl0KSBcCisvKiovCisKKworI2RlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKHRyYWl0LFQxLFQyLEMpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgdHJhaXQgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgyLHRyYWl0LChUMSxUMikpIFwKK307IFwKK1wKK0JPT1NUX1RUX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDIsdHJhaXQpIFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYzKHRyYWl0LFQxLFQyLFQzLEMpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzID4gc3RydWN0IHRyYWl0IFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMyx0cmFpdCwoVDEsVDIsVDMpKSBcCit9OyBcCitcCitCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygzLHRyYWl0KSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEodHJhaXQsc3AsQykgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQ8IHNwID4gXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDEsdHJhaXQsKHNwKSkgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMyKHRyYWl0LHNwMSxzcDIsQykgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQ8IHNwMSxzcDIgPiBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMix0cmFpdCwoc3AxLHNwMikpIFwKK307IFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKHRyYWl0LHNwLEMpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0IyNfaW1wbDwgc3AgPiBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKEMpKTsgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzIodHJhaXQsc3AxLHNwMixDKSBcCit0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdCMjX2ltcGw8IHNwMSxzcDIgPiBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKEMpKTsgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMShwYXJhbSx0cmFpdCxzcCxDKSBcCit0ZW1wbGF0ZTwgcGFyYW0gPiBzdHJ1Y3QgdHJhaXQ8IHNwID4gXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHBhcmFtMSxwYXJhbTIsdHJhaXQsc3AsQykgXAordGVtcGxhdGU8IHBhcmFtMSwgcGFyYW0yID4gc3RydWN0IHRyYWl0PCBzcCA+IFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMShwYXJhbSx0cmFpdCxzcDEsc3AyLEMpIFwKK3RlbXBsYXRlPCBwYXJhbSA+IHN0cnVjdCB0cmFpdDwgc3AxLHNwMiA+IFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLHRyYWl0LChzcDEsc3AyKSkgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMihwYXJhbTEscGFyYW0yLHRyYWl0LHNwMSxzcDIsQykgXAordGVtcGxhdGU8IHBhcmFtMSwgcGFyYW0yID4gc3RydWN0IHRyYWl0PCBzcDEsc3AyID4gXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEocGFyYW0sdHJhaXQsc3AxLHNwMixDKSBcCit0ZW1wbGF0ZTwgcGFyYW0gPiBzdHJ1Y3QgdHJhaXQjI19pbXBsPCBzcDEsc3AyID4gXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChDKSk7IFwKK307IFwKKy8qKi8KKworI2lmbmRlZiBCT09TVF9OT19DVl9TUEVDSUFMSVpBVElPTlMKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEodHJhaXQsc3AsdmFsdWUpIFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMSh0cmFpdCxzcCx2YWx1ZSkgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKHRyYWl0LHNwIGNvbnN0LHZhbHVlKSBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEodHJhaXQsc3Agdm9sYXRpbGUsdmFsdWUpIFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMSh0cmFpdCxzcCBjb25zdCB2b2xhdGlsZSx2YWx1ZSkgXAorICAgIC8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKHRyYWl0LHNwLHZhbHVlKSBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEodHJhaXQsc3AsdmFsdWUpIFwKKyAgICAvKiovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA4ZmViZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwCkBAIC0wLDAgKzEsMjggQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gJFNvdXJjZSQKKy8vICREYXRlOiAyMDExLTEwLTA5IDE1OjI4OjMzIC0wNzAwIChTdW4sIDA5IE9jdCAyMDExKSAkCisvLyAkUmV2aXNpb246IDc0ODY1ICQKKworI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0wKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjMKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMyCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzIKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzIKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jb21tb25fdHlwZV9pbXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY29tbW9uX3R5cGVfaW1wLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2YyYmQwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY29tbW9uX3R5cGVfaW1wLmhwcApAQCAtMCwwICsxLDMzMyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jb21tb25fdHlwZV9pbXAuaHBwCisgKgorICogQ29weXJpZ2h0IDIwMTAsIEplZmZyZXkgSGVsbHJ1bmcuCisgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuICAoU2VlIGFjY29tcGFueWluZworICogZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKgorICogc3RydWN0IG5kbmJvb3N0Ojpjb21tb25fdHlwZTxULFU+CisgKgorICogY29tbW9uX3R5cGU8VCxVPjo6dHlwZSBpcyB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbgorICogICAgIGIoKSA/IHgoKSA6IHkoKQorICogd2hlcmUgYigpIHJldHVybnMgYSBib29sLCB4KCkgaGFzIHJldHVybiB0eXBlIFQsIGFuZCB5KCkgaGFzIHJldHVybiB0eXBlIFUuCisgKiBTZWUKKyAqICAgICBodHRwOi8vd3d3Lm9wZW4tc3RkLm9yZy9qdGMxL3NjMjIvd2cyMS9kb2NzL3BhcGVycy8yMDA4L24yNjYxLmh0bSNjb21tb25fdHlwZQorICoKKyAqIE5vdGUgdGhhdCB0aGlzIGV2YWx1YXRlcyB0byB2b2lkIGlmIG9uZSBvciBib3RoIG9mIFQgYW5kIFUgaXMgdm9pZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfREVUQUlMX0NPTU1PTl9UWVBFX0lNUF9IUFAKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfREVUQUlMX0NPTU1PTl9UWVBFX0lNUF9IUFAKKworI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9iZWdpbl9lbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9jb250YWlucy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2NvcHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9kZXJlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2V2YWxfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2luc2VydGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvbmV4dC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcGxhY2Vob2xkZXJzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvcHVzaF9iYWNrLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL3ZlY3Rvci92ZWN0b3IwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yL3ZlY3RvcjEwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRlZ3JhbF9jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2Vfc2lnbmVkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tYWtlX3Vuc2lnbmVkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsX3R5cGVfdHJhaXRzX2NvbW1vbl90eXBlCit7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzdHJ1Y3QgcHJvcGFnYXRlX2N2PCBGcm9tLCBUbyA+CisgKgorICogVGhpcyBtZXRhZnVuY3Rpb24gcHJvcGFnYXRlcyBjdi1xdWFsaWZpZXJzIG9uIHR5cGUgRnJvbSB0byB0eXBlIFRvLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGU8IGNsYXNzIEZyb20sIGNsYXNzIFRvID4KK3N0cnVjdCBwcm9wYWdhdGVfY3YKK3sgdHlwZWRlZiBUbyB0eXBlOyB9OwordGVtcGxhdGU8IGNsYXNzIEZyb20sIGNsYXNzIFRvID4KK3N0cnVjdCBwcm9wYWdhdGVfY3Y8IGNvbnN0IEZyb20sIFRvID4KK3sgdHlwZWRlZiBUbyBjb25zdCB0eXBlOyB9OwordGVtcGxhdGU8IGNsYXNzIEZyb20sIGNsYXNzIFRvID4KK3N0cnVjdCBwcm9wYWdhdGVfY3Y8IHZvbGF0aWxlIEZyb20sIFRvID4KK3sgdHlwZWRlZiBUbyB2b2xhdGlsZSB0eXBlOyB9OwordGVtcGxhdGU8IGNsYXNzIEZyb20sIGNsYXNzIFRvID4KK3N0cnVjdCBwcm9wYWdhdGVfY3Y8IGNvbnN0IHZvbGF0aWxlIEZyb20sIFRvID4KK3sgdHlwZWRlZiBUbyBjb25zdCB2b2xhdGlsZSB0eXBlOyB9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogc3RydWN0IGlzX2ludGVncmFsX29yX2VudW08VD4KKyAqCisgKiBUaGlzIG1ldGFmdW5jdGlvbiBkZXRlcm1pbmVzIGlmIFQgaXMgYW4gaW50ZWdyYWwgdHlwZSB3aGljaCBjYW4gYmUgbWFkZQorICogc2lnbmVkIG9yIHVuc2lnbmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGU8IGNsYXNzIFQgPgorc3RydWN0IGlzX2ludGVncmFsX29yX2VudW0KKyAgICA6IHB1YmxpYyBtcGw6Om9yXzwgaXNfaW50ZWdyYWw8VD4sIGlzX2VudW08VD4gPgoreyB9OwordGVtcGxhdGU8Pgorc3RydWN0IGlzX2ludGVncmFsX29yX2VudW08IGJvb2wgPgorICAgIDogcHVibGljIGZhbHNlX3R5cGUKK3sgfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHN0cnVjdCBtYWtlX3Vuc2lnbmVkX3NvZnQ8VD4KKyAqIHN0cnVjdCBtYWtlX3NpZ25lZF9zb2Z0PFQ+CisgKgorICogVGhlc2UgbWV0YWZ1bmN0aW9uIGFyZSBpZGVudGljYWwgdG8gbWFrZV91bnNpZ25lZCBhbmQgbWFrZV9zaWduZWQsCisgKiByZXNwZWN0aXZlbHksIGV4Y2VwdCBmb3Igc3BlY2lhbC1jYXNpbmcgYm9vbC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3RlbXBsYXRlPCBjbGFzcyBUID4KK3N0cnVjdCBtYWtlX3Vuc2lnbmVkX3NvZnQKKyAgICA6IHB1YmxpYyBtYWtlX3Vuc2lnbmVkPFQ+Cit7IH07Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgbWFrZV91bnNpZ25lZF9zb2Z0PCBib29sID4KK3sgdHlwZWRlZiBib29sIHR5cGU7IH07CisKK3RlbXBsYXRlPCBjbGFzcyBUID4KK3N0cnVjdCBtYWtlX3NpZ25lZF9zb2Z0CisgICAgOiBwdWJsaWMgbWFrZV9zaWduZWQ8VD4KK3sgfTsKK3RlbXBsYXRlPD4KK3N0cnVjdCBtYWtlX3NpZ25lZF9zb2Z0PCBib29sID4KK3sgdHlwZWRlZiBib29sIHR5cGU7IH07CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzdHJ1Y3Qgc2l6ZW9mX3Q8Tj4KKyAqIHR5cGVkZWYgLi4uIHllc190eXBlCisgKiB0eXBlZGVmIC4uLiBub190eXBlCisgKgorICogVGhlc2UgdHlwZXMgYXJlIGludGVncmFsIHBsYXllcnMgaW4gdGhlIHVzZSBvZiB0aGUgInNpemVvZiB0cmljayIsIGkuZS4sIHdlCisgKiBjYW4gZGlzdGluZ3Vpc2ggb3ZlcmxvYWQgc2VsZWN0aW9uIGJ5IGluc3BlY3RpbmcgdGhlIHNpemUgb2YgdGhlIHJldHVybiB0eXBlCisgKiBvZiB0aGUgb3ZlcmxvYWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZTwgc3RkOjpzaXplX3QgTiA+IHN0cnVjdCBzaXplb2ZfdCB7IGNoYXIgX2R1bW15W05dOyB9OwordHlwZWRlZiBzaXplb2ZfdDwxPiB5ZXNfdHlwZTsKK3R5cGVkZWYgc2l6ZW9mX3Q8Mj4gbm9fdHlwZTsKK0JPT1NUX01QTF9BU1NFUlRfUkVMQVRJT04oIHNpemVvZiggeWVzX3R5cGUgKSwgPT0sIDEgKTsKK0JPT1NUX01QTF9BU1NFUlRfUkVMQVRJT04oIHNpemVvZiggbm9fdHlwZSApLCA9PSwgMiApOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcnZhbHVlX3Rlc3QoVCYpIC0+IG5vX3R5cGUKKyAqIHJ2YWx1ZV90ZXN0KC4uLikgLT4geWVzX3R5cGUKKyAqCisgKiBUaGVzZSBvdmVybG9hZHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBydmFsdWUtbmVzcyBvZiBhbiBleHByZXNzaW9uLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGU8IGNsYXNzIFQgPiBub190eXBlIHJ2YWx1ZV90ZXN0KFQmKTsKK3llc190eXBlIHJ2YWx1ZV90ZXN0KC4uLik7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBzdHJ1Y3QgY29udmVyc2lvbl90ZXN0X292ZXJsb2FkczwgU2VxdWVuY2UgPgorICoKKyAqIFRoaXMgc3RydWN0IGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgb2YgdGhlIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gYXBwbHksIGVhY2gKKyAqIG9uZSB0YWtpbmcgYSBzaW5nbGUgcGFyYW1ldGVyIG9mIGEgdHlwZSB3aXRoaW4gdGhlIEJvb3N0Lk1QTCBzZXF1ZW5jZQorICogU2VxdWVuY2UuICBFYWNoIHN1Y2ggYXBwbHkgb3ZlcmxvYWQgaGFzIGEgcmV0dXJuIHR5cGUgd2l0aCBzaXplb2YgZXF1YWwgdG8KKyAqIG9uZSBwbHVzIHRoZSBpbmRleCBvZiB0aGUgcGFyYW1ldGVyIHR5cGUgd2l0aGluIFNlcXVlbmNlLiAgVGh1cywgd2UgY2FuCisgKiBkZWR1Y2UgdGhlIHR5cGUgVCBvZiBhbiBleHByZXNzaW9uIGFzIGxvbmcgYXMgd2UgY2FuIGdlbmVyYXRlIGEgZmluaXRlIHNldCBvZgorICogY2FuZGlkYXRlIHR5cGVzIGNvbnRhaW5pbmcgVCB2aWEgdGhlc2UgYXBwbHkgb3ZlcmxvYWRzIGFuZCB0aGUgInNpemVvZgorICogdHJpY2siLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGU8IGNsYXNzIEZpcnN0LCBjbGFzcyBMYXN0LCBzdGQ6OnNpemVfdCBJbmRleCA+CitzdHJ1Y3QgY29udmVyc2lvbl90ZXN0X292ZXJsb2Fkc19pdGVyYXRlCisgICAgOiBwdWJsaWMgY29udmVyc2lvbl90ZXN0X292ZXJsb2Fkc19pdGVyYXRlPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6bmV4dDwgRmlyc3QgPjo6dHlwZSwgTGFzdCwgSW5kZXggKyAxCisgICAgICA+Cit7CisgICAgdXNpbmcgY29udmVyc2lvbl90ZXN0X292ZXJsb2Fkc19pdGVyYXRlPAorICAgICAgICB0eXBlbmFtZSBtcGw6Om5leHQ8IEZpcnN0ID46OnR5cGUsIExhc3QsIEluZGV4ICsgMQorICAgID46OmFwcGx5OworICAgIHN0YXRpYyBzaXplb2ZfdDwgSW5kZXggKyAxID4KKyAgICBhcHBseSh0eXBlbmFtZSBtcGw6OmRlcmVmPCBGaXJzdCA+Ojp0eXBlKTsKK307CisKK3RlbXBsYXRlPCBjbGFzcyBMYXN0LCBzdGQ6OnNpemVfdCBJbmRleCA+CitzdHJ1Y3QgY29udmVyc2lvbl90ZXN0X292ZXJsb2Fkc19pdGVyYXRlPCBMYXN0LCBMYXN0LCBJbmRleCA+Cit7IHN0YXRpYyBzaXplb2ZfdDwgSW5kZXggKyAxID4gYXBwbHkoLi4uKTsgfTsKKwordGVtcGxhdGU8IGNsYXNzIFNlcXVlbmNlID4KK3N0cnVjdCBjb252ZXJzaW9uX3Rlc3Rfb3ZlcmxvYWRzCisgICAgOiBwdWJsaWMgY29udmVyc2lvbl90ZXN0X292ZXJsb2Fkc19pdGVyYXRlPAorICAgICAgICAgIHR5cGVuYW1lIG1wbDo6YmVnaW48IFNlcXVlbmNlID46OnR5cGUsCisgICAgICAgICAgdHlwZW5hbWUgbXBsOjplbmQ8IFNlcXVlbmNlID46OnR5cGUsCisgICAgICAgICAgMAorICAgICAgPgoreyB9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogc3RydWN0IHNlbGVjdDwgU2VxdWVuY2UsIEluZGV4ID4KKyAqCisgKiBzZWxlY3QgaXMgc3lub255bW91cyB3aXRoIG1wbDo6YXRfYyB1bmxlc3MgSW5kZXggZXF1YWxzIHRoZSBzaXplIG9mIHRoZQorICogQm9vc3QuTVBMIFNlcXVlbmNlLCBpbiB3aGljaCBjYXNlIHRoaXMgZXZhbHVhdGVzIHRvIHZvaWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0ZW1wbGF0ZTwKKyAgICBjbGFzcyBTZXF1ZW5jZSwgaW50IEluZGV4LAorICAgIGludCBOID0gbXBsOjpzaXplPCBTZXF1ZW5jZSA+Ojp2YWx1ZQorPgorc3RydWN0IHNlbGVjdAorICAgIDogcHVibGljIG1wbDo6YXRfYzwgU2VxdWVuY2UsIEluZGV4ID4KK3sgfTsKK3RlbXBsYXRlPCBjbGFzcyBTZXF1ZW5jZSwgaW50IE4gPgorc3RydWN0IHNlbGVjdDwgU2VxdWVuY2UsIE4sIE4gPgoreyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGNsYXNzIGRlZHVjZV9jb21tb25fdHlwZTwgVCwgVSwgTm9taW5hbENhbmRpZGF0ZXMgPgorICogc3RydWN0IG5vbWluYWxfY2FuZGlkYXRlczxULFU+CisgKiBzdHJ1Y3QgY29tbW9uX3R5cGVfZGlzcGF0Y2hfb25fcnZhbHVlbmVzczxULFU+CisgKiBzdHJ1Y3QgY29tbW9uX3R5cGVfaW1wbDxULFU+CisgKgorICogVGhlc2UgY2xhc3NlcyBhbmQgc3RydWN0cyBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaGluZCBjb21tb25fdHlwZSwgd2hpY2ggZ29lcworICogcm91Z2hseSBhcyBmb2xsb3dzLiAgTGV0IEMgYmUgdGhlIHR5cGUgb2YgdGhlIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24KKyAqICAgICBkZWNsdmFsPCBib29sID4oKSA/IGRlY2x2YWw8VD4oKSA6IGRlY2x2YWw8VT4oKQorICogaWYgQyBpcyBhbiBydmFsdWUsIHRoZW46CisgKiAgICAgbGV0IFQnIGFuZCBVJyBiZSBUIGFuZCBVIHN0cmlwcGVkIG9mIHJlZmVyZW5jZS0gYW5kIGN2LXF1YWxpZmllcnMKKyAqICAgICBpZiBUJyBhbmQgVScgYXJlIHBvaW50ZXIgdHlwZXMsIHNheSwgVCcgPSBWKiBhbmQgVScgPSBXKiwgdGhlbjoKKyAqICAgICAgICAgZGVmaW5lIHRoZSBzZXQgb2YgTm9taW5hbENhbmRpZGF0ZXMgdG8gYmUKKyAqICAgICAgICAgICAgIHsgViosIFcqLCBWJyosIFcnKiB9CisgKiAgICAgICAgICAgd2hlcmUgVicgaXMgViB3aXRoIHdoYXRldmVyIGN2LXF1YWxpZmllcnMgYXJlIG9uIFcsIGFuZCBXJyBpcyBXCisgKiAgICAgICAgICAgd2l0aCB3aGF0ZXZlciBjdi1xdWFsaWZpZXJzIGFyZSBvbiBWCisgKiAgICAgZWxzZSBpZiBUJyBhbmQgVScgYXJlIGJvdGggaW50ZWdyYWwgb3IgZW51bSB0eXBlcywgdGhlbjoKKyAqICAgICAgICAgZGVmaW5lIHRoZSBzZXQgb2YgTm9taW5hbENhbmRpZGF0ZXMgdG8gYmUKKyAqICAgICAgICAgICAgIHsKKyAqICAgICAgICAgICAgICAgICB1bnNpZ25lZF9zb2Z0KFQnKSwKKyAqICAgICAgICAgICAgICAgICB1bnNpZ25lZF9zb2Z0KFUnKSwKKyAqICAgICAgICAgICAgICAgICBzaWduZWRfc29mdChUJyksCisgKiAgICAgICAgICAgICAgICAgc2lnbmVkX3NvZnQoVScpLAorICogICAgICAgICAgICAgICAgIFQnLAorICogICAgICAgICAgICAgICAgIFUnLAorICogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwKKyAqICAgICAgICAgICAgICAgICBpbnQKKyAqICAgICAgICAgICAgIH0KKyAqICAgICAgICAgICB3aGVyZSB1bnNpZ25lZF9zb2Z0KFgpIGlzIG1ha2VfdW5zaWduZWRfc29mdDxYPjo6dHlwZSBhbmQKKyAqICAgICAgICAgICBzaWduZWRfc29mdChYKSBpcyBtYWtlX3NpZ25lZF9zb2Z0PFg+Ojp0eXBlICh0aGVzZSBhcmUgYWxsCisgKiAgICAgICAgICAgZ2VuZXJhbGx5IG5lY2Vzc2FyeSB0byBjb3ZlciB0aGUgdmFyaW91cyBpbnRlZ3JhbCBwcm9tb3Rpb24gY2FzZXMpCisgKiAgICAgZWxzZQorICogICAgICAgICBkZWZpbmUgdGhlIHNldCBvZiBOb21pbmFsQ2FuZGlkYXRlcyB0byBiZQorICogICAgICAgICAgICAgeyBUJywgVScgfQorICogZWxzZQorICogICAgIGxldCBWIGFuZCBXIGJlIFQgYW5kIFUgc3RyaXBwZWQgb2YgcmVmZXJlbmNlLXF1YWxpZmllcnMKKyAqICAgICBkZWZpbmUgdGhlIHNldCBvZiBOb21pbmFsQ2FuZGlkYXRlcyB0byBiZQorICogICAgICAgICB7IFYmLCBXJiwgVicmLCBXJyYgfQorICogICAgIHdoZXJlIFYnIGlzIFYgd2l0aCB3aGF0ZXZlciBjdi1xdWFsaWZpZXJzIGFyZSBvbiBXLCBhbmQgVycgaXMgVyB3aXRoCisgKiAgICAgICB3aGF0ZXZlciBjdi1xdWFsaWZpZXJzIGFyZSBvbiBWCisgKiBkZWZpbmUgdGhlIHNldCBvZiBDYW5kaWRhdGVzIHRvIGJlIGVxdWFsIHRvIHRoZSBzZXQgb2YgTm9taW5hbENhbmRpZGF0ZXMgd2l0aAorICogZHVwbGljYXRlcyByZW1vdmVkLCBhbmQgdXNlIHRoaXMgc2V0IG9mIENhbmRpZGF0ZXMgdG8gZGV0ZXJtaW5lIEMgdXNpbmcgdGhlCisgKiBjb252ZXJzaW9uX3Rlc3Rfb3ZlcmxvYWRzIHN0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIE5vbWluYWxDYW5kaWRhdGVzID4KK2NsYXNzIGRlZHVjZV9jb21tb25fdHlwZQoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjpjb3B5PAorICAgICAgICBOb21pbmFsQ2FuZGlkYXRlcywKKyAgICAgICAgbXBsOjppbnNlcnRlcjwKKyAgICAgICAgICAgIG1wbDo6dmVjdG9yMDw+LAorICAgICAgICAgICAgbXBsOjppZl88CisgICAgICAgICAgICAgICAgbXBsOjpjb250YWluczwgbXBsOjpfMSwgbXBsOjpfMiA+LAorICAgICAgICAgICAgICAgIG1wbDo6XzEsCisgICAgICAgICAgICAgICAgbXBsOjpwdXNoX2JhY2s8IG1wbDo6XzEsIG1wbDo6XzIgPgorICAgICAgICAgICAgPgorICAgICAgICA+CisgICAgPjo6dHlwZSBjYW5kaWRhdGVfdHlwZXM7CisgICAgc3RhdGljIGNvbnN0IGludCBiZXN0X2NhbmRpZGF0ZV9pbmRleCA9CisgICAgICAgIHNpemVvZiggY29udmVyc2lvbl90ZXN0X292ZXJsb2FkczwgY2FuZGlkYXRlX3R5cGVzID46OmFwcGx5KAorICAgICAgICAgICAgZGVjbHZhbDwgYm9vbCA+KCkgPyBkZWNsdmFsPFQ+KCkgOiBkZWNsdmFsPFU+KCkKKyAgICAgICAgKSApIC0gMTsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdDwgY2FuZGlkYXRlX3R5cGVzLCBiZXN0X2NhbmRpZGF0ZV9pbmRleCA+Ojp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICBjbGFzcyBULCBjbGFzcyBVLAorICAgIGNsYXNzIFYgPSB0eXBlbmFtZSByZW1vdmVfY3Y8IHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUgPjo6dHlwZSwKKyAgICBjbGFzcyBXID0gdHlwZW5hbWUgcmVtb3ZlX2N2PCB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPFU+Ojp0eXBlID46OnR5cGUsCisgICAgYm9vbCA9IGlzX2ludGVncmFsX29yX2VudW08Vj46OnZhbHVlICYmIGlzX2ludGVncmFsX29yX2VudW08Vz46OnZhbHVlCis+CitzdHJ1Y3Qgbm9taW5hbF9jYW5kaWRhdGVzCit7IHR5cGVkZWYgbXBsOjp2ZWN0b3IyPFYsVz4gdHlwZTsgfTsKKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIFUsIGNsYXNzIFYsIGNsYXNzIFcgPgorc3RydWN0IG5vbWluYWxfY2FuZGlkYXRlczwgVCwgVSwgViwgVywgdHJ1ZSA+Cit7CisgICAgdHlwZWRlZiBuZG5ib29zdDo6bXBsOjp2ZWN0b3I4PAorICAgICAgICB0eXBlbmFtZSBtYWtlX3Vuc2lnbmVkX3NvZnQ8Vj46OnR5cGUsCisgICAgICAgIHR5cGVuYW1lIG1ha2VfdW5zaWduZWRfc29mdDxXPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgbWFrZV9zaWduZWRfc29mdDxWPjo6dHlwZSwKKyAgICAgICAgdHlwZW5hbWUgbWFrZV9zaWduZWRfc29mdDxXPjo6dHlwZSwKKyAgICAgICAgViwgVywgdW5zaWduZWQgaW50LCBpbnQKKyAgICA+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgVSwgY2xhc3MgViwgY2xhc3MgVyA+CitzdHJ1Y3Qgbm9taW5hbF9jYW5kaWRhdGVzPCBULCBVLCBWKiwgVyosIGZhbHNlID4KK3sKKyAgICB0eXBlZGVmIG1wbDo6dmVjdG9yNDwKKyAgICAgICAgViosIFcqLAorICAgICAgICB0eXBlbmFtZSBwcm9wYWdhdGVfY3Y8VyxWPjo6dHlwZSAqLAorICAgICAgICB0eXBlbmFtZSBwcm9wYWdhdGVfY3Y8VixXPjo6dHlwZSAqCisgICAgPiB0eXBlOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVSwgYm9vbCBiPgorc3RydWN0IGNvbW1vbl90eXBlX2Rpc3BhdGNoX29uX3J2YWx1ZW5lc3MKKyAgICA6IHB1YmxpYyBkZWR1Y2VfY29tbW9uX3R5cGU8IFQsIFUsIHR5cGVuYW1lIG5vbWluYWxfY2FuZGlkYXRlczxULFU+Ojp0eXBlID4KK3sgfTsKKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIFUgPgorc3RydWN0IGNvbW1vbl90eXBlX2Rpc3BhdGNoX29uX3J2YWx1ZW5lc3M8IFQsIFUsIGZhbHNlID4KK3sKK3ByaXZhdGU6CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPFQ+Ojp0eXBlIHVucmVmZWRfVF90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxVPjo6dHlwZSB1bnJlZmVkX1VfdHlwZTsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRlZHVjZV9jb21tb25fdHlwZTwKKyAgICAgICAgVCwgVSwKKyAgICAgICAgbXBsOjp2ZWN0b3I0PAorICAgICAgICAgICAgdW5yZWZlZF9UX3R5cGUgJiwKKyAgICAgICAgICAgIHVucmVmZWRfVV90eXBlICYsCisgICAgICAgICAgICB0eXBlbmFtZSBwcm9wYWdhdGVfY3Y8IHVucmVmZWRfVV90eXBlLCB1bnJlZmVkX1RfdHlwZSA+Ojp0eXBlICYsCisgICAgICAgICAgICB0eXBlbmFtZSBwcm9wYWdhdGVfY3Y8IHVucmVmZWRfVF90eXBlLCB1bnJlZmVkX1VfdHlwZSA+Ojp0eXBlICYKKyAgICAgICAgPgorICAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBVID4KK3N0cnVjdCBjb21tb25fdHlwZV9pbXBsCisgICAgOiBwdWJsaWMgY29tbW9uX3R5cGVfZGlzcGF0Y2hfb25fcnZhbHVlbmVzczxULFUsIHNpemVvZiggOjpuZG5ib29zdDo6ZGV0YWlsX3R5cGVfdHJhaXRzX2NvbW1vbl90eXBlOjpydmFsdWVfdGVzdCgKKyAgICAgICAgZGVjbHZhbDwgYm9vbCA+KCkgPyBkZWNsdmFsPFQ+KCkgOiBkZWNsdmFsPFU+KCkgKSApID09IHNpemVvZiggeWVzX3R5cGUgKSA+Cit7IH07CisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IGNvbW1vbl90eXBlX2ltcGw8IFQsIHZvaWQgPiB7IHR5cGVkZWYgdm9pZCB0eXBlOyB9OwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgY29tbW9uX3R5cGVfaW1wbDwgdm9pZCwgVCA+IHsgdHlwZWRlZiB2b2lkIHR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBjb21tb25fdHlwZV9pbXBsPCB2b2lkLCB2b2lkID4geyB0eXBlZGVmIHZvaWQgdHlwZTsgfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsX3R5cGVfdHJhaXRzX2NvbW1vbl90eXBlCisKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RZUEVfVFJBSVRTX0RFVEFJTF9DT01NT05fVFlQRV9IUFAKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY3ZfdHJhaXRzX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY3ZfdHJhaXRzX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMWRkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHAKQEAgLTAsMCArMSw5NyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfQ1ZfVFJBSVRTX0lNUExfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9DVl9UUkFJVFNfSU1QTF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworLy8gaW1wbGVtZW50YXRpb24gaGVscGVyOgorCisKKyNpZiAhKEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sPT0gMykgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfTUlOT1JfXywgPD0gMikpCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGRldGFpbCB7CisjZWxzZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKK25hbWVzcGFjZSBnY2M4NTAzIHsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGN2X3RyYWl0c19pbXAge307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGN2X3RyYWl0c19pbXA8VCo+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2NvbnN0ID0gZmFsc2UpOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc192b2xhdGlsZSA9IGZhbHNlKTsKKyAgICB0eXBlZGVmIFQgdW5xdWFsaWZpZWRfdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGN2X3RyYWl0c19pbXA8Y29uc3QgVCo+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2NvbnN0ID0gdHJ1ZSk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX3ZvbGF0aWxlID0gZmFsc2UpOworICAgIHR5cGVkZWYgVCB1bnF1YWxpZmllZF90eXBlOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgY3ZfdHJhaXRzX2ltcDx2b2xhdGlsZSBUKj4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfY29uc3QgPSBmYWxzZSk7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX3ZvbGF0aWxlID0gdHJ1ZSk7CisgICAgdHlwZWRlZiBUIHVucXVhbGlmaWVkX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjdl90cmFpdHNfaW1wPGNvbnN0IHZvbGF0aWxlIFQqPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19jb25zdCA9IHRydWUpOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc192b2xhdGlsZSA9IHRydWUpOworICAgIHR5cGVkZWYgVCB1bnF1YWxpZmllZF90eXBlOworfTsKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sPT0gMykgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfTUlOT1JfXywgPD0gMikKKy8vIFdlIGhhdmUgdG8gZXhjbHVkZSBmdW5jdGlvbiBwb2ludGVycyAKKy8vIChzZWUgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT84NTAzKQoreWVzX3R5cGUgbWluaV9mdW5jcHRyX3Rlc3RlciguLi4pOworbm9fdHlwZSAgbWluaV9mdW5jcHRyX3Rlc3Rlcihjb25zdCB2b2xhdGlsZSB2b2lkKik7CisKK30gLy8gbmFtZXNwYWNlIGdjYzg1MDMKK30gLy8gbmFtZXNwYWNlIHR5cGVfdHJhaXRzCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBVc2UgdGhlIGltcGxlbWVudGF0aW9uIGFib3ZlIGZvciBub24gZnVuY3Rpb24gcG9pbnRlcnMKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB1bnNpZ25lZCBTZWxlY3QgCisgID0gKHVuc2lnbmVkKXNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6Z2NjODUwMzo6bWluaV9mdW5jcHRyX3Rlc3RlcigoVCkwKSkgPgorc3RydWN0IGN2X3RyYWl0c19pbXAgOiBwdWJsaWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmdjYzg1MDM6OmN2X3RyYWl0c19pbXA8VD4geyB9OworCisvLyBGdW5jdGlvbnMgYXJlIG5ldmVyIGN2LXF1YWxpZmllZAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHNfaW1wPFQqLDE+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2NvbnN0ID0gZmFsc2UpOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc192b2xhdGlsZSA9IGZhbHNlKTsKKyAgICB0eXBlZGVmIFQgdW5xdWFsaWZpZWRfdHlwZTsKK307CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0IAorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX0NWX1RSQUlUU19JTVBMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvZmFsc2VfcmVzdWx0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBiZDg2NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHAKQEAgLTAsMCArMSwyOCBAQAorLy8gIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfRkFMU0VfUkVTVUxUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERVRBSUxfRkFMU0VfUkVTVUxUX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CisKKy8vIFV0aWxpdHkgY2xhc3Mgd2hpY2ggYWx3YXlzICJyZXR1cm5zIiBmYWxzZQorc3RydWN0IGZhbHNlX3Jlc3VsdAoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworICAgIH07Cit9OworCit9fSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzCisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfRkFMU0VfUkVTVUxUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMThmMDBkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHAKQEAgLTAsMCArMSwyMjkgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLCBSb2JlcnQgU3Rld2FydCwgU3RldmVuIFdhdGFuYWJlICYgUm9tYW4gUGVyZXBlbGl0c2EuCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaWNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRlZ3JhbF9jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9vZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5kYW1lbnRhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisvLyBjYW5ub3QgaW5jbHVkZSB0aGlzIGhlYWRlciB3aXRob3V0IGdldHRpbmcgd2FybmluZ3Mgb2YgdGhlIGtpbmQ6CisvLyBnY2M6CisvLyAgICB3YXJuaW5nOiB2YWx1ZSBjb21wdXRlZCBpcyBub3QgdXNlZAorLy8gICAgd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucworLy8gbXN2YzoKKy8vICAgIHdhcm5pbmcgQzQwMTg6ICc8JyA6IHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaAorLy8gICAgd2FybmluZyBDNDI0NDogJys9JyA6IGNvbnZlcnNpb24gZnJvbSAnZG91YmxlJyB0byAnY2hhcicsIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YQorLy8gICAgd2FybmluZyBDNDU0NzogJyonIDogb3BlcmF0b3IgYmVmb3JlIGNvbW1hIGhhcyBubyBlZmZlY3Q7IGV4cGVjdGVkIG9wZXJhdG9yIHdpdGggc2lkZS1lZmZlY3QKKy8vICAgIHdhcm5pbmcgQzQ4MDA6ICdpbnQnIDogZm9yY2luZyB2YWx1ZSB0byBib29sICd0cnVlJyBvciAnZmFsc2UnIChwZXJmb3JtYW5jZSB3YXJuaW5nKQorLy8gICAgd2FybmluZyBDNDgwNDogJzwnIDogdW5zYWZlIHVzZSBvZiB0eXBlICdib29sJyBpbiBvcGVyYXRpb24KKy8vICAgIHdhcm5pbmcgQzQ4MDU6ICc9PScgOiB1bnNhZmUgbWl4IG9mIHR5cGUgJ2Jvb2wnIGFuZCB0eXBlICdjaGFyJyBpbiBvcGVyYXRpb24KKy8vIGNhbm5vdCBmaW5kIGFub3RoZXIgaW1wbGVtZW50YXRpb24gLT4gZGVjbGFyZWQgYXMgc3lzdGVtIGhlYWRlciB0byBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncy4KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKF9fR05VQ19fPT0zICYmIF9fR05VQ19NSU5PUl9fPj0xKSB8fCAoX19HTlVDX18+MykpCisjICAgcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjICAgcHJhZ21hIHdhcm5pbmcgKCBwdXNoICkKKyMgICBwcmFnbWEgd2FybmluZyAoIGRpc2FibGUgOiA0MDE4IDQyNDQgNDU0NyA0ODAwIDQ4MDQgNDgwNSA0OTEzICkKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIFRoaXMgbmFtZXNwYWNlIGVuc3VyZXMgdGhhdCBhcmd1bWVudC1kZXBlbmRlbnQgbmFtZSBsb29rdXAgZG9lcyBub3QgbWVzcyB0aGluZ3MgdXAuCituYW1lc3BhY2UgQk9PU1RfSk9JTihCT09TVF9UVF9UUkFJVF9OQU1FLF9pbXBsKSB7CisKKy8vIDEuIGEgZnVuY3Rpb24gdG8gaGF2ZSBhbiBpbnN0YW5jZSBvZiB0eXBlIFQgd2l0aG91dCByZXF1aXJpbmcgVCB0byBiZSBkZWZhdWx0CisvLyBjb25zdHJ1Y3RpYmxlCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCAmbWFrZSgpOworCisKKy8vIDIuIHdlIHByb3ZpZGUgb3VyIG9wZXJhdG9yIGRlZmluaXRpb24gZm9yIHR5cGVzIHRoYXQgZG8gbm90IGhhdmUgb25lIGFscmVhZHkKKworLy8gYSB0eXBlIHJldHVybmVkIGZyb20gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1Agd2hlbiBubyBzdWNoIG9wZXJhdG9yIGlzCisvLyBmb3VuZCBpbiB0aGUgdHlwZSdzIG93biBuYW1lc3BhY2UgKG91ciBvd24gb3BlcmF0b3IgaXMgdXNlZCkgc28gdGhhdCB3ZSBoYXZlCisvLyBhIG1lYW5zIHRvIGtub3cgdGhhdCBvdXIgb3BlcmF0b3Igd2FzIHVzZWQKK3N0cnVjdCBub19vcGVyYXRvciB7IH07CisKKy8vIHRoaXMgY2xhc3MgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb25zIGFuZCBtYWtlcyB0aGUgZm9sbG93aW5nIG9wZXJhdG9yCisvLyBkZWZpbml0aW9uIGxlc3MtcHJlZmVycmVkIHRoYW4gYW55IG90aGVyIHN1Y2ggb3BlcmF0b3JzIHRoYXQgbWlnaHQgYmUgZm91bmQKKy8vIHZpYSBhcmd1bWVudC1kZXBlbmRlbnQgbmFtZSBsb29rdXAKK3N0cnVjdCBhbnkgeyB0ZW1wbGF0ZSA8Y2xhc3MgVD4gYW55KFQgY29uc3QmKTsgfTsKKworLy8gd2hlbiBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCBpcyBub3QgYXZhaWxhYmxlLCB0aGlzIG9uZSBpcyB1c2VkCitub19vcGVyYXRvciBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCAoY29uc3QgYW55JiwgY29uc3QgYW55Jik7CisKKworLy8gMy4gY2hlY2tzIGlmIHRoZSBvcGVyYXRvciByZXR1cm5zIHZvaWQgb3Igbm90CisvLyBjb25kaXRpb25zOiBMaHMhPXZvaWQgYW5kIFJocyE9dm9pZAorCisvLyB3ZSBmaXJzdCByZWRlZmluZSAib3BlcmF0b3IsIiBzbyB0aGF0IHdlIGhhdmUgbm8gY29tcGlsYXRpb24gZXJyb3IgaWYKKy8vIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCBhbmQgd2UgY2FuIHVzZSB0aGUgcmV0dXJuIHR5cGUgb2YKKy8vIChsaHMgQk9PU1RfVFRfVFJBSVRfT1AgcmhzLCByZXR1cm5zX3ZvaWRfdCgpKSB0byBkZWR1Y2UgaWYKKy8vIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCBvciBub3Q6CisvLyAtIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCAgIC0+IChsaHMgQk9PU1RfVFRfVFJBSVRfT1AgcmhzLCByZXR1cm5zX3ZvaWRfdCgpKSByZXR1cm5zIHJldHVybnNfdm9pZF90CisvLyAtIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgIT12b2lkIC0+IChsaHMgQk9PU1RfVFRfVFJBSVRfT1AgcmhzLCByZXR1cm5zX3ZvaWRfdCgpKSByZXR1cm5zIGludAorc3RydWN0IHJldHVybnNfdm9pZF90IHsgfTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbnQgb3BlcmF0b3IsKGNvbnN0IFQmLCByZXR1cm5zX3ZvaWRfdCk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW50IG9wZXJhdG9yLChjb25zdCB2b2xhdGlsZSBUJiwgcmV0dXJuc192b2lkX3QpOworCisvLyB0aGlzIGludGVybWVkaWF0ZSB0cmFpdCBoYXMgbWVtYmVyIHZhbHVlIG9mIHR5cGUgYm9vbDoKKy8vIC0gdmFsdWU9PXRydWUgLT4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgcmV0dXJucyB2b2lkCisvLyAtIHZhbHVlPT1mYWxzZSAtPiBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCBkb2VzIG5vdCByZXR1cm4gdm9pZAordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJocyA+CitzdHJ1Y3Qgb3BlcmF0b3JfcmV0dXJuc192b2lkIHsKKyAgIC8vIG92ZXJsb2FkcyBvZiBmdW5jdGlvbiByZXR1cm5zX3ZvaWQgbWFrZSB0aGUgZGlmZmVyZW5jZQorICAgLy8geWVzX3R5cGUgYW5kIG5vX3R5cGUgaGF2ZSBkaWZmZXJlbnQgc2l6ZSBieSBjb25zdHJ1Y3Rpb24KKyAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgcmV0dXJuc192b2lkKHJldHVybnNfdm9pZF90KTsKKyAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSByZXR1cm5zX3ZvaWQoaW50KTsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKT09c2l6ZW9mKHJldHVybnNfdm9pZCgobWFrZTxMaHM+KCkgQk9PU1RfVFRfVFJBSVRfT1AgbWFrZTxSaHM+KCkscmV0dXJuc192b2lkX3QoKSkpKSkpOworfTsKKworCisvLyA0LiBjaGVja3MgaWYgdGhlIHJldHVybiB0eXBlIGlzIFJldCBvciBSZXQ9PWRvbnRfY2FyZQorLy8gY29uZGl0aW9uczogTGhzIT12b2lkIGFuZCBSaHMhPXZvaWQKKworc3RydWN0IGRvbnRfY2FyZSB7IH07CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCwgYm9vbCBSZXR1cm5zX3ZvaWQgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0OworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIExocywgdHlwZW5hbWUgUmhzID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IExocywgUmhzLCBkb250X2NhcmUsIHRydWUgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgTGhzLCBSaHMsIGRvbnRfY2FyZSwgZmFsc2UgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgTGhzLCBSaHMsIHZvaWQsIHRydWUgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgTGhzLCBSaHMsIHZvaWQsIGZhbHNlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IExocywgUmhzLCBSZXQsIHRydWUgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCisvLyBvdGhlcndpc2UgY2hlY2tzIGlmIGl0IGlzIGNvbnZlcnRpYmxlIHRvIFJldCB1c2luZyB0aGUgc2l6ZW9mIHRyaWNrCisvLyBiYXNlZCBvbiBvdmVybG9hZCByZXNvbHV0aW9uCisvLyBjb25kaXRpb246IFJldCE9dm9pZCBhbmQgUmV0IT1kb250X2NhcmUgYW5kIHRoZSBvcGVyYXRvciBkb2VzIG5vdCByZXR1cm4gdm9pZAordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IExocywgUmhzLCBSZXQsIGZhbHNlID4geworICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19jb252ZXJ0aWJsZV90b19SZXQoUmV0KTsgLy8gdGhpcyB2ZXJzaW9uIGlzIHByZWZlcnJlZCBmb3IgdHlwZXMgY29udmVydGlibGUgdG8gUmV0CisgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgaXNfY29udmVydGlibGVfdG9fUmV0KC4uLik7IC8vIHRoaXMgdmVyc2lvbiBpcyB1c2VkIG90aGVyd2lzZQorCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoc2l6ZW9mKGlzX2NvbnZlcnRpYmxlX3RvX1JldChtYWtlPExocz4oKSBCT09TVF9UVF9UUkFJVF9PUCBtYWtlPFJocz4oKSkpPT1zaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKSkpOworfTsKKworCisvLyA1LiBjaGVja3MgZm9yIG9wZXJhdG9yIGV4aXN0ZW5jZQorLy8gY29uZGl0aW9uOiBMaHMhPXZvaWQgYW5kIFJocyE9dm9pZAorCisvLyBjaGVja3MgaWYgb3VyIGRlZmluaXRpb24gb2Ygb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgaXMgdXNlZCBvciBhbiBvdGhlcgorLy8gZXhpc3Rpbmcgb25lOworLy8gdGhpcyBpcyBkb25lIHdpdGggcmVkZWZpbml0aW9uIG9mICJvcGVyYXRvciwiIHRoYXQgcmV0dXJucyBub19vcGVyYXRvciBvciBoYXNfb3BlcmF0b3IKK3N0cnVjdCBoYXNfb3BlcmF0b3IgeyB9Oworbm9fb3BlcmF0b3Igb3BlcmF0b3IsKG5vX29wZXJhdG9yLCBoYXNfb3BlcmF0b3IpOworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIExocywgdHlwZW5hbWUgUmhzID4KK3N0cnVjdCBvcGVyYXRvcl9leGlzdHMgeworICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBjaGVjayhoYXNfb3BlcmF0b3IpOyAvLyB0aGlzIHZlcnNpb24gaXMgcHJlZmVycmVkIHdoZW4gb3BlcmF0b3IgZXhpc3RzCisgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgY2hlY2sobm9fb3BlcmF0b3IpOyAvLyB0aGlzIHZlcnNpb24gaXMgdXNlZCBvdGhlcndpc2UKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihjaGVjaygoKG1ha2U8TGhzPigpIEJPT1NUX1RUX1RSQUlUX09QIG1ha2U8UmhzPigpKSxtYWtlPGhhc19vcGVyYXRvcj4oKSkpKT09c2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpKTsKK307CisKKworLy8gNi4gbWFpbiB0cmFpdDogdG8gYXZvaWQgYW55IGNvbXBpbGF0aW9uIGVycm9yLCB0aGlzIGNsYXNzIGJlaGF2ZXMKKy8vIGRpZmZlcmVudGx5IHdoZW4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AoTGhzLCBSaHMpIGlzIGZvcmJpZGRlbiBieSB0aGUKKy8vIHN0YW5kYXJkLgorLy8gRm9yYmlkZGVuX2lmIGlzIGEgYm9vbCB0aGF0IGlzOgorLy8gLSB0cnVlIHdoZW4gdGhlIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QKExocywgUmhzKSBpcyBmb3JiaWRkZW4gYnkgdGhlIHN0YW5kYXJkCisvLyAgICh3b3VsZCB5aWVsZCBjb21waWxhdGlvbiBlcnJvciBpZiB1c2VkKQorLy8gLSBmYWxzZSBvdGhlcndpc2UKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCwgYm9vbCBGb3JiaWRkZW5faWYgPgorc3RydWN0IHRyYWl0X2ltcGwxOworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIExocywgdHlwZW5hbWUgUmhzLCB0eXBlbmFtZSBSZXQgPgorc3RydWN0IHRyYWl0X2ltcGwxIDwgTGhzLCBSaHMsIFJldCwgdHJ1ZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3QgdHJhaXRfaW1wbDEgPCBMaHMsIFJocywgUmV0LCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLAorICAgICAgdmFsdWUgPSAoCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIG9wZXJhdG9yX2V4aXN0cyA8IExocywgUmhzID46OnZhbHVlLAorICAgICAgICAgICAgb3BlcmF0b3JfcmV0dXJuc19SZXQgPCBMaHMsIFJocywgUmV0LCBvcGVyYXRvcl9yZXR1cm5zX3ZvaWQgPCBMaHMsIFJocyA+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICAgPjo6dmFsdWUKKyAgICAgICkKKyAgICk7Cit9OworCisvLyBzb21lIHNwZWNpYWxpemF0aW9ucyBuZWVkcyB0byBiZSBkZWNsYXJlZCBmb3IgdGhlIHNwZWNpYWwgdm9pZCBjYXNlCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIFJocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCB0cmFpdF9pbXBsMSA8IHZvaWQsIFJocywgUmV0LCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSZXQgPgorc3RydWN0IHRyYWl0X2ltcGwxIDwgTGhzLCB2b2lkLCBSZXQsIGZhbHNlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBSZXQgPgorc3RydWN0IHRyYWl0X2ltcGwxIDwgdm9pZCwgdm9pZCwgUmV0LCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKy8vIGRlZmluZXMgc29tZSB0eXBlZGVmIGZvciBjb252ZW5pZW5jZQordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCB0cmFpdF9pbXBsIHsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxMaHM+Ojp0eXBlIExoc19ub3JlZjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxSaHM+Ojp0eXBlIFJoc19ub3JlZjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6cmVtb3ZlX2N2PExoc19ub3JlZj46OnR5cGUgTGhzX25vY3Y7CisgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9jdjxSaHNfbm9yZWY+Ojp0eXBlIFJoc19ub2N2OworICAgdHlwZWRlZiB0eXBlbmFtZSA6Om5kbmJvb3N0OjpyZW1vdmVfY3Y8IHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8IHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9wb2ludGVyPExoc19ub3JlZj46OnR5cGUgPjo6dHlwZSA+Ojp0eXBlIExoc19ub3B0cjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6cmVtb3ZlX2N2PCB0eXBlbmFtZSA6Om5kbmJvb3N0OjpyZW1vdmVfcmVmZXJlbmNlPCB0eXBlbmFtZSA6Om5kbmJvb3N0OjpyZW1vdmVfcG9pbnRlcjxSaHNfbm9yZWY+Ojp0eXBlID46OnR5cGUgPjo6dHlwZSBSaHNfbm9wdHI7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAodHJhaXRfaW1wbDEgPCBMaHNfbm9yZWYsIFJoc19ub3JlZiwgUmV0LCBCT09TVF9UVF9GT1JCSURERU5fSUYgPjo6dmFsdWUpKTsKK307CisKK30gLy8gbmFtZXNwYWNlIGltcGwKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyB0aGlzIGlzIHRoZSBhY2Nlc3NpYmxlIGRlZmluaXRpb24gb2YgdGhlIHRyYWl0IHRvIGVuZCB1c2VyCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYzKEJPT1NUX1RUX1RSQUlUX05BTUUsIExocywgUmhzPUxocywgUmV0PTo6bmRuYm9vc3Q6OmRldGFpbDo6Qk9PU1RfSk9JTihCT09TVF9UVF9UUkFJVF9OQU1FLF9pbXBsKTo6ZG9udF9jYXJlLCAoOjpuZG5ib29zdDo6ZGV0YWlsOjpCT09TVF9KT0lOKEJPT1NUX1RUX1RSQUlUX05BTUUsX2ltcGwpOjp0cmFpdF9pbXBsIDwgTGhzLCBSaHMsIFJldCA+Ojp2YWx1ZSkpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjICAgcHJhZ21hIHdhcm5pbmcgKCBwb3AgKQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcG9zdGZpeF9vcGVyYXRvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcG9zdGZpeF9vcGVyYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRkN2Y1YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wb3N0Zml4X29wZXJhdG9yLmhwcApAQCAtMCwwICsxLDIwMiBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24sIFJvYmVydCBTdGV3YXJ0LCBTdGV2ZW4gV2F0YW5hYmUgJiBSb21hbiBQZXJlcGVsaXRzYS4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuZGFtZW50YWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisvLyBhdm9pZCB3YXJuaW5ncworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoX19HTlVDX189PTMgJiYgX19HTlVDX01JTk9SX18+PTEpIHx8IChfX0dOVUNfXz4zKSkKKyMgICBwcmFnbWEgR0NDIHN5c3RlbV9oZWFkZXIKKyNlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykKKyMgICBwcmFnbWEgd2FybmluZyAoIHB1c2ggKQorIyAgIHByYWdtYSB3YXJuaW5nICggZGlzYWJsZSA6IDQyNDQgNDkxMyApCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBUaGlzIG5hbWVzcGFjZSBlbnN1cmVzIHRoYXQgYXJndW1lbnQtZGVwZW5kZW50IG5hbWUgbG9va3VwIGRvZXMgbm90IG1lc3MgdGhpbmdzIHVwLgorbmFtZXNwYWNlIEJPT1NUX0pPSU4oQk9PU1RfVFRfVFJBSVRfTkFNRSxfaW1wbCkgeworCisvLyAxLiBhIGZ1bmN0aW9uIHRvIGhhdmUgYW4gaW5zdGFuY2Ugb2YgdHlwZSBUIHdpdGhvdXQgcmVxdWlyaW5nIFQgdG8gYmUgZGVmYXVsdAorLy8gY29uc3RydWN0aWJsZQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgJm1ha2UoKTsKKworCisvLyAyLiB3ZSBwcm92aWRlIG91ciBvcGVyYXRvciBkZWZpbml0aW9uIGZvciB0eXBlcyB0aGF0IGRvIG5vdCBoYXZlIG9uZSBhbHJlYWR5CisKKy8vIGEgdHlwZSByZXR1cm5lZCBmcm9tIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHdoZW4gbm8gc3VjaCBvcGVyYXRvciBpcworLy8gZm91bmQgaW4gdGhlIHR5cGUncyBvd24gbmFtZXNwYWNlIChvdXIgb3duIG9wZXJhdG9yIGlzIHVzZWQpIHNvIHRoYXQgd2UgaGF2ZQorLy8gYSBtZWFucyB0byBrbm93IHRoYXQgb3VyIG9wZXJhdG9yIHdhcyB1c2VkCitzdHJ1Y3Qgbm9fb3BlcmF0b3IgeyB9OworCisvLyB0aGlzIGNsYXNzIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9ucyBhbmQgbWFrZXMgdGhlIGZvbGxvd2luZyBvcGVyYXRvcgorLy8gZGVmaW5pdGlvbiBsZXNzLXByZWZlcnJlZCB0aGFuIGFueSBvdGhlciBzdWNoIG9wZXJhdG9ycyB0aGF0IG1pZ2h0IGJlIGZvdW5kCisvLyB2aWEgYXJndW1lbnQtZGVwZW5kZW50IG5hbWUgbG9va3VwCitzdHJ1Y3QgYW55IHsgdGVtcGxhdGUgPGNsYXNzIFQ+IGFueShUIGNvbnN0Jik7IH07CisKKy8vIHdoZW4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgaXMgbm90IGF2YWlsYWJsZSwgdGhpcyBvbmUgaXMgdXNlZAorbm9fb3BlcmF0b3Igb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgKGNvbnN0IGFueSYsIGludCk7CisKKworLy8gMy4gY2hlY2tzIGlmIHRoZSBvcGVyYXRvciByZXR1cm5zIHZvaWQgb3Igbm90CisvLyBjb25kaXRpb25zOiBMaHMhPXZvaWQKKworLy8gd2UgZmlyc3QgcmVkZWZpbmUgIm9wZXJhdG9yLCIgc28gdGhhdCB3ZSBoYXZlIG5vIGNvbXBpbGF0aW9uIGVycm9yIGlmCisvLyBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCByZXR1cm5zIHZvaWQgYW5kIHdlIGNhbiB1c2UgdGhlIHJldHVybiB0eXBlIG9mCisvLyAobGhzIEJPT1NUX1RUX1RSQUlUX09QLCByZXR1cm5zX3ZvaWRfdCgpKSB0byBkZWR1Y2UgaWYKKy8vIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCBvciBub3Q6CisvLyAtIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCAgIC0+IChsaHMgQk9PU1RfVFRfVFJBSVRfT1AsIHJldHVybnNfdm9pZF90KCkpIHJldHVybnMgcmV0dXJuc192b2lkX3QKKy8vIC0gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgcmV0dXJucyAhPXZvaWQgLT4gKGxocyBCT09TVF9UVF9UUkFJVF9PUCwgcmV0dXJuc192b2lkX3QoKSkgcmV0dXJucyBpbnQKK3N0cnVjdCByZXR1cm5zX3ZvaWRfdCB7IH07Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW50IG9wZXJhdG9yLChjb25zdCBUJiwgcmV0dXJuc192b2lkX3QpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGludCBvcGVyYXRvciwoY29uc3Qgdm9sYXRpbGUgVCYsIHJldHVybnNfdm9pZF90KTsKKworLy8gdGhpcyBpbnRlcm1lZGlhdGUgdHJhaXQgaGFzIG1lbWJlciB2YWx1ZSBvZiB0eXBlIGJvb2w6CisvLyAtIHZhbHVlPT10cnVlIC0+IG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZAorLy8gLSB2YWx1ZT09ZmFsc2UgLT4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgZG9lcyBub3QgcmV0dXJuIHZvaWQKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX3ZvaWQgeworICAgLy8gb3ZlcmxvYWRzIG9mIGZ1bmN0aW9uIHJldHVybnNfdm9pZCBtYWtlIHRoZSBkaWZmZXJlbmNlCisgICAvLyB5ZXNfdHlwZSBhbmQgbm9fdHlwZSBoYXZlIGRpZmZlcmVudCBzaXplIGJ5IGNvbnN0cnVjdGlvbgorICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSByZXR1cm5zX3ZvaWQocmV0dXJuc192b2lkX3QpOworICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIHJldHVybnNfdm9pZChpbnQpOworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpPT1zaXplb2YocmV0dXJuc192b2lkKChtYWtlPExocz4oKSBCT09TVF9UVF9UUkFJVF9PUCxyZXR1cm5zX3ZvaWRfdCgpKSkpKSk7Cit9OworCisKKy8vIDQuIGNoZWNrcyBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgUmV0IG9yIFJldD09ZG9udF9jYXJlCisvLyBjb25kaXRpb25zOiBMaHMhPXZvaWQKKworc3RydWN0IGRvbnRfY2FyZSB7IH07CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzLCB0eXBlbmFtZSBSZXQsIGJvb2wgUmV0dXJuc192b2lkID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldDsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgTGhzLCBkb250X2NhcmUsIHRydWUgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IExocywgZG9udF9jYXJlLCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgTGhzLCB2b2lkLCB0cnVlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIExocyA+CitzdHJ1Y3Qgb3BlcmF0b3JfcmV0dXJuc19SZXQgPCBMaHMsIHZvaWQsIGZhbHNlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3Qgb3BlcmF0b3JfcmV0dXJuc19SZXQgPCBMaHMsIFJldCwgdHJ1ZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKy8vIG90aGVyd2lzZSBjaGVja3MgaWYgaXQgaXMgY29udmVydGlibGUgdG8gUmV0IHVzaW5nIHRoZSBzaXplb2YgdHJpY2sKKy8vIGJhc2VkIG9uIG92ZXJsb2FkIHJlc29sdXRpb24KKy8vIGNvbmRpdGlvbjogUmV0IT12b2lkIGFuZCBSZXQhPWRvbnRfY2FyZSBhbmQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IHJldHVybiB2b2lkCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIExocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IExocywgUmV0LCBmYWxzZSA+IHsKKyAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfY29udmVydGlibGVfdG9fUmV0KFJldCk7IC8vIHRoaXMgdmVyc2lvbiBpcyBwcmVmZXJyZWQgZm9yIHR5cGVzIGNvbnZlcnRpYmxlIHRvIFJldAorICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIGlzX2NvbnZlcnRpYmxlX3RvX1JldCguLi4pOyAvLyB0aGlzIHZlcnNpb24gaXMgdXNlZCBvdGhlcndpc2UKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihpc19jb252ZXJ0aWJsZV90b19SZXQobWFrZTxMaHM+KCkgQk9PU1RfVFRfVFJBSVRfT1ApKT09c2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpKTsKK307CisKKworLy8gNS4gY2hlY2tzIGZvciBvcGVyYXRvciBleGlzdGVuY2UKKy8vIGNvbmRpdGlvbjogTGhzIT12b2lkCisKKy8vIGNoZWNrcyBpZiBvdXIgZGVmaW5pdGlvbiBvZiBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCBpcyB1c2VkIG9yIGFuIG90aGVyCisvLyBleGlzdGluZyBvbmU7CisvLyB0aGlzIGlzIGRvbmUgd2l0aCByZWRlZmluaXRpb24gb2YgIm9wZXJhdG9yLCIgdGhhdCByZXR1cm5zIG5vX29wZXJhdG9yIG9yIGhhc19vcGVyYXRvcgorc3RydWN0IGhhc19vcGVyYXRvciB7IH07Citub19vcGVyYXRvciBvcGVyYXRvciwobm9fb3BlcmF0b3IsIGhhc19vcGVyYXRvcik7CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTGhzID4KK3N0cnVjdCBvcGVyYXRvcl9leGlzdHMgeworICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBjaGVjayhoYXNfb3BlcmF0b3IpOyAvLyB0aGlzIHZlcnNpb24gaXMgcHJlZmVycmVkIHdoZW4gb3BlcmF0b3IgZXhpc3RzCisgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgY2hlY2sobm9fb3BlcmF0b3IpOyAvLyB0aGlzIHZlcnNpb24gaXMgdXNlZCBvdGhlcndpc2UKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihjaGVjaygoKG1ha2U8TGhzPigpIEJPT1NUX1RUX1RSQUlUX09QKSxtYWtlPGhhc19vcGVyYXRvcj4oKSkpKT09c2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpKTsKK307CisKKworLy8gNi4gbWFpbiB0cmFpdDogdG8gYXZvaWQgYW55IGNvbXBpbGF0aW9uIGVycm9yLCB0aGlzIGNsYXNzIGJlaGF2ZXMKKy8vIGRpZmZlcmVudGx5IHdoZW4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AoTGhzKSBpcyBmb3JiaWRkZW4gYnkgdGhlCisvLyBzdGFuZGFyZC4KKy8vIEZvcmJpZGRlbl9pZiBpcyBhIGJvb2wgdGhhdCBpczoKKy8vIC0gdHJ1ZSB3aGVuIHRoZSBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUChMaHMpIGlzIGZvcmJpZGRlbiBieSB0aGUgc3RhbmRhcmQKKy8vICAgKHdvdWxkIHlpZWxkIGNvbXBpbGF0aW9uIGVycm9yIGlmIHVzZWQpCisvLyAtIGZhbHNlIG90aGVyd2lzZQordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJldCwgYm9vbCBGb3JiaWRkZW5faWYgPgorc3RydWN0IHRyYWl0X2ltcGwxOworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIExocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCB0cmFpdF9pbXBsMSA8IExocywgUmV0LCB0cnVlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3QgdHJhaXRfaW1wbDEgPCBMaHMsIFJldCwgZmFsc2UgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwKKyAgICAgIHZhbHVlID0gKAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICBvcGVyYXRvcl9leGlzdHMgPCBMaHMgPjo6dmFsdWUsCisgICAgICAgICAgICBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IExocywgUmV0LCBvcGVyYXRvcl9yZXR1cm5zX3ZvaWQgPCBMaHMgPjo6dmFsdWUgPjo6dmFsdWUKKyAgICAgICAgID46OnZhbHVlCisgICAgICApCisgICApOworfTsKKworLy8gc3BlY2lhbGl6YXRpb24gbmVlZHMgdG8gYmUgZGVjbGFyZWQgZm9yIHRoZSBzcGVjaWFsIHZvaWQgY2FzZQordGVtcGxhdGUgPCB0eXBlbmFtZSBSZXQgPgorc3RydWN0IHRyYWl0X2ltcGwxIDwgdm9pZCwgUmV0LCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKy8vIGRlZmluZXMgc29tZSB0eXBlZGVmIGZvciBjb252ZW5pZW5jZQordGVtcGxhdGUgPCB0eXBlbmFtZSBMaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3QgdHJhaXRfaW1wbCB7CisgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8TGhzPjo6dHlwZSBMaHNfbm9yZWY7CisgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9jdjxMaHNfbm9yZWY+Ojp0eXBlIExoc19ub2N2OworICAgdHlwZWRlZiB0eXBlbmFtZSA6Om5kbmJvb3N0OjpyZW1vdmVfY3Y8IHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8IHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9wb2ludGVyPExoc19ub3JlZj46OnR5cGUgPjo6dHlwZSA+Ojp0eXBlIExoc19ub3B0cjsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9ICh0cmFpdF9pbXBsMSA8IExoc19ub3JlZiwgUmV0LCBCT09TVF9UVF9GT1JCSURERU5fSUYgPjo6dmFsdWUpKTsKK307CisKK30gLy8gbmFtZXNwYWNlIGltcGwKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyB0aGlzIGlzIHRoZSBhY2Nlc3NpYmxlIGRlZmluaXRpb24gb2YgdGhlIHRyYWl0IHRvIGVuZCB1c2VyCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKEJPT1NUX1RUX1RSQUlUX05BTUUsIExocywgUmV0PTo6bmRuYm9vc3Q6OmRldGFpbDo6Qk9PU1RfSk9JTihCT09TVF9UVF9UUkFJVF9OQU1FLF9pbXBsKTo6ZG9udF9jYXJlLCAoOjpuZG5ib29zdDo6ZGV0YWlsOjpCT09TVF9KT0lOKEJPT1NUX1RUX1RSQUlUX05BTUUsX2ltcGwpOjp0cmFpdF9pbXBsPCBMaHMsIFJldCA+Ojp2YWx1ZSkpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjICAgcHJhZ21hIHdhcm5pbmcgKCBwb3AgKQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcHJlZml4X29wZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wcmVmaXhfb3BlcmF0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMTEzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcHJlZml4X29wZXJhdG9yLmhwcApAQCAtMCwwICsxLDIxMCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24sIFJvYmVydCBTdGV3YXJ0LCBTdGV2ZW4gV2F0YW5hYmUgJiBSb21hbiBQZXJlcGVsaXRzYS4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuZGFtZW50YWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2ludGVncmFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworLy8gY2Fubm90IGluY2x1ZGUgdGhpcyBoZWFkZXIgd2l0aG91dCBnZXR0aW5nIHdhcm5pbmdzIG9mIHRoZSBraW5kOgorLy8gZ2NjOgorLy8gICAgd2FybmluZzogdmFsdWUgY29tcHV0ZWQgaXMgbm90IHVzZWQKKy8vICAgIHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMKKy8vIG1zdmM6CisvLyAgICB3YXJuaW5nIEM0MTQ2OiB1bmFyeSBtaW51cyBvcGVyYXRvciBhcHBsaWVkIHRvIHVuc2lnbmVkIHR5cGUsIHJlc3VsdCBzdGlsbCB1bnNpZ25lZAorLy8gICAgd2FybmluZyBDNDgwNDogJy0nIDogdW5zYWZlIHVzZSBvZiB0eXBlICdib29sJyBpbiBvcGVyYXRpb24KKy8vIGNhbm5vdCBmaW5kIGFub3RoZXIgaW1wbGVtZW50YXRpb24gLT4gZGVjbGFyZWQgYXMgc3lzdGVtIGhlYWRlciB0byBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncy4KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKF9fR05VQ19fPT0zICYmIF9fR05VQ19NSU5PUl9fPj0xKSB8fCAoX19HTlVDX18+MykpCisjICAgcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjICAgcHJhZ21hIHdhcm5pbmcgKCBwdXNoICkKKyMgICBwcmFnbWEgd2FybmluZyAoIGRpc2FibGUgOiA0MTQ2IDQ4MDQgNDkxMyA0MjQ0ICkKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIFRoaXMgbmFtZXNwYWNlIGVuc3VyZXMgdGhhdCBhcmd1bWVudC1kZXBlbmRlbnQgbmFtZSBsb29rdXAgZG9lcyBub3QgbWVzcyB0aGluZ3MgdXAuCituYW1lc3BhY2UgQk9PU1RfSk9JTihCT09TVF9UVF9UUkFJVF9OQU1FLF9pbXBsKSB7CisKKy8vIDEuIGEgZnVuY3Rpb24gdG8gaGF2ZSBhbiBpbnN0YW5jZSBvZiB0eXBlIFQgd2l0aG91dCByZXF1aXJpbmcgVCB0byBiZSBkZWZhdWx0CisvLyBjb25zdHJ1Y3RpYmxlCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCAmbWFrZSgpOworCisKKy8vIDIuIHdlIHByb3ZpZGUgb3VyIG9wZXJhdG9yIGRlZmluaXRpb24gZm9yIHR5cGVzIHRoYXQgZG8gbm90IGhhdmUgb25lIGFscmVhZHkKKworLy8gYSB0eXBlIHJldHVybmVkIGZyb20gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1Agd2hlbiBubyBzdWNoIG9wZXJhdG9yIGlzCisvLyBmb3VuZCBpbiB0aGUgdHlwZSdzIG93biBuYW1lc3BhY2UgKG91ciBvd24gb3BlcmF0b3IgaXMgdXNlZCkgc28gdGhhdCB3ZSBoYXZlCisvLyBhIG1lYW5zIHRvIGtub3cgdGhhdCBvdXIgb3BlcmF0b3Igd2FzIHVzZWQKK3N0cnVjdCBub19vcGVyYXRvciB7IH07CisKKy8vIHRoaXMgY2xhc3MgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb25zIGFuZCBtYWtlcyB0aGUgZm9sbG93aW5nIG9wZXJhdG9yCisvLyBkZWZpbml0aW9uIGxlc3MtcHJlZmVycmVkIHRoYW4gYW55IG90aGVyIHN1Y2ggb3BlcmF0b3JzIHRoYXQgbWlnaHQgYmUgZm91bmQKKy8vIHZpYSBhcmd1bWVudC1kZXBlbmRlbnQgbmFtZSBsb29rdXAKK3N0cnVjdCBhbnkgeyB0ZW1wbGF0ZSA8Y2xhc3MgVD4gYW55KFQgY29uc3QmKTsgfTsKKworLy8gd2hlbiBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCBpcyBub3QgYXZhaWxhYmxlLCB0aGlzIG9uZSBpcyB1c2VkCitub19vcGVyYXRvciBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCAoY29uc3QgYW55Jik7CisKKworLy8gMy4gY2hlY2tzIGlmIHRoZSBvcGVyYXRvciByZXR1cm5zIHZvaWQgb3Igbm90CisvLyBjb25kaXRpb25zOiBSaHMhPXZvaWQKKworLy8gd2UgZmlyc3QgcmVkZWZpbmUgIm9wZXJhdG9yLCIgc28gdGhhdCB3ZSBoYXZlIG5vIGNvbXBpbGF0aW9uIGVycm9yIGlmCisvLyBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCByZXR1cm5zIHZvaWQgYW5kIHdlIGNhbiB1c2UgdGhlIHJldHVybiB0eXBlIG9mCisvLyAoQk9PU1RfVFRfVFJBSVRfT1AgcmhzLCByZXR1cm5zX3ZvaWRfdCgpKSB0byBkZWR1Y2UgaWYKKy8vIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCBvciBub3Q6CisvLyAtIG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZCAgIC0+IChCT09TVF9UVF9UUkFJVF9PUCByaHMsIHJldHVybnNfdm9pZF90KCkpIHJldHVybnMgcmV0dXJuc192b2lkX3QKKy8vIC0gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgcmV0dXJucyAhPXZvaWQgLT4gKEJPT1NUX1RUX1RSQUlUX09QIHJocywgcmV0dXJuc192b2lkX3QoKSkgcmV0dXJucyBpbnQKK3N0cnVjdCByZXR1cm5zX3ZvaWRfdCB7IH07Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW50IG9wZXJhdG9yLChjb25zdCBUJiwgcmV0dXJuc192b2lkX3QpOwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGludCBvcGVyYXRvciwoY29uc3Qgdm9sYXRpbGUgVCYsIHJldHVybnNfdm9pZF90KTsKKworLy8gdGhpcyBpbnRlcm1lZGlhdGUgdHJhaXQgaGFzIG1lbWJlciB2YWx1ZSBvZiB0eXBlIGJvb2w6CisvLyAtIHZhbHVlPT10cnVlIC0+IG9wZXJhdG9yIEJPT1NUX1RUX1RSQUlUX09QIHJldHVybnMgdm9pZAorLy8gLSB2YWx1ZT09ZmFsc2UgLT4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AgZG9lcyBub3QgcmV0dXJuIHZvaWQKK3RlbXBsYXRlIDwgdHlwZW5hbWUgUmhzID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX3ZvaWQgeworICAgLy8gb3ZlcmxvYWRzIG9mIGZ1bmN0aW9uIHJldHVybnNfdm9pZCBtYWtlIHRoZSBkaWZmZXJlbmNlCisgICAvLyB5ZXNfdHlwZSBhbmQgbm9fdHlwZSBoYXZlIGRpZmZlcmVudCBzaXplIGJ5IGNvbnN0cnVjdGlvbgorICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSByZXR1cm5zX3ZvaWQocmV0dXJuc192b2lkX3QpOworICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIHJldHVybnNfdm9pZChpbnQpOworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpPT1zaXplb2YocmV0dXJuc192b2lkKChCT09TVF9UVF9UUkFJVF9PUCBtYWtlPFJocz4oKSxyZXR1cm5zX3ZvaWRfdCgpKSkpKSk7Cit9OworCisKKy8vIDQuIGNoZWNrcyBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgUmV0IG9yIFJldD09ZG9udF9jYXJlCisvLyBjb25kaXRpb25zOiBSaHMhPXZvaWQKKworc3RydWN0IGRvbnRfY2FyZSB7IH07CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgUmhzLCB0eXBlbmFtZSBSZXQsIGJvb2wgUmV0dXJuc192b2lkID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldDsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBSaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgUmhzLCBkb250X2NhcmUsIHRydWUgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgUmhzID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IFJocywgZG9udF9jYXJlLCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBSaHMgPgorc3RydWN0IG9wZXJhdG9yX3JldHVybnNfUmV0IDwgUmhzLCB2b2lkLCB0cnVlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIFJocyA+CitzdHJ1Y3Qgb3BlcmF0b3JfcmV0dXJuc19SZXQgPCBSaHMsIHZvaWQsIGZhbHNlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3Qgb3BlcmF0b3JfcmV0dXJuc19SZXQgPCBSaHMsIFJldCwgdHJ1ZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKy8vIG90aGVyd2lzZSBjaGVja3MgaWYgaXQgaXMgY29udmVydGlibGUgdG8gUmV0IHVzaW5nIHRoZSBzaXplb2YgdHJpY2sKKy8vIGJhc2VkIG9uIG92ZXJsb2FkIHJlc29sdXRpb24KKy8vIGNvbmRpdGlvbjogUmV0IT12b2lkIGFuZCBSZXQhPWRvbnRfY2FyZSBhbmQgdGhlIG9wZXJhdG9yIGRvZXMgbm90IHJldHVybiB2b2lkCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIFJocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IFJocywgUmV0LCBmYWxzZSA+IHsKKyAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfY29udmVydGlibGVfdG9fUmV0KFJldCk7IC8vIHRoaXMgdmVyc2lvbiBpcyBwcmVmZXJyZWQgZm9yIHR5cGVzIGNvbnZlcnRpYmxlIHRvIFJldAorICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIGlzX2NvbnZlcnRpYmxlX3RvX1JldCguLi4pOyAvLyB0aGlzIHZlcnNpb24gaXMgdXNlZCBvdGhlcndpc2UKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihpc19jb252ZXJ0aWJsZV90b19SZXQoQk9PU1RfVFRfVFJBSVRfT1AgbWFrZTxSaHM+KCkpKT09c2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpKTsKK307CisKKworLy8gNS4gY2hlY2tzIGZvciBvcGVyYXRvciBleGlzdGVuY2UKKy8vIGNvbmRpdGlvbjogUmhzIT12b2lkCisKKy8vIGNoZWNrcyBpZiBvdXIgZGVmaW5pdGlvbiBvZiBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUCBpcyB1c2VkIG9yIGFuIG90aGVyCisvLyBleGlzdGluZyBvbmU7CisvLyB0aGlzIGlzIGRvbmUgd2l0aCByZWRlZmluaXRpb24gb2YgIm9wZXJhdG9yLCIgdGhhdCByZXR1cm5zIG5vX29wZXJhdG9yIG9yIGhhc19vcGVyYXRvcgorc3RydWN0IGhhc19vcGVyYXRvciB7IH07Citub19vcGVyYXRvciBvcGVyYXRvciwobm9fb3BlcmF0b3IsIGhhc19vcGVyYXRvcik7CisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgUmhzID4KK3N0cnVjdCBvcGVyYXRvcl9leGlzdHMgeworICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBjaGVjayhoYXNfb3BlcmF0b3IpOyAvLyB0aGlzIHZlcnNpb24gaXMgcHJlZmVycmVkIHdoZW4gb3BlcmF0b3IgZXhpc3RzCisgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgY2hlY2sobm9fb3BlcmF0b3IpOyAvLyB0aGlzIHZlcnNpb24gaXMgdXNlZCBvdGhlcndpc2UKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihjaGVjaygoKEJPT1NUX1RUX1RSQUlUX09QIG1ha2U8UmhzPigpKSxtYWtlPGhhc19vcGVyYXRvcj4oKSkpKT09c2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpKTsKK307CisKKworLy8gNi4gbWFpbiB0cmFpdDogdG8gYXZvaWQgYW55IGNvbXBpbGF0aW9uIGVycm9yLCB0aGlzIGNsYXNzIGJlaGF2ZXMKKy8vIGRpZmZlcmVudGx5IHdoZW4gb3BlcmF0b3IgQk9PU1RfVFRfVFJBSVRfT1AoUmhzKSBpcyBmb3JiaWRkZW4gYnkgdGhlCisvLyBzdGFuZGFyZC4KKy8vIEZvcmJpZGRlbl9pZiBpcyBhIGJvb2wgdGhhdCBpczoKKy8vIC0gdHJ1ZSB3aGVuIHRoZSBvcGVyYXRvciBCT09TVF9UVF9UUkFJVF9PUChSaHMpIGlzIGZvcmJpZGRlbiBieSB0aGUgc3RhbmRhcmQKKy8vICAgKHdvdWxkIHlpZWxkIGNvbXBpbGF0aW9uIGVycm9yIGlmIHVzZWQpCisvLyAtIGZhbHNlIG90aGVyd2lzZQordGVtcGxhdGUgPCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCwgYm9vbCBGb3JiaWRkZW5faWYgPgorc3RydWN0IHRyYWl0X2ltcGwxOworCit0ZW1wbGF0ZSA8IHR5cGVuYW1lIFJocywgdHlwZW5hbWUgUmV0ID4KK3N0cnVjdCB0cmFpdF9pbXBsMSA8IFJocywgUmV0LCB0cnVlID4geworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3QgdHJhaXRfaW1wbDEgPCBSaHMsIFJldCwgZmFsc2UgPiB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwKKyAgICAgIHZhbHVlID0gKAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICBvcGVyYXRvcl9leGlzdHMgPCBSaHMgPjo6dmFsdWUsCisgICAgICAgICAgICBvcGVyYXRvcl9yZXR1cm5zX1JldCA8IFJocywgUmV0LCBvcGVyYXRvcl9yZXR1cm5zX3ZvaWQgPCBSaHMgPjo6dmFsdWUgPjo6dmFsdWUKKyAgICAgICAgID46OnZhbHVlCisgICAgICApCisgICApOworfTsKKworLy8gc3BlY2lhbGl6YXRpb24gbmVlZHMgdG8gYmUgZGVjbGFyZWQgZm9yIHRoZSBzcGVjaWFsIHZvaWQgY2FzZQordGVtcGxhdGUgPCB0eXBlbmFtZSBSZXQgPgorc3RydWN0IHRyYWl0X2ltcGwxIDwgdm9pZCwgUmV0LCBmYWxzZSA+IHsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKy8vIGRlZmluZXMgc29tZSB0eXBlZGVmIGZvciBjb252ZW5pZW5jZQordGVtcGxhdGUgPCB0eXBlbmFtZSBSaHMsIHR5cGVuYW1lIFJldCA+CitzdHJ1Y3QgdHJhaXRfaW1wbCB7CisgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8UmhzPjo6dHlwZSBSaHNfbm9yZWY7CisgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9jdjxSaHNfbm9yZWY+Ojp0eXBlIFJoc19ub2N2OworICAgdHlwZWRlZiB0eXBlbmFtZSA6Om5kbmJvb3N0OjpyZW1vdmVfY3Y8IHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8IHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9wb2ludGVyPFJoc19ub3JlZj46OnR5cGUgPjo6dHlwZSA+Ojp0eXBlIFJoc19ub3B0cjsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9ICh0cmFpdF9pbXBsMSA8IFJoc19ub3JlZiwgUmV0LCBCT09TVF9UVF9GT1JCSURERU5fSUYgPjo6dmFsdWUpKTsKK307CisKK30gLy8gbmFtZXNwYWNlIGltcGwKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyB0aGlzIGlzIHRoZSBhY2Nlc3NpYmxlIGRlZmluaXRpb24gb2YgdGhlIHRyYWl0IHRvIGVuZCB1c2VyCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKEJPT1NUX1RUX1RSQUlUX05BTUUsIFJocywgUmV0PTo6bmRuYm9vc3Q6OmRldGFpbDo6Qk9PU1RfSk9JTihCT09TVF9UVF9UUkFJVF9OQU1FLF9pbXBsKTo6ZG9udF9jYXJlLCAoOjpuZG5ib29zdDo6ZGV0YWlsOjpCT09TVF9KT0lOKEJPT1NUX1RUX1RSQUlUX05BTUUsX2ltcGwpOjp0cmFpdF9pbXBsIDwgUmhzLCBSZXQgPjo6dmFsdWUpKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgIHByYWdtYSB3YXJuaW5nICggcG9wICkKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWQxYWU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHAKQEAgLTAsMCArMSwzNSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIGFuZCBTdGV2ZSBDbGVhcnkgMjAwMC4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0RFVEFJTF9JQ0VfQU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERVRBSUxfSUNFX0FORF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCit0ZW1wbGF0ZSA8Ym9vbCBiMSwgYm9vbCBiMiwgYm9vbCBiMyA9IHRydWUsIGJvb2wgYjQgPSB0cnVlLCBib29sIGI1ID0gdHJ1ZSwgYm9vbCBiNiA9IHRydWUsIGJvb2wgYjcgPSB0cnVlPgorc3RydWN0IGljZV9hbmQ7CisKK3RlbXBsYXRlIDxib29sIGIxLCBib29sIGIyLCBib29sIGIzLCBib29sIGI0LCBib29sIGI1LCBib29sIGI2LCBib29sIGI3Pgorc3RydWN0IGljZV9hbmQKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGljZV9hbmQ8dHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIHR5cGVfdHJhaXRzCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX0lDRV9BTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfZXEuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2VxLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTNkM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2VxLmhwcApAQCAtMCwwICsxLDM2IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgYW5kIFN0ZXZlIENsZWFyeSAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSUNFX0VRX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERVRBSUxfSUNFX0VRX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CisKK3RlbXBsYXRlIDxpbnQgYjEsIGludCBiMj4KK3N0cnVjdCBpY2VfZXEKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoYjEgPT0gYjIpKTsKK307CisKK3RlbXBsYXRlIDxpbnQgYjEsIGludCBiMj4KK3N0cnVjdCBpY2VfbmUKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoYjEgIT0gYjIpKTsKK307CisKKyNpZm5kZWYgQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04KK3RlbXBsYXRlIDxpbnQgYjEsIGludCBiMj4gYm9vbCBjb25zdCBpY2VfZXE8YjEsYjI+Ojp2YWx1ZTsKK3RlbXBsYXRlIDxpbnQgYjEsIGludCBiMj4gYm9vbCBjb25zdCBpY2VfbmU8YjEsYjI+Ojp2YWx1ZTsKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JQ0VfRVFfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfbm90LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3NDU3ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfbm90LmhwcApAQCAtMCwwICsxLDMxIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgYW5kIFN0ZXZlIENsZWFyeSAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSUNFX05PVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lDRV9OT1RfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKwordGVtcGxhdGUgPGJvb2wgYj4KK3N0cnVjdCBpY2Vfbm90Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGljZV9ub3Q8dHJ1ZT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JQ0VfTk9UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ0OWI5NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHAKQEAgLTAsMCArMSwzNCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIGFuZCBTdGV2ZSBDbGVhcnkgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0lDRV9PUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lDRV9PUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCit0ZW1wbGF0ZSA8Ym9vbCBiMSwgYm9vbCBiMiwgYm9vbCBiMyA9IGZhbHNlLCBib29sIGI0ID0gZmFsc2UsIGJvb2wgYjUgPSBmYWxzZSwgYm9vbCBiNiA9IGZhbHNlLCBib29sIGI3ID0gZmFsc2U+CitzdHJ1Y3QgaWNlX29yOworCit0ZW1wbGF0ZSA8Ym9vbCBiMSwgYm9vbCBiMiwgYm9vbCBiMywgYm9vbCBiNCwgYm9vbCBiNSwgYm9vbCBiNiwgYm9vbCBiNz4KK3N0cnVjdCBpY2Vfb3IKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaWNlX29yPGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIHR5cGVfdHJhaXRzCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX0lDRV9PUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl9oZWxwZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX2hlbHBlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2ZmRkZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl9oZWxwZXIuaHBwCkBAIC0wLDAgKzEsMjIwIEBACisKKy8vICBDb3B5cmlnaHQgMjAwMCBKb2huIE1hZGRvY2sgKGpvaG5Aam9obm1hZGRvY2suY28udWspCisvLyAgQ29weXJpZ2h0IDIwMDIgQWxla3NleSBHdXJ0b3ZveSAoYWd1cnRvdm95QG1ldGEtY29tbS5jb20pCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSVNfRlVOQ1RJT05fUFRSX0hFTFBFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lTX0ZVTkNUSU9OX1BUUl9IRUxQRVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKwordGVtcGxhdGUgPGNsYXNzIFI+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUpCisvLyBwcmVwcm9jZXNzb3ItZ2VuZXJhdGVkIHBhcnQsIGRvbid0IGVkaXQgYnkgaGFuZCEKKwordGVtcGxhdGUgPGNsYXNzIFIgPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiA+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMz4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMz4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyND4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyND4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZWxzZQorCisjdW5kZWYgQk9PU1RfU1RBVElDX0NPTlNUQU5UCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsICgwLCAyNSwgIm5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19mdW5jdGlvbl9wdHJfaGVscGVyLmhwcCIpKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNlbmRpZiAvLyBCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUKKworfSAvLyBuYW1lc3BhY2UgdHlwZV90cmFpdHMKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfSVNfRlVOQ1RJT05fUFRSX0hFTFBFUl9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1BQX0NPVU5URVIgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKK0AjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKK0AjZW5kaWYKKyN1bmRlZiBCT09TVF9QUF9DT1VOVEVSCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19mdW5jdGlvbl9wdHJfdGVzdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMDY1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19mdW5jdGlvbl9wdHJfdGVzdGVyLmhwcApAQCAtMCwwICsxLDY1NCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICBBbGVrc2V5IEd1cnRvdm95LCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX1RUX0RFVEFJTF9JU19GVU5DVElPTl9QVFJfVEVTVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERVRBSUxfSVNfRlVOQ1RJT05fUFRSX1RFU1RFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CisKKy8vIE5vdGUgaXQgaXMgYWNjZXB0YWJsZSB0byB1c2UgZWxsaXBzaXMgaGVyZSwgc2luY2UgdGhlIGFyZ3VtZW50IHdpbGwKKy8vIGFsd2F5cyBiZSBhIHBvaW50ZXIgdHlwZSBvZiBzb21lIHNvcnQgKEpNIDIwMDUvMDYvMDQpOgorbm9fdHlwZSBCT09TVF9UVF9ERUNMIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoLi4uKTsKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSkKKy8vIHByZS1wcm9jZXNzZWQgY29kZSwgZG9uJ3QgZWRpdCwgdHJ5IEdOVSBjcHAgd2l0aCAKKy8vIGNwcCAtSS4uLy4uLy4uLyAtREJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSAteCBjKysgLVAgZmlsZW5hbWUKKwordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSgpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCkpOwordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDApKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDApKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMikpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pKTsKKyNlbmRpZgorI2Vsc2UKKworI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCAoMCwgMjUsICJuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX3Rlc3Rlci5ocHAiKSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisjZW5kaWYgLy8gQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFCisKK30gLy8gbmFtZXNwYWNlIHR5cGVfdHJhaXRzCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX0lTX0ZVTkNUSU9OX1BUUl9URVNURVJfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorI3VuZGVmIF9fc3RkY2FsbAorI3VuZGVmIF9fZmFzdGNhbGwKKyN1bmRlZiBfX2NkZWNsCisKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSk7CitAI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworQCNlbmRpZgorQCNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpKTsKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworQCNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkpOwordGVtcGxhdGUgPGNsYXNzIFIgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworQCNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSk7CitAI2VuZGlmCisKKyN1bmRlZiBCT09TVF9QUF9DT1VOVEVSCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3OGVhMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl9pbXBsLmhwcApAQCAtMCwwICsxLDgxNyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICBBbGVrc2V5IEd1cnRvdm95LCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorCisvLy8vLyBoZWFkZXIgYm9keQorCisjaWZuZGVmIEJPT1NUX1RUX0RFVEFJTF9JU19NRU1fRlVOX1BPSU5URVJfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lTX01FTV9GVU5fUE9JTlRFUl9JTVBMX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSkKKy8vIHByZS1wcm9jZXNzZWQgY29kZSwgZG9uJ3QgZWRpdCwgdHJ5IEdOVSBjcHAgd2l0aCAKKy8vIGNwcCAtSS4uLy4uLy4uLyAtREJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSAteCBjKysgLVAgZmlsZW5hbWUKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSgpIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIC4uLikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAuLi4pID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfVFRfTk9fQ1ZfRlVOQ19URVNUKQordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEpIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLi4uKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIpIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfVFRfTk9fQ1ZfRlVOQ19URVNUKQordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfVFRfTk9fQ1ZfRlVOQ19URVNUKQordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKKworI2Vsc2UKKworI3VuZGVmIEJPT1NUX1NUQVRJQ19DT05TVEFOVAorI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCAoMCwgMjUsICJuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGwuaHBwIikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworI2VuZGlmIC8vIEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERQorCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JU19NRU1fRlVOX1BPSU5URVJfSU1QTF9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1BQX0NPVU5URVIgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworQCNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CitAI2VuZGlmCisKK0AjaWYgIWRlZmluZWQoQk9PU1RfVFRfTk9fQ1ZfRlVOQ19URVNUKQordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKworQCNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworQCNlbmRpZgorQCNlbmRpZgorCisjdW5kZWYgQk9PU1RfUFBfQ09VTlRFUgorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2N2M0ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyLmhwcApAQCAtMCwwICsxLDI3NTkgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgCisvLyAgQWxla3NleSBHdXJ0b3ZveSwgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSVNfTUVNX0ZVTl9QT0lOVEVSX1RFU1RFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lTX01FTV9GVU5fUE9JTlRFUl9URVNURVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCitub190eXBlIEJPT1NUX1RUX0RFQ0wgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlciguLi4pOworCisjaWYgIWRlZmluZWQoQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFKQorLy8gcHJlLXByb2Nlc3NlZCBjb2RlLCBkb24ndCBlZGl0LCB0cnkgR05VIGNwcCB3aXRoIAorLy8gY3BwIC1JLi4vLi4vLi4vIC1EQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFIC14IGMrKyAtUCBmaWxlbmFtZQorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywgKDAsIDI1LCAibmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwIikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworI2VuZGlmIC8vIEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERQorCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JU19NRU1fRlVOX1BPSU5URVJfVEVTVEVSX0hQUF9JTkNMVURFRAorCisvLy8vLyBpdGVyYXRpb24KKworI2Vsc2UKKyNkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKyN1bmRlZiBfX3N0ZGNhbGwKKyN1bmRlZiBfX2Zhc3RjYWxsCisjdW5kZWYgX19jZGVjbAorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3Qgdm9sYXRpbGUpOworCitAI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3Qgdm9sYXRpbGUpOworQCNlbmRpZgorQCNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUyAvLyBPdGhlciBjYWxsaW5nIGNvbnZlbnRpb25zIHVzZWQgYnkgTVMgY29tcGF0aWJsZSBjb21waWxlcnM6Cit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCitAI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3Qgdm9sYXRpbGUpOworQCNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSBjb25zdCB2b2xhdGlsZSk7CitAI2VuZGlmCisKKyN1bmRlZiBCT09TVF9QUF9DT1VOVEVSCisjZW5kaWYgLy8gQk9PU1RfUFBfSVNfSVRFUkFUSU5HCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9zaXplX3RfdHJhaXRfZGVmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF9kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YWZhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9zaXplX3RfdHJhaXRfZGVmLmhwcApAQCAtMCwwICsxLDYwIEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICRTb3VyY2UkCisvLyAkRGF0ZTogMjAxMS0wNC0yNSAwNToyNjo0OCAtMDcwMCAoTW9uLCAyNSBBcHIgMjAxMSkgJAorLy8gJFJldmlzaW9uOiA3MTQ4MSAkCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfY29uc3RhbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZV90LmhwcD4KKworI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NU1ZDKSB8fCBCT09TVF9NU1ZDID49IDEzMDAKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX1NJWkVfVF9CQVNFKEMpIHB1YmxpYyA6Om5kbmJvb3N0OjppbnRlZ3JhbF9jb25zdGFudDxzdGQ6OnNpemVfdCxDPgorIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfU0laRV9UX1RSQUlUX1ZBTFVFX0RFQ0woQykgLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX1NJWkVfVF9CQVNFKEMpIHB1YmxpYyA6Om5kbmJvb3N0OjptcGw6OnNpemVfdDxDPgorIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfU0laRV9UX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6bXBsOjpzaXplX3Q8Qz4gYmFzZV87IFwKKyAgICB1c2luZyBiYXNlXzo6dmFsdWU7IFwKKyAgICAvKiovCisjZW5kaWYKKworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfREVGMSh0cmFpdCxULEMpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRyYWl0IFwKKyAgICA6IEJPT1NUX1RUX0FVWF9TSVpFX1RfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsdHJhaXQsKFQpKSBcCit9OyBcCitcCitCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLHRyYWl0KSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9TUEVDMSh0cmFpdCxzcGVjLEMpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0PHNwZWM+IFwKKyAgICA6IEJPT1NUX1RUX0FVWF9TSVpFX1RfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMSx0cmFpdCwoc3BlYykpIFwKK307IFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfU0laRV9UX1RSQUlUX1BBUlRJQUxfU1BFQzFfMShwYXJhbSx0cmFpdCxzcGVjLEMpIFwKK3RlbXBsYXRlPCBwYXJhbSA+IHN0cnVjdCB0cmFpdDxzcGVjPiBcCisgICAgOiBCT09TVF9UVF9BVVhfU0laRV9UX0JBU0UoQykgXAoreyBcCit9OyBcCisvKiovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9zaXplX3RfdHJhaXRfdW5kZWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X3VuZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjdmZDkxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X3VuZGVmLmhwcApAQCAtMCwwICsxLDE2IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICRTb3VyY2UkCisvLyAkRGF0ZTogMjAwNC0wOS0wMiAwODo0MTozNyAtMDcwMCAoVGh1LCAwMiBTZXAgMjAwNCkgJAorLy8gJFJldmlzaW9uOiAyNDg3NCAkCisKKyN1bmRlZiBCT09TVF9UVF9BVVhfU0laRV9UX1RSQUlUX0RFRjEKKyN1bmRlZiBCT09TVF9UVF9BVVhfU0laRV9UX1RSQUlUX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3RlbXBsYXRlX2FyaXR5X3NwZWMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VmNjIyZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3RlbXBsYXRlX2FyaXR5X3NwZWMuaHBwCkBAIC0wLDAgKzEsMzEgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5X2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL2xhbWJkYS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2F1eF8vY29uZmlnL292ZXJsb2FkX3Jlc29sdXRpb24uaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQpIFwKKyAgICAmJiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfQlJPS0VOX09WRVJMT0FEX1JFU09MVVRJT04pCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKGksIG5hbWUpIFwKK25hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsgXAordGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSwgdHlwZW5hbWUgVCkgPiBcCitzdHJ1Y3QgdGVtcGxhdGVfYXJpdHk8IFwKKyAgICAgICAgICBuYW1lPCBCT09TVF9NUExfUFBfUEFSQU1TKGksIFQpID4gXAorICAgICAgICA+IFwKKyAgICA6IGludF88aT4gXAoreyBcCit9OyBcCit9fSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyhpLCBuYW1lKSAvKiovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2I4MTExCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwCkBAIC0wLDAgKzEsNjcgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gJFNvdXJjZSQKKy8vICREYXRlOiAyMDExLTA0LTI1IDA1OjI2OjQ4IC0wNzAwIChNb24sIDI1IEFwciAyMDExKSAkCisvLyAkUmV2aXNpb246IDcxNDgxICQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90ZW1wbGF0ZV9hcml0eV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMSh0cmFpdCxULHJlc3VsdCkgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgdHJhaXQgXAoreyBcCitwdWJsaWM6XAorICAgIHR5cGVkZWYgcmVzdWx0IHR5cGU7IFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsdHJhaXQsKFQpKSBcCit9OyBcCitcCitCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQygxLHRyYWl0KSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfU1BFQzEodHJhaXQsc3BlYyxyZXN1bHQpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0PHNwZWM+IFwKK3sgXAorcHVibGljOlwKKyAgICB0eXBlZGVmIHJlc3VsdCB0eXBlOyBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDEsdHJhaXQsKHNwZWMpKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfSU1QTF9TUEVDMSh0cmFpdCxzcGVjLHJlc3VsdCkgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQjI19pbXBsPHNwZWM+IFwKK3sgXAorcHVibGljOlwKKyAgICB0eXBlZGVmIHJlc3VsdCB0eXBlOyBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHBhcmFtLHRyYWl0LHNwZWMscmVzdWx0KSBcCit0ZW1wbGF0ZTwgcGFyYW0gPiBzdHJ1Y3QgdHJhaXQ8c3BlYz4gXAoreyBcCitwdWJsaWM6XAorICAgIHR5cGVkZWYgcmVzdWx0IHR5cGU7IFwKK307IFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIocGFyYW0xLHBhcmFtMix0cmFpdCxzcGVjLHJlc3VsdCkgXAordGVtcGxhdGU8IHBhcmFtMSwgcGFyYW0yID4gc3RydWN0IHRyYWl0PHNwZWM+IFwKK3sgXAorcHVibGljOlwKKyAgICB0eXBlZGVmIHJlc3VsdDsgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMV8xKHBhcmFtLHRyYWl0LHNwZWMscmVzdWx0KSBcCit0ZW1wbGF0ZTwgcGFyYW0gPiBzdHJ1Y3QgdHJhaXQjI19pbXBsPHNwZWM+IFwKK3sgXAorcHVibGljOlwKKyAgICB0eXBlZGVmIHJlc3VsdCB0eXBlOyBcCit9OyBcCisvKiovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0ZjE0ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcApAQCAtMCwwICsxLDE5IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICRTb3VyY2UkCisvLyAkRGF0ZTogMjAwNC0wOS0wMiAwODo0MTozNyAtMDcwMCAoVGh1LCAwMiBTZXAgMjAwNCkgJAorLy8gJFJldmlzaW9uOiAyNDg3NCAkCisKKyN1bmRlZiBCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxCisjdW5kZWYgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfU1BFQzEKKyN1bmRlZiBCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9JTVBMX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xCisjdW5kZWYgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yCisjdW5kZWYgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMxXzEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvd3JhcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk4NTExMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwCkBAIC0wLDAgKzEsMTggQEAKKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfV1JBUF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX1dSQVBfSFBQX0lOQ0xVREVECisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IHdyYXAge307CisKK319IC8vIG5hbWVzcGFjZSBuZG5ib29zdDo6dHlwZV90cmFpdHMKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9XUkFQX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmNiNjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHAKQEAgLTAsMCArMSwyNiBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgYW5kIFN0ZXZlIENsZWFyeSAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKy8vCisvLyAgbWFjcm9zIGFuZCBoZWxwZXJzIGZvciB3b3JraW5nIHdpdGggaW50ZWdyYWwtY29uc3RhbnQtZXhwcmVzc2lvbnMuCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX1lFU19OT19UWVBFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERVRBSUxfWUVTX05PX1RZUEVfSFBQX0lOQ0xVREVECisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCit0eXBlZGVmIGNoYXIgeWVzX3R5cGU7CitzdHJ1Y3Qgbm9fdHlwZQoreworICAgY2hhciBwYWRkaW5nWzhdOworfTsKKworfSAvLyBuYW1lc3BhY2UgdHlwZV90cmFpdHMKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfWUVTX05PX1RZUEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2V4dGVudC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2V4dGVudC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5NGViYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvZXh0ZW50LmhwcApAQCAtMCwwICsxLDE0NSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNS4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0VYVEVOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfRVhURU5UX0hQUF9JTkNMVURFRAorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWx7CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKyAgICAvLyB3cmFwIHRoZSBpbXBsIGFzIG1haW4gdHJhaXQgcHJvdmlkZXMgYWRkaXRpb25hbCBNUEwgbGFtYmRhIHN1cHBvcnQKKyAgICB0ZW1wbGF0ZSA8IHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4gPgorICAgIHN0cnVjdCBleHRlbnRfaW1wIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IHN0ZDo6c2l6ZV90IHZhbHVlID0gX19hcnJheV9leHRlbnQoVCwgTik7CisgICAgfTsKKworI2Vsc2UKKwordGVtcGxhdGUgPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4+CitzdHJ1Y3QgZXh0ZW50X2ltcAoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDApOworfTsKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBSLCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IGV4dGVudF9pbXA8VFtSXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpleHRlbnRfaW1wPFQsIE4tMT46OnZhbHVlKSk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgUiwgc3RkOjpzaXplX3QgTj4KK3N0cnVjdCBleHRlbnRfaW1wPFQgY29uc3RbUl0sIE4+Cit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gKDo6bmRuYm9vc3Q6OmRldGFpbDo6ZXh0ZW50X2ltcDxULCBOLTE+Ojp2YWx1ZSkpOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IFIsIHN0ZDo6c2l6ZV90IE4+CitzdHJ1Y3QgZXh0ZW50X2ltcDxUIHZvbGF0aWxlW1JdLCBOPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9ICg6Om5kbmJvb3N0OjpkZXRhaWw6OmV4dGVudF9pbXA8VCwgTi0xPjo6dmFsdWUpKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBSLCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IGV4dGVudF9pbXA8VCBjb25zdCB2b2xhdGlsZVtSXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpleHRlbnRfaW1wPFQsIE4tMT46OnZhbHVlKSk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgUj4KK3N0cnVjdCBleHRlbnRfaW1wPFRbUl0sMD4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSBSKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBSPgorc3RydWN0IGV4dGVudF9pbXA8VCBjb25zdFtSXSwgMD4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSBSKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBSPgorc3RydWN0IGV4dGVudF9pbXA8VCB2b2xhdGlsZVtSXSwgMD4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSBSKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBSPgorc3RydWN0IGV4dGVudF9pbXA8VCBjb25zdCB2b2xhdGlsZVtSXSwgMD4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSBSKTsKK307CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApICYmICFkZWZpbmVkKF9fSUJNQ1BQX18pICYmICAhQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKSAmJiAhZGVmaW5lZChfX01XRVJLU19fKQordGVtcGxhdGUgPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4+CitzdHJ1Y3QgZXh0ZW50X2ltcDxUW10sIE4+Cit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gKDo6bmRuYm9vc3Q6OmRldGFpbDo6ZXh0ZW50X2ltcDxULCBOLTE+Ojp2YWx1ZSkpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IGV4dGVudF9pbXA8VCBjb25zdFtdLCBOPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9ICg6Om5kbmJvb3N0OjpkZXRhaWw6OmV4dGVudF9pbXA8VCwgTi0xPjo6dmFsdWUpKTsKK307Cit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgTj4KK3N0cnVjdCBleHRlbnRfaW1wPFQgdm9sYXRpbGVbXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpleHRlbnRfaW1wPFQsIE4tMT46OnZhbHVlKSk7Cit9OwordGVtcGxhdGUgPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4+CitzdHJ1Y3QgZXh0ZW50X2ltcDxUIGNvbnN0IHZvbGF0aWxlW10sIE4+Cit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gKDo6bmRuYm9vc3Q6OmRldGFpbDo6ZXh0ZW50X2ltcDxULCBOLTE+Ojp2YWx1ZSkpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGV4dGVudF9pbXA8VFtdLCAwPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDApOworfTsKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGV4dGVudF9pbXA8VCBjb25zdFtdLCAwPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDApOworfTsKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGV4dGVudF9pbXA8VCB2b2xhdGlsZVtdLCAwPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDApOworfTsKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGV4dGVudF9pbXA8VCBjb25zdCB2b2xhdGlsZVtdLCAwPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IDApOworfTsKKyNlbmRpZgorI2VuZGlmCisKKyNlbmRpZiAgLy8gbm9uLUNvZGVHZWFyIGltcGxlbWVudGF0aW9uCit9ICAgLy8gOjpuZG5ib29zdDo6ZGV0YWlsCisKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBOID0gMD4KK3N0cnVjdCBleHRlbnQKKyAgIDogcHVibGljIDo6bmRuYm9vc3Q6OmludGVncmFsX2NvbnN0YW50PHN0ZDo6c2l6ZV90LCA6Om5kbmJvb3N0OjpkZXRhaWw6OmV4dGVudF9pbXA8VCxOPjo6dmFsdWU+Cit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApIAorICAgdHlwZWRlZiA6Om5kbmJvb3N0OjppbnRlZ3JhbF9jb25zdGFudDxzdGQ6OnNpemVfdCwgOjpuZG5ib29zdDo6ZGV0YWlsOjpleHRlbnRfaW1wPFQsTj46OnZhbHVlPiBiYXNlXzsgCisgICB1c2luZyBiYXNlXzo6dmFsdWU7CisjZW5kaWYKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEsZXh0ZW50LChUKSkKK307CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX01FTUJFUl9GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9mbG9hdGluZ19wb2ludF9wcm9tb3Rpb24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9mbG9hdGluZ19wb2ludF9wcm9tb3Rpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YTU4NjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2Zsb2F0aW5nX3BvaW50X3Byb21vdGlvbi5ocHAKQEAgLTAsMCArMSw5MSBAQAorLy8gQ29weXJpZ2h0IDIwMDUgQWxleGFuZGVyIE5hc29ub3YuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgRklMRV9ib29zdF90eXBlX3RyYWl0c19mbG9hdGluZ19wb2ludF9wcm9tb3Rpb25faHBwX0lOQ0xVREVECisjZGVmaW5lIEZJTEVfYm9vc3RfdHlwZV90cmFpdHNfZmxvYXRpbmdfcG9pbnRfcHJvbW90aW9uX2hwcF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2lmZGVmIEJPT1NUX05PX0NWX1NQRUNJQUxJWkFUSU9OUworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2ludC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL211bHRpcGxpZXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9wbHVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvdmVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyNlbmRpZgorCisvLyBTaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgdHlwZV90cmFpdHMgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmbmRlZiBCT09TVF9OT19DVl9TUEVDSUFMSVpBVElPTlMKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBmbG9hdGluZ19wb2ludF9wcm9tb3Rpb24KK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmbG9hdGluZ19wb2ludF9wcm9tb3Rpb248ZmxvYXQ+Cit7CisgICAgdHlwZWRlZiBkb3VibGUgdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmbG9hdGluZ19wb2ludF9wcm9tb3Rpb248ZmxvYXQgY29uc3Q+Cit7CisgICAgdHlwZWRlZiBkb3VibGUgY29uc3QgdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmbG9hdGluZ19wb2ludF9wcm9tb3Rpb248ZmxvYXQgdm9sYXRpbGU+Cit7CisgICAgdHlwZWRlZiBkb3VibGUgdm9sYXRpbGUgdHlwZTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBmbG9hdGluZ19wb2ludF9wcm9tb3Rpb248ZmxvYXQgY29uc3Qgdm9sYXRpbGU+Cit7CisgICAgdHlwZWRlZiBkb3VibGUgY29uc3Qgdm9sYXRpbGUgdHlwZTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgZmxvYXRpbmdfcG9pbnRfcHJvbW90aW9uCisgIDogbXBsOjphdDwKKyAgICAgICAgbXBsOjp2ZWN0b3I8IFQsIGRvdWJsZSwgZG91YmxlIGNvbnN0LCBkb3VibGUgdm9sYXRpbGUsCisgICAgICAgICAgICAgICAgICAgICBkb3VibGUgY29uc3Qgdm9sYXRpbGUgPgorICAgICAgLCBtcGw6OnBsdXM8CisgICAgICAgICAgICBpc19zYW1lPFQsIGZsb2F0PgorICAgICAgICAgICwgbXBsOjptdWx0aXBsaWVzPCBpc19zYW1lPFQsIGZsb2F0IGNvbnN0PiAgICAgICAgICwgbXBsOjppbnRfPDI+ID4KKyAgICAgICAgICAsIG1wbDo6bXVsdGlwbGllczwgaXNfc2FtZTxULCBmbG9hdCB2b2xhdGlsZT4gICAgICAsIG1wbDo6aW50XzwzPiA+CisgICAgICAgICAgLCBtcGw6Om11bHRpcGxpZXM8IGlzX3NhbWU8VCwgZmxvYXQgY29uc3Qgdm9sYXRpbGU+LCBtcGw6OmludF88ND4gPgorICAgICAgICAgID4KKyAgICAgID4KK3sKK307CisKKyNlbmRpZgorCit9IH0KKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMSgKKyAgICAgIGZsb2F0aW5nX3BvaW50X3Byb21vdGlvbgorICAgICwgVAorICAgICwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRQorICAgICAgICBuZG5ib29zdDo6dHlwZV90cmFpdHM6OmRldGFpbDo6ZmxvYXRpbmdfcG9pbnRfcHJvbW90aW9uPFQ+Ojp0eXBlCisgICAgKQorfQorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gI2lmbmRlZiBGSUxFX2Jvb3N0X3R5cGVfdHJhaXRzX2Zsb2F0aW5nX3BvaW50X3Byb21vdGlvbl9ocHBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9mdW5jdGlvbl90cmFpdHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9mdW5jdGlvbl90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5Y2E5NGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2Z1bmN0aW9uX3RyYWl0cy5ocHAKQEAgLTAsMCArMSwyMzYgQEAKKworLy8gIENvcHlyaWdodCAyMDAwIEpvaG4gTWFkZG9jayAoam9obkBqb2hubWFkZG9jay5jby51aykKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfRlVOQ1RJT05fVFJBSVRTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9GVU5DVElPTl9UUkFJVFNfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcG9pbnRlci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uPiBzdHJ1Y3QgZnVuY3Rpb25fdHJhaXRzX2hlbHBlcjsKKwordGVtcGxhdGU8dHlwZW5hbWUgUj4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKHZvaWQpPgoreworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIGFyaXR5ID0gMCk7CisgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxPgorc3RydWN0IGZ1bmN0aW9uX3RyYWl0c19oZWxwZXI8UiAoKikoVDEpPgoreworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIGFyaXR5ID0gMSk7CisgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgdHlwZWRlZiBUMSBhcmcxX3R5cGU7CisgIHR5cGVkZWYgVDEgYXJndW1lbnRfdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMik+Cit7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgYXJpdHkgPSAyKTsKKyAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICB0eXBlZGVmIFQxIGFyZzFfdHlwZTsKKyAgdHlwZWRlZiBUMiBhcmcyX3R5cGU7CisgIHR5cGVkZWYgVDEgZmlyc3RfYXJndW1lbnRfdHlwZTsKKyAgdHlwZWRlZiBUMiBzZWNvbmRfYXJndW1lbnRfdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+CitzdHJ1Y3QgZnVuY3Rpb25fdHJhaXRzX2hlbHBlcjxSICgqKShUMSwgVDIsIFQzKT4KK3sKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBhcml0eSA9IDMpOworICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisgIHR5cGVkZWYgVDEgYXJnMV90eXBlOworICB0eXBlZGVmIFQyIGFyZzJfdHlwZTsKKyAgdHlwZWRlZiBUMyBhcmczX3R5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUND4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMiwgVDMsIFQ0KT4KK3sKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBhcml0eSA9IDQpOworICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisgIHR5cGVkZWYgVDEgYXJnMV90eXBlOworICB0eXBlZGVmIFQyIGFyZzJfdHlwZTsKKyAgdHlwZWRlZiBUMyBhcmczX3R5cGU7CisgIHR5cGVkZWYgVDQgYXJnNF90eXBlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsCisgICAgICAgICB0eXBlbmFtZSBUNT4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMiwgVDMsIFQ0LCBUNSk+Cit7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgYXJpdHkgPSA1KTsKKyAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICB0eXBlZGVmIFQxIGFyZzFfdHlwZTsKKyAgdHlwZWRlZiBUMiBhcmcyX3R5cGU7CisgIHR5cGVkZWYgVDMgYXJnM190eXBlOworICB0eXBlZGVmIFQ0IGFyZzRfdHlwZTsKKyAgdHlwZWRlZiBUNSBhcmc1X3R5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYpPgoreworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIGFyaXR5ID0gNik7CisgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgdHlwZWRlZiBUMSBhcmcxX3R5cGU7CisgIHR5cGVkZWYgVDIgYXJnMl90eXBlOworICB0eXBlZGVmIFQzIGFyZzNfdHlwZTsKKyAgdHlwZWRlZiBUNCBhcmc0X3R5cGU7CisgIHR5cGVkZWYgVDUgYXJnNV90eXBlOworICB0eXBlZGVmIFQ2IGFyZzZfdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LAorICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNz4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3KT4KK3sKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBhcml0eSA9IDcpOworICB0eXBlZGVmIFIgcmVzdWx0X3R5cGU7CisgIHR5cGVkZWYgVDEgYXJnMV90eXBlOworICB0eXBlZGVmIFQyIGFyZzJfdHlwZTsKKyAgdHlwZWRlZiBUMyBhcmczX3R5cGU7CisgIHR5cGVkZWYgVDQgYXJnNF90eXBlOworICB0eXBlZGVmIFQ1IGFyZzVfdHlwZTsKKyAgdHlwZWRlZiBUNiBhcmc2X3R5cGU7CisgIHR5cGVkZWYgVDcgYXJnN190eXBlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsCisgICAgICAgICB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOD4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCk+Cit7CisgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgYXJpdHkgPSA4KTsKKyAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICB0eXBlZGVmIFQxIGFyZzFfdHlwZTsKKyAgdHlwZWRlZiBUMiBhcmcyX3R5cGU7CisgIHR5cGVkZWYgVDMgYXJnM190eXBlOworICB0eXBlZGVmIFQ0IGFyZzRfdHlwZTsKKyAgdHlwZWRlZiBUNSBhcmc1X3R5cGU7CisgIHR5cGVkZWYgVDYgYXJnNl90eXBlOworICB0eXBlZGVmIFQ3IGFyZzdfdHlwZTsKKyAgdHlwZWRlZiBUOCBhcmc4X3R5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4LCB0eXBlbmFtZSBUOT4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHNfaGVscGVyPFIgKCopKFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDkpPgoreworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIGFyaXR5ID0gOSk7CisgIHR5cGVkZWYgUiByZXN1bHRfdHlwZTsKKyAgdHlwZWRlZiBUMSBhcmcxX3R5cGU7CisgIHR5cGVkZWYgVDIgYXJnMl90eXBlOworICB0eXBlZGVmIFQzIGFyZzNfdHlwZTsKKyAgdHlwZWRlZiBUNCBhcmc0X3R5cGU7CisgIHR5cGVkZWYgVDUgYXJnNV90eXBlOworICB0eXBlZGVmIFQ2IGFyZzZfdHlwZTsKKyAgdHlwZWRlZiBUNyBhcmc3X3R5cGU7CisgIHR5cGVkZWYgVDggYXJnOF90eXBlOworICB0eXBlZGVmIFQ5IGFyZzlfdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LAorICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5LAorICAgICAgICAgdHlwZW5hbWUgVDEwPgorc3RydWN0IGZ1bmN0aW9uX3RyYWl0c19oZWxwZXI8UiAoKikoVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCBUOSwgVDEwKT4KK3sKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBhcml0eSA9IDEwKTsKKyAgdHlwZWRlZiBSIHJlc3VsdF90eXBlOworICB0eXBlZGVmIFQxIGFyZzFfdHlwZTsKKyAgdHlwZWRlZiBUMiBhcmcyX3R5cGU7CisgIHR5cGVkZWYgVDMgYXJnM190eXBlOworICB0eXBlZGVmIFQ0IGFyZzRfdHlwZTsKKyAgdHlwZWRlZiBUNSBhcmc1X3R5cGU7CisgIHR5cGVkZWYgVDYgYXJnNl90eXBlOworICB0eXBlZGVmIFQ3IGFyZzdfdHlwZTsKKyAgdHlwZWRlZiBUOCBhcmc4X3R5cGU7CisgIHR5cGVkZWYgVDkgYXJnOV90eXBlOworICB0eXBlZGVmIFQxMCBhcmcxMF90eXBlOworfTsKKworfSAvLyBlbmQgbmFtZXNwYWNlIGRldGFpbAorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHMgOiAKKyAgcHVibGljIG5kbmJvb3N0OjpkZXRhaWw6OmZ1bmN0aW9uX3RyYWl0c19oZWxwZXI8dHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9wb2ludGVyPEZ1bmN0aW9uPjo6dHlwZT4KK3sKK307CisKKyNlbHNlCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZTx1bnNpZ25lZCBOPiAKK3N0cnVjdCB0eXBlX29mX3NpemUKK3sKKyAgY2hhciBlbGVtZW50c1tOXTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFI+Cit0eXBlX29mX3NpemU8MT4gZnVuY3Rpb25fYXJpdHlfaGVscGVyKFIgKCpmKSgpKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDE+Cit0eXBlX29mX3NpemU8Mj4gZnVuY3Rpb25fYXJpdHlfaGVscGVyKFIgKCpmKShUMSkpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+Cit0eXBlX29mX3NpemU8Mz4gZnVuY3Rpb25fYXJpdHlfaGVscGVyKFIgKCpmKShUMSwgVDIpKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMz4KK3R5cGVfb2Zfc2l6ZTw0PiBmdW5jdGlvbl9hcml0eV9oZWxwZXIoUiAoKmYpKFQxLCBUMiwgVDMpKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+Cit0eXBlX29mX3NpemU8NT4gZnVuY3Rpb25fYXJpdHlfaGVscGVyKFIgKCpmKShUMSwgVDIsIFQzLCBUNCkpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgIHR5cGVuYW1lIFQ1PgordHlwZV9vZl9zaXplPDY+IGZ1bmN0aW9uX2FyaXR5X2hlbHBlcihSICgqZikoVDEsIFQyLCBUMywgVDQsIFQ1KSk7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LAorICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2PgordHlwZV9vZl9zaXplPDc+IGZ1bmN0aW9uX2FyaXR5X2hlbHBlcihSICgqZikoVDEsIFQyLCBUMywgVDQsIFQ1LCBUNikpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDc+Cit0eXBlX29mX3NpemU8OD4gZnVuY3Rpb25fYXJpdHlfaGVscGVyKFIgKCpmKShUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNykpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwKKyAgICAgICAgIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNiwgdHlwZW5hbWUgVDcsIHR5cGVuYW1lIFQ4PgordHlwZV9vZl9zaXplPDk+IGZ1bmN0aW9uX2FyaXR5X2hlbHBlcihSICgqZikoVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4KSk7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LAorICAgICAgICAgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDgsIHR5cGVuYW1lIFQ5PgordHlwZV9vZl9zaXplPDEwPiBmdW5jdGlvbl9hcml0eV9oZWxwZXIoUiAoKmYpKFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVDkpKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsCisgICAgICAgICB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksCisgICAgICAgICB0eXBlbmFtZSBUMTA+Cit0eXBlX29mX3NpemU8MTE+IGZ1bmN0aW9uX2FyaXR5X2hlbHBlcihSICgqZikoVDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUOSwgVDEwKSk7Cit9IC8vIGVuZCBuYW1lc3BhY2UgZGV0YWlsCisKKy8vIFdvbid0IHdvcmsgd2l0aCByZWZlcmVuY2VzCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KK3N0cnVjdCBmdW5jdGlvbl90cmFpdHMKK3sKKyAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBhcml0eSA9IChzaXplb2YobmRuYm9vc3Q6OmRldGFpbDo6ZnVuY3Rpb25fYXJpdHlfaGVscGVyKChGdW5jdGlvbiopMCkpLTEpKTsKK307CisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCit9CisKKyNlbmRpZiAvLyBCT09TVF9UVF9GVU5DVElPTl9UUkFJVFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfYW5kLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYzA5ODIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfYW5kLmhwcApAQCAtMCwwICsxLDQ5IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19CSVRfQU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfQklUX0FORF9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19iaXRfYW5kCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QICYKKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF9hbmRfYXNzaWduLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF9hbmRfYXNzaWduLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWE5MzY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X2FuZF9hc3NpZ24uaHBwCkBAIC0wLDAgKzEsNTUgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0JJVF9BTkRfQVNTSUdOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfQklUX0FORF9BU1NJR05fSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfYml0X2FuZF9hc3NpZ24KKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgJj0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PWNvbnN0ICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19jb25zdDwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfb3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2UzMjczCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yLmhwcApAQCAtMCwwICsxLDQ5IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19CSVRfT1JfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19CSVRfT1JfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfYml0X29yCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIHwKKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF9vcl9hc3NpZ24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yX2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdiN2MxOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF9vcl9hc3NpZ24uaHBwCkBAIC0wLDAgKzEsNTUgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0JJVF9PUl9BU1NJR05fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19CSVRfT1JfQVNTSUdOX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX2JpdF9vcl9hc3NpZ24KKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgfD0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PWNvbnN0ICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19jb25zdDwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF94b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyOThlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yLmhwcApAQCAtMCwwICsxLDQ5IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19CSVRfWE9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfQklUX1hPUl9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19iaXRfeG9yCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIF4KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF94b3JfYXNzaWduLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF94b3JfYXNzaWduLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWNhZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X3hvcl9hc3NpZ24uaHBwCkBAIC0wLDAgKzEsNTUgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0JJVF9YT1JfQVNTSUdOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfQklUX1hPUl9BU1NJR05fSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfYml0X3hvcl9hc3NpZ24KKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgXj0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PWNvbnN0ICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19jb25zdDwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19jb21wbGVtZW50LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2NvbXBsZW1lbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4N2QzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19jb21wbGVtZW50LmhwcApAQCAtMCwwICsxLDMyIEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19DT01QTEVNRU5UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfQ09NUExFTUVOVF9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19jb21wbGVtZW50CisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIH4KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBwb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgIC8qIGZ1bmRhbWVudGFsIG5vbiBpbnRlZ3JhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBSaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcHJlZml4X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RlcmVmZXJlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RlcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODkwZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZGVyZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsMzEgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0RFUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfREVSRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfZGVyZWZlcmVuY2UKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgKgorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICAvKiB2b2lkKiBvciBmdW5kYW1lbnRhbCAqL1wKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IFJoc19ub3B0ciA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcHJlZml4X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZGl2aWRlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyNTc0MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXMuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0RJVklERVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19ESVZJREVTX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX2RpdmlkZXMKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgLworI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICAvKiBwb2ludGVyIHdpdGggcG9pbnRlciBvciBmdW5kYW1lbnRhbCAqL1wKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19kaXZpZGVzX2Fzc2lnbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19kaXZpZGVzX2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU5NGRmZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXNfYXNzaWduLmhwcApAQCAtMCwwICsxLDQ3IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19ESVZJREVTX0FTU0lHTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX0RJVklERVNfQVNTSUdOX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX2RpdmlkZXNfYXNzaWduCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIC89CisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgTGhzPT1jb25zdCBhbmQgUmhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19jb25zdDwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgKFJocz09ZnVuZGFtZW50YWwgb3IgUmhzPT1wb2ludGVyKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09cG9pbnRlciBhbmQgKExocz09ZnVuZGFtZW50YWwgb3IgTGhzPT1wb2ludGVyKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZXF1YWxfdG8uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZXF1YWxfdG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMGI4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19lcXVhbF90by5ocHAKQEAgLTAsMCArMSw0OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfRVFVQUxfVE9fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19FUVVBTF9UT19IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19lcXVhbF90bworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCA9PQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PXBvaW50ZXIgYW5kIExocz09ZnVuZGFtZW50YWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgYW5kIExocyE9YmFzZShSaHMpIGFuZCBSaHMhPWJhc2UoTGhzKSBhbmQgTGhzIT12b2lkKiBhbmQgUmhzIT12b2lkKiAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBSaHNfbm9wdHIsIExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19zYW1lPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBMaHNfbm9wdHIgPjo6dmFsdWUsXAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgUmhzX25vcHRyID46OnZhbHVlXAorICAgICAgICAgICAgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ncmVhdGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzg4ODlhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlci5ocHAKQEAgLTAsMCArMSw0OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfR1JFQVRFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX0dSRUFURVJfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfZ3JlYXRlcgorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCA+CisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PWZ1bmRhbWVudGFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09cG9pbnRlciBhbmQgTGhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciBhbmQgTGhzIT1iYXNlKFJocykgYW5kIFJocyE9YmFzZShMaHMpIGFuZCBMaHMhPXZvaWQqIGFuZCBSaHMhPXZvaWQqICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Jhc2Vfb2Y8IExoc19ub3B0ciwgUmhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Jhc2Vfb2Y8IFJoc19ub3B0ciwgTGhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3NhbWU8IExoc19ub3B0ciwgUmhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBSaHNfbm9wdHIgPjo6dmFsdWVcCisgICAgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ncmVhdGVyX2VxdWFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2dyZWF0ZXJfZXF1YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxZWMyNjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ncmVhdGVyX2VxdWFsLmhwcApAQCAtMCwwICsxLDQ5IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19HUkVBVEVSX0VRVUFMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfR1JFQVRFUl9FUVVBTF9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19ncmVhdGVyX2VxdWFsCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QID49CisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PWZ1bmRhbWVudGFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09cG9pbnRlciBhbmQgTGhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciBhbmQgTGhzIT1iYXNlKFJocykgYW5kIFJocyE9YmFzZShMaHMpIGFuZCBMaHMhPXZvaWQqIGFuZCBSaHMhPXZvaWQqICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Jhc2Vfb2Y8IExoc19ub3B0ciwgUmhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Jhc2Vfb2Y8IFJoc19ub3B0ciwgTGhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3NhbWU8IExoc19ub3B0ciwgUmhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBSaHNfbm9wdHIgPjo6dmFsdWVcCisgICAgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZWZ0X3NoaWZ0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlZnRfc2hpZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTc4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZWZ0X3NoaWZ0LmhwcApAQCAtMCwwICsxLDQ5IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19MRUZUX1NISUZUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTEVGVF9TSElGVF9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19sZWZ0X3NoaWZ0CisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIDw8CisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1mdW5kYW1lbnRhbCBhbmQgKExocyE9aW50ZWdyYWwgb3IgUmhzIT1pbnRlZ3JhbCkgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBMaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBSaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09ZnVuZGFtZW50YWwgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZWZ0X3NoaWZ0X2Fzc2lnbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZWZ0X3NoaWZ0X2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlhZWM1MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlZnRfc2hpZnRfYXNzaWduLmhwcApAQCAtMCwwICsxLDU1IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19MRUZUX1NISUZUX0FTU0lHTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX0xFRlRfU0hJRlRfQVNTSUdOX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX2xlZnRfc2hpZnRfYXNzaWduCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIDw8PQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09ZnVuZGFtZW50YWwgYW5kIFJocz09ZnVuZGFtZW50YWwgYW5kIChMaHMhPWludGVncmFsIG9yIFJocyE9aW50ZWdyYWwpICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDwgTGhzX25vcmVmID46OnZhbHVlID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDwgUmhzX25vcmVmID46OnZhbHVlID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogUmhzPT1mdW5kYW1lbnRhbCBhbmQgTGhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09ZnVuZGFtZW50YWwgYW5kIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09Y29uc3QgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlc3MuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVzcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY3OTQxZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xlc3MuaHBwCkBAIC0wLDAgKzEsNDkgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0xFU1NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19MRVNTX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX2xlc3MKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgPAorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PXBvaW50ZXIgYW5kIExocz09ZnVuZGFtZW50YWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgYW5kIExocyE9YmFzZShSaHMpIGFuZCBSaHMhPWJhc2UoTGhzKSBhbmQgTGhzIT12b2lkKiBhbmQgUmhzIT12b2lkKiAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBSaHNfbm9wdHIsIExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19zYW1lPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBMaHNfbm9wdHIgPjo6dmFsdWUsXAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgUmhzX25vcHRyID46OnZhbHVlXAorICAgICAgICAgICAgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVzc19lcXVhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZXNzX2VxdWFsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTE4MGM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVzc19lcXVhbC5ocHAKQEAgLTAsMCArMSw0OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTEVTU19FUVVBTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX0xFU1NfRVFVQUxfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbGVzc19lcXVhbAorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCA8PQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PXBvaW50ZXIgYW5kIExocz09ZnVuZGFtZW50YWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgYW5kIExocyE9YmFzZShSaHMpIGFuZCBSaHMhPWJhc2UoTGhzKSBhbmQgTGhzIT12b2lkKiBhbmQgUmhzIT12b2lkKiAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBSaHNfbm9wdHIsIExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19zYW1lPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBMaHNfbm9wdHIgPjo6dmFsdWUsXAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgUmhzX25vcHRyID46OnZhbHVlXAorICAgICAgICAgICAgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9hbmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Yjc5NDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sb2dpY2FsX2FuZC5ocHAKQEAgLTAsMCArMSw0MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTE9HSUNBTF9BTkRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19MT0dJQ0FMX0FORF9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19sb2dpY2FsX2FuZAorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCAmJgorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICAvKiBwb2ludGVyIHdpdGggZnVuZGFtZW50YWwgbm9uIGNvbnZlcnRpYmxlIHRvIGJvb2wgKi9cCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2NvbnZlcnRpYmxlPCBSaHNfbm9jdiwgYm9vbCA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfY29udmVydGlibGU8IExoc19ub2N2LCBib29sID46OnZhbHVlID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xvZ2ljYWxfbm90LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xvZ2ljYWxfbm90LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDhmOTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9ub3QuaHBwCkBAIC0wLDAgKzEsMjMgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX0xPR0lDQUxfTk9UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTE9HSUNBTF9OT1RfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbG9naWNhbF9ub3QKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgIQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICBmYWxzZQorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wcmVmaXhfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9vci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sb2dpY2FsX29yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzQ4YjMwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9vci5ocHAKQEAgLTAsMCArMSw0MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTE9HSUNBTF9PUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX0xPR0lDQUxfT1JfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbG9naWNhbF9vcgorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCB8fAorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICAvKiBwb2ludGVyIHdpdGggZnVuZGFtZW50YWwgbm9uIGNvbnZlcnRpYmxlIHRvIGJvb2wgKi9cCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2NvbnZlcnRpYmxlPCBSaHNfbm9jdiwgYm9vbCA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfY29udmVydGlibGU8IExoc19ub2N2LCBib29sID46OnZhbHVlID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX21pbnVzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX21pbnVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2Q1Nzg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbWludXMuaHBwCkBAIC0wLDAgKzEsNjAgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX01JTlVTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTUlOVVNfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbWludXMKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgLQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzIT1pbnRlZ3JhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBSaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXZvaWQqIGFuZCAoUmhzPT1mdW5kYW1lbnRhbCBvciBSaHM9PXBvaW50ZXIpICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09dm9pZCogYW5kIChMaHM9PWZ1bmRhbWVudGFsIG9yIExocz09cG9pbnRlcikgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgUmhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPWZ1bmRhbWVudGFsIGFuZCBSaHM9cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiB0d28gZGlmZmVyZW50IHBvaW50ZXJzICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfc2FtZTwgTGhzX25vY3YsIFJoc19ub2N2ID46OnZhbHVlID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19taW51c19hc3NpZ24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbWludXNfYXNzaWduLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTNmMzVhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbWludXNfYXNzaWduLmhwcApAQCAtMCwwICsxLDY1IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19NSU5VU19BU1NJR05fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19NSU5VU19BU1NJR05fSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbWludXNfYXNzaWduCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIC09CisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHMhPWludGVncmFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09dm9pZCogYW5kIFJocz09ZnVuZGFtZW50YWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgTGhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09dm9pZCogYW5kIExocz09ZnVuZGFtZW50YWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgUmhzX25vcHRyID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz1mdW5kYW1lbnRhbCBhbmQgUmhzPXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogKExocz09ZnVuZGFtZW50YWwgb3IgTGhzPT1wb2ludGVyKSBhbmQgKFJocz09ZnVuZGFtZW50YWwgb3IgUmhzPT1wb2ludGVyKSBhbmQgKExocz09Y29uc3QpICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfY29uc3Q8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19tb2R1bHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDQ4OTNhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1cy5ocHAKQEAgLTAsMCArMSw0OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTU9EVUxVU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX01PRFVMVVNfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbW9kdWx1cworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCAlCisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1mdW5kYW1lbnRhbCBhbmQgKExocyE9aW50ZWdyYWwgb3IgUmhzIT1pbnRlZ3JhbCkgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBMaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBSaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09ZnVuZGFtZW50YWwgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19tb2R1bHVzX2Fzc2lnbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19tb2R1bHVzX2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTljMWViMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX21vZHVsdXNfYXNzaWduLmhwcApAQCAtMCwwICsxLDU1IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19NT0RVTFVTX0FTU0lHTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX01PRFVMVVNfQVNTSUdOX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX21vZHVsdXNfYXNzaWduCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QICU9CisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1mdW5kYW1lbnRhbCBhbmQgKExocyE9aW50ZWdyYWwgb3IgUmhzIT1pbnRlZ3JhbCkgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBMaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBSaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09ZnVuZGFtZW50YWwgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1mdW5kYW1lbnRhbCBhbmQgTGhzPT1jb25zdCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfY29uc3Q8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbXVsdGlwbGllcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19tdWx0aXBsaWVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmQ3NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbXVsdGlwbGllcy5ocHAKQEAgLTAsMCArMSw0MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTVVMVElQTElFU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX01VTFRJUExJRVNfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbXVsdGlwbGllcworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCAqCisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIC8qIHBvaW50ZXIgd2l0aCBwb2ludGVyIG9yIGZ1bmRhbWVudGFsICovXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX211bHRpcGxpZXNfYXNzaWduLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX211bHRpcGxpZXNfYXNzaWduLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2U0OTdmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbXVsdGlwbGllc19hc3NpZ24uaHBwCkBAIC0wLDAgKzEsNDcgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX01VTFRJUExJRVNfQVNTSUdOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTVVMVElQTElFU19BU1NJR05fSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbXVsdGlwbGllc19hc3NpZ24KKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgKj0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PWNvbnN0IGFuZCBSaHM9PWZ1bmRhbWVudGFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCAoUmhzPT1mdW5kYW1lbnRhbCBvciBSaHM9PXBvaW50ZXIpICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogUmhzPT1wb2ludGVyIGFuZCAoTGhzPT1mdW5kYW1lbnRhbCBvciBMaHM9PXBvaW50ZXIpICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19uZWdhdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbmVnYXRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjczMTUzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbmVnYXRlLmhwcApAQCAtMCwwICsxLDI1IEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19ORUdBVEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19ORUdBVEVfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfbmVnYXRlCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QIC0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgLyogcG9pbnRlciAqL1wKKyAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX3ByZWZpeF9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19uZXdfb3BlcmF0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbmV3X29wZXJhdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDM3ZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbmV3X29wZXJhdG9yLmhwcApAQCAtMCwwICsxLDE0MCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBSdW5hciBVbmRoZWltLCBSb2JlcnQgUmFtZXkgJiBKb2huIE1hZGRvY2sgMjAwOC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX05FV19PUEVSQVRPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX05FV19PUEVSQVRPUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5ldz4gLy8gc3RkOjpub3Rocm93X3QKKyNpbmNsdWRlIDxjc3RkZGVmPiAvLyBzdGQ6OnNpemVfdAorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBkZXRhaWwgeworICAgIHRlbXBsYXRlIDxjbGFzcyBVLCBVIHg+IAorICAgIHN0cnVjdCB0ZXN0OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IGhhc19uZXdfb3BlcmF0b3JfaW1wbCB7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6eWVzX3R5cGUgY2hlY2tfc2lnMSgKKyAgICAgICAgICAgIFUqLCAKKyAgICAgICAgICAgIHRlc3Q8CisgICAgICAgICAgICB2b2lkICooKikoc3RkOjpzaXplX3QpLAorICAgICAgICAgICAgICAgICZVOjpvcGVyYXRvciBuZXcKKyAgICAgICAgICAgID4qID0gTlVMTAorICAgICAgICApOworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgICAgICBzdGF0aWMgdHlwZV90cmFpdHM6Om5vX3R5cGUgY2hlY2tfc2lnMSguLi4pOworCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6eWVzX3R5cGUgY2hlY2tfc2lnMigKKyAgICAgICAgICAgIFUqLCAKKyAgICAgICAgICAgIHRlc3Q8CisgICAgICAgICAgICB2b2lkICooKikoc3RkOjpzaXplX3QsIGNvbnN0IHN0ZDo6bm90aHJvd190JiksCisgICAgICAgICAgICAgICAgJlU6Om9wZXJhdG9yIG5ldworICAgICAgICAgICAgPiogPSBOVUxMCisgICAgICAgICk7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6bm9fdHlwZSBjaGVja19zaWcyKC4uLik7CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgc3RhdGljIHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBjaGVja19zaWczKAorICAgICAgICAgICAgVSosIAorICAgICAgICAgICAgdGVzdDwKKyAgICAgICAgICAgIHZvaWQgKigqKShzdGQ6OnNpemVfdCwgdm9pZCopLAorICAgICAgICAgICAgICAgICZVOjpvcGVyYXRvciBuZXcKKyAgICAgICAgICAgID4qID0gTlVMTAorICAgICAgICApOworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgICAgICBzdGF0aWMgdHlwZV90cmFpdHM6Om5vX3R5cGUgY2hlY2tfc2lnMyguLi4pOworCisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgc3RhdGljIHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBjaGVja19zaWc0KAorICAgICAgICAgICAgVSosIAorICAgICAgICAgICAgdGVzdDwKKyAgICAgICAgICAgIHZvaWQgKigqKShzdGQ6OnNpemVfdCksCisgICAgICAgICAgICAgICAgJlU6Om9wZXJhdG9yIG5ld1tdCisgICAgICAgICAgICA+KiA9IE5VTEwKKyAgICAgICAgKTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgc3RhdGljIHR5cGVfdHJhaXRzOjpub190eXBlIGNoZWNrX3NpZzQoLi4uKTsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgICAgICBzdGF0aWMgdHlwZV90cmFpdHM6Onllc190eXBlIGNoZWNrX3NpZzUoCisgICAgICAgICAgICBVKiwgCisgICAgICAgICAgICB0ZXN0PAorICAgICAgICAgICAgdm9pZCAqKCopKHN0ZDo6c2l6ZV90LCBjb25zdCBzdGQ6Om5vdGhyb3dfdCYpLAorICAgICAgICAgICAgICAgICZVOjpvcGVyYXRvciBuZXdbXQorICAgICAgICAgICAgPiogPSBOVUxMCisgICAgICAgICk7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6bm9fdHlwZSBjaGVja19zaWc1KC4uLik7CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgc3RhdGljIHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBjaGVja19zaWc2KAorICAgICAgICAgICAgVSosIAorICAgICAgICAgICAgdGVzdDwKKyAgICAgICAgICAgIHZvaWQgKigqKShzdGQ6OnNpemVfdCwgdm9pZCopLAorICAgICAgICAgICAgICAgICZVOjpvcGVyYXRvciBuZXdbXQorICAgICAgICAgICAgPiogPSBOVUxMCisgICAgICAgICk7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6bm9fdHlwZSBjaGVja19zaWc2KC4uLik7CisKKyAgICAgICAgLy8gR0NDMiB3b24ndCBldmVuIHBhcnNlIHRoaXMgdGVtcGxhdGUgaWYgd2UgZW1iZWQgdGhlIGNvbXB1dGF0aW9uCisgICAgICAgIC8vIG9mIHMxIGluIHRoZSBjb21wdXRhdGlvbiBvZiB2YWx1ZS4KKyAgICAgICAgI2lmZGVmIF9fR05VQ19fCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIHMxID0gc2l6ZW9mKGhhc19uZXdfb3BlcmF0b3JfaW1wbDxUPjo6dGVtcGxhdGUgY2hlY2tfc2lnMTxUPigwKSkpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBzMiA9IHNpemVvZihoYXNfbmV3X29wZXJhdG9yX2ltcGw8VD46OnRlbXBsYXRlIGNoZWNrX3NpZzI8VD4oMCkpKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgczMgPSBzaXplb2YoaGFzX25ld19vcGVyYXRvcl9pbXBsPFQ+Ojp0ZW1wbGF0ZSBjaGVja19zaWczPFQ+KDApKSk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIHM0ID0gc2l6ZW9mKGhhc19uZXdfb3BlcmF0b3JfaW1wbDxUPjo6dGVtcGxhdGUgY2hlY2tfc2lnNDxUPigwKSkpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBzNSA9IHNpemVvZihoYXNfbmV3X29wZXJhdG9yX2ltcGw8VD46OnRlbXBsYXRlIGNoZWNrX3NpZzU8VD4oMCkpKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgczYgPSBzaXplb2YoaGFzX25ld19vcGVyYXRvcl9pbXBsPFQ+Ojp0ZW1wbGF0ZSBjaGVja19zaWc2PFQ+KDApKSk7CisgICAgICAgICNlbHNlCisgICAgICAgICAgICAjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisgICAgICAgICAgICAgICAgI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisgICAgICAgICAgICAgICAgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NjMzNCkKKyAgICAgICAgICAgICNlbmRpZgorCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIHMxID0gc2l6ZW9mKGNoZWNrX3NpZzE8VD4oMCkpKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgczIgPSBzaXplb2YoY2hlY2tfc2lnMjxUPigwKSkpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBzMyA9IHNpemVvZihjaGVja19zaWczPFQ+KDApKSk7CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsIHM0ID0gc2l6ZW9mKGNoZWNrX3NpZzQ8VD4oMCkpKTsKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCwgczUgPSBzaXplb2YoY2hlY2tfc2lnNTxUPigwKSkpOworICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLCBzNiA9IHNpemVvZihjaGVja19zaWc2PFQ+KDApKSk7CisKKyAgICAgICAgICAgICNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkNfRlVMTF9WRVIsID49IDE0MDA1MDAwMCkKKyAgICAgICAgICAgICAgICAjcHJhZ21hIHdhcm5pbmcocG9wKQorICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICNlbmRpZgorICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAKKyAgICAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAoczEgPT0gc2l6ZW9mKHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpLAorICAgICAgICAgICAgKHMyID09IHNpemVvZih0eXBlX3RyYWl0czo6eWVzX3R5cGUpKSwKKyAgICAgICAgICAgIChzMyA9PSBzaXplb2YodHlwZV90cmFpdHM6Onllc190eXBlKSksCisgICAgICAgICAgICAoczQgPT0gc2l6ZW9mKHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpLAorICAgICAgICAgICAgKHM1ID09IHNpemVvZih0eXBlX3RyYWl0czo6eWVzX3R5cGUpKSwKKyAgICAgICAgICAgIChzNiA9PSBzaXplb2YodHlwZV90cmFpdHM6Onllc190eXBlKSkKKyAgICAgICAgICAgPjo6dmFsdWUpCisgICAgICAgICk7CisgICAgfTsKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGhhc19uZXdfb3BlcmF0b3IsVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc19uZXdfb3BlcmF0b3JfaW1wbDxUPjo6dmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfTkVXX09QRVJBVE9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90X2VxdWFsX3RvLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdF9lcXVhbF90by5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdhNzBjYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdF9lcXVhbF90by5ocHAKQEAgLTAsMCArMSw0OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTk9UX0VRVUFMX1RPX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTk9UX0VRVUFMX1RPX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX25vdF9lcXVhbF90bworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCAhPQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PXBvaW50ZXIgYW5kIExocz09ZnVuZGFtZW50YWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgYW5kIExocyE9YmFzZShSaHMpIGFuZCBSaHMhPWJhc2UoTGhzKSBhbmQgTGhzIT12b2lkKiBhbmQgUmhzIT12b2lkKiAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19iYXNlX29mPCBSaHNfbm9wdHIsIExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19zYW1lPCBMaHNfbm9wdHIsIFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBMaHNfbm9wdHIgPjo6dmFsdWUsXAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgUmhzX25vcHRyID46OnZhbHVlXAorICAgICAgICAgICAgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19hc3NpZ24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19hc3NpZ24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZmYwY2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Fzc2lnbi5ocHAKQEAgLTAsMCArMSw0NCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTk9USFJPV19BU1NJR05fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19OT1RIUk9XX0FTU0lHTl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Fzc2lnbi5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGhhc19ub3Rocm93X2Fzc2lnbl9pbXB7CisjaWZuZGVmIEJPT1NUX0hBU19OT1RIUk9XX0FTU0lHTgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gOjpuZG5ib29zdDo6aGFzX3RyaXZpYWxfYXNzaWduPFQ+Ojp2YWx1ZSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSEFTX05PVEhST1dfQVNTSUdOKFQpKTsKKyNlbmRpZgorfTsKKworfQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGhhc19ub3Rocm93X2Fzc2lnbixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX25vdGhyb3dfYXNzaWduX2ltcDxUPjo6dmFsdWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19hc3NpZ24sdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc19ub3Rocm93X2Fzc2lnbix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfYXNzaWduLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19hc3NpZ24sdm9pZCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSEFTX05PVEhST1dfQVNTSUdOX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb25zdHJ1Y3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2NvbnN0cnVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjIzNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb25zdHJ1Y3Rvci5ocHAKQEAgLTAsMCArMSw1MyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTk9USFJPV19DT05TVFJVQ1RPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX05PVEhST1dfQ09OU1RSVUNUT1JfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb25zdHJ1Y3Rvci5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGhhc19ub3Rocm93X2NvbnN0cnVjdG9yX2ltcHsKKyNpZmRlZiBCT09TVF9IQVNfTk9USFJPV19DT05TVFJVQ1RPUgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2NvbnN0cnVjdG9yPFQ+Ojp2YWx1ZSk7CisjZW5kaWYKK307CisKK30KKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfbm90aHJvd19jb25zdHJ1Y3RvcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX25vdGhyb3dfY29uc3RydWN0b3JfaW1wPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaGFzX25vdGhyb3dfZGVmYXVsdF9jb25zdHJ1Y3RvcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX25vdGhyb3dfY29uc3RydWN0b3JfaW1wPFQ+Ojp2YWx1ZSkKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfY29uc3RydWN0b3Isdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc19ub3Rocm93X2NvbnN0cnVjdG9yLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfY29uc3RydWN0b3Isdm9pZCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19kZWZhdWx0X2NvbnN0cnVjdG9yLHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19kZWZhdWx0X2NvbnN0cnVjdG9yLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19kZWZhdWx0X2NvbnN0cnVjdG9yLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19kZWZhdWx0X2NvbnN0cnVjdG9yLHZvaWQgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0hBU19OT1RIUk9XX0NPTlNUUlVDVE9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb3B5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdGhyb3dfY29weS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJmM2UzMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdGhyb3dfY29weS5ocHAKQEAgLTAsMCArMSw1MyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTk9USFJPV19DT1BZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTk9USFJPV19DT1BZX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29weS5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGhhc19ub3Rocm93X2NvcHlfaW1weworI2lmZGVmIEJPT1NUX0hBU19OT1RIUk9XX0NPUFkKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IEJPT1NUX0hBU19OT1RIUk9XX0NPUFkoVCkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2NvcHk8VD46OnZhbHVlKTsKKyNlbmRpZgorfTsKKworfQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGhhc19ub3Rocm93X2NvcHksVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc19ub3Rocm93X2NvcHlfaW1wPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaGFzX25vdGhyb3dfY29weV9jb25zdHJ1Y3RvcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX25vdGhyb3dfY29weV9pbXA8VD46OnZhbHVlKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19jb3B5LHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19jb3B5LHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19jb3B5LHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfbm90aHJvd19jb3B5LHZvaWQgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfY29weV9jb25zdHJ1Y3Rvcix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfY29weV9jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfY29weV9jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX25vdGhyb3dfY29weV9jb25zdHJ1Y3Rvcix2b2lkIHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfTk9USFJPV19DT1BZX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19kZXN0cnVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdGhyb3dfZGVzdHJ1Y3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ5OWQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdGhyb3dfZGVzdHJ1Y3Rvci5ocHAKQEAgLTAsMCArMSwyNSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfTk9USFJPV19ERVNUUlVDVE9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfTk9USFJPV19ERVNUUlVDVE9SX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaGFzX25vdGhyb3dfZGVzdHJ1Y3RvcixULDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2Rlc3RydWN0b3I8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSEFTX05PVEhST1dfREVTVFJVQ1RPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX29wZXJhdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX29wZXJhdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDY2ZWQzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfb3BlcmF0b3IuaHBwCkBAIC0wLDAgKzEsNTEgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX09QRVJBVE9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfT1BFUkFUT1JfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF9hbmRfYXNzaWduLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfYml0X29yX2Fzc2lnbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2JpdF94b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19iaXRfeG9yX2Fzc2lnbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2NvbXBsZW1lbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19kZXJlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2RpdmlkZXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19kaXZpZGVzX2Fzc2lnbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2VxdWFsX3RvLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfZ3JlYXRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2dyZWF0ZXJfZXF1YWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZWZ0X3NoaWZ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVmdF9zaGlmdF9hc3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sZXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbGVzc19lcXVhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX2xvZ2ljYWxfYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbG9naWNhbF9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19sb2dpY2FsX29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbWludXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19taW51c19hc3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19tb2R1bHVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbW9kdWx1c19hc3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19tdWx0aXBsaWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbXVsdGlwbGllc19hc3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19uZWdhdGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3RfZXF1YWxfdG8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wbHVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcGx1c19hc3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wb3N0X2RlY3JlbWVudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3Bvc3RfaW5jcmVtZW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcHJlX2RlY3JlbWVudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3ByZV9pbmNyZW1lbnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19yaWdodF9zaGlmdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3JpZ2h0X3NoaWZ0X2Fzc2lnbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3VuYXJ5X21pbnVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfcGx1cy5ocHA+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcGx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wbHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGNhN2UwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcGx1cy5ocHAKQEAgLTAsMCArMSw1NCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfUExVU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1BMVVNfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfcGx1cworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCArCisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT12b2lkKiBhbmQgUmhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBMaHNfbm9wdHIgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogUmhzPT12b2lkKiBhbmQgTGhzPT1mdW5kYW1lbnRhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBSaHNfbm9wdHIgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1wb2ludGVyIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHMhPWludGVncmFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09cG9pbnRlciBhbmQgTGhzPT1mdW5kYW1lbnRhbCBhbmQgTGhzIT1pbnRlZ3JhbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPCBMaHNfbm9yZWYgPjo6dmFsdWUgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3BsdXNfYXNzaWduLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3BsdXNfYXNzaWduLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTdkNDc3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcGx1c19hc3NpZ24uaHBwCkBAIC0wLDAgKzEsNjYgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX1BMVVNfQVNTSUdOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfUExVU19BU1NJR05fSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfcGx1c19hc3NpZ24KKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgKz0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXZvaWQqIGFuZCBSaHM9PWZ1bmRhbWVudGFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IExoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBSaHM9PXZvaWQqIGFuZCBMaHM9PWZ1bmRhbWVudGFsICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IFJoc19ub3B0ciA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09ZnVuZGFtZW50YWwgYW5kIFJocyE9aW50ZWdyYWwgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDwgUmhzX25vcmVmID46OnZhbHVlID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogUmhzPT1wb2ludGVyIGFuZCBMaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHMhPWJvb2wgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19zYW1lPCBMaHNfbm9jdiwgYm9vbCA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIChMaHM9PWZ1bmRhbWVudGFsIG9yIExocz09cG9pbnRlcikgYW5kIChSaHM9PWZ1bmRhbWVudGFsIG9yIFJocz09cG9pbnRlcikgYW5kIChMaHM9PWNvbnN0KSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfYmluYXJ5X29wZXJhdG9yLmhwcD4KKworI3VuZGVmIEJPT1NUX1RUX1RSQUlUX05BTUUKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9PUAorI3VuZGVmIEJPT1NUX1RUX0ZPUkJJRERFTl9JRgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3Bvc3RfZGVjcmVtZW50LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3Bvc3RfZGVjcmVtZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWNjZTZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcG9zdF9kZWNyZW1lbnQuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKy8vICAoQykgQ29weXJpZ2h0IDIwMDktMjAxMSBGcmVkZXJpYyBCcm9uLgorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX1BPU1RfREVDUkVNRU5UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfUE9TVF9ERUNSRU1FTlRfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfcG9zdF9kZWNyZW1lbnQKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfT1AgLS0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBib29sICovXAorICAgICAgOjpuZG5ib29zdDo6aXNfc2FtZTwgYm9vbCwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgLyogdm9pZCogKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDwgTGhzX25vcHRyID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogKGZ1bmRhbWVudGFsIG9yIHBvaW50ZXIpIGFuZCBjb25zdCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZVwKKyAgID46OnZhbHVlCisKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9oYXNfcG9zdGZpeF9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wb3N0X2luY3JlbWVudC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wb3N0X2luY3JlbWVudC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjliMmQ3MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3Bvc3RfaW5jcmVtZW50LmhwcApAQCAtMCwwICsxLDQwIEBACisvLyAgKEMpIENvcHlyaWdodCAyMDA5LTIwMTEgRnJlZGVyaWMgQnJvbi4KKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19QT1NUX0lOQ1JFTUVOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1BPU1RfSU5DUkVNRU5UX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX3Bvc3RfaW5jcmVtZW50CisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX09QICsrCisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8XAorICAgICAgLyogYm9vbCAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OmlzX3NhbWU8IGJvb2wsIExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgIC8qIHZvaWQqICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8IExoc19ub3B0ciA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIChmdW5kYW1lbnRhbCBvciBwb2ludGVyKSBhbmQgY29uc3QgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICAgICA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19jb25zdDwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX3Bvc3RmaXhfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcHJlX2RlY3JlbWVudC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wcmVfZGVjcmVtZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2ViYjhjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcHJlX2RlY3JlbWVudC5ocHAKQEAgLTAsMCArMSw0MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfUFJFX0RFQ1JFTUVOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1BSRV9ERUNSRU1FTlRfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfcHJlX2RlY3JlbWVudAorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCAtLQorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIGJvb2wgKi9cCisgICAgICA6Om5kbmJvb3N0Ojppc19zYW1lPCBib29sLCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAvKiB2b2lkKiAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBSaHNfbm9wdHIgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiAoZnVuZGFtZW50YWwgb3IgcG9pbnRlcikgYW5kIGNvbnN0ICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfY29uc3Q8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wcmVmaXhfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcHJlX2luY3JlbWVudC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19wcmVfaW5jcmVtZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmFlMmIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcHJlX2luY3JlbWVudC5ocHAKQEAgLTAsMCArMSw0MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfUFJFX0lOQ1JFTUVOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1BSRV9JTkNSRU1FTlRfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfcHJlX2luY3JlbWVudAorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCArKworI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIGJvb2wgKi9cCisgICAgICA6Om5kbmJvb3N0Ojppc19zYW1lPCBib29sLCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAvKiB2b2lkKiAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPCBSaHNfbm9wdHIgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiAoZnVuZGFtZW50YWwgb3IgcG9pbnRlcikgYW5kIGNvbnN0ICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfY29uc3Q8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wcmVmaXhfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcmlnaHRfc2hpZnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcmlnaHRfc2hpZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyOWM0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19yaWdodF9zaGlmdC5ocHAKQEAgLTAsMCArMSw0OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfUklHSFRfU0hJRlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19SSUdIVF9TSElGVF9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc19yaWdodF9zaGlmdAorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCA+PgorI2RlZmluZSBCT09TVF9UVF9GT1JCSURERU5fSUZcCisgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgIC8qIExocz09ZnVuZGFtZW50YWwgYW5kIFJocz09ZnVuZGFtZW50YWwgYW5kIChMaHMhPWludGVncmFsIG9yIFJocyE9aW50ZWdyYWwpICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDwgTGhzX25vcmVmID46OnZhbHVlID46OnZhbHVlLFwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDwgUmhzX25vcmVmID46OnZhbHVlID46OnZhbHVlXAorICAgICAgICAgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PXBvaW50ZXIgKi9cCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgTGhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgUmhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogUmhzPT1mdW5kYW1lbnRhbCBhbmQgTGhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IFJoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIExocz09cG9pbnRlciBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjwgTGhzX25vcmVmID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlXAorICAgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19iaW5hcnlfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfcmlnaHRfc2hpZnRfYXNzaWduLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3JpZ2h0X3NoaWZ0X2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM2NTY1YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3JpZ2h0X3NoaWZ0X2Fzc2lnbi5ocHAKQEAgLTAsMCArMSw1NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfUklHSFRfU0hJRlRfQVNTSUdOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfUklHSFRfU0hJRlRfQVNTSUdOX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RUX1RSQUlUX05BTUUgaGFzX3JpZ2h0X3NoaWZ0X2Fzc2lnbgorI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCA+Pj0KKyNkZWZpbmUgQk9PU1RfVFRfRk9SQklEREVOX0lGXAorICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCAoTGhzIT1pbnRlZ3JhbCBvciBSaHMhPWludGVncmFsKSAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBMaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDwgUmhzX25vY3YgPjo6dmFsdWUsXAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IExoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZSxcCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8IFJoc19ub3JlZiA+Ojp2YWx1ZSA+Ojp2YWx1ZVwKKyAgICAgICAgID46OnZhbHVlXAorICAgICAgPjo6dmFsdWUsXAorICAgICAgLyogTGhzPT1mdW5kYW1lbnRhbCBhbmQgUmhzPT1wb2ludGVyICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IFJoc19ub3JlZiA+Ojp2YWx1ZVwKKyAgICAgID46OnZhbHVlLFwKKyAgICAgIC8qIFJocz09ZnVuZGFtZW50YWwgYW5kIExocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBMaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PXBvaW50ZXIgYW5kIFJocz09cG9pbnRlciAqL1wKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8IExoc19ub3JlZiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWVcCisgICAgICA+Ojp2YWx1ZSxcCisgICAgICAvKiBMaHM9PWZ1bmRhbWVudGFsIGFuZCBSaHM9PWZ1bmRhbWVudGFsIGFuZCBMaHM9PWNvbnN0ICovXAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8XAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuZGFtZW50YWw8IExoc19ub2N2ID46OnZhbHVlLFwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmRhbWVudGFsPCBSaHNfbm9jdiA+Ojp2YWx1ZSxcCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19jb25zdDwgTGhzX25vcmVmID46OnZhbHVlXAorICAgICAgPjo6dmFsdWVcCisgICA+Ojp2YWx1ZQorCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX2JpbmFyeV9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Fzc2lnbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIyZjc0NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfYXNzaWduLmhwcApAQCAtMCwwICsxLDU3IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19UUklWSUFMX0FTU0lHTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1RSSVZJQUxfQVNTSUdOX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRyaW5zaWNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfbm90LmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGhhc190cml2aWFsX2Fzc2lnbl9pbXBsCit7CisjaWZkZWYgQk9PU1RfSEFTX1RSSVZJQUxfQVNTSUdOCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19jb25zdDxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlID46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdHJpdmlhbF9hc3NpZ24sVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc190cml2aWFsX2Fzc2lnbl9pbXBsPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX2Fzc2lnbix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfYXNzaWduLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9hc3NpZ24sdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX2Fzc2lnbix2b2lkIHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfVFJJVklBTF9BU1NJR05fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2NvbnN0cnVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29uc3RydWN0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllYjVkZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2NvbnN0cnVjdG9yLmhwcApAQCAtMCwwICsxLDUxIEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGhhc190cml2aWFsX2N0b3JfaW1wbAoreworI2lmZGVmIEJPT1NUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2Q8VD46OnZhbHVlLAorICAgICAgICAgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkKKyAgICAgID46OnZhbHVlKSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIGZhbHNlCisgICAgICA+Ojp2YWx1ZSkpOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdHJpdmlhbF9jb25zdHJ1Y3RvcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX3RyaXZpYWxfY3Rvcl9pbXBsPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaGFzX3RyaXZpYWxfZGVmYXVsdF9jb25zdHJ1Y3RvcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX3RyaXZpYWxfY3Rvcl9pbXBsPFQ+Ojp2YWx1ZSkKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb3B5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29weS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZhNmYxNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29weS5ocHAKQEAgLTAsMCArMSw2NCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfVFJJVklBTF9DT1BZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfVFJJVklBTF9DT1BZX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRyaW5zaWNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaGFzX3RyaXZpYWxfY29weV9pbXBsCit7CisjaWZkZWYgQk9PU1RfSEFTX1RSSVZJQUxfQ09QWQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlID46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdHJpdmlhbF9jb3B5LFQsOjpuZG5ib29zdDo6ZGV0YWlsOjpoYXNfdHJpdmlhbF9jb3B5X2ltcGw8VD46OnZhbHVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdHJpdmlhbF9jb3B5X2NvbnN0cnVjdG9yLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjpoYXNfdHJpdmlhbF9jb3B5X2ltcGw8VD46OnZhbHVlKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9jb3B5LHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9jb3B5LHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9jb3B5LHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9jb3B5LHZvaWQgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3Rvcix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3Rvcix2b2lkIHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfVFJJVklBTF9DT1BZX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9kZXN0cnVjdG9yLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ3YWI2NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHAKQEAgLTAsMCArMSw0OSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRyaW5zaWNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaGFzX3RyaXZpYWxfZHRvcl9pbXBsCit7CisjaWZkZWYgQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihUKSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGhhc190cml2aWFsX2Rlc3RydWN0b3IsVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc190cml2aWFsX2R0b3JfaW1wbDxUPjo6dmFsdWUpCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX2Rlc3RydWN0b3Isdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX2Rlc3RydWN0b3Isdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX2Rlc3RydWN0b3Isdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX2Rlc3RydWN0b3Isdm9pZCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9tb3ZlX2Fzc2lnbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc1M2Q3NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24uaHBwCkBAIC0wLDAgKzEsNTcgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICAoQykgQ29weXJpZ2h0IEVyaWMgRnJpZWRtYW4gMjAwMi0yMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgQW50b255IFBvbHVraGluIDIwMTMuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19UUklWSUFMX01PVkVfQVNTSUdOX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9IQVNfVFJJVklBTF9NT1ZFX0FTU0lHTl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBoYXNfdHJpdmlhbF9tb3ZlX2Fzc2lnbl9pbXBsCit7CisjaWZkZWYgQk9PU1RfSEFTX1RSSVZJQUxfTU9WRV9BU1NJR04KKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0FTU0lHTihUKSkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2NvbnN0PFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICAgICA+Ojp2YWx1ZSkpOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdHJpdmlhbF9tb3ZlX2Fzc2lnbixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aGFzX3RyaXZpYWxfbW92ZV9hc3NpZ25faW1wbDxUPjo6dmFsdWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9tb3ZlX2Fzc2lnbix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24sdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGhhc190cml2aWFsX21vdmVfYXNzaWduLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9tb3ZlX2Fzc2lnbix2b2lkIHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfVFJJVklBTF9NT1ZFX0FTU0lHTl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX21vdmVfY29uc3RydWN0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiZjgzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX21vdmVfY29uc3RydWN0b3IuaHBwCkBAIC0wLDAgKzEsNTcgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICAoQykgQ29weXJpZ2h0IEVyaWMgRnJpZWRtYW4gMjAwMi0yMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgQW50b255IFBvbHVraGluIDIwMTMuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0hBU19UUklWSUFMX01PVkVfQ09OU1RSVUNUT1JfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19UUklWSUFMX01PVkVfQ09OU1RSVUNUT1JfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBoYXNfdHJpdmlhbF9tb3ZlX2N0b3JfaW1wbAoreworI2lmZGVmIEJPT1NUX0hBU19UUklWSUFMX01PVkVfQ09OU1RSVUNUT1IKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IChCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0NPTlNUUlVDVE9SKFQpKSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19wb2Q8VD46OnZhbHVlLAorICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlID46OnZhbHVlCisgICAgICAgICAgID46OnZhbHVlKSk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGhhc190cml2aWFsX21vdmVfY29uc3RydWN0b3IsVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc190cml2aWFsX21vdmVfY3Rvcl9pbXBsPFQ+Ojp2YWx1ZSkKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvcix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3Rvcix2b2lkIHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfVFJJVklBTF9NT1ZFX0NPTlNUUlVDVE9SX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfbWludXMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfbWludXMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiYTliMDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc191bmFyeV9taW51cy5ocHAKQEAgLTAsMCArMSwyNSBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfVU5BUllfTUlOVVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0hBU19VTkFSWV9NSU5VU19IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9OQU1FIGhhc191bmFyeV9taW51cworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCAtCisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIC8qIHBvaW50ZXIgKi9cCisgICA6Om5kbmJvb3N0Ojppc19wb2ludGVyPCBSaHNfbm9yZWYgPjo6dmFsdWUKKworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2hhc19wcmVmaXhfb3BlcmF0b3IuaHBwPgorCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfTkFNRQorI3VuZGVmIEJPT1NUX1RUX1RSQUlUX09QCisjdW5kZWYgQk9PU1RfVFRfRk9SQklEREVOX0lGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfcGx1cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc191bmFyeV9wbHVzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDhjYTRkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdW5hcnlfcGx1cy5ocHAKQEAgLTAsMCArMSwyMyBAQAorLy8gIChDKSBDb3B5cmlnaHQgMjAwOS0yMDExIEZyZWRlcmljIEJyb24uCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfVU5BUllfUExVU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1VOQVJZX1BMVVNfSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFRfVFJBSVRfTkFNRSBoYXNfdW5hcnlfcGx1cworI2RlZmluZSBCT09TVF9UVF9UUkFJVF9PUCArCisjZGVmaW5lIEJPT1NUX1RUX0ZPUkJJRERFTl9JRlwKKyAgIGZhbHNlCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaGFzX3ByZWZpeF9vcGVyYXRvci5ocHA+CisKKyN1bmRlZiBCT09TVF9UVF9UUkFJVF9OQU1FCisjdW5kZWYgQk9PU1RfVFRfVFJBSVRfT1AKKyN1bmRlZiBCT09TVF9UVF9GT1JCSURERU5fSUYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc192aXJ0dWFsX2Rlc3RydWN0b3IuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdmlydHVhbF9kZXN0cnVjdG9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTc0NjNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdmlydHVhbF9kZXN0cnVjdG9yLmhwcApAQCAtMCwwICsxLDI5IEBACisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA1LiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX1ZJUlRVQUxfREVTVFJVQ1RPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1ZJUlRVQUxfREVTVFJVQ1RPUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmZGVmIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaGFzX3ZpcnR1YWxfZGVzdHJ1Y3RvcixULEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkpCisjZWxzZQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdmlydHVhbF9kZXN0cnVjdG9yLFQsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX01FTUJFUl9GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OGMyMjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ljZS5ocHAKQEAgLTAsMCArMSwyMCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgYW5kIFN0ZXZlIENsZWFyeSAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKy8vCisvLyAgbWFjcm9zIGFuZCBoZWxwZXJzIGZvciB3b3JraW5nIHdpdGggaW50ZWdyYWwtY29uc3RhbnQtZXhwcmVzc2lvbnMuCisKKyNpZm5kZWYgQk9PU1RfVFRfSUNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9lcS5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JQ0VfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfY29uc3RhbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1MzlmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcApAQCAtMCwwICsxLDUzIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX0lOVEVHUkFMX0NPTlNUQU5UX0hQUAorI2RlZmluZSBCT09TVF9UWVBFX1RSQUlUU19JTlRFR1JBTF9DT05TVEFOVF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eworCisjaWYgZGVmaW5lZChCT09TVF9OT19ERVBFTkRFTlRfVFlQRVNfSU5fVEVNUExBVEVfVkFMVUVfUEFSQU1FVEVSUykgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgaW50IHZhbD4KKyNlbHNlCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgVCB2YWw+CisjZW5kaWYKK3N0cnVjdCBpbnRlZ3JhbF9jb25zdGFudCA6IHB1YmxpYyBtcGw6OmludGVncmFsX2M8VCwgdmFsPgoreworICAgdHlwZWRlZiBpbnRlZ3JhbF9jb25zdGFudDxULHZhbD4gdHlwZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX2NvbnN0YW50PGJvb2wsdHJ1ZT4gOiBwdWJsaWMgbXBsOjp0cnVlXyAKK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyMgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MDk3KQorICAgdHlwZWRlZiBtcGw6OnRydWVfIGJhc2VfOworICAgdXNpbmcgYmFzZV86OnZhbHVlOworIyBwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKyAgIHR5cGVkZWYgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCx0cnVlPiB0eXBlOworfTsKK3RlbXBsYXRlPD4gc3RydWN0IGludGVncmFsX2NvbnN0YW50PGJvb2wsZmFsc2U+IDogcHVibGljIG1wbDo6ZmFsc2VfIAoreworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorIyBwcmFnbWEgd2FybmluZyhwdXNoKQorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQwOTcpCisgICB0eXBlZGVmIG1wbDo6ZmFsc2VfIGJhc2VfOworICAgdXNpbmcgYmFzZV86OnZhbHVlOworIyBwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKyAgIHR5cGVkZWYgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCxmYWxzZT4gdHlwZTsKK307CisKK3R5cGVkZWYgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCx0cnVlPiB0cnVlX3R5cGU7Cit0eXBlZGVmIGludGVncmFsX2NvbnN0YW50PGJvb2wsZmFsc2U+IGZhbHNlX3R5cGU7CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX3Byb21vdGlvbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX3Byb21vdGlvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZjZjExOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfcHJvbW90aW9uLmhwcApAQCAtMCwwICsxLDE5NSBAQAorLy8gQ29weXJpZ2h0IDIwMDUgQWxleGFuZGVyIE5hc29ub3YuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgRklMRV9ib29zdF90eXBlX3RyYWl0c19pbnRlZ3JhbF9wcm9tb3Rpb25faHBwX0lOQ0xVREVECisjZGVmaW5lIEZJTEVfYm9vc3RfdHlwZV90cmFpdHNfaW50ZWdyYWxfcHJvbW90aW9uX2hwcF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWRlbnRpdHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisKKy8vIFNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7IG5hbWVzcGFjZSBkZXRhaWwgeworCisvLyA0LjUvMgordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBuZWVkX3Byb21vdGlvbiA6IHB1YmxpYyBuZG5ib29zdDo6aXNfZW51bTxUPiB7fTsKKworLy8gNC41LzEKK3RlbXBsYXRlPD4gc3RydWN0IG5lZWRfcHJvbW90aW9uPGNoYXIgICAgICAgICAgICAgID4gOiBwdWJsaWMgdHJ1ZV90eXBlIHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgbmVlZF9wcm9tb3Rpb248c2lnbmVkIGNoYXIgICAgICAgPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBuZWVkX3Byb21vdGlvbjx1bnNpZ25lZCBjaGFyICAgICA+IDogcHVibGljIHRydWVfdHlwZSB7fTsKK3RlbXBsYXRlPD4gc3RydWN0IG5lZWRfcHJvbW90aW9uPHNpZ25lZCBzaG9ydCBpbnQgID4gOiBwdWJsaWMgdHJ1ZV90eXBlIHt9OwordGVtcGxhdGU8PiBzdHJ1Y3QgbmVlZF9wcm9tb3Rpb248dW5zaWduZWQgc2hvcnQgaW50PiA6IHB1YmxpYyB0cnVlX3R5cGUge307CisKKworLy8gU3BlY2lhbGl6YXRpb25zIGZvciBub24tc3RhbmRhcmQgdHlwZXMuCisvLyBUeXBlIGlzIHByb21vdGVkIGlmIGl0J3Mgc21hbGxlciB0aGVuIGludC4KKworI2RlZmluZSBCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKFQpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBuZWVkX3Byb21vdGlvbjxUPiAgICAgICAgICBcCisgICAgICAgIDogcHVibGljIGludGVncmFsX2NvbnN0YW50PGJvb2wsIChzaXplb2YoVCkgPCBzaXplb2YoaW50KSk+IHt9OworCisvLyBTYW1lIHNldCBvZiBpbnRlZ3JhbCB0eXBlcyBhcyBpbiBib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHAuCisvLyBQbGVhc2UsIGtlZXAgaW4gc3luYy4KKyNpZiAoZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDEzMDApKSBcCisgICAgfHwgKGRlZmluZWQoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04pICYmIGRlZmluZWQoX01TQ19WRVIpICYmIChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA8PSA2MDApKSBcCisgICAgfHwgKGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAoX19CT1JMQU5EQ19fID09IDB4NjAwKSAmJiAoX01TQ19WRVIgPCAxMzAwKSkKKy8vIFRPRE86IGNvbW1vbiBtYWNybyBmb3IgdGhpcyAjaWYuIE9yIGJldHRlciB5ZXQsIFBQIFNFUSBvZiBub24tc3RhbmRhcmQgdHlwZXMuCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKF9faW50OCAgICAgICAgICApCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKHVuc2lnbmVkIF9faW50OCApCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKF9faW50MTYgICAgICAgICApCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKHVuc2lnbmVkIF9faW50MTYpCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKF9faW50MzIgICAgICAgICApCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKHVuc2lnbmVkIF9faW50MzIpCisjaWZkZWYgX19CT1JMQU5EQ19fCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKHVuc2lnbmVkIF9faW50NjQpCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKCAgICAgICAgIF9faW50NjQpCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorQk9PU1RfVFRfQVVYX1BST01PVEVfTk9OU1RBTkRBUkRfVFlQRShuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlKQorQk9PU1RfVFRfQVVYX1BST01PVEVfTk9OU1RBTkRBUkRfVFlQRShuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgKQorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKHVuc2lnbmVkIF9faW50NjQpCitCT09TVF9UVF9BVVhfUFJPTU9URV9OT05TVEFOREFSRF9UWVBFKCAgICAgICAgIF9faW50NjQpCisjZW5kaWYKKworI3VuZGVmIEJPT1NUX1RUX0FVWF9QUk9NT1RFX05PTlNUQU5EQVJEX1RZUEUKKworCisjaWZuZGVmIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisvLyA0LjUvMgordGVtcGxhdGU8PiBzdHJ1Y3QgbmVlZF9wcm9tb3Rpb248d2NoYXJfdD4gOiBwdWJsaWMgdHJ1ZV90eXBlIHt9OworI2VuZGlmCisKKy8vIDQuNS8zIChpbnRlZ3JhbCBiaXQtZmllbGQpIGlzIG5vdCBzdXBwb3J0ZWQuCisKKy8vIDQuNS80Cit0ZW1wbGF0ZTw+IHN0cnVjdCBuZWVkX3Byb21vdGlvbjxib29sPiA6IHB1YmxpYyB0cnVlX3R5cGUge307CisKKworLy8gR2V0IHByb21vdGVkIHR5cGUgYnkgaW5kZXggYW5kIGN2IHF1YWxpZmllcnMuCisKK3RlbXBsYXRlPGludCBJbmRleCwgaW50IElzQ29uc3QsIGludCBJc1ZvbGF0aWxlPiBzdHJ1Y3QgcHJvbW90ZV9mcm9tX2luZGV4OworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9QUk9NT1RFX0ZST01fSU5ERVgoTixUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHByb21vdGVfZnJvbV9pbmRleDxOLDAsMD4geyB0eXBlZGVmIFQgdHlwZTsgfTsgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBwcm9tb3RlX2Zyb21faW5kZXg8TiwwLDE+IHsgdHlwZWRlZiBUIHZvbGF0aWxlIHR5cGU7IH07ICBcCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgcHJvbW90ZV9mcm9tX2luZGV4PE4sMSwwPiB7IHR5cGVkZWYgVCBjb25zdCB0eXBlOyB9OyAgICAgXAorICAgIHRlbXBsYXRlPD4gc3RydWN0IHByb21vdGVfZnJvbV9pbmRleDxOLDEsMT4geyB0eXBlZGVmIFQgY29uc3Qgdm9sYXRpbGUgdHlwZTsgfTsKKworCitCT09TVF9UVF9BVVhfUFJPTU9URV9GUk9NX0lOREVYKDEsIGludCAgICAgICAgICApCitCT09TVF9UVF9BVVhfUFJPTU9URV9GUk9NX0lOREVYKDIsIHVuc2lnbmVkIGludCApCitCT09TVF9UVF9BVVhfUFJPTU9URV9GUk9NX0lOREVYKDMsIGxvbmcgICAgICAgICApCitCT09TVF9UVF9BVVhfUFJPTU9URV9GUk9NX0lOREVYKDQsIHVuc2lnbmVkIGxvbmcpCisKKworLy8gV0FSTklORzogaW50ZWdyYWwgcHJvbW90aW9ucyB0byBub24tc3RhbmRhcmQgdHlwZXMKKy8vIGxvbmcgbG9uZyBhbmQgX19pbnQ2NCBhcmUgbm90IGRlZmluZWQgYnkgdGhlIHN0YW5kYXJkLgorLy8gQWRkaXRpb25hbCBzcGVjaWFsaXNhdGlvbnMgYW5kIG92ZXJsb2FkcyBzaG91bGRuJ3QKKy8vIGludHJvZHVjZSBhbWJpZ3VpdHksIHRob3VnaC4KKworI2lmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKK0JPT1NUX1RUX0FVWF9QUk9NT1RFX0ZST01fSU5ERVgoNSwgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlICkKK0JPT1NUX1RUX0FVWF9QUk9NT1RFX0ZST01fSU5ERVgoNiwgbmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSkKKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorQk9PU1RfVFRfQVVYX1BST01PVEVfRlJPTV9JTkRFWCg3LCBfX2ludDY0ICAgICAgICAgKQorQk9PU1RfVFRfQVVYX1BST01PVEVfRlJPTV9JTkRFWCg4LCB1bnNpZ25lZCBfX2ludDY0KQorI2VuZGlmCisKKyN1bmRlZiBCT09TVF9UVF9BVVhfUFJPTU9URV9GUk9NX0lOREVYCisKKworLy8gRGVmaW5lIEJPT1NUX1RUX0FVWF9QUk9NT1RFRF9JTkRFWF9URVNURVI6CisjaWYgIWRlZmluZWQoQk9PU1RfTVNWQykKKwordGVtcGxhdGU8aW50IE4+CitzdHJ1Y3Qgc2l6ZWRfdHlwZV9mb3JfcHJvbW90aW9uCit7CisgICAgdHlwZWRlZiBjaGFyICgmdHlwZSlbTl07Cit9OworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9QUk9NT1RFRF9JTkRFWF9URVNURVIoSSxUKSBcCisgICAgc2l6ZWRfdHlwZV9mb3JfcHJvbW90aW9uPEk+Ojp0eXBlIHByb21vdGVkX2luZGV4X3Rlc3RlcihUKTsKKworI2Vsc2UKKworI2RlZmluZSBCT09TVF9UVF9BVVhfUFJPTU9URURfSU5ERVhfVEVTVEVSKEksVCkgXAorICAgIGNoYXIgKCZwcm9tb3RlZF9pbmRleF90ZXN0ZXIoVCkpW0ldOworCisjZW5kaWYKKworQk9PU1RfVFRfQVVYX1BST01PVEVEX0lOREVYX1RFU1RFUigxLCBpbnQgICAgICAgICAgKQorQk9PU1RfVFRfQVVYX1BST01PVEVEX0lOREVYX1RFU1RFUigyLCB1bnNpZ25lZCBpbnQgKQorQk9PU1RfVFRfQVVYX1BST01PVEVEX0lOREVYX1RFU1RFUigzLCBsb25nICAgICAgICAgKQorQk9PU1RfVFRfQVVYX1BST01PVEVEX0lOREVYX1RFU1RFUig0LCB1bnNpZ25lZCBsb25nKQorCisjaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorQk9PU1RfVFRfQVVYX1BST01PVEVEX0lOREVYX1RFU1RFUig1LCBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUgKQorQk9PU1RfVFRfQVVYX1BST01PVEVEX0lOREVYX1RFU1RFUig2LCBuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlKQorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCitCT09TVF9UVF9BVVhfUFJPTU9URURfSU5ERVhfVEVTVEVSKDcsIF9faW50NjQgICAgICAgICApCitCT09TVF9UVF9BVVhfUFJPTU9URURfSU5ERVhfVEVTVEVSKDgsIHVuc2lnbmVkIF9faW50NjQpCisjZW5kaWYKKworI3VuZGVmIEJPT1NUX1RUX0FVWF9QUk9NT1RFRF9JTkRFWF9URVNURVIKKworCisvLyBHZXQgYW4gaW5kZXggb2YgcHJvbW90ZWQgdHlwZSBmb3IgdHlwZSBULgorLy8gUHJlY29uZGl0aW9uOiBuZWVkX3Byb21vdGlvbjxUPgordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBwcm9tb3RlZF9pbmRleAoreworICAgIHN0YXRpYyBUIHRlc3RlZTsgLy8gdW5kZWZpbmVkCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSBzaXplb2YocHJvbW90ZWRfaW5kZXhfdGVzdGVyKCt0ZXN0ZWUpKSApOworICAgIC8vIFVuYXJ5IHBsdXMgcHJvbW90ZXMgdGVzdGVlICAgICAgICAgICAgICAgICAgICBMT09LIEhFUkUgLS0tPiBeCit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGludGVncmFsX3Byb21vdGlvbl9pbXBsCit7CisgICAgdHlwZWRlZiBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIHByb21vdGVfZnJvbV9pbmRleDwKKyAgICAgICAgKG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6ZGV0YWlsOjpwcm9tb3RlZF9pbmRleDxUPjo6dmFsdWUpCisgICAgICAsIChuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlKQorICAgICAgLCAobmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyAgICAgID46OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgaW50ZWdyYWxfcHJvbW90aW9uCisgIDogcHVibGljIG5kbmJvb3N0OjptcGw6OmV2YWxfaWY8CisgICAgICAgIG5lZWRfcHJvbW90aW9uPEJPT1NUX0RFRFVDRURfVFlQRU5BTUUgcmVtb3ZlX2N2PFQ+Ojp0eXBlPgorICAgICAgLCBpbnRlZ3JhbF9wcm9tb3Rpb25faW1wbDxUPgorICAgICAgLCBuZG5ib29zdDo6bXBsOjppZGVudGl0eTxUPgorICAgICAgPgoreworfTsKKworfSB9CisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEoCisgICAgICBpbnRlZ3JhbF9wcm9tb3Rpb24KKyAgICAsIFQKKyAgICAsIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKyAgICAgICAgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpkZXRhaWw6OmludGVncmFsX3Byb21vdGlvbjxUPjo6dHlwZQorICAgICkKK30KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vICNpZm5kZWYgRklMRV9ib29zdF90eXBlX3RyYWl0c19pbnRlZ3JhbF9wcm9tb3Rpb25faHBwX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1ZjFhMjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwCkBAIC0wLDAgKzEsMzA1IEBACisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JTlRSSU5TSUNTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JTlRSSU5TSUNTX0hQUF9JTkNMVURFRAorCisjaWZuZGVmIEJPT1NUX1RUX0NPTkZJR19IUFBfSU5DTFVERUQKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2VuZGlmCisKKy8vCisvLyBIZWxwZXIgbWFjcm9zIGZvciBidWlsdGluIGNvbXBpbGVyIHN1cHBvcnQuCisvLyBJZiB5b3VyIGNvbXBpbGVyIGhhcyBidWlsdGluIHN1cHBvcnQgZm9yIGFueSBvZiB0aGUgZm9sbG93aW5nCisvLyB0cmFpdHMgY29uY2VwdHMsIHRoZW4gcmVkZWZpbmUgdGhlIGFwcHJvcHJpYXRlIG1hY3JvcyB0byBwaWNrCisvLyB1cCBvbiB0aGUgY29tcGlsZXIgc3VwcG9ydDoKKy8vCisvLyAodGhlc2Ugc2hvdWxkIGxhcmdlbHkgaWdub3JlIGN2LXF1YWxpZmllcnMpCisvLyBCT09TVF9JU19VTklPTihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiBUIGlzIGEgdW5pb24gdHlwZQorLy8gQk9PU1RfSVNfUE9EKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmIFQgaXMgYSBQT0QgdHlwZQorLy8gQk9PU1RfSVNfRU1QVFkoVCkgc2hvdWxkIGV2YWx1YXRlIHRvIHRydWUgaWYgVCBpcyBhbiBlbXB0eSBjbGFzcyB0eXBlIChhbmQgbm90IGEgdW5pb24pCisvLyBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiAiVCB4OyIgaGFzIG5vIGVmZmVjdAorLy8gQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiBUKHQpIDw9PT4gbWVtY3B5CisvLyBCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0NPTlNUUlVDVE9SKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmIFQobmRuYm9vc3Q6Om1vdmUodCkpIDw9PT4gbWVtY3B5CisvLyBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgc2hvdWxkIGV2YWx1YXRlIHRvIHRydWUgaWYgdCA9IHUgPD09PiBtZW1jcHkKKy8vIEJPT1NUX0hBU19UUklWSUFMX01PVkVfQVNTSUdOKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmIHQgPSBuZG5ib29zdDo6bW92ZSh1KSA8PT0+IG1lbWNweQorLy8gQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiB+VCgpIGhhcyBubyBlZmZlY3QKKy8vIEJPT1NUX0hBU19OT1RIUk9XX0NPTlNUUlVDVE9SKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmICJUIHg7IiBjYW4gbm90IHRocm93CisvLyBCT09TVF9IQVNfTk9USFJPV19DT1BZKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmIFQodCkgY2FuIG5vdCB0aHJvdworLy8gQk9PU1RfSEFTX05PVEhST1dfQVNTSUdOKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmIHQgPSB1IGNhbiBub3QgdGhyb3cKKy8vIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgc2hvdWxkIGV2YWx1YXRlIHRvIHRydWUgVCBoYXMgYSB2aXJ0dWFsIGRlc3RydWN0b3IKKy8vCisvLyBUaGUgZm9sbG93aW5nIGNhbiBhbHNvIGJlIGRlZmluZWQ6IHdoZW4gZGV0ZWN0ZWQgb3VyIGltcGxlbWVudGF0aW9uIGlzIGdyZWF0bHkgc2ltcGxpZmllZC4KKy8vCisvLyBCT09TVF9JU19BQlNUUkFDVChUKSB0cnVlIGlmIFQgaXMgYW4gYWJzdHJhY3QgdHlwZQorLy8gQk9PU1RfSVNfQkFTRV9PRihULFUpIHRydWUgaWYgVCBpcyBhIGJhc2UgY2xhc3Mgb2YgVQorLy8gQk9PU1RfSVNfQ0xBU1MoVCkgdHJ1ZSBpZiBUIGlzIGEgY2xhc3MgdHlwZSAoYW5kIG5vdCBhIHVuaW9uKQorLy8gQk9PU1RfSVNfQ09OVkVSVElCTEUoVCxVKSB0cnVlIGlmIFQgaXMgY29udmVydGlibGUgdG8gVQorLy8gQk9PU1RfSVNfRU5VTShUKSB0cnVlIGlzIFQgaXMgYW4gZW51bQorLy8gQk9PU1RfSVNfUE9MWU1PUlBISUMoVCkgdHJ1ZSBpZiBUIGlzIGEgcG9seW1vcnBoaWMgdHlwZQorLy8gQk9PU1RfQUxJR05NRU5UX09GKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50cyBvZiB0eXBlIFQuCisKKyNpZmRlZiBCT09TVF9IQVNfU0dJX1RZUEVfVFJBSVRTCisgICAgLy8gSG9vayBpbnRvIFNHSSdzIF9fdHlwZV90cmFpdHMgY2xhc3MsIHRoaXMgd2lsbCBwaWNrIHVwIHVzZXIgc3VwcGxpZWQKKyAgICAvLyBzcGVjaWFsaXphdGlvbnMgYXMgd2VsbCBhcyBTR0kgLSBjb21waWxlciBzdXBwbGllZCBzcGVjaWFsaXphdGlvbnMuCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjICAgaWZkZWYgX19OZXRCU0RfXworICAgICAgLy8gVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdHlwZV90cmFpdHMuaCBvbiBOZXRCU0Qgb24gU3BhcmsKKyAgICAgIC8vIHVzZSBhbiBpbXBsaWNpdCBpbmNsdWRlIHZpYSBhbGdvcml0aG0gaW5zdGVhZCwgdG8gbWFrZSBzdXJlIHdlIGdldAorICAgICAgLy8gdGhlIHNhbWUgdmVyc2lvbiBhcyB0aGUgc3RkIGxpYjoKKyMgICAgIGluY2x1ZGUgPGFsZ29yaXRobT4KKyMgICBlbHNlCisjICAgIGluY2x1ZGUgPHR5cGVfdHJhaXRzLmg+CisjICAgZW5kaWYKKyMgICBkZWZpbmUgQk9PU1RfSVNfUE9EKFQpIDo6bmRuYm9vc3Q6OmlzX3NhbWU8IHR5cGVuYW1lIDo6X190eXBlX3RyYWl0czxUPjo6aXNfUE9EX3R5cGUsIDo6X190cnVlX3R5cGU+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSA6Om5kbmJvb3N0Ojppc19zYW1lPCB0eXBlbmFtZSA6Ol9fdHlwZV90cmFpdHM8VD46Omhhc190cml2aWFsX2RlZmF1bHRfY29uc3RydWN0b3IsIDo6X190cnVlX3R5cGU+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT1BZKFQpIDo6bmRuYm9vc3Q6OmlzX3NhbWU8IHR5cGVuYW1lIDo6X190eXBlX3RyYWl0czxUPjo6aGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3RvciwgOjpfX3RydWVfdHlwZT46OnZhbHVlCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0FTU0lHTihUKSA6Om5kbmJvb3N0Ojppc19zYW1lPCB0eXBlbmFtZSA6Ol9fdHlwZV90cmFpdHM8VD46Omhhc190cml2aWFsX2Fzc2lnbm1lbnRfb3BlcmF0b3IsIDo6X190cnVlX3R5cGU+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIDo6bmRuYm9vc3Q6OmlzX3NhbWU8IHR5cGVuYW1lIDo6X190eXBlX3RyYWl0czxUPjo6aGFzX3RyaXZpYWxfZGVzdHJ1Y3RvciwgOjpfX3RydWVfdHlwZT46OnZhbHVlCisKKyMgICBpZmRlZiBfX3NnaQorIyAgICAgIGRlZmluZSBCT09TVF9IQVNfVFlQRV9UUkFJVFNfSU5UUklOU0lDUworIyAgIGVuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19NU0xfQ1BQX18pICYmIChfX01TTF9DUFBfXyA+PSAweDgwMDApCisgICAgLy8gTWV0cm93ZXJrcyBjb21waWxlciBpcyBhY3F1aXJpbmcgaW50cmluc2ljIHR5cGUgdHJhaXRzIHN1cHBvcnQKKyAgICAvLyBwb3N0IHZlcnNpb24gOC4gIFdlIGhvb2sgaW50byB0aGUgcHVibGlzaGVkIGludGVyZmFjZSB0byBwaWNrIHVwCisgICAgLy8gdXNlciBkZWZpbmVkIHNwZWNpYWxpemF0aW9ucyBhcyB3ZWxsIGFzIGNvbXBpbGVyIGludHJpbnNpY3MgYXMgCisgICAgLy8gYW5kIHdoZW4gdGhleSBiZWNvbWUgYXZhaWxhYmxlOgorIyAgIGluY2x1ZGUgPG1zbF91dGlsaXR5PgorIyAgIGRlZmluZSBCT09TVF9JU19VTklPTihUKSBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRTo6aXNfdW5pb248VD46OnZhbHVlCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPRChUKSBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRTo6aXNfUE9EPFQ+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRTo6aGFzX3RyaXZpYWxfZGVmYXVsdF9jdG9yPFQ+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT1BZKFQpIEJPT1NUX1NURF9FWFRFTlNJT05fTkFNRVNQQUNFOjpoYXNfdHJpdmlhbF9jb3B5X2N0b3I8VD46OnZhbHVlCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0FTU0lHTihUKSBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRTo6aGFzX3RyaXZpYWxfYXNzaWdubWVudDxUPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihUKSBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRTo6aGFzX3RyaXZpYWxfZHRvcjxUPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyNlbmRpZgorCisjaWYgKGRlZmluZWQoQk9PU1RfTVNWQykgJiYgZGVmaW5lZChCT09TVF9NU1ZDX0ZVTExfVkVSKSAmJiAoQk9PU1RfTVNWQ19GVUxMX1ZFUiA+PTE0MDA1MDIxNSkpXAorICAgICAgICAgfHwgKGRlZmluZWQoQk9PU1RfSU5URUwpICYmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxNTAwKSkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5jdGlvbi5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfSVNfVU5JT04oVCkgX19pc191bmlvbihUKQorIyAgIGRlZmluZSBCT09TVF9JU19QT0QoVCkgKF9faXNfcG9kKFQpICYmIF9faGFzX3RyaXZpYWxfY29uc3RydWN0b3IoVCkpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VNUFRZKFQpIF9faXNfZW1wdHkoVCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkgX19oYXNfdHJpdmlhbF9jb25zdHJ1Y3RvcihUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT1BZKFQpIChfX2hhc190cml2aWFsX2NvcHkoVCl8fCAoIDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUgJiYgITo6bmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0FTU0lHTihUKSAoX19oYXNfdHJpdmlhbF9hc3NpZ24oVCkgfHwgKCA6Om5kbmJvb3N0Ojppc19wb2Q8VD46OnZhbHVlICYmICEgOjpuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlICYmICE6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIChfX2hhc190cml2aWFsX2Rlc3RydWN0b3IoVCkgfHwgOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkgKF9faGFzX25vdGhyb3dfY29uc3RydWN0b3IoVCkgfHwgOjpuZG5ib29zdDo6aGFzX3RyaXZpYWxfY29uc3RydWN0b3I8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19DT1BZKFQpIChfX2hhc19ub3Rocm93X2NvcHkoVCkgfHwgOjpuZG5ib29zdDo6aGFzX3RyaXZpYWxfY29weTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0FTU0lHTihUKSAoX19oYXNfbm90aHJvd19hc3NpZ24oVCkgfHwgOjpuZG5ib29zdDo6aGFzX3RyaXZpYWxfYXNzaWduPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1ZJUlRVQUxfREVTVFJVQ1RPUihUKSBfX2hhc192aXJ0dWFsX2Rlc3RydWN0b3IoVCkKKworIyAgIGRlZmluZSBCT09TVF9JU19BQlNUUkFDVChUKSBfX2lzX2Fic3RyYWN0KFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0JBU0VfT0YoVCxVKSAoX19pc19iYXNlX29mKFQsVSkgJiYgIWlzX3NhbWU8VCxVPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0lTX0NMQVNTKFQpIF9faXNfY2xhc3MoVCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfQ09OVkVSVElCTEUoVCxVKSAoKF9faXNfY29udmVydGlibGVfdG8oVCxVKSB8fCAoaXNfc2FtZTxULFU+Ojp2YWx1ZSAmJiAhaXNfZnVuY3Rpb248VT46OnZhbHVlKSkgJiYgIV9faXNfYWJzdHJhY3QoVSkpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisvLyAgVGhpcyBvbmUgZG9lc24ndCBxdWl0ZSBhbHdheXMgZG8gdGhlIHJpZ2h0IHRoaW5nOgorLy8gICMgICBkZWZpbmUgQk9PU1RfSVNfUE9MWU1PUlBISUMoVCkgX19pc19wb2x5bW9ycGhpYyhUKQorLy8gIFRoaXMgb25lIGZhaWxzIGlmIHRoZSBkZWZhdWx0IGFsaWdubWVudCBoYXMgYmVlbiBjaGFuZ2VkIHdpdGggL1pwOgorLy8gICMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIF9fYWxpZ25vZihUKQorCisjICAgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE3MDApCisjICAgICAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0NPTlNUUlVDVE9SKFQpICgoX19oYXNfdHJpdmlhbF9tb3ZlX2NvbnN0cnVjdG9yKFQpIHx8IDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUpICYmICE6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgICAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0FTU0lHTihUKSAoKF9faGFzX3RyaXZpYWxfbW92ZV9hc3NpZ24oVCkgfHwgOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSkgJiYgISA6Om5kbmJvb3N0Ojppc19jb25zdDxUPjo6dmFsdWUgJiYgITo6bmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyMgICBlbmRpZgorCisjICAgZGVmaW5lIEJPT1NUX0hBU19UWVBFX1RSQUlUU19JTlRSSU5TSUNTCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19ETUNfXykgJiYgKF9fRE1DX18gPj0gMHg4NDgpCisvLyBGb3IgRGlnaXRhbCBNYXJzIEMrKywgd3d3LmRpZ2l0YWxtYXJzLmNvbQorIyAgIGRlZmluZSBCT09TVF9JU19VTklPTihUKSAoX190eXBlaW5mbyhUKSAmIDB4NDAwKQorIyAgIGRlZmluZSBCT09TVF9JU19QT0QoVCkgKF9fdHlwZWluZm8oVCkgJiAweDgwMCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfRU1QVFkoVCkgKF9fdHlwZWluZm8oVCkgJiAweDEwMDApCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SKFQpIChfX3R5cGVpbmZvKFQpICYgMHgxMCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSAoX190eXBlaW5mbyhUKSAmIDB4MjApCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0FTU0lHTihUKSAoX190eXBlaW5mbyhUKSAmIDB4NDApCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkgKF9fdHlwZWluZm8oVCkgJiAweDgpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPTlNUUlVDVE9SKFQpIChfX3R5cGVpbmZvKFQpICYgMHg4MCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSAoX190eXBlaW5mbyhUKSAmIDB4MTAwKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19BU1NJR04oVCkgKF9fdHlwZWluZm8oVCkgJiAweDIwMCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1ZJUlRVQUxfREVTVFJVQ1RPUihUKSAoX190eXBlaW5mbyhUKSAmIDB4NCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9DTEFORykgJiYgZGVmaW5lZChfX2hhc19mZWF0dXJlKQorIyAgIGluY2x1ZGUgPGNzdGRkZWY+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHA+CisKKyMgICBpZiBfX2hhc19mZWF0dXJlKGlzX3VuaW9uKQorIyAgICAgZGVmaW5lIEJPT1NUX0lTX1VOSU9OKFQpIF9faXNfdW5pb24oVCkKKyMgICBlbmRpZgorIyAgIGlmICghZGVmaW5lZChfX0dMSUJDWFhfXykgfHwgKF9fR0xJQkNYWF9fID49IDIwMDgwMzA2ICYmIF9fR0xJQkNYWF9fICE9IDIwMDgwNTE5KSkgJiYgX19oYXNfZmVhdHVyZShpc19wb2QpCisjICAgICBkZWZpbmUgQk9PU1RfSVNfUE9EKFQpIF9faXNfcG9kKFQpCisjICAgZW5kaWYKKyMgICBpZiAoIWRlZmluZWQoX19HTElCQ1hYX18pIHx8IChfX0dMSUJDWFhfXyA+PSAyMDA4MDMwNiAmJiBfX0dMSUJDWFhfXyAhPSAyMDA4MDUxOSkpICYmIF9faGFzX2ZlYXR1cmUoaXNfZW1wdHkpCisjICAgICBkZWZpbmUgQk9PU1RfSVNfRU1QVFkoVCkgX19pc19lbXB0eShUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfdHJpdmlhbF9jb25zdHJ1Y3RvcikKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSBfX2hhc190cml2aWFsX2NvbnN0cnVjdG9yKFQpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGhhc190cml2aWFsX2NvcHkpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSAoX19oYXNfdHJpdmlhbF9jb3B5KFQpICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGhhc190cml2aWFsX2Fzc2lnbikKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgKF9faGFzX3RyaXZpYWxfYXNzaWduKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGhhc190cml2aWFsX2Rlc3RydWN0b3IpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihUKSBfX2hhc190cml2aWFsX2Rlc3RydWN0b3IoVCkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaGFzX25vdGhyb3dfY29uc3RydWN0b3IpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkgX19oYXNfbm90aHJvd19jb25zdHJ1Y3RvcihUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfbm90aHJvd19jb3B5KQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPUFkoVCkgKF9faGFzX25vdGhyb3dfY29weShUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfbm90aHJvd19hc3NpZ24pCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQVNTSUdOKFQpIChfX2hhc19ub3Rocm93X2Fzc2lnbihUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfdmlydHVhbF9kZXN0cnVjdG9yKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdmlydHVhbF9kZXN0cnVjdG9yKFQpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGlzX2Fic3RyYWN0KQorIyAgICAgZGVmaW5lIEJPT1NUX0lTX0FCU1RSQUNUKFQpIF9faXNfYWJzdHJhY3QoVCkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaXNfYmFzZV9vZikKKyMgICAgIGRlZmluZSBCT09TVF9JU19CQVNFX09GKFQsVSkgKF9faXNfYmFzZV9vZihULFUpICYmICFpc19zYW1lPFQsVT46OnZhbHVlKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShpc19jbGFzcykKKyMgICAgIGRlZmluZSBCT09TVF9JU19DTEFTUyhUKSBfX2lzX2NsYXNzKFQpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGlzX2NvbnZlcnRpYmxlX3RvKQorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYWJzdHJhY3QuaHBwPgorIyAgICAgZGVmaW5lIEJPT1NUX0lTX0NPTlZFUlRJQkxFKFQsVSkgKF9faXNfY29udmVydGlibGVfdG8oVCxVKSAmJiAhOjpuZG5ib29zdDo6aXNfYWJzdHJhY3Q8VT46OnZhbHVlKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShpc19lbnVtKQorIyAgICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGlzX3BvbHltb3JwaGljKQorIyAgICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3RvcikKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0NPTlNUUlVDVE9SKFQpIF9faGFzX3RyaXZpYWxfbW92ZV9jb25zdHJ1Y3RvcihUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfdHJpdmlhbF9tb3ZlX2Fzc2lnbikKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9NT1ZFX0FTU0lHTihUKSBfX2hhc190cml2aWFsX21vdmVfYXNzaWduKFQpCisjICAgZW5kaWYKKyMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIF9fYWxpZ25vZihUKQorCisjICAgZGVmaW5lIEJPT1NUX0hBU19UWVBFX1RSQUlUU19JTlRSSU5TSUNTCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoX19HTlVDX18gPiA0KSB8fCAoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSAmJiAhZGVmaW5lZChfX0dDQ1hNTF9fKSkpICYmICFkZWZpbmVkKEJPT1NUX0NMQU5HKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorCisjaWZkZWYgQk9PU1RfSU5URUwKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9UVF9PUFRTIHx8IGlzX3BvZDxUPjo6dmFsdWUKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSU5URUxfVFRfT1BUUworI2VuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfVU5JT04oVCkgX19pc191bmlvbihUKQorIyAgIGRlZmluZSBCT09TVF9JU19QT0QoVCkgX19pc19wb2QoVCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfRU1QVFkoVCkgX19pc19lbXB0eShUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSAoKF9faGFzX3RyaXZpYWxfY29uc3RydWN0b3IoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykgJiYgISA6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPUFkoVCkgKChfX2hhc190cml2aWFsX2NvcHkoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykgJiYgIWlzX3JlZmVyZW5jZTxUPjo6dmFsdWUgJiYgISA6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0FTU0lHTihUKSAoKF9faGFzX3RyaXZpYWxfYXNzaWduKFQpIEJPT1NUX0lOVEVMX1RUX09QVFMpICYmICEgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICEgOjpuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIChfX2hhc190cml2aWFsX2Rlc3RydWN0b3IoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkgKF9faGFzX25vdGhyb3dfY29uc3RydWN0b3IoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSAoKF9faGFzX25vdGhyb3dfY29weShUKSBCT09TVF9JTlRFTF9UVF9PUFRTKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19BU1NJR04oVCkgKChfX2hhc19ub3Rocm93X2Fzc2lnbihUKSBCT09TVF9JTlRFTF9UVF9PUFRTKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19jb25zdDxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdmlydHVhbF9kZXN0cnVjdG9yKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfQUJTVFJBQ1QoVCkgX19pc19hYnN0cmFjdChUKQorIyAgIGRlZmluZSBCT09TVF9JU19CQVNFX09GKFQsVSkgKF9faXNfYmFzZV9vZihULFUpICYmICFpc19zYW1lPFQsVT46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9JU19DTEFTUyhUKSBfX2lzX2NsYXNzKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBpZiAoIWRlZmluZWQodW5peCkgJiYgIWRlZmluZWQoX191bml4X18pKSB8fCBkZWZpbmVkKF9fTFA2NF9fKQorICAgICAgLy8gR0NDIHNvbWV0aW1lcyBsaWVzIGFib3V0IGFsaWdubWVudCByZXF1aXJlbWVudHMKKyAgICAgIC8vIG9mIHR5cGUgZG91YmxlIG9uIDMyLWJpdCB1bml4IHBsYXRmb3JtcywgdXNlIHRoZQorICAgICAgLy8gb2xkIGltcGxlbWVudGF0aW9uIGluc3RlYWQgaW4gdGhhdCBjYXNlOgorIyAgICAgZGVmaW5lIEJPT1NUX0FMSUdOTUVOVF9PRihUKSBfX2FsaWdub2ZfXyhUKQorIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2doc19fKSAmJiAoX19HSFNfVkVSU0lPTl9OVU1CRVIgPj0gNjAwKQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX0lTX1VOSU9OKFQpIF9faXNfdW5pb24oVCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfUE9EKFQpIF9faXNfcG9kKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VNUFRZKFQpIF9faXNfZW1wdHkoVCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkgX19oYXNfdHJpdmlhbF9jb25zdHJ1Y3RvcihUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT1BZKFQpIChfX2hhc190cml2aWFsX2NvcHkoVCkgJiYgIWlzX3JlZmVyZW5jZTxUPjo6dmFsdWUgJiYgIWlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQVNTSUdOKFQpIChfX2hhc190cml2aWFsX2Fzc2lnbihUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIF9faGFzX3RyaXZpYWxfZGVzdHJ1Y3RvcihUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19DT05TVFJVQ1RPUihUKSBfX2hhc19ub3Rocm93X2NvbnN0cnVjdG9yKFQpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPUFkoVCkgKF9faGFzX25vdGhyb3dfY29weShUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19BU1NJR04oVCkgKF9faGFzX25vdGhyb3dfYXNzaWduKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdmlydHVhbF9kZXN0cnVjdG9yKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfQUJTVFJBQ1QoVCkgX19pc19hYnN0cmFjdChUKQorIyAgIGRlZmluZSBCT09TVF9JU19CQVNFX09GKFQsVSkgKF9faXNfYmFzZV9vZihULFUpICYmICFpc19zYW1lPFQsVT46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9JU19DTEFTUyhUKSBfX2lzX2NsYXNzKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIF9fYWxpZ25vZl9fKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyNlbmRpZgorCisjIGlmIGRlZmluZWQoX19DT0RFR0VBUkNfXykKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9JU19VTklPTihUKSBfX2lzX3VuaW9uKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPRChUKSBfX2lzX3BvZChUKQorIyAgIGRlZmluZSBCT09TVF9JU19FTVBUWShUKSBfX2lzX2VtcHR5KFQpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SKFQpIChfX2hhc190cml2aWFsX2RlZmF1bHRfY29uc3RydWN0b3IoVCkpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPUFkoVCkgKF9faGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3RvcihUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgKF9faGFzX3RyaXZpYWxfYXNzaWduKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkgKF9faGFzX3RyaXZpYWxfZGVzdHJ1Y3RvcihUKSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkgKF9faGFzX25vdGhyb3dfZGVmYXVsdF9jb25zdHJ1Y3RvcihUKSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSAoX19oYXNfbm90aHJvd19jb3B5X2NvbnN0cnVjdG9yKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUgJiYgIWlzX3JlZmVyZW5jZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0FTU0lHTihUKSAoX19oYXNfbm90aHJvd19hc3NpZ24oVCkgJiYgIWlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1ZJUlRVQUxfREVTVFJVQ1RPUihUKSBfX2hhc192aXJ0dWFsX2Rlc3RydWN0b3IoVCkKKworIyAgIGRlZmluZSBCT09TVF9JU19BQlNUUkFDVChUKSBfX2lzX2Fic3RyYWN0KFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0JBU0VfT0YoVCxVKSAoX19pc19iYXNlX29mKFQsVSkgJiYgIWlzX3ZvaWQ8VD46OnZhbHVlICYmICFpc192b2lkPFU+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSVNfQ0xBU1MoVCkgX19pc19jbGFzcyhUKQorIyAgIGRlZmluZSBCT09TVF9JU19DT05WRVJUSUJMRShULFUpIChfX2lzX2NvbnZlcnRpYmxlKFQsVSkgfHwgaXNfdm9pZDxVPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIGFsaWdub2YoVCkKKworIyAgIGRlZmluZSBCT09TVF9IQVNfVFlQRV9UUkFJVFNfSU5UUklOU0lDUworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9UVF9JTlRSSU5TSUNTX0hQUF9JTkNMVURFRAorCisKKworCisKKworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYWJzdHJhY3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMTMwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcApAQCAtMCwwICsxLDE1MyBAQAorI2lmbmRlZiBCT09TVF9UVF9JU19BQlNUUkFDVF9DTEFTU19IUFAKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQUJTVFJBQ1RfQ0xBU1NfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLy8vLy8vLy8xLy8vLy8vLy8vMi8vLy8vLy8vLzMvLy8vLy8vLy80Ly8vLy8vLy8vNS8vLy8vLy8vLzYvLy8vLy8vLy83Ly8vLy8vLy8vOAorLy8gaXNfYWJzdHJhY3RfY2xhc3MuaHBwOgorLy8KKy8vICAoQykgQ29weXJpZ2h0IDIwMDIgUmFuaSBTaGFyb25pIChyYW5pX3NoYXJvbmlAaG90bWFpbC5jb20pIGFuZCBSb2JlcnQgUmFtZXkKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLyAgCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKy8vCisKKy8vIENvbXBpbGUgdHlwZSBkaXNjb3Zlcnkgd2hldGhlciBnaXZlbiB0eXBlIGlzIGFic3RyYWN0IGNsYXNzIG9yIG5vdC4KKy8vCisvLyAgIFJlcXVpcmVzIERSIDMzNyB0byBiZSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIKKy8vICAgKGh0dHA6Ly9hbnViaXMuZGt1dWcuZGsvanRjMS9zYzIyL3dnMjEvZG9jcy9jd2dfYWN0aXZlLmh0bWwjMzM3KS4KKy8vCisvLworLy8gQmVsaWV2ZWQgKEphbiAyMDA0KSB0byB3b3JrIG9uOgorLy8gIC0gR0NDIDMuNAorLy8gIC0gVkMrKyA3LjEKKy8vICAtIGNvbXBpbGVycyB3aXRoIG5ldyBFREcgZnJvbnRlbmQgKEludGVsIEMrKyA3LCBDb21lYXUgNC4zLjIpCisvLworLy8gRG9lc24ndCB3b3JrIG9uOgorLy8gIC0gVkMrKzYsIFZDKys3LjAgYW5kIGxlc3MKKy8vICAtIEdDQyAzLjMuWCBhbmQgbGVzcworLy8gIC0gQm9ybGFuZCBDKysgNiBhbmQgbGVzcworLy8gICAgICAKKy8vCisvLyBIaXN0b3J5OgorLy8gIC0gT3JpZ2luYWxseSB3cml0dGVuIGJ5IFJhbmkgU2hhcm9uaSwgc2VlCisvLyAgICBodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXBzP3NlbG09ZGY4OTNkYTYuMDIwNzExMDYxMy43NWIyZmU5MCU0MHBvc3RpbmcuZ29vZ2xlLmNvbQorLy8gICAgQXQgdGhpcyB0aW1lIHN1cHBvcnRlZCBieSBFREcgKEludGVsIEMrKyA3LCBDb21lYXUgNC4zLjIpIGFuZCBWQzcuMS4KKy8vICAtIEFkYXB0ZWQgYW5kIGFkZGVkIGludG8gQm9vc3QuU2VyaWFsaXphdGlvbiBsaWJyYXJ5IGJ5IFJvYmVydCBSYW1leSAKKy8vICAgIChzdGFydGluZyB3aXRoIHN1Ym1pc3Npb24gIzEwKS4KKy8vICAtIEphbiAyMDA0OiBHQ0MgMy40IGZpeGVkIHRvIHN1cHBvcnQgRFIzMzcgKEdpb3Zhbm5pIEJham8pLgorLy8gIC0gSmFuIDIwMDQ6IG1vZGlmaWVkIHRvIGJlIHBhcnQgb2YgQm9vc3QuVHlwZVRyYWl0cyAoUGF2ZWwgVm96ZW5pbGVrKS4KKy8vICAtIE5vdiAyMDA0OiBDaHJpc3RvcGggTHVkd2lnIGZvdW5kIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIGRpZCBub3Qgd29yayB3aXRoCisvLyAgICAgICAgICAgICAgdGVtcGxhdGUgdHlwZXMgYW5kIGdjYy0zLjQgb3IgVkM3LjEsIGZpeCBkdWUgdG8gQ2hyaXN0b3BoIEx1ZHdpZworLy8gICAgICAgICAgICAgIGFuZCBKb2huIE1hZGRvY2suCisvLyAgLSBEZWMgMjAwNDogQWRkZWQgbmV3IGNvbmZpZyBtYWNybyBCT09TVF9OT19JU19BQlNUUkFDVCB3aGljaCBjYXVzZXMgdGhlIHRlbXBsYXRlCisvLyAgICAgICAgICAgICAgdG8gZGVncmFkZSBncmFjZWZ1bGx5LCByYXRoZXIgdGhhbiB0cmFzaCB0aGUgY29tcGlsZXIgKEpvaG4gTWFkZG9jaykuCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0FCU1RSQUNUCisjaW5jbHVkZSA8bmRuYm9vc3Qvc3RhdGljX2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorI2lmZGVmIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9seW1vcnBoaWMuaHBwPgorI2VuZGlmCisjZW5kaWYKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBkZXRhaWx7CisKKyNpZmRlZiBCT09TVF9JU19BQlNUUkFDVAordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfYWJzdHJhY3RfaW1wCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBCT09TVF9JU19BQlNUUkFDVChUKSk7Cit9OworI2VsaWYgIWRlZmluZWQoQk9PU1RfTk9fSVNfQUJTVFJBQ1QpCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGlzX2Fic3RyYWN0X2ltcDIKK3sKKyAgIC8vIERlZHVjdGlvbiBmYWlscyBpZiBUIGlzIHZvaWQsIGZ1bmN0aW9uIHR5cGUsIAorICAgLy8gcmVmZXJlbmNlIHR5cGUgKDE0LjguMi8yKW9yIGFuIGFic3RyYWN0IGNsYXNzIHR5cGUgCisgICAvLyBhY2NvcmRpbmcgdG8gcmV2aWV3IHN0YXR1cyBpc3N1ZSAjMzM3CisgICAvLworICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgIHN0YXRpYyB0eXBlX3RyYWl0czo6bm9fdHlwZSBjaGVja19zaWcoVSAoKilbMV0pOworICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgIHN0YXRpYyB0eXBlX3RyYWl0czo6eWVzX3R5cGUgY2hlY2tfc2lnKC4uLik7CisgICAvLworICAgLy8gVCBtdXN0IGJlIGEgY29tcGxldGUgdHlwZSwgZnVydGhlciBpZiBUIGlzIGEgdGVtcGxhdGUgdGhlbgorICAgLy8gaXQgbXVzdCBiZSBpbnN0YW50aWF0ZWQgaW4gb3JkZXIgZm9yIHVzIHRvIGdldCB0aGUgcmlnaHQgYW5zd2VyOgorICAgLy8KKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKFQpICE9IDApOworCisgICAvLyBHQ0MyIHdvbid0IGV2ZW4gcGFyc2UgdGhpcyB0ZW1wbGF0ZSBpZiB3ZSBlbWJlZCB0aGUgY29tcHV0YXRpb24KKyAgIC8vIG9mIHMxIGluIHRoZSBjb21wdXRhdGlvbiBvZiB2YWx1ZS4KKyNpZmRlZiBfX0dOVUNfXworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCBzMSA9IHNpemVvZihpc19hYnN0cmFjdF9pbXAyPFQ+Ojp0ZW1wbGF0ZSBjaGVja19zaWc8VD4oMCkpKTsKKyNlbHNlCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjYzMzQpCisjZW5kaWYKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgczEgPSBzaXplb2YoY2hlY2tfc2lnPFQ+KDApKSk7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisjZW5kaWYKKyAgICAKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgKHMxID09IHNpemVvZih0eXBlX3RyYWl0czo6eWVzX3R5cGUpKSk7Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCB2Pgorc3RydWN0IGlzX2Fic3RyYWN0X3NlbGVjdAoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX2Fic3RyYWN0X2ltcDI8VD4gdHlwZTsKKyAgIH07Cit9OwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19hYnN0cmFjdF9zZWxlY3Q8ZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgZmFsc2VfdHlwZSB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX2Fic3RyYWN0X2ltcAoreworICAgdHlwZWRlZiBpc19hYnN0cmFjdF9zZWxlY3Q8IDo6bmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZT4gc2VsZWN0b3I7CisgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdG9yOjp0ZW1wbGF0ZSByZWJpbmQ8VD4gYmluZGVyOworICAgdHlwZWRlZiB0eXBlbmFtZSBiaW5kZXI6OnR5cGUgdHlwZTsKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHlwZTo6dmFsdWUpOworfTsKKworI2VuZGlmCit9CisKKyNpZm5kZWYgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfYWJzdHJhY3QsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2Fic3RyYWN0X2ltcDxUPjo6dmFsdWUpCisjZWxzZQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19hYnN0cmFjdCxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9seW1vcnBoaWNfaW1wPFQ+Ojp2YWx1ZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy9CT09TVF9UVF9JU19BQlNUUkFDVF9DTEFTU19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NzhjYTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwCkBAIC0wLDAgKzEsNTEgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfQVJJVEhNRVRJQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQVJJVEhNRVRJQ19IUFBfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmICFkZWZpbmVkKF9fQ09ERUdFQVJDX18pCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX2FyaXRobWV0aWNfaW1wbAoreyAKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAKKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8IAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZmxvYXQ8VD46OnZhbHVlCisgICAgICAgID46OnZhbHVlKSk7IAorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisjZW5kaWYKKworLy8qIGlzIGEgdHlwZSBUIGFuIGFyaXRobWV0aWMgdHlwZSBkZXNjcmliZWQgaW4gdGhlIHN0YW5kYXJkICgzLjkuMXA4KQorI2lmIGRlZmluZWQoX19DT0RFR0VBUkNfXykKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfYXJpdGhtZXRpYyxULF9faXNfYXJpdGhtZXRpYyhUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FyaXRobWV0aWMsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2FyaXRobWV0aWNfaW1wbDxUPjo6dmFsdWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0FSSVRITUVUSUNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZDM1NzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcApAQCAtMCwwICsxLDkxIEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisvLyBTb21lIGZpeGVzIGZvciBpc19hcnJheSBhcmUgYmFzZWQgb24gYSBuZXdzZ3JvdXAgcG9zdGluZyBieSBKb25hdGhhbiBMdW5kcXVpc3QuCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19BUlJBWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQVJSQVlfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FycmF5LFQsX19pc19hcnJheShUKSkKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FycmF5LFQsZmFsc2UpCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLGlzX2FycmF5LFRbTl0sdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4saXNfYXJyYXksVCBjb25zdFtOXSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixpc19hcnJheSxUIHZvbGF0aWxlW05dLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLGlzX2FycmF5LFQgY29uc3Qgdm9sYXRpbGVbTl0sdHJ1ZSkKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApICYmICFkZWZpbmVkKF9fSUJNQ1BQX18pICYmICAhQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfYXJyYXksVFtdLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19hcnJheSxUIGNvbnN0W10sdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2FycmF5LFQgdm9sYXRpbGVbXSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfYXJyYXksVCBjb25zdCB2b2xhdGlsZVtdLHRydWUpCisjZW5kaWYKKyNlbmRpZgorCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGU7Cit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZTsKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp3cmFwOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IFQoKiBpc19hcnJheV90ZXN0ZXIxKHdyYXA8VD4pICkod3JhcDxUPik7CitjaGFyIEJPT1NUX1RUX0RFQ0wgaXNfYXJyYXlfdGVzdGVyMSguLi4pOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVD4gbm9fdHlwZSBpc19hcnJheV90ZXN0ZXIyKFQoKikod3JhcDxUPikpOworeWVzX3R5cGUgQk9PU1RfVFRfREVDTCBpc19hcnJheV90ZXN0ZXIyKC4uLik7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19hcnJheV9pbXBsCit7IAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6ZGV0YWlsOjppc19hcnJheV90ZXN0ZXIyKAorICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19hcnJheV90ZXN0ZXIxKAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp3cmFwPFQ+KCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICkpID09IDEKKyAgICApOworfTsKKworI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FycmF5LFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19hcnJheV9pbXBsPFQ+Ojp2YWx1ZSkKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0FSUkFZX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19iYXNlX2FuZF9kZXJpdmVkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9hbmRfZGVyaXZlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk5NTU4OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9hbmRfZGVyaXZlZC5ocHAKQEAgLTAsMCArMSwyNTQgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgUmFuaSBTaGFyb25pIDIwMDMuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorIAorI2lmbmRlZiBCT09TVF9UVF9JU19CQVNFX0FORF9ERVJJVkVEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19CQVNFX0FORF9ERVJJVkVEX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0JBU0VfT0YKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorI2VuZGlmCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZm5kZWYgQk9PU1RfSVNfQkFTRV9PRgorI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTgxKSkgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fU1VOUFJPX0NDICwgPD0gMHg1NDApIFwKKyAmJiAhQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDI0MykgXAorICYmICFCT09TVF9XT1JLQVJPVU5EKF9fRE1DX18sIEJPT1NUX1RFU1RFRF9BVCgweDg0MCkpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIEVERyB2ZXJzaW9uIG51bWJlciBpcyBhIGxvd2VyIGVzdGltYXRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJdCBpcyBub3QgY3VycmVudGx5IGtub3duIHdoaWNoIEVERyB2ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4YWN0bHkgZml4ZXMgdGhlIHByb2JsZW0uCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK1RoaXMgdmVyc2lvbiBkZXRlY3RzIGFtYmlndW91cyBiYXNlIGNsYXNzZXMgYW5kIHByaXZhdGUgYmFzZSBjbGFzc2VzCitjb3JyZWN0bHksIGFuZCB3YXMgZGV2aXNlZCBieSBSYW5pIFNoYXJvbmkuCisKK0V4cGxhbmF0aW9uIGJ5IFRlcmplIFNsZXR0ZWJvIGFuZCBSYW5pIFNoYXJvbmkuCisKK0xldCdzIHRha2UgdGhlIG11bHRpcGxlIGJhc2UgY2xhc3MgYmVsb3cgYXMgYW4gZXhhbXBsZSwgYW5kIHRoZSBmb2xsb3dpbmcKK3dpbGwgYWxzbyBzaG93IHdoeSB0aGVyZSdzIG5vdCBhIHByb2JsZW0gd2l0aCBwcml2YXRlIG9yIGFtYmlndW91cyBiYXNlCitjbGFzczoKKworc3RydWN0IEIge307CitzdHJ1Y3QgQjEgOiBCIHt9Oworc3RydWN0IEIyIDogQiB7fTsKK3N0cnVjdCBEIDogcHJpdmF0ZSBCMSwgcHJpdmF0ZSBCMiB7fTsKKworaXNfYmFzZV9hbmRfZGVyaXZlZDxCLCBEPjo6dmFsdWU7CisKK0ZpcnN0LCBzb21lIHRlcm1pbm9sb2d5OgorCitTQyAgLSBTdGFuZGFyZCBjb252ZXJzaW9uCitVREMgLSBVc2VyLWRlZmluZWQgY29udmVyc2lvbgorCitBIHVzZXItZGVmaW5lZCBjb252ZXJzaW9uIHNlcXVlbmNlIGNvbnNpc3RzIG9mIGFuIFNDLCBmb2xsb3dlZCBieSBhbiBVREMsCitmb2xsb3dlZCBieSBhbm90aGVyIFNDLiBFaXRoZXIgU0MgbWF5IGJlIHRoZSBpZGVudGl0eSBjb252ZXJzaW9uLgorCitXaGVuIHBhc3NpbmcgdGhlIGRlZmF1bHQtY29uc3RydWN0ZWQgSG9zdCBvYmplY3QgdG8gdGhlIG92ZXJsb2FkZWQgY2hlY2tfc2lnKCkKK2Z1bmN0aW9ucyAoaW5pdGlhbGl6YXRpb24gOC41LzE0LzQvMyksIHdlIGhhdmUgc2V2ZXJhbCB2aWFibGUgaW1wbGljaXQKK2NvbnZlcnNpb24gc2VxdWVuY2VzOgorCitGb3IgInN0YXRpYyBub190eXBlIGNoZWNrX3NpZyhCIGNvbnN0IHZvbGF0aWxlICosIGludCkiIHdlIGhhdmUgdGhlIGNvbnZlcnNpb24KK3NlcXVlbmNlczoKKworQyAtPiBDIGNvbnN0IChTQyAtIFF1YWxpZmljYXRpb24gQWRqdXN0bWVudCkgLT4gQiBjb25zdCB2b2xhdGlsZSogKFVEQykKK0MgLT4gRCBjb25zdCB2b2xhdGlsZSogKFVEQykgLT4gQjEgY29uc3Qgdm9sYXRpbGUqIC8gQjIgY29uc3Qgdm9sYXRpbGUqIC0+CisgICAgIEIgY29uc3Qgdm9sYXRpbGUqIChTQyAtIENvbnZlcnNpb24pCisKK0ZvciAic3RhdGljIHllc190eXBlIGNoZWNrX3NpZyhEIGNvbnN0IHZvbGF0aWxlICosIFQpIiB3ZSBoYXZlIHRoZSBjb252ZXJzaW9uCitzZXF1ZW5jZToKKworQyAtPiBEIGNvbnN0IHZvbGF0aWxlKiAoVURDKQorCitBY2NvcmRpbmcgdG8gMTMuMy4zLjEvNCwgaW4gY29udGV4dCBvZiB1c2VyLWRlZmluZWQgY29udmVyc2lvbiBvbmx5IHRoZQorc3RhbmRhcmQgY29udmVyc2lvbiBzZXF1ZW5jZSBpcyBjb25zaWRlcmVkIHdoZW4gc2VsZWN0aW5nIHRoZSBiZXN0IHZpYWJsZQorZnVuY3Rpb24sIHNvIGl0IG9ubHkgY29uc2lkZXJzIHVwIHRvIHRoZSB1c2VyLWRlZmluZWQgY29udmVyc2lvbi4gRm9yIHRoZQorZmlyc3QgZnVuY3Rpb24gdGhpcyBtZWFucyBjaG9vc2luZyBiZXR3ZWVuIEMgLT4gQyBjb25zdCBhbmQgQyAtPiBDLCBhbmQgaXQKK2Nob29zZXMgdGhlIGxhdHRlciwgYmVjYXVzZSBpdCdzIGEgcHJvcGVyIHN1YnNldCAoMTMuMy4zLjIvMy8yKSBvZiB0aGUKK2Zvcm1lci4gVGhlcmVmb3JlLCB3ZSBoYXZlOgorCitDIC0+IEQgY29uc3Qgdm9sYXRpbGUqIChVREMpIC0+IEIxIGNvbnN0IHZvbGF0aWxlKiAvIEIyIGNvbnN0IHZvbGF0aWxlKiAtPgorICAgICBCIGNvbnN0IHZvbGF0aWxlKiAoU0MgLSBDb252ZXJzaW9uKQorQyAtPiBEIGNvbnN0IHZvbGF0aWxlKiAoVURDKQorCitIZXJlLCB0aGUgcHJpbmNpcGxlIG9mIHRoZSAic2hvcnRlc3Qgc3Vic2VxdWVuY2UiIGFwcGxpZXMgYWdhaW4sIGFuZCBpdAorY2hvb3NlcyBDIC0+IEQgY29uc3Qgdm9sYXRpbGUqLiBUaGlzIHNob3dzIHRoYXQgaXQgZG9lc24ndCBldmVuIG5lZWQgdG8KK2NvbnNpZGVyIHRoZSBtdWx0aXBsZSBwYXRocyB0byBCLCBvciBhY2Nlc3NpYmlsaXR5LCBhcyB0aGF0IHBvc3NpYmlsaXR5IGlzCitlbGltaW5hdGVkIGJlZm9yZSBpdCBjb3VsZCBwb3NzaWJseSBjYXVzZSBhbWJpZ3VpdHkgb3IgYWNjZXNzIHZpb2xhdGlvbi4KKworSWYgRCBpcyBub3QgZGVyaXZlZCBmcm9tIEIsIGl0IGhhcyB0byBjaG9vc2UgYmV0d2VlbiBDIC0+IEMgY29uc3QgLT4gQiBjb25zdAordm9sYXRpbGUqIGZvciB0aGUgZmlyc3QgZnVuY3Rpb24sIGFuZCBDIC0+IEQgY29uc3Qgdm9sYXRpbGUqIGZvciB0aGUgc2Vjb25kCitmdW5jdGlvbiwgd2hpY2ggYXJlIGp1c3QgYXMgZ29vZCAoYm90aCByZXF1aXJlcyBhIFVEQywgMTMuMy4zLjIpLCBoYWQgaXQgbm90CitiZWVuIGZvciB0aGUgZmFjdCB0aGF0ICJzdGF0aWMgbm9fdHlwZSBjaGVja19zaWcoQiBjb25zdCB2b2xhdGlsZSAqLCBpbnQpIiBpcworbm90IHRlbXBsYXRlZCwgd2hpY2ggbWFrZXMgQyAtPiBDIGNvbnN0IC0+IEIgY29uc3Qgdm9sYXRpbGUqIHRoZSBiZXN0IGNob2ljZQorKDEzLjMuMy8xLzQpLCByZXN1bHRpbmcgaW4gIm5vIi4KKworQWxzbywgaWYgSG9zdDo6b3BlcmF0b3IgQiBjb25zdCB2b2xhdGlsZSogaGFkbid0IGJlZW4gY29uc3QsIHRoZSB0d28KK2NvbnZlcnNpb24gc2VxdWVuY2VzIGZvciAic3RhdGljIG5vX3R5cGUgY2hlY2tfc2lnKEIgY29uc3Qgdm9sYXRpbGUgKiwgaW50KSIsIGluCit0aGUgY2FzZSB3aGVyZSBEIGlzIGRlcml2ZWQgZnJvbSBCLCB3b3VsZCBoYXZlIGJlZW4gYW1iaWd1b3VzLgorCitTZWUgYWxzbworaHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9zZWxtPWRmODkzZGE2LjAzMDEyODA4NTkuNTIyMDgxZjclNDBwb3N0aW5nLgorZ29vZ2xlLmNvbSBhbmQgbGlua3MgdGhlcmVpbi4KKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwordGVtcGxhdGUgPHR5cGVuYW1lIEIsIHR5cGVuYW1lIEQ+CitzdHJ1Y3QgYmRfaGVscGVyCit7CisgICAvLworICAgLy8gVGhpcyBWQzcuMSBzcGVjaWZpYyB3b3JrYXJvdW5kIHN0b3BzIHRoZSBjb21waWxlciBmcm9tIGdlbmVyYXRpbmcKKyAgIC8vIGFuIGludGVybmFsIGNvbXBpbGVyIGVycm9yIHdoZW4gY29tcGlsaW5nIHdpdGggL3ZtZyAodGhhbmtzIHRvCisgICAvLyBBbGVrc2V5IEd1cnRvdm95IGZvciBmaWd1cmluZyBvdXQgdGhlIHdvcmthcm91bmQpLgorICAgLy8KKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA9PSAxMzEwKQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6eWVzX3R5cGUgY2hlY2tfc2lnKEQgY29uc3Qgdm9sYXRpbGUgKiwgVCk7CisgICAgc3RhdGljIHR5cGVfdHJhaXRzOjpub190eXBlICBjaGVja19zaWcoQiBjb25zdCB2b2xhdGlsZSAqLCBpbnQpOworI2Vsc2UKKyAgICBzdGF0aWMgdHlwZV90cmFpdHM6Onllc190eXBlIGNoZWNrX3NpZyhEIGNvbnN0IHZvbGF0aWxlICosIGxvbmcpOworICAgIHN0YXRpYyB0eXBlX3RyYWl0czo6bm9fdHlwZSAgY2hlY2tfc2lnKEIgY29uc3Qgdm9sYXRpbGUgKiBjb25zdCYsIGludCk7CisjZW5kaWYKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEIsIHR5cGVuYW1lIEQ+CitzdHJ1Y3QgaXNfYmFzZV9hbmRfZGVyaXZlZF9pbXBsMgoreworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQ19GVUxMX1ZFUiwgPj0gMTQwMDUwMDAwKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo2MzM0KQorI2VuZGlmCisgICAgLy8KKyAgICAvLyBNYXkgc2lsZW50bHkgZG8gdGhlIHdyb25nIHRoaW5nIHdpdGggaW5jb21wbGV0ZSB0eXBlcworICAgIC8vIHVubGVzcyB3ZSB0cmFwIHRoZW0gaGVyZToKKyAgICAvLworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKEIpICE9IDApOworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKEQpICE9IDApOworCisgICAgc3RydWN0IEhvc3QKKyAgICB7CisjaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMxMCkKKyAgICAgICAgb3BlcmF0b3IgQiBjb25zdCB2b2xhdGlsZSAqKCkgY29uc3Q7CisjZWxzZQorICAgICAgICBvcGVyYXRvciBCIGNvbnN0IHZvbGF0aWxlICogY29uc3QmKCkgY29uc3Q7CisjZW5kaWYKKyAgICAgICAgb3BlcmF0b3IgRCBjb25zdCB2b2xhdGlsZSAqKCk7CisgICAgfTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgIHNpemVvZihiZF9oZWxwZXI8QixEPjo6Y2hlY2tfc2lnKEhvc3QoKSwgMCkpID09IHNpemVvZih0eXBlX3RyYWl0czo6eWVzX3R5cGUpKTsKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkNfRlVMTF9WRVIsID49IDE0MDA1MDAwMCkKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKK307CisKKyNlbHNlCisKKy8vCisvLyBicm9rZW4gdmVyc2lvbjoKKy8vCit0ZW1wbGF0ZTx0eXBlbmFtZSBCLCB0eXBlbmFtZSBEPgorc3RydWN0IGlzX2Jhc2VfYW5kX2Rlcml2ZWRfaW1wbDIKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAoOjpuZG5ib29zdDo6aXNfY29udmVydGlibGU8RCosQio+Ojp2YWx1ZSkpOworfTsKKworI2RlZmluZSBCT09TVF9CUk9LRU5fSVNfQkFTRV9BTkRfREVSSVZFRAorCisjZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lIEIsIHR5cGVuYW1lIEQ+CitzdHJ1Y3QgaXNfYmFzZV9hbmRfZGVyaXZlZF9pbXBsMworeworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlIDxib29sIGljMSwgYm9vbCBpYzIsIGJvb2wgaXNzPgorc3RydWN0IGlzX2Jhc2VfYW5kX2Rlcml2ZWRfc2VsZWN0Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgaXNfYmFzZV9hbmRfZGVyaXZlZF9pbXBsMzxULFU+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19iYXNlX2FuZF9kZXJpdmVkX3NlbGVjdDx0cnVlLHRydWUsZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgaXNfYmFzZV9hbmRfZGVyaXZlZF9pbXBsMjxULFU+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEIsIHR5cGVuYW1lIEQ+CitzdHJ1Y3QgaXNfYmFzZV9hbmRfZGVyaXZlZF9pbXBsCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8Qj46OnR5cGUgbmN2QjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jdjxEPjo6dHlwZSBuY3ZEOworCisgICAgdHlwZWRlZiBpc19iYXNlX2FuZF9kZXJpdmVkX3NlbGVjdDwKKyAgICAgICA6Om5kbmJvb3N0Ojppc19jbGFzczxCPjo6dmFsdWUsCisgICAgICAgOjpuZG5ib29zdDo6aXNfY2xhc3M8RD46OnZhbHVlLAorICAgICAgIDo6bmRuYm9vc3Q6OmlzX3NhbWU8bmN2QixuY3ZEPjo6dmFsdWU+IHNlbGVjdG9yOworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2VsZWN0b3I6OnRlbXBsYXRlIHJlYmluZDxuY3ZCLG5jdkQ+IGJpbmRlcjsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGJpbmRlcjo6dHlwZSBib3VuZF90eXBlOworCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gYm91bmRfdHlwZTo6dmFsdWUpOworfTsKKyNlbHNlCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQiwgdHlwZW5hbWUgRD4KK3N0cnVjdCBpc19iYXNlX2FuZF9kZXJpdmVkX2ltcGwKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jdjxCPjo6dHlwZSBuY3ZCOworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX2N2PEQ+Ojp0eXBlIG5jdkQ7CisKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoQk9PU1RfSVNfQkFTRV9PRihCLEQpICYmICEgOjpuZG5ib29zdDo6aXNfc2FtZTxuY3ZCLG5jdkQ+Ojp2YWx1ZSkpOworfTsKKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjIoCisgICAgICBpc19iYXNlX2FuZF9kZXJpdmVkCisgICAgLCBCYXNlCisgICAgLCBEZXJpdmVkCisgICAgLCAoOjpuZG5ib29zdDo6ZGV0YWlsOjppc19iYXNlX2FuZF9kZXJpdmVkX2ltcGw8QmFzZSxEZXJpdmVkPjo6dmFsdWUpCisgICAgKQorCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMih0eXBlbmFtZSBCYXNlLHR5cGVuYW1lIERlcml2ZWQsaXNfYmFzZV9hbmRfZGVyaXZlZCxCYXNlJixEZXJpdmVkLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8yKHR5cGVuYW1lIEJhc2UsdHlwZW5hbWUgRGVyaXZlZCxpc19iYXNlX2FuZF9kZXJpdmVkLEJhc2UsRGVyaXZlZCYsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzIodHlwZW5hbWUgQmFzZSx0eXBlbmFtZSBEZXJpdmVkLGlzX2Jhc2VfYW5kX2Rlcml2ZWQsQmFzZSYsRGVyaXZlZCYsZmFsc2UpCisjZW5kaWYKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19DT0RFR0VBUkNfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBCYXNlLGlzX2Jhc2VfYW5kX2Rlcml2ZWQsQmFzZSxCYXNlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19CQVNFX0FORF9ERVJJVkVEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19iYXNlX29mLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9vZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMyNzY2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9vZi5ocHAKQEAgLTAsMCArMSw1MSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBSYW5pIFNoYXJvbmkgMjAwMy0yMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKyAKKyNpZm5kZWYgQk9PU1RfVFRfSVNfQkFTRV9PRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQkFTRV9PRl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Jhc2VfYW5kX2Rlcml2ZWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyAgIG5hbWVzcGFjZSBkZXRhaWx7CisgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQiwgY2xhc3MgRD4KKyAgICAgIHN0cnVjdCBpc19iYXNlX29mX2ltcAorICAgICAgeworICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX2N2PEI+Ojp0eXBlIG5jdkI7CisgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8RD46OnR5cGUgbmN2RDsKKyAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwgICAgICAKKyAgICAgICAgICAgICg6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2Jhc2VfYW5kX2Rlcml2ZWRfaW1wbDxuY3ZCLG5jdkQ+Ojp2YWx1ZSksCisgICAgICAgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8bmN2QixuY3ZEPjo6dmFsdWUsIDo6bmRuYm9vc3Q6OmlzX2NsYXNzPG5jdkI+Ojp2YWx1ZT46OnZhbHVlKT46OnZhbHVlKSk7CisgICAgICB9OworICAgfQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKAorICAgICAgaXNfYmFzZV9vZgorICAgICwgQmFzZQorICAgICwgRGVyaXZlZAorICAgICwgKDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfYmFzZV9vZl9pbXA8QmFzZSwgRGVyaXZlZD46OnZhbHVlKSkKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzIodHlwZW5hbWUgQmFzZSx0eXBlbmFtZSBEZXJpdmVkLGlzX2Jhc2Vfb2YsQmFzZSYsRGVyaXZlZCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMih0eXBlbmFtZSBCYXNlLHR5cGVuYW1lIERlcml2ZWQsaXNfYmFzZV9vZixCYXNlLERlcml2ZWQmLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8yKHR5cGVuYW1lIEJhc2UsdHlwZW5hbWUgRGVyaXZlZCxpc19iYXNlX29mLEJhc2UmLERlcml2ZWQmLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19CQVNFX0FORF9ERVJJVkVEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjI5ZDBhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHAKQEAgLTAsMCArMSwxNDAgQEAKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC0yMDAzLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX0NMQVNTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19DTEFTU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0NMQVNTCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdW5pb24uaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisKKyNpZmRlZiBCT09TVF9UVF9IQVNfQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjZWxzZQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9JU19DTEFTUworCisjaWZkZWYgX19FREdfVkVSU0lPTl9fCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmbmRlZiBCT09TVF9JU19DTEFTUworI2lmZGVmIEJPT1NUX1RUX0hBU19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OCisKKy8vIFRoaXMgaXMgYWN0dWFsbHkgdGhlIGNvbmZvcm1pbmcgaW1wbGVtZW50YXRpb24gd2hpY2ggd29ya3Mgd2l0aAorLy8gYWJzdHJhY3QgY2xhc3Nlcy4gIEhvd2V2ZXIsIGVub3VnaCBjb21waWxlcnMgaGF2ZSB0cm91YmxlIHdpdGgKKy8vIGl0IHRoYXQgbW9zdCB3aWxsIHVzZSB0aGUgb25lIGluCisvLyBib29zdC90eXBlX3RyYWl0cy9vYmplY3RfdHJhaXRzLmhwcC4gVGhpcyBpbXBsZW1lbnRhdGlvbgorLy8gYWN0dWFsbHkgd29ya3Mgd2l0aCBWQzcuMCwgYnV0IG90aGVyIGludGVyYWN0aW9ucyBzZWVtIHRvIGZhaWwKKy8vIHdoZW4gd2UgdXNlIGl0LgorCisvLyBpc19jbGFzczw+IG1ldGFmdW5jdGlvbiBkdWUgdG8gUGF1bCBNZW5zb25pZGVzCisvLyAobGVhdmluZ3NAYXR0YmkuY29tKS4gRm9yIG1vcmUgZGV0YWlsczoKKy8vIGh0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91cHM/aGw9ZW4mc2VsbT0wMDAwMDFjMWNjODMlMjRlMTU0ZDVlMCUyNDc3NzJlNTBjJTQwYzE2MTU1MGEmcm51bT0xCisjaWYgZGVmaW5lZChfX0dOVUNfXykgICYmICFkZWZpbmVkKF9fRURHX1ZFUlNJT05fXykKKwordGVtcGxhdGUgPGNsYXNzIFU+IDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19jbGFzc190ZXN0ZXIodm9pZChVOjoqKSh2b2lkKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgVT4gOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgaXNfY2xhc3NfdGVzdGVyKC4uLik7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX2ltcGwKK3sKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIHNpemVvZihpc19jbGFzc190ZXN0ZXI8VD4oMCkpID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4gc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19jbGFzc190ZXN0ZXIodm9pZChVOjoqKSh2b2lkKSk7CisgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBpc19jbGFzc190ZXN0ZXIoLi4uKTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIHNpemVvZihpc19jbGFzc190ZXN0ZXI8VD4oMCkpID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKK307CisKKyNlbmRpZgorCisjZWxzZQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19jbGFzc19pbXBsCit7CisjICAgaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NjYWxhcjxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc192b2lkPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkpOworIyAgIGVsc2UKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NjYWxhcjxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc192b2lkPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkpOworIyAgIGVuZGlmCit9OworCisjIGVuZGlmIC8vIEJPT1NUX1RUX0hBU19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OCisjIGVsc2UgLy8gQk9PU1RfSVNfQ0xBU1MKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX2ltcGwKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBCT09TVF9JU19DTEFTUyhUKSk7Cit9OworIyBlbmRpZiAvLyBCT09TVF9JU19DTEFTUworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworIyBpZmRlZiBfX0VER19WRVJTSU9OX18KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoCisgICBpc19jbGFzcyxULCBuZG5ib29zdDo6ZGV0YWlsOjppc19jbGFzc19pbXBsPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGU+Ojp2YWx1ZSkKKyMgZWxzZSAKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfY2xhc3MsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2NsYXNzX2ltcGw8VD46OnZhbHVlKQorIyBlbmRpZgorICAgIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0NMQVNTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb21wbGV4LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29tcGxleC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VlYWFlNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29tcGxleC5ocHAKQEAgLTAsMCArMSwzNCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDcuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19DT01QTEVYX0hQUAorI2RlZmluZSBCT09TVF9UVF9JU19DT01QTEVYX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwPgorI2luY2x1ZGUgPGNvbXBsZXg+CisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgZGV0YWlseworCitzdHJ1Y3QgaXNfY29udmVydGlibGVfZnJvbV90ZXN0ZXIKK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgaXNfY29udmVydGlibGVfZnJvbV90ZXN0ZXIoY29uc3Qgc3RkOjpjb21wbGV4PFQ+Jik7Cit9OworCit9CisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfY29tcGxleCxULCg6Om5kbmJvb3N0Ojppc19jb252ZXJ0aWJsZTxULCBuZG5ib29zdDo6ZGV0YWlsOjppc19jb252ZXJ0aWJsZV9mcm9tX3Rlc3Rlcj46OnZhbHVlKSkKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vQk9PU1RfVFRfSVNfQ09NUExFWF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29tcG91bmQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb21wb3VuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZkMzRjNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29tcG91bmQuaHBwCkBAIC0wLDAgKzEsNDYgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfQ09NUE9VTkRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX0NPTVBPVU5EX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5kYW1lbnRhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWYgIWRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NvbXBvdW5kX2ltcGwKK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5kYW1lbnRhbDxUPjo6dmFsdWUKKyAgICAgICA+Ojp2YWx1ZSkpOworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisjZW5kaWYgLy8gIWRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2NvbXBvdW5kLFQsX19pc19jb21wb3VuZChUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2NvbXBvdW5kLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19jb21wb3VuZF9pbXBsPFQ+Ojp2YWx1ZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfQ09NUE9VTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2OTIzOWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnN0LmhwcApAQCAtMCwwICsxLDE2NSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICAgICAgSG93YXJkIEhpbm5hbnQgYW5kIEpvaG4gTWFkZG9jayAyMDAwLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hdCBNYXJjdXMsIEplc3NlIEpvbmVzIGFuZCBBZG9iZSBTeXN0ZW1zIEluYyAyMDAxCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKy8vICAgIEZpeGVkIGlzX3BvaW50ZXIsIGlzX3JlZmVyZW5jZSwgaXNfY29uc3QsIGlzX3ZvbGF0aWxlLCBpc19zYW1lLCAKKy8vICAgIGlzX21lbWJlcl9wb2ludGVyIGJhc2VkIG9uIHRoZSBTaW11bGF0ZWQgUGFydGlhbCBTcGVjaWFsaXphdGlvbiB3b3JrIAorLy8gICAgb2YgTWF0IE1hcmN1cyBhbmQgSmVzc2UgSm9uZXMuIFNlZSAgaHR0cDovL29wZW5zb3VyY2UuYWRvYmUuY29tIG9yIAorLy8gICAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvYm9vc3QvbWVzc2FnZS81NDQxIAorLy8gICAgU29tZSB3b3JrYXJvdW5kcyBpbiBoZXJlIHVzZSBpZGVhcyBzdWdnZXN0ZWQgZnJvbSAiR2VuZXJpYzxQcm9ncmFtbWluZz46IAorLy8gICAgTWFwcGluZ3MgYmV0d2VlbiBUeXBlcyBhbmQgVmFsdWVzIiAKKy8vICAgIGJ5IEFuZHJlaSBBbGV4YW5kcmVzY3UgKHNlZSBodHRwOi8vd3d3LmN1ai5jb20vZXhwZXJ0cy8xODEwL2FsZXhhbmRyLmh0bWwpLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfQ09OU1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX0NPTlNUX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHA+CisjICAgaWZkZWYgX19HTlVDX18KKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBlbmRpZgorIyAgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxNDAwKQorIyAgICAgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYm91bmRzLmhwcD4KKyMgICBlbmRpZgorI2Vsc2UKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwPgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19jb25zdCxULF9faXNfY29uc3QoVCkpCisKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK25hbWVzcGFjZSBkZXRhaWx7CisvLworLy8gV2UgY2FuJ3QgZmlsdGVyIG91dCBydmFsdWVfcmVmZXJlbmNlcyBhdCB0aGUgc2FtZSBsZXZlbCBhcworLy8gcmVmZXJlbmNlcyBvciB3ZSBnZXQgYW1iaWd1aXRpZXMgZnJvbSBtc3ZjOgorLy8KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX2NvbnN0X3J2YWx1ZV9maWx0ZXIKK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTQwMCkKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6OmRldGFpbDo6Y3ZfdHJhaXRzX2ltcDx0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2JvdW5kczxUPjo6dHlwZSo+Ojppc19jb25zdCk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gOjpuZG5ib29zdDo6ZGV0YWlsOjpjdl90cmFpdHNfaW1wPFQqPjo6aXNfY29uc3QpOworI2VuZGlmCit9OworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfY29uc3RfcnZhbHVlX2ZpbHRlcjxUJiY+Cit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworI2VuZGlmCit9CisKKy8vKiBpcyBhIHR5cGUgVCAgZGVjbGFyZWQgY29uc3QgLSBpc19jb25zdDxUPgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19jb25zdCxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfY29uc3RfcnZhbHVlX2ZpbHRlcjxUPjo6dmFsdWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19jb25zdCxUJixmYWxzZSkKKworI2lmICBkZWZpbmVkKEJPT1NUX0lMTEVHQUxfQ1ZfUkVGRVJFTkNFUykKKy8vIHRoZXNlIGFyZSBpbGxlZ2FsIHNwZWNpYWxpc2F0aW9uczsgY3YtcXVhbGlmaWVzIGFwcGxpZWQgdG8KKy8vIHJlZmVyZW5jZXMgaGF2ZSBubyBlZmZlY3QgYWNjb3JkaW5nIHRvIFs4LjMuMnAxXSwKKy8vIEMrKyBCdWlsZGVyIHJlcXVpcmVzIHRoZW0gdGhvdWdoIGFzIGl0IHRyZWF0cyBjdi1xdWFsaWZpZWQKKy8vIHJlZmVyZW5jZXMgYXMgZGlzdGluY3QgdHlwZXMuLi4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2NvbnN0LFQmIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfY29uc3QsVCYgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19jb25zdCxUJiBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fIDwgMykKKy8vIHNwZWNpYWwgY2FzZSBmb3IgZ2NjIHdoZXJlIGlsbGVnYWxseSBjdi1xdWFsaWZpZWQgcmVmZXJlbmNlIHR5cGVzIGNhbiBiZQorLy8gZ2VuZXJhdGVkIGluIHNvbWUgY29ybmVyIGNhc2VzOgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfY29uc3QsVCBjb25zdCwhKDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUpKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfY29uc3QsVCB2b2xhdGlsZSBjb25zdCwhKDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUpKQorI2VuZGlmCisKKyNlbHNlCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGU7Cit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZTsKKworeWVzX3R5cGUgaXNfY29uc3RfdGVzdGVyKGNvbnN0IHZvbGF0aWxlIHZvaWQqKTsKK25vX3R5cGUgaXNfY29uc3RfdGVzdGVyKHZvbGF0aWxlIHZvaWQgKik7CisKK3RlbXBsYXRlIDxib29sIGlzX3JlZiwgYm9vbCBhcnJheT4KK3N0cnVjdCBpc19jb25zdF9oZWxwZXIKKyAgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6ZmFsc2VfcmVzdWx0Cit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX2NvbnN0X2hlbHBlcjxmYWxzZSxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHN0YXRpYyBUKiB0OworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoCisgICAgICAgICAgICBzaXplb2YobmRuYm9vc3Q6OmRldGFpbDo6eWVzX3R5cGUpID09IHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjppc19jb25zdF90ZXN0ZXIodCkpCisgICAgICAgICAgICApKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19jb25zdF9oZWxwZXI8ZmFsc2UsdHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHN0YXRpYyBUIHQ7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9ICgKKyAgICAgICAgICAgIHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjp5ZXNfdHlwZSkgPT0gc2l6ZW9mKG5kbmJvb3N0OjpkZXRhaWw6OmlzX2NvbnN0X3Rlc3RlcigmdCkpCisgICAgICAgICAgICApKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfY29uc3RfaW1wbAorICAgIDogcHVibGljIGlzX2NvbnN0X2hlbHBlcjwKKyAgICAgICAgICBpc19yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICAgICwgaXNfYXJyYXk8VD46OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfY29uc3Qsdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfY29uc3Qsdm9pZCBjb25zdCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19jb25zdCx2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19jb25zdCx2b2lkIGNvbnN0IHZvbGF0aWxlLHRydWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKy8vKiBpcyBhIHR5cGUgVCAgZGVjbGFyZWQgY29uc3QgLSBpc19jb25zdDxUPgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19jb25zdCxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfY29uc3RfaW1wbDxUPjo6dmFsdWUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19DT05TVF9IUFBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzQ1NzlkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHAKQEAgLTAsMCArMSw0OTIgQEAKKworLy8gQ29weXJpZ2h0IDIwMDAgSm9obiBNYWRkb2NrIChqb2huQGpvaG5tYWRkb2NrLmNvLnVrKQorLy8gQ29weXJpZ2h0IDIwMDAgSmVyZW15IFNpZWsgKGpzaWVrQGxzYy5uZC5lZHUpCisvLyBDb3B5cmlnaHQgMTk5OSwgMjAwMCBKYWFra28gSmFydmkgKGphYWtrby5qYXJ2aUBjcy51dHUuZmkpCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19DT05WRVJUSUJMRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQ09OVkVSVElCTEVfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pbnRyaW5zaWNzLmhwcD4KKyNpZm5kZWYgQk9PU1RfSVNfQ09OVkVSVElCTEUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ljZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHA+CisjaWZuZGVmIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYWJzdHJhY3QuaHBwPgorI2VuZGlmCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX2x2YWx1ZV9yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9ydmFsdWVfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5jdGlvbi5ocHA+CisKKyNpZiBkZWZpbmVkKF9fTVdFUktTX18pCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHA+CisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX0lTX0NPTlZFUlRJQkxFCisKKy8vIHNob3VsZCBiZSBhbHdheXMgdGhlIGxhc3QgI2luY2x1ZGUgZGlyZWN0aXZlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9JU19DT05WRVJUSUJMRQorCisvLyBpcyBvbmUgdHlwZSBjb252ZXJ0aWJsZSB0byBhbm90aGVyPworLy8KKy8vIHRoZXJlIGFyZSBtdWx0aXBsZSB2ZXJzaW9ucyBvZiB0aGUgaXNfY29udmVydGlibGUKKy8vIHRlbXBsYXRlLCBhbG1vc3QgZXZlcnkgY29tcGlsZXIgc2VlbXMgdG8gcmVxdWlyZSBpdHMKKy8vIG93biB2ZXJzaW9uLgorLy8KKy8vIFRoYW5rcyB0byBBbmRyZWkgQWxleGFuZHJlc2N1IGZvciB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUKKy8vIGNvbnZlcnNpb24gZGV0ZWN0aW9uIHRlY2huaXF1ZSEKKy8vCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBNUyBzcGVjaWZpYyB2ZXJzaW9uOgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8PSAxMzAwKQorCisvLyBUaGlzIHdvcmthcm91bmQgaXMgbmVjZXNzYXJ5IHRvIGhhbmRsZSB3aGVuIEZyb20gaXMgdm9pZAorLy8gd2hpY2ggaXMgbm9ybWFsbHkgdGFrZW4gY2FyZSBvZiBieSB0aGUgcGFydGlhbCBzcGVjaWFsaXphdGlvbgorLy8gb2YgdGhlIGlzX2NvbnZlcnRpYmxlIHR5cGVuYW1lLgordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlOwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGU7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBGcm9tID4KK3N0cnVjdCBkb2VzX2NvbnZlcnNpb25fZXhpc3QKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVG8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgc3RhdGljIG5vX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayguLi4pOworICAgICAgICBzdGF0aWMgeWVzX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhUbyk7CisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBhZGRfbHZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSAgX21fZnJvbTsKKyAgICAgICAgZW51bSB7IHZhbHVlID0gc2l6ZW9mKCBfbV9jaGVjayhfbV9mcm9tKSApID09IHNpemVvZih5ZXNfdHlwZSkgfTsKKyAgICB9OworfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGRvZXNfY29udmVyc2lvbl9leGlzdDx2b2lkPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUbyA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBlbnVtIHsgdmFsdWUgPSA6Om5kbmJvb3N0Ojppc192b2lkPFRvPjo6dmFsdWUgfTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGwKKyAgICA6IHB1YmxpYyBkb2VzX2NvbnZlcnNpb25fZXhpc3Q8RnJvbT46OnRlbXBsYXRlIHJlc3VsdF88VG8+Cit7Cit9OworCisjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA8IDB4NTYwKQorLy8KKy8vIHNwZWNpYWwgdmVyc2lvbiBmb3IgQm9ybGFuZCBjb21waWxlcnMKKy8vIHRoaXMgdmVyc2lvbiBicmVha3Mgd2hlbiB1c2VkIGZvciBzb21lCisvLyBVRFQgY29udmVyc2lvbnM6CisvLwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2ltcGwKK3sKKyNwcmFnbWEgb3B0aW9uIHB1c2ggLXctODA3NAorICAgIC8vIFRoaXMgd29ya2Fyb3VuZCBmb3IgQm9ybGFuZCBicmVha3MgdGhlIEVERyBDKysgZnJvbnRlbmQsCisgICAgLy8gc28gd2Ugb25seSB1c2UgaXQgZm9yIEJvcmxhbmQuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBjaGVja2VyCisgICAgeworICAgICAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayguLi4pOworICAgICAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soVCk7CisgICAgfTsKKworICAgIHN0YXRpYyB0eXBlbmFtZSBhZGRfbHZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSAgX21fZnJvbTsKKyAgICBzdGF0aWMgYm9vbCBjb25zdCB2YWx1ZSA9IHNpemVvZiggY2hlY2tlcjxUbz46Ol9tX2NoZWNrKF9tX2Zyb20pICkKKyAgICAgICAgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSk7CisjcHJhZ21hIG9wdGlvbiBwb3AKK307CisKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAoX19CT1JMQU5EQ19fIDwgMHg2MDApCisvLyBzcGVjaWFsIHZlcnNpb24gZm9yIGdjYyBjb21waWxlciArIHJlY2VudCBCb3JsYW5kIHZlcnNpb25zCisvLyBub3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBwYXNzIFVEVCdzIHRocm91Z2ggKC4uLikKKworc3RydWN0IGFueV9jb252ZXJzaW9uCit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKGNvbnN0IHZvbGF0aWxlIFQmKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3QgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbih2b2xhdGlsZSBUJik7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKFQmKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgY2hlY2tlcgoreworICAgIHN0YXRpYyBuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgX21fY2hlY2soYW55X2NvbnZlcnNpb24gLi4uKTsKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBfbV9jaGVjayhULCBpbnQpOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGwKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9sdmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIGx2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3J2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgcnZhbHVlX3R5cGU7CisgICAgc3RhdGljIGx2YWx1ZV90eXBlIF9tX2Zyb207CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpICYmICgoX19HTlVDX18gPiA0KSB8fCAoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+IDYpKSkKKyAgICBzdGF0aWMgYm9vbCBjb25zdCB2YWx1ZSA9CisgICAgICAgIHNpemVvZiggbmRuYm9vc3Q6OmRldGFpbDo6Y2hlY2tlcjxUbz46Ol9tX2NoZWNrKHN0YXRpY19jYXN0PHJ2YWx1ZV90eXBlPihfbV9mcm9tKSwgMCkgKQorICAgICAgICA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKTsKKyNlbHNlCisgICAgc3RhdGljIGJvb2wgY29uc3QgdmFsdWUgPQorICAgICAgICBzaXplb2YoIG5kbmJvb3N0OjpkZXRhaWw6OmNoZWNrZXI8VG8+OjpfbV9jaGVjayhfbV9mcm9tLCAwKSApCisgICAgICAgID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpOworI2VuZGlmCit9OworCisjZWxpZiAoZGVmaW5lZChfX0VER19WRVJTSU9OX18pICYmIChfX0VER19WRVJTSU9OX18gPj0gMjQ1KSAmJiAhZGVmaW5lZChfX0lDTCkpIFwKKyAgICAgIHx8IGRlZmluZWQoX19JQk1DUFBfXykgfHwgZGVmaW5lZChfX0hQX2FDQykKKy8vCisvLyBUaGlzIGlzICphbG1vc3QqIGFuIGlkZWFsIHdvcmxkIGltcGxlbWVudGF0aW9uIGFzIGl0IGRvZXNuJ3QgcmVseQorLy8gb24gdW5kZWZpbmVkIGJlaGF2aW91ciBieSBwYXNzaW5nIFVEVCdzIHRocm91Z2ggKC4uLikuCisvLyBVbmZvcnR1bmF0ZWx5IGl0IGRvZXNuJ3QgcXVpdGUgcGFzcyBhbGwgdGhlIHRlc3RzIGZvciBtb3N0IGNvbXBpbGVycyAoc2lnaC4uLikKKy8vIEVuYWJsZSB0aGlzIGZvciB5b3VyIGNvbXBpbGVyIGlmIGlzX2NvbnZlcnRpYmxlX3Rlc3QuY3BwIHdpbGwgY29tcGlsZSBpdC4uLgorLy8KKy8vIE5vdGUgd2UgZG8gbm90IGVuYWJsZSB0aGlzIGZvciBWQzcuMSwgYmVjYXVzZSBldmVuIHRob3VnaCBpdCBwYXNzZXMgYWxsIHRoZQorLy8gdHlwZV90cmFpdHMgdGVzdHMgaXQgaXMga25vd24gdG8gY2F1c2UgcHJvYmxlbXMgd2hlbiBpbnN0YW50aWF0aW9uIG9jY3VycworLy8gZGVlcCB3aXRoaW4gdGhlIGluc3RhbnRpYXRpb24gdHJlZSA6LSgKKy8vCitzdHJ1Y3QgYW55X2NvbnZlcnNpb24KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3Qgdm9sYXRpbGUgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihjb25zdCBUJik7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKHZvbGF0aWxlIFQmKTsKKyAgICAvLyB3ZSBuZWVkIHRoaXMgY29uc3RydWN0b3IgdG8gY2F0Y2ggcmVmZXJlbmNlcyB0byBmdW5jdGlvbnMKKyAgICAvLyAod2hpY2ggY2FuIG5vdCBiZSBjdi1xdWFsaWZpZWQpOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihUJik7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+CitzdHJ1Y3QgaXNfY29udmVydGlibGVfYmFzaWNfaW1wbAoreworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKGFueV9jb252ZXJzaW9uIC4uLik7CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKFRvLCBpbnQpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgbHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBydmFsdWVfdHlwZTsgCisgICAgc3RhdGljIGx2YWx1ZV90eXBlIF9tX2Zyb207CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKHN0YXRpY19jYXN0PHJ2YWx1ZV90eXBlPihfbV9mcm9tKSwgMCkgKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICApOworI2Vsc2UKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKF9tX2Zyb20sIDApICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbmRpZgorfTsKKworI2VsaWYgZGVmaW5lZChfX0RNQ19fKQorCitzdHJ1Y3QgYW55X2NvbnZlcnNpb24KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3Qgdm9sYXRpbGUgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihjb25zdCBUJik7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKHZvbGF0aWxlIFQmKTsKKyAgICAvLyB3ZSBuZWVkIHRoaXMgY29uc3RydWN0b3IgdG8gY2F0Y2ggcmVmZXJlbmNlcyB0byBmdW5jdGlvbnMKKyAgICAvLyAod2hpY2ggY2FuIG5vdCBiZSBjdi1xdWFsaWZpZWQpOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihUJik7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+CitzdHJ1Y3QgaXNfY29udmVydGlibGVfYmFzaWNfaW1wbAoreworICAgIC8vIFVzaW5nICcuLi4nIGRvZXNuJ3QgYWx3YXlzIHdvcmsgb24gRGlnaXRhbCBNYXJzLiBUaGlzIHZlcnNpb24gc2VlbXMgdG8uCisgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soYW55X2NvbnZlcnNpb24sICBmbG9hdCwgVCk7CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKFRvLCBpbnQsIGludCk7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfbHZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBsdmFsdWVfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9ydmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIHJ2YWx1ZV90eXBlOworICAgIHN0YXRpYyBsdmFsdWVfdHlwZSBfbV9mcm9tOworCisgICAgLy8gU3RhdGljIGNvbnN0YW50cyBzb21ldGltZSBjYXVzZSB0aGUgY29udmVyc2lvbiBvZiBfbV9mcm9tIHRvIFRvIHRvIGJlCisgICAgLy8gY2FsbGVkLiBUaGlzIGRvZXNuJ3QgaGFwcGVuIHdpdGggYW4gZW51bS4KKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBlbnVtIHsgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKHN0YXRpY19jYXN0PHJ2YWx1ZV90eXBlPihfbV9mcm9tKSwgMCwgMCkgKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICB9OworI2Vsc2UKKyAgICBlbnVtIHsgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKF9tX2Zyb20sIDAsIDApICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgfTsKKyNlbmRpZgorfTsKKworI2VsaWYgZGVmaW5lZChfX01XRVJLU19fKQorLy8gCisvLyBDVyB3b3JrcyB3aXRoIHRoZSB0ZWNobmlxdWUgaW1wbGVtZW50ZWQgYWJvdmUgZm9yIEVERywgZXhjZXB0IHdoZW4gRnJvbQorLy8gaXMgYSBmdW5jdGlvbiB0eXBlIChvciBhIHJlZmVyZW5jZSB0byBzdWNoIGEgdHlwZSksIGluIHdoaWNoIGNhc2UKKy8vIGFueV9jb252ZXJzaW9uIHdvbid0IGJlIGFjY2VwdGVkIGFzIGEgdmFsaWQgY29udmVyc2lvbi4gV2UgZGV0ZWN0IHRoaXMKKy8vIGV4Y2VwdGlvbmFsIHNpdHVhdGlvbiBhbmQgY2hhbm5lbCBpdCB0aHJvdWdoIGFuIGFsdGVybmF0aXZlIGFsZ29yaXRobS4KKy8vCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbyxib29sIEZyb21Jc0Z1bmN0aW9uUmVmPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGxfYXV4OworCitzdHJ1Y3QgYW55X2NvbnZlcnNpb24KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3Qgdm9sYXRpbGUgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihjb25zdCBUJik7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKHZvbGF0aWxlIFQmKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oVCYpOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGxfYXV4PEZyb20sVG8sZmFsc2UgLypGcm9tSXNGdW5jdGlvblJlZiovPgoreworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKGFueV9jb252ZXJzaW9uIC4uLik7CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKFRvLCBpbnQpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgbHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBydmFsdWVfdHlwZTsgCisgICAgc3RhdGljIGx2YWx1ZV90eXBlIF9tX2Zyb207CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKHN0YXRpY19jYXN0PHJ2YWx1ZV90eXBlPihfbV9mcm9tKSwgMCkgKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICApOworI2Vsc2UKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKF9tX2Zyb20sIDApICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGxfYXV4PEZyb20sVG8sdHJ1ZSAvKkZyb21Jc0Z1bmN0aW9uUmVmKi8+Cit7CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soLi4uKTsKKyAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soVG8pOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgbHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBydmFsdWVfdHlwZTsKKyAgICBzdGF0aWMgbHZhbHVlX3R5cGUgX21fZnJvbTsKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKHN0YXRpY19jYXN0PHJ2YWx1ZV90eXBlPihfbV9mcm9tKSkgKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICApOworI2Vsc2UKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKF9tX2Zyb20pICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGw6CisgIGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGxfYXV4PAorICAgIEZyb20sVG8sCisgICAgOjpuZG5ib29zdDo6aXNfZnVuY3Rpb248dHlwZW5hbWUgOjpuZG5ib29zdDo6cmVtb3ZlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZT46OnZhbHVlCisgID4KK3t9OworCisjZWxzZQorLy8KKy8vIFRoaXMgdmVyc2lvbiBzZWVtcyB0byB3b3JrIHByZXR0eSB3ZWxsIGZvciBhIHdpZGUgc3BlY3RydW0gb2YgY29tcGlsZXJzLAorLy8gaG93ZXZlciBpdCBkb2VzIHJlbHkgb24gdW5kZWZpbmVkIGJlaGF2aW91ciBieSBwYXNzaW5nIFVEVCdzIHRocm91Z2ggKC4uLikuCisvLwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGwKK3sKKyAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayguLi4pOworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhUbyk7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfbHZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBsdmFsdWVfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9ydmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIHJ2YWx1ZV90eXBlOyAKKyAgICBzdGF0aWMgbHZhbHVlX3R5cGUgX21fZnJvbTsKKyNpZmRlZiBCT09TVF9NU1ZDCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQyNDQpCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo2MzM0KQorI2VuZGlmCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKHN0YXRpY19jYXN0PHJ2YWx1ZV90eXBlPihfbV9mcm9tKSkgKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICApOworI2Vsc2UKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICBzaXplb2YoIF9tX2NoZWNrKF9tX2Zyb20pICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKK307CisKKyNlbmRpZiAvLyBpc19jb252ZXJ0aWJsZV9pbXBsCisKKyNpZiBkZWZpbmVkKF9fRE1DX18pCisvLyBBcyBiZWZvcmUsIGEgc3RhdGljIGNvbnN0YW50IHNvbWV0aW1lcyBjYXVzZXMgZXJyb3JzIG9uIERpZ2l0YWwgTWFycy4KK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsCit7CisgICAgZW51bSB7IHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfY29udmVydGlibGVfYmFzaWNfaW1wbDxGcm9tLFRvPjo6dmFsdWUsCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPFRvPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19hcnJheTxUbz46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuY3Rpb248VG8+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUKKyAgICAgICAgPjo6dmFsdWUpIH07Cit9OworI2VsaWYgIWRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBfX0JPUkxBTkRDX18gPiAweDU1MQordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2ltcGwKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsPEZyb20sVG8+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8VG8+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUsCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2FycmF5PFRvPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19mdW5jdGlvbjxUbz46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKK307CisjZW5kaWYKKwordGVtcGxhdGUgPGJvb2wgdHJpdmlhbDEsIGJvb2wgdHJpdmlhbDIsIGJvb2wgYWJzdHJhY3RfdGFyZ2V0Pgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2ltcGxfc2VsZWN0Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgRnJvbSwgY2xhc3MgVG8+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX2NvbnZlcnRpYmxlX2ltcGw8RnJvbSwgVG8+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsX3NlbGVjdDx0cnVlLCB0cnVlLCBmYWxzZT4KK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBGcm9tLCBjbGFzcyBUbz4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgdHJ1ZV90eXBlIHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsX3NlbGVjdDxmYWxzZSwgZmFsc2UsIHRydWU+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgRnJvbSwgY2xhc3MgVG8+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGZhbHNlX3R5cGUgdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2ltcGxfc2VsZWN0PHRydWUsIGZhbHNlLCB0cnVlPgoreworICAgdGVtcGxhdGUgPGNsYXNzIEZyb20sIGNsYXNzIFRvPgorICAgc3RydWN0IHJlYmluZAorICAgeworICAgICAgdHlwZWRlZiBmYWxzZV90eXBlIHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2ltcGxfZGlzcGF0Y2hfYmFzZQoreworI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fSFBfYUNDLCA8IDYwNzAwKQorICAgdHlwZWRlZiBpc19jb252ZXJ0aWJsZV9pbXBsX3NlbGVjdDwgCisgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPEZyb20+Ojp2YWx1ZSwgCisgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPFRvPjo6dmFsdWUsCisjaWZuZGVmIEJPT1NUX05PX0lTX0FCU1RSQUNUCisgICAgICA6Om5kbmJvb3N0Ojppc19hYnN0cmFjdDxUbz46OnZhbHVlCisjZWxzZQorICAgICAgZmFsc2UKKyNlbmRpZgorICAgPiBzZWxlY3RvcjsKKyNlbHNlCisgICB0eXBlZGVmIGlzX2NvbnZlcnRpYmxlX2ltcGxfc2VsZWN0PGZhbHNlLCBmYWxzZSwgZmFsc2U+IHNlbGVjdG9yOworI2VuZGlmCisgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdG9yOjp0ZW1wbGF0ZSByZWJpbmQ8RnJvbSwgVG8+IGlzY19iaW5kZXI7CisgICB0eXBlZGVmIHR5cGVuYW1lIGlzY19iaW5kZXI6OnR5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsX2Rpc3BhdGNoIAorICAgOiBwdWJsaWMgaXNfY29udmVydGlibGVfaW1wbF9kaXNwYXRjaF9iYXNlPEZyb20sIFRvPjo6dHlwZQore307CisKKy8vCisvLyBOb3cgYWRkIHRoZSBmdWxsIGFuZCBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9ucworLy8gZm9yIHZvaWQgdHlwZXMsIHRoZXNlIGFyZSBjb21tb24gdG8gYWxsIHRoZQorLy8gaW1wbGVtZW50YXRpb24gYWJvdmU6CisvLworI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworIyAgIGRlZmluZSBUVF9BVVhfQk9PTF9DVl9WT0lEX1RSQUlUX1NQRUMyX1BBUlQxKHRyYWl0LHNwZWMxLHNwZWMyLHZhbHVlKSBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMih0cmFpdCxzcGVjMSxzcGVjMix2YWx1ZSkgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzIodHJhaXQsc3BlYzEsc3BlYzIgY29uc3QsdmFsdWUpIFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMyKHRyYWl0LHNwZWMxLHNwZWMyIHZvbGF0aWxlLHZhbHVlKSBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMih0cmFpdCxzcGVjMSxzcGVjMiBjb25zdCB2b2xhdGlsZSx2YWx1ZSkgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBUVF9BVVhfQk9PTF9DVl9WT0lEX1RSQUlUX1NQRUMyKHRyYWl0LHNwZWMxLHNwZWMyLHZhbHVlKSBcCisgICAgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMl9QQVJUMSh0cmFpdCxzcGVjMSxzcGVjMix2YWx1ZSkgXAorICAgIFRUX0FVWF9CT09MX0NWX1ZPSURfVFJBSVRfU1BFQzJfUEFSVDEodHJhaXQsc3BlYzEgY29uc3Qsc3BlYzIsdmFsdWUpIFwKKyAgICBUVF9BVVhfQk9PTF9DVl9WT0lEX1RSQUlUX1NQRUMyX1BBUlQxKHRyYWl0LHNwZWMxIHZvbGF0aWxlLHNwZWMyLHZhbHVlKSBcCisgICAgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMl9QQVJUMSh0cmFpdCxzcGVjMSBjb25zdCB2b2xhdGlsZSxzcGVjMix2YWx1ZSkgXAorICAgIC8qKi8KKworICAgIFRUX0FVWF9CT09MX0NWX1ZPSURfVFJBSVRfU1BFQzIoaXNfY29udmVydGlibGUsdm9pZCx2b2lkLHRydWUpCisKKyMgICB1bmRlZiBUVF9BVVhfQk9PTF9DVl9WT0lEX1RSQUlUX1NQRUMyCisjICAgdW5kZWYgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMl9QQVJUMQorCisjZWxzZQorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzIoaXNfY29udmVydGlibGUsdm9pZCx2b2lkLHRydWUpCisjZW5kaWYgLy8gQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBUbyxpc19jb252ZXJ0aWJsZSx2b2lkLFRvLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgRnJvbSxpc19jb252ZXJ0aWJsZSxGcm9tLHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBUbyxpc19jb252ZXJ0aWJsZSx2b2lkIGNvbnN0LFRvLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgVG8saXNfY29udmVydGlibGUsdm9pZCB2b2xhdGlsZSxUbyxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xKHR5cGVuYW1lIFRvLGlzX2NvbnZlcnRpYmxlLHZvaWQgY29uc3Qgdm9sYXRpbGUsVG8sZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBGcm9tLGlzX2NvbnZlcnRpYmxlLEZyb20sdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xKHR5cGVuYW1lIEZyb20saXNfY29udmVydGlibGUsRnJvbSx2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgRnJvbSxpc19jb252ZXJ0aWJsZSxGcm9tLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKGlzX2NvbnZlcnRpYmxlLEZyb20sVG8sKDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfY29udmVydGlibGVfaW1wbF9kaXNwYXRjaDxGcm9tLFRvPjo6dmFsdWUpKQorCisjZWxzZQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKGlzX2NvbnZlcnRpYmxlLEZyb20sVG8sQk9PU1RfSVNfQ09OVkVSVElCTEUoRnJvbSxUbykpCisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfQ09OVkVSVElCTEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VtcHR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW1wdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzMGU5MGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VtcHR5LmhwcApAQCAtMCwwICsxLDIyOSBAQAorCisvLyAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX0VNUFRZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19FTVBUWV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcmVmZXJlbmNlLmhwcD4KKyNlbHNlCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfcG9pbnRlci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIGFsd2F5cyB0aGUgbGFzdCAjaW5jbHVkZSBkaXJlY3RpdmUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisjaWZuZGVmIEJPT1NUX0lOVEVSTkFMX0lTX0VNUFRZCisjZGVmaW5lIEJPT1NUX0lOVEVSTkFMX0lTX0VNUFRZKFQpIGZhbHNlCisjZWxzZQorI2RlZmluZSBCT09TVF9JTlRFUk5BTF9JU19FTVBUWShUKSBCT09TVF9JU19FTVBUWShUKQorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDYyNCkgLy8gZGVzdHJ1Y3RvciBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkCisjZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgZW1wdHlfaGVscGVyX3QxIDogcHVibGljIFQKK3sKKyAgICBlbXB0eV9oZWxwZXJfdDEoKTsgIC8vIGhoIGNvbXBpbGVyIGJ1ZyB3b3JrYXJvdW5kCisgICAgaW50IGlbMjU2XTsKK3ByaXZhdGU6CisgICAvLyBzdXBwcmVzcyBjb21waWxlciB3YXJuaW5nczoKKyAgIGVtcHR5X2hlbHBlcl90MShjb25zdCBlbXB0eV9oZWxwZXJfdDEmKTsKKyAgIGVtcHR5X2hlbHBlcl90MSYgb3BlcmF0b3I9KGNvbnN0IGVtcHR5X2hlbHBlcl90MSYpOworfTsKKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworc3RydWN0IGVtcHR5X2hlbHBlcl90MiB7IGludCBpWzI1Nl07IH07CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBib29sIGlzX2FfY2xhc3MgPSBmYWxzZT4KK3N0cnVjdCBlbXB0eV9oZWxwZXIKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBlbXB0eV9oZWxwZXI8VCwgdHJ1ZT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gKHNpemVvZihlbXB0eV9oZWxwZXJfdDE8VD4pID09IHNpemVvZihlbXB0eV9oZWxwZXJfdDIpKQorICAgICAgICApOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfZW1wdHlfaW1wbAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ+Ojp0eXBlIGN2dDsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gKAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjplbXB0eV9oZWxwZXI8Y3Z0LDo6bmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZT46OnZhbHVlCisgICAgICAgICAgICAgICwgQk9PU1RfSU5URVJOQUxfSVNfRU1QVFkoY3Z0KQorICAgICAgICAgICAgPjo6dmFsdWUKKyAgICAgICAgICAgICkpOworfTsKKworI2Vsc2UgLy8gX19CT1JMQU5EQ19fCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBib29sIGlzX2FfY2xhc3MsIGJvb2wgY29udmVydGlibGVfdG9faW50Pgorc3RydWN0IGVtcHR5X2hlbHBlcgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGVtcHR5X2hlbHBlcjxULCB0cnVlLCBmYWxzZT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoCisgICAgICAgIHNpemVvZihlbXB0eV9oZWxwZXJfdDE8VD4pID09IHNpemVvZihlbXB0eV9oZWxwZXJfdDIpCisgICAgICAgICkpOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfZW1wdHlfaW1wbAoreworICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUgY3Z0OworICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcmVmZXJlbmNlPFQ+Ojp0eXBlIHJfdHlwZTsKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgIGJvb2wsIHZhbHVlID0gKAorICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmVtcHR5X2hlbHBlcjwKKyAgICAgICAgICAgICAgICAgIGN2dAorICAgICAgICAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfY2xhc3M8VD46OnZhbHVlCisgICAgICAgICAgICAgICAgLCA6Om5kbmJvb3N0Ojppc19jb252ZXJ0aWJsZTwgcl90eXBlLGludD46OnZhbHVlCisgICAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgICAgICAgICwgQk9PU1RfSU5URVJOQUxfSVNfRU1QVFkoY3Z0KQorICAgICAgICAgICA+Ojp2YWx1ZSkpOworfTsKKworI2VuZGlmIC8vIF9fQk9STEFORENfXworCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKyNpZmRlZiBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGVtcHR5X2hlbHBlcl90MSA6IHB1YmxpYyBUCit7CisgICBlbXB0eV9oZWxwZXJfdDEoKTsKKyAgIGludCBpWzI1Nl07Cit9OworCitzdHJ1Y3QgZW1wdHlfaGVscGVyX3QyIHsgaW50IGlbMjU2XTsgfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgZW1wdHlfaGVscGVyX2Jhc2UKK3sKKyAgIGVudW0geyB2YWx1ZSA9IChzaXplb2YoZW1wdHlfaGVscGVyX3QxPFQ+KSA9PSBzaXplb2YoZW1wdHlfaGVscGVyX3QyKSkgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGVtcHR5X2hlbHBlcl9ub25iYXNlCit7CisgICBlbnVtIHsgdmFsdWUgPSBmYWxzZSB9OworfTsKKwordGVtcGxhdGUgPGJvb2wgYmFzZT4KK3N0cnVjdCBlbXB0eV9oZWxwZXJfY2hvb3NlcgoreworICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICB7CisgICAgICB0eXBlZGVmIGVtcHR5X2hlbHBlcl9ub25iYXNlPFQ+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBlbXB0eV9oZWxwZXJfY2hvb3Nlcjx0cnVlPgoreworICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICB7CisgICAgICB0eXBlZGVmIGVtcHR5X2hlbHBlcl9iYXNlPFQ+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfZW1wdHlfaW1wbAoreworICAgdHlwZWRlZiA6Om5kbmJvb3N0OjpkZXRhaWw6OmVtcHR5X2hlbHBlcl9jaG9vc2VyPAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19jb252ZXJ0aWJsZTxULGRvdWJsZT46OnZhbHVlID46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8VD46OnZhbHVlID46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX21lbWJlcl9wb2ludGVyPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfdm9pZDxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NvbnZlcnRpYmxlPFQsdm9pZCBjb25zdCB2b2xhdGlsZSo+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUKKyAgICAgID46OnZhbHVlID4gY2hvb3NlcjsKKworICAgdHlwZWRlZiB0eXBlbmFtZSBjaG9vc2VyOjp0ZW1wbGF0ZSByZXN1bHRfPFQ+IHJlc3VsdDsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgcmVzdWx0Ojp0eXBlIGVoX3R5cGU7CisKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjxlaF90eXBlOjp2YWx1ZSwgQk9PU1RfSU5URVJOQUxfSVNfRU1QVFkoVCk+Ojp2YWx1ZSkpOworfTsKKworI2Vsc2UKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBpc19lbXB0eV9pbXBsCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSU5URVJOQUxfSVNfRU1QVFkoVCkpOworfTsKKworI2VuZGlmICAvLyBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisKKyNlbmRpZiAgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCisvLyB0aGVzZSBoZWxwIHdoZW4gdGhlIGNvbXBpbGVyIGhhcyBubyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHN1cHBvcnQ6CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VtcHR5LHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VtcHR5LHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VtcHR5LHZvaWQgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VtcHR5LHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfZW1wdHksVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2VtcHR5X2ltcGw8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjdW5kZWYgQk9PU1RfSU5URVJOQUxfSVNfRU1QVFkKKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0VNUFRZX0hQUF9JTkNMVURFRAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VudW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTQ2MzJkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcApAQCAtMCwwICsxLDE4OSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19FTlVNX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19FTlVNX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0VOVU0KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcml0aG1ldGljLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjaWZkZWYgX19HTlVDX18KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5jdGlvbi5ocHA+CisjZW5kaWYKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2lmIGRlZmluZWQoQk9PU1RfVFRfSEFTX0NPTkZPUk1JTkdfSVNfQ0xBU1NfSU1QTEVNRU5UQVRJT04pIAorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwPgorIyAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdW5pb24uaHBwPgorI2VuZGlmCisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9JU19FTlVNCisjaWYgIShkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA8PSAweDU1MSkpCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisjaWYgZGVmaW5lZChCT09TVF9UVF9IQVNfQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTikgCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX29yX3VuaW9uCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZQorICAgICAgICAgLCA6Om5kbmJvb3N0Ojppc191bmlvbjxUPjo6dmFsdWUKKyAgICAgID46OnZhbHVlKSk7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19jbGFzc19vcl91bmlvbgoreworIyBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU4MSkpLy8gd2Ugc2ltcGx5IGNhbid0IGRldGVjdCBpdCB0aGlzIHdheS4KKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7CisjIGVsc2UKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4gc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19jbGFzc19vcl91bmlvbl90ZXN0ZXIodm9pZChVOjoqKSh2b2lkKSk7CisKKyMgIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMwMCkgICAgICAgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIDw9IDB4MzAwMCkgLy8gbm8gU0ZJTkFFCisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIGlzX2NsYXNzX29yX3VuaW9uX3Rlc3RlciguLi4pOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUgPSBzaXplb2YoaXNfY2xhc3Nfb3JfdW5pb25fdGVzdGVyKDApKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKSk7CisjICBlbHNlCisgICAgdGVtcGxhdGUgPGNsYXNzIFU+CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIGlzX2NsYXNzX29yX3VuaW9uX3Rlc3RlciguLi4pOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUgPSBzaXplb2YoaXNfY2xhc3Nfb3JfdW5pb25fdGVzdGVyPFQ+KDApKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKSk7CisjICBlbmRpZgorIyBlbmRpZgorfTsKKyNlbmRpZgorCitzdHJ1Y3QgaW50X2NvbnZlcnRpYmxlCit7CisgICAgaW50X2NvbnZlcnRpYmxlKGludCk7Cit9OworCisvLyBEb24ndCBldmFsdWF0ZSBjb252ZXJ0aWJpbGl0eSB0byBpbnRfY29udmVydGlibGUgdW5sZXNzIHRoZSB0eXBlCisvLyBpcyBub24tYXJpdGhtZXRpYy4gVGhpcyBzdXBwcmVzc2VzIHdhcm5pbmdzIHdpdGggR0NDLgordGVtcGxhdGUgPGJvb2wgaXNfdHlwZW5hbWVfYXJpdGhtZXRpY19vcl9yZWZlcmVuY2UgPSB0cnVlPgorc3RydWN0IGlzX2VudW1faGVscGVyCit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCB0eXBlCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfZW51bV9oZWxwZXI8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCB0eXBlCisgICAgICAgOiBwdWJsaWMgOjpuZG5ib29zdDo6aXNfY29udmVydGlibGU8dHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUsOjpuZG5ib29zdDo6ZGV0YWlsOjppbnRfY29udmVydGlibGU+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGlzX2VudW1faW1wbAoreworICAgLy90eXBlZGVmIDo6bmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8VD4gYXJfdDsKKyAgIC8vdHlwZWRlZiB0eXBlbmFtZSBhcl90Ojp0eXBlIHJfdHlwZTsKKworI2lmIGRlZmluZWQoX19HTlVDX18pCisKKyNpZmRlZiBCT09TVF9UVF9IQVNfQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTgorICAgIAorICAgLy8gV2UgTVVTVCBjaGVjayBmb3IgaXNfY2xhc3Nfb3JfdW5pb24gb24gY29uZm9ybWluZyBjb21waWxlcnMgaW4KKyAgIC8vIG9yZGVyIHRvIGNvcnJlY3RseSBkZWR1Y2UgdGhhdCBub25jb3B5YWJsZSB0eXBlcyBhcmUgbm90IGVudW1zCisgICAvLyAoZHdhIDIwMDIvMDQvMTUpLi4uCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgc2VsZWN0b3IgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2FyaXRobWV0aWM8VD46OnZhbHVlCisgICAgICAgICAsIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfZnVuY3Rpb248VD46OnZhbHVlCisgICAgICAgICAsIGlzX2NsYXNzX29yX3VuaW9uPFQ+Ojp2YWx1ZQorICAgICAgICAgLCBpc19hcnJheTxUPjo6dmFsdWUKKyAgICAgID46OnZhbHVlKSk7CisjZWxzZQorICAgLy8gLi4uaG93ZXZlciwgbm90IGNoZWNraW5nIGlzX2NsYXNzX29yX3VuaW9uIG9uIG5vbi1jb25mb3JtaW5nCisgICAvLyBjb21waWxlcnMgcHJldmVudHMgYSBkZXBlbmRlbmN5IHJlY3Vyc2lvbi4KKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBzZWxlY3RvciA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWUKKyAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICAgLCA6Om5kbmJvb3N0Ojppc19mdW5jdGlvbjxUPjo6dmFsdWUKKyAgICAgICAgICwgaXNfYXJyYXk8VD46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworI2VuZGlmIC8vIEJPT1NUX1RUX0hBU19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OCisKKyNlbHNlIC8vICFkZWZpbmVkKF9fR05VQ19fKToKKyAgICAKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBzZWxlY3RvciA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWUKKyAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICAgLCBpc19jbGFzc19vcl91bmlvbjxUPjo6dmFsdWUKKyAgICAgICAgICwgaXNfYXJyYXk8VD46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworICAgIAorI2VuZGlmCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkKKyAgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfZW51bV9oZWxwZXI8CisgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19lbnVtX2ltcGw8VD46OnNlbGVjdG9yCisgICAgICAgID4gc2VfdDsKKyNlbHNlCisgICAgdHlwZWRlZiA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2VudW1faGVscGVyPHNlbGVjdG9yPiBzZV90OworI2VuZGlmCisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNlX3Q6OnRlbXBsYXRlIHR5cGU8VD4gaGVscGVyOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGhlbHBlcjo6dmFsdWUpOworfTsKKworLy8gdGhlc2UgaGVscCBvbiBjb21waWxlcnMgd2l0aCBubyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHN1cHBvcnQ6CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VudW0sdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfZW51bSx2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19lbnVtLHZvaWQgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VudW0sdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19lbnVtLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19lbnVtX2ltcGw8VD46OnZhbHVlKQorCisjZWxzZSAvLyBfX0JPUkxBTkRDX18KKy8vCisvLyBidWdneSBpc19jb252ZXJ0aWJsZSBwcmV2ZW50cyB3b3JraW5nCisvLyBpbXBsZW1lbnRhdGlvbiBvZiBpc19lbnVtOgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19lbnVtLFQsZmFsc2UpCisKKyNlbmRpZgorCisjZWxzZSAvLyBCT09TVF9JU19FTlVNCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfZW51bSxULEJPT1NUX0lTX0VOVU0oVCkpCisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfRU5VTV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19mbG9hdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE2NDk1YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXQuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfSVNfRkxPQVRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0lTX0ZMT0FUX0hQUF9JTkNMVURFRAorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLyogaXMgYSB0eXBlIFQgYSBmbG9hdGluZy1wb2ludCB0eXBlIGRlc2NyaWJlZCBpbiB0aGUgc3RhbmRhcmQgKDMuOS4xcDgpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2Zsb2F0LFQsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19mbG9hdCxmbG9hdCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfZmxvYXQsZG91YmxlLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19mbG9hdCxsb25nIGRvdWJsZSx0cnVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFlQRV9UUkFJVFNfSVNfRkxPQVRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0aW5nX3BvaW50LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXRpbmdfcG9pbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhM2U4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0aW5nX3BvaW50LmhwcApAQCAtMCwwICsxLDI3IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAtMjAwNS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfSVNfRkxPQVRJTkdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0lTX0ZMT0FUSU5HX0hQUF9JTkNMVURFRAorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLyogaXMgYSB0eXBlIFQgYSBmbG9hdGluZy1wb2ludCB0eXBlIGRlc2NyaWJlZCBpbiB0aGUgc3RhbmRhcmQgKDMuOS4xcDgpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2Zsb2F0aW5nX3BvaW50LFQsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19mbG9hdGluZ19wb2ludCxmbG9hdCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfZmxvYXRpbmdfcG9pbnQsZG91YmxlLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19mbG9hdGluZ19wb2ludCxsb25nIGRvdWJsZSx0cnVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFlQRV9UUkFJVFNfSVNfRkxPQVRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMTM2ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcApAQCAtMCwwICsxLDExMSBAQAorCisvLyAgQ29weXJpZ2h0IDIwMDAgSm9obiBNYWRkb2NrIChqb2huQGpvaG5tYWRkb2NrLmNvLnVrKQorLy8gIENvcHlyaWdodCAyMDAyIEFsZWtzZXkgR3VydG92b3kgKGFndXJ0b3ZveUBtZXRhLWNvbW0uY29tKQorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfRlVOQ1RJT05fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX0ZVTkNUSU9OX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvZmFsc2VfcmVzdWx0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MpCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl9oZWxwZXIuaHBwPgorI2Vsc2UKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX3Rlc3Rlci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisvLyBpcyBhIHR5cGUgYSBmdW5jdGlvbj8KKy8vIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB1bm5lY2Vzc2FyaWx5IGNvbXBsZXg6CisvLyB3ZSBjb3VsZCBqdXN0IHVzZSAhaXNfY29udmVydGlibGU8VCosIGNvbnN0IHZvbGF0aWxlIHZvaWQqPjo6dmFsdWUsCisvLyBleGNlcHQgdGhhdCBzb21lIGNvbXBpbGVycyBlcnJvbmVvdXNseSBhbGxvdyBjb252ZXJzaW9ucyBmcm9tCisvLyBmdW5jdGlvbiBwb2ludGVycyB0byB2b2lkKi4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmICFkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhZGVmaW5lZChCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUykKK3RlbXBsYXRlPGJvb2wgaXNfcmVmID0gdHJ1ZT4KK3N0cnVjdCBpc19mdW5jdGlvbl9jaG9vc2VyCisgICAgOiBwdWJsaWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmZhbHNlX3Jlc3VsdAoreworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19mdW5jdGlvbl9jaG9vc2VyPGZhbHNlPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlc3VsdF8KKyAgICAgICAgOiBwdWJsaWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8VCo+CisgICAgeworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19mdW5jdGlvbl9pbXBsCisgICAgOiBwdWJsaWMgaXNfZnVuY3Rpb25fY2hvb3NlcjwgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA+CisgICAgICAgIDo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIHJlc3VsdF88VD4KK3sKK307CisKKyNlbHNlCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2Z1bmN0aW9uX2ltcGwKK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkNfRlVMTF9WRVIsID49IDE0MDA1MDAwMCkKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NjMzNCkKKyNlbmRpZgorICAgIHN0YXRpYyBUKiB0OworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUgPSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIodCkpCisgICAgICAgID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgICk7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2Z1bmN0aW9uX2ltcGw8VCY+IDogcHVibGljIGZhbHNlX3R5cGUKK3t9OworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25faW1wbDxUJiY+IDogcHVibGljIGZhbHNlX3R5cGUKK3t9OworI2VuZGlmCisjZW5kaWYKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisjZW5kaWYgLy8gIWRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2Z1bmN0aW9uLFQsX19pc19mdW5jdGlvbihUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2Z1bmN0aW9uLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19mdW5jdGlvbl9pbXBsPFQ+Ojp2YWx1ZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2Z1bmN0aW9uLFQmJixmYWxzZSkKKyNlbmRpZgorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfRlVOQ1RJT05fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmRhbWVudGFsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuZGFtZW50YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NDk3YzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmRhbWVudGFsLmhwcApAQCAtMCwwICsxLDQ1IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX0ZVTkRBTUVOVEFMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19GVU5EQU1FTlRBTF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IAorc3RydWN0IGlzX2Z1bmRhbWVudGFsX2ltcGwKKyAgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPCAKKyAgICAgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPFQ+Ojp2YWx1ZQorICAgICAgICAsIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8VD46OnZhbHVlCisgICAgICAgID4KK3sgCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8qIGlzIGEgdHlwZSBUIGEgZnVuZGFtZW50YWwgdHlwZSBkZXNjcmliZWQgaW4gdGhlIHN0YW5kYXJkICgzLjkuMSkKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfZnVuZGFtZW50YWwsVCxfX2lzX2Z1bmRhbWVudGFsKFQpKQorI2Vsc2UKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfZnVuZGFtZW50YWwsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2Z1bmRhbWVudGFsX2ltcGw8VD46OnZhbHVlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19GVU5EQU1FTlRBTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJlMTNkMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwCkBAIC0wLDAgKzEsODMgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfSU5URUdSQUxfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX0lOVEVHUkFMX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8qIGlzIGEgdHlwZSBUIGFuIFtjdi1xdWFsaWZpZWQtXSBpbnRlZ3JhbCB0eXBlIGRlc2NyaWJlZCBpbiB0aGUgc3RhbmRhcmQgKDMuOS4xcDMpCisvLyBhcyBhbiBleHRlbnNpb24gd2UgaW5jbHVkZSBsb25nIGxvbmcsIGFzIHRoaXMgaXMgbGlrZWx5IHRvIGJlIGFkZGVkIHRvIHRoZQorLy8gc3RhbmRhcmQgYXQgYSBsYXRlciBkYXRlCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2ludGVncmFsLFQsX19pc19pbnRlZ3JhbChUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2ludGVncmFsLFQsZmFsc2UpCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIGNoYXIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIHNob3J0LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCx1bnNpZ25lZCBpbnQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIGxvbmcsdHJ1ZSkKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsc2lnbmVkIGNoYXIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHNpZ25lZCBzaG9ydCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsc2lnbmVkIGludCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsc2lnbmVkIGxvbmcsdHJ1ZSkKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsYm9vbCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsY2hhcix0cnVlKQorCisjaWZuZGVmIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisvLyBJZiB0aGUgZm9sbG93aW5nIGxpbmUgZmFpbHMgdG8gY29tcGlsZSBhbmQgeW91J3JlIHVzaW5nIHRoZSBJbnRlbAorLy8gY29tcGlsZXIsIHNlZSBodHRwOi8vbGlzdHMuYm9vc3Qub3JnL01haWxBcmNoaXZlcy9ib29zdC11c2Vycy9tc2cwNjU2Ny5waHAsCisvLyBhbmQgZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UIG9uIHRoZSBjb21tYW5kIGxpbmUuCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCx3Y2hhcl90LHRydWUpCisjZW5kaWYKKworLy8gU2FtZSBzZXQgb2YgaW50ZWdyYWwgdHlwZXMgYXMgaW4gYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfcHJvbW90aW9uLmhwcC4KKy8vIFBsZWFzZSwga2VlcCBpbiBzeW5jLiAtLSBBbGV4YW5kZXIgTmFzb25vdgorI2lmIChkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTMwMCkpIFwKKyAgICB8fCAoZGVmaW5lZChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikgJiYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDYwMCkpIFwKKyAgICB8fCAoZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPT0gMHg2MDApICYmIChfTVNDX1ZFUiA8IDEzMDApKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgX19pbnQ4LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxfX2ludDgsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIF9faW50MTYsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLF9faW50MTYsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIF9faW50MzIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLF9faW50MzIsdHJ1ZSkKKyNpZmRlZiBfX0JPUkxBTkRDX18KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIF9faW50NjQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLF9faW50NjQsdHJ1ZSkKKyNlbmRpZgorI2VuZGlmCisKKyMgaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsIDo6bmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsIDo6bmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlLHRydWUpCisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIF9faW50NjQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLF9faW50NjQsdHJ1ZSkKKyNlbmRpZgorICAgICAgICAKKyNpZmRlZiBCT09TVF9IQVNfSU5UMTI4CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxuZG5ib29zdDo6aW50MTI4X3R5cGUsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLG5kbmJvb3N0Ojp1aW50MTI4X3R5cGUsdHJ1ZSkKKyNlbmRpZgorCisjZW5kaWYgIC8vIG5vbi1Db2RlR2VhciBpbXBsZW1lbnRhdGlvbgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfSU5URUdSQUxfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19sdmFsdWVfcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjBjMmU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19sdmFsdWVfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDExOCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICAgICAgSG93YXJkIEhpbm5hbnQgYW5kIEpvaG4gTWFkZG9jayAyMDAwLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hdCBNYXJjdXMsIEplc3NlIEpvbmVzIGFuZCBBZG9iZSBTeXN0ZW1zIEluYyAyMDAxCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKy8vICAgIEZpeGVkIGlzX3BvaW50ZXIsIGlzX2x2YWx1ZV9yZWZlcmVuY2UsIGlzX2NvbnN0LCBpc192b2xhdGlsZSwgaXNfc2FtZSwgCisvLyAgICBpc19tZW1iZXJfcG9pbnRlciBiYXNlZCBvbiB0aGUgU2ltdWxhdGVkIFBhcnRpYWwgU3BlY2lhbGl6YXRpb24gd29yayAKKy8vICAgIG9mIE1hdCBNYXJjdXMgYW5kIEplc3NlIEpvbmVzLiBTZWUgIGh0dHA6Ly9vcGVuc291cmNlLmFkb2JlLmNvbSBvciAKKy8vICAgIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL2Jvb3N0L21lc3NhZ2UvNTQ0MSAKKy8vICAgIFNvbWUgd29ya2Fyb3VuZHMgaW4gaGVyZSB1c2UgaWRlYXMgc3VnZ2VzdGVkIGZyb20gIkdlbmVyaWM8UHJvZ3JhbW1pbmc+OiAKKy8vICAgIE1hcHBpbmdzIGJldHdlZW4gVHlwZXMgYW5kIFZhbHVlcyIgCisvLyAgICBieSBBbmRyZWkgQWxleGFuZHJlc2N1IChzZWUgaHR0cDovL3d3dy5jdWouY29tL2V4cGVydHMvMTgxMC9hbGV4YW5kci5odG1sKS4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX0xWQUxVRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX0xWQUxVRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwPgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfbHZhbHVlX3JlZmVyZW5jZSxULF9faXNfcmVmZXJlbmNlKFQpKQorI2VsaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19sdmFsdWVfcmVmZXJlbmNlLFQsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19sdmFsdWVfcmVmZXJlbmNlLFQmLHRydWUpCisKKyNpZiAgZGVmaW5lZChCT09TVF9JTExFR0FMX0NWX1JFRkVSRU5DRVMpCisvLyB0aGVzZSBhcmUgaWxsZWdhbCBzcGVjaWFsaXNhdGlvbnM7IGN2LXF1YWxpZmllcyBhcHBsaWVkIHRvCisvLyByZWZlcmVuY2VzIGhhdmUgbm8gZWZmZWN0IGFjY29yZGluZyB0byBbOC4zLjJwMV0sCisvLyBDKysgQnVpbGRlciByZXF1aXJlcyB0aGVtIHRob3VnaCBhcyBpdCB0cmVhdHMgY3YtcXVhbGlmaWVkCisvLyByZWZlcmVuY2VzIGFzIGRpc3RpbmN0IHR5cGVzLi4uCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19sdmFsdWVfcmVmZXJlbmNlLFQmIGNvbnN0LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19sdmFsdWVfcmVmZXJlbmNlLFQmIHZvbGF0aWxlLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19sdmFsdWVfcmVmZXJlbmNlLFQmIGNvbnN0IHZvbGF0aWxlLHRydWUpCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA8IDMpCisvLyB0aGVzZSBhbGxvdyB1cyB0byB3b3JrIGFyb3VuZCBpbGxlZ2FsbHkgY3YtcXVhbGlmaWVkIHJlZmVyZW5jZQorLy8gdHlwZXMuCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19sdmFsdWVfcmVmZXJlbmNlLFQgY29uc3QgLDo6bmRuYm9vc3Q6OmlzX2x2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfbHZhbHVlX3JlZmVyZW5jZSxUIHZvbGF0aWxlICw6Om5kbmJvb3N0Ojppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCBjb25zdCB2b2xhdGlsZSAsOjpuZG5ib29zdDo6aXNfbHZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUpCisvLyBIb3dldmVyLCB0aGUgYWJvdmUgc3BlY2lhbGl6YXRpb25zIGNvbmZ1c2UgZ2NjIDIuOTYgdW5sZXNzIHdlIGFsc28KKy8vIHN1cHBseSB0aGVzZSBzcGVjaWFsaXphdGlvbnMgZm9yIGFycmF5IHR5cGVzCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCx1bnNpZ25lZCBsb25nIE4saXNfbHZhbHVlX3JlZmVyZW5jZSxUW05dLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsdW5zaWduZWQgbG9uZyBOLGlzX2x2YWx1ZV9yZWZlcmVuY2UsY29uc3QgVFtOXSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHVuc2lnbmVkIGxvbmcgTixpc19sdmFsdWVfcmVmZXJlbmNlLHZvbGF0aWxlIFRbTl0sZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCx1bnNpZ25lZCBsb25nIE4saXNfbHZhbHVlX3JlZmVyZW5jZSxjb25zdCB2b2xhdGlsZSBUW05dLGZhbHNlKQorI2VuZGlmCisKKyNlbHNlCisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICAgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MTgxIDQwOTcpCisjZW5kaWYKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZTsKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlOwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OndyYXA7CisKK3RlbXBsYXRlIDxjbGFzcyBUPiBUJigqIGlzX2x2YWx1ZV9yZWZlcmVuY2VfaGVscGVyMSh3cmFwPFQ+KSApKHdyYXA8VD4pOworY2hhciBpc19sdmFsdWVfcmVmZXJlbmNlX2hlbHBlcjEoLi4uKTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+IG5vX3R5cGUgaXNfbHZhbHVlX3JlZmVyZW5jZV9oZWxwZXIyKFQmKCopKHdyYXA8VD4pKTsKK3llc190eXBlIGlzX2x2YWx1ZV9yZWZlcmVuY2VfaGVscGVyMiguLi4pOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19sdmFsdWVfcmVmZXJlbmNlX2ltcGwKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gc2l6ZW9mKAorICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19sdmFsdWVfcmVmZXJlbmNlX2hlbHBlcjIoCisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19sdmFsdWVfcmVmZXJlbmNlX2hlbHBlcjEoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OndyYXA8VD4oKSkpKSA9PSAxCisgICAgICAgICk7Cit9OworCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2x2YWx1ZV9yZWZlcmVuY2Usdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbHZhbHVlX3JlZmVyZW5jZSx2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19sdmFsdWVfcmVmZXJlbmNlLHZvaWQgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2x2YWx1ZV9yZWZlcmVuY2Usdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19sdmFsdWVfcmVmZXJlbmNlLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19sdmFsdWVfcmVmZXJlbmNlX2ltcGw8VD46OnZhbHVlKQorCisjaWZkZWYgQk9PU1RfTVNWQworIyAgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMTE1YjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcApAQCAtMCwwICsxLDEzNiBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19NRU1CRVJfRlVOQ1RJT05fUE9JTlRFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfTUVNQkVSX0ZVTkNUSU9OX1BPSU5URVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICYmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkgJiYgIWRlZmluZWQoQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MpCisgICAvLworICAgLy8gTm90ZTogd2UgdXNlIHRoZSAid29ya2Fyb3VuZCIgdmVyc2lvbiBmb3IgTVNWQyBiZWNhdXNlIGl0IHdvcmtzIGZvciAKKyAgIC8vIF9fc3RkY2FsbCBldGMgZnVuY3Rpb24gdHlwZXMsIHdoZXJlIGFzIHRoZSBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9uCisgICAvLyB2ZXJzaW9uIGRvZXMgbm90IGRvIHNvLgorICAgLy8KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGwuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjZWxzZQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwPgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIsVCxfX2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyKCBUICkpCisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApICYmICFkZWZpbmVkKEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKAorICAgICAgaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIKKyAgICAsIFQKKyAgICAsIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppc19tZW1fZnVuX3BvaW50ZXJfaW1wbDx0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGU+Ojp2YWx1ZQorICAgICkKKworI2Vsc2UKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZm5kZWYgX19CT1JMQU5EQ19fCisKK3RlbXBsYXRlIDxib29sPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9zZWxlY3QKKyAgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6ZmFsc2VfcmVzdWx0Cit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9zZWxlY3Q8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQ19GVUxMX1ZFUiwgPj0gMTQwMDUwMDAwKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo2MzM0KQorI2VuZGlmCisgICAgICAgIHN0YXRpYyBUKiBtYWtlX3Q7CisgICAgICAgIHR5cGVkZWYgcmVzdWx0XzxUPiBzZWxmX3R5cGU7CisKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgYm9vbCwgdmFsdWUgPSAoCisgICAgICAgICAgICAgICAgMSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoc2VsZl90eXBlOjptYWtlX3QpKQorICAgICAgICAgICAgKSk7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisgICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2ltcGwKKyAgICA6IHB1YmxpYyBpc19tZW1fZnVuX3BvaW50ZXJfc2VsZWN0PAorICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2ltcGw8VCY+IDogcHVibGljIGZhbHNlX3R5cGV7fTsKKyNlbmRpZgorCisjZWxzZSAvLyBCb3JsYW5kIEMrKworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl9pbXBsCit7CisgICBzdGF0aWMgVCogbV90OworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgICBib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgICAoMSA9PSBzaXplb2YodHlwZV90cmFpdHM6OmlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIobV90KSkpICk7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl9pbXBsPFQmPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKworI2VuZGlmCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIsdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIsdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIsdm9pZCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIsdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJfaW1wbDxUPjo6dmFsdWUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19NRU1CRVJfRlVOQ1RJT05fUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX29iamVjdF9wb2ludGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX29iamVjdF9wb2ludGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjEwOTNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfb2JqZWN0X3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsNDYgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19NRU1CRVJfT0JKRUNUX1BPSU5URVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX01FTUJFUl9PQkpFQ1RfUE9JTlRFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19tZW1iZXJfb2JqZWN0X3BvaW50ZXJfaW1wbAoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgYm9vbCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICA6Om5kbmJvb3N0Ojppc19tZW1iZXJfcG9pbnRlcjxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyPFQ+Ojp2YWx1ZQorICAgICAgICAgPjo6dmFsdWUKKyAgICAgID46OnZhbHVlICkpOworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfbWVtYmVyX29iamVjdF9wb2ludGVyLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19tZW1iZXJfb2JqZWN0X3BvaW50ZXJfaW1wbDxUPjo6dmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19NRU1CRVJfRlVOQ1RJT05fUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfcG9pbnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEyYmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsMTE2IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gICAgICBIb3dhcmQgSGlubmFudCBhbmQgSm9obiBNYWRkb2NrIDIwMDAuIAorLy8gIChDKSBDb3B5cmlnaHQgTWF0IE1hcmN1cywgSmVzc2UgSm9uZXMgYW5kIEFkb2JlIFN5c3RlbXMgSW5jIDIwMDEKKworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworLy8gICAgRml4ZWQgaXNfcG9pbnRlciwgaXNfcmVmZXJlbmNlLCBpc19jb25zdCwgaXNfdm9sYXRpbGUsIGlzX3NhbWUsIAorLy8gICAgaXNfbWVtYmVyX3BvaW50ZXIgYmFzZWQgb24gdGhlIFNpbXVsYXRlZCBQYXJ0aWFsIFNwZWNpYWxpemF0aW9uIHdvcmsgCisvLyAgICBvZiBNYXQgTWFyY3VzIGFuZCBKZXNzZSBKb25lcy4gU2VlICBodHRwOi8vb3BlbnNvdXJjZS5hZG9iZS5jb20gb3IgCisvLyAgICBodHRwOi8vZ3JvdXBzLnlhaG9vLmNvbS9ncm91cC9ib29zdC9tZXNzYWdlLzU0NDEgCisvLyAgICBTb21lIHdvcmthcm91bmRzIGluIGhlcmUgdXNlIGlkZWFzIHN1Z2dlc3RlZCBmcm9tICJHZW5lcmljPFByb2dyYW1taW5nPjogCisvLyAgICBNYXBwaW5ncyBiZXR3ZWVuIFR5cGVzIGFuZCBWYWx1ZXMiIAorLy8gICAgYnkgQW5kcmVpIEFsZXhhbmRyZXNjdSAoc2VlIGh0dHA6Ly93d3cuY3VqLmNvbS9leHBlcnRzLzE4MTAvYWxleGFuZHIuaHRtbCkuCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19NRU1CRVJfUE9JTlRFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfTUVNQkVSX1BPSU5URVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pICYmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlci5ocHA+CisjZWxzZQorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfbWVtYmVyX3BvaW50ZXIsVCxfX2lzX21lbWJlcl9wb2ludGVyKFQpKQorI2VsaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX21lbWJlcl9wb2ludGVyLFQsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCx0eXBlbmFtZSBVLGlzX21lbWJlcl9wb2ludGVyLFUgVDo6Kix0cnVlKQorCisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19tZW1iZXJfcG9pbnRlcixULDo6bmRuYm9vc3Q6OmlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHR5cGVuYW1lIFUsaXNfbWVtYmVyX3BvaW50ZXIsVSBUOjoqLHRydWUpCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLDw9MHgzMDAzKSAmJiAhQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCA8PTYwMCkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHR5cGVuYW1lIFUsaXNfbWVtYmVyX3BvaW50ZXIsVSBUOjoqY29uc3QsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHR5cGVuYW1lIFUsaXNfbWVtYmVyX3BvaW50ZXIsVSBUOjoqdm9sYXRpbGUsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHR5cGVuYW1lIFUsaXNfbWVtYmVyX3BvaW50ZXIsVSBUOjoqY29uc3Qgdm9sYXRpbGUsdHJ1ZSkKKyNlbmRpZgorCisjZWxzZSAvLyBubyBwYXJ0aWFsIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUiwgdHlwZW5hbWUgVD4KKzo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIGlzX21lbWJlcl9wb2ludGVyX3Rlc3RlcihSIFQ6Oipjb25zdCB2b2xhdGlsZSopOworOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgQk9PU1RfVFRfREVDTCBpc19tZW1iZXJfcG9pbnRlcl90ZXN0ZXIoLi4uKTsKKwordGVtcGxhdGUgPGJvb2w+CitzdHJ1Y3QgaXNfbWVtYmVyX3BvaW50ZXJfc2VsZWN0CisgICAgOiBwdWJsaWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmZhbHNlX3Jlc3VsdAoreworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19tZW1iZXJfcG9pbnRlcl9zZWxlY3Q8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBzdGF0aWMgVCogbWFrZV90KCk7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgICAgIGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICAgICgxID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihtYWtlX3QoKSkpKSwKKyAgICAgICAgICAgICAgICAoMSA9PSBzaXplb2YoaXNfbWVtYmVyX3BvaW50ZXJfdGVzdGVyKG1ha2VfdCgpKSkpCisgICAgICAgICAgICA+Ojp2YWx1ZSkgKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfbWVtYmVyX3BvaW50ZXJfaW1wbAorICAgIDogcHVibGljIGlzX21lbWJlcl9wb2ludGVyX3NlbGVjdDwKKyAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICAgICAgICAsIDo6bmRuYm9vc3Q6OmlzX2FycmF5PFQ+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzxUPgoreworfTsKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfcG9pbnRlcix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfcG9pbnRlcix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfcG9pbnRlcix2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfcG9pbnRlcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX21lbWJlcl9wb2ludGVyLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19tZW1iZXJfcG9pbnRlcl9pbXBsPFQ+Ojp2YWx1ZSkKKworI2VuZGlmIC8vIF9fQk9STEFORENfXworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfTUVNQkVSX1BPSU5URVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbm90aHJvd19tb3ZlX2Fzc2lnbmFibGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4OTU5OGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLmhwcApAQCAtMCwwICsxLDg0IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgKEMpIENvcHlyaWdodCBFcmljIEZyaWVkbWFuIDIwMDItMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IEFudG9ueSBQb2x1a2hpbiAyMDEzLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19OT1RIUk9XX01PVkVfQVNTSUdOQUJMRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfTk9USFJPV19NT1ZFX0FTU0lHTkFCTEVfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX21vdmVfYXNzaWduLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19hc3NpZ24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9lbmFibGVfaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWx7CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKwordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEVuYWJsZSA9IHZvaWQ+CitzdHJ1Y3QgZmFsc2Vfb3JfY3BwMTFfbm9leGNlcHRfbW92ZV9hc3NpZ25hYmxlOiBwdWJsaWMgOjpuZG5ib29zdDo6ZmFsc2VfdHlwZSB7fTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgZmFsc2Vfb3JfY3BwMTFfbm9leGNlcHRfbW92ZV9hc3NpZ25hYmxlIDwKKyAgICAgICAgVCwKKyAgICAgICAgdHlwZW5hbWUgOjpuZG5ib29zdDo6ZW5hYmxlX2lmX2M8c2l6ZW9mKFQpICYmIEJPT1NUX05PRVhDRVBUX0VYUFIoOjpuZG5ib29zdDo6ZGVjbHZhbDxUJj4oKSA9IDo6bmRuYm9vc3Q6OmRlY2x2YWw8VD4oKSk+Ojp0eXBlCisgICAgPiA6IHB1YmxpYyA6Om5kbmJvb3N0OjppbnRlZ3JhbF9jb25zdGFudDxib29sLCBCT09TVF9OT0VYQ0VQVF9FWFBSKDo6bmRuYm9vc3Q6OmRlY2x2YWw8VCY+KCkgPSA6Om5kbmJvb3N0OjpkZWNsdmFsPFQ+KCkpPgore307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlX2ltcHsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlID46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjpmYWxzZV9vcl9jcHAxMV9ub2V4Y2VwdF9tb3ZlX2Fzc2lnbmFibGU8VD46OnZhbHVlCisgICAgICAgID46OnZhbHVlKSk7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19ub3Rocm93X21vdmVfYXNzaWduYWJsZV9pbXB7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKAorICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aGFzX3RyaXZpYWxfbW92ZV9hc3NpZ248VD46OnZhbHVlLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6Omhhc19ub3Rocm93X2Fzc2lnbjxUPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2FycmF5PFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkpOworfTsKKworI2VuZGlmCisKK30KKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19ub3Rocm93X21vdmVfYXNzaWduYWJsZSxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfbm90aHJvd19tb3ZlX2Fzc2lnbmFibGVfaW1wPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGlzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShpc19ub3Rocm93X21vdmVfYXNzaWduYWJsZSx2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaXNfbm90aHJvd19tb3ZlX2Fzc2lnbmFibGUsdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGlzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLHZvaWQgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX05PVEhST1dfTU9WRV9BU1NJR05BQkxFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmJjODg5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZS5ocHAKQEAgLTAsMCArMSw4NCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIChDKSBDb3B5cmlnaHQgRXJpYyBGcmllZG1hbiAyMDAyLTIwMDMuCisvLyAgKEMpIENvcHlyaWdodCBBbnRvbnkgUG9sdWtoaW4gMjAxMy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfTk9USFJPV19NT1ZFX0NPTlNUUlVDVElCTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX05PVEhST1dfTU9WRV9DT05TVFJVQ1RJQkxFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9tb3ZlX2NvbnN0cnVjdG9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfbm90aHJvd19jb3B5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9kZWNsdmFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWx7CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKwordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEVuYWJsZSA9IHZvaWQ+CitzdHJ1Y3QgZmFsc2Vfb3JfY3BwMTFfbm9leGNlcHRfbW92ZV9jb25zdHJ1Y3RpYmxlOiBwdWJsaWMgOjpuZG5ib29zdDo6ZmFsc2VfdHlwZSB7fTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgZmFsc2Vfb3JfY3BwMTFfbm9leGNlcHRfbW92ZV9jb25zdHJ1Y3RpYmxlIDwKKyAgICAgICAgVCwKKyAgICAgICAgdHlwZW5hbWUgOjpuZG5ib29zdDo6ZW5hYmxlX2lmX2M8c2l6ZW9mKFQpICYmIEJPT1NUX05PRVhDRVBUX0VYUFIoVCg6Om5kbmJvb3N0OjpkZWNsdmFsPFQ+KCkpKT46OnR5cGUKKyAgICA+IDogcHVibGljIDo6bmRuYm9vc3Q6OmludGVncmFsX2NvbnN0YW50PGJvb2wsIEJPT1NUX05PRVhDRVBUX0VYUFIoVCg6Om5kbmJvb3N0OjpkZWNsdmFsPFQ+KCkpKT4KK3t9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZV9pbXB7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAKKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlID46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjpmYWxzZV9vcl9jcHAxMV9ub2V4Y2VwdF9tb3ZlX2NvbnN0cnVjdGlibGU8VD46OnZhbHVlCisgICAgICAgID46OnZhbHVlKSk7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZV9pbXB7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0oCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpoYXNfdHJpdmlhbF9tb3ZlX2NvbnN0cnVjdG9yPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpoYXNfbm90aHJvd19jb3B5PFQ+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUsCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlID46OnZhbHVlCisgICAgICAgID46OnZhbHVlKSk7Cit9OworCisjZW5kaWYKKworfQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZV9pbXA8VD46OnZhbHVlKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShpc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZSx2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaXNfbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGUsdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGlzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShpc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZSx2b2lkIHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19OT1RIUk9XX01PVkVfQ09OU1RSVUNUSUJMRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfb2JqZWN0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfb2JqZWN0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTE4ZTMyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19vYmplY3QuaHBwCkBAIC0wLDAgKzEsNTMgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfT0JKRUNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19PQkpFQ1RfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Z1bmN0aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19vYmplY3RfaW1wbAoreworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWU+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc192b2lkPFQ+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZT46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8VD46OnZhbHVlPjo6dmFsdWUKKyAgICAgID46OnZhbHVlKSk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX29iamVjdCxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfb2JqZWN0X2ltcGw8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfT0JKRUNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkNDYyY2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvZC5ocHAKQEAgLTAsMCArMSwxNDUgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfUE9EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19QT0RfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisjaWZuZGVmIEJPT1NUX0lTX1BPRAorI2RlZmluZSBCT09TVF9JTlRFUk5BTF9JU19QT0QoVCkgZmFsc2UKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0lOVEVSTkFMX0lTX1BPRChUKSBCT09TVF9JU19QT0QoVCkKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLyBmb3J3YXJkIGRlY2xhcmF0aW9uLCBuZWVkZWQgYnkgJ2lzX3BvZF9hcnJheV9oZWxwZXInIHRlbXBsYXRlIGJlbG93Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19QT0Q7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBpc19wb2RfaW1wbAoreyAKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19zY2FsYXI8VD46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDxUPjo6dmFsdWUsCisgICAgICAgICAgICBCT09TVF9JTlRFUk5BTF9JU19QT0QoVCkKKyAgICAgICAgID46OnZhbHVlKSk7Cit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3Qgc3o+CitzdHJ1Y3QgaXNfcG9kX2ltcGw8VFtzel0+CisgICAgOiBwdWJsaWMgaXNfcG9kX2ltcGw8VD4KK3sKK307CisjZW5kaWYKKworI2Vsc2UKKwordGVtcGxhdGUgPGJvb2wgaXNfYXJyYXkgPSBmYWxzZT4KK3N0cnVjdCBpc19wb2RfaGVscGVyCit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgICAgICBib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19zY2FsYXI8VD46OnZhbHVlLAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8VD46OnZhbHVlLAorICAgICAgICAgICAgICAgIEJPT1NUX0lOVEVSTkFMX0lTX1BPRChUKQorICAgICAgICAgICAgPjo6dmFsdWUpKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPGJvb2wgYj4KK3N0cnVjdCBib29sX3RvX3llc19ub190eXBlCit7CisgICAgdHlwZWRlZiA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSB0eXBlOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBib29sX3RvX3llc19ub190eXBlPHRydWU+Cit7CisgICAgdHlwZWRlZiA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBBcnJheVR5cGU+CitzdHJ1Y3QgaXNfcG9kX2FycmF5X2hlbHBlcgoreworICAgIGVudW0geyBpc19wb2QgPSA6Om5kbmJvb3N0Ojppc19QT0Q8QXJyYXlUeXBlPjo6dmFsdWUgfTsgLy8gTVNWQyB3b3JrYXJvdW5kCisgICAgdHlwZWRlZiB0eXBlbmFtZSBib29sX3RvX3llc19ub190eXBlPGlzX3BvZD46OnR5cGUgdHlwZTsKKyAgICB0eXBlIGluc3RhbmNlKCkgY29uc3Q7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lzX3BvZF9hcnJheV9oZWxwZXI8VD4gaXNfUE9EX2FycmF5KFQqKTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19wb2RfaGVscGVyPHRydWU+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBzdGF0aWMgVCYgaGVscCgpOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgc2l6ZW9mKGlzX1BPRF9hcnJheShoZWxwKCkpLmluc3RhbmNlKCkpID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgICAgICApOworICAgIH07Cit9OworCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgaXNfcG9kX2ltcGwKK3sgCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgYm9vbCwgdmFsdWUgPSAoCisgICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9kX2hlbHBlcjwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlCisgICAgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88VD46OnZhbHVlCisgICAgICAgICAgICkKKyAgICAgICApOworfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworLy8gdGhlIGZvbGxvd2luZyBoZWxwIGNvbXBpbGVycyB3aXRob3V0IHBhcnRpYWwgc3BlY2lhbGl6YXRpb24gc3VwcG9ydDoKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLHZvaWQsdHJ1ZSkKKworI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2Qsdm9pZCBjb25zdCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2Qsdm9pZCB2b2xhdGlsZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2Qsdm9pZCBjb25zdCB2b2xhdGlsZSx0cnVlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3BvZCxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9kX2ltcGw8VD46OnZhbHVlKQorLy8gaXNfUE9EIGlzIHRoZSBvbGQgZGVwcmljYXRlZCBuYW1lIGZvciB0aGlzIHRyYWl0LCBkbyBub3QgdXNlIHRoaXMgYXMgaXQgbWF5CisvLyBiZSByZW1vdmVkIGluIGZ1dHVyZSB3aXRob3V0IHdhcm5pbmchIQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19QT0QsVCw6Om5kbmJvb3N0Ojppc19wb2Q8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjdW5kZWYgQk9PU1RfSU5URVJOQUxfSVNfUE9ECisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19QT0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjNmODdlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcApAQCAtMCwwICsxLDE2MiBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICAgICAgSG93YXJkIEhpbm5hbnQgYW5kIEpvaG4gTWFkZG9jayAyMDAwLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hdCBNYXJjdXMsIEplc3NlIEpvbmVzIGFuZCBBZG9iZSBTeXN0ZW1zIEluYyAyMDAxCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKy8vICAgIEZpeGVkIGlzX3BvaW50ZXIsIGlzX3JlZmVyZW5jZSwgaXNfY29uc3QsIGlzX3ZvbGF0aWxlLCBpc19zYW1lLCAKKy8vICAgIGlzX21lbWJlcl9wb2ludGVyIGJhc2VkIG9uIHRoZSBTaW11bGF0ZWQgUGFydGlhbCBTcGVjaWFsaXphdGlvbiB3b3JrIAorLy8gICAgb2YgTWF0IE1hcmN1cyBhbmQgSmVzc2UgSm9uZXMuIFNlZSAgaHR0cDovL29wZW5zb3VyY2UuYWRvYmUuY29tIG9yIAorLy8gICAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvYm9vc3QvbWVzc2FnZS81NDQxIAorLy8gICAgU29tZSB3b3JrYXJvdW5kcyBpbiBoZXJlIHVzZSBpZGVhcyBzdWdnZXN0ZWQgZnJvbSAiR2VuZXJpYzxQcm9ncmFtbWluZz46IAorLy8gICAgTWFwcGluZ3MgYmV0d2VlbiBUeXBlcyBhbmQgVmFsdWVzIiAKKy8vICAgIGJ5IEFuZHJlaSBBbGV4YW5kcmVzY3UgKHNlZSBodHRwOi8vd3d3LmN1ai5jb20vZXhwZXJ0cy8xODEwL2FsZXhhbmRyLmh0bWwpLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfUE9JTlRFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfUE9JTlRFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19mdW5jdGlvbl9wdHJfdGVzdGVyLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvZmFsc2VfcmVzdWx0LmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3BvaW50ZXIsVCxfX2lzX3BvaW50ZXIoVCkpCisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfcG9pbnRlcl9oZWxwZXIKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCisjICAgZGVmaW5lIFRUX0FVWF9CT09MX1RSQUlUX0hFTFBFUl9QQVJUSUFMX1NQRUMoaGVscGVyLHNwLHJlc3VsdCkgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaGVscGVyPHNwPiBcCit7IFwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSByZXN1bHQpOyBcCit9OyBcCisvKiovCisKK1RUX0FVWF9CT09MX1RSQUlUX0hFTFBFUl9QQVJUSUFMX1NQRUMoaXNfcG9pbnRlcl9oZWxwZXIsVCosdHJ1ZSkKKworIyAgIHVuZGVmIFRUX0FVWF9CT09MX1RSQUlUX0hFTFBFUl9QQVJUSUFMX1NQRUMKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX3BvaW50ZXJfaW1wbAoreworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvaW50ZXJfaGVscGVyPFQ+Ojp2YWx1ZQorICAgICAgICAgICAgLCA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19tZW1iZXJfcG9pbnRlcjxUPjo6dmFsdWUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUpCisgICAgICAgICk7CisjZWxzZQorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19wb2ludGVyX2hlbHBlcjx0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGU+Ojp2YWx1ZQorICAgICAgICAgICAgLCA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19tZW1iZXJfcG9pbnRlcjxUPjo6dmFsdWUKKyAgICAgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUpCisgICAgICAgICk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3BvaW50ZXIsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvaW50ZXJfaW1wbDxUPjo6dmFsdWUpCisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgIWRlZmluZWQoX19DT01PX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3BvaW50ZXIsVCYsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19wb2ludGVyLFQmIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfcG9pbnRlcixUJiB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3BvaW50ZXIsVCYgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworI2Vsc2UgLy8gbm8gcGFydGlhbCB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworc3RydWN0IHBvaW50ZXJfaGVscGVyCit7CisgICAgcG9pbnRlcl9oZWxwZXIoY29uc3Qgdm9sYXRpbGUgdm9pZCopOworfTsKKworeWVzX3R5cGUgQk9PU1RfVFRfREVDTCBpc19wb2ludGVyX3Rlc3Rlcihwb2ludGVyX2hlbHBlcik7Citub190eXBlIEJPT1NUX1RUX0RFQ0wgaXNfcG9pbnRlcl90ZXN0ZXIoLi4uKTsKKwordGVtcGxhdGUgPGJvb2w+CitzdHJ1Y3QgaXNfcG9pbnRlcl9zZWxlY3QKKyAgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6ZmFsc2VfcmVzdWx0Cit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX3BvaW50ZXJfc2VsZWN0PGZhbHNlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgc3RhdGljIFQmIG1ha2VfdCgpOworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgICAgICAgICAoMSA9PSBzaXplb2YoaXNfcG9pbnRlcl90ZXN0ZXIobWFrZV90KCkpKSksCisgICAgICAgICAgICAgICAgICAgICgxID09IHNpemVvZih0eXBlX3RyYWl0czo6aXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihtYWtlX3QoKSkpKQorICAgICAgICAgICAgICAgID46OnZhbHVlKSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX3BvaW50ZXJfaW1wbAorICAgIDogcHVibGljIGlzX3BvaW50ZXJfc2VsZWN0PAorICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvaW50ZXIsdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9pbnRlcix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2ludGVyLHZvaWQgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvaW50ZXIsdm9pZCBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19wb2ludGVyLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19wb2ludGVyX2ltcGw8VD46OnZhbHVlKQorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9seW1vcnBoaWMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2x5bW9ycGhpYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ5Y2QxMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9seW1vcnBoaWMuaHBwCkBAIC0wLDAgKzEsMTE0IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMC4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX1BPTFlNT1JQSElDX0hQUAorI2RlZmluZSBCT09TVF9UVF9JU19QT0xZTU9SUEhJQ19IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorI2lmbmRlZiBCT09TVF9JU19QT0xZTU9SUEhJQworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorI2VuZGlmCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eworCisjaWZuZGVmIEJPT1NUX0lTX1BPTFlNT1JQSElDCisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3BvbHltb3JwaGljX2ltcDEKK3sKKyMgaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDI0MDcpIC8vIENXUHJvNyBzaG91bGQgcmV0dXJuIGZhbHNlIGFsd2F5cy4KKyAgICB0eXBlZGVmIGNoYXIgZDEsICgmZDIpWzJdOworIyBlbHNlIAorICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUgbmN2VDsKKyAgIHN0cnVjdCBkMSA6IHB1YmxpYyBuY3ZUCisgICB7CisgICAgICBkMSgpOworIyAgaWYgIWRlZmluZWQoX19HTlVDX18pIC8vIHRoaXMgcmFpc2VzIHdhcm5pbmdzIHdpdGggc29tZSBjbGFzc2VzLCBhbmQgYnV5cyBub3RoaW5nIHdpdGggR0NDCisgICAgICB+ZDEoKXRocm93KCk7CisjICBlbmRpZiAKKyAgICAgIGNoYXIgcGFkZGluZ1syNTZdOworICAgcHJpdmF0ZToKKyAgICAgIC8vIGtlZXAgc29tZSBwaWNreSBjb21waWxlcnMgaGFwcHk6CisgICAgICBkMShjb25zdCBkMSYpOworICAgICAgZDEmIG9wZXJhdG9yPShjb25zdCBkMSYpOworICAgfTsKKyAgIHN0cnVjdCBkMiA6IHB1YmxpYyBuY3ZUCisgICB7CisgICAgICBkMigpOworICAgICAgdmlydHVhbCB+ZDIoKXRocm93KCk7CisjICBpZiAhZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAhZGVmaW5lZChfX0lDTCkKKyAgICAgIC8vIGZvciBzb21lIHJlYXNvbiB0aGlzIG1lc3NlcyB1cCBWQysrIHdoZW4gVCBoYXMgdmlydHVhbCBiYXNlcywKKyAgICAgIC8vIHByb2JhYmx5IGxpa2V3aXNlIGZvciBjb21waWxlcnMgdGhhdCB1c2UgdGhlIHNhbWUgQUJJOgorICAgICAgc3RydWN0IHVuaXF1ZXt9OworICAgICAgdmlydHVhbCB2b2lkIHVuaXF1ZV9uYW1lX3RvX2Jvb3N0NTQ4NzYyOSh1bmlxdWUqKTsKKyMgIGVuZGlmCisgICAgICBjaGFyIHBhZGRpbmdbMjU2XTsKKyAgIHByaXZhdGU6CisgICAgICAvLyBrZWVwIHNvbWUgcGlja3kgY29tcGlsZXJzIGhhcHB5OgorICAgICAgZDIoY29uc3QgZDImKTsKKyAgICAgIGQyJiBvcGVyYXRvcj0oY29uc3QgZDImKTsKKyAgIH07CisjIGVuZGlmIAorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihkMikgPT0gc2l6ZW9mKGQxKSkpOworfTsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcG9seW1vcnBoaWNfaW1wMgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPGJvb2wgaXNfY2xhc3M+CitzdHJ1Y3QgaXNfcG9seW1vcnBoaWNfc2VsZWN0b3IKK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgc3RydWN0IHJlYmluZAorICAgeworICAgICAgdHlwZWRlZiBpc19wb2x5bW9ycGhpY19pbXAyPFQ+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19wb2x5bW9ycGhpY19zZWxlY3Rvcjx0cnVlPgoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX3BvbHltb3JwaGljX2ltcDE8VD4gdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19wb2x5bW9ycGhpY19pbXAKK3sKKyAgIHR5cGVkZWYgaXNfcG9seW1vcnBoaWNfc2VsZWN0b3I8IDo6bmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZT4gc2VsZWN0b3I7CisgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdG9yOjp0ZW1wbGF0ZSByZWJpbmQ8VD4gYmluZGVyOworICAgdHlwZWRlZiB0eXBlbmFtZSBiaW5kZXI6OnR5cGUgaW1wX3R5cGU7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBpbXBfdHlwZTo6dmFsdWUpOworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfcG9seW1vcnBoaWMsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvbHltb3JwaGljX2ltcDxUPjo6dmFsdWUpCisKKyNlbHNlIC8vIEJPT1NUX0lTX1BPTFlNT1JQSElDCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfcG9seW1vcnBoaWMsVCxCT09TVF9JU19QT0xZTU9SUEhJQyhUKSkKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZmYyOGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHAKQEAgLTAsMCArMSw0NSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICAgICAgSG93YXJkIEhpbm5hbnQgYW5kIEpvaG4gTWFkZG9jayAyMDAwLCAyMDEwLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hdCBNYXJjdXMsIEplc3NlIEpvbmVzIGFuZCBBZG9iZSBTeXN0ZW1zIEluYyAyMDAxCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3J2YWx1ZV9yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2ljZS5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19yZWZlcmVuY2VfaW1wbAoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfbHZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUsIDo6bmRuYm9vc3Q6OmlzX3J2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICAgPjo6dmFsdWUpKTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3JlZmVyZW5jZSxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcmVmZXJlbmNlX2ltcGw8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3J2YWx1ZV9yZWZlcmVuY2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19ydmFsdWVfcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGFhOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19ydmFsdWVfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDI5IEBACisKKy8vICAoQykgSm9obiBNYWRkb2NrIDIwMTAuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19SVkFMVUVfUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19SVkFMVUVfUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19ydmFsdWVfcmVmZXJlbmNlLFQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19ydmFsdWVfcmVmZXJlbmNlLFQmJix0cnVlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YTAzYzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwCkBAIC0wLDAgKzEsMTAzIEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gICAgICBIb3dhcmQgSGlubmFudCBhbmQgSm9obiBNYWRkb2NrIDIwMDAuIAorLy8gIChDKSBDb3B5cmlnaHQgTWF0IE1hcmN1cywgSmVzc2UgSm9uZXMgYW5kIEFkb2JlIFN5c3RlbXMgSW5jIDIwMDEKKworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworLy8gICAgRml4ZWQgaXNfcG9pbnRlciwgaXNfcmVmZXJlbmNlLCBpc19jb25zdCwgaXNfdm9sYXRpbGUsIGlzX3NhbWUsIAorLy8gICAgaXNfbWVtYmVyX3BvaW50ZXIgYmFzZWQgb24gdGhlIFNpbXVsYXRlZCBQYXJ0aWFsIFNwZWNpYWxpemF0aW9uIHdvcmsgCisvLyAgICBvZiBNYXQgTWFyY3VzIGFuZCBKZXNzZSBKb25lcy4gU2VlICBodHRwOi8vb3BlbnNvdXJjZS5hZG9iZS5jb20gb3IgCisvLyAgICBodHRwOi8vZ3JvdXBzLnlhaG9vLmNvbS9ncm91cC9ib29zdC9tZXNzYWdlLzU0NDEgCisvLyAgICBTb21lIHdvcmthcm91bmRzIGluIGhlcmUgdXNlIGlkZWFzIHN1Z2dlc3RlZCBmcm9tICJHZW5lcmljPFByb2dyYW1taW5nPjogCisvLyAgICBNYXBwaW5ncyBiZXR3ZWVuIFR5cGVzIGFuZCBWYWx1ZXMiIAorLy8gICAgYnkgQW5kcmVpIEFsZXhhbmRyZXNjdSAoc2VlIGh0dHA6Ly93d3cuY3VqLmNvbS9leHBlcnRzLzE4MTAvYWxleGFuZHIuaHRtbCkuCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19TQU1FX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19TQU1FX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyNlbmRpZgorLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjIoaXNfc2FtZSxULFUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgVCxpc19zYW1lLFQsVCx0cnVlKQorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKQorLy8gd2l0aG91dCB0aGlzLCBCb3JsYW5kJ3MgY29tcGlsZXIgZ2l2ZXMgdGhlIHdyb25nIGFuc3dlciBmb3IKKy8vIHJlZmVyZW5jZXMgdG8gYXJyYXlzOgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8xKHR5cGVuYW1lIFQsaXNfc2FtZSxUJixUJix0cnVlKQorI2VuZGlmCisKKyNlbHNlIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZmRlZiBCT09TVF9NU1ZDCisvLyB0aGUgZm9sbG93aW5nIFZDNiBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBpcyAqTk9UKiBsZWdhbAorLy8gQysrLCBidXQgaGFzIHRoZSBhZHZhbnRhZ2UgdGhhdCBpdCB3b3JrcyBmb3IgaW5jb21wbGV0ZQorLy8gdHlwZXMuCisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUMSA+CitzdHJ1Y3QgaXNfc2FtZV9wYXJ0XzEKK3sKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMj4gIHN0cnVjdCBwYXJ0XzIgICAgIHsgZW51bSB7IHZhbHVlID0gZmFsc2UgfTsgfTsKKyAgICB0ZW1wbGF0ZTw+ICAgICAgICAgICAgIHN0cnVjdCBwYXJ0XzI8VDE+IHsgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OyB9OworfTsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+CitzdHJ1Y3QgaXNfc2FtZV9pbXBsCit7CisgICAgZW51bSB7IHZhbHVlID0gbmRuYm9vc3Q6OmRldGFpbDo6aXNfc2FtZV9wYXJ0XzE8VDE+Ojp0ZW1wbGF0ZSBwYXJ0XzI8VDI+Ojp2YWx1ZSB9OworfTsKKworI2Vsc2UgLy8gZ2VuZXJpYyAibm8tcGFydGlhbC1zcGVjaWFsaXphdGlvbiIgdmVyc2lvbgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKzo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZQorQk9PU1RfVFRfREVDTCBpc19zYW1lX3Rlc3RlcihUKiwgVCopOworCis6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZQorQk9PU1RfVFRfREVDTCBpc19zYW1lX3Rlc3RlciguLi4pOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK3N0cnVjdCBpc19zYW1lX2ltcGwKK3sKKyAgIHN0YXRpYyBUIHQ7CisgICBzdGF0aWMgVSB1OworCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgKHNpemVvZih0eXBlX3RyYWl0czo6eWVzX3R5cGUpID09IHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjppc19zYW1lX3Rlc3RlcigmdCwmdSkpKSwKKyAgICAgICAgICg6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlID09IDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxVPjo6dmFsdWUpLAorICAgICAgICAgKHNpemVvZihUKSA9PSBzaXplb2YoVSkpCisgICAgICAgID46OnZhbHVlKSk7Cit9OworCisjZW5kaWYgLy8gQk9PU1RfTVNWQworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMihpc19zYW1lLFQsVSwoOjpuZG5ib29zdDo6ZGV0YWlsOjppc19zYW1lX2ltcGw8VCxVPjo6dmFsdWUpKQorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgIC8vIEJPT1NUX1RUX0lTX1NBTUVfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2NhbGFyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2NhbGFyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNThkM2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19zY2FsYXIuaHBwCkBAIC0wLDAgKzEsNTUgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfU0NBTEFSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19TQ0FMQVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcml0aG1ldGljLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfcG9pbnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX3NjYWxhcl9pbXBsCit7IAorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19lbnVtPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvaW50ZXI8VD46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfbWVtYmVyX3BvaW50ZXI8VD46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworfTsKKworLy8gdGhlc2Ugc3BlY2lhbGl6YXRpb25zIGFyZSBvbmx5IHJlYWxseSBuZWVkZWQgZm9yIGNvbXBpbGVycyAKKy8vIHdpdGhvdXQgcGFydGlhbCBzcGVjaWFsaXphdGlvbiBzdXBwb3J0OgordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NjYWxhcl9pbXBsPHZvaWQ+eyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSApOyB9OworI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NjYWxhcl9pbXBsPHZvaWQgY29uc3Q+eyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSApOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NjYWxhcl9pbXBsPHZvaWQgdm9sYXRpbGU+eyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSApOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NjYWxhcl9pbXBsPHZvaWQgY29uc3Qgdm9sYXRpbGU+eyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSApOyB9OworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3NjYWxhcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfc2NhbGFyX2ltcGw8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfU0NBTEFSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19zaWduZWQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc19zaWduZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTdkZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NpZ25lZC5ocHAKQEAgLTAsMCArMSwxNDAgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19TSUdORURfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1NJR05FRF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2ludGVncmFsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VudW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWYgIWRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorCituYW1lc3BhY2UgZGV0YWlseworCisjaWYgIShkZWZpbmVkKF9fRURHX1ZFUlNJT05fXykgJiYgX19FREdfVkVSU0lPTl9fIDw9IDIzOCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04pCisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3NpZ25lZF92YWx1ZXMKK3sKKyAgIC8vCisgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBCT09TVF9TVEFUSUNfQ09OU1RBTlQgaGVyZSwgdXNpbmcgZW51bSdzCisgICAvLyByYXRoZXIgdGhhbiAicmVhbCIgc3RhdGljIGNvbnN0YW50cyBzaW1wbHkgZG9lc24ndCB3b3JrIG9yIGdpdmUKKyAgIC8vIHRoZSBjb3JyZWN0IGFuc3dlci4KKyAgIC8vCisgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZSBub19jdl90OworICAgc3RhdGljIGNvbnN0IG5vX2N2X3QgbWludXNfb25lID0gKHN0YXRpY19jYXN0PG5vX2N2X3Q+KC0xKSk7CisgICBzdGF0aWMgY29uc3Qgbm9fY3ZfdCB6ZXJvID0gKHN0YXRpY19jYXN0PG5vX2N2X3Q+KDApKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3NpZ25lZF9oZWxwZXIKK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ+Ojp0eXBlIG5vX2N2X3Q7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoISg6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3NpZ25lZF92YWx1ZXM8VD46Om1pbnVzX29uZSAgPiBuZG5ib29zdDo6ZGV0YWlsOjppc19zaWduZWRfdmFsdWVzPFQ+Ojp6ZXJvKSkpOworfTsKKwordGVtcGxhdGUgPGJvb2wgaW50ZWdyYWxfdHlwZT4KK3N0cnVjdCBpc19zaWduZWRfc2VsZWN0X2hlbHBlcgoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX3NpZ25lZF9oZWxwZXI8VD4gdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX3NpZ25lZF9zZWxlY3RfaGVscGVyPGZhbHNlPgoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGZhbHNlX3R5cGUgdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19zaWduZWRfaW1wCit7CisgICB0eXBlZGVmIGlzX3NpZ25lZF9zZWxlY3RfaGVscGVyPCAKKyAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19lbnVtPFQ+Ojp2YWx1ZT46OnZhbHVlIAorICAgPiBzZWxlY3RvcjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgc2VsZWN0b3I6OnRlbXBsYXRlIHJlYmluZDxUPiBiaW5kZXI7CisgICB0eXBlZGVmIHR5cGVuYW1lIGJpbmRlcjo6dHlwZSB0eXBlOworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPCAxMzAwKQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gaXNfc2lnbmVkX2ltcDxUPjo6dHlwZTo6dmFsdWUpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHR5cGU6OnZhbHVlKTsKKyNlbmRpZgorfTsKKworI2Vsc2UKKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCBpc19zaWduZWRfaW1wIDogcHVibGljIGZhbHNlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPHNpZ25lZCBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IHNpZ25lZCBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPHZvbGF0aWxlIHNpZ25lZCBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IHZvbGF0aWxlIHNpZ25lZCBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPHNob3J0PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IHNob3J0PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPHZvbGF0aWxlIHNob3J0PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IHZvbGF0aWxlIHNob3J0PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGludD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxjb25zdCBpbnQ+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NpZ25lZF9pbXA8dm9sYXRpbGUgaW50PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IHZvbGF0aWxlIGludD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IGxvbmc+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NpZ25lZF9pbXA8dm9sYXRpbGUgbG9uZz4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKKyNpZmRlZiBCT09TVF9IQVNfTE9OR19MT05HCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxsb25nIGxvbmc+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NpZ25lZF9pbXA8Y29uc3QgbG9uZyBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPHZvbGF0aWxlIGxvbmcgbG9uZz4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSBsb25nIGxvbmc+IDogcHVibGljIHRydWVfdHlwZXt9OworI2VuZGlmCisjaWYgZGVmaW5lZChDSEFSX01JTikgJiYgKENIQVJfTUlOICE9IDApCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IGNoYXI+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NpZ25lZF9pbXA8dm9sYXRpbGUgY2hhcj4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKKyNlbmRpZgorI2lmIGRlZmluZWQoV0NIQVJfTUlOKSAmJiAoV0NIQVJfTUlOICE9IDApCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDx3Y2hhcl90PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc19zaWduZWRfaW1wPGNvbnN0IHdjaGFyX3Q+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3NpZ25lZF9pbXA8dm9sYXRpbGUgd2NoYXJfdD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSB3Y2hhcl90PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKKyNlbmRpZgorCisjZW5kaWYKKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3NpZ25lZCxULF9faXNfc2lnbmVkKFQpKQorI2Vsc2UKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfc2lnbmVkLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19zaWduZWRfaW1wPFQ+Ojp2YWx1ZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfTUVNQkVSX0ZVTkNUSU9OX1BPSU5URVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3N0YXRlbGVzcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3N0YXRlbGVzcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTliMThkYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc3RhdGVsZXNzLmhwcApAQCAtMCwwICsxLDQ4IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX1NUQVRFTEVTU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfU1RBVEVMRVNTX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29uc3RydWN0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2NvcHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbXB0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19zdGF0ZWxlc3NfaW1wbAoreworICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAKKyAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgOjpuZG5ib29zdDo6aGFzX3RyaXZpYWxfY29uc3RydWN0b3I8VD46OnZhbHVlLAorICAgICAgIDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2NvcHk8VD46OnZhbHVlLAorICAgICAgIDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2Rlc3RydWN0b3I8VD46OnZhbHVlLAorICAgICAgIDo6bmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZSwKKyAgICAgICA6Om5kbmJvb3N0Ojppc19lbXB0eTxUPjo6dmFsdWUKKyAgICAgPjo6dmFsdWUpKTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3N0YXRlbGVzcyxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfc3RhdGVsZXNzX2ltcGw8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfU1RBVEVMRVNTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc191bmlvbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3VuaW9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmUwOWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc191bmlvbi5ocHAKQEAgLTAsMCArMSw1NyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19VTklPTl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfVU5JT05fSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworI2lmbmRlZiBfX0dOVUNfXwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBpc191bmlvbl9pbXBsCit7CisgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZSBjdnQ7CisjaWZkZWYgQk9PU1RfSVNfVU5JT04KKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IEJPT1NUX0lTX1VOSU9OKGN2dCkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKKyNlbmRpZgorfTsKKyNlbHNlCisvLworLy8gdXNpbmcgcmVtb3ZlX2N2IGhlcmUgZ2VuZXJhdGVzIGEgd2hvbGUgbG9hZCBvZiBuZWVkbGVzcworLy8gd2FybmluZ3Mgd2l0aCBnY2MsIHNpbmNlIGl0IGRvZXNuJ3QgZG8gYW55IGdvb2Qgd2l0aCBnY2MKKy8vIGluIGFueSBjYXNlIChhdCBsZWFzdCBhdCBwcmVzZW50KSwganVzdCByZW1vdmUgaXQ6CisvLwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBpc191bmlvbl9pbXBsCit7CisjaWZkZWYgQk9PU1RfSVNfVU5JT04KKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IEJPT1NUX0lTX1VOSU9OKFQpKTsKKyNlbHNlCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7CisjZW5kaWYKK307CisjZW5kaWYKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3VuaW9uLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc191bmlvbl9pbXBsPFQ+Ojp2YWx1ZSkKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX1VOSU9OX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc191bnNpZ25lZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3Vuc2lnbmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDY5ODRlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc191bnNpZ25lZC5ocHAKQEAgLTAsMCArMSwxMzUgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19VTlNJR05FRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfVU5TSUdORURfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmICFkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKworbmFtZXNwYWNlIGRldGFpbHsKKworI2lmICEoZGVmaW5lZChfX0VER19WRVJTSU9OX18pICYmIF9fRURHX1ZFUlNJT05fXyA8PSAyMzgpICYmICFkZWZpbmVkKEJPT1NUX05PX0lOQ0xBU1NfTUVNQkVSX0lOSVRJQUxJWkFUSU9OKQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc191bnNpZ25lZF92YWx1ZXMKK3sKKyAgIC8vCisgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBCT09TVF9TVEFUSUNfQ09OU1RBTlQgaGVyZSwgdXNpbmcgZW51bSdzCisgICAvLyByYXRoZXIgdGhhbiAicmVhbCIgc3RhdGljIGNvbnN0YW50cyBzaW1wbHkgZG9lc24ndCB3b3JrIG9yIGdpdmUKKyAgIC8vIHRoZSBjb3JyZWN0IGFuc3dlci4KKyAgIC8vCisgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZSBub19jdl90OworICAgc3RhdGljIGNvbnN0IG5vX2N2X3QgbWludXNfb25lID0gKHN0YXRpY19jYXN0PG5vX2N2X3Q+KC0xKSk7CisgICBzdGF0aWMgY29uc3Qgbm9fY3ZfdCB6ZXJvID0gKHN0YXRpY19jYXN0PG5vX2N2X3Q+KDApKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3VudW5zaWduZWRfaGVscGVyCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjppc191bnNpZ25lZF92YWx1ZXM8VD46Om1pbnVzX29uZSA+IDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfdW5zaWduZWRfdmFsdWVzPFQ+Ojp6ZXJvKSk7Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBpbnRlZ3JhbF90eXBlPgorc3RydWN0IGlzX3VudW5zaWduZWRfc2VsZWN0X2hlbHBlcgoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX3VudW5zaWduZWRfaGVscGVyPFQ+IHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc191bnVuc2lnbmVkX3NlbGVjdF9oZWxwZXI8ZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgZmFsc2VfdHlwZSB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3Vuc2lnbmVkX2ltcAoreworICAgdHlwZWRlZiBpc191bnVuc2lnbmVkX3NlbGVjdF9oZWxwZXI8IAorICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2VudW08VD46OnZhbHVlPjo6dmFsdWUgCisgICA+IHNlbGVjdG9yOworICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3Rvcjo6dGVtcGxhdGUgcmViaW5kPFQ+IGJpbmRlcjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgYmluZGVyOjp0eXBlIHR5cGU7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0eXBlOjp2YWx1ZSk7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcCA6IHB1YmxpYyBmYWxzZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPHVuc2lnbmVkIGNoYXI+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDxjb25zdCB1bnNpZ25lZCBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8dm9sYXRpbGUgdW5zaWduZWQgY2hhcj4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGNoYXI+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDx1bnNpZ25lZCBzaG9ydD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPGNvbnN0IHVuc2lnbmVkIHNob3J0PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8dm9sYXRpbGUgdW5zaWduZWQgc2hvcnQ+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPHVuc2lnbmVkIGludD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPGNvbnN0IHVuc2lnbmVkIGludD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPHZvbGF0aWxlIHVuc2lnbmVkIGludD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGludD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPHVuc2lnbmVkIGxvbmc+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDxjb25zdCB1bnNpZ25lZCBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8dm9sYXRpbGUgdW5zaWduZWQgbG9uZz4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmc+IDogcHVibGljIHRydWVfdHlwZXt9OworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8dW5zaWduZWQgbG9uZyBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8Y29uc3QgdW5zaWduZWQgbG9uZyBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8dm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8Y29uc3Qgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBsb25nPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKKyNlbmRpZgorI2lmIGRlZmluZWQoQ0hBUl9NSU4pICYmIChDSEFSX01JTiA9PSAwKQordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDxjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8Y29uc3QgY2hhcj4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPHZvbGF0aWxlIGNoYXI+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSBjaGFyPiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKKyNlbmRpZgorI2lmIGRlZmluZWQoV0NIQVJfTUlOKSAmJiAoV0NIQVJfTUlOID09IDApICYmICFkZWZpbmVkKEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UKQordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDx3Y2hhcl90PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBpc191bnNpZ25lZF9pbXA8Y29uc3Qgd2NoYXJfdD4gOiBwdWJsaWMgdHJ1ZV90eXBle307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfdW5zaWduZWRfaW1wPHZvbGF0aWxlIHdjaGFyX3Q+IDogcHVibGljIHRydWVfdHlwZXt9OwordGVtcGxhdGUgPD4gc3RydWN0IGlzX3Vuc2lnbmVkX2ltcDxjb25zdCB2b2xhdGlsZSB3Y2hhcl90PiA6IHB1YmxpYyB0cnVlX3R5cGV7fTsKKyNlbmRpZgorCisjZW5kaWYKKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3Vuc2lnbmVkLFQsX19pc191bnNpZ25lZChUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3Vuc2lnbmVkLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc191bnNpZ25lZF9pbXA8VD46OnZhbHVlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19NRU1CRVJfRlVOQ1RJT05fUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdmlydHVhbF9iYXNlX29mLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdmlydHVhbF9iYXNlX29mLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGU4YTViCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc192aXJ0dWFsX2Jhc2Vfb2YuaHBwCkBAIC0wLDAgKzEsMTA0IEBACisvLyAgKEMpIENvcHlyaWdodCBEYW5pZWwgRnJleSBhbmQgUm9iZXJ0IFJhbWV5IDIwMDkuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorIAorI2lmbmRlZiBCT09TVF9UVF9JU19WSVJUVUFMX0JBU0VfT0ZfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1ZJUlRVQUxfQkFTRV9PRl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2Jhc2Vfb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ub3QuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIGRldGFpbCB7CisKKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyggcHVzaCApCisjcHJhZ21hIHdhcm5pbmcoIGRpc2FibGUgOiA0NTg0IDQyNTApCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gNCkKKyNwcmFnbWEgR0NDIHN5c3RlbV9oZWFkZXIKKyNlbmRpZgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlLCB0eXBlbmFtZSBEZXJpdmVkLCB0eXBlbmFtZSB0YWc+CitzdHJ1Y3QgaXNfdmlydHVhbF9iYXNlX29mX2ltcGwKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlLCB0eXBlbmFtZSBEZXJpdmVkPgorc3RydWN0IGlzX3ZpcnR1YWxfYmFzZV9vZl9pbXBsPEJhc2UsIERlcml2ZWQsIG1wbDo6dHJ1ZV8+Cit7CisjaWZkZWYgX19CT1JMQU5EQ19fCisgICAgc3RydWN0IGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9YIDogcHVibGljIHZpcnR1YWwgRGVyaXZlZCwgcHVibGljIHZpcnR1YWwgQmFzZSAKKyAgICB7CisgICAgICAgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1goKTsKKyAgICAgICBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWChjb25zdCBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWCYpOworICAgICAgIGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9YJiBvcGVyYXRvcj0oY29uc3QgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1gmKTsKKyAgICAgICB+Ym9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1goKXRocm93KCk7CisgICAgfTsKKyAgICBzdHJ1Y3QgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1kgOiBwdWJsaWMgdmlydHVhbCBEZXJpdmVkIAorICAgIHsKKyAgICAgICBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSgpOworICAgICAgIGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9ZKGNvbnN0IGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9ZJik7CisgICAgICAgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1kmIG9wZXJhdG9yPShjb25zdCBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSYpOworICAgICAgIH5ib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSgpdGhyb3coKTsKKyAgICB9OworI2Vsc2UKKyAgICBzdHJ1Y3QgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1ggOiBwdWJsaWMgRGVyaXZlZCwgdmlydHVhbCBCYXNlIAorICAgIHsKKyAgICAgICBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWCgpOworICAgICAgIGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9YKGNvbnN0IGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9YJik7CisgICAgICAgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1gmIG9wZXJhdG9yPShjb25zdCBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWCYpOworICAgICAgIH5ib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWCgpdGhyb3coKTsKKyAgICB9OworICAgIHN0cnVjdCBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSA6IHB1YmxpYyBEZXJpdmVkIAorICAgIHsKKyAgICAgICBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSgpOworICAgICAgIGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9ZKGNvbnN0IGJvb3N0X3R5cGVfdHJhaXRzX2ludGVybmFsX3N0cnVjdF9ZJik7CisgICAgICAgYm9vc3RfdHlwZV90cmFpdHNfaW50ZXJuYWxfc3RydWN0X1kmIG9wZXJhdG9yPShjb25zdCBib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSYpOworICAgICAgIH5ib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSgpdGhyb3coKTsKKyAgICB9OworI2VuZGlmCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKHNpemVvZihib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWCk9PXNpemVvZihib29zdF90eXBlX3RyYWl0c19pbnRlcm5hbF9zdHJ1Y3RfWSkpKTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEJhc2UsIHR5cGVuYW1lIERlcml2ZWQ+CitzdHJ1Y3QgaXNfdmlydHVhbF9iYXNlX29mX2ltcGwyCit7CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6YW5kXzxpc19iYXNlX29mPEJhc2UsIERlcml2ZWQ+LCBtcGw6Om5vdF88aXNfc2FtZTxCYXNlLCBEZXJpdmVkPiA+ID46OnR5cGUgdGFnX3R5cGU7CisgICB0eXBlZGVmIGlzX3ZpcnR1YWxfYmFzZV9vZl9pbXBsPEJhc2UsIERlcml2ZWQsIHRhZ190eXBlPiBpbXA7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBpbXA6OnZhbHVlKTsKK307CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjcHJhZ21hIHdhcm5pbmcoIHBvcCApCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjIoCisgICAgICBpc192aXJ0dWFsX2Jhc2Vfb2YKKyAgICAgICAsIEJhc2UKKyAgICAgICAsIERlcml2ZWQKKyAgICAgICAsICg6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3ZpcnR1YWxfYmFzZV9vZl9pbXBsMjxCYXNlLERlcml2ZWQ+Ojp2YWx1ZSkgCispCisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8yKHR5cGVuYW1lIEJhc2UsdHlwZW5hbWUgRGVyaXZlZCxpc192aXJ0dWFsX2Jhc2Vfb2YsQmFzZSYsRGVyaXZlZCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMih0eXBlbmFtZSBCYXNlLHR5cGVuYW1lIERlcml2ZWQsaXNfdmlydHVhbF9iYXNlX29mLEJhc2UsRGVyaXZlZCYsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzIodHlwZW5hbWUgQmFzZSx0eXBlbmFtZSBEZXJpdmVkLGlzX3ZpcnR1YWxfYmFzZV9vZixCYXNlJixEZXJpdmVkJixmYWxzZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMTliMmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwCkBAIC0wLDAgKzEsMzggQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfVk9JRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfVk9JRF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKy8vKiBpcyBhIHR5cGUgVCB2b2lkIC0gaXNfdm9pZDxUPgorI2lmIGRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc192b2lkLFQsX19pc192b2lkKFQpKQorI2Vsc2UKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfdm9pZCxULGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaXNfdm9pZCx2b2lkLHRydWUpCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGlzX3ZvaWQsdm9pZCBjb25zdCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaXNfdm9pZCx2b2lkIHZvbGF0aWxlLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShpc192b2lkLHZvaWQgY29uc3Qgdm9sYXRpbGUsdHJ1ZSkKKyNlbmRpZgorCisjZW5kaWYgIC8vIG5vbi1Db2RlR2VhciBpbXBsZW1lbnRhdGlvbgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfVk9JRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdhZjBiNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwCkBAIC0wLDAgKzEsMTUyIEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gICAgICBIb3dhcmQgSGlubmFudCBhbmQgSm9obiBNYWRkb2NrIDIwMDAuIAorLy8gIChDKSBDb3B5cmlnaHQgTWF0IE1hcmN1cywgSmVzc2UgSm9uZXMgYW5kIEFkb2JlIFN5c3RlbXMgSW5jIDIwMDEKKworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworLy8gICAgRml4ZWQgaXNfcG9pbnRlciwgaXNfcmVmZXJlbmNlLCBpc19jb25zdCwgaXNfdm9sYXRpbGUsIGlzX3NhbWUsIAorLy8gICAgaXNfbWVtYmVyX3BvaW50ZXIgYmFzZWQgb24gdGhlIFNpbXVsYXRlZCBQYXJ0aWFsIFNwZWNpYWxpemF0aW9uIHdvcmsgCisvLyAgICBvZiBNYXQgTWFyY3VzIGFuZCBKZXNzZSBKb25lcy4gU2VlICBodHRwOi8vb3BlbnNvdXJjZS5hZG9iZS5jb20gb3IgCisvLyAgICBodHRwOi8vZ3JvdXBzLnlhaG9vLmNvbS9ncm91cC9ib29zdC9tZXNzYWdlLzU0NDEgCisvLyAgICBTb21lIHdvcmthcm91bmRzIGluIGhlcmUgdXNlIGlkZWFzIHN1Z2dlc3RlZCBmcm9tICJHZW5lcmljPFByb2dyYW1taW5nPjogCisvLyAgICBNYXBwaW5ncyBiZXR3ZWVuIFR5cGVzIGFuZCBWYWx1ZXMiIAorLy8gICAgYnkgQW5kcmVpIEFsZXhhbmRyZXNjdSAoc2VlIGh0dHA6Ly93d3cuY3VqLmNvbS9leHBlcnRzLzE4MTAvYWxleGFuZHIuaHRtbCkuCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19WT0xBVElMRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfVk9MQVRJTEVfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2N2X3RyYWl0c19pbXBsLmhwcD4KKyMgICBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTQwMCkKKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2JvdW5kcy5ocHA+CisjICAgZW5kaWYKKyNlbHNlCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvZmFsc2VfcmVzdWx0LmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsewordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfdm9sYXRpbGVfcnZhbF9maWx0ZXIKK3sKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTQwMCkKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6OmRldGFpbDo6Y3ZfdHJhaXRzX2ltcDx0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2JvdW5kczxUPjo6dHlwZSo+Ojppc192b2xhdGlsZSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gOjpuZG5ib29zdDo6ZGV0YWlsOjpjdl90cmFpdHNfaW1wPFQqPjo6aXNfdm9sYXRpbGUpOworI2VuZGlmCit9OworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworLy8KKy8vIFdlIGNhbid0IGZpbHRlciBvdXQgcnZhbHVlX3JlZmVyZW5jZXMgYXQgdGhlIHNhbWUgbGV2ZWwgYXMKKy8vIHJlZmVyZW5jZXMgb3Igd2UgZ2V0IGFtYmlndWl0aWVzIGZyb20gbXN2YzoKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc192b2xhdGlsZV9ydmFsX2ZpbHRlcjxUJiY+Cit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworI2VuZGlmCit9CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfdm9sYXRpbGUsVCxfX2lzX3ZvbGF0aWxlKFQpKQorI2VsaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikKKworLy8qIGlzIGEgdHlwZSBUIGRlY2xhcmVkIHZvbGF0aWxlIC0gaXNfdm9sYXRpbGU8VD4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfdm9sYXRpbGUsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3ZvbGF0aWxlX3J2YWxfZmlsdGVyPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3ZvbGF0aWxlLFQmLGZhbHNlKQorCisjaWYgIGRlZmluZWQoQk9PU1RfSUxMRUdBTF9DVl9SRUZFUkVOQ0VTKQorLy8gdGhlc2UgYXJlIGlsbGVnYWwgc3BlY2lhbGlzYXRpb25zOyBjdi1xdWFsaWZpZXMgYXBwbGllZCB0bworLy8gcmVmZXJlbmNlcyBoYXZlIG5vIGVmZmVjdCBhY2NvcmRpbmcgdG8gWzguMy4ycDFdLAorLy8gQysrIEJ1aWxkZXIgcmVxdWlyZXMgdGhlbSB0aG91Z2ggYXMgaXQgdHJlYXRzIGN2LXF1YWxpZmllZAorLy8gcmVmZXJlbmNlcyBhcyBkaXN0aW5jdCB0eXBlcy4uLgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfdm9sYXRpbGUsVCYgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc192b2xhdGlsZSxUJiB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3ZvbGF0aWxlLFQmIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKKyNlbHNlCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGU7Cit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZTsKKworeWVzX3R5cGUgaXNfdm9sYXRpbGVfdGVzdGVyKHZvaWQgY29uc3Qgdm9sYXRpbGUqKTsKK25vX3R5cGUgaXNfdm9sYXRpbGVfdGVzdGVyKHZvaWQgY29uc3QqKTsKKwordGVtcGxhdGUgPGJvb2wgaXNfcmVmLCBib29sIGFycmF5Pgorc3RydWN0IGlzX3ZvbGF0aWxlX2hlbHBlcgorICAgIDogcHVibGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpmYWxzZV9yZXN1bHQKK3sKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfdm9sYXRpbGVfaGVscGVyPGZhbHNlLGZhbHNlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgc3RhdGljIFQqIHQ7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9ICgKKyAgICAgICAgICAgIHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjp5ZXNfdHlwZSkgPT0gc2l6ZW9mKG5kbmJvb3N0OjpkZXRhaWw6OmlzX3ZvbGF0aWxlX3Rlc3Rlcih0KSkKKyAgICAgICAgICAgICkpOworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX3ZvbGF0aWxlX2hlbHBlcjxmYWxzZSx0cnVlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgc3RhdGljIFQgdDsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKAorICAgICAgICAgICAgc2l6ZW9mKG5kbmJvb3N0OjpkZXRhaWw6Onllc190eXBlKSA9PSBzaXplb2YobmRuYm9vc3Q6OmRldGFpbDo6aXNfdm9sYXRpbGVfdGVzdGVyKCZ0KSkKKyAgICAgICAgICAgICkpOworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc192b2xhdGlsZV9pbXBsCisgICAgOiBwdWJsaWMgaXNfdm9sYXRpbGVfaGVscGVyPAorICAgICAgICAgIGlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgLCBpc19hcnJheTxUPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzxUPgoreworfTsKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc192b2xhdGlsZSx2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc192b2xhdGlsZSx2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc192b2xhdGlsZSx2b2lkIHZvbGF0aWxlLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3ZvbGF0aWxlLHZvaWQgY29uc3Qgdm9sYXRpbGUsdHJ1ZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8qIGlzIGEgdHlwZSBUIGRlY2xhcmVkIHZvbGF0aWxlIC0gaXNfdm9sYXRpbGU8VD4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfdm9sYXRpbGUsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3ZvbGF0aWxlX2ltcGw8VD46OnZhbHVlKQorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfVk9MQVRJTEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2Vfc2lnbmVkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbWFrZV9zaWduZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NTJkYzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2Vfc2lnbmVkLmhwcApAQCAtMCwwICsxLDE1MyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfTUFLRV9TSUdORURfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX01BS0VfU0lHTkVEX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2lnbmVkLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc191bnNpZ25lZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3ZvbGF0aWxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2FuZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgbWFrZV9zaWduZWRfaW1wCit7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKAorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgOjpuZG5ib29zdDo6aXNfZW51bTxUPjo6dmFsdWU+Ojp2YWx1ZSkpOworI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9MTMwMCkKKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoCisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8CisgICAgICAgICB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUsIGJvb2w+Ojp2YWx1ZT46OnZhbHVlKSk7CisjZW5kaWYKKworICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUgdF9ub19jdjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPCAKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3NpZ25lZDxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfc2FtZTx0X25vX2N2LCBjaGFyPjo6dmFsdWU+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19zYW1lPHRfbm9fY3YsIHdjaGFyX3Q+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8dF9ub19jdiwgYm9vbD46OnZhbHVlPjo6dmFsdWUgPjo6dmFsdWUpLAorICAgICAgVCwKKyAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwgCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19pbnRlZ3JhbDxUPjo6dmFsdWUsCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfc2FtZTx0X25vX2N2LCBjaGFyPjo6dmFsdWU+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19zYW1lPHRfbm9fY3YsIHdjaGFyX3Q+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8dF9ub19jdiwgYm9vbD46OnZhbHVlPjo6dmFsdWU+CisgICAgICAgICA6OnZhbHVlKSwKKyAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgICAgaXNfc2FtZTx0X25vX2N2LCB1bnNpZ25lZCBjaGFyPiwKKyAgICAgICAgICAgIHNpZ25lZCBjaGFyLAorICAgICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgICAgICBpc19zYW1lPHRfbm9fY3YsIHVuc2lnbmVkIHNob3J0PiwKKyAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCwKKyAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgICAgICAgICAgaXNfc2FtZTx0X25vX2N2LCB1bnNpZ25lZCBpbnQ+LAorICAgICAgICAgICAgICAgICAgaW50LAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPHRfbm9fY3YsIHVuc2lnbmVkIGxvbmc+LAorICAgICAgICAgICAgICAgICAgICAgbG9uZywKKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisjaWZkZWYgQk9PU1RfSEFTX0lOVDEyOAorICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHRfbm9fY3YpID09IHNpemVvZihuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6aW50MTI4X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCisgICAgICAgICAgICAgICAgICAgICBfX2ludDY0CisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgbG9uZworI2VuZGlmCisgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICA+Ojp0eXBlLAorICAgICAgICAgLy8gTm90IGEgcmVndWxhciBpbnRlZ2VyIHR5cGU6CisgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAgICAgICBzaXplb2YodF9ub19jdikgPT0gc2l6ZW9mKHVuc2lnbmVkIGNoYXIpLAorICAgICAgICAgICAgc2lnbmVkIGNoYXIsCisgICAgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAgICAgICAgICBzaXplb2YodF9ub19jdikgPT0gc2l6ZW9mKHVuc2lnbmVkIHNob3J0KSwKKyAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCwKKyAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgIHNpemVvZih0X25vX2N2KSA9PSBzaXplb2YodW5zaWduZWQgaW50KSwKKyAgICAgICAgICAgICAgICAgIGludCwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZih0X25vX2N2KSA9PSBzaXplb2YodW5zaWduZWQgbG9uZyksCisgICAgICAgICAgICAgICAgICAgICBsb25nLAorI2lmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyNpZmRlZiBCT09TVF9IQVNfSU5UMTI4CisgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodF9ub19jdikgPT0gc2l6ZW9mKG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSksIAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmxvbmdfbG9uZ190eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjppbnQxMjhfdHlwZQorICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZQorI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZQorI2VuZGlmCisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKKyAgICAgICAgICAgICAgICAgICAgIF9faW50NjQKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgICBsb25nCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgID46OnR5cGUKKyAgICAgID46OnR5cGUKKyAgID46OnR5cGUgYmFzZV9pbnRlZ2VyX3R5cGU7CisgICAKKyAgIC8vIEFkZCBiYWNrIGFueSBjb25zdCBxdWFsaWZpZXI6CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgaXNfY29uc3Q8VD4sCisgICAgICB0eXBlbmFtZSBhZGRfY29uc3Q8YmFzZV9pbnRlZ2VyX3R5cGU+Ojp0eXBlLAorICAgICAgYmFzZV9pbnRlZ2VyX3R5cGUKKyAgID46OnR5cGUgY29uc3RfYmFzZV9pbnRlZ2VyX3R5cGU7CisgICAKKyAgIC8vIEFkZCBiYWNrIGFueSB2b2xhdGlsZSBxdWFsaWZpZXI6CisgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgaXNfdm9sYXRpbGU8VD4sCisgICAgICB0eXBlbmFtZSBhZGRfdm9sYXRpbGU8Y29uc3RfYmFzZV9pbnRlZ2VyX3R5cGU+Ojp0eXBlLAorICAgICAgY29uc3RfYmFzZV9pbnRlZ2VyX3R5cGUKKyAgID46OnR5cGUgdHlwZTsKK307CisKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEobWFrZV9zaWduZWQsVCx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX3NpZ25lZF9pbXA8VD46OnR5cGUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9BRERfUkVGRVJFTkNFX0hQUF9JTkNMVURFRAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21ha2VfdW5zaWduZWQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tYWtlX3Vuc2lnbmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2JlNWE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tYWtlX3Vuc2lnbmVkLmhwcApAQCAtMCwwICsxLDE1MyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfTUFLRV9VTlNJR05FRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfTUFLRV9VTlNJR05FRF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NpZ25lZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdW5zaWduZWQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VudW0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF92b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfbm90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IG1ha2VfdW5zaWduZWRfaW1wCit7CisgICBCT09TVF9TVEFUSUNfQVNTRVJUKAorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8IDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgOjpuZG5ib29zdDo6aXNfZW51bTxUPjo6dmFsdWU+Ojp2YWx1ZSkpOworI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9MTMwMCkKKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoCisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8CisgICAgICAgICB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUsIGJvb2w+Ojp2YWx1ZT46OnZhbHVlKSk7CisjZW5kaWYKKworICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY3Y8VD46OnR5cGUgdF9ub19jdjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPCAKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3Vuc2lnbmVkPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19zYW1lPHRfbm9fY3YsIGNoYXI+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8dF9ub19jdiwgd2NoYXJfdD46OnZhbHVlPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfc2FtZTx0X25vX2N2LCBib29sPjo6dmFsdWU+Ojp2YWx1ZSA+Ojp2YWx1ZSksCisgICAgICBULAorICAgICAgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPCAKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19zYW1lPHRfbm9fY3YsIGNoYXI+Ojp2YWx1ZT46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NhbWU8dF9ub19jdiwgd2NoYXJfdD46OnZhbHVlPjo6dmFsdWUsCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwgOjpuZG5ib29zdDo6aXNfc2FtZTx0X25vX2N2LCBib29sPjo6dmFsdWU+Ojp2YWx1ZT4KKyAgICAgICAgIDo6dmFsdWUpLAorICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl88CisgICAgICAgICAgICBpc19zYW1lPHRfbm9fY3YsIHNpZ25lZCBjaGFyPiwKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIsCisgICAgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgICAgICAgICAgIGlzX3NhbWU8dF9ub19jdiwgc2hvcnQ+LAorICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQsCisgICAgICAgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgICAgICAgICAgICAgIGlzX3NhbWU8dF9ub19jdiwgaW50PiwKKyAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfPAorICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTx0X25vX2N2LCBsb25nPiwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsCisjaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorI2lmZGVmIEJPT1NUX0hBU19JTlQxMjgKKyAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih0X25vX2N2KSA9PSBzaXplb2YobmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSksIAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dWludDEyOF90eXBlCisgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVsb25nX2xvbmdfdHlwZQorI2VuZGlmCisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50NjQKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgID46OnR5cGUsCisgICAgICAgICAvLyBOb3QgYSByZWd1bGFyIGludGVnZXIgdHlwZToKKyAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICAgIHNpemVvZih0X25vX2N2KSA9PSBzaXplb2YodW5zaWduZWQgY2hhciksCisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyLAorICAgICAgICAgICAgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgICAgICAgICAgc2l6ZW9mKHRfbm9fY3YpID09IHNpemVvZih1bnNpZ25lZCBzaG9ydCksCisgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCwKKyAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgIHNpemVvZih0X25vX2N2KSA9PSBzaXplb2YodW5zaWduZWQgaW50KSwKKyAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIG1wbDo6aWZfYzwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZih0X25vX2N2KSA9PSBzaXplb2YodW5zaWduZWQgbG9uZyksCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLAorI2lmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKyNpZmRlZiBCT09TVF9IQVNfSU5UMTI4CisgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBtcGw6OmlmX2M8CisgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodF9ub19jdikgPT0gc2l6ZW9mKG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVpbnQxMjhfdHlwZQorICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZQorI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bG9uZ19sb25nX3R5cGUKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDY0CisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZworI2VuZGlmCisgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICA+Ojp0eXBlCisgICAgICA+Ojp0eXBlCisgICA+Ojp0eXBlIGJhc2VfaW50ZWdlcl90eXBlOworICAgCisgICAvLyBBZGQgYmFjayBhbnkgY29uc3QgcXVhbGlmaWVyOgorICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgIGlzX2NvbnN0PFQ+LAorICAgICAgdHlwZW5hbWUgYWRkX2NvbnN0PGJhc2VfaW50ZWdlcl90eXBlPjo6dHlwZSwKKyAgICAgIGJhc2VfaW50ZWdlcl90eXBlCisgICA+Ojp0eXBlIGNvbnN0X2Jhc2VfaW50ZWdlcl90eXBlOworICAgCisgICAvLyBBZGQgYmFjayBhbnkgdm9sYXRpbGUgcXVhbGlmaWVyOgorICAgdHlwZWRlZiB0eXBlbmFtZSBtcGw6OmlmXzwKKyAgICAgIGlzX3ZvbGF0aWxlPFQ+LAorICAgICAgdHlwZW5hbWUgYWRkX3ZvbGF0aWxlPGNvbnN0X2Jhc2VfaW50ZWdlcl90eXBlPjo6dHlwZSwKKyAgICAgIGNvbnN0X2Jhc2VfaW50ZWdlcl90eXBlCisgICA+Ojp0eXBlIHR5cGU7Cit9OworCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKG1ha2VfdW5zaWduZWQsVCx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX3Vuc2lnbmVkX2ltcDxUPjo6dHlwZSkKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0FERF9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9hbGxfZXh0ZW50cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M5ZThiOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwCkBAIC0wLDAgKzEsNDcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBQZWRlciBIb2x0CisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFX1RSQUlUU19NU1ZDX1JFTU9WRV9BTExfRVhURU5UX0hPTFRfMjAwNF8wODI3CisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0FMTF9FWFRFTlRfSE9MVF8yMDA0XzA4MjcKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcmVtb3ZlX2FsbF9leHRlbnRzOworCisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPGJvb2wgSXNBcnJheT4KKyAgICAgICAgc3RydWN0IHJlbW92ZV9hbGxfZXh0ZW50c19pbXBsX3R5cGVvZiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJlbW92ZV9hbGxfZXh0ZW50c19pbXBsX3R5cGVvZjx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVW10pOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAqKChUKilOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHJlZHVjZWRfdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9hbGxfZXh0ZW50czxyZWR1Y2VkX3R5cGU+Ojp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0gLy9uYW1lc3BhY2UgZGV0YWlsCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZW1vdmVfYWxsX2V4dGVudHMgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9hbGxfZXh0ZW50c19pbXBsX3R5cGVvZjwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgICAgICAgICAgICAgICAgCisgICAgICAgID46OnRlbXBsYXRlIGlubmVyPFQscmVtb3ZlX2FsbF9leHRlbnRzPFQ+ID46OnR5cGUgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHJlbW92ZV9hbGxfZXh0ZW50cyxUKQorICAgIH07Cit9IC8vbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvL0JPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0JPVU5EU19IT0xUXzIwMDRfMDgyNworCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2JvdW5kcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2JvdW5kcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI5MjNiYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYm91bmRzLmhwcApAQCAtMCwwICsxLDQzIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgUGVkZXIgSG9sdAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQk9VTkRTX0hPTFRfMjAwNF8wODI3CisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0JPVU5EU19IT0xUXzIwMDRfMDgyNworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy90eXBlb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8Ym9vbCBJc0FycmF5PgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2JvdW5kc19pbXBsX3R5cGVvZiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgc3RydWN0IHJlbW92ZV9ib3VuZHNfaW1wbF90eXBlb2Y8dHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3QoVVtdKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKigoVCopTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9IC8vbmFtZXNwYWNlIGRldGFpbAorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcmVtb3ZlX2JvdW5kcyB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX2JvdW5kc19pbXBsX3R5cGVvZjwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgICAgICAgICAgICAgICAgCisgICAgICAgID46OnRlbXBsYXRlIGlubmVyPFQscmVtb3ZlX2JvdW5kczxUPiA+Ojp0eXBlIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxyZW1vdmVfYm91bmRzLFQpCisgICAgfTsKK30gLy9uYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQk9VTkRTX0hPTFRfMjAwNF8wODI3CisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfY29uc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9jb25zdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUyMDA0MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfY29uc3QuaHBwCkBAIC0wLDAgKzEsMTQzIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgUGVkZXIgSG9sdAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQ09OU1RfSE9MVF8yMDA0XzA4MjgKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQ09OU1RfSE9MVF8yMDA0XzA4MjgKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8Ym9vbCBJc1BvaW50ZXIsYm9vbCBJc0FycmF5LGJvb2wgSXNDb25zdCxib29sIElzVm9sYXRpbGU+CisgICAgICAgIHN0cnVjdCByZW1vdmVfY29uc3RfaW1wbF90eXBlb2YgeworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ29uc3QKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jb25zdF9pbXBsX3R5cGVvZjxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVIGNvbnN0JigqKSgpKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKFQoKikoKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCYgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4gLy9DVgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2NvbnN0X2ltcGxfdHlwZW9mPGZhbHNlLGZhbHNlLHRydWUsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUgdm9sYXRpbGUsSUQ+IHRlc3QoVSBjb25zdCB2b2xhdGlsZSYoKikoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoIChUKCopKCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQmIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ29uc3QgUG9pbnRlcgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2NvbnN0X2ltcGxfdHlwZW9mPHRydWUsZmFsc2UsdHJ1ZSxmYWxzZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3Qodm9pZCgqKShVIGNvbnN0W10pKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKHZvaWQoKikoVCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZVtdOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL0NWIFBvaW50ZXIKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jb25zdF9pbXBsX3R5cGVvZjx0cnVlLGZhbHNlLHRydWUsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUgdm9sYXRpbGUsSUQ+IHRlc3Qodm9pZCgqKShVIGNvbnN0IHZvbGF0aWxlW10pKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKHZvaWQoKikoVCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZVtdOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+IC8vQ29uc3QgQXJyYXkKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jb25zdF9pbXBsX3R5cGVvZjxmYWxzZSx0cnVlLHRydWUsZmFsc2U+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCx2YWx1ZT0oc2l6ZW9mKFQpL3NpemVvZigoKigoVCopTlVMTCkpWzBdKSkpOworCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFVbdmFsdWVdLElEPiB0ZXN0KHZvaWQoKikoVSBjb25zdFtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4gLy9DViBBcnJheQorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2NvbnN0X2ltcGxfdHlwZW9mPGZhbHNlLHRydWUsdHJ1ZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsdmFsdWU9KHNpemVvZihUKS9zaXplb2YoKCooKFQqKU5VTEwpKVswXSkpKTsKKworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVIHZvbGF0aWxlW3ZhbHVlXSxJRD4gdGVzdCh2b2lkKCopKFUgY29uc3Qgdm9sYXRpbGVbXSkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAodm9pZCgqKShUKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgIH0gLy9uYW1lc3BhY2UgZGV0YWlsCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZW1vdmVfY29uc3QgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9jb25zdF9pbXBsX3R5cGVvZjwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19wb2ludGVyPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUsCisgICAgICAgICAgICBuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZQorICAgICAgICA+IHJlbW92ZV9jb25zdF90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIAorICAgICAgICAgICAgcmVtb3ZlX2NvbnN0X3R5cGU6OnRlbXBsYXRlIGlubmVyPAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jb25zdF90eXBlOjp0ZW1wbGF0ZSB0cmFuc2Zvcm1fdHlwZTxUPjo6dHlwZSwKKyAgICAgICAgICAgICAgICByZW1vdmVfY29uc3Q8VD4KKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHJlbW92ZV9jb25zdCxUKQorICAgIH07Cit9Ly9uYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQ09OU1RfSE9MVF8yMDA0XzA4MjgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfY3YuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9jdi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUxNmU5ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfY3YuaHBwCkBAIC0wLDAgKzEsMTkwIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgUGVkZXIgSG9sdAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQ1ZfSE9MVF8yMDA0XzA5MDEKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQ1ZfSE9MVF8yMDA0XzA5MDEKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8Ym9vbCBJc1BvaW50ZXIsYm9vbCBJc0FycmF5LGJvb2wgSXNDb25zdCxib29sIElzVm9sYXRpbGU+CisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2YgeworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vVm9sYXRpbGUKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVIHZvbGF0aWxlJigqKSgpKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKFQoKikoKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCYgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4gLy9Db25zdAorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2N2X2ltcGxfdHlwZW9mPGZhbHNlLGZhbHNlLHRydWUsZmFsc2U+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVLElEPiB0ZXN0KFUgY29uc3QmKCopKCkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAoVCgqKSgpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUJiB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL0NWCisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2Y8ZmFsc2UsZmFsc2UsdHJ1ZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVIGNvbnN0IHZvbGF0aWxlJigqKSgpKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKFQoKikoKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCYgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4gLy9Wb2xhdGlsZSBQb2ludGVyCisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2Y8dHJ1ZSxmYWxzZSxmYWxzZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdCh2b2lkKCopKFUgdm9sYXRpbGVbXSkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAodm9pZCgqKShUKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlW107CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ29uc3QgUG9pbnRlcgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2N2X2ltcGxfdHlwZW9mPHRydWUsZmFsc2UsdHJ1ZSxmYWxzZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3Qodm9pZCgqKShVIGNvbnN0W10pKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKHZvaWQoKikoVCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZVtdOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL0NWIFBvaW50ZXIKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjx0cnVlLGZhbHNlLHRydWUsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3Qodm9pZCgqKShVIGNvbnN0IHZvbGF0aWxlW10pKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKHZvaWQoKikoVCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZVtdOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZTw+IC8vVm9sYXRpbGUgQXJyYXkKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjxmYWxzZSx0cnVlLGZhbHNlLHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCx2YWx1ZT0oc2l6ZW9mKFQpL3NpemVvZigoKigoVCopTlVMTCkpWzBdKSkpOworCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFVbdmFsdWVdLElEPiB0ZXN0KHZvaWQoKikoVSB2b2xhdGlsZVtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ29uc3QgQXJyYXkKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjxmYWxzZSx0cnVlLHRydWUsZmFsc2U+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCx2YWx1ZT0oc2l6ZW9mKFQpL3NpemVvZigoKigoVCopTlVMTCkpWzBdKSkpOworCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFVbdmFsdWVdLElEPiB0ZXN0KHZvaWQoKikoVSBjb25zdFtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPD4gLy9DViBBcnJheQorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2N2X2ltcGxfdHlwZW9mPGZhbHNlLHRydWUsdHJ1ZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsdmFsdWU9KHNpemVvZihUKS9zaXplb2YoKCooKFQqKU5VTEwpKVswXSkpKTsKKworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVW3ZhbHVlXSxJRD4gdGVzdCh2b2lkKCopKFUgY29uc3Qgdm9sYXRpbGVbXSkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAodm9pZCgqKShUKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgIH0gLy9uYW1lc3BhY2UgZGV0YWlsCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZW1vdmVfY3YgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9jdl9pbXBsX3R5cGVvZjwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19wb2ludGVyPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUsCisgICAgICAgICAgICBuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZQorICAgICAgICA+IHJlbW92ZV9jdl90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIAorICAgICAgICAgICAgcmVtb3ZlX2N2X3R5cGU6OnRlbXBsYXRlIGlubmVyPAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jdl90eXBlOjp0ZW1wbGF0ZSB0cmFuc2Zvcm1fdHlwZTxUPjo6dHlwZSwKKyAgICAgICAgICAgICAgICByZW1vdmVfY3Y8VD4KKyAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHJlbW92ZV9jdixUKQorICAgIH07Cit9Ly9uYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfQ1ZfSE9MVF8yMDA0XzA5MDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfZXh0ZW50LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfZXh0ZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGMzNmJjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9leHRlbnQuaHBwCkBAIC0wLDAgKzEsNDMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBQZWRlciBIb2x0CisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFX1RSQUlUU19NU1ZDX1JFTU9WRV9FWFRFTlRfSE9MVF8yMDA0XzA4MjcKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfRVhURU5UX0hPTFRfMjAwNF8wODI3CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTxib29sIElzQXJyYXk+CisgICAgICAgIHN0cnVjdCByZW1vdmVfZXh0ZW50X2ltcGxfdHlwZW9mIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2V4dGVudF9pbXBsX3R5cGVvZjx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVW10pOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAqKChUKilOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0gLy9uYW1lc3BhY2UgZGV0YWlsCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZW1vdmVfZXh0ZW50IHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpyZW1vdmVfZXh0ZW50X2ltcGxfdHlwZW9mPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2FycmF5PFQ+Ojp2YWx1ZSAgICAgICAgICAgICAgICAKKyAgICAgICAgPjo6dGVtcGxhdGUgaW5uZXI8VCxyZW1vdmVfZXh0ZW50PFQ+ID46OnR5cGUgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHJlbW92ZV9leHRlbnQsVCkKKyAgICB9OworfSAvL25hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy9CT09TVF9UWVBFX1RSQUlUU19NU1ZDX1JFTU9WRV9CT1VORFNfSE9MVF8yMDA0XzA4MjcKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9wb2ludGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcG9pbnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk0YmVmOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcG9pbnRlci5ocHAKQEAgLTAsMCArMSw0MiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IFBlZGVyIEhvbHQKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX1BPSU5URVJfSE9MVF8yMDA0XzA4MjcKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfUE9JTlRFUl9IT0xUXzIwMDRfMDgyNworCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy90eXBlb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTxpbnQgSXNQb2ludGVyPgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX3BvaW50ZXJfaW1wbF90eXBlb2YgeworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByZW1vdmVfcG9pbnRlcl9pbXBsX3R5cGVvZjx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVKik7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICooKFQqKU5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfSAvL25hbWVzcGFjZSBkZXRhaWwKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IHJlbW92ZV9wb2ludGVyIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpyZW1vdmVfcG9pbnRlcl9pbXBsX3R5cGVvZjwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19wb2ludGVyPFQ+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBpbm5lcjxULHJlbW92ZV9wb2ludGVyPFQ+ID46OnR5cGUgdHlwZTsKKyAgICAgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHJlbW92ZV9wb2ludGVyLFQpCisgICAgfTsKK30gLy9uYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vQk9PU1RfVFlQRV9UUkFJVFNfUkVNT1ZFX1BPSU5URVJfSE9MVF8yMDA0XzA4MjcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcmVmZXJlbmNlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDhlZjY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsNDIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBQZWRlciBIb2x0CisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFX1RSQUlUU19NU1ZDX1JFTU9WRV9SRUZFUkVOQ0VfSE9MVF8yMDA0XzA4MjcKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfUkVGRVJFTkNFX0hPTFRfMjAwNF8wODI3CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8Ym9vbCBJc1JlZmVyZW5jZT4KKyAgICAgICAgc3RydWN0IHJlbW92ZV9yZWZlcmVuY2VfaW1wbF90eXBlb2YgeworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByZW1vdmVfcmVmZXJlbmNlX2ltcGxfdHlwZW9mPHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVLElEPiB0ZXN0KFUmKCopKCkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAoVCgqKSgpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0gLy9uYW1lc3BhY2UgZGV0YWlsCisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcmVtb3ZlX3JlZmVyZW5jZSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9pbXBsX3R5cGVvZjwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIGlubmVyPFQscmVtb3ZlX3JlZmVyZW5jZTxUPiA+Ojp0eXBlIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxyZW1vdmVfcmVmZXJlbmNlLFQpCisgICAgfTsKK30gLy9uYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfUkVGRVJFTkNFX0hPTFRfMjAwNF8wODI3CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX3ZvbGF0aWxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfdm9sYXRpbGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ODdiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX3ZvbGF0aWxlLmhwcApAQCAtMCwwICsxLDE0MyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IFBlZGVyIEhvbHQKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX1ZPTEFUSUxFX0hPTFRfMjAwNF8wODI4CisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX1ZPTEFUSUxFX0hPTFRfMjAwNF8wODI4CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPGJvb2wgSXNQb2ludGVyLGJvb2wgSXNBcnJheSxib29sIElzQ29uc3QsYm9vbCBJc1ZvbGF0aWxlPgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX3ZvbGF0aWxlX2ltcGxfdHlwZW9mIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL1ZvbGF0aWxlCisgICAgICAgIHN0cnVjdCByZW1vdmVfdm9sYXRpbGVfaW1wbF90eXBlb2Y8ZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3QoVSB2b2xhdGlsZSYoKikoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoIChUKCopKCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07ICAgICAgICAgICAgCisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQmIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ1YKKyAgICAgICAgc3RydWN0IHJlbW92ZV92b2xhdGlsZV9pbXBsX3R5cGVvZjxmYWxzZSxmYWxzZSx0cnVlLHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVIGNvbnN0LElEPiB0ZXN0KFUgY29uc3Qgdm9sYXRpbGUmKCopKCkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAoVCgqKSgpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUJiB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL1ZvbGF0aWxlIFBvaW50ZXIKKyAgICAgICAgc3RydWN0IHJlbW92ZV92b2xhdGlsZV9pbXBsX3R5cGVvZjx0cnVlLGZhbHNlLGZhbHNlLHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVLElEPiB0ZXN0KHZvaWQoKikoVSB2b2xhdGlsZVtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGVbXTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4gLy9DViBQb2ludGVyCisgICAgICAgIHN0cnVjdCByZW1vdmVfdm9sYXRpbGVfaW1wbF90eXBlb2Y8dHJ1ZSxmYWxzZSx0cnVlLHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVIGNvbnN0LElEPiB0ZXN0KHZvaWQoKikoVSBjb25zdCB2b2xhdGlsZVtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGVbXTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07ICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8PiAvL1ZvbGF0aWxlIEFycmF5CisgICAgICAgIHN0cnVjdCByZW1vdmVfdm9sYXRpbGVfaW1wbF90eXBlb2Y8ZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsdmFsdWU9KHNpemVvZihUKS9zaXplb2YoKCooKFQqKU5VTEwpKVswXSkpKTsKKworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVW3ZhbHVlXSxJRD4gdGVzdCh2b2lkKCopKFUgdm9sYXRpbGVbXSkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAodm9pZCgqKShUKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8PiAvL0NWIEFycmF5CisgICAgICAgIHN0cnVjdCByZW1vdmVfdm9sYXRpbGVfaW1wbF90eXBlb2Y8ZmFsc2UsdHJ1ZSx0cnVlLHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCx2YWx1ZT0oc2l6ZW9mKFQpL3NpemVvZigoKigoVCopTlVMTCkpWzBdKSkpOworCisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUgY29uc3RbdmFsdWVdLElEPiB0ZXN0KHZvaWQoKikoVSBjb25zdCB2b2xhdGlsZVtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgfSAvL25hbWVzcGFjZSBkZXRhaWwKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IHJlbW92ZV92b2xhdGlsZSB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX3ZvbGF0aWxlX2ltcGxfdHlwZW9mPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX3BvaW50ZXI8VD46OnZhbHVlLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2FycmF5PFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc19jb25zdDxUPjo6dmFsdWUsCisgICAgICAgICAgICBuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlCisgICAgICAgID4gcmVtb3ZlX3ZvbGF0aWxlX3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgCisgICAgICAgICAgICByZW1vdmVfdm9sYXRpbGVfdHlwZTo6dGVtcGxhdGUgaW5uZXI8CisgICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3ZvbGF0aWxlX3R5cGU6OnRlbXBsYXRlIHRyYW5zZm9ybV90eXBlPFQ+Ojp0eXBlLAorICAgICAgICAgICAgICAgIHJlbW92ZV92b2xhdGlsZTxUPgorICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEscmVtb3ZlX3ZvbGF0aWxlLFQpCisgICAgfTsKK30vL25hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy9CT09TVF9UWVBFX1RSQUlUU19NU1ZDX1JFTU9WRV9WT0xBVElMRV9IT0xUXzIwMDRfMDgyOApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvdHlwZW9mLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWJjOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHAKQEAgLTAsMCArMSw1MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IFBlZGVyIEhvbHQKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVUUkFJVFNfTVNWQ19UWVBFT0ZfSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVUUkFJVFNfTVNWQ19UWVBFT0ZfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCB7CisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw9PTEzMDApCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y19leHRyYWN0X3R5cGUKKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8Ym9vbD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw7CisKKyAgICAgICAgICAgIHR5cGVkZWYgaWQydHlwZV9pbXBsPHRydWU+IGlkMnR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX3JlZ2lzdGVyX3R5cGUgOiBwdWJsaWMgbXN2Y19leHRyYWN0X3R5cGU8SUQ+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw8dHJ1ZT4gIC8vVkM3LjAgc3BlY2lmaWMgYnVnZmVhdHVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyMgZWxzZSAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX2V4dHJhY3RfdHlwZQorICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgaWQydHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBJRD4KKyAgICAgICAgc3RydWN0IG1zdmNfcmVnaXN0ZXJfdHlwZSA6IHB1YmxpYyBtc3ZjX2V4dHJhY3RfdHlwZTxJRD4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBtc3ZjX2V4dHJhY3RfdHlwZTxJRD4gYmFzZV90eXBlOworICAgICAgICAgICAgc3RydWN0IGJhc2VfdHlwZTo6aWQydHlwZSAvLyBUaGlzIHVzZXMgbmljZSBWQzYuNSBhbmQgVkM3LjEgYnVnZmVhdHVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyMgZW5kaWYKK319CisKKyNlbmRpZiAvL0JPT1NUX1RZUEVUUkFJVFNfTVNWQ19UWVBFT0ZfSU1QTF9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvb2JqZWN0X3RyYWl0cy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL29iamVjdF90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExM2E5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL29iamVjdF90cmFpdHMuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorLy8KKy8vICBkZWZpbmVzIG9iamVjdCB0cmFpdHMgY2xhc3NlczoKKy8vICBpc19vYmplY3QsIGlzX3NjYWxhciwgaXNfY2xhc3MsIGlzX2NvbXBvdW5kLCBpc19wb2QsIAorLy8gIGhhc190cml2aWFsX2NvbnN0cnVjdG9yLCBoYXNfdHJpdmlhbF9jb3B5LCBoYXNfdHJpdmlhbF9hc3NpZ24sIAorLy8gIGhhc190cml2aWFsX2Rlc3RydWN0b3IsIGlzX2VtcHR5LgorLy8KKworI2lmbmRlZiBCT09TVF9UVF9PQkpFQ1RfVFJBSVRTX0hQUF9JTkxDVURFRAorI2RlZmluZSBCT09TVF9UVF9PQkpFQ1RfVFJBSVRTX0hQUF9JTkxDVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfYXNzaWduLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb25zdHJ1Y3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29weS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaGFzX25vdGhyb3dfY29uc3RydWN0b3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2NvcHkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2hhc19ub3Rocm93X2Fzc2lnbi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfYmFzZV9hbmRfZGVyaXZlZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbXBvdW5kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19lbXB0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfb2JqZWN0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc3RhdGVsZXNzLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX09CSkVDVF9UUkFJVFNfSFBQX0lOTENVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3Byb21vdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9wcm9tb3RlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjA2NWY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9wcm9tb3RlLmhwcApAQCAtMCwwICsxLDQwIEBACisvLyBDb3B5cmlnaHQgMjAwNSBBbGV4YW5kZXIgTmFzb25vdi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBGSUxFX2Jvb3N0X3R5cGVfdHJhaXRzX3Byb21vdGVfaHBwX0lOQ0xVREVECisjZGVmaW5lIEZJTEVfYm9vc3RfdHlwZV90cmFpdHNfcHJvbW90ZV9ocHBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfcHJvbW90aW9uLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9mbG9hdGluZ19wb2ludF9wcm9tb3Rpb24uaHBwPgorCisvLyBTaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBwcm9tb3RlX2ltcGwKKyAgOiBwdWJsaWMgaW50ZWdyYWxfcHJvbW90aW9uPAorICAgICAgICBCT09TVF9ERURVQ0VEX1RZUEVOQU1FIGZsb2F0aW5nX3BvaW50X3Byb21vdGlvbjxUPjo6dHlwZQorICAgICAgPgoreworfTsKKworfQorCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKAorICAgICAgcHJvbW90ZQorICAgICwgVAorICAgICwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBuZG5ib29zdDo6ZGV0YWlsOjpwcm9tb3RlX2ltcGw8VD46OnR5cGUKKyAgICApCit9CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyAjaWZuZGVmIEZJTEVfYm9vc3RfdHlwZV90cmFpdHNfcHJvbW90ZV9ocHBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yYW5rLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmFuay5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk1YjkxYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmFuay5ocHAKQEAgLTAsMCArMSw4OSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNS4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX1JBTktfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX1JBTktfSFBQX0lOQ0xVREVECisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9zaXplX3RfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmICFkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKworbmFtZXNwYWNlIGRldGFpbHsKKwordGVtcGxhdGUgPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4+CitzdHJ1Y3QgcmFua19pbXAKK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSBOKTsKK307CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMpCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgUiwgc3RkOjpzaXplX3QgTj4KK3N0cnVjdCByYW5rX2ltcDxUW1JdLCBOPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9ICg6Om5kbmJvb3N0OjpkZXRhaWw6OnJhbmtfaW1wPFQsIE4rMT46OnZhbHVlKSk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgUiwgc3RkOjpzaXplX3QgTj4KK3N0cnVjdCByYW5rX2ltcDxUIGNvbnN0W1JdLCBOPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9ICg6Om5kbmJvb3N0OjpkZXRhaWw6OnJhbmtfaW1wPFQsIE4rMT46OnZhbHVlKSk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgUiwgc3RkOjpzaXplX3QgTj4KK3N0cnVjdCByYW5rX2ltcDxUIHZvbGF0aWxlW1JdLCBOPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9ICg6Om5kbmJvb3N0OjpkZXRhaWw6OnJhbmtfaW1wPFQsIE4rMT46OnZhbHVlKSk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgc3RkOjpzaXplX3QgUiwgc3RkOjpzaXplX3QgTj4KK3N0cnVjdCByYW5rX2ltcDxUIGNvbnN0IHZvbGF0aWxlW1JdLCBOPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9ICg6Om5kbmJvb3N0OjpkZXRhaWw6OnJhbmtfaW1wPFQsIE4rMT46OnZhbHVlKSk7Cit9OworCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKSAmJiAhZGVmaW5lZChfX0lCTUNQUF9fKSAmJiAgIUJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IHJhbmtfaW1wPFRbXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpyYW5rX2ltcDxULCBOKzE+Ojp2YWx1ZSkpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IHJhbmtfaW1wPFQgY29uc3RbXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpyYW5rX2ltcDxULCBOKzE+Ojp2YWx1ZSkpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IHJhbmtfaW1wPFQgdm9sYXRpbGVbXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpyYW5rX2ltcDxULCBOKzE+Ojp2YWx1ZSkpOworfTsKK3RlbXBsYXRlIDxjbGFzcyBULCBzdGQ6OnNpemVfdCBOPgorc3RydWN0IHJhbmtfaW1wPFQgY29uc3Qgdm9sYXRpbGVbXSwgTj4KK3sKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAoOjpuZG5ib29zdDo6ZGV0YWlsOjpyYW5rX2ltcDxULCBOKzE+Ojp2YWx1ZSkpOworfTsKKyNlbmRpZgorI2VuZGlmCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfREVGMShyYW5rLFQsX19hcnJheV9yYW5rKFQpKQorI2Vsc2UKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfREVGMShyYW5rLFQsKDo6bmRuYm9vc3Q6OmRldGFpbDo6cmFua19pbXA8VCwwPjo6dmFsdWUpKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX01FTUJFUl9GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYWxsX2V4dGVudHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MzY3NzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9hbGxfZXh0ZW50cy5ocHAKQEAgLTAsMCArMSw0OCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwNS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfUkVNT1ZFX0FMTF9FWFRFTlRTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9SRU1PVkVfQUxMX0VYVEVOVFNfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9hbGxfZXh0ZW50cy5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9hbGxfZXh0ZW50cyxULFQpCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSAmJiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4scmVtb3ZlX2FsbF9leHRlbnRzLFRbTl0sdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9hbGxfZXh0ZW50czxUPjo6dHlwZSB0eXBlKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfYWxsX2V4dGVudHMsVCBjb25zdFtOXSx0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2FsbF9leHRlbnRzPFQgY29uc3Q+Ojp0eXBlIHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9hbGxfZXh0ZW50cyxUIHZvbGF0aWxlW05dLHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfYWxsX2V4dGVudHM8VCB2b2xhdGlsZT46OnR5cGUgdHlwZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4scmVtb3ZlX2FsbF9leHRlbnRzLFQgY29uc3Qgdm9sYXRpbGVbTl0sdHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9hbGxfZXh0ZW50czxUIGNvbnN0IHZvbGF0aWxlPjo6dHlwZSB0eXBlKQorI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkgJiYgIWRlZmluZWQoX19JQk1DUFBfXykgJiYgICFCT09TVF9XT1JLQVJPVU5EKF9fRE1DX18sIEJPT1NUX1RFU1RFRF9BVCgweDg0MCkpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYWxsX2V4dGVudHMsVFtdLHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfYWxsX2V4dGVudHM8VD46OnR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYWxsX2V4dGVudHMsVCBjb25zdFtdLHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfYWxsX2V4dGVudHM8VCBjb25zdD46OnR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYWxsX2V4dGVudHMsVCB2b2xhdGlsZVtdLHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfYWxsX2V4dGVudHM8VCB2b2xhdGlsZT46OnR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYWxsX2V4dGVudHMsVCBjb25zdCB2b2xhdGlsZVtdLHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfYWxsX2V4dGVudHM8VCBjb25zdCB2b2xhdGlsZT46OnR5cGUpCisjZW5kaWYKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX1JFTU9WRV9CT1VORFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9ib3VuZHMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYm91bmRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM3MmRhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfYm91bmRzLmhwcApAQCAtMCwwICsxLDQ4IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX1JFTU9WRV9CT1VORFNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX1JFTU9WRV9CT1VORFNfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9ib3VuZHMuaHBwPgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X2RlZi5ocHA+CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShyZW1vdmVfYm91bmRzLFQsVCkKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pICYmICFkZWZpbmVkKEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfYm91bmRzLFRbTl0sVCB0eXBlKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfYm91bmRzLFQgY29uc3RbTl0sVCBjb25zdCB0eXBlKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfYm91bmRzLFQgdm9sYXRpbGVbTl0sVCB2b2xhdGlsZSB0eXBlKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfYm91bmRzLFQgY29uc3Qgdm9sYXRpbGVbTl0sVCBjb25zdCB2b2xhdGlsZSB0eXBlKQorI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkgJiYgIWRlZmluZWQoX19JQk1DUFBfXykgJiYgICFCT09TVF9XT1JLQVJPVU5EKF9fRE1DX18sIEJPT1NUX1RFU1RFRF9BVCgweDg0MCkpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYm91bmRzLFRbXSxUKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQscmVtb3ZlX2JvdW5kcyxUIGNvbnN0W10sVCBjb25zdCkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9ib3VuZHMsVCB2b2xhdGlsZVtdLFQgdm9sYXRpbGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYm91bmRzLFQgY29uc3Qgdm9sYXRpbGVbXSxUIGNvbnN0IHZvbGF0aWxlKQorI2VuZGlmCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9SRU1PVkVfQk9VTkRTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY29uc3QuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY29uc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YjMxZGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jb25zdC5ocHAKQEAgLTAsMCArMSw5MCBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQKKy8vICBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKworI2lmbmRlZiBCT09TVF9UVF9SRU1PVkVfQ09OU1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX1JFTU9WRV9DT05TVF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2N2X3RyYWl0c19pbXBsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2NvbnN0LmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBib29sIGlzX3ZvbD4KK3N0cnVjdCByZW1vdmVfY29uc3RfaGVscGVyCit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCByZW1vdmVfY29uc3RfaGVscGVyPFQsIHRydWU+Cit7CisgICAgdHlwZWRlZiBUIHZvbGF0aWxlIHR5cGU7Cit9OworCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IHJlbW92ZV9jb25zdF9pbXBsCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfY29uc3RfaGVscGVyPAorICAgICAgICAgIHR5cGVuYW1lIGN2X3RyYWl0c19pbXA8VCo+Ojp1bnF1YWxpZmllZF90eXBlCisgICAgICAgICwgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKy8vCisvLyBXZSBjYW4ndCBmaWx0ZXIgb3V0IHJ2YWx1ZV9yZWZlcmVuY2VzIGF0IHRoZSBzYW1lIGxldmVsIGFzCisvLyByZWZlcmVuY2VzIG9yIHdlIGdldCBhbWJpZ3VpdGllcyBmcm9tIG1zdmM6CisvLwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgcmVtb3ZlX2NvbnN0X2ltcGw8VCYmPgoreworICAgIHR5cGVkZWYgVCYmIHR5cGU7Cit9OworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyAqIGNvbnZlcnQgYSB0eXBlIFQgdG8gbm9uLWNvbnN0IHR5cGUgLSByZW1vdmVfY29uc3Q8VD4KKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShyZW1vdmVfY29uc3QsVCx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpyZW1vdmVfY29uc3RfaW1wbDxUPjo6dHlwZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9jb25zdCxUJixUJikKKyNpZiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4scmVtb3ZlX2NvbnN0LFQgY29uc3RbTl0sVCB0eXBlW05dKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfY29uc3QsVCBjb25zdCB2b2xhdGlsZVtOXSxUIHZvbGF0aWxlIHR5cGVbTl0pCisjZW5kaWYKKworI2VsaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX2NvbnN0LFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX2NvbnN0X2ltcGw8VD46OnR5cGUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9SRU1PVkVfQ09OU1RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJjZjc4ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcApAQCAtMCwwICsxLDg0IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX1JFTU9WRV9DVl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfUkVNT1ZFX0NWX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYnJva2VuX2NvbXBpbGVyX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9jdi5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IHJ2YWx1ZV9yZWZfZmlsdGVyX3JlbV9jdgoreworICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpjdl90cmFpdHNfaW1wPFQqPjo6dW5xdWFsaWZpZWRfdHlwZSB0eXBlOworfTsKKworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworLy8KKy8vIFdlIGNhbid0IGZpbHRlciBvdXQgcnZhbHVlX3JlZmVyZW5jZXMgYXQgdGhlIHNhbWUgbGV2ZWwgYXMKKy8vIHJlZmVyZW5jZXMgb3Igd2UgZ2V0IGFtYmlndWl0aWVzIGZyb20gbXN2YzoKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBydmFsdWVfcmVmX2ZpbHRlcl9yZW1fY3Y8VCYmPgoreworICAgdHlwZWRlZiBUJiYgdHlwZTsKK307CisjZW5kaWYKKworfQorCisKKy8vICBjb252ZXJ0IGEgdHlwZSBUIHRvIGEgbm9uLWN2LXF1YWxpZmllZCB0eXBlIC0gcmVtb3ZlX2N2PFQ+CitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9jdixULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJ2YWx1ZV9yZWZfZmlsdGVyX3JlbV9jdjxUPjo6dHlwZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9jdixUJixUJikKKyNpZiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4scmVtb3ZlX2N2LFQgY29uc3RbTl0sVCB0eXBlW05dKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfY3YsVCB2b2xhdGlsZVtOXSxUIHR5cGVbTl0pCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9jdixUIGNvbnN0IHZvbGF0aWxlW05dLFQgdHlwZVtOXSkKKyNlbmRpZgorCisjZWxpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKworbmFtZXNwYWNlIGRldGFpbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCByZW1vdmVfY3ZfaW1wbAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX3ZvbGF0aWxlX2ltcGw8IAorICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jb25zdF9pbXBsPFQ+Ojp0eXBlCisgICAgICAgID46OnR5cGUgdHlwZTsKK307Cit9CisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX2N2LFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX2N2X2ltcGw8VD46OnR5cGUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9SRU1PVkVfQ1ZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9leHRlbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfZXh0ZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzRiYzBkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfZXh0ZW50LmhwcApAQCAtMCwwICsxLDQ4IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAtMjAwNS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfUkVNT1ZFX0VYVEVOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfUkVNT1ZFX0VYVEVOVF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2V4dGVudC5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9leHRlbnQsVCxUKQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9leHRlbnQsVFtOXSxUIHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9leHRlbnQsVCBjb25zdFtOXSxUIGNvbnN0IHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9leHRlbnQsVCB2b2xhdGlsZVtOXSxUIHZvbGF0aWxlIHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9leHRlbnQsVCBjb25zdCB2b2xhdGlsZVtOXSxUIGNvbnN0IHZvbGF0aWxlIHR5cGUpCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKSAmJiAhZGVmaW5lZChfX0lCTUNQUF9fKSAmJiAgIUJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9leHRlbnQsVFtdLFQpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfZXh0ZW50LFQgY29uc3RbXSxUIGNvbnN0KQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQscmVtb3ZlX2V4dGVudCxUIHZvbGF0aWxlW10sVCB2b2xhdGlsZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9leHRlbnQsVCBjb25zdCB2b2xhdGlsZVtdLFQgY29uc3Qgdm9sYXRpbGUpCisjZW5kaWYKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX1JFTU9WRV9CT1VORFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9wb2ludGVyLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3BvaW50ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzZDJiZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9wb2ludGVyLmhwcApAQCAtMCwwICsxLDkyIEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX1JFTU9WRV9QT0lOVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9SRU1PVkVfUE9JTlRFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2lmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHA+CisjZW5kaWYKKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcG9pbnRlci5ocHA+CisjZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWZkZWYgQk9PU1RfTVNWQworCituYW1lc3BhY2UgZGV0YWlseworCisgICAvLworICAgLy8gV2UgbmVlZCBhbGwgdGhpcyBjcmF6eSBpbmRpcmVjdGlvbiBiZWNhdXNlIGEgdHlwZSBzdWNoIGFzOgorICAgLy8KKyAgIC8vIFQgKCpjb25zdCkoVSkKKyAgIC8vCisgICAvLyBEb2VzIG5vdCBiaW5kIHRvIGEgPFQqPiBvciA8VCpjb25zdD4gcGFydGlhbCBzcGVjaWFsaXphdGlvbiB3aXRoIFZDMTAgYW5kIGVhcmxpZXIKKyAgIC8vCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gCisgICBzdHJ1Y3QgcmVtb3ZlX3BvaW50ZXJfaW1wCisgICB7CisgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgIH07CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPiAKKyAgIHN0cnVjdCByZW1vdmVfcG9pbnRlcl9pbXA8VCo+CisgICB7CisgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgIH07CisKKyAgIHRlbXBsYXRlIDxjbGFzcyBULCBib29sIGI+IAorICAgc3RydWN0IHJlbW92ZV9wb2ludGVyX2ltcDMKKyAgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX3BvaW50ZXJfaW1wPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGU+Ojp0eXBlIHR5cGU7CisgICB9OworCisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gCisgICBzdHJ1Y3QgcmVtb3ZlX3BvaW50ZXJfaW1wMzxULCBmYWxzZT4KKyAgIHsKKyAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgfTsKKworICAgdGVtcGxhdGUgPGNsYXNzIFQ+IAorICAgc3RydWN0IHJlbW92ZV9wb2ludGVyX2ltcDIKKyAgIHsKKyAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX3BvaW50ZXJfaW1wMzxULCA6Om5kbmJvb3N0Ojppc19wb2ludGVyPFQ+Ojp2YWx1ZT46OnR5cGUgdHlwZTsKKyAgIH07Cit9CisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX3BvaW50ZXIsVCx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpyZW1vdmVfcG9pbnRlcl9pbXAyPFQ+Ojp0eXBlKQorCisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9wb2ludGVyLFQsVCkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9wb2ludGVyLFQqLFQpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfcG9pbnRlcixUKiBjb25zdCxUKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQscmVtb3ZlX3BvaW50ZXIsVCogdm9sYXRpbGUsVCkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9wb2ludGVyLFQqIGNvbnN0IHZvbGF0aWxlLFQpCisKKyNlbGlmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9wb2ludGVyLFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX3BvaW50ZXJfaW1wbDxUPjo6dHlwZSkKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9SRU1PVkVfUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3JlZmVyZW5jZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NGM2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsNzAgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfUkVNT1ZFX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfUkVNT1ZFX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2Jyb2tlbl9jb21waWxlcl9zcGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworbmFtZXNwYWNlIGRldGFpbHsKKy8vCisvLyBXZSBjYW4ndCBmaWx0ZXIgb3V0IHJ2YWx1ZV9yZWZlcmVuY2VzIGF0IHRoZSBzYW1lIGxldmVsIGFzCisvLyByZWZlcmVuY2VzIG9yIHdlIGdldCBhbWJpZ3VpdGllcyBmcm9tIG1zdmM6CisvLwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgcmVtb3ZlX3J2YWx1ZV9yZWYKK3sKKyAgIHR5cGVkZWYgVCB0eXBlOworfTsKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IHJlbW92ZV9ydmFsdWVfcmVmPFQmJj4KK3sKKyAgIHR5cGVkZWYgVCB0eXBlOworfTsKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShyZW1vdmVfcmVmZXJlbmNlLFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX3J2YWx1ZV9yZWY8VD46OnR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfcmVmZXJlbmNlLFQmLFQpCisKKyNpZiBkZWZpbmVkKEJPT1NUX0lMTEVHQUxfQ1ZfUkVGRVJFTkNFUykKKy8vIHRoZXNlIGFyZSBpbGxlZ2FsIHNwZWNpYWxpc2F0aW9uczsgY3YtcXVhbGlmaWVzIGFwcGxpZWQgdG8KKy8vIHJlZmVyZW5jZXMgaGF2ZSBubyBlZmZlY3QgYWNjb3JkaW5nIHRvIFs4LjMuMnAxXSwKKy8vIEMrKyBCdWlsZGVyIHJlcXVpcmVzIHRoZW0gdGhvdWdoIGFzIGl0IHRyZWF0cyBjdi1xdWFsaWZpZWQKKy8vIHJlZmVyZW5jZXMgYXMgZGlzdGluY3QgdHlwZXMuLi4KK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9yZWZlcmVuY2UsVCYgY29uc3QsVCkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9yZWZlcmVuY2UsVCYgdm9sYXRpbGUsVCkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9yZWZlcmVuY2UsVCYgY29uc3Qgdm9sYXRpbGUsVCkKKyNlbmRpZgorCisjZWxpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShyZW1vdmVfcmVmZXJlbmNlLFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX3JlZmVyZW5jZV9pbXBsPFQ+Ojp0eXBlKQorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfUkVNT1ZFX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3ZvbGF0aWxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX3ZvbGF0aWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTQ5YTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfdm9sYXRpbGUuaHBwCkBAIC0wLDAgKzEsODggQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkCisvLyAgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfUkVNT1ZFX1ZPTEFUSUxFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9SRU1PVkVfVk9MQVRJTEVfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYnJva2VuX2NvbXBpbGVyX3NwZWMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV92b2xhdGlsZS5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBpc19jb25zdD4KK3N0cnVjdCByZW1vdmVfdm9sYXRpbGVfaGVscGVyCit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCByZW1vdmVfdm9sYXRpbGVfaGVscGVyPFQsdHJ1ZT4KK3sKKyAgICB0eXBlZGVmIFQgY29uc3QgdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IHJlbW92ZV92b2xhdGlsZV9pbXBsCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSByZW1vdmVfdm9sYXRpbGVfaGVscGVyPAorICAgICAgICAgIHR5cGVuYW1lIGN2X3RyYWl0c19pbXA8VCo+Ojp1bnF1YWxpZmllZF90eXBlCisgICAgICAgICwgOjpuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlCisgICAgICAgID46OnR5cGUgdHlwZTsKK307CisKKy8vCisvLyBXZSBjYW4ndCBmaWx0ZXIgb3V0IHJ2YWx1ZV9yZWZlcmVuY2VzIGF0IHRoZSBzYW1lIGxldmVsIGFzCisvLyByZWZlcmVuY2VzIG9yIHdlIGdldCBhbWJpZ3VpdGllcyBmcm9tIG1zdmM6CisvLworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgcmVtb3ZlX3ZvbGF0aWxlX2ltcGw8VCYmPgoreworICAgIHR5cGVkZWYgVCYmIHR5cGU7Cit9OworI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gKiBjb252ZXJ0IGEgdHlwZSBUIHRvIGEgbm9uLXZvbGF0aWxlIHR5cGUgLSByZW1vdmVfdm9sYXRpbGU8VD4KKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShyZW1vdmVfdm9sYXRpbGUsVCx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpyZW1vdmVfdm9sYXRpbGVfaW1wbDxUPjo6dHlwZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV92b2xhdGlsZSxUJixUJikKKyNpZiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4scmVtb3ZlX3ZvbGF0aWxlLFQgdm9sYXRpbGVbTl0sVCB0eXBlW05dKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfdm9sYXRpbGUsVCBjb25zdCB2b2xhdGlsZVtOXSxUIGNvbnN0IHR5cGVbTl0pCisjZW5kaWYKKworI2VsaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX3ZvbGF0aWxlLFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX3ZvbGF0aWxlX2ltcGw8VD46OnR5cGUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9SRU1PVkVfVk9MQVRJTEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3NhbWVfdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvc2FtZV90cmFpdHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZTRiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3NhbWVfdHJhaXRzLmhwcApAQCAtMCwwICsxLDE1IEBACisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBBbGVrc2V5IEd1cnRvdm95LCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKy8vCisvLyAgZGVmaW5lcyBpc19zYW1lOgorCisjaWZuZGVmIEJPT1NUX1RUX1NBTUVfVFJBSVRTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9TQU1FX1RSQUlUU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorCisjZW5kaWYgIC8vIEJPT1NUX1RUX1NBTUVfVFJBSVRTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy90cmFuc2Zvcm1fdHJhaXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvdHJhbnNmb3JtX3RyYWl0cy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU0Y2NmNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZV90cmFpdHMvdHJhbnNmb3JtX3RyYWl0cy5ocHAKQEAgLTAsMCArMSwyMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisvLworLy8gIGRlZmluZXMgdHJhaXRzIGNsYXNzZXMgZm9yIHRyYW5zZm9ybWluZyBvbmUgdHlwZSB0byBhbm90aGVyOgorLy8gIHJlbW92ZV9yZWZlcmVuY2UsIGFkZF9yZWZlcmVuY2UsIHJlbW92ZV9ib3VuZHMsIHJlbW92ZV9wb2ludGVyLgorLy8KKworI2lmbmRlZiBCT09TVF9UVF9UUkFOU0ZPUk1fVFJBSVRTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9UUkFOU0ZPUk1fVFJBSVRTX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWRkX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9ib3VuZHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX1RSQU5TRk9STV9UUkFJVFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVfdHJhaXRzL3R5cGVfd2l0aF9hbGlnbm1lbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmI3ZjkxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcApAQCAtMCwwICsxLDM5OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX1RZUEVfV0lUSF9BTElHTk1FTlRfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfVFlQRV9XSVRIX0FMSUdOTUVOVF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdHJhbnNmb3JtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hcHBlbmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworI2lmZGVmIEJPT1NUX01TVkMKKyMgICBwcmFnbWEgd2FybmluZyhwdXNoKQorIyAgIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQxMjEpIC8vIGFsaWdubWVudCBpcyBzZW5zaXRpdmUgdG8gcGFja2luZworI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZm5kZWYgX19CT1JMQU5EQ19fCisKK25hbWVzcGFjZSBkZXRhaWwgeworCitjbGFzcyBhbGlnbm1lbnRfZHVtbXk7Cit0eXBlZGVmIHZvaWQgKCpmdW5jdGlvbl9wdHIpKCk7Cit0eXBlZGVmIGludCAoYWxpZ25tZW50X2R1bW15OjoqbWVtYmVyX3B0cik7Cit0eXBlZGVmIGludCAoYWxpZ25tZW50X2R1bW15OjoqbWVtYmVyX2Z1bmN0aW9uX3B0cikoKTsKKworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKKyNkZWZpbmUgQk9PU1RfVFRfQUxJR05NRU5UX0JBU0VfVFlQRVMgQk9PU1RfUFBfVFVQTEVfVE9fTElTVCggXAorICAgICAgICAxMiwgKCBcCisgICAgICAgIGNoYXIsIHNob3J0LCBpbnQsIGxvbmcsICA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSwgZmxvYXQsIGRvdWJsZSwgbG9uZyBkb3VibGUgXAorICAgICAgICAsIHZvaWQqLCBmdW5jdGlvbl9wdHIsIG1lbWJlcl9wdHIsIG1lbWJlcl9mdW5jdGlvbl9wdHIpKQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfVFRfQUxJR05NRU5UX0JBU0VfVFlQRVMgQk9PU1RfUFBfVFVQTEVfVE9fTElTVCggXAorICAgICAgICAxMSwgKCBcCisgICAgICAgIGNoYXIsIHNob3J0LCBpbnQsIGxvbmcsIGZsb2F0LCBkb3VibGUsIGxvbmcgZG91YmxlIFwKKyAgICAgICAgLCB2b2lkKiwgZnVuY3Rpb25fcHRyLCBtZW1iZXJfcHRyLCBtZW1iZXJfZnVuY3Rpb25fcHRyKSkKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX1RUX0hBU19PTkVfVChELERhdGEsVCkgbmRuYm9vc3Q6OmRldGFpbDo6aGFzX29uZV9UPCBUID4KKworI2RlZmluZSBCT09TVF9UVF9BTElHTk1FTlRfU1RSVUNUX1RZUEVTICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk0oQk9PU1RfVFRfSEFTX09ORV9ULCAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9UVF9BTElHTk1FTlRfQkFTRV9UWVBFUykKKworI2RlZmluZSBCT09TVF9UVF9BTElHTk1FTlRfVFlQRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfTElTVF9BUFBFTkQoQk9PU1RfVFRfQUxJR05NRU5UX0JBU0VfVFlQRVMsICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1RUX0FMSUdOTUVOVF9TVFJVQ1RfVFlQRVMpCisKKy8vCisvLyBsb3dlcl9hbGlnbm1lbnRfaGVscGVyIC0tCisvLworLy8gVGhpcyB0ZW1wbGF0ZSBnZXRzIGluc3RhbnRpYXRlZCBhIGxvdCwgc28gdXNlIHBhcnRpYWwKKy8vIHNwZWNpYWxpemF0aW9uIHdoZW4gYXZhaWxhYmxlIHRvIHJlZHVjZSB0aGUgY29tcGlsZXIgYnVyZGVuLgorLy8KKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCit0ZW1wbGF0ZSA8Ym9vbCBmb3VuZCA9IHRydWU+CitzdHJ1Y3QgbG93ZXJfYWxpZ25tZW50X2hlbHBlcl9pbXBsCit7CisgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90LCBjbGFzcz4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgY2hhciB0eXBlOworICAgICAgICBlbnVtIHsgdmFsdWUgPSB0cnVlIH07CisgICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgbG93ZXJfYWxpZ25tZW50X2hlbHBlcl9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlIDxzdGQ6OnNpemVfdCB0YXJnZXQsIGNsYXNzIFRlc3RUeXBlPgorICAgIHN0cnVjdCBhcHBseQorICAgICAgOiBwdWJsaWMgbXBsOjppZl9jPChhbGlnbm1lbnRfb2Y8VGVzdFR5cGU+Ojp2YWx1ZSA9PSB0YXJnZXQpLCBUZXN0VHlwZSwgY2hhcj4KKyAgICB7CisgICAgICAgIGVudW0geyB2YWx1ZSA9IChhbGlnbm1lbnRfb2Y8VGVzdFR5cGU+Ojp2YWx1ZSA9PSB0YXJnZXQpIH07CisgICAgfTsKK307CisKK3RlbXBsYXRlIDxib29sIGZvdW5kLCBzdGQ6OnNpemVfdCB0YXJnZXQsIGNsYXNzIFRlc3RUeXBlPgorc3RydWN0IGxvd2VyX2FsaWdubWVudF9oZWxwZXIKKyAgOiBwdWJsaWMgbG93ZXJfYWxpZ25tZW50X2hlbHBlcl9pbXBsPGZvdW5kPjo6dGVtcGxhdGUgYXBwbHk8dGFyZ2V0LFRlc3RUeXBlPgoreworfTsKKyNlbHNlCit0ZW1wbGF0ZSA8Ym9vbCBmb3VuZCwgc3RkOjpzaXplX3QgdGFyZ2V0LCBjbGFzcyBUZXN0VHlwZT4KK3N0cnVjdCBsb3dlcl9hbGlnbm1lbnRfaGVscGVyCit7CisgICAgdHlwZWRlZiBjaGFyIHR5cGU7CisgICAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OworfTsKKwordGVtcGxhdGUgPHN0ZDo6c2l6ZV90IHRhcmdldCwgY2xhc3MgVGVzdFR5cGU+CitzdHJ1Y3QgbG93ZXJfYWxpZ25tZW50X2hlbHBlcjxmYWxzZSx0YXJnZXQsVGVzdFR5cGU+Cit7CisgICAgZW51bSB7IHZhbHVlID0gKGFsaWdubWVudF9vZjxUZXN0VHlwZT46OnZhbHVlID09IHRhcmdldCkgfTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfYzx2YWx1ZSwgVGVzdFR5cGUsIGNoYXI+Ojp0eXBlIHR5cGU7Cit9OworI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfVFRfQ0hPT1NFX01JTl9BTElHTk1FTlQoUixQLEksVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlbmFtZSBsb3dlcl9hbGlnbm1lbnRfaGVscGVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgQk9PU1RfUFBfQ0FUKGZvdW5kLEkpLHRhcmdldCxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgPjo6dHlwZSBCT09TVF9QUF9DQVQodCxJKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbnVtIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9QUF9DQVQoZm91bmQsQk9PU1RfUFBfSU5DKEkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgPSBsb3dlcl9hbGlnbm1lbnRfaGVscGVyPEJPT1NUX1BQX0NBVChmb3VuZCxJKSx0YXJnZXQsVCA+Ojp2YWx1ZSAgXAorICAgICAgICB9OworCisjZGVmaW5lIEJPT1NUX1RUX0NIT09TRV9UKFIsUCxJLFQpIFQgQk9PU1RfUFBfQ0FUKHQsSSk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGhhc19vbmVfVAoreworICBUIGRhdGE7Cit9OworCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgdGFyZ2V0PgordW5pb24gbG93ZXJfYWxpZ25tZW50Cit7CisgICAgZW51bSB7IGZvdW5kMCA9IGZhbHNlIH07CisKKyAgICBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0koCisgICAgICAgICAgQk9PU1RfVFRfQ0hPT1NFX01JTl9BTElHTk1FTlQKKyAgICAgICAgLCBpZ25vcmVkCisgICAgICAgICwgQk9PU1RfVFRfQUxJR05NRU5UX1RZUEVTCisgICAgICAgICkKK307CisKK3VuaW9uIG1heF9hbGlnbgoreworICAgIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSSgKKyAgICAgICAgICBCT09TVF9UVF9DSE9PU0VfVAorICAgICAgICAsIGlnbm9yZWQKKyAgICAgICAgLCBCT09TVF9UVF9BTElHTk1FTlRfVFlQRVMKKyAgICAgICAgKQorfTsKKworI3VuZGVmIEJPT1NUX1RUX0FMSUdOTUVOVF9CQVNFX1RZUEVTCisjdW5kZWYgQk9PU1RfVFRfSEFTX09ORV9UCisjdW5kZWYgQk9PU1RfVFRfQUxJR05NRU5UX1NUUlVDVF9UWVBFUworI3VuZGVmIEJPT1NUX1RUX0FMSUdOTUVOVF9UWVBFUworI3VuZGVmIEJPT1NUX1RUX0NIT09TRV9NSU5fQUxJR05NRU5UCisjdW5kZWYgQk9PU1RfVFRfQ0hPT1NFX1QKKwordGVtcGxhdGU8c3RkOjpzaXplX3QgVEFsaWduLCBzdGQ6OnNpemVfdCBBbGlnbj4KK3N0cnVjdCBpc19hbGlnbmVkCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsCisgICAgICAgIHZhbHVlID0gKFRBbGlnbiA+PSBBbGlnbikgJiAoVEFsaWduICUgQWxpZ24gPT0gMCkKKyAgICAgICAgKTsKK307CisKKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Om1heF9hbGlnbix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9hbGlnbm1lbnQ8MT4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwyPiAsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmRldGFpbDo6bG93ZXJfYWxpZ25tZW50PDQ+ICx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9hbGlnbm1lbnQ8OD4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwxMD4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwxNj4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwzMj4gLHRydWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgordGVtcGxhdGU8c3RkOjpzaXplX3QgQWxpZ24+CitzdHJ1Y3QgaXNfcG9kPCA6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDxBbGlnbj4gPgoreworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gdHJ1ZSk7Cit9OworI2VuZGlmCisKKy8vIFRoaXMgYWxpZ25tZW50IG1ldGhvZCBvcmlnaW5hbGx5IGR1ZSB0byBCcmlhbiBQYXJrZXIsIGltcGxlbWVudGVkIGJ5IERhdmlkCisvLyBBYnJhaGFtcywgYW5kIHRoZW4gcG9ydGVkIGhlcmUgYnkgRG91ZyBHcmVnb3IuCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgQWxpZ24+CitjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50X2ltcAoreworICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9hbGlnbm1lbnQ8QWxpZ24+IHQxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfYWxpZ25lZDwgOjpuZG5ib29zdDo6YWxpZ25tZW50X29mPHQxPjo6dmFsdWUsQWxpZ24gPjo6dmFsdWUKKyAgICAgICAgLCB0MQorICAgICAgICAsIDo6bmRuYm9vc3Q6OmRldGFpbDo6bWF4X2FsaWduCisgICAgICAgID46OnR5cGUgYWxpZ25fdDsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgZm91bmQgPSBhbGlnbm1lbnRfb2Y8YWxpZ25fdD46OnZhbHVlKTsKKworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoZm91bmQgPj0gQWxpZ24pOworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoZm91bmQgJSBBbGlnbiA9PSAwKTsKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIGFsaWduX3QgdHlwZTsKK307CisKK30KKwordGVtcGxhdGUgPHN0ZDo6c2l6ZV90IEFsaWduPgorY2xhc3MgdHlwZV93aXRoX2FsaWdubWVudCAKKyAgOiBwdWJsaWMgOjpuZG5ib29zdDo6ZGV0YWlsOjp0eXBlX3dpdGhfYWxpZ25tZW50X2ltcDxBbGlnbj4KK3sKK307CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorbmFtZXNwYWNlIGFsaWduIHsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygyKSkpIGEyIHt9Oworc3RydWN0IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDQpKSkgYTQge307CitzdHJ1Y3QgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oOCkpKSBhOCB7fTsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKSBhMTYge307CitzdHJ1Y3QgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSkgYTMyIHt9Oworc3RydWN0IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDY0KSkpIGE2NCB7fTsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxMjgpKSkgYTEyOCB7fTsKK30KKwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDE+ICB7IHB1YmxpYzogdHlwZWRlZiBjaGFyIHR5cGU7IH07Cit0ZW1wbGF0ZTw+IGNsYXNzIHR5cGVfd2l0aF9hbGlnbm1lbnQ8Mj4gIHsgcHVibGljOiB0eXBlZGVmIGFsaWduOjphMiB0eXBlOyB9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDQ+ICB7IHB1YmxpYzogdHlwZWRlZiBhbGlnbjo6YTQgdHlwZTsgfTsKK3RlbXBsYXRlPD4gY2xhc3MgdHlwZV93aXRoX2FsaWdubWVudDw4PiAgeyBwdWJsaWM6IHR5cGVkZWYgYWxpZ246OmE4IHR5cGU7IH07Cit0ZW1wbGF0ZTw+IGNsYXNzIHR5cGVfd2l0aF9hbGlnbm1lbnQ8MTY+IHsgcHVibGljOiB0eXBlZGVmIGFsaWduOjphMTYgdHlwZTsgfTsKK3RlbXBsYXRlPD4gY2xhc3MgdHlwZV93aXRoX2FsaWdubWVudDwzMj4geyBwdWJsaWM6IHR5cGVkZWYgYWxpZ246OmEzMiB0eXBlOyB9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDY0PiB7IHB1YmxpYzogdHlwZWRlZiBhbGlnbjo6YTY0IHR5cGU7IH07Cit0ZW1wbGF0ZTw+IGNsYXNzIHR5cGVfd2l0aF9hbGlnbm1lbnQ8MTI4PiB7IHB1YmxpYzogdHlwZWRlZiBhbGlnbjo6YTEyOCB0eXBlOyB9OworCituYW1lc3BhY2UgZGV0YWlsIHsKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6YWxpZ246OmE0LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTgsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTYsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMzIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphNjQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTI4LHRydWUpCit9CisjZW5kaWYKKyNpZiAoZGVmaW5lZChCT09TVF9NU1ZDKSB8fCAoZGVmaW5lZChCT09TVF9JTlRFTCkgJiYgZGVmaW5lZChfTVNDX1ZFUikpKSAmJiBfTVNDX1ZFUiA+PSAxMzAwCisvLworLy8gTVNWQyBzdXBwb3J0cyB0eXBlcyB3aGljaCBoYXZlIGFsaWdubWVudHMgZ3JlYXRlciB0aGFuIHRoZSBub3JtYWwKKy8vIG1heGltdW06IHRoZXNlIGFyZSB1c2VkIGZvciBleGFtcGxlIGluIHRoZSB0eXBlcyBfX202NCBhbmQgX19tMTI4CisvLyB0byBwcm92aWRlIHR5cGVzIHdpdGggYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGljaCBtYXRjaCB0aGUgU1NFCisvLyByZWdpc3RlcnMuICBUaGVyZWZvcmUgd2UgZXh0ZW5kIHR5cGVfd2l0aF9hbGlnbm1lbnQ8PiB0byBzdXBwb3J0CisvLyBzdWNoIHR5cGVzLCBob3dldmVyLCB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgdG8gdXNlIGEgYnVpbHRpbiB0eXBlCisvLyB3aGVuZXZlciBwb3NzaWJsZSBvdGhlcndpc2Ugd2UgYnJlYWsgcHJldmlvdXNseSB3b3JraW5nIGNvZGU6CisvLyBzZWUgaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAubGliLmJvb3N0LmRldmVsLzE3MzAxMQorLy8gZm9yIGFuIGV4YW1wbGUgYW5kIHRlc3QgY2FzZS4gIFRodXMgdHlwZXMgbGlrZSBhOCBiZWxvdyB3aWxsCisvLyBiZSB1c2VkICpvbmx5KiBpZiB0aGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gY2FuJ3QgcHJvdmlkZSBhIHR5cGUKKy8vIHdpdGggc3VpdGFibGUgYWxpZ25tZW50LiAgVGhpcyBkb2VzIG1lYW4gaG93ZXZlciwgdGhhdCB0eXBlX3dpdGhfYWxpZ25tZW50PD4KKy8vIG1heSByZXR1cm4gYSB0eXBlIHdoaWNoIGNhbm5vdCBiZSBwYXNzZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIGNhbGwKKy8vIGJ5IHZhbHVlIChhbmQgbmVpdGhlciBjYW4gYW55IHR5cGUgY29udGFpbmluZyBzdWNoIGEgdHlwZSBsaWtlCisvLyBCb29zdC5PcHRpb25hbCkuICBIb3dldmVyLCB0aGlzIG9ubHkgaGFwcGVucyB3aGVuIHdlIGhhdmUgbm8gY2hvaWNlIAorLy8gaW4gdGhlIG1hdHRlciBiZWNhdXNlIG5vIG90aGVyICJvcmRpbmFyeSIgdHlwZSBpcyBhdmFpbGFibGUuCisvLworbmFtZXNwYWNlIGFsaWduIHsKK3N0cnVjdCBfX2RlY2xzcGVjKGFsaWduKDgpKSBhOCB7IAorICAgY2hhciBtWzhdOyAKKyAgIHR5cGVkZWYgYTggdHlwZTsKK307CitzdHJ1Y3QgX19kZWNsc3BlYyhhbGlnbigxNikpIGExNiB7IAorICAgY2hhciBtWzE2XTsgCisgICB0eXBlZGVmIGExNiB0eXBlOworfTsKK3N0cnVjdCBfX2RlY2xzcGVjKGFsaWduKDMyKSkgYTMyIHsgCisgICBjaGFyIG1bMzJdOyAKKyAgIHR5cGVkZWYgYTMyIHR5cGU7Cit9Oworc3RydWN0IF9fZGVjbHNwZWMoYWxpZ24oNjQpKSBhNjQgCit7IAorICAgY2hhciBtWzY0XTsgCisgICB0eXBlZGVmIGE2NCB0eXBlOworfTsKK3N0cnVjdCBfX2RlY2xzcGVjKGFsaWduKDEyOCkpIGExMjggeyAKKyAgIGNoYXIgbVsxMjhdOyAKKyAgIHR5cGVkZWYgYTEyOCB0eXBlOworfTsKK30KKwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDg+ICAKK3sgCisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDgsCisgICAgICBhbGlnbjo6YTgsCisgICAgICBuZG5ib29zdDo6ZGV0YWlsOjp0eXBlX3dpdGhfYWxpZ25tZW50X2ltcDw4PiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDE2PiAKK3sgCisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDE2LAorICAgICAgYWxpZ246OmExNiwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDE2PiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDMyPiAKK3sgCisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDMyLAorICAgICAgYWxpZ246OmEzMiwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDMyPiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDY0PiB7CisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDY0LAorICAgICAgYWxpZ246OmE2NCwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDY0PiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDEyOD4geworICAgdHlwZWRlZiBtcGw6OmlmX2M8CisgICAgICA6Om5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8bmRuYm9vc3Q6OmRldGFpbDo6bWF4X2FsaWduPjo6dmFsdWUgPCAxMjgsCisgICAgICBhbGlnbjo6YTEyOCwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDEyOD4gPjo6dHlwZSB0MTsgCitwdWJsaWM6IAorICAgdHlwZWRlZiB0MTo6dHlwZSB0eXBlOworfTsKKworbmFtZXNwYWNlIGRldGFpbCB7CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTgsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTYsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMzIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphNjQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTI4LHRydWUpCit9CisjZW5kaWYKKworI2Vsc2UKKworLy8KKy8vIEJvcmxhbmQgc3BlY2lmaWMgdmVyc2lvbiwgd2UgaGF2ZSB0aGlzIGZvciB0d28gcmVhc29uczoKKy8vIDEpIFRoZSB2ZXJzaW9uIGFib3ZlIGRvZXNuJ3QgYWx3YXlzIGNvbXBpbGUgKHdpdGggdGhlIG5ldyB0ZXN0IGNhc2VzIGZvciBleGFtcGxlKQorLy8gMikgQmVjYXVzZSBvZiBCb3JsYW5kcyAjcHJhZ21hIG9wdGlvbiB3ZSBjYW4gY3JlYXRlIHR5cGVzIHdpdGggYWxpZ25tZW50cyB0aGF0IGFyZQorLy8gICAgZ3JlYXRlciB0aGF0IHRoZSBsYXJnZXN0IGFsaWduZWQgYnVpbHRpbiB0eXBlLgorCituYW1lc3BhY2UgYWxpZ257CisjcHJhZ21hIG9wdGlvbiBwdXNoIC1hMTYKK3N0cnVjdCBhMnsgc2hvcnQgczsgfTsKK3N0cnVjdCBhNHsgaW50IHM7IH07CitzdHJ1Y3QgYTh7IGRvdWJsZSBzOyB9Oworc3RydWN0IGExNnsgbG9uZyBkb3VibGUgczsgfTsKKyNwcmFnbWEgb3B0aW9uIHBvcAorfQorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordHlwZWRlZiA6Om5kbmJvb3N0OjphbGlnbjo6YTE2IG1heF9hbGlnbjsKKworLy8jaWYgISBCT09TVF9XT1JLQVJPVU5EKF9fQ09ERUdFQVJDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphNCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6YWxpZ246OmE4LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTE2LHRydWUpCisvLyNlbmRpZgorfQorCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQKK3sKKyAgIC8vIFdlIHNob3VsZCBuZXZlciBnZXQgdG8gaGVyZSwgYnV0IGlmIHdlIGRvIHVzZSB0aGUgbWF4aW1hbGx5CisgICAvLyBhbGlnbmVkIHR5cGU6CisgICAvLyBCT09TVF9TVEFUSUNfQVNTRVJUKDApOworICAgdHlwZWRlZiBhbGlnbjo6YTE2IHR5cGU7Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQ8MT57IHR5cGVkZWYgY2hhciB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQ8Mj57IHR5cGVkZWYgYWxpZ246OmEyIHR5cGU7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgdHlwZV93aXRoX2FsaWdubWVudDw0PnsgdHlwZWRlZiBhbGlnbjo6YTQgdHlwZTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCB0eXBlX3dpdGhfYWxpZ25tZW50PDg+eyB0eXBlZGVmIGFsaWduOjphOCB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQ8MTY+eyB0eXBlZGVmIGFsaWduOjphMTYgdHlwZTsgfTsKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICAgcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9UWVBFX1dJVEhfQUxJR05NRU5UX0lOQ0xVREVECisKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvZG1jL3R5cGVvZl9pbXBsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2RtYy90eXBlb2ZfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3N2FiMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2RtYy90eXBlb2ZfaW1wbC5ocHAKQEAgLTAsMCArMSwxMDAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNyBQZWRlciBIb2x0CisKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9NU1ZDX1RZUEVPRl9JTVBMX0hQUF9JTkNMVURFRAorIyBkZWZpbmUgQk9PU1RfVFlQRU9GX01TVkNfVFlQRU9GX0lNUExfSFBQX0lOQ0xVREVECisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaW50LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgICAgbmFtZXNwYWNlIHR5cGVfb2YKKyAgICB7CisKKyAgICAgICAgdGVtcGxhdGU8aW50IE4+IHN0cnVjdCBlbmNvZGVfY291bnRlciA6IGVuY29kZV9jb3VudGVyPE4gLSAxPiB7fTsKKyAgICAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZW5jb2RlX2NvdW50ZXI8MD4ge307CisKKyAgICAgICAgY2hhciAoKmVuY29kZV9pbmRleCguLi4pKVsxXTsKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX0lOREVYKFQpIChzaXplb2YoKm5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfaW5kZXgoKG5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfY291bnRlcjwxMDAwPiopMCkpKQorIyBkZWZpbmUgQk9PU1RfVFlQRU9GX05FWFRfSU5ERVgobmV4dCkgZnJpZW5kIGNoYXIgKCplbmNvZGVfaW5kZXgoZW5jb2RlX2NvdW50ZXI8bmV4dD4qKSlbbmV4dF07CisKKworICAgICAgICAvL1R5cGVvZiBjb2RlCisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX2V4dHJhY3RfdHlwZQorICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgaWQydHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBJRD4KKyAgICAgICAgc3RydWN0IG1zdmNfcmVnaXN0ZXJfdHlwZSA6IG1zdmNfZXh0cmFjdF90eXBlPElEPgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIG1zdmNfZXh0cmFjdF90eXBlPElEPiBiYXNlX3R5cGU7CisgICAgICAgICAgICBzdHJ1Y3QgYmFzZV90eXBlOjppZDJ0eXBlIC8vIFRoaXMgdXNlcyBuaWNlIFZDNi41IGFuZCBWQzcuMSBidWdmZWF0dXJlLCBhbHNvIHdvcmtzIGZvciBEaWdpdGFsIE1hcnMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKworICAgICAgICB0ZW1wbGF0ZTxpbnQgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX3R5cGVpZF93cmFwcGVyIHsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8bXBsOjppbnRfPElEPiA+OjppZDJ0eXBlIGlkMnR5cGU7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICAvL1RpZSBpdCBhbGwgdG9nZXRoZXIKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IGVuY29kZV90eXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vR2V0IHRoZSBuZXh0IGF2YWlsYWJsZSBjb21waWxlIHRpbWUgY29uc3RhbnRzIGluZGV4CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsdmFsdWU9Qk9PU1RfVFlQRU9GX0lOREVYKFQpKTsKKyAgICAgICAgICAgIC8vSW5zdGFudGlhdGUgdGhlIHRlbXBsYXRlCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfcmVnaXN0ZXJfdHlwZTxULG1wbDo6aW50Xzx2YWx1ZT4gPjo6aWQydHlwZSB0eXBlOworICAgICAgICAgICAgLy9TZXQgdGhlIG5leHQgY29tcGlsZSB0aW1lIGNvbnN0YW50cyBpbmRleAorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLG5leHQ9dmFsdWUrMSk7CisgICAgICAgICAgICAvL0luY3JlbWVudCB0aGUgY29tcGlsZSB0aW1lIGNvbnN0YW50IChvbmx5IG5lZWRlZCB3aGVuIGV4dGVuc2lvbnMgYXJlIG5vdCBhY3RpdmUKKyAgICAgICAgICAgIEJPT1NUX1RZUEVPRl9ORVhUX0lOREVYKG5leHQpOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdCBzaXplcgorICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGNoYXIoKnR5cGUpW2VuY29kZV90eXBlPFQ+Ojp2YWx1ZV07CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHR5cGVuYW1lIHNpemVyPFQ+Ojp0eXBlIGVuY29kZV9zdGFydChUIGNvbnN0Jik7CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3JnYW5pemVyLCB0eXBlbmFtZSBUPgorICAgICAgICBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxPcmdhbml6ZXI+IHR5cGVvZl9yZWdpc3Rlcl90eXBlKGNvbnN0IFQmLE9yZ2FuaXplciogPTApOworCisjIGRlZmluZSBCT09TVF9UWVBFT0YoZXhwcikgXAorICAgIG5kbmJvb3N0Ojp0eXBlX29mOjptc3ZjX3R5cGVpZF93cmFwcGVyPHNpemVvZigqbmRuYm9vc3Q6OnR5cGVfb2Y6OmVuY29kZV9zdGFydChleHByKSk+Ojp0eXBlCisKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9UUEwoZXhwcikgdHlwZW5hbWUgQk9PU1RfVFlQRU9GKGV4cHIpCisKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRl9UUEwobmFtZSxleHByKSBcCisgICAgc3RydWN0IG5hbWUge1wKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCxfdHlwZW9mX3JlZ2lzdGVyX3ZhbHVlPXNpemVvZihuZG5ib29zdDo6dHlwZV9vZjo6dHlwZW9mX3JlZ2lzdGVyX3R5cGU8bmFtZT4oZXhwcikpKTtcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnR5cGVfb2Y6Om1zdmNfZXh0cmFjdF90eXBlPG5hbWU+OjppZDJ0eXBlIGlkMnR5cGU7XAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlkMnR5cGU6OnR5cGUgdHlwZTtcCisgICAgfTsKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGKG5hbWUsZXhwcikgXAorICAgIHN0cnVjdCBuYW1lIHtcCisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsX3R5cGVvZl9yZWdpc3Rlcl92YWx1ZT1zaXplb2YobmRuYm9vc3Q6OnR5cGVfb2Y6OnR5cGVvZl9yZWdpc3Rlcl90eXBlPG5hbWU+KGV4cHIpKSk7XAorICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjptc3ZjX2V4dHJhY3RfdHlwZTxuYW1lPjo6aWQydHlwZSBpZDJ0eXBlO1wKKyAgICAgICAgdHlwZWRlZiBpZDJ0eXBlOjp0eXBlIHR5cGU7XAorICAgIH07CisKKyAgICB9Cit9CisKKyNlbmRpZi8vQk9PU1RfVFlQRU9GX01TVkNfVFlQRU9GX0lNUExfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9lbmNvZGVfZGVjb2RlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhMWQ2MmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9lbmNvZGVfZGVjb2RlLmhwcApAQCAtMCwwICsxLDYxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgQXJrYWRpeSBWZXJ0bGV5YgorCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gYm9vc3RpbnNwZWN0Om5vdW5uYW1lZAorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9FTkNPREVfREVDT0RFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfRU5DT0RFX0RFQ09ERV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9kZXJlZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL25leHQuaHBwPgorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9TVVBQUkVTU19VTk5BTUVEX05BTUVTUEFDRQorCisjICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9CRUdJTl9FTkNPREVfTlMgbmFtZXNwYWNlIHsgbmFtZXNwYWNlIG5kbmJvb3N0X3R5cGVvZiB7CisjICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTkRfRU5DT0RFX05TIH19CisjICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTkNPREVfTlNfUVVBTElGSUVSIG5kbmJvb3N0X3R5cGVvZgorCisjZWxzZQorCisjICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9CRUdJTl9FTkNPREVfTlMgbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworIyAgIGRlZmluZSBCT09TVF9UWVBFT0ZfRU5EX0VOQ09ERV9OUyB9fQorIyAgIGRlZmluZSBCT09TVF9UWVBFT0ZfRU5DT0RFX05TX1FVQUxJRklFUiBuZG5ib29zdDo6dHlwZV9vZgorCisjICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9URVhUICJ1bm5hbWVkIG5hbWVzcGFjZSBpcyBvZmYiCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL21lc3NhZ2UuaHBwPgorCisjZW5kaWYKKworQk9PU1RfVFlQRU9GX0JFR0lOX0VOQ09ERV9OUworCit0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBUeXBlX05vdF9SZWdpc3RlcmVkX1dpdGhfVHlwZW9mX1N5c3RlbT4KK3N0cnVjdCBlbmNvZGVfdHlwZV9pbXBsOworCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBJdGVyPgorc3RydWN0IGRlY29kZV90eXBlX2ltcGwKK3sKKyAgICB0eXBlZGVmIGludCB0eXBlOyAgLy8gTVNWQyBFVEkgd29ya2Fyb3VuZAorfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0cnVjdCBkZWNvZGVfbmVzdGVkX3RlbXBsYXRlX2hlbHBlcl9pbXBsOworCitCT09TVF9UWVBFT0ZfRU5EX0VOQ09ERV9OUworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBUPgorICAgIHN0cnVjdCBlbmNvZGVfdHlwZSA6IEJPT1NUX1RZUEVPRl9FTkNPREVfTlNfUVVBTElGSUVSOjplbmNvZGVfdHlwZV9pbXBsPFYsIFQ+CisgICAge307CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyPgorICAgIHN0cnVjdCBkZWNvZGVfdHlwZSA6IEJPT1NUX1RZUEVPRl9FTkNPREVfTlNfUVVBTElGSUVSOjpkZWNvZGVfdHlwZV9pbXBsPAorICAgICAgICB0eXBlbmFtZSBJdGVyOjp0eXBlLAorICAgICAgICB0eXBlbmFtZSBJdGVyOjpuZXh0CisgICAgPgorICAgIHt9OworfX0KKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfRU5DT0RFX0RFQ09ERV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGVfcGFyYW1zLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGVfcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTU3YTg0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvZW5jb2RlX2RlY29kZV9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNSBBcmthZGl5IFZlcnRsZXliCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfRU5DT0RFX0RFQ09ERV9QQVJBTVNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RZUEVPRl9FTkNPREVfREVDT0RFX1BBUkFNU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHA+CisKKy8vIEFzc3VtZXMgaXRlcjAgY29udGFpbnMgaW5pdGlhbCBpdGVyYXRvcgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9ERUNPREVfUEFSQU0oeiwgbiwgdGV4dCkgICBcCisgICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6ZGVjb2RlX3R5cGU8aXRlciMjbj4gZGVjb2RlIyNuOyAgICAgXAorICAgIHR5cGVkZWYgdHlwZW5hbWUgZGVjb2RlIyNuOjp0eXBlIHAjI247ICAgICAgXAorICAgIHR5cGVkZWYgdHlwZW5hbWUgZGVjb2RlIyNuOjppdGVyIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9JTkMobikpOworCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9ERUNPREVfUEFSQU1TKG4pXAorICAgIEJPT1NUX1BQX1JFUEVBVChuLCBCT09TVF9UWVBFT0ZfREVDT0RFX1BBUkFNLCB+KQorCisvLyBUaGUgUDAsIFAxLCAuLi4gUE4gYXJlIGVuY29kZWQgYW5kIGFkZGVkIHRvIFYgCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0VOQ09ERV9QQVJBTVNfQkVHSU4oeiwgbiwgdGV4dClcCisgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnR5cGVfb2Y6OmVuY29kZV90eXBlPAorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9FTkNPREVfUEFSQU1TX0VORCh6LCBuLCB0ZXh0KVwKKyAgICAsIEJPT1NUX1BQX0NBVChQLCBuKT46OnR5cGUKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfRU5DT0RFX1BBUkFNUyhuLCBJRCkgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1BQX1JFUEVBVChuLCBCT09TVF9UWVBFT0ZfRU5DT0RFX1BBUkFNU19CRUdJTiwgfikgXAorICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjpwdXNoX2JhY2s8ViwgbmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiA+Ojp0eXBlICAgICAgXAorICAgIEJPT1NUX1BQX1JFUEVBVChuLCBCT09TVF9UWVBFT0ZfRU5DT0RFX1BBUkFNU19FTkQsIH4pCisKKyNlbmRpZi8vQk9PU1RfVFlQRU9GX0VOQ09ERV9ERUNPREVfUEFSQU1TX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvaW50X2VuY29kaW5nLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2ludF9lbmNvZGluZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFjY2RkYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2ludF9lbmNvZGluZy5ocHAKQEAgLTAsMCArMSwxMTggQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBBcmthZGl5IFZlcnRsZXliCisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfSU5UX0VOQ09ESU5HX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5UX0VOQ09ESU5HX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZV90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgZ2V0X3Vuc2lnbmVkCisgICAgeworICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICB9OworICAgIHRlbXBsYXRlPD4gc3RydWN0IGdldF91bnNpZ25lZDxzaWduZWQgY2hhcj4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdW5zaWduZWQgY2hhciB0eXBlOworICAgIH07CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZ2V0X3Vuc2lnbmVkPGNoYXI+CisgICAgeworICAgICAgICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdHlwZTsKKyAgICB9OworICAgIHRlbXBsYXRlPD4gc3RydWN0IGdldF91bnNpZ25lZDxzaG9ydD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdHlwZTsKKyAgICB9OworICAgIHRlbXBsYXRlPD4gc3RydWN0IGdldF91bnNpZ25lZDxpbnQ+CisgICAgeworICAgICAgICB0eXBlZGVmIHVuc2lnbmVkIGludCB0eXBlOworICAgIH07CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZ2V0X3Vuc2lnbmVkPGxvbmc+CisgICAgeworICAgICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdHlwZTsKKyAgICB9OworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIHRlbXBsYXRlPHN0ZDo6c2l6ZV90IG4sIGJvb2wgT3ZlcmZsb3c+CisgICAgc3RydWN0IHBhY2sKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCAsIHZhbHVlPSgobiArIDEpICogMiArIChPdmVyZmxvdyA/IDEgOiAwKSkpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTxzdGQ6OnNpemVfdCBtPgorICAgIHN0cnVjdCB1bnBhY2sKKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPSAobSAvIDIpIC0gMSk7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgb3ZlcmZsb3cgPSAobSAlIDIgPT0gMSkpOworICAgIH07CisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgdGVtcGxhdGU8Y2xhc3MgViwgc3RkOjpzaXplX3QgbiwgYm9vbCBvdmVyZmxvdyA9IChuID49IDB4M2ZmZmZmZmYpPgorICAgIHN0cnVjdCBlbmNvZGVfc2l6ZV90IDogcHVzaF9iYWNrPAorICAgICAgICBWLAorICAgICAgICBuZG5ib29zdDo6bXBsOjpzaXplX3Q8cGFjazxuLCBmYWxzZT46OnZhbHVlPgorICAgID4KKyAgICB7fTsKKworICAgIHRlbXBsYXRlPGNsYXNzIFYsIHN0ZDo6c2l6ZV90IG4+CisgICAgc3RydWN0IGVuY29kZV9zaXplX3Q8ViwgbiwgdHJ1ZT4gOiBwdXNoX2JhY2s8dHlwZW5hbWUgcHVzaF9iYWNrPAorICAgICAgICBWLAorICAgICAgICBuZG5ib29zdDo6bXBsOjpzaXplX3Q8cGFjazxuICUgMHgzZmZmZmZmZSwgdHJ1ZT46OnZhbHVlPiA+Ojp0eXBlLAorICAgICAgICBuZG5ib29zdDo6bXBsOjpzaXplX3Q8biAvIDB4M2ZmZmZmZmU+CisgICAgPgorICAgIHt9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgVCwgVCBuPgorICAgIHN0cnVjdCBlbmNvZGVfaW50ZWdyYWwgOiBlbmNvZGVfc2l6ZV90PCBWLCAodHlwZW5hbWUgZ2V0X3Vuc2lnbmVkPFQ+Ojp0eXBlKW4sKCgodHlwZW5hbWUgZ2V0X3Vuc2lnbmVkPFQ+Ojp0eXBlKW4pPj0weDNmZmZmZmZmKSA+CisgICAge307CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBib29sIGI+CisgICAgc3RydWN0IGVuY29kZV9pbnRlZ3JhbDxWLCBib29sLCBiPiA6IGVuY29kZV9zaXplX3Q8IFYsIGI/MTowLCBmYWxzZT4KKyAgICB7fTsKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIHRlbXBsYXRlPHN0ZDo6c2l6ZV90IG4sIGNsYXNzIEl0ZXIsIGJvb2wgb3ZlcmZsb3c+CisgICAgc3RydWN0IGRlY29kZV9zaXplX3Q7CisKKyAgICB0ZW1wbGF0ZTxzdGQ6OnNpemVfdCBuLCBjbGFzcyBJdGVyPgorICAgIHN0cnVjdCBkZWNvZGVfc2l6ZV90PG4sIEl0ZXIsIGZhbHNlPgorICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LHZhbHVlID0gbik7CisgICAgICAgIHR5cGVkZWYgSXRlciBpdGVyOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTxzdGQ6OnNpemVfdCBuLCBjbGFzcyBJdGVyPgorICAgIHN0cnVjdCBkZWNvZGVfc2l6ZV90PG4sIEl0ZXIsIHRydWU+CisgICAgeworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsbSA9IEl0ZXI6OnR5cGU6OnZhbHVlKTsKKworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsdmFsdWUgPSAoc3RkOjpzaXplX3QpbSAqIDB4M2ZmZmZmZmUgKyBuKTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyOjpuZXh0IGl0ZXI7CisgICAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIEl0ZXI+CisgICAgc3RydWN0IGRlY29kZV9pbnRlZ3JhbAorICAgIHsKKyAgICAgICAgdHlwZWRlZiBkZWNvZGVfaW50ZWdyYWw8VCxJdGVyPiBzZWxmX3Q7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCxtID0gSXRlcjo6dHlwZTo6dmFsdWUpOworCisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCxuID0gdW5wYWNrPG0+Ojp2YWx1ZSk7CisKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LG92ZXJmbG93ID0gdW5wYWNrPG0+OjpvdmVyZmxvdyk7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyOjpuZXh0IG5leHRwb3M7CisKKyAgICAgICAgc3RhdGljIGNvbnN0IFQgdmFsdWUgPSAoVCkoc3RkOjpzaXplX3QpZGVjb2RlX3NpemVfdDxuLCBuZXh0cG9zLCBvdmVyZmxvdz46OnZhbHVlOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGVjb2RlX3NpemVfdDxzZWxmX3Q6Om4sIG5leHRwb3MsIHNlbGZfdDo6b3ZlcmZsb3c+OjppdGVyIGl0ZXI7CisgICAgfTsKKworfX0vL25hbWVzcGFjZQorCisjZW5kaWYvL0JPT1NUX1RZUEVPRl9JTlRfRU5DT0RJTkdfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9pbnRlZ3JhbF90ZW1wbGF0ZV9wYXJhbS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9pbnRlZ3JhbF90ZW1wbGF0ZV9wYXJhbS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ2YTNkMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL2ludGVncmFsX3RlbXBsYXRlX3BhcmFtLmhwcApAQCAtMCwwICsxLDgwIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgQXJrYWRpeSBWZXJ0bGV5YgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1RFTVBMQVRFX1BBUkFNX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5URUdSQUxfVEVNUExBVEVfUEFSQU1fSFBQX0lOQ0xVREVECisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3Vuc2lnbmVkICh1bnNpZ25lZCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3NpZ25lZCAoc2lnbmVkKQorCisjZGVmaW5lIGNoYXJfQk9PU1RfVFlQRU9GIChjaGFyKQorI2RlZmluZSBzaG9ydF9CT09TVF9UWVBFT0YgKHNob3J0KQorI2RlZmluZSBpbnRfQk9PU1RfVFlQRU9GIChpbnQpCisjZGVmaW5lIGxvbmdfQk9PU1RfVFlQRU9GIChsb25nKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9jaGFyX0JPT1NUX1RZUEVPRiAoY2hhcikKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3Nob3J0X0JPT1NUX1RZUEVPRiAoc2hvcnQpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9pbnRfQk9PU1RfVFlQRU9GIChpbnQpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9sb25nX0JPT1NUX1RZUEVPRiAobG9uZykKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX2Jvb2xfQk9PU1RfVFlQRU9GIChib29sKQorI2RlZmluZSBCT09TVF9UWVBFT0ZfdW5zaWduZWRfQk9PU1RfVFlQRU9GICh1bnNpZ25lZCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3NpemVfdF9CT09TVF9UWVBFT0YgKHNpemVfdCkKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfTUFLRV9PQkpfY2hhciAgICAgICAgICBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU0oY2hhcikKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3Nob3J0ICAgICAgICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHNob3J0KQorI2RlZmluZSBCT09TVF9UWVBFT0ZfTUFLRV9PQkpfaW50ICAgICAgICAgICBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU0oaW50KQorI2RlZmluZSBCT09TVF9UWVBFT0ZfTUFLRV9PQkpfbG9uZyAgICAgICAgICBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU0obG9uZykKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX2Jvb2wgICAgICAgICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKGJvb2wpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9NQUtFX09CSl91bnNpZ25lZCAgICAgIEJPT1NUX1RZUEVPRl9JTlRFR1JBTF9QQVJBTSh1bnNpZ25lZCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3NpemVfdCAgICAgICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHNpemVfdCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3Vuc2lnbmVkY2hhciAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHVuc2lnbmVkIGNoYXIpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9NQUtFX09CSl91bnNpZ25lZHNob3J0IEJPT1NUX1RZUEVPRl9JTlRFR1JBTF9QQVJBTSh1bnNpZ25lZCBzaG9ydCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3Vuc2lnbmVkaW50ICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHVuc2lnbmVkIGludCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3Vuc2lnbmVkbG9uZyAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHVuc2lnbmVkIGxvbmcpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9NQUtFX09CSl9zaWduZWRjaGFyICAgIEJPT1NUX1RZUEVPRl9JTlRFR1JBTF9QQVJBTShzaWduZWQgY2hhcikKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3NpZ25lZHNob3J0ICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHNpZ25lZCBzaG9ydCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3NpZ25lZGludCAgICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHNpZ25lZCBpbnQpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9NQUtFX09CSl9zaWduZWRsb25nICAgIEJPT1NUX1RZUEVPRl9JTlRFR1JBTF9QQVJBTShzaWduZWQgbG9uZykKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX2ludGVncmFsKHgpICAgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNKHgpCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0lOVEVHUkFMKFgpIGludGVncmFsKFgpIEJPT1NUX1RZUEVPRl9FQVQKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0VBVF9CT09TVF9UWVBFT0YKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX2ludGVncmFsKFgpIChpbnRlZ3JhbChYKSkKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU0oVHlwZSlcCisgICAgKElOVEVHUkFMX1BBUkFNKVwKKyAgICAoVHlwZSkKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fR0VUVFlQRShQYXJhbSlcCisgICAgQk9PU1RfUFBfU0VRX0VMRU0oMSwgUGFyYW0pCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNX0VYUEFORFRZUEUoUGFyYW0pXAorICAgIEJPT1NUX1RZUEVPRl9JTlRFR1JBTF9QQVJBTV9HRVRUWVBFKFBhcmFtKQorCisvLyBJTlRFR1JBTF9QQVJBTSAidmlydHVhbCBmdW5jdGlvbnMiIGltcGxlbWVudGF0aW9uCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNX0VOQ09ERShUaGlzLCBuKVwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfaW50ZWdyYWw8XAorICAgICAgICBCT09TVF9QUF9DQVQoViwgbiksXAorICAgICAgICBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fR0VUVFlQRShUaGlzKSxcCisgICAgICAgIEJPT1NUX1BQX0NBVChQLCBuKVwKKyAgICA+Ojp0eXBlIEJPT1NUX1BQX0NBVChWLCBCT09TVF9QUF9JTkMobikpOyAKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fREVDT0RFKFRoaXMsIG4pXAorICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OmRlY29kZV9pbnRlZ3JhbDxCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fR0VUVFlQRShUaGlzKSwgQk9PU1RfUFBfQ0FUKGl0ZXIsIG4pPiBCT09TVF9QUF9DQVQoZCwgbik7XAorICAgIHN0YXRpYyBjb25zdCBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fR0VUVFlQRShUaGlzKSBCT09TVF9QUF9DQVQoUCwgbikgPSBCT09TVF9QUF9DQVQoZCwgbik6OnZhbHVlO1wKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX1BQX0NBVChkLCBuKTo6aXRlciBCT09TVF9QUF9DQVQoaXRlciwgQk9PU1RfUFBfSU5DKG4pKTsKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fUExBQ0VIT0xERVIoUGFyYW0pXAorICAgIChCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fR0VUVFlQRShQYXJhbSkpMAorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9JTlRFR1JBTF9QQVJBTV9ERUNMQVJBVElPTl9UWVBFKFBhcmFtKVwKKyAgICBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fR0VUVFlQRShQYXJhbSkKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfSU5URUdSQUxfUEFSQU1fUExBQ0VIT0xERVJfVFlQRVMoUGFyYW0sIG4pXAorICAgIEJPT1NUX1BQX0NBVChULG4pCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0lOVEVHUkFMX1BBUkFNX0lTVEVNUExBVEUgMAorCisjZW5kaWYvL0JPT1NUX1RZUEVPRl9JTlRFR1JBTF9URU1QTEFURV9QQVJBTV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL21lc3NhZ2UuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvbWVzc2FnZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FiYmI4MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL21lc3NhZ2UuaHBwCkBAIC0wLDAgKzEsOCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA1IEFya2FkaXkgVmVydGxleWIKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5lZCBCT09TVF9UWVBFT0ZfTUVTU0FHRVMKKyMgICAgcHJhZ21hIG1lc3NhZ2UoQk9PU1RfVFlQRU9GX1RFWFQpCisjZW5kaWYKKyN1bmRlZiBCT09TVF9UWVBFT0ZfVEVYVApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvbW9kaWZpZXJzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL21vZGlmaWVycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZkNjVkZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL21vZGlmaWVycy5ocHAKQEAgLTAsMCArMSwxMjEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBBcmthZGl5IFZlcnRsZXliCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfTU9ESUZJRVJTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfTU9ESUZJRVJTX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2lkZW50aXR5LmhwcD4KKworI2luY2x1ZGUgQk9PU1RfVFlQRU9GX0lOQ1JFTUVOVF9SRUdJU1RSQVRJT05fR1JPVVAoKQorCisvLyBtb2RpZmllcnMKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfbW9kaWZpZXJfc3VwcG9ydChJRCwgRnVuKVwKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBUPiBzdHJ1Y3QgZW5jb2RlX3R5cGVfaW1wbDxWLCBGdW4oVCk+XAorICAgIHtcCisgICAgICAgIHR5cGVkZWZcCisgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV9vZjo6ZW5jb2RlX3R5cGU8XAorICAgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnR5cGVfb2Y6OnB1c2hfYmFjazxcCisgICAgICAgICAgICBWXAorICAgICAgICAgICAgLCBuZG5ib29zdDo6bXBsOjpzaXplX3Q8SUQ+ID46OnR5cGVcCisgICAgICAgICAgICAsIFQ+Ojp0eXBlXAorICAgICAgICAgICAgdHlwZTtcCisgICAgfTtcCisgICAgdGVtcGxhdGU8Y2xhc3MgSXRlcj4gc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiwgSXRlcj5cCisgICAge1wKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6ZGVjb2RlX3R5cGU8SXRlcj4gZDE7XAorICAgICAgICB0eXBlZGVmIEZ1bih0eXBlbmFtZSBkMTo6dHlwZSkgdHlwZTtcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZDE6Oml0ZXIgaXRlcjtcCisgICAgfQorCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX2NvbnN0X2Z1bihUKSBjb25zdCBUCisjZGVmaW5lIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9mdW4oVCkgdm9sYXRpbGUgVAorI2RlZmluZSBCT09TVF9UWVBFT0Zfdm9sYXRpbGVfY29uc3RfZnVuKFQpIHZvbGF0aWxlIGNvbnN0IFQKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3BvaW50ZXJfZnVuKFQpIFQqCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9yZWZlcmVuY2VfZnVuKFQpIFQmCisKKyNpZiBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA8IDB4NjAwKQorLy9Cb3JsYW5kIGluY29ycmVjdGx5IGhhbmRsZXMgVCBjb25zdCwgVCBjb25zdCB2b2xhdGlsZSBhbmQgVCB2b2xhdGlsZS4KKy8vSXQgZHJvcHMgdGhlIGRlY29yYXRpb24gbm8gbWF0dGVyIHdoYXQsIHNvIHdlIG5lZWQgdG8gdHJ5IHRvIGhhbmRsZSBUKiBjb25zdCBldGMuIHdpdGhvdXQgbG9vc2luZyB0aGUgdG9wIG1vZGlmaWVyLgorI2RlZmluZSBCT09TVF9UWVBFT0ZfY29uc3RfcG9pbnRlcl9mdW4oVCkgVCBjb25zdCAqCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9jb25zdF9yZWZlcmVuY2VfZnVuKFQpIFQgY29uc3QgJgorI2RlZmluZSBCT09TVF9UWVBFT0Zfdm9sYXRpbGVfcG9pbnRlcl9mdW4oVCkgVCB2b2xhdGlsZSoKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3ZvbGF0aWxlX3JlZmVyZW5jZV9mdW4oVCkgVCB2b2xhdGlsZSYKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3ZvbGF0aWxlX2NvbnN0X3BvaW50ZXJfZnVuKFQpIFQgdm9sYXRpbGUgY29uc3QgKgorI2RlZmluZSBCT09TVF9UWVBFT0Zfdm9sYXRpbGVfY29uc3RfcmVmZXJlbmNlX2Z1bihUKSBUIHZvbGF0aWxlIGNvbnN0ICYKKyNlbmRpZgorCitCT09TVF9UWVBFT0ZfQkVHSU5fRU5DT0RFX05TCisKK0JPT1NUX1RZUEVPRl9tb2RpZmllcl9zdXBwb3J0KEJPT1NUX1RZUEVPRl9VTklRVUVfSUQoKSwgQk9PU1RfVFlQRU9GX2NvbnN0X2Z1bik7CitCT09TVF9UWVBFT0ZfbW9kaWZpZXJfc3VwcG9ydChCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9mdW4pOworQk9PU1RfVFlQRU9GX21vZGlmaWVyX3N1cHBvcnQoQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpLCBCT09TVF9UWVBFT0Zfdm9sYXRpbGVfY29uc3RfZnVuKTsKK0JPT1NUX1RZUEVPRl9tb2RpZmllcl9zdXBwb3J0KEJPT1NUX1RZUEVPRl9VTklRVUVfSUQoKSwgQk9PU1RfVFlQRU9GX3BvaW50ZXJfZnVuKTsKK0JPT1NUX1RZUEVPRl9tb2RpZmllcl9zdXBwb3J0KEJPT1NUX1RZUEVPRl9VTklRVUVfSUQoKSwgQk9PU1RfVFlQRU9GX3JlZmVyZW5jZV9mdW4pOworCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKK0JPT1NUX1RZUEVPRl9tb2RpZmllcl9zdXBwb3J0KEJPT1NUX1RZUEVPRl9VTklRVUVfSUQoKSwgQk9PU1RfVFlQRU9GX2NvbnN0X3BvaW50ZXJfZnVuKTsKK0JPT1NUX1RZUEVPRl9tb2RpZmllcl9zdXBwb3J0KEJPT1NUX1RZUEVPRl9VTklRVUVfSUQoKSwgQk9PU1RfVFlQRU9GX2NvbnN0X3JlZmVyZW5jZV9mdW4pOworQk9PU1RfVFlQRU9GX21vZGlmaWVyX3N1cHBvcnQoQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpLCBCT09TVF9UWVBFT0Zfdm9sYXRpbGVfcG9pbnRlcl9mdW4pOworQk9PU1RfVFlQRU9GX21vZGlmaWVyX3N1cHBvcnQoQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpLCBCT09TVF9UWVBFT0Zfdm9sYXRpbGVfcmVmZXJlbmNlX2Z1bik7CitCT09TVF9UWVBFT0ZfbW9kaWZpZXJfc3VwcG9ydChCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9jb25zdF9wb2ludGVyX2Z1bik7CitCT09TVF9UWVBFT0ZfbW9kaWZpZXJfc3VwcG9ydChCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9jb25zdF9yZWZlcmVuY2VfZnVuKTsKKyNlbmRpZgorCitCT09TVF9UWVBFT0ZfRU5EX0VOQ09ERV9OUworCisjdW5kZWYgQk9PU1RfVFlQRU9GX21vZGlmaWVyX3N1cHBvcnQKKyN1bmRlZiBCT09TVF9UWVBFT0ZfY29uc3RfZnVuCisjdW5kZWYgQk9PU1RfVFlQRU9GX3ZvbGF0aWxlX2Z1bgorI3VuZGVmIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9jb25zdF9mdW4KKyN1bmRlZiBCT09TVF9UWVBFT0ZfcG9pbnRlcl9mdW4KKyN1bmRlZiBCT09TVF9UWVBFT0ZfcmVmZXJlbmNlX2Z1bgorCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKKyN1bmRlZiBCT09TVF9UWVBFT0ZfY29uc3RfcG9pbnRlcl9mdW4KKyN1bmRlZiBCT09TVF9UWVBFT0ZfY29uc3RfcmVmZXJlbmNlX2Z1bgorI3VuZGVmIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9wb2ludGVyX2Z1bgorI3VuZGVmIEJPT1NUX1RZUEVPRl92b2xhdGlsZV9yZWZlcmVuY2VfZnVuCisjdW5kZWYgQk9PU1RfVFlQRU9GX3ZvbGF0aWxlX2NvbnN0X3BvaW50ZXJfZnVuCisjdW5kZWYgQk9PU1RfVFlQRU9GX3ZvbGF0aWxlX2NvbnN0X3JlZmVyZW5jZV9mdW4KKyNlbmRpZgorCisvLyBhcnJheXMKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfYXJyYXlfc3VwcG9ydChJRCwgUXVhbGlmaWVyKVwKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBULCBpbnQgTj5cCisgICAgc3RydWN0IGVuY29kZV90eXBlX2ltcGw8ViwgUXVhbGlmaWVyKCkgVFtOXT5cCisgICAge1wKKyAgICAgICAgdHlwZWRlZlwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfdHlwZTxcCisgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV9vZjo6cHVzaF9iYWNrPFwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjpwdXNoX2JhY2s8XAorICAgICAgICAgICAgVlwKKyAgICAgICAgICAgICwgbmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiA+Ojp0eXBlXAorICAgICAgICAgICAgLCBuZG5ib29zdDo6bXBsOjpzaXplX3Q8Tj4gPjo6dHlwZVwKKyAgICAgICAgICAgICwgVD46OnR5cGVcCisgICAgICAgIHR5cGU7XAorICAgIH07XAorICAgIHRlbXBsYXRlPGNsYXNzIEl0ZXI+XAorICAgIHN0cnVjdCBkZWNvZGVfdHlwZV9pbXBsPG5kbmJvb3N0OjptcGw6OnNpemVfdDxJRD4sIEl0ZXI+XAorICAgIHtcCisgICAgICAgIGVudW17biA9IEl0ZXI6OnR5cGU6OnZhbHVlfTtcCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OmRlY29kZV90eXBlPHR5cGVuYW1lIEl0ZXI6Om5leHQ+IGQ7XAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGQ6OnR5cGUgUXVhbGlmaWVyKCkgdHlwZVtuXTtcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZDo6aXRlciBpdGVyO1wKKyAgICB9CisKK0JPT1NUX1RZUEVPRl9CRUdJTl9FTkNPREVfTlMKKworQk9PU1RfVFlQRU9GX2FycmF5X3N1cHBvcnQoQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpLCBCT09TVF9QUF9FTVBUWSk7CitCT09TVF9UWVBFT0ZfYXJyYXlfc3VwcG9ydChCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksIEJPT1NUX1BQX0lERU5USVRZKGNvbnN0KSk7CitCT09TVF9UWVBFT0ZfYXJyYXlfc3VwcG9ydChCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksIEJPT1NUX1BQX0lERU5USVRZKHZvbGF0aWxlKSk7CitCT09TVF9UWVBFT0ZfYXJyYXlfc3VwcG9ydChCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksIEJPT1NUX1BQX0lERU5USVRZKHZvbGF0aWxlIGNvbnN0KSk7CitCT09TVF9UWVBFT0ZfRU5EX0VOQ09ERV9OUworCisjdW5kZWYgQk9PU1RfVFlQRU9GX2FycmF5X3N1cHBvcnQKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfTU9ESUZJRVJTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvbXN2Yy90eXBlb2ZfaW1wbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9tc3ZjL3R5cGVvZl9pbXBsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjJkZDYxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvbXN2Yy90eXBlb2ZfaW1wbC5ocHAKQEAgLTAsMCArMSwyODMgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDA1IElnb3IgQ2hlc25va292LCBtYWlsdG86aWNoZXNub2tvdkBnbWFpbC5jb20gKFZDIDYuNSxWQyA3LjEgKyBjb3VudGVyIGNvZGUpCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNyBQZWRlciBIb2x0IChWQyA3LjAgKyBmcmFtZXdvcmspCisvLyBDb3B5cmlnaHQgKEMpIDIwMDYgU3RldmVuIFdhdGFuYWJlIChWQyA4LjApCisKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9NU1ZDX1RZUEVPRl9JTVBMX0hQUF9JTkNMVURFRAorIyBkZWZpbmUgQk9PU1RfVFlQRU9GX01TVkNfVFlQRU9GX0lNUExfSFBQX0lOQ0xVREVECisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC9tcGwvaW50LmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorIyBpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHA+CisKKyMgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLD49MTMxMCkKKyMgIGluY2x1ZGUgPHR5cGVpbmZvPgorIyBlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICBuYW1lc3BhY2UgdHlwZV9vZgorICAgIHsKKworICAgICAgICAvL0NvbXBpbGUgdGltZSBjb25zdGFudCBjb2RlCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw+PTEzMDApICYmIGRlZmluZWQoX01TQ19FWFRFTlNJT05TKQorICAgICAgICB0ZW1wbGF0ZTxpbnQgTj4gc3RydWN0IHRoZV9jb3VudGVyOworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsaW50IE4gPSA1Lypmb3Igc2ltaWxhcml0eSovPgorICAgICAgICBzdHJ1Y3QgZW5jb2RlX2NvdW50ZXIKKyAgICAgICAgeworICAgICAgICAgICAgX19pZl9leGlzdHModGhlX2NvdW50ZXI8TiArIDI1Nj4pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLGNvdW50PShlbmNvZGVfY291bnRlcjxULE4gKyAyNTc+Ojpjb3VudCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgX19pZl9ub3RfZXhpc3RzKHRoZV9jb3VudGVyPE4gKyAyNTY+KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF9faWZfZXhpc3RzKHRoZV9jb3VudGVyPE4gKyA2ND4pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsY291bnQ9KGVuY29kZV9jb3VudGVyPFQsTiArIDY1Pjo6Y291bnQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgX19pZl9ub3RfZXhpc3RzKHRoZV9jb3VudGVyPE4gKyA2ND4pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBfX2lmX2V4aXN0cyh0aGVfY291bnRlcjxOICsgMTY+KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsY291bnQ9KGVuY29kZV9jb3VudGVyPFQsTiArIDE3Pjo6Y291bnQpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBfX2lmX25vdF9leGlzdHModGhlX2NvdW50ZXI8TiArIDE2PikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgX19pZl9leGlzdHModGhlX2NvdW50ZXI8TiArIDQ+KQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxjb3VudD0oZW5jb2RlX2NvdW50ZXI8VCxOICsgNT46OmNvdW50KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBfX2lmX25vdF9leGlzdHModGhlX2NvdW50ZXI8TiArIDQ+KQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faWZfZXhpc3RzKHRoZV9jb3VudGVyPE4+KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLGNvdW50PShlbmNvZGVfY291bnRlcjxULE4gKyAxPjo6Y291bnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pZl9ub3RfZXhpc3RzKHRoZV9jb3VudGVyPE4+KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLGNvdW50PU4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlZGVmIHRoZV9jb3VudGVyPE4+IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisjIGRlZmluZSBCT09TVF9UWVBFT0ZfSU5ERVgoVCkgKGVuY29kZV9jb3VudGVyPFQ+Ojpjb3VudCkKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVhUX0lOREVYKG5leHQpCisjIGVsc2UKKyAgICAgICAgdGVtcGxhdGU8aW50IE4+IHN0cnVjdCBlbmNvZGVfY291bnRlciA6IGVuY29kZV9jb3VudGVyPE4gLSAxPiB7fTsKKyAgICAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgZW5jb2RlX2NvdW50ZXI8MD4ge307CisKKyAgICAgICAgLy9OZWVkIHRvIGRlZmF1bHQgdG8gYSBsYXJnZXIgdmFsdWUgdGhhbiA0LCBhcyBkdWUgdG8gTVNWQydzIEVUSSBlcnJvcnMuIChzaXplb2YoaW50KT09NCkKKyAgICAgICAgY2hhciAoKmVuY29kZV9pbmRleCguLi4pKVs1XTsKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX0lOREVYKFQpIChzaXplb2YoKm5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfaW5kZXgoKG5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfY291bnRlcjwxMDA1PiopMCkpKQorIyBkZWZpbmUgQk9PU1RfVFlQRU9GX05FWFRfSU5ERVgobmV4dCkgZnJpZW5kIGNoYXIgKCplbmNvZGVfaW5kZXgoZW5jb2RlX2NvdW50ZXI8bmV4dD4qKSlbbmV4dF07CisjIGVuZGlmCisKKyAgICAgICAgLy9UeXBlb2YgY29kZQorCisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw9PTEzMDApCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y19leHRyYWN0X3R5cGUKKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8Ym9vbD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw7CisKKyAgICAgICAgICAgIHR5cGVkZWYgaWQydHlwZV9pbXBsPHRydWU+IGlkMnR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX3JlZ2lzdGVyX3R5cGUgOiBtc3ZjX2V4dHJhY3RfdHlwZTxJRD4KKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICAgICAgc3RydWN0IGlkMnR5cGVfaW1wbDx0cnVlPiAgLy9WQzcuMCBzcGVjaWZpYyBidWdmZWF0dXJlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworI2VsaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLD49MTQwMCkKKyAgICAgICAgc3RydWN0IG1zdmNfZXh0cmFjdF90eXBlX2RlZmF1bHRfcGFyYW0ge307CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSUQsIHR5cGVuYW1lIFQgPSBtc3ZjX2V4dHJhY3RfdHlwZV9kZWZhdWx0X3BhcmFtPgorICAgICAgICBzdHJ1Y3QgbXN2Y19leHRyYWN0X3R5cGU7CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX2V4dHJhY3RfdHlwZTxJRCwgbXN2Y19leHRyYWN0X3R5cGVfZGVmYXVsdF9wYXJhbT4geworICAgICAgICAgICAgdGVtcGxhdGU8Ym9vbD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw7CisKKyAgICAgICAgICAgIHR5cGVkZWYgaWQydHlwZV9pbXBsPHRydWU+IGlkMnR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSUQsIHR5cGVuYW1lIFQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX2V4dHJhY3RfdHlwZSA6IG1zdmNfZXh0cmFjdF90eXBlPElELG1zdmNfZXh0cmFjdF90eXBlX2RlZmF1bHRfcGFyYW0+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw8dHJ1ZT4gIC8vVkM4LjAgc3BlY2lmaWMgYnVnZmVhdHVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPGJvb2w+CisgICAgICAgICAgICBzdHJ1Y3QgaWQydHlwZV9pbXBsOworCisgICAgICAgICAgICB0eXBlZGVmIGlkMnR5cGVfaW1wbDx0cnVlPiBpZDJ0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y19yZWdpc3Rlcl90eXBlIDogbXN2Y19leHRyYWN0X3R5cGU8SUQsIFQ+CisgICAgICAgIHsKKyAgICAgICAgfTsKKyMgZWxzZQorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJRD4KKyAgICAgICAgc3RydWN0IG1zdmNfZXh0cmFjdF90eXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y19yZWdpc3Rlcl90eXBlIDogbXN2Y19leHRyYWN0X3R5cGU8SUQ+CisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgbXN2Y19leHRyYWN0X3R5cGU8SUQ+IGJhc2VfdHlwZTsKKyAgICAgICAgICAgIHN0cnVjdCBiYXNlX3R5cGU6OmlkMnR5cGUgLy8gVGhpcyB1c2VzIG5pY2UgVkM2LjUgYW5kIFZDNy4xIGJ1Z2ZlYXR1cmUKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisjIGVuZGlmCisvLyBFQU46IHByZXByb2Nlc3MgdGhpcyBibG9jayBvdXQgb24gYWR2aWNlIG9mIFBlZGVyIEhvbHQKKy8vIHRvIGVsaW1pbmF0ZSBlcnJvcnMgaW4gdHlwZV90cmFpdHMvY29tbW9uX3R5cGUuaHBwCisjIGlmIDAgLy9CT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPT0xMzEwKQorICAgICAgICB0ZW1wbGF0ZTxjb25zdCBzdGQ6OnR5cGVfaW5mbyYgcmVmX3R5cGVfaW5mbz4KKyAgICAgICAgc3RydWN0IG1zdmNfdHlwZWlkX3dyYXBwZXIgeworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxtc3ZjX3R5cGVpZF93cmFwcGVyPjo6aWQydHlwZSBpZDJ0eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZDJ0eXBlOjp0eXBlIHdyYXBwZWRfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgd3JhcHBlZF90eXBlOjp0eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgICAgIC8vVGhpcyBjbGFzcyBpcyB1c2VkIGZvciByZWdpc3RlcmluZyB0aGUgdHlwZSBULiBlbmNvZGVfdHlwZTxUPiBpcyBtYXBwZWQgYWdhaW5zdCB0eXBlaWQoZW5jb2RlX3R5cGU8VD4pLgorICAgICAgICAvL21zdmNfdHlwZWlkX3dyYXBwZXI8dHlwZWlkKGVuY29kZV90eXBlPFQ+KT4gd2lsbCBub3cgaGF2ZSBhIHR5cGUgdHlwZWRlZiB0aGF0IGVxdWFscyBlbmNvZGVfdHlwZTxUPi4KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IGVuY29kZV90eXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgZW5jb2RlX3R5cGU8VD4gaW5wdXRfdHlwZTsKKyAgICAgICAgICAgIC8vSW52b2tlIHJlZ2lzdHJhdGlvbiBvZiBlbmNvZGVfdHlwZTxUPi4gdHlwZWlkKGVuY29kZV90eXBlPFQ+KSBpcyBub3cgbWFwcGVkIHRvIGVuY29kZV90eXBlPFQ+LiBEbyBub3QgdXNlIHJlZ2lzdGVyZWRfdHlwZSBmb3IgYW55dGhpbmcuCisgICAgICAgICAgICAvL1RoZSByZWFzb24gZm9yIHJlZ2lzdGVyaW5nIGVuY29kZV90eXBlPFQ+IHJhdGhlciB0aGFuIFQsIGlzIHRoYXQgVkMgaGFuZGxlcyB0eXBlaWQoZnVuY3Rpb24gcmVmZXJlbmNlKSBwb29ybHkuIEJ5IGFkZGluZyBhbm90aGVyCisgICAgICAgICAgICAvL2xldmVsIG9mIGluZGlyZWN0aW9uLCB3ZSBzb2x2ZSB0aGlzIHByb2JsZW0uCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfcmVnaXN0ZXJfdHlwZTxpbnB1dF90eXBlLG1zdmNfdHlwZWlkX3dyYXBwZXI8dHlwZWlkKGlucHV0X3R5cGUpPiA+OjppZDJ0eXBlIHJlZ2lzdGVyZWRfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHR5cGVuYW1lIGRpc2FibGVfaWY8CisgICAgICAgICAgICB0eXBlbmFtZSBpc19mdW5jdGlvbjxUPjo6dHlwZSwKKyAgICAgICAgICAgIHR5cGVuYW1lIGVuY29kZV90eXBlPFQ+OjppbnB1dF90eXBlPjo6dHlwZSBlbmNvZGVfc3RhcnQoVCBjb25zdCYpOworCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHR5cGVuYW1lIGVuYWJsZV9pZjwKKyAgICAgICAgICAgIHR5cGVuYW1lIGlzX2Z1bmN0aW9uPFQ+Ojp0eXBlLAorICAgICAgICAgICAgdHlwZW5hbWUgZW5jb2RlX3R5cGU8VD46OmlucHV0X3R5cGU+Ojp0eXBlIGVuY29kZV9zdGFydChUJik7CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3JnYW5pemVyLCB0eXBlbmFtZSBUPgorICAgICAgICBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxPcmdhbml6ZXI+IHR5cGVvZl9yZWdpc3Rlcl90eXBlKGNvbnN0IFQmKTsKKworCisjIGRlZmluZSBCT09TVF9UWVBFT0YoZXhwcikgXAorICAgIG5kbmJvb3N0Ojp0eXBlX29mOjptc3ZjX3R5cGVpZF93cmFwcGVyPHR5cGVpZChuZG5ib29zdDo6dHlwZV9vZjo6ZW5jb2RlX3N0YXJ0KGV4cHIpKT46OnR5cGUKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX1RQTChleHByKSB0eXBlbmFtZSBCT09TVF9UWVBFT0YoZXhwcikKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGX1RQTChuYW1lLGV4cHIpIFwKK3N0cnVjdCBuYW1lIHtcCisgICAgZW51bSB7X3R5cGVvZl9yZWdpc3Rlcl92YWx1ZT1zaXplb2YodHlwZWlkKG5kbmJvb3N0Ojp0eXBlX29mOjp0eXBlb2ZfcmVnaXN0ZXJfdHlwZTxuYW1lPihleHByKSkpfTtcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV9vZjo6bXN2Y19leHRyYWN0X3R5cGU8bmFtZT46OmlkMnR5cGUgaWQydHlwZTtcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBpZDJ0eXBlOjp0eXBlIHR5cGU7XAorfTsKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGKG5hbWUsZXhwcikgXAorc3RydWN0IG5hbWUge1wKKyAgICBlbnVtIHtfdHlwZW9mX3JlZ2lzdGVyX3ZhbHVlPXNpemVvZih0eXBlaWQobmRuYm9vc3Q6OnR5cGVfb2Y6OnR5cGVvZl9yZWdpc3Rlcl90eXBlPG5hbWU+KGV4cHIpKSl9O1wKKyAgICB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjptc3ZjX2V4dHJhY3RfdHlwZTxuYW1lPjo6aWQydHlwZSBpZDJ0eXBlO1wKKyAgICB0eXBlZGVmIGlkMnR5cGU6OnR5cGUgdHlwZTtcCit9OworCisjIGVsc2UKKyAgICAgICAgdGVtcGxhdGU8aW50IElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y190eXBlaWRfd3JhcHBlciB7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPG1wbDo6aW50XzxJRD4gPjo6aWQydHlwZSBpZDJ0eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBpZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgICAgIC8vV29ya2Fyb3VuZCBmb3IgRVRJLWJ1ZyBmb3IgVkM2IGFuZCBWQzcKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgbXN2Y190eXBlaWRfd3JhcHBlcjwxPiB7CisgICAgICAgICAgICB0eXBlZGVmIG1zdmNfdHlwZWlkX3dyYXBwZXI8MT4gdHlwZTsKKyAgICAgICAgfTsKKyAgICAgICAgLy9Xb3JrYXJvdW5kIGZvciBFVEktYnVnIGZvciBWQzcuMQorICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCBtc3ZjX3R5cGVpZF93cmFwcGVyPDQ+IHsKKyAgICAgICAgICAgIHR5cGVkZWYgbXN2Y190eXBlaWRfd3JhcHBlcjw0PiB0eXBlOworICAgICAgICB9OworCisgICAgICAgIC8vVGllIGl0IGFsbCB0b2dldGhlcgorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3QgZW5jb2RlX3R5cGUKKyAgICAgICAgeworICAgICAgICAgICAgLy9HZXQgdGhlIG5leHQgYXZhaWxhYmxlIGNvbXBpbGUgdGltZSBjb25zdGFudHMgaW5kZXgKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCx2YWx1ZT1CT09TVF9UWVBFT0ZfSU5ERVgoVCkpOworICAgICAgICAgICAgLy9JbnN0YW50aWF0ZSB0aGUgdGVtcGxhdGUKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19yZWdpc3Rlcl90eXBlPFQsbXBsOjppbnRfPHZhbHVlPiA+OjppZDJ0eXBlIHR5cGU7CisgICAgICAgICAgICAvL1NldCB0aGUgbmV4dCBjb21waWxlIHRpbWUgY29uc3RhbnRzIGluZGV4CisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsbmV4dD12YWx1ZSsxKTsKKyAgICAgICAgICAgIC8vSW5jcmVtZW50IHRoZSBjb21waWxlIHRpbWUgY29uc3RhbnQgKG9ubHkgbmVlZGVkIHdoZW4gZXh0ZW5zaW9ucyBhcmUgbm90IGFjdGl2ZQorICAgICAgICAgICAgQk9PU1RfVFlQRU9GX05FWFRfSU5ERVgobmV4dCk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgICAgICAgc3RydWN0IHNpemVyCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgY2hhcigqdHlwZSlbZW5jb2RlX3R5cGU8VD46OnZhbHVlXTsKKyAgICAgICAgfTsKKyMgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLD49MTMxMCkKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdHlwZW5hbWUgZGlzYWJsZV9pZjwKKyAgICAgICAgICAgIHR5cGVuYW1lIGlzX2Z1bmN0aW9uPFQ+Ojp0eXBlLAorICAgICAgICAgICAgdHlwZW5hbWUgc2l6ZXI8VD46OnR5cGU+Ojp0eXBlIGVuY29kZV9zdGFydChUIGNvbnN0Jik7CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdHlwZW5hbWUgZW5hYmxlX2lmPAorICAgICAgICAgICAgdHlwZW5hbWUgaXNfZnVuY3Rpb248VD46OnR5cGUsCisgICAgICAgICAgICB0eXBlbmFtZSBzaXplcjxUPjo6dHlwZT46OnR5cGUgZW5jb2RlX3N0YXJ0KFQmKTsKKyMgZWxzZQorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgdHlwZW5hbWUgc2l6ZXI8VD46OnR5cGUgZW5jb2RlX3N0YXJ0KFQgY29uc3QmKTsKKyMgZW5kaWYKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3JnYW5pemVyLCB0eXBlbmFtZSBUPgorICAgICAgICBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxPcmdhbml6ZXI+IHR5cGVvZl9yZWdpc3Rlcl90eXBlKGNvbnN0IFQmLE9yZ2FuaXplciogPTApOworCisjIGRlZmluZSBCT09TVF9UWVBFT0YoZXhwcikgXAorICAgIG5kbmJvb3N0Ojp0eXBlX29mOjptc3ZjX3R5cGVpZF93cmFwcGVyPHNpemVvZigqbmRuYm9vc3Q6OnR5cGVfb2Y6OmVuY29kZV9zdGFydChleHByKSk+Ojp0eXBlCisKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9UUEwoZXhwcikgdHlwZW5hbWUgQk9PU1RfVFlQRU9GKGV4cHIpCisKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRl9UUEwobmFtZSxleHByKSBcCisgICAgc3RydWN0IG5hbWUge1wKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCxfdHlwZW9mX3JlZ2lzdGVyX3ZhbHVlPXNpemVvZihuZG5ib29zdDo6dHlwZV9vZjo6dHlwZW9mX3JlZ2lzdGVyX3R5cGU8bmFtZT4oZXhwcikpKTtcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnR5cGVfb2Y6Om1zdmNfZXh0cmFjdF90eXBlPG5hbWU+OjppZDJ0eXBlIGlkMnR5cGU7XAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGlkMnR5cGU6OnR5cGUgdHlwZTtcCisgICAgfTsKKworIyBkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGKG5hbWUsZXhwcikgXAorICAgIHN0cnVjdCBuYW1lIHtcCisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsX3R5cGVvZl9yZWdpc3Rlcl92YWx1ZT1zaXplb2YobmRuYm9vc3Q6OnR5cGVfb2Y6OnR5cGVvZl9yZWdpc3Rlcl90eXBlPG5hbWU+KGV4cHIpKSk7XAorICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjptc3ZjX2V4dHJhY3RfdHlwZTxuYW1lPjo6aWQydHlwZSBpZDJ0eXBlO1wKKyAgICAgICAgdHlwZWRlZiBpZDJ0eXBlOjp0eXBlIHR5cGU7XAorICAgIH07CisKKyNlbmRpZgorICAgIH0KK30KKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfTVNWQ19UWVBFT0ZfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL25hdGl2ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9uYXRpdmUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYWY3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9uYXRpdmUuaHBwCkBAIC0wLDAgKzEsNjAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNiBBcmthZGl5IFZlcnRsZXliCisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfTkFUSVZFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfTkFUSVZFX0hQUF9JTkNMVURFRAorCisjaWZuZGVmIE1TVkNfVFlQRU9GX0hBQ0sKKworI2lmZGVmIEJPT1NUX05PX1NGSU5BRQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiAKKyAgICAgICAgVCYgZW5zdXJlX29iaihjb25zdCBUJik7CisKK319CisKKyNlbHNlCisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19mdW5jdGlvbi5ocHA+IAorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworIyBpZmRlZiBCT09TVF9OT19TRklOQUUKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiAKKyAgICBUJiBlbnN1cmVfb2JqKGNvbnN0IFQmKTsKKyMgZWxzZQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIHR5cGVuYW1lIGVuYWJsZV9pZjxpc19mdW5jdGlvbjxUPiwgVCY+Ojp0eXBlCisgICAgICAgIGVuc3VyZV9vYmooVCYpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgdHlwZW5hbWUgZGlzYWJsZV9pZjxpc19mdW5jdGlvbjxUPiwgVCY+Ojp0eXBlCisgICAgICAgIGVuc3VyZV9vYmooY29uc3QgVCYpOworIyBlbmRpZgorfX0KKworI2VuZGlmLy9CT09TVF9OT19TRklOQUUKKworI2RlZmluZSBCT09TVF9UWVBFT0YoZXhwcikgQk9PU1RfVFlQRU9GX0tFWVdPUkQobmRuYm9vc3Q6OnR5cGVfb2Y6OmVuc3VyZV9vYmooZXhwcikpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UUEwgQk9PU1RfVFlQRU9GCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGX1RQTChuYW1lLGV4cHIpIFwKKyAgICBzdHJ1Y3QgbmFtZSB7XAorICAgICAgICB0eXBlZGVmIEJPT1NUX1RZUEVPRl9UUEwoZXhwcikgdHlwZTtcCisgICAgfTsKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVERUYobmFtZSxleHByKSBcCisgICAgc3RydWN0IG5hbWUge1wKKyAgICAgICAgdHlwZWRlZiBCT09TVF9UWVBFT0YoZXhwcikgdHlwZTtcCisgICAgfTsKKworI2VuZGlmLy9NU1ZDX1RZUEVPRl9IQUNLCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoeCkKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFKHgsIHBhcmFtcykKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfTkFUSVZFX0hQUF9JTkNMVURFRAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9wb2ludGVyc19kYXRhX21lbWJlcnMuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcG9pbnRlcnNfZGF0YV9tZW1iZXJzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzc2ZjhlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcG9pbnRlcnNfZGF0YV9tZW1iZXJzLmhwcApAQCAtMCwwICsxLDM4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgQXJrYWRpeSBWZXJ0bGV5YgorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX1BPSU5URVJTX0RBVEFfTUVNQkVSU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1BPSU5URVJTX0RBVEFfTUVNQkVSU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi9lbmNvZGVfZGVjb2RlX3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGUuaHBwPgorCisjaW5jbHVkZSBCT09TVF9UWVBFT0ZfSU5DUkVNRU5UX1JFR0lTVFJBVElPTl9HUk9VUCgpCisKK0JPT1NUX1RZUEVPRl9CRUdJTl9FTkNPREVfTlMKKworZW51bSB7UFRSX0RBVEFfTUVNX0lEID0gQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpfTsKKwordGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgUDAsIGNsYXNzIFAxPgorc3RydWN0IGVuY29kZV90eXBlX2ltcGw8ViwgUDAgUDE6Oio+Cit7CisgICAgdHlwZWRlZiBCT09TVF9UWVBFT0ZfRU5DT0RFX1BBUkFNUygyLCBQVFJfREFUQV9NRU1fSUQpIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBJdGVyPgorc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PFBUUl9EQVRBX01FTV9JRD4sIEl0ZXI+Cit7CisgICAgdHlwZWRlZiBJdGVyIGl0ZXIwOworICAgIEJPT1NUX1RZUEVPRl9ERUNPREVfUEFSQU1TKDIpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgd29ya2Fyb3VuZHsKKyAgICAgICAgdHlwZWRlZiBwMCBUOjoqIHR5cGU7CisgICAgfTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PFBUUl9EQVRBX01FTV9JRD4sIEl0ZXI+Ojp0ZW1wbGF0ZSB3b3JrYXJvdW5kPHAxPjo6dHlwZSB0eXBlOworICAgIHR5cGVkZWYgaXRlcjIgaXRlcjsKK307CisKK0JPT1NUX1RZUEVPRl9FTkRfRU5DT0RFX05TCisKKyNlbmRpZi8vQk9PU1RfVFlQRU9GX1BPSU5URVJTX0RBVEFfTUVNQkVSU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX2Z1bmN0aW9ucy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5jdGlvbnMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMGUxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5jdGlvbnMuaHBwCkBAIC0wLDAgKzEsNTAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBBcmthZGl5IFZlcnRsZXliCisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfUkVHSVNURVJfRlVOQ1RJT05TX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfRlVOQ1RJT05TX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmdfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVjLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2FkZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9pdGVyYXRlLmhwcD4KKworI2luY2x1ZGUgQk9PU1RfVFlQRU9GX0lOQ1JFTUVOVF9SRUdJU1RSQVRJT05fR1JPVVAoKQorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWQorI2RlZmluZSBCT09TVF9UWVBFT0ZfTElNSVRfRlVOQ1RJT05fQVJJVFkgMTAKKyNlbmRpZgorCitlbnVtIAoreworICAgIEZVTl9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgPSBCT09TVF9UWVBFT0ZfVU5JUVVFX0lEKCksCisgICAgRlVOX1BUUl9JRCAgICAgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArICAxICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgRlVOX1JFRl9JRCAgICAgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArICAyICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgTUVNX0ZVTl9JRCAgICAgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArICAzICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgQ09OU1RfTUVNX0ZVTl9JRCAgICAgICAgICAgICAgICA9IEZVTl9JRCArICA0ICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgVk9MQVRJTEVfTUVNX0ZVTl9JRCAgICAgICAgICAgICA9IEZVTl9JRCArICA1ICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgVk9MQVRJTEVfQ09OU1RfTUVNX0ZVTl9JRCAgICAgICA9IEZVTl9JRCArICA2ICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgRlVOX1ZBUl9JRCAgICAgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArICA3ICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgRlVOX1ZBUl9QVFJfSUQgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArICA4ICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgRlVOX1ZBUl9SRUZfSUQgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArICA5ICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgTUVNX0ZVTl9WQVJfSUQgICAgICAgICAgICAgICAgICA9IEZVTl9JRCArIDEwICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgQ09OU1RfTUVNX0ZVTl9WQVJfSUQgICAgICAgICAgICA9IEZVTl9JRCArIDExICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgVk9MQVRJTEVfTUVNX0ZVTl9WQVJfSUQgICAgICAgICA9IEZVTl9JRCArIDEyICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSksCisgICAgVk9MQVRJTEVfQ09OU1RfTUVNX0ZVTl9WQVJfSUQgICA9IEZVTl9JRCArIDEzICogQk9PU1RfUFBfSU5DKEJPT1NUX1RZUEVPRl9MSU1JVF9GVU5DVElPTl9BUklUWSkKK307CisKK0JPT1NUX1RZUEVPRl9CRUdJTl9FTkNPREVfTlMKKworIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUyAoMCwgQk9PU1RfVFlQRU9GX0xJTUlUX0ZVTkNUSU9OX0FSSVRZKQorIyBkZWZpbmUgQk9PU1RfUFBfRklMRU5BTUVfMSA8bmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX2Z1bmN0aW9uc19pdGVyYXRlLmhwcD4KKyMgaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworQk9PU1RfVFlQRU9GX0VORF9FTkNPREVfTlMKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfUkVHSVNURVJfRlVOQ1RJT05TX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfZnVuY3Rpb25zX2l0ZXJhdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfZnVuY3Rpb25zX2l0ZXJhdGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkM2Q5ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5jdGlvbnNfaXRlcmF0ZS5ocHAKQEAgLTAsMCArMSwxMzUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCBBcmthZGl5IFZlcnRsZXliCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi9lbmNvZGVfZGVjb2RlX3BhcmFtcy5ocHA+CisKKyNkZWZpbmUgbiBCT09TVF9QUF9JVEVSQVRJT04oKQorCisvLyBmdW5jdGlvbiBwb2ludGVycworCit0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBSIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIGNsYXNzIFApPgorc3RydWN0IGVuY29kZV90eXBlX2ltcGw8ViwgUigqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBQKSk+Cit7CisgICAgdHlwZWRlZiBSIEJPT1NUX1BQX0NBVChQLCBuKTsKKyAgICB0eXBlZGVmIEJPT1NUX1RZUEVPRl9FTkNPREVfUEFSQU1TKEJPT1NUX1BQX0lOQyhuKSwgRlVOX1BUUl9JRCArIG4pIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBSIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIGNsYXNzIFApPgorc3RydWN0IGVuY29kZV90eXBlX2ltcGw8ViwgUigqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBQKSAuLi4pPgoreworICAgIHR5cGVkZWYgUiBCT09TVF9QUF9DQVQoUCwgbik7CisgICAgdHlwZWRlZiBCT09TVF9UWVBFT0ZfRU5DT0RFX1BBUkFNUyhCT09TVF9QUF9JTkMobiksIEZVTl9WQVJfUFRSX0lEICsgbikgdHlwZTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEl0ZXI+CitzdHJ1Y3QgZGVjb2RlX3R5cGVfaW1wbDxuZG5ib29zdDo6bXBsOjpzaXplX3Q8RlVOX1BUUl9JRCArIG4+LCBJdGVyPgoreworICAgIHR5cGVkZWYgSXRlciBpdGVyMDsKKyAgICBCT09TVF9UWVBFT0ZfREVDT0RFX1BBUkFNUyhCT09TVF9QUF9JTkMobikpCisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQocCwgbikoKnR5cGUpKEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIHApKTsKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9JTkMobikpIGl0ZXI7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBJdGVyPgorc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PEZVTl9WQVJfUFRSX0lEICsgbj4sIEl0ZXI+Cit7CisgICAgdHlwZWRlZiBJdGVyIGl0ZXIwOworICAgIEJPT1NUX1RZUEVPRl9ERUNPREVfUEFSQU1TKEJPT1NUX1BQX0lOQyhuKSkKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChwLCBuKSgqdHlwZSkoQk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgcCkgLi4uKTsKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9JTkMobikpIGl0ZXI7Cit9OworCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9OT19GVU5DVElPTl9UWVBFUworCisgICAgLy8gZnVuY3Rpb24gcmVmZXJlbmNlcworCisgICAgdGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgUiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhuLCBjbGFzcyBQKT4KKyAgICBzdHJ1Y3QgZW5jb2RlX3R5cGVfaW1wbDxWLCBSKCYpKEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIFApKT4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgUiBCT09TVF9QUF9DQVQoUCwgbik7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfVFlQRU9GX0VOQ09ERV9QQVJBTVMoQk9PU1RfUFBfSU5DKG4pLCBGVU5fUkVGX0lEICsgbikgdHlwZTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgUiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhuLCBjbGFzcyBQKT4KKyAgICBzdHJ1Y3QgZW5jb2RlX3R5cGVfaW1wbDxWLCBSKCYpKEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIFApIC4uLik+CisgICAgeworICAgICAgICB0eXBlZGVmIFIgQk9PU1RfUFBfQ0FUKFAsIG4pOworICAgICAgICB0eXBlZGVmIEJPT1NUX1RZUEVPRl9FTkNPREVfUEFSQU1TKEJPT1NUX1BQX0lOQyhuKSwgRlVOX1ZBUl9SRUZfSUQgKyBuKSB0eXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyPgorICAgIHN0cnVjdCBkZWNvZGVfdHlwZV9pbXBsPG5kbmJvb3N0OjptcGw6OnNpemVfdDxGVU5fUkVGX0lEICsgbj4sIEl0ZXI+CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXIgaXRlcjA7CisgICAgICAgIEJPT1NUX1RZUEVPRl9ERUNPREVfUEFSQU1TKEJPT1NUX1BQX0lOQyhuKSkKKyAgICAgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQocCwgbikoJnR5cGUpKEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIHApKTsKKyAgICAgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoaXRlciwgQk9PU1RfUFBfSU5DKG4pKSBpdGVyOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBJdGVyPgorICAgIHN0cnVjdCBkZWNvZGVfdHlwZV9pbXBsPG5kbmJvb3N0OjptcGw6OnNpemVfdDxGVU5fVkFSX1JFRl9JRCArIG4+LCBJdGVyPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBJdGVyIGl0ZXIwOworICAgICAgICBCT09TVF9UWVBFT0ZfREVDT0RFX1BBUkFNUyhCT09TVF9QUF9JTkMobikpCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKHAsIG4pKCZ0eXBlKShCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBwKSAuLi4pOworICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9JTkMobikpIGl0ZXI7CisgICAgfTsKKworICAgIC8vIGZ1bmN0aW9ucworCisgICAgdGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgUiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhuLCBjbGFzcyBQKT4KKyAgICBzdHJ1Y3QgZW5jb2RlX3R5cGVfaW1wbDxWLCBSKEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIFApKT4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgUiBCT09TVF9QUF9DQVQoUCwgbik7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfVFlQRU9GX0VOQ09ERV9QQVJBTVMoQk9PU1RfUFBfSU5DKG4pLCBGVU5fSUQgKyBuKSB0eXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBSIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIGNsYXNzIFApPgorICAgIHN0cnVjdCBlbmNvZGVfdHlwZV9pbXBsPFYsIFIoQk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgUCkgLi4uKT4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgUiBCT09TVF9QUF9DQVQoUCwgbik7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfVFlQRU9GX0VOQ09ERV9QQVJBTVMoQk9PU1RfUFBfSU5DKG4pLCBGVU5fVkFSX0lEICsgbikgdHlwZTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgSXRlcj4KKyAgICBzdHJ1Y3QgZGVjb2RlX3R5cGVfaW1wbDxuZG5ib29zdDo6bXBsOjpzaXplX3Q8RlVOX0lEICsgbj4sIEl0ZXI+CisgICAgeworICAgICAgICB0eXBlZGVmIEl0ZXIgaXRlcjA7CisgICAgICAgIEJPT1NUX1RZUEVPRl9ERUNPREVfUEFSQU1TKEJPT1NUX1BQX0lOQyhuKSkKKyAgICAgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQocCwgbikodHlwZSkoQk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgcCkpOworICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9JTkMobikpIGl0ZXI7CisgICAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEl0ZXI+CisgICAgc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PEZVTl9WQVJfSUQgKyBuPiwgSXRlcj4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgSXRlciBpdGVyMDsKKyAgICAgICAgQk9PU1RfVFlQRU9GX0RFQ09ERV9QQVJBTVMoQk9PU1RfUFBfSU5DKG4pKQorICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChwLCBuKSh0eXBlKShCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBwKSAuLi4pOworICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9JTkMobikpIGl0ZXI7CisgICAgfTsKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfTk9fRlVOQ1RJT05fVFlQRVMKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfTk9fTUVNQkVSX0ZVTkNUSU9OX1RZUEVTCisvLyBtZW1iZXIgZnVuY3Rpb25zCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3F1YWxpZmllcgorI2RlZmluZSBCT09TVF9UWVBFT0ZfaWQgTUVNX0ZVTl9JRAorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9tZW1fZnVuY3Rpb25zLmhwcD4KKworI2RlZmluZSBCT09TVF9UWVBFT0ZfcXVhbGlmaWVyIGNvbnN0CisjZGVmaW5lIEJPT1NUX1RZUEVPRl9pZCBDT05TVF9NRU1fRlVOX0lECisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX21lbV9mdW5jdGlvbnMuaHBwPgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9xdWFsaWZpZXIgdm9sYXRpbGUKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX2lkIFZPTEFUSUxFX01FTV9GVU5fSUQKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfbWVtX2Z1bmN0aW9ucy5ocHA+CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3F1YWxpZmllciB2b2xhdGlsZSBjb25zdAorI2RlZmluZSBCT09TVF9UWVBFT0ZfaWQgVk9MQVRJTEVfQ09OU1RfTUVNX0ZVTl9JRAorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9tZW1fZnVuY3Rpb25zLmhwcD4KKworI3VuZGVmIG4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfZnVuZGFtZW50YWwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfZnVuZGFtZW50YWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYjk5ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9mdW5kYW1lbnRhbC5ocHAKQEAgLTAsMCArMSw2MiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IEFya2FkaXkgVmVydGxleWIKKy8vIENvcHlyaWdodCAoQykgMjAwNCBQZWRlciBIb2x0CisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfUkVHSVNURVJfRlVOREFNRU5UQUxfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9GVU5EQU1FTlRBTF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi90eXBlb2YuaHBwPgorCisjaW5jbHVkZSBCT09TVF9UWVBFT0ZfSU5DUkVNRU5UX1JFR0lTVFJBVElPTl9HUk9VUCgpCisKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHVuc2lnbmVkIGNoYXIpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRSh1bnNpZ25lZCBzaG9ydCkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHVuc2lnbmVkIGludCkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHVuc2lnbmVkIGxvbmcpCisKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHNpZ25lZCBjaGFyKQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoc2lnbmVkIHNob3J0KQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoc2lnbmVkIGludCkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHNpZ25lZCBsb25nKQorCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRShib29sKQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoY2hhcikKKworQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoZmxvYXQpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRShkb3VibGUpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRShsb25nIGRvdWJsZSkKKworI2lmbmRlZiBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorLy8gSWYgdGhlIGZvbGxvd2luZyBsaW5lIGZhaWxzIHRvIGNvbXBpbGUgYW5kIHlvdSdyZSB1c2luZyB0aGUgSW50ZWwKKy8vIGNvbXBpbGVyLCBzZWUgaHR0cDovL2xpc3RzLmJvb3N0Lm9yZy9NYWlsQXJjaGl2ZXMvYm9vc3QtdXNlcnMvbXNnMDY1NjcucGhwLAorLy8gYW5kIGRlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVCBvbiB0aGUgY29tbWFuZCBsaW5lLgorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUod2NoYXJfdCkKKyNlbmRpZgorCisjaWYgKGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPT0gMTIwMCkpIFwKKyAgICB8fCAoZGVmaW5lZChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikgJiYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDYwMCkpIFwKKyAgICB8fCAoZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPT0gMHg2MDApICYmIChfTVNDX1ZFUiA9PSAxMjAwKSkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHVuc2lnbmVkIF9faW50OCkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKF9faW50OCkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHVuc2lnbmVkIF9faW50MTYpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRShfX2ludDE2KQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUodW5zaWduZWQgX19pbnQzMikKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKF9faW50MzIpCisjaWZkZWYgX19CT1JMQU5EQ19fCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRSh1bnNpZ25lZCBfX2ludDY0KQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoX19pbnQ2NCkKKyNlbmRpZgorI2VuZGlmCisKKyMgaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlKQorQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEUoOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUpCisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NU19JTlQ2NCkKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHVuc2lnbmVkIF9faW50NjQpCitCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRShfX2ludDY0KQorI2VuZGlmCisKK0JPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKHZvaWQpCisKKyNlbmRpZi8vQk9PU1RfVFlQRU9GX1JFR0lTVEVSX0ZVTkRBTUVOVEFMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfbWVtX2Z1bmN0aW9ucy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi9yZWdpc3Rlcl9tZW1fZnVuY3Rpb25zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmI0MGE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvcmVnaXN0ZXJfbWVtX2Z1bmN0aW9ucy5ocHAKQEAgLTAsMCArMSwzMiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IEFya2FkaXkgVmVydGxleWIKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL2VuY29kZV9kZWNvZGVfcGFyYW1zLmhwcD4KKworLy8gbWVtYmVyIGZ1bmN0aW9ucworCit0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBULCBjbGFzcyBSIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKG4sIGNsYXNzIFApPiAKK3N0cnVjdCBlbmNvZGVfdHlwZV9pbXBsPFYsIFIoVDo6KikoQk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgUCkpIEJPT1NUX1RZUEVPRl9xdWFsaWZpZXI+Cit7CisgICAgdHlwZWRlZiBSIEJPT1NUX1BQX0NBVChQLCBuKTsKKyAgICB0eXBlZGVmIFQgQk9PU1RfUFBfQ0FUKFAsIEJPT1NUX1BQX0lOQyhuKSk7CisgICAgdHlwZWRlZiBCT09TVF9UWVBFT0ZfRU5DT0RFX1BBUkFNUyhCT09TVF9QUF9BREQobiwgMiksIEJPT1NUX1RZUEVPRl9pZCArIG4pIHR5cGU7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBJdGVyPgorc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PEJPT1NUX1RZUEVPRl9pZCArIG4+LCBJdGVyPgoreworICAgIHR5cGVkZWYgSXRlciBpdGVyMDsKKyAgICBCT09TVF9UWVBFT0ZfREVDT0RFX1BBUkFNUyhCT09TVF9QUF9BREQobiwgMikpCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHdvcmthcm91bmR7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKHAsIG4pKFQ6Oip0eXBlKShCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBwKSkgQk9PU1RfVFlQRU9GX3F1YWxpZmllcjsKKyAgICB9OworICAgIHR5cGVkZWYgdHlwZW5hbWUgd29ya2Fyb3VuZDxCT09TVF9QUF9DQVQocCwgQk9PU1RfUFBfSU5DKG4pKT46OnR5cGUgdHlwZTsKKyAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChpdGVyLCBCT09TVF9QUF9BREQobiwgMikpIGl0ZXI7Cit9OworCisvLyB1bmRlZiBwYXJhbWV0ZXJzCisKKyN1bmRlZiBCT09TVF9UWVBFT0ZfaWQKKyN1bmRlZiBCT09TVF9UWVBFT0ZfcXVhbGlmaWVyCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90ZW1wbGF0ZV9lbmNvZGluZy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90ZW1wbGF0ZV9lbmNvZGluZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM1NzgxYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3RlbXBsYXRlX2VuY29kaW5nLmhwcApAQCAtMCwwICsxLDE2MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IEFya2FkaXkgVmVydGxleWIKKy8vIENvcHlyaWdodCAoQykgMjAwNSBQZWRlciBIb2x0CisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFT0ZfVEVNUExBVEVfRU5DT0RJTkdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RZUEVPRl9URU1QTEFURV9FTkNPRElOR19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9pc191bmFyeS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL3RyYW5zZm9ybS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb3JfZWFjaF9pLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2NhdC5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvZW5jb2RlX2RlY29kZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL2ludF9lbmNvZGluZy5ocHA+CisKKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvdHlwZV90ZW1wbGF0ZV9wYXJhbS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL2ludGVncmFsX3RlbXBsYXRlX3BhcmFtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvdGVtcGxhdGVfdGVtcGxhdGVfcGFyYW0uaHBwPgorCisjaWZkZWYgX19CT1JMQU5EQ19fCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9RVUFMSUZZKFApIHNlbGZfdDo6UAorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1FVQUxJRlkoUCkgUAorI2VuZGlmCisvLyBUaGUgdGVtcGxhdGUgcGFyYW1ldGVyIGRlc2NyaXB0aW9uLCBlbnRlcmVkIGJ5IHRoZSB1c2VyLAorLy8gaXMgY29udmVydGVkIGludG8gYSBwb2x5bW9ycGhpYyAib2JqZWN0IgorLy8gdGhhdCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIHJlc3BvbnNpYmxlIGZvcgorLy8gZW5jb2RpbmcvZGVjb2RpbmcgdGhlIHBhcmFtZXRlciwgZXRjLgorCisvLyBtYWtlIHN1cmUgdG8gY2F0IHRoZSBzZXF1ZW5jZSBmaXJzdCwgYW5kIG9ubHkgdGhlbiBhZGQgdGhlIHByZWZpeC4KKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKKGVsZW0pIEJPT1NUX1BQX0NBVChcCisgICAgQk9PU1RfVFlQRU9GX01BS0VfT0JKLFwKKyAgICBCT09TVF9QUF9TRVFfQ0FUKChfKSBCT09TVF9UWVBFT0ZfVE9fU0VRKGVsZW0pKVwKKyAgICApCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RPX1NFUSh0b2tlbnMpIEJPT1NUX1RZUEVPRl8gIyMgdG9rZW5zICMjIF9CT09TVF9UWVBFT0YKKworLy8gQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX0VYUExJQ0lUX0lEKE5hbWUsIFBhcmFtcywgSWQpXAorICAgIEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURV9JTVBMKFwKKyAgICAgICAgTmFtZSxcCisgICAgICAgIEJPT1NUX1RZUEVPRl9NQUtFX09CSlMoQk9PU1RfVFlQRU9GX1RPU0VRKFBhcmFtcykpLFwKKyAgICAgICAgQk9PU1RfUFBfU0VRX1NJWkUoQk9PU1RfVFlQRU9GX1RPU0VRKFBhcmFtcykpLFwKKyAgICAgICAgSWQpCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFKE5hbWUsIFBhcmFtcylcCisgICAgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX0VYUExJQ0lUX0lEKE5hbWUsIFBhcmFtcywgQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9PQkpFQ1RfTUFLRVIocywgZGF0YSwgZWxlbSlcCisgICAgQk9PU1RfVFlQRU9GX01BS0VfT0JKKGVsZW0pCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKUyhQYXJhbXMpXAorICAgIEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk0oQk9PU1RfVFlQRU9GX09CSkVDVF9NQUtFUiwgfiwgUGFyYW1zKQorCisvLyBBcyBzdWdnZXN0ZWQgYnkgUGF1bCBNZW5zb25pZGVzOgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UT1NFUSh4KVwKKyAgICBCT09TVF9QUF9JSUYoXAorICAgICAgICBCT09TVF9QUF9JU19VTkFSWSh4KSxcCisgICAgICAgIHggQk9PU1RfUFBfVFVQTEVfRUFUKDMpLCBCT09TVF9QUF9SRVBFQVRcCisgICAgKSh4LCBCT09TVF9UWVBFT0ZfVE9TRVFfMiwgfikKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVE9TRVFfMih6LCBuLCBfKSAoY2xhc3MpCisKKy8vIEJPT1NUX1RZUEVPRl9WSVJUVUFMCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0NBVF80KGEsIGIsIGMsIGQpIEJPT1NUX1RZUEVPRl9DQVRfNF9JKGEsIGIsIGMsIGQpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9DQVRfNF9JKGEsIGIsIGMsIGQpIGEgIyMgYiAjIyBjICMjIGQKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVklSVFVBTChGdW4sIE9iailcCisgICAgQk9PU1RfVFlQRU9GX0NBVF80KEJPT1NUX1RZUEVPRl8sIEJPT1NUX1BQX1NFUV9IRUFEKE9iaiksIF8sIEZ1bikKKworLy8gQk9PU1RfVFlQRU9GX1NFUV9FTlVNW19UUkFJTElOR11bXzFdCisvLyBUd28gdmVyc2lvbnMgcHJvdmlkZWQgZHVlIHRvIHJlZW50cmFuY3kgaXNzdWUKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfU0VRX0VYUEFORF9FTEVNRU5UKHosbixzZXEpXAorICAgQk9PU1RfUFBfU0VRX0VMRU0oMCxzZXEpICh6LG4sQk9PU1RfUFBfU0VRX0VMRU0obixCT09TVF9QUF9TRVFfRUxFTSgxLHNlcSkpKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9TRVFfRU5VTShzZXEsbWFjcm8pXAorICAgIEJPT1NUX1BQX0VOVU0oQk9PU1RfUFBfU0VRX1NJWkUoc2VxKSxCT09TVF9UWVBFT0ZfU0VRX0VYUEFORF9FTEVNRU5ULChtYWNybykoc2VxKSkKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfU0VRX0VOVU1fVFJBSUxJTkcoc2VxLG1hY3JvKVwKKyAgICBCT09TVF9QUF9FTlVNX1RSQUlMSU5HKEJPT1NUX1BQX1NFUV9TSVpFKHNlcSksQk9PU1RfVFlQRU9GX1NFUV9FWFBBTkRfRUxFTUVOVCwobWFjcm8pKHNlcSkpCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1NFUV9FWFBBTkRfRUxFTUVOVF8xKHosbixzZXEpXAorICAgIEJPT1NUX1BQX1NFUV9FTEVNKDAsc2VxKSAoeixuLEJPT1NUX1BQX1NFUV9FTEVNKG4sQk9PU1RfUFBfU0VRX0VMRU0oMSxzZXEpKSkKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfU0VRX0VOVU1fMShzZXEsbWFjcm8pXAorICAgIEJPT1NUX1BQX0VOVU0oQk9PU1RfUFBfU0VRX1NJWkUoc2VxKSxCT09TVF9UWVBFT0ZfU0VRX0VYUEFORF9FTEVNRU5UXzEsKG1hY3JvKShzZXEpKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9TRVFfRU5VTV9UUkFJTElOR18xKHNlcSxtYWNybylcCisgICAgQk9PU1RfUFBfRU5VTV9UUkFJTElORyhCT09TVF9QUF9TRVFfU0laRShzZXEpLEJPT1NUX1RZUEVPRl9TRVFfRVhQQU5EX0VMRU1FTlRfMSwobWFjcm8pKHNlcSkpCisKKy8vCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1BMQUNFSE9MREVSKHosIG4sIGVsZW0pXAorICAgIEJPT1NUX1RZUEVPRl9WSVJUVUFMKFBMQUNFSE9MREVSLCBlbGVtKShlbGVtKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9QTEFDRUhPTERFUl9UWVBFUyh6LCBuLCBlbGVtKVwKKyAgICBCT09TVF9UWVBFT0ZfVklSVFVBTChQTEFDRUhPTERFUl9UWVBFUywgZWxlbSkoZWxlbSwgbikKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEVfRU5DT0RFX1BBUkFNKHIsIGRhdGEsIG4sIGVsZW0pXAorICAgIEJPT1NUX1RZUEVPRl9WSVJUVUFMKEVOQ09ERSwgZWxlbSkoZWxlbSwgbikKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEVfREVDT0RFX1BBUkFNKHIsIGRhdGEsIG4sIGVsZW0pXAorICAgIEJPT1NUX1RZUEVPRl9WSVJUVUFMKERFQ09ERSwgZWxlbSkoZWxlbSwgbikKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEVfUEFSQU1fUEFJUih6LCBuLCBlbGVtKSBcCisgICAgQk9PU1RfVFlQRU9GX1ZJUlRVQUwoRVhQQU5EVFlQRSwgZWxlbSkoZWxlbSkgQk9PU1RfUFBfQ0FUKFAsIG4pCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX0RFRkFVTFRfVEVNUExBVEVfVFlQRShOYW1lLFBhcmFtcyxJRClcCisgICAgTmFtZTwgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfU0VRX1NJWkUoUGFyYW1zKSwgUCkgPgorCisvL1NpbmNlIHdlIGFyZSBjcmVhdGluZyBhbiBpbnRlcm5hbCBkZWNvZGUgc3RydWN0LCB3ZSBuZWVkIHRvIHVzZSBkaWZmZXJlbnQgdGVtcGxhdGUgbmFtZXMsIFQgaW5zdGVhZCBvZiBQLgorI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfREVDT0RFUl9UWVBFX1BBUkFNX1BBSVIoeixuLGVsZW0pIFwKKyAgICBCT09TVF9UWVBFT0ZfVklSVFVBTChFWFBBTkRUWVBFLCBlbGVtKShlbGVtKSBCT09TVF9QUF9DQVQoVCwgbikKKworLy9EZWZhdWx0IHRlbXBsYXRlIHBhcmFtIGRlY29kaW5nCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RZUEVERUZfREVDT0RFRF9URU1QTEFURV9UWVBFKE5hbWUsUGFyYW1zKVwKKyAgICB0eXBlZGVmIE5hbWU8Qk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfU0VRX1NJWkUoUGFyYW1zKSxCT09TVF9UWVBFT0ZfUVVBTElGWShQKSk+IHR5cGU7CisKKy8vQnJhbmNoIHRoZSBkZWNvZGluZworI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRURFRl9ERUNPREVEX1RZUEUoTmFtZSxQYXJhbXMpXAorICAgIEJPT1NUX1BQX0lGKEJPT1NUX1RZUEVPRl9IQVNfVEVNUExBVEVTKFBhcmFtcyksXAorICAgICAgICBCT09TVF9UWVBFT0ZfVFlQRURFRl9ERUNPREVEX1RFTVBMQVRFX1RFTVBMQVRFX1RZUEUsXAorICAgICAgICBCT09TVF9UWVBFT0ZfVFlQRURFRl9ERUNPREVEX1RFTVBMQVRFX1RZUEUpKE5hbWUsUGFyYW1zKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURV9JTVBMKE5hbWUsIFBhcmFtcywgU2l6ZSwgSUQpXAorICAgIEJPT1NUX1RZUEVPRl9CRUdJTl9FTkNPREVfTlNcCisgICAgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX1RFTVBMQVRFX0lNUEwoTmFtZSwgUGFyYW1zLCBJRClcCisgICAgdGVtcGxhdGU8Y2xhc3MgVlwKKyAgICAgICAgQk9PU1RfVFlQRU9GX1NFUV9FTlVNX1RSQUlMSU5HKFBhcmFtcywgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX1BBUkFNX1BBSVIpXAorICAgID5cCisgICAgc3RydWN0IGVuY29kZV90eXBlX2ltcGw8ViwgTmFtZTxCT09TVF9QUF9FTlVNX1BBUkFNUyhTaXplLCBQKT4gPlwKKyAgICB7XAorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjpwdXNoX2JhY2s8ViwgbmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiA+Ojp0eXBlIFYwO1wKKyAgICAgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX0VOQ09ERV9QQVJBTSwgfiwgUGFyYW1zKVwKKyAgICAgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQoViwgU2l6ZSkgdHlwZTtcCisgICAgfTtcCisgICAgdGVtcGxhdGU8Y2xhc3MgSXRlcj5cCisgICAgc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiwgSXRlcj5cCisgICAge1wKKyAgICAgICAgdHlwZWRlZiBkZWNvZGVfdHlwZV9pbXBsPG5kbmJvb3N0OjptcGw6OnNpemVfdDxJRD4sIEl0ZXI+IHNlbGZfdDtcCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiBzZWxmX2lkO1wKKyAgICAgICAgdHlwZWRlZiBJdGVyIGl0ZXIwO1wKKyAgICAgICAgQk9PU1RfUFBfU0VRX0ZPUl9FQUNIX0koQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX0RFQ09ERV9QQVJBTSwgfiwgUGFyYW1zKVwKKyAgICAgICAgQk9PU1RfVFlQRU9GX1RZUEVERUZfREVDT0RFRF9UWVBFKE5hbWUsIFBhcmFtcylcCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGl0ZXIsIFNpemUpIGl0ZXI7XAorICAgIH07XAorICAgIEJPT1NUX1RZUEVPRl9FTkRfRU5DT0RFX05TCisKKyNlbmRpZi8vQk9PU1RfVFlQRU9GX1RFTVBMQVRFX0VOQ09ESU5HX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdGVtcGxhdGVfdGVtcGxhdGVfcGFyYW0uaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdGVtcGxhdGVfdGVtcGxhdGVfcGFyYW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MDQ2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJhbS5ocHAKQEAgLTAsMCArMSwxNDkgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNSBQZWRlciBIb2x0CisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgQXJrYWRpeSBWZXJ0bGV5YgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1RFTVBMQVRFX1BBUkFNX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfVEVNUExBVEVfVEVNUExBVEVfUEFSQU1fSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9vci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9mb2xkX2xlZnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvZW51bS5ocHA+CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX3RlbXBsYXRlKHgpICAgQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1BBUkFNKHgpCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9URU1QTEFURShYKSB0ZW1wbGF0ZShYKSBCT09TVF9UWVBFT0ZfRUFUCisjZGVmaW5lIEJPT1NUX1RZUEVPRl90ZW1wbGF0ZShYKSAodGVtcGxhdGUoWCkpCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1BBUkFNKFBhcmFtcylcCisgICAgKFRFTVBMQVRFX1BBUkFNKVwKKyAgICAoUGFyYW1zKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9URU1QTEFURV9QQVJBTV9HRVRQQVJBTVMoVGhpcylcCisgICAgQk9PU1RfVFlQRU9GX1RPU0VRKEJPT1NUX1BQX1NFUV9FTEVNKDEsIFRoaXMpKQorCisvL0VuY29kZSAvIGRlY29kZSB0aGlzCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9URU1QTEFURV9QQVJBTV9FTkNPREUoVGhpcywgbilcCisgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfdGVtcGxhdGU8Qk9PU1RfUFBfQ0FUKFYsIG4pLFwKKyAgICAgICBCT09TVF9QUF9DQVQoUCwgbik8Qk9PU1RfVFlQRU9GX1NFUV9FTlVNKEJPT1NUX1RZUEVPRl9NQUtFX09CSlMoQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1BBUkFNX0dFVFBBUkFNUyhUaGlzKSksQk9PU1RfVFlQRU9GX1BMQUNFSE9MREVSKSA+XAorICAgPjo6dHlwZSBCT09TVF9QUF9DQVQoViwgQk9PU1RfUFBfSU5DKG4pKTsKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVEVNUExBVEVfUEFSQU1fREVDT0RFKFRoaXMsIG4pXAorICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6ZGVjb2RlX3RlbXBsYXRlPCBCT09TVF9QUF9DQVQoaXRlciwgbikgPiBCT09TVF9QUF9DQVQoZCwgbik7XAorICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9QUF9DQVQoZCwgbik6OnR5cGUgQk9PU1RfUFBfQ0FUKFAsIG4pO1wKKyAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfUFBfQ0FUKGQsIG4pOjppdGVyIEJPT1NUX1BQX0NBVChpdGVyLEJPT1NUX1BQX0lOQyhuKSk7CisKKy8vIHRlbXBsYXRlPGNsYXNzLCB1bnNpZ25lZCBpbnQsIC4uLj4gY2xhc3MKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1BBUkFNX0VYUEFORFRZUEUoVGhpcykgXAorICAgIHRlbXBsYXRlIDxCT09TVF9QUF9TRVFfRU5VTShCT09TVF9UWVBFT0ZfVEVNUExBVEVfUEFSQU1fR0VUUEFSQU1TKFRoaXMpKSA+IGNsYXNzCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1BBUkFNX1BMQUNFSE9MREVSKFBhcmFtKVwKKyAgICBOZXN0ZWRfVGVtcGxhdGVfVGVtcGxhdGVfQXJndW1lbnRzX05vdF9TdXBwb3J0ZWQKKworLy8ndGVtcGxhdGU8Y2xhc3MsaW50PiBjbGFzcycgaXMgcmVkdWNlZCB0byAnY2xhc3MnCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9URU1QTEFURV9QQVJBTV9ERUNMQVJBVElPTl9UWVBFKFBhcmFtKSBjbGFzcworCisvLyBUMzxpbnQsICh1bnNpZ25lZCBpbnQpMCwgLi4uPgorI2RlZmluZSBCT09TVF9UWVBFT0ZfVEVNUExBVEVfUEFSQU1fUExBQ0VIT0xERVJfVFlQRVMoUGFyYW0sIG4pXAorICAgIEJPT1NUX1BQX0NBVChULG4pPEJPT1NUX1RZUEVPRl9TRVFfRU5VTV8xKEJPT1NUX1RZUEVPRl9NQUtFX09CSlMoQk9PU1RfVFlQRU9GX1RFTVBMQVRFX1BBUkFNX0dFVFBBUkFNUyhQYXJhbSkpLEJPT1NUX1RZUEVPRl9QTEFDRUhPTERFUikgPgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9URU1QTEFURV9QQVJBTV9JU1RFTVBMQVRFIDEKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gbW92ZSB0byBlbmNvZGVfZGVjb2RlPworCitCT09TVF9UWVBFT0ZfQkVHSU5fRU5DT0RFX05TCisKK3RlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFR5cGVfTm90X1JlZ2lzdGVyZWRfV2l0aF9UeXBlb2ZfU3lzdGVtPiBzdHJ1Y3QgZW5jb2RlX3RlbXBsYXRlX2ltcGw7Cit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBJdGVyPiBzdHJ1Y3QgZGVjb2RlX3RlbXBsYXRlX2ltcGw7CisKK0JPT1NUX1RZUEVPRl9FTkRfRU5DT0RFX05TCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKworICAgIHRlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFQ+IHN0cnVjdCBlbmNvZGVfdGVtcGxhdGUKKyAgICAgICAgOiBCT09TVF9UWVBFT0ZfRU5DT0RFX05TX1FVQUxJRklFUjo6ZW5jb2RlX3RlbXBsYXRlX2ltcGw8ViwgVD4KKyAgICB7fTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEl0ZXI+IHN0cnVjdCBkZWNvZGVfdGVtcGxhdGUKKyAgICAgICAgOiBCT09TVF9UWVBFT0ZfRU5DT0RFX05TX1FVQUxJRklFUjo6ZGVjb2RlX3RlbXBsYXRlX2ltcGw8dHlwZW5hbWUgSXRlcjo6dHlwZSwgdHlwZW5hbWUgSXRlcjo6bmV4dD4KKyAgICB7fTsKK319CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIG1vdmUgdG8gdGVtcGxhdGVfZW5jb2RpbmcuaHBwPworCisvL1RlbXBsYXRlIHRlbXBsYXRlIHJlZ2lzdHJhdGlvbgorI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRV9GT1JfVEVNUExBVEVfVEVNUExBVEUoTmFtZSxQYXJhbXMsSUQpXAorICAgIHRlbXBsYXRlPGNsYXNzIFZcCisgICAgICAgIEJPT1NUX1RZUEVPRl9TRVFfRU5VTV9UUkFJTElORyhQYXJhbXMsQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RFTVBMQVRFX1BBUkFNX1BBSVIpXAorICAgID5cCisgICAgc3RydWN0IGVuY29kZV90ZW1wbGF0ZV9pbXBsPFYsTmFtZTxcCisgICAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TKFwKKyAgICAgICAgQk9PU1RfUFBfU0VRX1NJWkUoUGFyYW1zKSxcCisgICAgICAgIFApPiA+XAorICAgICAgICA6IG5kbmJvb3N0Ojp0eXBlX29mOjpwdXNoX2JhY2s8ViwgbmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElEPiA+XAorICAgIHtcCisgICAgfTtcCisgICAgdGVtcGxhdGU8Y2xhc3MgSXRlcj4gc3RydWN0IGRlY29kZV90ZW1wbGF0ZV9pbXBsPG5kbmJvb3N0OjptcGw6OnNpemVfdDxJRD4sIEl0ZXI+XAorICAgIHtcCisgICAgICAgIEJPT1NUX1BQX1JFUEVBVChCT09TVF9QUF9TRVFfU0laRShQYXJhbXMpLEJPT1NUX1RZUEVPRl9UWVBFREVGX0lOVF9QTixfKVwKKyAgICAgICAgdHlwZWRlZiBOYW1lPEJPT1NUX1RZUEVPRl9TRVFfRU5VTShQYXJhbXMsQk9PU1RfVFlQRU9GX1BMQUNFSE9MREVSKSA+IHR5cGU7XAorICAgICAgICB0eXBlZGVmIEl0ZXIgaXRlcjtcCisgICAgfTsKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRURFRl9JTlRfUE4oeixuLFBhcmFtcykgdHlwZWRlZiBpbnQgQk9PU1RfUFBfQ0FUKFAsbik7CisKKyNpZmRlZiBfX0JPUkxBTkRDX18KKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0RFQ09ERV9ORVNURURfVEVNUExBVEVfSEVMUEVSX05BTUUgQk9PU1RfUFBfQ0FUKFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0NBVChcCisgICAgICAgICAgICAgICAgZGVjb2RlX25lc3RlZF90ZW1wbGF0ZV9oZWxwZXIsXAorICAgICAgICAgICAgICAgIEJPT1NUX1RZUEVPRl9SRUdJU1RSQVRJT05fR1JPVVBcCisgICAgICAgICAgICApLDB4MTAwMDBcCisgICAgICAgICksX19MSU5FX19cCisgICAgKQorI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfREVDT0RFX05FU1RFRF9URU1QTEFURV9IRUxQRVJfSU1QTChOYW1lLFBhcmFtcyxJRClcCisgICAgc3RydWN0IEJPT1NUX1RZUEVPRl9ERUNPREVfTkVTVEVEX1RFTVBMQVRFX0hFTFBFUl9OQU1FIHtcCisgICAgICAgIHRlbXBsYXRlPEJPT1NUX1RZUEVPRl9TRVFfRU5VTShQYXJhbXMsQk9PU1RfVFlQRU9GX1JFR0lTVEVSX0RFQ0xBUkVfREVDT0RFUl9UWVBFX1BBUkFNX1BBSVIpID5cCisgICAgICAgIHN0cnVjdCBkZWNvZGVfcGFyYW1zO1wKKyAgICAgICAgdGVtcGxhdGU8Qk9PU1RfVFlQRU9GX1NFUV9FTlVNKFBhcmFtcyxCT09TVF9UWVBFT0ZfUkVHSVNURVJfREVDT0RFUl9UWVBFX1BBUkFNX1BBSVIpID5cCisgICAgICAgIHN0cnVjdCBkZWNvZGVfcGFyYW1zPEJPT1NUX1RZUEVPRl9TRVFfRU5VTShQYXJhbXMsQk9PU1RfVFlQRU9GX1BMQUNFSE9MREVSX1RZUEVTKSA+XAorICAgICAgICB7XAorICAgICAgICAgICAgdHlwZWRlZiBOYW1lPEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX1NFUV9TSVpFKFBhcmFtcyksVCk+IHR5cGU7XAorICAgICAgICB9O1wKKyAgICB9OworLy9UZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbSBkZWNvZGluZworI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRURFRl9ERUNPREVEX1RFTVBMQVRFX1RFTVBMQVRFX1RZUEUoTmFtZSxQYXJhbXMpXAorICAgIHR5cGVkZWYgdHlwZW5hbWUgQk9PU1RfVFlQRU9GX0RFQ09ERV9ORVNURURfVEVNUExBVEVfSEVMUEVSX05BTUU6OmRlY29kZV9wYXJhbXM8Qk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfU0VRX1NJWkUoUGFyYW1zKSxQKT46OnR5cGUgdHlwZTsKKworI2Vsc2UKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX0RFQ09ERV9ORVNURURfVEVNUExBVEVfSEVMUEVSX0lNUEwoTmFtZSxQYXJhbXMsSUQpCisKKy8vVGVtcGxhdGUgdGVtcGxhdGUgcGFyYW0gZGVjb2RpbmcKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RZUEVERUZfREVDT0RFRF9URU1QTEFURV9URU1QTEFURV9UWVBFKE5hbWUsUGFyYW1zKVwKKyAgICB0ZW1wbGF0ZTxCT09TVF9UWVBFT0ZfU0VRX0VOVU0oUGFyYW1zLEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9ERUNMQVJFX0RFQ09ERVJfVFlQRV9QQVJBTV9QQUlSKSA+XAorICAgIHN0cnVjdCBkZWNvZGVfcGFyYW1zO1wKKyAgICB0ZW1wbGF0ZTxCT09TVF9UWVBFT0ZfU0VRX0VOVU0oUGFyYW1zLEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9ERUNPREVSX1RZUEVfUEFSQU1fUEFJUikgPlwKKyAgICBzdHJ1Y3QgZGVjb2RlX3BhcmFtczxCT09TVF9UWVBFT0ZfU0VRX0VOVU0oUGFyYW1zLEJPT1NUX1RZUEVPRl9QTEFDRUhPTERFUl9UWVBFUykgPlwKKyAgICB7XAorICAgICAgICB0eXBlZGVmIE5hbWU8Qk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfU0VRX1NJWkUoUGFyYW1zKSxUKT4gdHlwZTtcCisgICAgfTtcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBkZWNvZGVfcGFyYW1zPEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX1NFUV9TSVpFKFBhcmFtcyksUCk+Ojp0eXBlIHR5cGU7CisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX0RFQ0xBUkVfREVDT0RFUl9UWVBFX1BBUkFNX1BBSVIoeixuLGVsZW0pIFwKKyAgICBCT09TVF9UWVBFT0ZfVklSVFVBTChERUNMQVJBVElPTl9UWVBFLCBlbGVtKShlbGVtKSBCT09TVF9QUF9DQVQoVCwgbikKKworLy8gQk9PU1RfVFlQRU9GX0hBU19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0hBU19URU1QTEFURVMoUGFyYW1zKVwKKyAgICBCT09TVF9QUF9TRVFfRk9MRF9MRUZUKEJPT1NUX1RZUEVPRl9IQVNfVEVNUExBVEVTX09QLCAwLCBQYXJhbXMpCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0hBU19URU1QTEFURVNfT1Aocywgc3RhdGUsIGVsZW0pXAorICAgIEJPT1NUX1BQX09SKHN0YXRlLCBCT09TVF9UWVBFT0ZfVklSVFVBTChJU1RFTVBMQVRFLCBlbGVtKSkKKworLy9EZWZpbmUgdGVtcGxhdGUgdGVtcGxhdGUgYXJndW1lbnRzCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9URU1QTEFURV9URU1QTEFURV9JTVBMKE5hbWUsUGFyYW1zLElEKVwKKyAgICBCT09TVF9QUF9JRihCT09TVF9UWVBFT0ZfSEFTX1RFTVBMQVRFUyhQYXJhbXMpLFwKKyAgICAgICAgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX0RFQ09ERV9ORVNURURfVEVNUExBVEVfSEVMUEVSX0lNUEwsXAorICAgICAgICBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRV9GT1JfVEVNUExBVEVfVEVNUExBVEUpKE5hbWUsUGFyYW1zLElEKQorCisjZW5kaWYgLy9CT09TVF9UWVBFT0ZfVEVNUExBVEVfVEVNUExBVEVfUEFSQU1fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90eXBlX2VuY29kaW5nLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3R5cGVfZW5jb2RpbmcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzYzQ1MDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90eXBlX2VuY29kaW5nLmhwcApAQCAtMCwwICsxLDI3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgQXJrYWRpeSBWZXJ0bGV5YgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX1RZUEVfRU5DT0RJTkdfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UWVBFX0VOQ09ESU5HX0hQUF9JTkNMVURFRAorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFX0lNUEwoVCwgSWQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IGVuY29kZV90eXBlX2ltcGw8ViwgVCA+ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIDogbmRuYm9vc3Q6OnR5cGVfb2Y6OnB1c2hfYmFjazxWLCBuZG5ib29zdDo6bXBsOjpzaXplX3Q8SWQ+ID4gICAgICAgICBcCisgICAge307ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8Y2xhc3MgSXRlcj4gc3RydWN0IGRlY29kZV90eXBlX2ltcGw8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PElkPiwgSXRlcj4gXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlZGVmIFQgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlZGVmIEl0ZXIgaXRlcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH07CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEVfRVhQTElDSVRfSUQoVHlwZSwgSWQpICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9UWVBFT0ZfQkVHSU5fRU5DT0RFX05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRV9JTVBMKFR5cGUsIElkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9UWVBFT0ZfRU5EX0VOQ09ERV9OUworCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9SRUdJU1RFUl9UWVBFKFR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfVFlQRU9GX1JFR0lTVEVSX1RZUEVfRVhQTElDSVRfSUQoVHlwZSwgQk9PU1RfVFlQRU9GX1VOSVFVRV9JRCgpKQorCisjZW5kaWYvL0JPT1NUX1RZUEVPRl9UWVBFX0VOQ09ESU5HX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdHlwZV90ZW1wbGF0ZV9wYXJhbS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90eXBlX3RlbXBsYXRlX3BhcmFtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODNmNDgwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdHlwZV90ZW1wbGF0ZV9wYXJhbS5ocHAKQEAgLTAsMCArMSwzNyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA1IEFya2FkaXkgVmVydGxleWIKKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9UWVBFX1RFTVBMQVRFX1BBUkFNX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRV9URU1QTEFURV9QQVJBTV9IUFBfSU5DTFVERUQKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfY2xhc3NfQk9PU1RfVFlQRU9GIChjbGFzcykKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX3R5cGVuYW1lX0JPT1NUX1RZUEVPRiAodHlwZW5hbWUpCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX01BS0VfT0JKX2NsYXNzIEJPT1NUX1RZUEVPRl9UWVBFX1BBUkFNCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9NQUtFX09CSl90eXBlbmFtZSBCT09TVF9UWVBFT0ZfVFlQRV9QQVJBTQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UWVBFX1BBUkFNXAorICAgIChUWVBFX1BBUkFNKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UWVBFX1BBUkFNX0VYUEFORFRZUEUoUGFyYW0pIGNsYXNzCisKKy8vIFRZUEVfUEFSQU0gInZpcnR1YWwgZnVuY3Rpb25zIiBpbXBsZW1lbnRhdGlvbgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UWVBFX1BBUkFNX0VOQ09ERShUaGlzLCBuKVwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjplbmNvZGVfdHlwZTxcCisgICAgICAgIEJPT1NUX1BQX0NBVChWLCBuKSxcCisgICAgICAgIEJPT1NUX1BQX0NBVChQLCBuKVwKKyAgICA+Ojp0eXBlIEJPT1NUX1BQX0NBVChWLCBCT09TVF9QUF9JTkMobikpOyAKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRV9QQVJBTV9ERUNPREUoVGhpcywgbilcCisgICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6ZGVjb2RlX3R5cGU8IEJPT1NUX1BQX0NBVChpdGVyLCBuKSA+IEJPT1NUX1BQX0NBVChkLCBuKTtcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9QUF9DQVQoZCwgbik6OnR5cGUgQk9PU1RfUFBfQ0FUKFAsIG4pO1wKKyAgICB0eXBlZGVmIHR5cGVuYW1lIEJPT1NUX1BQX0NBVChkLCBuKTo6aXRlciBCT09TVF9QUF9DQVQoaXRlciwgQk9PU1RfUFBfSU5DKG4pKTsKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRV9QQVJBTV9QTEFDRUhPTERFUihQYXJhbSkgaW50CisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UWVBFX1BBUkFNX0RFQ0xBUkFUSU9OX1RZUEUoUGFyYW0pIGNsYXNzCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9UWVBFX1BBUkFNX1BMQUNFSE9MREVSX1RZUEVTKFBhcmFtLCBuKSBCT09TVF9QUF9DQVQoVCxuKQorI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRV9QQVJBTV9JU1RFTVBMQVRFIDAKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfVFlQRV9URU1QTEFURV9QQVJBTV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3R5cGVvZi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90eXBlb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NTA1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90eXBlb2YuaHBwCkBAIC0wLDAgKzEsMjE4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgQXJrYWRpeSBWZXJ0bGV5YgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX1RZUEVPRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RZUEVPRl9IUFBfSU5DTFVERUQKKworI2lmIGRlZmluZWQoQk9PU1RfVFlQRU9GX0NPTVBMSUFOVCkKKyMgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX1RZUEVPRl9FTVVMQVRJT04pICYmIGRlZmluZWQoQk9PU1RfVFlQRU9GX05BVElWRSkKKyMgICBlcnJvciBib3RoIHR5cGVvZiBlbXVsYXRpb24gYW5kIG5hdGl2ZSBtb2RlIHJlcXVlc3RlZAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQ09NT19fKQorIyAgIGlmZGVmIF9fR05VR19fCisjICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgICAgICBlbmRpZgorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9LRVlXT1JEIHR5cGVvZgorIyAgICAgICBlbmRpZgorIyAgIGVsc2UKKyMgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgICAgIGVuZGlmCisjICAgICAgIGVsc2UKKyMgICAgICAgICAgIGVycm9yIG5hdGl2ZSB0eXBlb2YgaXMgbm90IHN1cHBvcnRlZAorIyAgICAgICBlbmRpZgorIyAgIGVuZGlmCisKKyNlbGlmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgfHwgZGVmaW5lZChfX0lDTCkgfHwgZGVmaW5lZChfX0lDQykgfHwgZGVmaW5lZChfX0VDQykKKyMgICBpZmRlZiBfX0dOVUNfXworIyAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICAgICAgZW5kaWYKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfS0VZV09SRCBfX3R5cGVvZl9fCisjICAgICAgIGVuZGlmCisjICAgZWxzZQorIyAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICAgICAgZW5kaWYKKyMgICAgICAgZWxzZQorIyAgICAgICAgICAgZXJyb3IgbmF0aXZlIHR5cGVvZiBpcyBub3Qgc3VwcG9ydGVkCisjICAgICAgIGVuZGlmCisjICAgZW5kaWYKKworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgICBpZm5kZWYgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgZW5kaWYKKyMgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9LRVlXT1JEIF9fdHlwZW9mX18KKyMgICBlbmRpZgorCisjZWxpZiBkZWZpbmVkKF9fTVdFUktTX18pCisjICAgaWYoX19NV0VSS1NfXyA8PSAweDMwMDMpICAvLyA4LngKKyMgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgIGVuZGlmCisjICAgICAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0tFWVdPUkQgX190eXBlb2ZfXworIyAgICAgICBlbHNlCisjICAgICAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0VNVUxBVElPTl9VTlNVUFBPUlRFRAorIyAgICAgICBlbmRpZgorIyAgIGVsc2UgLy8gOS54CisjICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgICAgICBlbmRpZgorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9LRVlXT1JEIF9fdHlwZW9mX18KKyMgICAgICAgZW5kaWYKKyMgICBlbmRpZgorI2VsaWYgZGVmaW5lZCBfX0NPREVHRUFSQ19fCisjICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OX1VOU1VQUE9SVEVECisjICAgICAgIGVuZGlmCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0VNVUxBVElPTl9VTlNVUFBPUlRFRAorIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkIF9fQk9STEFORENfXworIyAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0VNVUxBVElPTl9VTlNVUFBPUlRFRAorIyAgICAgICBlbmRpZgorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTVVMQVRJT05fVU5TVVBQT1JURUQKKyMgICBlbmRpZgorI2VsaWYgZGVmaW5lZCBfX0RNQ19fCisjICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgIGVuZGlmCisjICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi9kbWMvdHlwZW9mX2ltcGwuaHBwPgorIyAgICAgICBkZWZpbmUgTVNWQ19UWVBFT0ZfSEFDSworIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGlmIChfTVNDX1ZFUiA8PSAxMzAwKSAgLy8gNi41LCA3LjAKKyMgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgIGVuZGlmCisjICAgICAgICAgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvbXN2Yy90eXBlb2ZfaW1wbC5ocHA+CisjICAgICAgICAgICBkZWZpbmUgTVNWQ19UWVBFT0ZfSEFDSworIyAgICAgICBlbHNlCisjICAgICAgICAgICBlcnJvciB0eXBlb2YgZW11bGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKyMgICAgICAgZW5kaWYKKyMgICBlbGlmIChfTVNDX1ZFUiA+PSAxMzEwKSAgLy8gNy4xIC0+CisjICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICAgICAgICAgIGlmbmRlZiBfTVNDX0VYVEVOU0lPTlMKKyMgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgICAgICAgICBlbHNlCisjICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgICAgICAgICAgZW5kaWYKKyMgICAgICAgICAgIGVuZGlmCisjICAgICAgIGVuZGlmCisjICAgICAgIGlmZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi9tc3ZjL3R5cGVvZl9pbXBsLmhwcD4KKyMgICAgICAgICAgIGRlZmluZSBNU1ZDX1RZUEVPRl9IQUNLCisjICAgICAgIGVuZGlmCisjICAgZW5kaWYKKyNlbGlmIGRlZmluZWQoX19IUF9hQ0MpCisjICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgIGVuZGlmCisjICAgZWxzZQorIyAgICAgICBlcnJvciBuYXRpdmUgdHlwZW9mIGlzIG5vdCBzdXBwb3J0ZWQKKyMgICBlbmRpZgorCisjZWxpZiBkZWZpbmVkKF9fREVDQ1hYKQorIyAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfTkFUSVZFCisjICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICBlbmRpZgorIyAgIGVsc2UKKyMgICAgICAgZXJyb3IgbmF0aXZlIHR5cGVvZiBpcyBub3Qgc3VwcG9ydGVkCisjICAgZW5kaWYKKworI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgaWYgKF9fQk9STEFORENfXyA8IDB4NTkwKQorIyAgICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX05PX0ZVTkNUSU9OX1RZUEVTCisjICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfTk9fTUVNQkVSX0ZVTkNUSU9OX1RZUEVTCisjICAgZW5kaWYKKyMgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgZW5kaWYKKyMgICBlbHNlCisjICAgICAgIGVycm9yIG5hdGl2ZSB0eXBlb2YgaXMgbm90IHN1cHBvcnRlZAorIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9fU1VOUFJPX0NDKQorIyAgIGlmIChfX1NVTlBST19DQyA8IDB4NTkwICkKKyMgICAgIGlmZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICBlcnJvciBuYXRpdmUgdHlwZW9mIGlzIG5vdCBzdXBwb3J0ZWQKKyMgICAgIGVuZGlmCisjICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICBlbmRpZgorIyAgIGVsc2UKKyMgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfRU1VTEFUSU9OCisjICAgICAgICAgaWZuZGVmIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9OQVRJVkUKKyMgICAgICAgICBlbmRpZgorIyAgICAgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfS0VZV09SRCBfX3R5cGVvZl9fCisjICAgICBlbmRpZgorIyAgIGVuZGlmCisjZWxzZSAvL3Vua25vd24gY29tcGlsZXIKKyMgICBpZm5kZWYgQk9PU1RfVFlQRU9GX05BVElWRQorIyAgICAgICBpZm5kZWYgQk9PU1RfVFlQRU9GX0VNVUxBVElPTgorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICAgICAgZW5kaWYKKyMgICBlbHNlCisjICAgICAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfS0VZV09SRAorIyAgICAgICAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9LRVlXT1JEIHR5cGVvZgorIyAgICAgICBlbmRpZgorIyAgIGVuZGlmCisKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9VTklRVUVfSUQoKVwKKyAgICAgQk9PU1RfVFlQRU9GX1JFR0lTVFJBVElPTl9HUk9VUCAqIDB4MTAwMDAgKyBfX0xJTkVfXworCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9JTkNSRU1FTlRfUkVHSVNUUkFUSU9OX0dST1VQKClcCisgICAgIDxuZG5ib29zdC90eXBlb2YvaW5jcl9yZWdpc3RyYXRpb25fZ3JvdXAuaHBwPgorCisjaWZkZWYgQk9PU1RfVFlQRU9GX0VNVUxBVElPTl9VTlNVUFBPUlRFRAorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi91bnN1cHBvcnRlZC5ocHA+CisjZWxpZiBkZWZpbmVkIEJPT1NUX1RZUEVPRl9FTVVMQVRJT04KKyMgICBkZWZpbmUgQk9PU1RfVFlQRU9GX1RFWFQgInVzaW5nIHR5cGVvZiBlbXVsYXRpb24iCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL21lc3NhZ2UuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi90eXBlb2ZfaW1wbC5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3R5cGVfZW5jb2RpbmcuaHBwPgorIyAgIGluY2x1ZGUgPG5kbmJvb3N0L3R5cGVvZi90ZW1wbGF0ZV9lbmNvZGluZy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL21vZGlmaWVycy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3BvaW50ZXJzX2RhdGFfbWVtYmVycy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX2Z1bmN0aW9ucy5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3JlZ2lzdGVyX2Z1bmRhbWVudGFsLmhwcD4KKworI2VsaWYgZGVmaW5lZChCT09TVF9UWVBFT0ZfTkFUSVZFKQorIyAgIGRlZmluZSBCT09TVF9UWVBFT0ZfVEVYVCAidXNpbmcgbmF0aXZlIHR5cGVvZiIKKyMgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvbWVzc2FnZS5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL25hdGl2ZS5ocHA+CisjZWxzZQorIyAgIGVycm9yIHR5cGVvZiBjb25maWd1cmF0aW9uIGVycm9yCisjZW5kaWYKKworLy8gYXV0bworI2RlZmluZSBCT09TVF9BVVRPKFZhciwgRXhwcikgQk9PU1RfVFlQRU9GKEV4cHIpIFZhciA9IEV4cHIKKyNkZWZpbmUgQk9PU1RfQVVUT19UUEwoVmFyLCBFeHByKSBCT09TVF9UWVBFT0ZfVFBMKEV4cHIpIFZhciA9IEV4cHIKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfVFlQRU9GX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdHlwZW9mX2ltcGwuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdHlwZW9mX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MGFmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi90eXBlb2ZfaW1wbC5ocHAKQEAgLTAsMCArMSwxODYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBBcmthZGl5IFZlcnRsZXliCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgUGVkZXIgSG9sdAorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX1RZUEVPRl9JTVBMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfVFlQRU9GX0lNUExfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvc2l6ZV90LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvZW5jb2RlX2RlY29kZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3ZlY3Rvci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVkVDVE9SKG4pIEJPT1NUX1BQX0NBVChuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yLCBuKQorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9zaXplcl9pdGVtKHosIG4sIF8pXAorICAgIGNoYXIgaXRlbSAjIyBuW1Y6Oml0ZW0gIyMgbiA6OnZhbHVlXTsKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgIHRlbXBsYXRlPGNsYXNzIFY+CisgICAgc3RydWN0IHNpemVyCisgICAgeworICAgICAgICAvLyBjaGFyIGl0ZW0wW1Y6Oml0ZW0wOjp2YWx1ZV07CisgICAgICAgIC8vIGNoYXIgaXRlbTFbVjo6aXRlbTE6OnZhbHVlXTsKKyAgICAgICAgLy8gLi4uCisKKyAgICAgICAgQk9PU1RfUFBfUkVQRUFUKEJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFLCBCT09TVF9UWVBFT0Zfc2l6ZXJfaXRlbSwgfikKKyAgICB9OworfX0KKworI3VuZGVmIEJPT1NUX1RZUEVPRl9zaXplcl9pdGVtCisKKy8vCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisjIGlmZGVmIEJPT1NUX05PX1NGSU5BRQorICAgIHRlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFQ+CisgICAgc2l6ZXI8dHlwZW5hbWUgZW5jb2RlX3R5cGU8ViwgVD46OnR5cGU+IGVuY29kZShjb25zdCBUJik7CisjIGVsc2UKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBUPgorICAgIHR5cGVuYW1lIGVuYWJsZV9pZjwKKyAgICAgICAgdHlwZW5hbWUgaXNfZnVuY3Rpb248VD46OnR5cGUsCisgICAgICAgIHNpemVyPHR5cGVuYW1lIGVuY29kZV90eXBlPFYsIFQ+Ojp0eXBlPiA+Ojp0eXBlIGVuY29kZShUJik7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBUPgorICAgIHR5cGVuYW1lIGRpc2FibGVfaWY8CisgICAgICAgIHR5cGVuYW1lIGlzX2Z1bmN0aW9uPFQ+Ojp0eXBlLAorICAgICAgICBzaXplcjx0eXBlbmFtZSBlbmNvZGVfdHlwZTxWLCBUPjo6dHlwZT4gPjo6dHlwZSBlbmNvZGUoY29uc3QgVCYpOworIyBlbmRpZgorfX0KKy8vCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWPgorICAgIHN0cnVjdCBkZWNvZGVfYmVnaW4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZGVjb2RlX3R5cGU8dHlwZW5hbWUgVjo6YmVnaW4+Ojp0eXBlIHR5cGU7CisgICAgfTsKK319CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RZUEVJVEVNKHosIG4sIGV4cHIpXAorICAgIG5kbmJvb3N0OjptcGw6OnNpemVfdDxzaXplb2YobmRuYm9vc3Q6OnR5cGVfb2Y6OmVuY29kZTxCT09TVF9UWVBFT0ZfVkVDVE9SKDApPD4gPihleHByKS5pdGVtICMjIG4pPgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9FTkNPREVEX1ZFQ1RPUihFeHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RZUEVPRl9WRUNUT1IoQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUpPCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfRU5VTShCT09TVF9UWVBFT0ZfTElNSVRfU0laRSwgQk9PU1RfVFlQRU9GX1RZUEVJVEVNLCBFeHByKSBcCisgICAgPgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRihFeHByKVwKKyAgICBuZG5ib29zdDo6dHlwZV9vZjo6ZGVjb2RlX2JlZ2luPEJPT1NUX1RZUEVPRl9FTkNPREVEX1ZFQ1RPUihFeHByKSA+Ojp0eXBlCisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX1RQTCB0eXBlbmFtZSBCT09TVF9UWVBFT0YKKworLy9vZmZzZXRfdmVjdG9yIGlzIHVzZWQgdG8gZGVsYXkgdGhlIGluc2VydGlvbiBvZiBkYXRhIGludG8gdGhlIHZlY3RvciBpbiBvcmRlciB0byBhbGxvdworLy9lbmNvZGluZyB0byBiZSBkb25lIGluIG1hbnkgc3RlcHMKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWLHR5cGVuYW1lIE9mZnNldD4KKyAgICBzdHJ1Y3Qgb2Zmc2V0X3ZlY3RvciB7CisgICAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIFYsY2xhc3MgT2Zmc2V0LGNsYXNzIFQ+CisgICAgc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6b2Zmc2V0X3ZlY3RvcjxWLE9mZnNldD4sVD4geworICAgICAgICB0eXBlZGVmIG9mZnNldF92ZWN0b3I8Vix0eXBlbmFtZSBPZmZzZXQ6OnByaW9yPiB0eXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLGNsYXNzIFQ+CisgICAgc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6b2Zmc2V0X3ZlY3RvcjxWLG1wbDo6c2l6ZV90PDA+ID4sVD4geworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHB1c2hfYmFjazxWLFQ+Ojp0eXBlIHR5cGU7CisgICAgfTsKK319CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFSVRFTSh6LCBuLCBleHByKVwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LEJPT1NUX1BQX0NBVCh2YWx1ZSxuKSA9IHNpemVvZihuZG5ib29zdDo6dHlwZV9vZjo6ZW5jb2RlPF90eXBlb2Zfc3RhcnRfdmVjdG9yPihleHByKS5pdGVtICMjIG4pKTtcCisgICAgdHlwZWRlZiBuZG5ib29zdDo6bXBsOjpzaXplX3Q8Qk9PU1RfUFBfQ0FUKHNlbGZfdDo6dmFsdWUsbik+IEJPT1NUX1BQX0NBVChpdGVtLG4pOworCisjaWZkZWYgX19ETUNfXworI2RlZmluZSBCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVJVEVNXzIoeixuLGV4cHIpXAorICAgIHR5cGVkZWYgdHlwZW5hbWUgX3R5cGVvZl9lbmNvZGVfZnJhY3Rpb248aXRlcmF0aW9uPjo6Qk9PU1RfUFBfQ0FUKGl0ZW0sbikgQk9PU1RfUFBfQ0FUKGl0ZW0sbik7CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0ZSQUNUSU9OVFlQRSgpXAorICAgIEJPT1NUX1BQX1JFUEVBVChCT09TVF9UWVBFT0ZfTElNSVRfU0laRSxCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVJVEVNXzIsXylcCisgICAgdHlwZWRlZiBfdHlwZW9mX2ZyYWN0aW9uX2l0ZXI8UG9zPiBmcmFjdGlvbl90eXBlOworI2Vsc2UKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX0ZSQUNUSU9OVFlQRSgpXAorICAgIHR5cGVkZWYgX3R5cGVvZl9lbmNvZGVfZnJhY3Rpb248c2VsZl90OjppdGVyYXRpb24+IGZyYWN0aW9uX3R5cGU7CisjZW5kaWYKKworI2lmZGVmIF9fQk9STEFORENfXworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBvcyx0eXBlbmFtZSBJdGVyPgorICAgIHN0cnVjdCBnZW5lcmljX3R5cGVvZl9mcmFjdGlvbl9pdGVyIHsKKyAgICAgICAgdHlwZWRlZiBnZW5lcmljX3R5cGVvZl9mcmFjdGlvbl9pdGVyPFBvcyxJdGVyPiBzZWxmX3Q7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcG9zPShQb3M6OnZhbHVlKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBpdGVyYXRpb249KHBvcy81KTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCB3aGVyZT1wb3MlNTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBJdGVyOjp0ZW1wbGF0ZSBfYXBwbHlfbmV4dDxzZWxmX3Q6Oml0ZXJhdGlvbj46OnR5cGUgZnJhY3Rpb25fdHlwZTsKKyAgICAgICAgdHlwZWRlZiBnZW5lcmljX3R5cGVvZl9mcmFjdGlvbl9pdGVyPHR5cGVuYW1lIFBvczo6bmV4dCxJdGVyPiBuZXh0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHZfaXRlcjxmcmFjdGlvbl90eXBlLG1wbDo6aW50XzxzZWxmX3Q6OndoZXJlPiA+Ojp0eXBlIHR5cGU7CisgICAgfTsKK319CisjZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRl9JTVBMKGV4cHIpIFwKKyAgICAgICAgdGVtcGxhdGU8aW50IF9UeXBlb2ZfSXRlcmF0aW9uPlwKKyAgICAgICAgc3RydWN0IF90eXBlb2ZfZW5jb2RlX2ZyYWN0aW9uIHtcCisgICAgICAgICAgICB0eXBlZGVmIF90eXBlb2ZfZW5jb2RlX2ZyYWN0aW9uPF9UeXBlb2ZfSXRlcmF0aW9uPiBzZWxmX3Q7XAorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCxfdHlwZW9mX2VuY29kZV9vZmZzZXQgPSAoX1R5cGVvZl9JdGVyYXRpb24qQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUpKTtcCisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjpvZmZzZXRfdmVjdG9yPEJPT1NUX1RZUEVPRl9WRUNUT1IoMCk8PixuZG5ib29zdDo6bXBsOjpzaXplX3Q8c2VsZl90OjpfdHlwZW9mX2VuY29kZV9vZmZzZXQ+ID4gX3R5cGVvZl9zdGFydF92ZWN0b3I7XAorICAgICAgICAgICAgQk9PU1RfUFBfUkVQRUFUKEJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFLEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRUlURU0sZXhwcilcCisgICAgICAgICAgICB0ZW1wbGF0ZTxpbnQgTmV4dD5cCisgICAgICAgICAgICBzdHJ1Y3QgX2FwcGx5X25leHQge1wKKyAgICAgICAgICAgICAgICB0eXBlZGVmIF90eXBlb2ZfZW5jb2RlX2ZyYWN0aW9uPE5leHQ+IHR5cGU7XAorICAgICAgICAgICAgfTtcCisgICAgICAgIH07XAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQb3M+XAorICAgICAgICBzdHJ1Y3QgX3R5cGVvZl9mcmFjdGlvbl9pdGVyIHtcCisgICAgICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjpnZW5lcmljX3R5cGVvZl9mcmFjdGlvbl9pdGVyPFBvcyxfdHlwZW9mX2VuY29kZV9mcmFjdGlvbjwwPiA+IHNlbGZfdDtcCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGZfdDo6bmV4dCBuZXh0O1wKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc2VsZl90Ojp0eXBlIHR5cGU7XAorICAgICAgICB9OworI2Vsc2UKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGX0lNUEwoZXhwcikgXAorICAgICAgICB0ZW1wbGF0ZTxpbnQgX1R5cGVvZl9JdGVyYXRpb24+XAorICAgICAgICBzdHJ1Y3QgX3R5cGVvZl9lbmNvZGVfZnJhY3Rpb24ge1wKKyAgICAgICAgICAgIHR5cGVkZWYgX3R5cGVvZl9lbmNvZGVfZnJhY3Rpb248X1R5cGVvZl9JdGVyYXRpb24+IHNlbGZfdDtcCisgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoaW50LF90eXBlb2ZfZW5jb2RlX29mZnNldCA9IChfVHlwZW9mX0l0ZXJhdGlvbipCT09TVF9UWVBFT0ZfTElNSVRfU0laRSkpO1wKKyAgICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6Om9mZnNldF92ZWN0b3I8Qk9PU1RfVFlQRU9GX1ZFQ1RPUigwKTw+LG5kbmJvb3N0OjptcGw6OnNpemVfdDxzZWxmX3Q6Ol90eXBlb2ZfZW5jb2RlX29mZnNldD4gPiBfdHlwZW9mX3N0YXJ0X3ZlY3RvcjtcCisgICAgICAgICAgICBCT09TVF9QUF9SRVBFQVQoQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUsQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFSVRFTSxleHByKVwKKyAgICAgICAgfTtcCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBvcz5cCisgICAgICAgIHN0cnVjdCBfdHlwZW9mX2ZyYWN0aW9uX2l0ZXIge1wKKyAgICAgICAgICAgIHR5cGVkZWYgX3R5cGVvZl9mcmFjdGlvbl9pdGVyPFBvcz4gc2VsZl90O1wKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQscG9zPShQb3M6OnZhbHVlKSk7XAorICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCxpdGVyYXRpb249KHBvcy9CT09TVF9UWVBFT0ZfTElNSVRfU0laRSkpO1wKKyAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsd2hlcmU9cG9zJUJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFKTtcCisgICAgICAgICAgICBCT09TVF9UWVBFT0ZfRlJBQ1RJT05UWVBFKClcCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjp2X2l0ZXI8ZnJhY3Rpb25fdHlwZSxuZG5ib29zdDo6bXBsOjppbnRfPHNlbGZfdDo6d2hlcmU+ID46OnR5cGUgdHlwZTtcCisgICAgICAgICAgICB0eXBlZGVmIF90eXBlb2ZfZnJhY3Rpb25faXRlcjx0eXBlbmFtZSBQb3M6Om5leHQ+IG5leHQ7XAorICAgICAgICB9OworI2VuZGlmCisjaWZkZWYgX19NV0VSS1NfXworCisjIGRlZmluZSBCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVERUYobmFtZSxleHByKSBcCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPlwKK3N0cnVjdCBCT09TVF9QUF9DQVQoX3R5cGVvZl90ZW1wbGF0ZV8sbmFtZSkge1wKKyAgICBCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVERUZfSU1QTChleHByKVwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX29mOjpkZWNvZGVfdHlwZTxfdHlwZW9mX2ZyYWN0aW9uX2l0ZXI8bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PDA+ID4gPjo6dHlwZSB0eXBlO1wKK307XAordHlwZWRlZiBCT09TVF9QUF9DQVQoX3R5cGVvZl90ZW1wbGF0ZV8sbmFtZSk8aW50PiBuYW1lOworCisjIGRlZmluZSBCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVERUZfVFBMKG5hbWUsZXhwcikgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGKG5hbWUsZXhwcikKKworI2Vsc2UKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRl9UUEwobmFtZSxleHByKSBcCisgICAgc3RydWN0IG5hbWUge1wKKyAgICAgICAgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGX0lNUEwoZXhwcilcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnR5cGVfb2Y6OmRlY29kZV90eXBlPF90eXBlb2ZfZnJhY3Rpb25faXRlcjxuZG5ib29zdDo6bXBsOjpzaXplX3Q8MD4gPiA+Ojp0eXBlIHR5cGU7XAorICAgIH07CisKKyMgZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRihuYW1lLGV4cHIpIFwKKyAgICBzdHJ1Y3QgbmFtZSB7XAorICAgICAgICBCT09TVF9UWVBFT0ZfTkVTVEVEX1RZUEVERUZfSU1QTChleHByKVwKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6ZGVjb2RlX3R5cGU8X3R5cGVvZl9mcmFjdGlvbl9pdGVyPG5kbmJvb3N0OjptcGw6OnNpemVfdDwwPiA+ID46OnR5cGUgdHlwZTtcCisgICAgfTsKKyNlbmRpZgorCisjZW5kaWYvL0JPT1NUX1RZUEVPRl9DT01QTElBTlRfVFlQRU9GX0lNUExfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi91bnN1cHBvcnRlZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi91bnN1cHBvcnRlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNhYWU0NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3Vuc3VwcG9ydGVkLmhwcApAQCAtMCwwICsxLDI5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTAgUGVkZXIgSG9sdAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRU9GX1VOU1VQUE9SVEVEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFT0ZfVU5TVVBQT1JURURfSFBQX0lOQ0xVREVECisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKyAgICBzdHJ1Y3QgdHlwZW9mX2VtdWxhdGlvbl9pc191bnN1cHBvcnRlZF9vbl90aGlzX2NvbXBpbGVyIHt9OworfX0KKworI2RlZmluZSBCT09TVF9UWVBFT0YoZXhwcikgbmRuYm9vc3Q6OnR5cGVfb2Y6OnR5cGVvZl9lbXVsYXRpb25faXNfdW5zdXBwb3J0ZWRfb25fdGhpc19jb21waWxlcgorI2RlZmluZSBCT09TVF9UWVBFT0ZfVFBMIEJPT1NUX1RZUEVPRgorCisjZGVmaW5lIEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRl9UUEwobmFtZSxleHByKSBcCitzdHJ1Y3QgbmFtZSB7XAorICAgIHR5cGVkZWYgQk9PU1RfVFlQRU9GX1RQTChleHByKSB0eXBlO1wKK307CisKKyNkZWZpbmUgQk9PU1RfVFlQRU9GX05FU1RFRF9UWVBFREVGKG5hbWUsZXhwcikgXAorc3RydWN0IG5hbWUge1wKKyAgICB0eXBlZGVmIEJPT1NUX1RZUEVPRihleHByKSB0eXBlO1wKK307CisKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVFlQRSh4KQorI2RlZmluZSBCT09TVF9UWVBFT0ZfUkVHSVNURVJfVEVNUExBVEUoeCwgcGFyYW1zKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3ZlY3Rvci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NzNkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3IuaHBwCkBAIC0wLDAgKzEsMTY2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgQXJrYWRpeSBWZXJ0bGV5YgorLy8gQ29weXJpZ2h0IChDKSAyMDA1IFBlZGVyIEhvbHQKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMDYgVG9iaWFzIFNjaHdpbmdlcgorLy8KKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9WRUNUT1JfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaW50LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL3NlbGYuaHBwPgorCisjaWZuZGVmIEJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFCisjICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFIDUwCisjZW5kaWYKKworLy8KKy8vIFRvIHJlY3JlYXRlIHRoZSBwcmVwcm9jZXNzZWQgdmVyc2lvbnMgb2YgdGhpcyBmaWxlIHByZXByb2Nlc3MgYW5kIHJ1bgorLy8KKy8vICAgJChCT09TVF9ST09UKS9saWJzL3R5cGVvZi90b29scy9wcmVwcm9jZXNzLnBsCisvLworCisjaWYgZGVmaW5lZChCT09TVF9UWVBFT0ZfUFBfSU5DTFVERV9FWFRFUk5BTCkKKworIyAgIHVuZGVmIEJPT1NUX1RZUEVPRl9QUF9JTkNMVURFX0VYVEVSTkFMCisKKyNlbGlmICFkZWZpbmVkKEJPT1NUX1RZUEVPRl9QUkVQUk9DRVNTSU5HX01PREUpICYmICFCT09TVF9QUF9JU19TRUxGSVNICisKKyMgICBkZWZpbmUgQk9PU1RfUFBfSU5ESVJFQ1RfU0VMRiA8bmRuYm9vc3QvdHlwZW9mL3ZlY3Rvci5ocHA+CisjICAgaWYgICBCT09TVF9UWVBFT0ZfTElNSVRfU0laRSA8IDUwCisjICAgICBpbmNsdWRlIEJPT1NUX1BQX0lOQ0xVREVfU0VMRigpCisjICAgZWxpZiBCT09TVF9UWVBFT0ZfTElNSVRfU0laRSA8IDEwMAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3ZlY3RvcjUwLmhwcD4KKyMgICAgIGRlZmluZSAgQk9PU1RfVFlQRU9GX1BQX1NUQVJUX1NJWkUgNTEKKyMgICAgIGluY2x1ZGUgQk9PU1RfUFBfSU5DTFVERV9TRUxGKCkKKyMgICBlbGlmIEJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFIDwgMTUwCisjICAgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvdmVjdG9yMTAwLmhwcD4KKyMgICAgIGRlZmluZSAgQk9PU1RfVFlQRU9GX1BQX1NUQVJUX1NJWkUgMTAxCisjICAgICBpbmNsdWRlIEJPT1NUX1BQX0lOQ0xVREVfU0VMRigpCisjICAgZWxpZiBCT09TVF9UWVBFT0ZfTElNSVRfU0laRSA8IDIwMAorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZW9mL3ZlY3RvcjE1MC5ocHA+CisjICAgICBkZWZpbmUgIEJPT1NUX1RZUEVPRl9QUF9TVEFSVF9TSVpFIDE1MQorIyAgICAgaW5jbHVkZSBCT09TVF9QUF9JTkNMVURFX1NFTEYoKQorIyAgIGVsaWYgQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUgPD0gMjUwCisjICAgICBpbmNsdWRlIDxuZG5ib29zdC90eXBlb2YvdmVjdG9yMjAwLmhwcD4KKyMgICAgIGRlZmluZSAgQk9PU1RfVFlQRU9GX1BQX1NUQVJUX1NJWkUgMjAxCisjICAgICBpbmNsdWRlIEJPT1NUX1BQX0lOQ0xVREVfU0VMRigpCisjICAgZWxzZQorIyAgICAgZXJyb3IgIkJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFIHRvbyBoaWdoIgorIyAgIGVuZGlmCisKKyNlbHNlLy8gZGVmaW5lZChCT09TVF9UWVBFT0ZfUFJFUFJPQ0VTU0lOR19NT0RFKSB8fCBCT09TVF9QUF9JU19TRUxGSVNICisKKyMgICBpZm5kZWYgQk9PU1RfVFlQRU9GX1BQX05FWFRfU0laRQorIyAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9QUF9ORVhUX1NJWkUgQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUKKyMgICBlbmRpZgorIyAgIGlmbmRlZiBCT09TVF9UWVBFT0ZfUFBfU1RBUlRfU0laRQorIyAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9QUF9TVEFSVF9TSVpFIDAKKyMgICBlbmRpZgorCisjICAgaWYgQk9PU1RfVFlQRU9GX1BQX1NUQVJUX1NJWkUgPD0gQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUKKworIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdF9mcm9tX3RvLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyAgICAgaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZGVjLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjICAgICBpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2xvY2FsLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2V4cHJfaWlmLmhwcD4KKyMgICAgIGluY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL25vdC5ocHA+CisKKy8vIGl0ZXJhdG9yCisKKyMgICAgIGRlZmluZSBCT09TVF9UWVBFT0Zfc3BlY19pdGVyKG4pXAorICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPlwKKyAgICAgICAgc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88bj4gPlwKKyAgICAgICAge1wKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbSAjIyBuIHR5cGU7XAorICAgICAgICAgICAgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPG4gKyAxPiA+IG5leHQ7XAorICAgICAgICB9OworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBJbmNyZWFzZV9CT09TVF9UWVBFT0ZfTElNSVRfU0laRT4gc3RydWN0IHZfaXRlcjsgLy8gbm90IGRlZmluZWQKKyMgICAgIGRlZmluZSAgQk9PU1RfUFBfTE9DQUxfTUFDUk8gIEJPT1NUX1RZUEVPRl9zcGVjX2l0ZXIKKyMgICAgIGRlZmluZSAgQk9PU1RfUFBfTE9DQUxfTElNSVRTIFwKKyAgICAgICAgKEJPT1NUX1BQX0RFQyhCT09TVF9UWVBFT0ZfUFBfU1RBUlRfU0laRSksIFwKKyAgICAgICAgIEJPT1NUX1BQX0RFQyhCT09TVF9UWVBFT0ZfTElNSVRfU0laRSkpCisjICAgICBpbmNsdWRlIEJPT1NUX1BQX0xPQ0FMX0lURVJBVEUoKQorCit9fQorCisjICAgICB1bmRlZiBCT09TVF9UWVBFT0Zfc3BlY19pdGVyCisKKy8vIHZlY3RvcgorCisjICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX3R5cGVkZWZfaXRlbSh6LCBuLCBfKVwKKyAgICAgICAgdHlwZWRlZiBQICMjIG4gaXRlbSAjIyBuOworCisjICAgICBkZWZpbmUgQk9PU1RfVFlQRU9GX3R5cGVkZWZfZmFrZV9pdGVtKHosIG4sIF8pXAorICAgICAgICB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtICMjIG47CisKKyMgICAgIGRlZmluZSBCT09TVF9UWVBFT0ZfZGVmaW5lX3ZlY3RvcihuKVwKKyAgICAgICAgdGVtcGxhdGU8Qk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgY2xhc3MgUCkgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTk9UKG4pLCBjbGFzcyBUID0gdm9pZCk+XAorICAgICAgICBzdHJ1Y3QgdmVjdG9yICMjIG5cCisgICAgICAgIHtcCisgICAgICAgICAgICB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IgIyMgbjxCT09TVF9QUF9FTlVNX1BBUkFNUyhuLFApPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luO1wKKyAgICAgICAgICAgIEJPT1NUX1BQX1JFUEVBVChuLCBCT09TVF9UWVBFT0ZfdHlwZWRlZl9pdGVtLCB+KVwKKyAgICAgICAgICAgIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPKG4sIEJPT1NUX1RZUEVPRl9QUF9ORVhUX1NJWkUsIEJPT1NUX1RZUEVPRl90eXBlZGVmX2Zha2VfaXRlbSwgfilcCisgICAgICAgIH07CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKworIyAgICAgZGVmaW5lICBCT09TVF9QUF9MT0NBTF9NQUNSTyAgQk9PU1RfVFlQRU9GX2RlZmluZV92ZWN0b3IKKyMgICAgIGRlZmluZSAgQk9PU1RfUFBfTE9DQUxfTElNSVRTIFwKKyAgICAgICAgKEJPT1NUX1RZUEVPRl9QUF9TVEFSVF9TSVpFLEJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFKQorIyAgICAgaW5jbHVkZSBCT09TVF9QUF9MT0NBTF9JVEVSQVRFKCkKKworfX0KKworIyAgICAgdW5kZWYgQk9PU1RfVFlQRU9GX3R5cGVkZWZfaXRlbQorIyAgICAgdW5kZWYgQk9PU1RfVFlQRU9GX3R5cGVkZWZfZmFrZV9pdGVtCisjICAgICB1bmRlZiBCT09TVF9UWVBFT0ZfZGVmaW5lX3ZlY3RvcgorCisvLyBwdXNoX2JhY2sKKworIyAgICAgZGVmaW5lIEJPT1NUX1RZUEVPRl9zcGVjX3B1c2hfYmFjayhuKVwKKyAgICAgICAgdGVtcGxhdGU8Qk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgY2xhc3MgUCkgQk9PU1RfUFBfQ09NTUFfSUYobikgY2xhc3MgVD5cCisgICAgICAgIHN0cnVjdCBwdXNoX2JhY2s8Qk9PU1RfUFBfQ0FUKG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IsIG4pPEJPT1NUX1BQX0VOVU1fUEFSQU1TKG4sIFApPiwgVD5cCisgICAgICAgIHtcCisgICAgICAgICAgICB0eXBlZGVmIEJPT1NUX1BQX0NBVChuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yLCBCT09TVF9QUF9JTkMobikpPFwKKyAgICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCBQKSBCT09TVF9QUF9DT01NQV9JRihuKSBUXAorICAgICAgICAgICAgPiB0eXBlO1wKKyAgICAgICAgfTsKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworCisjICAgaWYgICBCT09TVF9UWVBFT0ZfTElNSVRfU0laRSA8IDUwCisgICAgdGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjayB7CisgICAgICAgIHR5cGVkZWYgViB0eXBlOworICAgIH07CisjICAgZW5kaWYKKyAgICAvL2RlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIGxldCBwdXNoX2JhY2sgaWdub3JlIFQsIGFuZCByZXR1cm4gdGhlIGlucHV0IHZlY3Rvci4KKyAgICAvL1RoaXMgaXMgdG8gbGV0IEJPT1NUX1RZUEVPRl9ORVNURURfVFlQRURFRiB3b3JrIHByb3Blcmx5IHdpdGggdGhlIGRlZmF1bHQgdmVjdG9yLgorIyAgICAgZGVmaW5lICBCT09TVF9QUF9MT0NBTF9NQUNSTyAgQk9PU1RfVFlQRU9GX3NwZWNfcHVzaF9iYWNrCisjICAgICBkZWZpbmUgIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUyBcCisgICAgICAgIChCT09TVF9QUF9ERUMoQk9PU1RfVFlQRU9GX1BQX1NUQVJUX1NJWkUpLCBcCisgICAgICAgICBCT09TVF9QUF9ERUMoQk9PU1RfVFlQRU9GX0xJTUlUX1NJWkUpKQorIyAgICAgaW5jbHVkZSBCT09TVF9QUF9MT0NBTF9JVEVSQVRFKCkKKworfX0KKworIyAgICAgdW5kZWYgQk9PU1RfVFlQRU9GX3NwZWNfcHVzaF9iYWNrCisKKyMgICBlbmRpZi8vQk9PU1RfVFlQRU9GX1BQX1NUQVJUX1NJWkU8PUJPT1NUX1RZUEVPRl9MSU1JVF9TSVpFCisjICAgdW5kZWYgIEJPT1NUX1RZUEVPRl9QUF9TVEFSVF9TSVpFCisjICAgdW5kZWYgIEJPT1NUX1RZUEVPRl9QUF9ORVhUX1NJWkUKKworI2VuZGlmLy9CT09TVF9UWVBFT0ZfUFJFUFJPQ0VTU0lOR19NT0RFIHx8IEJPT1NUX1BQX0lTX1NFTEZJU0gKKworI2RlZmluZSBCT09TVF9UWVBFT0ZfVkVDVE9SX0hQUF9JTkNMVURFRAorI2VuZGlmLy9CT09TVF9UWVBFT0ZfVkVDVE9SX0hQUF9JTkNMVURFRAorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3IxMDAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdmVjdG9yMTAwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODg3NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdmVjdG9yMTAwLmhwcApAQCAtMCwwICsxLDMyMSBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgQXJrYWRpeSBWZXJ0bGV5YgorLy8gQ29weXJpZ2h0IChDKSAyMDA1IFBlZGVyIEhvbHQKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLyBQcmVwcm9jZXNzZWQgY29kZSwgZG8gbm90IGVkaXQgbWFudWFsbHkgIQorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBJbmNyZWFzZV9CT09TVF9UWVBFT0ZfTElNSVRfU0laRT4gc3RydWN0IHZfaXRlcjsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDIyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDIyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyNiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mjc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyOSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDMxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzMj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzNT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzOD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mzk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTUwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDUyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDUyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTUzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDU1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTU2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDU4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTU5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDYxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDYxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDY0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDY0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTY1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDY3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDY3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTY4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Njk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDcwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDcwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTcxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDczPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDczICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTc0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDc2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTc3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nzg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDc5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTgwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDgyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDgyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTgzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDg1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTg2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDg4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTg5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDkxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDkxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDk0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDk0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTk1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDk3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDk3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTk4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTkgKyAxPiA+IG5leHQ7IH07Cit9fQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA9IHZvaWQ+IHN0cnVjdCB2ZWN0b3IwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMDw+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0wOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgPiBzdHJ1Y3QgdmVjdG9yMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE8IFAwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSA+IHN0cnVjdCB2ZWN0b3IyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjwgUDAgLCBQMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyID4gc3RydWN0IHZlY3RvcjMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzPCBQMCAsIFAxICwgUDI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgPiBzdHJ1Y3QgdmVjdG9yNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ8IFAwICwgUDEgLCBQMiAsIFAzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCA+IHN0cnVjdCB2ZWN0b3I1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ID4gc3RydWN0IHZlY3RvcjYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgPiBzdHJ1Y3QgdmVjdG9yNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyA+IHN0cnVjdCB2ZWN0b3I4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ID4gc3RydWN0IHZlY3RvcjkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgPiBzdHJ1Y3QgdmVjdG9yMTAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCA+IHN0cnVjdCB2ZWN0b3IxMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExID4gc3RydWN0IHZlY3RvcjEyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgPiBzdHJ1Y3QgdmVjdG9yMTMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyA+IHN0cnVjdCB2ZWN0b3IxNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ID4gc3RydWN0IHZlY3RvcjE1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgPiBzdHJ1Y3QgdmVjdG9yMTYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiA+IHN0cnVjdCB2ZWN0b3IxNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ID4gc3RydWN0IHZlY3RvcjE4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggPiBzdHJ1Y3QgdmVjdG9yMTkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSA+IHN0cnVjdCB2ZWN0b3IyMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjIwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwID4gc3RydWN0IHZlY3RvcjIxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgPiBzdHJ1Y3QgdmVjdG9yMjIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiA+IHN0cnVjdCB2ZWN0b3IyMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjIzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzID4gc3RydWN0IHZlY3RvcjI0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgPiBzdHJ1Y3QgdmVjdG9yMjUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSA+IHN0cnVjdCB2ZWN0b3IyNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ID4gc3RydWN0IHZlY3RvcjI3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgPiBzdHJ1Y3QgdmVjdG9yMjggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCA+IHN0cnVjdCB2ZWN0b3IyOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ID4gc3RydWN0IHZlY3RvcjMwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgPiBzdHJ1Y3QgdmVjdG9yMzEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSA+IHN0cnVjdCB2ZWN0b3IzMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjMyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyID4gc3RydWN0IHZlY3RvcjMzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgPiBzdHJ1Y3QgdmVjdG9yMzQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCA+IHN0cnVjdCB2ZWN0b3IzNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ID4gc3RydWN0IHZlY3RvcjM2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgPiBzdHJ1Y3QgdmVjdG9yMzcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyA+IHN0cnVjdCB2ZWN0b3IzOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ID4gc3RydWN0IHZlY3RvcjM5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgPiBzdHJ1Y3QgdmVjdG9yNDAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCA+IHN0cnVjdCB2ZWN0b3I0MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxID4gc3RydWN0IHZlY3RvcjQyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgPiBzdHJ1Y3QgdmVjdG9yNDMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyA+IHN0cnVjdCB2ZWN0b3I0NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ID4gc3RydWN0IHZlY3RvcjQ1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgPiBzdHJ1Y3QgdmVjdG9yNDYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiA+IHN0cnVjdCB2ZWN0b3I0NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ID4gc3RydWN0IHZlY3RvcjQ4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggPiBzdHJ1Y3QgdmVjdG9yNDkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSA+IHN0cnVjdCB2ZWN0b3I1MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjUwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwID4gc3RydWN0IHZlY3RvcjUxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgPiBzdHJ1Y3QgdmVjdG9yNTIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiA+IHN0cnVjdCB2ZWN0b3I1MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjUzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzID4gc3RydWN0IHZlY3RvcjU0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgPiBzdHJ1Y3QgdmVjdG9yNTUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSA+IHN0cnVjdCB2ZWN0b3I1NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ID4gc3RydWN0IHZlY3RvcjU3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgPiBzdHJ1Y3QgdmVjdG9yNTggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCA+IHN0cnVjdCB2ZWN0b3I1OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ID4gc3RydWN0IHZlY3RvcjYwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgPiBzdHJ1Y3QgdmVjdG9yNjEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSA+IHN0cnVjdCB2ZWN0b3I2MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjYyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyID4gc3RydWN0IHZlY3RvcjYzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgPiBzdHJ1Y3QgdmVjdG9yNjQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCA+IHN0cnVjdCB2ZWN0b3I2NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ID4gc3RydWN0IHZlY3RvcjY2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgPiBzdHJ1Y3QgdmVjdG9yNjcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyA+IHN0cnVjdCB2ZWN0b3I2OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ID4gc3RydWN0IHZlY3RvcjY5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgPiBzdHJ1Y3QgdmVjdG9yNzAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCA+IHN0cnVjdCB2ZWN0b3I3MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjcxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxID4gc3RydWN0IHZlY3RvcjcyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgPiBzdHJ1Y3QgdmVjdG9yNzMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyA+IHN0cnVjdCB2ZWN0b3I3NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ID4gc3RydWN0IHZlY3Rvcjc1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgPiBzdHJ1Y3QgdmVjdG9yNzYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiA+IHN0cnVjdCB2ZWN0b3I3NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ID4gc3RydWN0IHZlY3Rvcjc4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggPiBzdHJ1Y3QgdmVjdG9yNzkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSA+IHN0cnVjdCB2ZWN0b3I4MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjgwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwID4gc3RydWN0IHZlY3RvcjgxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgPiBzdHJ1Y3QgdmVjdG9yODIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiA+IHN0cnVjdCB2ZWN0b3I4MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjgzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzID4gc3RydWN0IHZlY3Rvcjg0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgPiBzdHJ1Y3QgdmVjdG9yODUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSA+IHN0cnVjdCB2ZWN0b3I4NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ID4gc3RydWN0IHZlY3Rvcjg3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgPiBzdHJ1Y3QgdmVjdG9yODggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCA+IHN0cnVjdCB2ZWN0b3I4OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ID4gc3RydWN0IHZlY3RvcjkwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgPiBzdHJ1Y3QgdmVjdG9yOTEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSA+IHN0cnVjdCB2ZWN0b3I5MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjkyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyID4gc3RydWN0IHZlY3RvcjkzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgPiBzdHJ1Y3QgdmVjdG9yOTQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIFA5MyBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCA+IHN0cnVjdCB2ZWN0b3I5NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ID4gc3RydWN0IHZlY3Rvcjk2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgPiBzdHJ1Y3QgdmVjdG9yOTcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIFA5MyBpdGVtOTM7IHR5cGVkZWYgUDk0IGl0ZW05NDsgdHlwZWRlZiBQOTUgaXRlbTk1OyB0eXBlZGVmIFA5NiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyA+IHN0cnVjdCB2ZWN0b3I5OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ID4gc3RydWN0IHZlY3Rvcjk5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgPiBzdHJ1Y3QgdmVjdG9yMTAwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTAwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgfTsKK319CituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisgICAgdGVtcGxhdGU8Y2xhc3MgViwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjayB7CisgICAgICAgIHR5cGVkZWYgViB0eXBlOworICAgIH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IwPD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE8IFAwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyPCBQMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI8IFAwICwgUDE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM8IFAwICwgUDEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM8IFAwICwgUDEgLCBQMj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDwgUDAgLCBQMSAsIFAyICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ8IFAwICwgUDEgLCBQMiAsIFAzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjIwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjIxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjIyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjIzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjI5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjMwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjMxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjMyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjMzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjM5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjUwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjUxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjUyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjUzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjU5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjYwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjYxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjYyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjYzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjY5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjcwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjcxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjcyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjczPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjgwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjgxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjgyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjgzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjg5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjkwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjkxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjkyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjkzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjk5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBUID4gdHlwZTsgfTsKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3IxNTAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdmVjdG9yMTUwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzlhNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC90eXBlb2YvdmVjdG9yMTUwLmhwcApAQCAtMCwwICsxLDQ3MSBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgQXJrYWRpeSBWZXJ0bGV5YgorLy8gQ29weXJpZ2h0IChDKSAyMDA1IFBlZGVyIEhvbHQKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLyBQcmVwcm9jZXNzZWQgY29kZSwgZG8gbm90IGVkaXQgbWFudWFsbHkgIQorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBJbmNyZWFzZV9CT09TVF9UWVBFT0ZfTElNSVRfU0laRT4gc3RydWN0IHZfaXRlcjsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDIyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDIyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyNiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mjc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyOSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDMxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzMj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzNT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzOD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mzk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTUwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDUyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDUyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTUzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDU1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTU2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDU4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTU5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDYxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDYxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDY0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDY0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTY1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDY3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDY3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTY4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Njk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDcwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDcwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTcxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDczPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDczICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTc0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDc2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTc3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nzg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDc5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTgwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDgyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDgyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTgzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDg1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTg2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDg4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTg5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDkxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDkxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDk0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDk0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTk1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDk3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDk3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTk4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTAwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMDEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTAyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTAyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTAzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMDQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTA1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTA1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTA2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMDcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTA4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTA4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTA5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExMCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTExPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTExIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExMj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTEyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExMyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTE0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTE0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExNT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTE1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExNiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTE3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTE3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExOD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTE4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExOSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTIwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTIwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTIxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTIzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTIzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTI0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTI2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTI3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTI5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTMwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMzEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTMyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTMyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTMzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMzQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTM1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTM1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTM2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMzcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTM4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTM4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTM5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTQxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTQ0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQ0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQ1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTQ3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQ3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQ4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0OSArIDE+ID4gbmV4dDsgfTsKK319CituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdHlwZV9vZiB7CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBUID0gdm9pZD4gc3RydWN0IHZlY3RvcjAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IwPD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCA+IHN0cnVjdCB2ZWN0b3IxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTwgUDA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxID4gc3RydWN0IHZlY3RvcjIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyPCBQMCAsIFAxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgPiBzdHJ1Y3QgdmVjdG9yMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM8IFAwICwgUDEgLCBQMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyA+IHN0cnVjdCB2ZWN0b3I0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDwgUDAgLCBQMSAsIFAyICwgUDM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ID4gc3RydWN0IHZlY3RvcjUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgPiBzdHJ1Y3QgdmVjdG9yNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiA+IHN0cnVjdCB2ZWN0b3I3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ID4gc3RydWN0IHZlY3RvcjggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggPiBzdHJ1Y3QgdmVjdG9yOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSA+IHN0cnVjdCB2ZWN0b3IxMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwID4gc3RydWN0IHZlY3RvcjExIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgPiBzdHJ1Y3QgdmVjdG9yMTIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiA+IHN0cnVjdCB2ZWN0b3IxMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzID4gc3RydWN0IHZlY3RvcjE0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgPiBzdHJ1Y3QgdmVjdG9yMTUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSA+IHN0cnVjdCB2ZWN0b3IxNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ID4gc3RydWN0IHZlY3RvcjE3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgPiBzdHJ1Y3QgdmVjdG9yMTggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCA+IHN0cnVjdCB2ZWN0b3IxOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ID4gc3RydWN0IHZlY3RvcjIwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgPiBzdHJ1Y3QgdmVjdG9yMjEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSA+IHN0cnVjdCB2ZWN0b3IyMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjIyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyID4gc3RydWN0IHZlY3RvcjIzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgPiBzdHJ1Y3QgdmVjdG9yMjQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCA+IHN0cnVjdCB2ZWN0b3IyNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ID4gc3RydWN0IHZlY3RvcjI2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgPiBzdHJ1Y3QgdmVjdG9yMjcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyA+IHN0cnVjdCB2ZWN0b3IyOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ID4gc3RydWN0IHZlY3RvcjI5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgPiBzdHJ1Y3QgdmVjdG9yMzAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCA+IHN0cnVjdCB2ZWN0b3IzMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjMxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxID4gc3RydWN0IHZlY3RvcjMyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgPiBzdHJ1Y3QgdmVjdG9yMzMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyA+IHN0cnVjdCB2ZWN0b3IzNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ID4gc3RydWN0IHZlY3RvcjM1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgPiBzdHJ1Y3QgdmVjdG9yMzYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiA+IHN0cnVjdCB2ZWN0b3IzNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ID4gc3RydWN0IHZlY3RvcjM4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggPiBzdHJ1Y3QgdmVjdG9yMzkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSA+IHN0cnVjdCB2ZWN0b3I0MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwID4gc3RydWN0IHZlY3RvcjQxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgPiBzdHJ1Y3QgdmVjdG9yNDIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiA+IHN0cnVjdCB2ZWN0b3I0MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzID4gc3RydWN0IHZlY3RvcjQ0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgPiBzdHJ1Y3QgdmVjdG9yNDUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSA+IHN0cnVjdCB2ZWN0b3I0NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ID4gc3RydWN0IHZlY3RvcjQ3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgPiBzdHJ1Y3QgdmVjdG9yNDggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCA+IHN0cnVjdCB2ZWN0b3I0OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ID4gc3RydWN0IHZlY3RvcjUwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgPiBzdHJ1Y3QgdmVjdG9yNTEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSA+IHN0cnVjdCB2ZWN0b3I1MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjUyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyID4gc3RydWN0IHZlY3RvcjUzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgPiBzdHJ1Y3QgdmVjdG9yNTQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCA+IHN0cnVjdCB2ZWN0b3I1NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ID4gc3RydWN0IHZlY3RvcjU2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgPiBzdHJ1Y3QgdmVjdG9yNTcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyA+IHN0cnVjdCB2ZWN0b3I1OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ID4gc3RydWN0IHZlY3RvcjU5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgPiBzdHJ1Y3QgdmVjdG9yNjAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCA+IHN0cnVjdCB2ZWN0b3I2MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjYxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxID4gc3RydWN0IHZlY3RvcjYyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgPiBzdHJ1Y3QgdmVjdG9yNjMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyA+IHN0cnVjdCB2ZWN0b3I2NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ID4gc3RydWN0IHZlY3RvcjY1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgPiBzdHJ1Y3QgdmVjdG9yNjYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiA+IHN0cnVjdCB2ZWN0b3I2NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ID4gc3RydWN0IHZlY3RvcjY4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggPiBzdHJ1Y3QgdmVjdG9yNjkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSA+IHN0cnVjdCB2ZWN0b3I3MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjcwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwID4gc3RydWN0IHZlY3RvcjcxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgPiBzdHJ1Y3QgdmVjdG9yNzIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiA+IHN0cnVjdCB2ZWN0b3I3MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjczPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczID4gc3RydWN0IHZlY3Rvcjc0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgPiBzdHJ1Y3QgdmVjdG9yNzUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSA+IHN0cnVjdCB2ZWN0b3I3NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ID4gc3RydWN0IHZlY3Rvcjc3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgPiBzdHJ1Y3QgdmVjdG9yNzggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCA+IHN0cnVjdCB2ZWN0b3I3OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ID4gc3RydWN0IHZlY3RvcjgwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgPiBzdHJ1Y3QgdmVjdG9yODEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSA+IHN0cnVjdCB2ZWN0b3I4MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjgyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyID4gc3RydWN0IHZlY3RvcjgzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgPiBzdHJ1Y3QgdmVjdG9yODQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCA+IHN0cnVjdCB2ZWN0b3I4NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ID4gc3RydWN0IHZlY3Rvcjg2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgPiBzdHJ1Y3QgdmVjdG9yODcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyA+IHN0cnVjdCB2ZWN0b3I4OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ID4gc3RydWN0IHZlY3Rvcjg5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgPiBzdHJ1Y3QgdmVjdG9yOTAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCA+IHN0cnVjdCB2ZWN0b3I5MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjkxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxID4gc3RydWN0IHZlY3RvcjkyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgPiBzdHJ1Y3QgdmVjdG9yOTMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyA+IHN0cnVjdCB2ZWN0b3I5NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ID4gc3RydWN0IHZlY3Rvcjk1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgPiBzdHJ1Y3QgdmVjdG9yOTYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIFA5MyBpdGVtOTM7IHR5cGVkZWYgUDk0IGl0ZW05NDsgdHlwZWRlZiBQOTUgaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiA+IHN0cnVjdCB2ZWN0b3I5NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ID4gc3RydWN0IHZlY3Rvcjk4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggPiBzdHJ1Y3QgdmVjdG9yOTkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIFA5MyBpdGVtOTM7IHR5cGVkZWYgUDk0IGl0ZW05NDsgdHlwZWRlZiBQOTUgaXRlbTk1OyB0eXBlZGVmIFA5NiBpdGVtOTY7IHR5cGVkZWYgUDk3IGl0ZW05NzsgdHlwZWRlZiBQOTggaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSA+IHN0cnVjdCB2ZWN0b3IxMDAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwID4gc3RydWN0IHZlY3RvcjEwMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgPiBzdHJ1Y3QgdmVjdG9yMTAyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTAyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiA+IHN0cnVjdCB2ZWN0b3IxMDMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzID4gc3RydWN0IHZlY3RvcjEwNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgPiBzdHJ1Y3QgdmVjdG9yMTA1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTA1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSA+IHN0cnVjdCB2ZWN0b3IxMDYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ID4gc3RydWN0IHZlY3RvcjEwNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgPiBzdHJ1Y3QgdmVjdG9yMTA4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTA4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCA+IHN0cnVjdCB2ZWN0b3IxMDkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ID4gc3RydWN0IHZlY3RvcjExMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgPiBzdHJ1Y3QgdmVjdG9yMTExIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTExPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSA+IHN0cnVjdCB2ZWN0b3IxMTIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyID4gc3RydWN0IHZlY3RvcjExMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgPiBzdHJ1Y3QgdmVjdG9yMTE0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTE0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCA+IHN0cnVjdCB2ZWN0b3IxMTUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ID4gc3RydWN0IHZlY3RvcjExNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgPiBzdHJ1Y3QgdmVjdG9yMTE3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTE3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyA+IHN0cnVjdCB2ZWN0b3IxMTggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ID4gc3RydWN0IHZlY3RvcjExOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgPiBzdHJ1Y3QgdmVjdG9yMTIwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTIwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCA+IHN0cnVjdCB2ZWN0b3IxMjEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxID4gc3RydWN0IHZlY3RvcjEyMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgPiBzdHJ1Y3QgdmVjdG9yMTIzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTIzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyA+IHN0cnVjdCB2ZWN0b3IxMjQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ID4gc3RydWN0IHZlY3RvcjEyNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgPiBzdHJ1Y3QgdmVjdG9yMTI2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTI2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiA+IHN0cnVjdCB2ZWN0b3IxMjcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ID4gc3RydWN0IHZlY3RvcjEyOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggPiBzdHJ1Y3QgdmVjdG9yMTI5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTI5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSA+IHN0cnVjdCB2ZWN0b3IxMzAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwID4gc3RydWN0IHZlY3RvcjEzMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgPiBzdHJ1Y3QgdmVjdG9yMTMyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTMyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiA+IHN0cnVjdCB2ZWN0b3IxMzMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzID4gc3RydWN0IHZlY3RvcjEzNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgPiBzdHJ1Y3QgdmVjdG9yMTM1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTM1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSA+IHN0cnVjdCB2ZWN0b3IxMzYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ID4gc3RydWN0IHZlY3RvcjEzNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgPiBzdHJ1Y3QgdmVjdG9yMTM4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTM4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCA+IHN0cnVjdCB2ZWN0b3IxMzkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ID4gc3RydWN0IHZlY3RvcjE0MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgPiBzdHJ1Y3QgdmVjdG9yMTQxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSA+IHN0cnVjdCB2ZWN0b3IxNDIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyID4gc3RydWN0IHZlY3RvcjE0MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgPiBzdHJ1Y3QgdmVjdG9yMTQ0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQ0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCA+IHN0cnVjdCB2ZWN0b3IxNDUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgUDE0NCBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ID4gc3RydWN0IHZlY3RvcjE0NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgUDE0NCBpdGVtMTQ0OyB0eXBlZGVmIFAxNDUgaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgPiBzdHJ1Y3QgdmVjdG9yMTQ3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQ3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgUDE0NCBpdGVtMTQ0OyB0eXBlZGVmIFAxNDUgaXRlbTE0NTsgdHlwZWRlZiBQMTQ2IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyA+IHN0cnVjdCB2ZWN0b3IxNDggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgUDE0NCBpdGVtMTQ0OyB0eXBlZGVmIFAxNDUgaXRlbTE0NTsgdHlwZWRlZiBQMTQ2IGl0ZW0xNDY7IHR5cGVkZWYgUDE0NyBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ID4gc3RydWN0IHZlY3RvcjE0OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgUDE0NCBpdGVtMTQ0OyB0eXBlZGVmIFAxNDUgaXRlbTE0NTsgdHlwZWRlZiBQMTQ2IGl0ZW0xNDY7IHR5cGVkZWYgUDE0NyBpdGVtMTQ3OyB0eXBlZGVmIFAxNDggaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgPiBzdHJ1Y3QgdmVjdG9yMTUwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTUwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBQOTkgaXRlbTk5OyB0eXBlZGVmIFAxMDAgaXRlbTEwMDsgdHlwZWRlZiBQMTAxIGl0ZW0xMDE7IHR5cGVkZWYgUDEwMiBpdGVtMTAyOyB0eXBlZGVmIFAxMDMgaXRlbTEwMzsgdHlwZWRlZiBQMTA0IGl0ZW0xMDQ7IHR5cGVkZWYgUDEwNSBpdGVtMTA1OyB0eXBlZGVmIFAxMDYgaXRlbTEwNjsgdHlwZWRlZiBQMTA3IGl0ZW0xMDc7IHR5cGVkZWYgUDEwOCBpdGVtMTA4OyB0eXBlZGVmIFAxMDkgaXRlbTEwOTsgdHlwZWRlZiBQMTEwIGl0ZW0xMTA7IHR5cGVkZWYgUDExMSBpdGVtMTExOyB0eXBlZGVmIFAxMTIgaXRlbTExMjsgdHlwZWRlZiBQMTEzIGl0ZW0xMTM7IHR5cGVkZWYgUDExNCBpdGVtMTE0OyB0eXBlZGVmIFAxMTUgaXRlbTExNTsgdHlwZWRlZiBQMTE2IGl0ZW0xMTY7IHR5cGVkZWYgUDExNyBpdGVtMTE3OyB0eXBlZGVmIFAxMTggaXRlbTExODsgdHlwZWRlZiBQMTE5IGl0ZW0xMTk7IHR5cGVkZWYgUDEyMCBpdGVtMTIwOyB0eXBlZGVmIFAxMjEgaXRlbTEyMTsgdHlwZWRlZiBQMTIyIGl0ZW0xMjI7IHR5cGVkZWYgUDEyMyBpdGVtMTIzOyB0eXBlZGVmIFAxMjQgaXRlbTEyNDsgdHlwZWRlZiBQMTI1IGl0ZW0xMjU7IHR5cGVkZWYgUDEyNiBpdGVtMTI2OyB0eXBlZGVmIFAxMjcgaXRlbTEyNzsgdHlwZWRlZiBQMTI4IGl0ZW0xMjg7IHR5cGVkZWYgUDEyOSBpdGVtMTI5OyB0eXBlZGVmIFAxMzAgaXRlbTEzMDsgdHlwZWRlZiBQMTMxIGl0ZW0xMzE7IHR5cGVkZWYgUDEzMiBpdGVtMTMyOyB0eXBlZGVmIFAxMzMgaXRlbTEzMzsgdHlwZWRlZiBQMTM0IGl0ZW0xMzQ7IHR5cGVkZWYgUDEzNSBpdGVtMTM1OyB0eXBlZGVmIFAxMzYgaXRlbTEzNjsgdHlwZWRlZiBQMTM3IGl0ZW0xMzc7IHR5cGVkZWYgUDEzOCBpdGVtMTM4OyB0eXBlZGVmIFAxMzkgaXRlbTEzOTsgdHlwZWRlZiBQMTQwIGl0ZW0xNDA7IHR5cGVkZWYgUDE0MSBpdGVtMTQxOyB0eXBlZGVmIFAxNDIgaXRlbTE0MjsgdHlwZWRlZiBQMTQzIGl0ZW0xNDM7IHR5cGVkZWYgUDE0NCBpdGVtMTQ0OyB0eXBlZGVmIFAxNDUgaXRlbTE0NTsgdHlwZWRlZiBQMTQ2IGl0ZW0xNDY7IHR5cGVkZWYgUDE0NyBpdGVtMTQ3OyB0eXBlZGVmIFAxNDggaXRlbTE0ODsgdHlwZWRlZiBQMTQ5IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IH07Cit9fQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgIHRlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2sgeworICAgICAgICB0eXBlZGVmIFYgdHlwZTsKKyAgICB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMDw+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE8IFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxPCBQMD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjwgUDAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyPCBQMCAsIFAxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzPCBQMCAsIFAxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzPCBQMCAsIFAxICwgUDI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ8IFAwICwgUDEgLCBQMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0PCBQMCAsIFAxICwgUDIgLCBQMz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTAzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwND4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTEyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTIxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTMwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTMzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzND4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0Mz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0Nj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFQgPiB0eXBlOyB9OworfX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3ZlY3RvcjIwMC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3IyMDAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyODU5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3IyMDAuaHBwCkBAIC0wLDAgKzEsNjIxIEBACisKKy8vIENvcHlyaWdodCAoQykgMjAwNSBBcmthZGl5IFZlcnRsZXliCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgUGVkZXIgSG9sdAorLy8KKy8vIFVzZSBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgYm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKy8vIFByZXByb2Nlc3NlZCBjb2RlLCBkbyBub3QgZWRpdCBtYW51YWxseSAhCisKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgIHRlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIEluY3JlYXNlX0JPT1NUX1RZUEVPRl9MSU1JVF9TSVpFPiBzdHJ1Y3Qgdl9pdGVyOworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxOD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDIwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDIwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDIzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDIzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mjg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzMCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDMyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzMyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzNiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mzc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzOSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDUwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDUwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTUxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDUzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDUzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTU0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDU2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTU3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw1NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NTg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW01OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NTggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDU5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDU5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDYyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDYyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NjQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDY1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDY1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTY2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Njc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW02NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NjcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDY4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNjggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDY4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw2OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTY5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw2OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDcxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDcxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTcyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDc0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTc1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NzY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNzcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDc3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw3OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTc4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nzk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NzkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDgwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDgwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTgxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDgzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDgzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTg0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDg2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTg3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw4NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88ODg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW04OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88ODggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDg5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtODkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDg5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDkyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDkyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDk1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDk1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTk2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OTc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW05NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OTcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDk4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOTggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDk4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw5OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTk5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw5OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTAwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTAwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTAxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMDIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTAzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTAzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTA0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMDUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTA2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTA2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEwNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTA3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMDggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTA5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTA5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMDkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTEwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTEyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTEyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTEzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTE1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTE1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTE2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMTcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDExNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTE4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTE4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMTggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDExOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTE5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyMCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTIxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTIxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyMj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTIyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyMyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTI0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyNT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTI1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyNiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTI3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyOD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEyOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTI4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMjk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMjkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEyOSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTMwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTMwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTMxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMzIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTMzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTMzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTM0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMzUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTM2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTM2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTEzNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTM3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMzggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTM5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTM5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMzkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTQyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTQ1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQ1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQ2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNDcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTQ4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTQ4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNDggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE0OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTQ5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTUxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTUxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE1MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTUyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTU0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTU0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE1NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTU1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTU3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTU3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE1OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTU4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNTk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE1OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTYwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTYwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE2MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTYxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNjIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTYzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTYzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE2NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTY0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNjUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTY2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTY2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE2NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTY3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNjggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTY5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTY5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNjkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3MCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTcwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNzE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNzEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTcyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTcyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNzIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3MyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTczICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNzQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNzQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTc1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTc1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNzUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3NiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTc2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNzc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNzcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTc4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTc4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNzggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE3OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3OSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTc5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxODA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xODAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4MCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTgxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTgxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxODEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4Mj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE4MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTgyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxODM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xODMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4MyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTg0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTg0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxODQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4NT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE4NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTg1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxODY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xODYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4NiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTg3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTg3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxODcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4OD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE4OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTg4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxODk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xODkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE4OSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTkwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTkwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE5MSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTkxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOTIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTkzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTkzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE5NCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTk0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOTUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTk2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTk2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE5NyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTk3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOTggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTk5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTk5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxOTkgKyAxPiA+IG5leHQ7IH07Cit9fQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVCA9IHZvaWQ+IHN0cnVjdCB2ZWN0b3IwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMDw+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0wOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgPiBzdHJ1Y3QgdmVjdG9yMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE8IFAwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSA+IHN0cnVjdCB2ZWN0b3IyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjwgUDAgLCBQMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyID4gc3RydWN0IHZlY3RvcjMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzPCBQMCAsIFAxICwgUDI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgPiBzdHJ1Y3QgdmVjdG9yNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ8IFAwICwgUDEgLCBQMiAsIFAzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCA+IHN0cnVjdCB2ZWN0b3I1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ID4gc3RydWN0IHZlY3RvcjYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgPiBzdHJ1Y3QgdmVjdG9yNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyA+IHN0cnVjdCB2ZWN0b3I4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ID4gc3RydWN0IHZlY3RvcjkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgPiBzdHJ1Y3QgdmVjdG9yMTAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCA+IHN0cnVjdCB2ZWN0b3IxMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExID4gc3RydWN0IHZlY3RvcjEyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgPiBzdHJ1Y3QgdmVjdG9yMTMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyA+IHN0cnVjdCB2ZWN0b3IxNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ID4gc3RydWN0IHZlY3RvcjE1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgPiBzdHJ1Y3QgdmVjdG9yMTYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiA+IHN0cnVjdCB2ZWN0b3IxNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ID4gc3RydWN0IHZlY3RvcjE4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggPiBzdHJ1Y3QgdmVjdG9yMTkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSA+IHN0cnVjdCB2ZWN0b3IyMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjIwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwID4gc3RydWN0IHZlY3RvcjIxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgPiBzdHJ1Y3QgdmVjdG9yMjIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiA+IHN0cnVjdCB2ZWN0b3IyMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjIzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzID4gc3RydWN0IHZlY3RvcjI0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgPiBzdHJ1Y3QgdmVjdG9yMjUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSA+IHN0cnVjdCB2ZWN0b3IyNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ID4gc3RydWN0IHZlY3RvcjI3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgPiBzdHJ1Y3QgdmVjdG9yMjggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCA+IHN0cnVjdCB2ZWN0b3IyOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ID4gc3RydWN0IHZlY3RvcjMwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgPiBzdHJ1Y3QgdmVjdG9yMzEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSA+IHN0cnVjdCB2ZWN0b3IzMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjMyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyID4gc3RydWN0IHZlY3RvcjMzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgPiBzdHJ1Y3QgdmVjdG9yMzQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCA+IHN0cnVjdCB2ZWN0b3IzNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ID4gc3RydWN0IHZlY3RvcjM2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgPiBzdHJ1Y3QgdmVjdG9yMzcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyA+IHN0cnVjdCB2ZWN0b3IzOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ID4gc3RydWN0IHZlY3RvcjM5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgPiBzdHJ1Y3QgdmVjdG9yNDAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCA+IHN0cnVjdCB2ZWN0b3I0MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxID4gc3RydWN0IHZlY3RvcjQyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgPiBzdHJ1Y3QgdmVjdG9yNDMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyA+IHN0cnVjdCB2ZWN0b3I0NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ID4gc3RydWN0IHZlY3RvcjQ1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgPiBzdHJ1Y3QgdmVjdG9yNDYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiA+IHN0cnVjdCB2ZWN0b3I0NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ID4gc3RydWN0IHZlY3RvcjQ4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggPiBzdHJ1Y3QgdmVjdG9yNDkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSA+IHN0cnVjdCB2ZWN0b3I1MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjUwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwID4gc3RydWN0IHZlY3RvcjUxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgPiBzdHJ1Y3QgdmVjdG9yNTIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiA+IHN0cnVjdCB2ZWN0b3I1MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjUzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzID4gc3RydWN0IHZlY3RvcjU0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgPiBzdHJ1Y3QgdmVjdG9yNTUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSA+IHN0cnVjdCB2ZWN0b3I1NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ID4gc3RydWN0IHZlY3RvcjU3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgPiBzdHJ1Y3QgdmVjdG9yNTggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCA+IHN0cnVjdCB2ZWN0b3I1OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ID4gc3RydWN0IHZlY3RvcjYwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgPiBzdHJ1Y3QgdmVjdG9yNjEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSA+IHN0cnVjdCB2ZWN0b3I2MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjYyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyID4gc3RydWN0IHZlY3RvcjYzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgPiBzdHJ1Y3QgdmVjdG9yNjQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCA+IHN0cnVjdCB2ZWN0b3I2NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ID4gc3RydWN0IHZlY3RvcjY2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgPiBzdHJ1Y3QgdmVjdG9yNjcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyA+IHN0cnVjdCB2ZWN0b3I2OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjY4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ID4gc3RydWN0IHZlY3RvcjY5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgPiBzdHJ1Y3QgdmVjdG9yNzAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCA+IHN0cnVjdCB2ZWN0b3I3MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjcxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxID4gc3RydWN0IHZlY3RvcjcyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgPiBzdHJ1Y3QgdmVjdG9yNzMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyA+IHN0cnVjdCB2ZWN0b3I3NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ID4gc3RydWN0IHZlY3Rvcjc1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgPiBzdHJ1Y3QgdmVjdG9yNzYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiA+IHN0cnVjdCB2ZWN0b3I3NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjc3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ID4gc3RydWN0IHZlY3Rvcjc4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggPiBzdHJ1Y3QgdmVjdG9yNzkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSA+IHN0cnVjdCB2ZWN0b3I4MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjgwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwID4gc3RydWN0IHZlY3RvcjgxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgPiBzdHJ1Y3QgdmVjdG9yODIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiA+IHN0cnVjdCB2ZWN0b3I4MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjgzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzID4gc3RydWN0IHZlY3Rvcjg0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgPiBzdHJ1Y3QgdmVjdG9yODUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSA+IHN0cnVjdCB2ZWN0b3I4NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ID4gc3RydWN0IHZlY3Rvcjg3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yODc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgPiBzdHJ1Y3QgdmVjdG9yODggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCA+IHN0cnVjdCB2ZWN0b3I4OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ID4gc3RydWN0IHZlY3RvcjkwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgPiBzdHJ1Y3QgdmVjdG9yOTEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSA+IHN0cnVjdCB2ZWN0b3I5MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjkyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyID4gc3RydWN0IHZlY3RvcjkzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgPiBzdHJ1Y3QgdmVjdG9yOTQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIFA5MyBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCA+IHN0cnVjdCB2ZWN0b3I5NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ID4gc3RydWN0IHZlY3Rvcjk2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgPiBzdHJ1Y3QgdmVjdG9yOTcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBQNTAgaXRlbTUwOyB0eXBlZGVmIFA1MSBpdGVtNTE7IHR5cGVkZWYgUDUyIGl0ZW01MjsgdHlwZWRlZiBQNTMgaXRlbTUzOyB0eXBlZGVmIFA1NCBpdGVtNTQ7IHR5cGVkZWYgUDU1IGl0ZW01NTsgdHlwZWRlZiBQNTYgaXRlbTU2OyB0eXBlZGVmIFA1NyBpdGVtNTc7IHR5cGVkZWYgUDU4IGl0ZW01ODsgdHlwZWRlZiBQNTkgaXRlbTU5OyB0eXBlZGVmIFA2MCBpdGVtNjA7IHR5cGVkZWYgUDYxIGl0ZW02MTsgdHlwZWRlZiBQNjIgaXRlbTYyOyB0eXBlZGVmIFA2MyBpdGVtNjM7IHR5cGVkZWYgUDY0IGl0ZW02NDsgdHlwZWRlZiBQNjUgaXRlbTY1OyB0eXBlZGVmIFA2NiBpdGVtNjY7IHR5cGVkZWYgUDY3IGl0ZW02NzsgdHlwZWRlZiBQNjggaXRlbTY4OyB0eXBlZGVmIFA2OSBpdGVtNjk7IHR5cGVkZWYgUDcwIGl0ZW03MDsgdHlwZWRlZiBQNzEgaXRlbTcxOyB0eXBlZGVmIFA3MiBpdGVtNzI7IHR5cGVkZWYgUDczIGl0ZW03MzsgdHlwZWRlZiBQNzQgaXRlbTc0OyB0eXBlZGVmIFA3NSBpdGVtNzU7IHR5cGVkZWYgUDc2IGl0ZW03NjsgdHlwZWRlZiBQNzcgaXRlbTc3OyB0eXBlZGVmIFA3OCBpdGVtNzg7IHR5cGVkZWYgUDc5IGl0ZW03OTsgdHlwZWRlZiBQODAgaXRlbTgwOyB0eXBlZGVmIFA4MSBpdGVtODE7IHR5cGVkZWYgUDgyIGl0ZW04MjsgdHlwZWRlZiBQODMgaXRlbTgzOyB0eXBlZGVmIFA4NCBpdGVtODQ7IHR5cGVkZWYgUDg1IGl0ZW04NTsgdHlwZWRlZiBQODYgaXRlbTg2OyB0eXBlZGVmIFA4NyBpdGVtODc7IHR5cGVkZWYgUDg4IGl0ZW04ODsgdHlwZWRlZiBQODkgaXRlbTg5OyB0eXBlZGVmIFA5MCBpdGVtOTA7IHR5cGVkZWYgUDkxIGl0ZW05MTsgdHlwZWRlZiBQOTIgaXRlbTkyOyB0eXBlZGVmIFA5MyBpdGVtOTM7IHR5cGVkZWYgUDk0IGl0ZW05NDsgdHlwZWRlZiBQOTUgaXRlbTk1OyB0eXBlZGVmIFA5NiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyA+IHN0cnVjdCB2ZWN0b3I5OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjk4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ID4gc3RydWN0IHZlY3Rvcjk5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIFA0OSBpdGVtNDk7IHR5cGVkZWYgUDUwIGl0ZW01MDsgdHlwZWRlZiBQNTEgaXRlbTUxOyB0eXBlZGVmIFA1MiBpdGVtNTI7IHR5cGVkZWYgUDUzIGl0ZW01MzsgdHlwZWRlZiBQNTQgaXRlbTU0OyB0eXBlZGVmIFA1NSBpdGVtNTU7IHR5cGVkZWYgUDU2IGl0ZW01NjsgdHlwZWRlZiBQNTcgaXRlbTU3OyB0eXBlZGVmIFA1OCBpdGVtNTg7IHR5cGVkZWYgUDU5IGl0ZW01OTsgdHlwZWRlZiBQNjAgaXRlbTYwOyB0eXBlZGVmIFA2MSBpdGVtNjE7IHR5cGVkZWYgUDYyIGl0ZW02MjsgdHlwZWRlZiBQNjMgaXRlbTYzOyB0eXBlZGVmIFA2NCBpdGVtNjQ7IHR5cGVkZWYgUDY1IGl0ZW02NTsgdHlwZWRlZiBQNjYgaXRlbTY2OyB0eXBlZGVmIFA2NyBpdGVtNjc7IHR5cGVkZWYgUDY4IGl0ZW02ODsgdHlwZWRlZiBQNjkgaXRlbTY5OyB0eXBlZGVmIFA3MCBpdGVtNzA7IHR5cGVkZWYgUDcxIGl0ZW03MTsgdHlwZWRlZiBQNzIgaXRlbTcyOyB0eXBlZGVmIFA3MyBpdGVtNzM7IHR5cGVkZWYgUDc0IGl0ZW03NDsgdHlwZWRlZiBQNzUgaXRlbTc1OyB0eXBlZGVmIFA3NiBpdGVtNzY7IHR5cGVkZWYgUDc3IGl0ZW03NzsgdHlwZWRlZiBQNzggaXRlbTc4OyB0eXBlZGVmIFA3OSBpdGVtNzk7IHR5cGVkZWYgUDgwIGl0ZW04MDsgdHlwZWRlZiBQODEgaXRlbTgxOyB0eXBlZGVmIFA4MiBpdGVtODI7IHR5cGVkZWYgUDgzIGl0ZW04MzsgdHlwZWRlZiBQODQgaXRlbTg0OyB0eXBlZGVmIFA4NSBpdGVtODU7IHR5cGVkZWYgUDg2IGl0ZW04NjsgdHlwZWRlZiBQODcgaXRlbTg3OyB0eXBlZGVmIFA4OCBpdGVtODg7IHR5cGVkZWYgUDg5IGl0ZW04OTsgdHlwZWRlZiBQOTAgaXRlbTkwOyB0eXBlZGVmIFA5MSBpdGVtOTE7IHR5cGVkZWYgUDkyIGl0ZW05MjsgdHlwZWRlZiBQOTMgaXRlbTkzOyB0eXBlZGVmIFA5NCBpdGVtOTQ7IHR5cGVkZWYgUDk1IGl0ZW05NTsgdHlwZWRlZiBQOTYgaXRlbTk2OyB0eXBlZGVmIFA5NyBpdGVtOTc7IHR5cGVkZWYgUDk4IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgPiBzdHJ1Y3QgdmVjdG9yMTAwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTAwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCA+IHN0cnVjdCB2ZWN0b3IxMDEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxID4gc3RydWN0IHZlY3RvcjEwMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgPiBzdHJ1Y3QgdmVjdG9yMTAzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTAzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyA+IHN0cnVjdCB2ZWN0b3IxMDQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ID4gc3RydWN0IHZlY3RvcjEwNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgPiBzdHJ1Y3QgdmVjdG9yMTA2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTA2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiA+IHN0cnVjdCB2ZWN0b3IxMDcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ID4gc3RydWN0IHZlY3RvcjEwOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEwODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggPiBzdHJ1Y3QgdmVjdG9yMTA5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTA5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSA+IHN0cnVjdCB2ZWN0b3IxMTAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwID4gc3RydWN0IHZlY3RvcjExMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgPiBzdHJ1Y3QgdmVjdG9yMTEyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTEyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiA+IHN0cnVjdCB2ZWN0b3IxMTMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzID4gc3RydWN0IHZlY3RvcjExNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgPiBzdHJ1Y3QgdmVjdG9yMTE1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTE1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSA+IHN0cnVjdCB2ZWN0b3IxMTYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ID4gc3RydWN0IHZlY3RvcjExNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjExNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgPiBzdHJ1Y3QgdmVjdG9yMTE4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTE4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCA+IHN0cnVjdCB2ZWN0b3IxMTkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ID4gc3RydWN0IHZlY3RvcjEyMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgPiBzdHJ1Y3QgdmVjdG9yMTIxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTIxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSA+IHN0cnVjdCB2ZWN0b3IxMjIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyID4gc3RydWN0IHZlY3RvcjEyMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgPiBzdHJ1Y3QgdmVjdG9yMTI0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTI0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCA+IHN0cnVjdCB2ZWN0b3IxMjUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ID4gc3RydWN0IHZlY3RvcjEyNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgPiBzdHJ1Y3QgdmVjdG9yMTI3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTI3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyA+IHN0cnVjdCB2ZWN0b3IxMjggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ID4gc3RydWN0IHZlY3RvcjEyOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgPiBzdHJ1Y3QgdmVjdG9yMTMwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTMwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCA+IHN0cnVjdCB2ZWN0b3IxMzEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxID4gc3RydWN0IHZlY3RvcjEzMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgPiBzdHJ1Y3QgdmVjdG9yMTMzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTMzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyA+IHN0cnVjdCB2ZWN0b3IxMzQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ID4gc3RydWN0IHZlY3RvcjEzNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgPiBzdHJ1Y3QgdmVjdG9yMTM2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTM2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiA+IHN0cnVjdCB2ZWN0b3IxMzcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ID4gc3RydWN0IHZlY3RvcjEzOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggPiBzdHJ1Y3QgdmVjdG9yMTM5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTM5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSA+IHN0cnVjdCB2ZWN0b3IxNDAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwID4gc3RydWN0IHZlY3RvcjE0MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgPiBzdHJ1Y3QgdmVjdG9yMTQyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiA+IHN0cnVjdCB2ZWN0b3IxNDMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzID4gc3RydWN0IHZlY3RvcjE0NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgPiBzdHJ1Y3QgdmVjdG9yMTQ1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQ1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSA+IHN0cnVjdCB2ZWN0b3IxNDYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ID4gc3RydWN0IHZlY3RvcjE0NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgPiBzdHJ1Y3QgdmVjdG9yMTQ4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTQ4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCA+IHN0cnVjdCB2ZWN0b3IxNDkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ID4gc3RydWN0IHZlY3RvcjE1MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgPiBzdHJ1Y3QgdmVjdG9yMTUxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTUxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSA+IHN0cnVjdCB2ZWN0b3IxNTIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyID4gc3RydWN0IHZlY3RvcjE1MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE1MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgPiBzdHJ1Y3QgdmVjdG9yMTU0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTU0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCA+IHN0cnVjdCB2ZWN0b3IxNTUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ID4gc3RydWN0IHZlY3RvcjE1NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE1NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgPiBzdHJ1Y3QgdmVjdG9yMTU3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTU3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyA+IHN0cnVjdCB2ZWN0b3IxNTggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ID4gc3RydWN0IHZlY3RvcjE1OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE1OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgPiBzdHJ1Y3QgdmVjdG9yMTYwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTYwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCA+IHN0cnVjdCB2ZWN0b3IxNjEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxID4gc3RydWN0IHZlY3RvcjE2MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE2MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgPiBzdHJ1Y3QgdmVjdG9yMTYzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTYzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyA+IHN0cnVjdCB2ZWN0b3IxNjQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ID4gc3RydWN0IHZlY3RvcjE2NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE2NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgPiBzdHJ1Y3QgdmVjdG9yMTY2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTY2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiA+IHN0cnVjdCB2ZWN0b3IxNjcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ID4gc3RydWN0IHZlY3RvcjE2OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE2ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggPiBzdHJ1Y3QgdmVjdG9yMTY5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTY5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSA+IHN0cnVjdCB2ZWN0b3IxNzAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwID4gc3RydWN0IHZlY3RvcjE3MSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE3MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgPiBzdHJ1Y3QgdmVjdG9yMTcyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTcyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiA+IHN0cnVjdCB2ZWN0b3IxNzMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczID4gc3RydWN0IHZlY3RvcjE3NCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE3NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgPiBzdHJ1Y3QgdmVjdG9yMTc1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTc1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSA+IHN0cnVjdCB2ZWN0b3IxNzYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ID4gc3RydWN0IHZlY3RvcjE3NyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE3NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgPiBzdHJ1Y3QgdmVjdG9yMTc4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTc4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCA+IHN0cnVjdCB2ZWN0b3IxNzkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ID4gc3RydWN0IHZlY3RvcjE4MCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE4MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgPiBzdHJ1Y3QgdmVjdG9yMTgxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTgxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSA+IHN0cnVjdCB2ZWN0b3IxODIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxODI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyID4gc3RydWN0IHZlY3RvcjE4MyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE4MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgPiBzdHJ1Y3QgdmVjdG9yMTg0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTg0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCA+IHN0cnVjdCB2ZWN0b3IxODUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxODU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ID4gc3RydWN0IHZlY3RvcjE4NiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE4NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgPiBzdHJ1Y3QgdmVjdG9yMTg3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTg3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyA+IHN0cnVjdCB2ZWN0b3IxODggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxODg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ID4gc3RydWN0IHZlY3RvcjE4OSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE4OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgPiBzdHJ1Y3QgdmVjdG9yMTkwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTkwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCA+IHN0cnVjdCB2ZWN0b3IxOTEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxOTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFAxOTAgLCBjbGFzcyBQMTkxID4gc3RydWN0IHZlY3RvcjE5MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE5MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgLCBjbGFzcyBQMTkwICwgY2xhc3MgUDE5MSAsIGNsYXNzIFAxOTIgPiBzdHJ1Y3QgdmVjdG9yMTkzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTkzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OSAsIFAxOTAgLCBQMTkxICwgUDE5Mj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCAsIGNsYXNzIFAxOTEgLCBjbGFzcyBQMTkyICwgY2xhc3MgUDE5MyA+IHN0cnVjdCB2ZWN0b3IxOTQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxOTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MCAsIFAxOTEgLCBQMTkyICwgUDE5Mz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFAxOTAgLCBjbGFzcyBQMTkxICwgY2xhc3MgUDE5MiAsIGNsYXNzIFAxOTMgLCBjbGFzcyBQMTk0ID4gc3RydWN0IHZlY3RvcjE5NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE5NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgUDE5NCBpdGVtMTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgLCBjbGFzcyBQMTkwICwgY2xhc3MgUDE5MSAsIGNsYXNzIFAxOTIgLCBjbGFzcyBQMTkzICwgY2xhc3MgUDE5NCAsIGNsYXNzIFAxOTUgPiBzdHJ1Y3QgdmVjdG9yMTk2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTk2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OSAsIFAxOTAgLCBQMTkxICwgUDE5MiAsIFAxOTMgLCBQMTk0ICwgUDE5NT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgUDE5NCBpdGVtMTk0OyB0eXBlZGVmIFAxOTUgaXRlbTE5NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCAsIGNsYXNzIFAxOTEgLCBjbGFzcyBQMTkyICwgY2xhc3MgUDE5MyAsIGNsYXNzIFAxOTQgLCBjbGFzcyBQMTk1ICwgY2xhc3MgUDE5NiA+IHN0cnVjdCB2ZWN0b3IxOTcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxOTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MCAsIFAxOTEgLCBQMTkyICwgUDE5MyAsIFAxOTQgLCBQMTk1ICwgUDE5Nj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgUDE5NCBpdGVtMTk0OyB0eXBlZGVmIFAxOTUgaXRlbTE5NTsgdHlwZWRlZiBQMTk2IGl0ZW0xOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFAxOTAgLCBjbGFzcyBQMTkxICwgY2xhc3MgUDE5MiAsIGNsYXNzIFAxOTMgLCBjbGFzcyBQMTk0ICwgY2xhc3MgUDE5NSAsIGNsYXNzIFAxOTYgLCBjbGFzcyBQMTk3ID4gc3RydWN0IHZlY3RvcjE5OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE5ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTUgLCBQMTk2ICwgUDE5Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgUDE5NCBpdGVtMTk0OyB0eXBlZGVmIFAxOTUgaXRlbTE5NTsgdHlwZWRlZiBQMTk2IGl0ZW0xOTY7IHR5cGVkZWYgUDE5NyBpdGVtMTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjAzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgLCBjbGFzcyBQMTkwICwgY2xhc3MgUDE5MSAsIGNsYXNzIFAxOTIgLCBjbGFzcyBQMTkzICwgY2xhc3MgUDE5NCAsIGNsYXNzIFAxOTUgLCBjbGFzcyBQMTk2ICwgY2xhc3MgUDE5NyAsIGNsYXNzIFAxOTggPiBzdHJ1Y3QgdmVjdG9yMTk5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTk5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OSAsIFAxOTAgLCBQMTkxICwgUDE5MiAsIFAxOTMgLCBQMTk0ICwgUDE5NSAsIFAxOTYgLCBQMTk3ICwgUDE5OD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgUDE5NCBpdGVtMTk0OyB0eXBlZGVmIFAxOTUgaXRlbTE5NTsgdHlwZWRlZiBQMTk2IGl0ZW0xOTY7IHR5cGVkZWYgUDE5NyBpdGVtMTk3OyB0eXBlZGVmIFAxOTggaXRlbTE5ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCAsIGNsYXNzIFAxOTEgLCBjbGFzcyBQMTkyICwgY2xhc3MgUDE5MyAsIGNsYXNzIFAxOTQgLCBjbGFzcyBQMTk1ICwgY2xhc3MgUDE5NiAsIGNsYXNzIFAxOTcgLCBjbGFzcyBQMTk4ICwgY2xhc3MgUDE5OSA+IHN0cnVjdCB2ZWN0b3IyMDAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyMDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MCAsIFAxOTEgLCBQMTkyICwgUDE5MyAsIFAxOTQgLCBQMTk1ICwgUDE5NiAsIFAxOTcgLCBQMTk4ICwgUDE5OT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgUDQ4IGl0ZW00ODsgdHlwZWRlZiBQNDkgaXRlbTQ5OyB0eXBlZGVmIFA1MCBpdGVtNTA7IHR5cGVkZWYgUDUxIGl0ZW01MTsgdHlwZWRlZiBQNTIgaXRlbTUyOyB0eXBlZGVmIFA1MyBpdGVtNTM7IHR5cGVkZWYgUDU0IGl0ZW01NDsgdHlwZWRlZiBQNTUgaXRlbTU1OyB0eXBlZGVmIFA1NiBpdGVtNTY7IHR5cGVkZWYgUDU3IGl0ZW01NzsgdHlwZWRlZiBQNTggaXRlbTU4OyB0eXBlZGVmIFA1OSBpdGVtNTk7IHR5cGVkZWYgUDYwIGl0ZW02MDsgdHlwZWRlZiBQNjEgaXRlbTYxOyB0eXBlZGVmIFA2MiBpdGVtNjI7IHR5cGVkZWYgUDYzIGl0ZW02MzsgdHlwZWRlZiBQNjQgaXRlbTY0OyB0eXBlZGVmIFA2NSBpdGVtNjU7IHR5cGVkZWYgUDY2IGl0ZW02NjsgdHlwZWRlZiBQNjcgaXRlbTY3OyB0eXBlZGVmIFA2OCBpdGVtNjg7IHR5cGVkZWYgUDY5IGl0ZW02OTsgdHlwZWRlZiBQNzAgaXRlbTcwOyB0eXBlZGVmIFA3MSBpdGVtNzE7IHR5cGVkZWYgUDcyIGl0ZW03MjsgdHlwZWRlZiBQNzMgaXRlbTczOyB0eXBlZGVmIFA3NCBpdGVtNzQ7IHR5cGVkZWYgUDc1IGl0ZW03NTsgdHlwZWRlZiBQNzYgaXRlbTc2OyB0eXBlZGVmIFA3NyBpdGVtNzc7IHR5cGVkZWYgUDc4IGl0ZW03ODsgdHlwZWRlZiBQNzkgaXRlbTc5OyB0eXBlZGVmIFA4MCBpdGVtODA7IHR5cGVkZWYgUDgxIGl0ZW04MTsgdHlwZWRlZiBQODIgaXRlbTgyOyB0eXBlZGVmIFA4MyBpdGVtODM7IHR5cGVkZWYgUDg0IGl0ZW04NDsgdHlwZWRlZiBQODUgaXRlbTg1OyB0eXBlZGVmIFA4NiBpdGVtODY7IHR5cGVkZWYgUDg3IGl0ZW04NzsgdHlwZWRlZiBQODggaXRlbTg4OyB0eXBlZGVmIFA4OSBpdGVtODk7IHR5cGVkZWYgUDkwIGl0ZW05MDsgdHlwZWRlZiBQOTEgaXRlbTkxOyB0eXBlZGVmIFA5MiBpdGVtOTI7IHR5cGVkZWYgUDkzIGl0ZW05MzsgdHlwZWRlZiBQOTQgaXRlbTk0OyB0eXBlZGVmIFA5NSBpdGVtOTU7IHR5cGVkZWYgUDk2IGl0ZW05NjsgdHlwZWRlZiBQOTcgaXRlbTk3OyB0eXBlZGVmIFA5OCBpdGVtOTg7IHR5cGVkZWYgUDk5IGl0ZW05OTsgdHlwZWRlZiBQMTAwIGl0ZW0xMDA7IHR5cGVkZWYgUDEwMSBpdGVtMTAxOyB0eXBlZGVmIFAxMDIgaXRlbTEwMjsgdHlwZWRlZiBQMTAzIGl0ZW0xMDM7IHR5cGVkZWYgUDEwNCBpdGVtMTA0OyB0eXBlZGVmIFAxMDUgaXRlbTEwNTsgdHlwZWRlZiBQMTA2IGl0ZW0xMDY7IHR5cGVkZWYgUDEwNyBpdGVtMTA3OyB0eXBlZGVmIFAxMDggaXRlbTEwODsgdHlwZWRlZiBQMTA5IGl0ZW0xMDk7IHR5cGVkZWYgUDExMCBpdGVtMTEwOyB0eXBlZGVmIFAxMTEgaXRlbTExMTsgdHlwZWRlZiBQMTEyIGl0ZW0xMTI7IHR5cGVkZWYgUDExMyBpdGVtMTEzOyB0eXBlZGVmIFAxMTQgaXRlbTExNDsgdHlwZWRlZiBQMTE1IGl0ZW0xMTU7IHR5cGVkZWYgUDExNiBpdGVtMTE2OyB0eXBlZGVmIFAxMTcgaXRlbTExNzsgdHlwZWRlZiBQMTE4IGl0ZW0xMTg7IHR5cGVkZWYgUDExOSBpdGVtMTE5OyB0eXBlZGVmIFAxMjAgaXRlbTEyMDsgdHlwZWRlZiBQMTIxIGl0ZW0xMjE7IHR5cGVkZWYgUDEyMiBpdGVtMTIyOyB0eXBlZGVmIFAxMjMgaXRlbTEyMzsgdHlwZWRlZiBQMTI0IGl0ZW0xMjQ7IHR5cGVkZWYgUDEyNSBpdGVtMTI1OyB0eXBlZGVmIFAxMjYgaXRlbTEyNjsgdHlwZWRlZiBQMTI3IGl0ZW0xMjc7IHR5cGVkZWYgUDEyOCBpdGVtMTI4OyB0eXBlZGVmIFAxMjkgaXRlbTEyOTsgdHlwZWRlZiBQMTMwIGl0ZW0xMzA7IHR5cGVkZWYgUDEzMSBpdGVtMTMxOyB0eXBlZGVmIFAxMzIgaXRlbTEzMjsgdHlwZWRlZiBQMTMzIGl0ZW0xMzM7IHR5cGVkZWYgUDEzNCBpdGVtMTM0OyB0eXBlZGVmIFAxMzUgaXRlbTEzNTsgdHlwZWRlZiBQMTM2IGl0ZW0xMzY7IHR5cGVkZWYgUDEzNyBpdGVtMTM3OyB0eXBlZGVmIFAxMzggaXRlbTEzODsgdHlwZWRlZiBQMTM5IGl0ZW0xMzk7IHR5cGVkZWYgUDE0MCBpdGVtMTQwOyB0eXBlZGVmIFAxNDEgaXRlbTE0MTsgdHlwZWRlZiBQMTQyIGl0ZW0xNDI7IHR5cGVkZWYgUDE0MyBpdGVtMTQzOyB0eXBlZGVmIFAxNDQgaXRlbTE0NDsgdHlwZWRlZiBQMTQ1IGl0ZW0xNDU7IHR5cGVkZWYgUDE0NiBpdGVtMTQ2OyB0eXBlZGVmIFAxNDcgaXRlbTE0NzsgdHlwZWRlZiBQMTQ4IGl0ZW0xNDg7IHR5cGVkZWYgUDE0OSBpdGVtMTQ5OyB0eXBlZGVmIFAxNTAgaXRlbTE1MDsgdHlwZWRlZiBQMTUxIGl0ZW0xNTE7IHR5cGVkZWYgUDE1MiBpdGVtMTUyOyB0eXBlZGVmIFAxNTMgaXRlbTE1MzsgdHlwZWRlZiBQMTU0IGl0ZW0xNTQ7IHR5cGVkZWYgUDE1NSBpdGVtMTU1OyB0eXBlZGVmIFAxNTYgaXRlbTE1NjsgdHlwZWRlZiBQMTU3IGl0ZW0xNTc7IHR5cGVkZWYgUDE1OCBpdGVtMTU4OyB0eXBlZGVmIFAxNTkgaXRlbTE1OTsgdHlwZWRlZiBQMTYwIGl0ZW0xNjA7IHR5cGVkZWYgUDE2MSBpdGVtMTYxOyB0eXBlZGVmIFAxNjIgaXRlbTE2MjsgdHlwZWRlZiBQMTYzIGl0ZW0xNjM7IHR5cGVkZWYgUDE2NCBpdGVtMTY0OyB0eXBlZGVmIFAxNjUgaXRlbTE2NTsgdHlwZWRlZiBQMTY2IGl0ZW0xNjY7IHR5cGVkZWYgUDE2NyBpdGVtMTY3OyB0eXBlZGVmIFAxNjggaXRlbTE2ODsgdHlwZWRlZiBQMTY5IGl0ZW0xNjk7IHR5cGVkZWYgUDE3MCBpdGVtMTcwOyB0eXBlZGVmIFAxNzEgaXRlbTE3MTsgdHlwZWRlZiBQMTcyIGl0ZW0xNzI7IHR5cGVkZWYgUDE3MyBpdGVtMTczOyB0eXBlZGVmIFAxNzQgaXRlbTE3NDsgdHlwZWRlZiBQMTc1IGl0ZW0xNzU7IHR5cGVkZWYgUDE3NiBpdGVtMTc2OyB0eXBlZGVmIFAxNzcgaXRlbTE3NzsgdHlwZWRlZiBQMTc4IGl0ZW0xNzg7IHR5cGVkZWYgUDE3OSBpdGVtMTc5OyB0eXBlZGVmIFAxODAgaXRlbTE4MDsgdHlwZWRlZiBQMTgxIGl0ZW0xODE7IHR5cGVkZWYgUDE4MiBpdGVtMTgyOyB0eXBlZGVmIFAxODMgaXRlbTE4MzsgdHlwZWRlZiBQMTg0IGl0ZW0xODQ7IHR5cGVkZWYgUDE4NSBpdGVtMTg1OyB0eXBlZGVmIFAxODYgaXRlbTE4NjsgdHlwZWRlZiBQMTg3IGl0ZW0xODc7IHR5cGVkZWYgUDE4OCBpdGVtMTg4OyB0eXBlZGVmIFAxODkgaXRlbTE4OTsgdHlwZWRlZiBQMTkwIGl0ZW0xOTA7IHR5cGVkZWYgUDE5MSBpdGVtMTkxOyB0eXBlZGVmIFAxOTIgaXRlbTE5MjsgdHlwZWRlZiBQMTkzIGl0ZW0xOTM7IHR5cGVkZWYgUDE5NCBpdGVtMTk0OyB0eXBlZGVmIFAxOTUgaXRlbTE5NTsgdHlwZWRlZiBQMTk2IGl0ZW0xOTY7IHR5cGVkZWYgUDE5NyBpdGVtMTk3OyB0eXBlZGVmIFAxOTggaXRlbTE5ODsgdHlwZWRlZiBQMTk5IGl0ZW0xOTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDk7IH07Cit9fQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgIHRlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2sgeworICAgICAgICB0eXBlZGVmIFYgdHlwZTsKKyAgICB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMDw+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE8IFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxPCBQMD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjwgUDAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyPCBQMCAsIFAxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzPCBQMCAsIFAxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzPCBQMCAsIFAxICwgUDI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ8IFAwICwgUDEgLCBQMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0PCBQMCAsIFAxICwgUDIgLCBQMz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yOTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTAzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwND4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTEyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjExOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTIxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTMwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTMzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzND4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0Mz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0Nj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTUxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1Mj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTU0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTU3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE1OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTYwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTYzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2ND4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTY2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2Nz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTY5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE2OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTcyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzE+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3Mz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTc1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQ+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3Nj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTc4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzc+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE3OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTgxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODA+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4Mj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTg0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODM+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTg3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODY+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE4OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTkwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODk+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MCAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgLCBjbGFzcyBQMTkwICwgY2xhc3MgUDE5MSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MT4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTkzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OSAsIFAxOTAgLCBQMTkxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFAxOTAgLCBjbGFzcyBQMTkxICwgY2xhc3MgUDE5MiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCAsIGNsYXNzIFAxOTEgLCBjbGFzcyBQMTkyICwgY2xhc3MgUDE5MyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MCAsIFAxOTEgLCBQMTkyICwgUDE5MyAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgLCBjbGFzcyBQMTkwICwgY2xhc3MgUDE5MSAsIGNsYXNzIFAxOTIgLCBjbGFzcyBQMTkzICwgY2xhc3MgUDE5NCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5ND4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTk2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OSAsIFAxOTAgLCBQMTkxICwgUDE5MiAsIFAxOTMgLCBQMTk0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFAxOTAgLCBjbGFzcyBQMTkxICwgY2xhc3MgUDE5MiAsIGNsYXNzIFAxOTMgLCBjbGFzcyBQMTk0ICwgY2xhc3MgUDE5NSAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgUDQ5ICwgY2xhc3MgUDUwICwgY2xhc3MgUDUxICwgY2xhc3MgUDUyICwgY2xhc3MgUDUzICwgY2xhc3MgUDU0ICwgY2xhc3MgUDU1ICwgY2xhc3MgUDU2ICwgY2xhc3MgUDU3ICwgY2xhc3MgUDU4ICwgY2xhc3MgUDU5ICwgY2xhc3MgUDYwICwgY2xhc3MgUDYxICwgY2xhc3MgUDYyICwgY2xhc3MgUDYzICwgY2xhc3MgUDY0ICwgY2xhc3MgUDY1ICwgY2xhc3MgUDY2ICwgY2xhc3MgUDY3ICwgY2xhc3MgUDY4ICwgY2xhc3MgUDY5ICwgY2xhc3MgUDcwICwgY2xhc3MgUDcxICwgY2xhc3MgUDcyICwgY2xhc3MgUDczICwgY2xhc3MgUDc0ICwgY2xhc3MgUDc1ICwgY2xhc3MgUDc2ICwgY2xhc3MgUDc3ICwgY2xhc3MgUDc4ICwgY2xhc3MgUDc5ICwgY2xhc3MgUDgwICwgY2xhc3MgUDgxICwgY2xhc3MgUDgyICwgY2xhc3MgUDgzICwgY2xhc3MgUDg0ICwgY2xhc3MgUDg1ICwgY2xhc3MgUDg2ICwgY2xhc3MgUDg3ICwgY2xhc3MgUDg4ICwgY2xhc3MgUDg5ICwgY2xhc3MgUDkwICwgY2xhc3MgUDkxICwgY2xhc3MgUDkyICwgY2xhc3MgUDkzICwgY2xhc3MgUDk0ICwgY2xhc3MgUDk1ICwgY2xhc3MgUDk2ICwgY2xhc3MgUDk3ICwgY2xhc3MgUDk4ICwgY2xhc3MgUDk5ICwgY2xhc3MgUDEwMCAsIGNsYXNzIFAxMDEgLCBjbGFzcyBQMTAyICwgY2xhc3MgUDEwMyAsIGNsYXNzIFAxMDQgLCBjbGFzcyBQMTA1ICwgY2xhc3MgUDEwNiAsIGNsYXNzIFAxMDcgLCBjbGFzcyBQMTA4ICwgY2xhc3MgUDEwOSAsIGNsYXNzIFAxMTAgLCBjbGFzcyBQMTExICwgY2xhc3MgUDExMiAsIGNsYXNzIFAxMTMgLCBjbGFzcyBQMTE0ICwgY2xhc3MgUDExNSAsIGNsYXNzIFAxMTYgLCBjbGFzcyBQMTE3ICwgY2xhc3MgUDExOCAsIGNsYXNzIFAxMTkgLCBjbGFzcyBQMTIwICwgY2xhc3MgUDEyMSAsIGNsYXNzIFAxMjIgLCBjbGFzcyBQMTIzICwgY2xhc3MgUDEyNCAsIGNsYXNzIFAxMjUgLCBjbGFzcyBQMTI2ICwgY2xhc3MgUDEyNyAsIGNsYXNzIFAxMjggLCBjbGFzcyBQMTI5ICwgY2xhc3MgUDEzMCAsIGNsYXNzIFAxMzEgLCBjbGFzcyBQMTMyICwgY2xhc3MgUDEzMyAsIGNsYXNzIFAxMzQgLCBjbGFzcyBQMTM1ICwgY2xhc3MgUDEzNiAsIGNsYXNzIFAxMzcgLCBjbGFzcyBQMTM4ICwgY2xhc3MgUDEzOSAsIGNsYXNzIFAxNDAgLCBjbGFzcyBQMTQxICwgY2xhc3MgUDE0MiAsIGNsYXNzIFAxNDMgLCBjbGFzcyBQMTQ0ICwgY2xhc3MgUDE0NSAsIGNsYXNzIFAxNDYgLCBjbGFzcyBQMTQ3ICwgY2xhc3MgUDE0OCAsIGNsYXNzIFAxNDkgLCBjbGFzcyBQMTUwICwgY2xhc3MgUDE1MSAsIGNsYXNzIFAxNTIgLCBjbGFzcyBQMTUzICwgY2xhc3MgUDE1NCAsIGNsYXNzIFAxNTUgLCBjbGFzcyBQMTU2ICwgY2xhc3MgUDE1NyAsIGNsYXNzIFAxNTggLCBjbGFzcyBQMTU5ICwgY2xhc3MgUDE2MCAsIGNsYXNzIFAxNjEgLCBjbGFzcyBQMTYyICwgY2xhc3MgUDE2MyAsIGNsYXNzIFAxNjQgLCBjbGFzcyBQMTY1ICwgY2xhc3MgUDE2NiAsIGNsYXNzIFAxNjcgLCBjbGFzcyBQMTY4ICwgY2xhc3MgUDE2OSAsIGNsYXNzIFAxNzAgLCBjbGFzcyBQMTcxICwgY2xhc3MgUDE3MiAsIGNsYXNzIFAxNzMgLCBjbGFzcyBQMTc0ICwgY2xhc3MgUDE3NSAsIGNsYXNzIFAxNzYgLCBjbGFzcyBQMTc3ICwgY2xhc3MgUDE3OCAsIGNsYXNzIFAxNzkgLCBjbGFzcyBQMTgwICwgY2xhc3MgUDE4MSAsIGNsYXNzIFAxODIgLCBjbGFzcyBQMTgzICwgY2xhc3MgUDE4NCAsIGNsYXNzIFAxODUgLCBjbGFzcyBQMTg2ICwgY2xhc3MgUDE4NyAsIGNsYXNzIFAxODggLCBjbGFzcyBQMTg5ICwgY2xhc3MgUDE5MCAsIGNsYXNzIFAxOTEgLCBjbGFzcyBQMTkyICwgY2xhc3MgUDE5MyAsIGNsYXNzIFAxOTQgLCBjbGFzcyBQMTk1ICwgY2xhc3MgUDE5NiAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTUgLCBQMTk2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4ICwgUDQ5ICwgUDUwICwgUDUxICwgUDUyICwgUDUzICwgUDU0ICwgUDU1ICwgUDU2ICwgUDU3ICwgUDU4ICwgUDU5ICwgUDYwICwgUDYxICwgUDYyICwgUDYzICwgUDY0ICwgUDY1ICwgUDY2ICwgUDY3ICwgUDY4ICwgUDY5ICwgUDcwICwgUDcxICwgUDcyICwgUDczICwgUDc0ICwgUDc1ICwgUDc2ICwgUDc3ICwgUDc4ICwgUDc5ICwgUDgwICwgUDgxICwgUDgyICwgUDgzICwgUDg0ICwgUDg1ICwgUDg2ICwgUDg3ICwgUDg4ICwgUDg5ICwgUDkwICwgUDkxICwgUDkyICwgUDkzICwgUDk0ICwgUDk1ICwgUDk2ICwgUDk3ICwgUDk4ICwgUDk5ICwgUDEwMCAsIFAxMDEgLCBQMTAyICwgUDEwMyAsIFAxMDQgLCBQMTA1ICwgUDEwNiAsIFAxMDcgLCBQMTA4ICwgUDEwOSAsIFAxMTAgLCBQMTExICwgUDExMiAsIFAxMTMgLCBQMTE0ICwgUDExNSAsIFAxMTYgLCBQMTE3ICwgUDExOCAsIFAxMTkgLCBQMTIwICwgUDEyMSAsIFAxMjIgLCBQMTIzICwgUDEyNCAsIFAxMjUgLCBQMTI2ICwgUDEyNyAsIFAxMjggLCBQMTI5ICwgUDEzMCAsIFAxMzEgLCBQMTMyICwgUDEzMyAsIFAxMzQgLCBQMTM1ICwgUDEzNiAsIFAxMzcgLCBQMTM4ICwgUDEzOSAsIFAxNDAgLCBQMTQxICwgUDE0MiAsIFAxNDMgLCBQMTQ0ICwgUDE0NSAsIFAxNDYgLCBQMTQ3ICwgUDE0OCAsIFAxNDkgLCBQMTUwICwgUDE1MSAsIFAxNTIgLCBQMTUzICwgUDE1NCAsIFAxNTUgLCBQMTU2ICwgUDE1NyAsIFAxNTggLCBQMTU5ICwgUDE2MCAsIFAxNjEgLCBQMTYyICwgUDE2MyAsIFAxNjQgLCBQMTY1ICwgUDE2NiAsIFAxNjcgLCBQMTY4ICwgUDE2OSAsIFAxNzAgLCBQMTcxICwgUDE3MiAsIFAxNzMgLCBQMTc0ICwgUDE3NSAsIFAxNzYgLCBQMTc3ICwgUDE3OCAsIFAxNzkgLCBQMTgwICwgUDE4MSAsIFAxODIgLCBQMTgzICwgUDE4NCAsIFAxODUgLCBQMTg2ICwgUDE4NyAsIFAxODggLCBQMTg5ICwgUDE5MCAsIFAxOTEgLCBQMTkyICwgUDE5MyAsIFAxOTQgLCBQMTk1ICwgUDE5NiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgLCBjbGFzcyBQNTAgLCBjbGFzcyBQNTEgLCBjbGFzcyBQNTIgLCBjbGFzcyBQNTMgLCBjbGFzcyBQNTQgLCBjbGFzcyBQNTUgLCBjbGFzcyBQNTYgLCBjbGFzcyBQNTcgLCBjbGFzcyBQNTggLCBjbGFzcyBQNTkgLCBjbGFzcyBQNjAgLCBjbGFzcyBQNjEgLCBjbGFzcyBQNjIgLCBjbGFzcyBQNjMgLCBjbGFzcyBQNjQgLCBjbGFzcyBQNjUgLCBjbGFzcyBQNjYgLCBjbGFzcyBQNjcgLCBjbGFzcyBQNjggLCBjbGFzcyBQNjkgLCBjbGFzcyBQNzAgLCBjbGFzcyBQNzEgLCBjbGFzcyBQNzIgLCBjbGFzcyBQNzMgLCBjbGFzcyBQNzQgLCBjbGFzcyBQNzUgLCBjbGFzcyBQNzYgLCBjbGFzcyBQNzcgLCBjbGFzcyBQNzggLCBjbGFzcyBQNzkgLCBjbGFzcyBQODAgLCBjbGFzcyBQODEgLCBjbGFzcyBQODIgLCBjbGFzcyBQODMgLCBjbGFzcyBQODQgLCBjbGFzcyBQODUgLCBjbGFzcyBQODYgLCBjbGFzcyBQODcgLCBjbGFzcyBQODggLCBjbGFzcyBQODkgLCBjbGFzcyBQOTAgLCBjbGFzcyBQOTEgLCBjbGFzcyBQOTIgLCBjbGFzcyBQOTMgLCBjbGFzcyBQOTQgLCBjbGFzcyBQOTUgLCBjbGFzcyBQOTYgLCBjbGFzcyBQOTcgLCBjbGFzcyBQOTggLCBjbGFzcyBQOTkgLCBjbGFzcyBQMTAwICwgY2xhc3MgUDEwMSAsIGNsYXNzIFAxMDIgLCBjbGFzcyBQMTAzICwgY2xhc3MgUDEwNCAsIGNsYXNzIFAxMDUgLCBjbGFzcyBQMTA2ICwgY2xhc3MgUDEwNyAsIGNsYXNzIFAxMDggLCBjbGFzcyBQMTA5ICwgY2xhc3MgUDExMCAsIGNsYXNzIFAxMTEgLCBjbGFzcyBQMTEyICwgY2xhc3MgUDExMyAsIGNsYXNzIFAxMTQgLCBjbGFzcyBQMTE1ICwgY2xhc3MgUDExNiAsIGNsYXNzIFAxMTcgLCBjbGFzcyBQMTE4ICwgY2xhc3MgUDExOSAsIGNsYXNzIFAxMjAgLCBjbGFzcyBQMTIxICwgY2xhc3MgUDEyMiAsIGNsYXNzIFAxMjMgLCBjbGFzcyBQMTI0ICwgY2xhc3MgUDEyNSAsIGNsYXNzIFAxMjYgLCBjbGFzcyBQMTI3ICwgY2xhc3MgUDEyOCAsIGNsYXNzIFAxMjkgLCBjbGFzcyBQMTMwICwgY2xhc3MgUDEzMSAsIGNsYXNzIFAxMzIgLCBjbGFzcyBQMTMzICwgY2xhc3MgUDEzNCAsIGNsYXNzIFAxMzUgLCBjbGFzcyBQMTM2ICwgY2xhc3MgUDEzNyAsIGNsYXNzIFAxMzggLCBjbGFzcyBQMTM5ICwgY2xhc3MgUDE0MCAsIGNsYXNzIFAxNDEgLCBjbGFzcyBQMTQyICwgY2xhc3MgUDE0MyAsIGNsYXNzIFAxNDQgLCBjbGFzcyBQMTQ1ICwgY2xhc3MgUDE0NiAsIGNsYXNzIFAxNDcgLCBjbGFzcyBQMTQ4ICwgY2xhc3MgUDE0OSAsIGNsYXNzIFAxNTAgLCBjbGFzcyBQMTUxICwgY2xhc3MgUDE1MiAsIGNsYXNzIFAxNTMgLCBjbGFzcyBQMTU0ICwgY2xhc3MgUDE1NSAsIGNsYXNzIFAxNTYgLCBjbGFzcyBQMTU3ICwgY2xhc3MgUDE1OCAsIGNsYXNzIFAxNTkgLCBjbGFzcyBQMTYwICwgY2xhc3MgUDE2MSAsIGNsYXNzIFAxNjIgLCBjbGFzcyBQMTYzICwgY2xhc3MgUDE2NCAsIGNsYXNzIFAxNjUgLCBjbGFzcyBQMTY2ICwgY2xhc3MgUDE2NyAsIGNsYXNzIFAxNjggLCBjbGFzcyBQMTY5ICwgY2xhc3MgUDE3MCAsIGNsYXNzIFAxNzEgLCBjbGFzcyBQMTcyICwgY2xhc3MgUDE3MyAsIGNsYXNzIFAxNzQgLCBjbGFzcyBQMTc1ICwgY2xhc3MgUDE3NiAsIGNsYXNzIFAxNzcgLCBjbGFzcyBQMTc4ICwgY2xhc3MgUDE3OSAsIGNsYXNzIFAxODAgLCBjbGFzcyBQMTgxICwgY2xhc3MgUDE4MiAsIGNsYXNzIFAxODMgLCBjbGFzcyBQMTg0ICwgY2xhc3MgUDE4NSAsIGNsYXNzIFAxODYgLCBjbGFzcyBQMTg3ICwgY2xhc3MgUDE4OCAsIGNsYXNzIFAxODkgLCBjbGFzcyBQMTkwICwgY2xhc3MgUDE5MSAsIGNsYXNzIFAxOTIgLCBjbGFzcyBQMTkzICwgY2xhc3MgUDE5NCAsIGNsYXNzIFAxOTUgLCBjbGFzcyBQMTk2ICwgY2xhc3MgUDE5NyAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTUgLCBQMTk2ICwgUDE5Nz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTk5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0NyAsIFA0OCAsIFA0OSAsIFA1MCAsIFA1MSAsIFA1MiAsIFA1MyAsIFA1NCAsIFA1NSAsIFA1NiAsIFA1NyAsIFA1OCAsIFA1OSAsIFA2MCAsIFA2MSAsIFA2MiAsIFA2MyAsIFA2NCAsIFA2NSAsIFA2NiAsIFA2NyAsIFA2OCAsIFA2OSAsIFA3MCAsIFA3MSAsIFA3MiAsIFA3MyAsIFA3NCAsIFA3NSAsIFA3NiAsIFA3NyAsIFA3OCAsIFA3OSAsIFA4MCAsIFA4MSAsIFA4MiAsIFA4MyAsIFA4NCAsIFA4NSAsIFA4NiAsIFA4NyAsIFA4OCAsIFA4OSAsIFA5MCAsIFA5MSAsIFA5MiAsIFA5MyAsIFA5NCAsIFA5NSAsIFA5NiAsIFA5NyAsIFA5OCAsIFA5OSAsIFAxMDAgLCBQMTAxICwgUDEwMiAsIFAxMDMgLCBQMTA0ICwgUDEwNSAsIFAxMDYgLCBQMTA3ICwgUDEwOCAsIFAxMDkgLCBQMTEwICwgUDExMSAsIFAxMTIgLCBQMTEzICwgUDExNCAsIFAxMTUgLCBQMTE2ICwgUDExNyAsIFAxMTggLCBQMTE5ICwgUDEyMCAsIFAxMjEgLCBQMTIyICwgUDEyMyAsIFAxMjQgLCBQMTI1ICwgUDEyNiAsIFAxMjcgLCBQMTI4ICwgUDEyOSAsIFAxMzAgLCBQMTMxICwgUDEzMiAsIFAxMzMgLCBQMTM0ICwgUDEzNSAsIFAxMzYgLCBQMTM3ICwgUDEzOCAsIFAxMzkgLCBQMTQwICwgUDE0MSAsIFAxNDIgLCBQMTQzICwgUDE0NCAsIFAxNDUgLCBQMTQ2ICwgUDE0NyAsIFAxNDggLCBQMTQ5ICwgUDE1MCAsIFAxNTEgLCBQMTUyICwgUDE1MyAsIFAxNTQgLCBQMTU1ICwgUDE1NiAsIFAxNTcgLCBQMTU4ICwgUDE1OSAsIFAxNjAgLCBQMTYxICwgUDE2MiAsIFAxNjMgLCBQMTY0ICwgUDE2NSAsIFAxNjYgLCBQMTY3ICwgUDE2OCAsIFAxNjkgLCBQMTcwICwgUDE3MSAsIFAxNzIgLCBQMTczICwgUDE3NCAsIFAxNzUgLCBQMTc2ICwgUDE3NyAsIFAxNzggLCBQMTc5ICwgUDE4MCAsIFAxODEgLCBQMTgyICwgUDE4MyAsIFAxODQgLCBQMTg1ICwgUDE4NiAsIFAxODcgLCBQMTg4ICwgUDE4OSAsIFAxOTAgLCBQMTkxICwgUDE5MiAsIFAxOTMgLCBQMTk0ICwgUDE5NSAsIFAxOTYgLCBQMTk3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyAsIGNsYXNzIFA0OCAsIGNsYXNzIFA0OSAsIGNsYXNzIFA1MCAsIGNsYXNzIFA1MSAsIGNsYXNzIFA1MiAsIGNsYXNzIFA1MyAsIGNsYXNzIFA1NCAsIGNsYXNzIFA1NSAsIGNsYXNzIFA1NiAsIGNsYXNzIFA1NyAsIGNsYXNzIFA1OCAsIGNsYXNzIFA1OSAsIGNsYXNzIFA2MCAsIGNsYXNzIFA2MSAsIGNsYXNzIFA2MiAsIGNsYXNzIFA2MyAsIGNsYXNzIFA2NCAsIGNsYXNzIFA2NSAsIGNsYXNzIFA2NiAsIGNsYXNzIFA2NyAsIGNsYXNzIFA2OCAsIGNsYXNzIFA2OSAsIGNsYXNzIFA3MCAsIGNsYXNzIFA3MSAsIGNsYXNzIFA3MiAsIGNsYXNzIFA3MyAsIGNsYXNzIFA3NCAsIGNsYXNzIFA3NSAsIGNsYXNzIFA3NiAsIGNsYXNzIFA3NyAsIGNsYXNzIFA3OCAsIGNsYXNzIFA3OSAsIGNsYXNzIFA4MCAsIGNsYXNzIFA4MSAsIGNsYXNzIFA4MiAsIGNsYXNzIFA4MyAsIGNsYXNzIFA4NCAsIGNsYXNzIFA4NSAsIGNsYXNzIFA4NiAsIGNsYXNzIFA4NyAsIGNsYXNzIFA4OCAsIGNsYXNzIFA4OSAsIGNsYXNzIFA5MCAsIGNsYXNzIFA5MSAsIGNsYXNzIFA5MiAsIGNsYXNzIFA5MyAsIGNsYXNzIFA5NCAsIGNsYXNzIFA5NSAsIGNsYXNzIFA5NiAsIGNsYXNzIFA5NyAsIGNsYXNzIFA5OCAsIGNsYXNzIFA5OSAsIGNsYXNzIFAxMDAgLCBjbGFzcyBQMTAxICwgY2xhc3MgUDEwMiAsIGNsYXNzIFAxMDMgLCBjbGFzcyBQMTA0ICwgY2xhc3MgUDEwNSAsIGNsYXNzIFAxMDYgLCBjbGFzcyBQMTA3ICwgY2xhc3MgUDEwOCAsIGNsYXNzIFAxMDkgLCBjbGFzcyBQMTEwICwgY2xhc3MgUDExMSAsIGNsYXNzIFAxMTIgLCBjbGFzcyBQMTEzICwgY2xhc3MgUDExNCAsIGNsYXNzIFAxMTUgLCBjbGFzcyBQMTE2ICwgY2xhc3MgUDExNyAsIGNsYXNzIFAxMTggLCBjbGFzcyBQMTE5ICwgY2xhc3MgUDEyMCAsIGNsYXNzIFAxMjEgLCBjbGFzcyBQMTIyICwgY2xhc3MgUDEyMyAsIGNsYXNzIFAxMjQgLCBjbGFzcyBQMTI1ICwgY2xhc3MgUDEyNiAsIGNsYXNzIFAxMjcgLCBjbGFzcyBQMTI4ICwgY2xhc3MgUDEyOSAsIGNsYXNzIFAxMzAgLCBjbGFzcyBQMTMxICwgY2xhc3MgUDEzMiAsIGNsYXNzIFAxMzMgLCBjbGFzcyBQMTM0ICwgY2xhc3MgUDEzNSAsIGNsYXNzIFAxMzYgLCBjbGFzcyBQMTM3ICwgY2xhc3MgUDEzOCAsIGNsYXNzIFAxMzkgLCBjbGFzcyBQMTQwICwgY2xhc3MgUDE0MSAsIGNsYXNzIFAxNDIgLCBjbGFzcyBQMTQzICwgY2xhc3MgUDE0NCAsIGNsYXNzIFAxNDUgLCBjbGFzcyBQMTQ2ICwgY2xhc3MgUDE0NyAsIGNsYXNzIFAxNDggLCBjbGFzcyBQMTQ5ICwgY2xhc3MgUDE1MCAsIGNsYXNzIFAxNTEgLCBjbGFzcyBQMTUyICwgY2xhc3MgUDE1MyAsIGNsYXNzIFAxNTQgLCBjbGFzcyBQMTU1ICwgY2xhc3MgUDE1NiAsIGNsYXNzIFAxNTcgLCBjbGFzcyBQMTU4ICwgY2xhc3MgUDE1OSAsIGNsYXNzIFAxNjAgLCBjbGFzcyBQMTYxICwgY2xhc3MgUDE2MiAsIGNsYXNzIFAxNjMgLCBjbGFzcyBQMTY0ICwgY2xhc3MgUDE2NSAsIGNsYXNzIFAxNjYgLCBjbGFzcyBQMTY3ICwgY2xhc3MgUDE2OCAsIGNsYXNzIFAxNjkgLCBjbGFzcyBQMTcwICwgY2xhc3MgUDE3MSAsIGNsYXNzIFAxNzIgLCBjbGFzcyBQMTczICwgY2xhc3MgUDE3NCAsIGNsYXNzIFAxNzUgLCBjbGFzcyBQMTc2ICwgY2xhc3MgUDE3NyAsIGNsYXNzIFAxNzggLCBjbGFzcyBQMTc5ICwgY2xhc3MgUDE4MCAsIGNsYXNzIFAxODEgLCBjbGFzcyBQMTgyICwgY2xhc3MgUDE4MyAsIGNsYXNzIFAxODQgLCBjbGFzcyBQMTg1ICwgY2xhc3MgUDE4NiAsIGNsYXNzIFAxODcgLCBjbGFzcyBQMTg4ICwgY2xhc3MgUDE4OSAsIGNsYXNzIFAxOTAgLCBjbGFzcyBQMTkxICwgY2xhc3MgUDE5MiAsIGNsYXNzIFAxOTMgLCBjbGFzcyBQMTk0ICwgY2xhc3MgUDE5NSAsIGNsYXNzIFAxOTYgLCBjbGFzcyBQMTk3ICwgY2xhc3MgUDE5OCAsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2s8bmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE5OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTUgLCBQMTk2ICwgUDE5NyAsIFAxOTg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjIwMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDkgLCBQNTAgLCBQNTEgLCBQNTIgLCBQNTMgLCBQNTQgLCBQNTUgLCBQNTYgLCBQNTcgLCBQNTggLCBQNTkgLCBQNjAgLCBQNjEgLCBQNjIgLCBQNjMgLCBQNjQgLCBQNjUgLCBQNjYgLCBQNjcgLCBQNjggLCBQNjkgLCBQNzAgLCBQNzEgLCBQNzIgLCBQNzMgLCBQNzQgLCBQNzUgLCBQNzYgLCBQNzcgLCBQNzggLCBQNzkgLCBQODAgLCBQODEgLCBQODIgLCBQODMgLCBQODQgLCBQODUgLCBQODYgLCBQODcgLCBQODggLCBQODkgLCBQOTAgLCBQOTEgLCBQOTIgLCBQOTMgLCBQOTQgLCBQOTUgLCBQOTYgLCBQOTcgLCBQOTggLCBQOTkgLCBQMTAwICwgUDEwMSAsIFAxMDIgLCBQMTAzICwgUDEwNCAsIFAxMDUgLCBQMTA2ICwgUDEwNyAsIFAxMDggLCBQMTA5ICwgUDExMCAsIFAxMTEgLCBQMTEyICwgUDExMyAsIFAxMTQgLCBQMTE1ICwgUDExNiAsIFAxMTcgLCBQMTE4ICwgUDExOSAsIFAxMjAgLCBQMTIxICwgUDEyMiAsIFAxMjMgLCBQMTI0ICwgUDEyNSAsIFAxMjYgLCBQMTI3ICwgUDEyOCAsIFAxMjkgLCBQMTMwICwgUDEzMSAsIFAxMzIgLCBQMTMzICwgUDEzNCAsIFAxMzUgLCBQMTM2ICwgUDEzNyAsIFAxMzggLCBQMTM5ICwgUDE0MCAsIFAxNDEgLCBQMTQyICwgUDE0MyAsIFAxNDQgLCBQMTQ1ICwgUDE0NiAsIFAxNDcgLCBQMTQ4ICwgUDE0OSAsIFAxNTAgLCBQMTUxICwgUDE1MiAsIFAxNTMgLCBQMTU0ICwgUDE1NSAsIFAxNTYgLCBQMTU3ICwgUDE1OCAsIFAxNTkgLCBQMTYwICwgUDE2MSAsIFAxNjIgLCBQMTYzICwgUDE2NCAsIFAxNjUgLCBQMTY2ICwgUDE2NyAsIFAxNjggLCBQMTY5ICwgUDE3MCAsIFAxNzEgLCBQMTcyICwgUDE3MyAsIFAxNzQgLCBQMTc1ICwgUDE3NiAsIFAxNzcgLCBQMTc4ICwgUDE3OSAsIFAxODAgLCBQMTgxICwgUDE4MiAsIFAxODMgLCBQMTg0ICwgUDE4NSAsIFAxODYgLCBQMTg3ICwgUDE4OCAsIFAxODkgLCBQMTkwICwgUDE5MSAsIFAxOTIgLCBQMTkzICwgUDE5NCAsIFAxOTUgLCBQMTk2ICwgUDE5NyAsIFAxOTggLCBUID4gdHlwZTsgfTsKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3I1MC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3R5cGVvZi92ZWN0b3I1MC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMzNjhlMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdHlwZW9mL3ZlY3RvcjUwLmhwcApAQCAtMCwwICsxLDE3MSBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUgQXJrYWRpeSBWZXJ0bGV5YgorLy8gQ29weXJpZ2h0IChDKSAyMDA1IFBlZGVyIEhvbHQKKy8vCisvLyBVc2UgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIGJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyBWZXJzaW9uIDEuMC4gKFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLyBQcmVwcm9jZXNzZWQgY29kZSwgZG8gbm90IGVkaXQgbWFudWFsbHkgIQorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBWLCBjbGFzcyBJbmNyZWFzZV9CT09TVF9UWVBFT0ZfTElNSVRfU0laRT4gc3RydWN0IHZfaXRlcjsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Nj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW03IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88OCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88OT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxMT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTExIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxMSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xMiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDEzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xNSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwxNz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTE3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwxNyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MTg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0xOCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MTggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMTkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDE5ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIwIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjE+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yMSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjEgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDIyPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjIgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDIyICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyMz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTIzIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyMyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MjQ+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjQgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI1PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjUgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI1ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyNj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI2IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyNiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mjc+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0yNyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MjcgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDI4PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMjggdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDI4ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwyOT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTI5IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwyOSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzA+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzAgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDMxPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzEgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDMxICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzMj4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTMyIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzMiArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzM+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zMyB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzMgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM0PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzQgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM0ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzNT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM1IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzNSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88MzY+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zNiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzYgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDM3PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtMzcgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDM3ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50XzwzOD4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTM4IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50XzwzOCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88Mzk+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW0zOSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88MzkgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQwPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDAgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQwICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MT4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQxIHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0MSArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDI+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00MiB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDIgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQzPiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDMgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQzICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0ND4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ0IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NCArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDU+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00NSB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDUgKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ2PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDYgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ2ICsgMT4gPiBuZXh0OyB9OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBWPiBzdHJ1Y3Qgdl9pdGVyPFYsIG1wbDo6aW50Xzw0Nz4gPiB7IHR5cGVkZWYgdHlwZW5hbWUgVjo6aXRlbTQ3IHR5cGU7IHR5cGVkZWYgdl9pdGVyPFYsIG1wbDo6aW50Xzw0NyArIDE+ID4gbmV4dDsgfTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVj4gc3RydWN0IHZfaXRlcjxWLCBtcGw6OmludF88NDg+ID4geyB0eXBlZGVmIHR5cGVuYW1lIFY6Oml0ZW00OCB0eXBlOyB0eXBlZGVmIHZfaXRlcjxWLCBtcGw6OmludF88NDggKyAxPiA+IG5leHQ7IH07CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIFY+IHN0cnVjdCB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ5PiA+IHsgdHlwZWRlZiB0eXBlbmFtZSBWOjppdGVtNDkgdHlwZTsgdHlwZWRlZiB2X2l0ZXI8ViwgbXBsOjppbnRfPDQ5ICsgMT4gPiBuZXh0OyB9OworfX0KK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB0eXBlX29mIHsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFQgPSB2b2lkPiBzdHJ1Y3QgdmVjdG9yMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjA8PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwID4gc3RydWN0IHZlY3RvcjEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxPCBQMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgPiBzdHJ1Y3QgdmVjdG9yMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI8IFAwICwgUDE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiA+IHN0cnVjdCB2ZWN0b3IzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzwgUDAgLCBQMSAsIFAyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzID4gc3RydWN0IHZlY3RvcjQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0PCBQMCAsIFAxICwgUDIgLCBQMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgPiBzdHJ1Y3QgdmVjdG9yNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSA+IHN0cnVjdCB2ZWN0b3I2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ID4gc3RydWN0IHZlY3RvcjcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgPiBzdHJ1Y3QgdmVjdG9yOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3Rvcjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCA+IHN0cnVjdCB2ZWN0b3I5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ID4gc3RydWN0IHZlY3RvcjEwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgPiBzdHJ1Y3QgdmVjdG9yMTEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTExOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSA+IHN0cnVjdCB2ZWN0b3IxMiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjEyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTEzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyID4gc3RydWN0IHZlY3RvcjEzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgPiBzdHJ1Y3QgdmVjdG9yMTQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCA+IHN0cnVjdCB2ZWN0b3IxNSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ID4gc3RydWN0IHZlY3RvcjE2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgPiBzdHJ1Y3QgdmVjdG9yMTcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IxNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyA+IHN0cnVjdCB2ZWN0b3IxOCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjE4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0xODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTE5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ID4gc3RydWN0IHZlY3RvcjE5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgPiBzdHJ1Y3QgdmVjdG9yMjAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCA+IHN0cnVjdCB2ZWN0b3IyMSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjIxPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxID4gc3RydWN0IHZlY3RvcjIyIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgPiBzdHJ1Y3QgdmVjdG9yMjMgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjI+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTIzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyA+IHN0cnVjdCB2ZWN0b3IyNCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI0PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ID4gc3RydWN0IHZlY3RvcjI1IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgPiBzdHJ1Y3QgdmVjdG9yMjYgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjU+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiA+IHN0cnVjdCB2ZWN0b3IyNyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjI3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ID4gc3RydWN0IHZlY3RvcjI4IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0yOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggPiBzdHJ1Y3QgdmVjdG9yMjkgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjg+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTI5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSA+IHN0cnVjdCB2ZWN0b3IzMCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjMwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwID4gc3RydWN0IHZlY3RvcjMxIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgPiBzdHJ1Y3QgdmVjdG9yMzIgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzE+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTMyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiA+IHN0cnVjdCB2ZWN0b3IzMyB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjMzPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMj4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zMzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzID4gc3RydWN0IHZlY3RvcjM0IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgPiBzdHJ1Y3QgdmVjdG9yMzUgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQ+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSA+IHN0cnVjdCB2ZWN0b3IzNiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zNjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ID4gc3RydWN0IHZlY3RvcjM3IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yMzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgPiBzdHJ1Y3QgdmVjdG9yMzggeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3IzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzc+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTM4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtMzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCA+IHN0cnVjdCB2ZWN0b3IzOSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjM5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOD4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW0zOTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ID4gc3RydWN0IHZlY3RvcjQwIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgPiBzdHJ1Y3QgdmVjdG9yNDEgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDA+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSA+IHN0cnVjdCB2ZWN0b3I0MiB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQyPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MT4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyID4gc3RydWN0IHZlY3RvcjQzIHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyPiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgPiBzdHJ1Y3QgdmVjdG9yNDQgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDM+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCA+IHN0cnVjdCB2ZWN0b3I0NSB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0ND4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ID4gc3RydWN0IHZlY3RvcjQ2IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgPiBzdHJ1Y3QgdmVjdG9yNDcgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDY+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBQOSAsIGNsYXNzIFAxMCAsIGNsYXNzIFAxMSAsIGNsYXNzIFAxMiAsIGNsYXNzIFAxMyAsIGNsYXNzIFAxNCAsIGNsYXNzIFAxNSAsIGNsYXNzIFAxNiAsIGNsYXNzIFAxNyAsIGNsYXNzIFAxOCAsIGNsYXNzIFAxOSAsIGNsYXNzIFAyMCAsIGNsYXNzIFAyMSAsIGNsYXNzIFAyMiAsIGNsYXNzIFAyMyAsIGNsYXNzIFAyNCAsIGNsYXNzIFAyNSAsIGNsYXNzIFAyNiAsIGNsYXNzIFAyNyAsIGNsYXNzIFAyOCAsIGNsYXNzIFAyOSAsIGNsYXNzIFAzMCAsIGNsYXNzIFAzMSAsIGNsYXNzIFAzMiAsIGNsYXNzIFAzMyAsIGNsYXNzIFAzNCAsIGNsYXNzIFAzNSAsIGNsYXNzIFAzNiAsIGNsYXNzIFAzNyAsIGNsYXNzIFAzOCAsIGNsYXNzIFAzOSAsIGNsYXNzIFA0MCAsIGNsYXNzIFA0MSAsIGNsYXNzIFA0MiAsIGNsYXNzIFA0MyAsIGNsYXNzIFA0NCAsIGNsYXNzIFA0NSAsIGNsYXNzIFA0NiAsIGNsYXNzIFA0NyA+IHN0cnVjdCB2ZWN0b3I0OCB7IHR5cGVkZWYgdl9pdGVyPHZlY3RvcjQ4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBQOSAsIFAxMCAsIFAxMSAsIFAxMiAsIFAxMyAsIFAxNCAsIFAxNSAsIFAxNiAsIFAxNyAsIFAxOCAsIFAxOSAsIFAyMCAsIFAyMSAsIFAyMiAsIFAyMyAsIFAyNCAsIFAyNSAsIFAyNiAsIFAyNyAsIFAyOCAsIFAyOSAsIFAzMCAsIFAzMSAsIFAzMiAsIFAzMyAsIFAzNCAsIFAzNSAsIFAzNiAsIFAzNyAsIFAzOCAsIFAzOSAsIFA0MCAsIFA0MSAsIFA0MiAsIFA0MyAsIFA0NCAsIFA0NSAsIFA0NiAsIFA0Nz4sIG5kbmJvb3N0OjptcGw6OmludF88MD4gPiBiZWdpbjsgdHlwZWRlZiBQMCBpdGVtMDsgdHlwZWRlZiBQMSBpdGVtMTsgdHlwZWRlZiBQMiBpdGVtMjsgdHlwZWRlZiBQMyBpdGVtMzsgdHlwZWRlZiBQNCBpdGVtNDsgdHlwZWRlZiBQNSBpdGVtNTsgdHlwZWRlZiBQNiBpdGVtNjsgdHlwZWRlZiBQNyBpdGVtNzsgdHlwZWRlZiBQOCBpdGVtODsgdHlwZWRlZiBQOSBpdGVtOTsgdHlwZWRlZiBQMTAgaXRlbTEwOyB0eXBlZGVmIFAxMSBpdGVtMTE7IHR5cGVkZWYgUDEyIGl0ZW0xMjsgdHlwZWRlZiBQMTMgaXRlbTEzOyB0eXBlZGVmIFAxNCBpdGVtMTQ7IHR5cGVkZWYgUDE1IGl0ZW0xNTsgdHlwZWRlZiBQMTYgaXRlbTE2OyB0eXBlZGVmIFAxNyBpdGVtMTc7IHR5cGVkZWYgUDE4IGl0ZW0xODsgdHlwZWRlZiBQMTkgaXRlbTE5OyB0eXBlZGVmIFAyMCBpdGVtMjA7IHR5cGVkZWYgUDIxIGl0ZW0yMTsgdHlwZWRlZiBQMjIgaXRlbTIyOyB0eXBlZGVmIFAyMyBpdGVtMjM7IHR5cGVkZWYgUDI0IGl0ZW0yNDsgdHlwZWRlZiBQMjUgaXRlbTI1OyB0eXBlZGVmIFAyNiBpdGVtMjY7IHR5cGVkZWYgUDI3IGl0ZW0yNzsgdHlwZWRlZiBQMjggaXRlbTI4OyB0eXBlZGVmIFAyOSBpdGVtMjk7IHR5cGVkZWYgUDMwIGl0ZW0zMDsgdHlwZWRlZiBQMzEgaXRlbTMxOyB0eXBlZGVmIFAzMiBpdGVtMzI7IHR5cGVkZWYgUDMzIGl0ZW0zMzsgdHlwZWRlZiBQMzQgaXRlbTM0OyB0eXBlZGVmIFAzNSBpdGVtMzU7IHR5cGVkZWYgUDM2IGl0ZW0zNjsgdHlwZWRlZiBQMzcgaXRlbTM3OyB0eXBlZGVmIFAzOCBpdGVtMzg7IHR5cGVkZWYgUDM5IGl0ZW0zOTsgdHlwZWRlZiBQNDAgaXRlbTQwOyB0eXBlZGVmIFA0MSBpdGVtNDE7IHR5cGVkZWYgUDQyIGl0ZW00MjsgdHlwZWRlZiBQNDMgaXRlbTQzOyB0eXBlZGVmIFA0NCBpdGVtNDQ7IHR5cGVkZWYgUDQ1IGl0ZW00NTsgdHlwZWRlZiBQNDYgaXRlbTQ2OyB0eXBlZGVmIFA0NyBpdGVtNDc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW00ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTQ5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTczOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05OTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ID4gc3RydWN0IHZlY3RvcjQ5IHsgdHlwZWRlZiB2X2l0ZXI8dmVjdG9yNDk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4PiwgbmRuYm9vc3Q6Om1wbDo6aW50XzwwPiA+IGJlZ2luOyB0eXBlZGVmIFAwIGl0ZW0wOyB0eXBlZGVmIFAxIGl0ZW0xOyB0eXBlZGVmIFAyIGl0ZW0yOyB0eXBlZGVmIFAzIGl0ZW0zOyB0eXBlZGVmIFA0IGl0ZW00OyB0eXBlZGVmIFA1IGl0ZW01OyB0eXBlZGVmIFA2IGl0ZW02OyB0eXBlZGVmIFA3IGl0ZW03OyB0eXBlZGVmIFA4IGl0ZW04OyB0eXBlZGVmIFA5IGl0ZW05OyB0eXBlZGVmIFAxMCBpdGVtMTA7IHR5cGVkZWYgUDExIGl0ZW0xMTsgdHlwZWRlZiBQMTIgaXRlbTEyOyB0eXBlZGVmIFAxMyBpdGVtMTM7IHR5cGVkZWYgUDE0IGl0ZW0xNDsgdHlwZWRlZiBQMTUgaXRlbTE1OyB0eXBlZGVmIFAxNiBpdGVtMTY7IHR5cGVkZWYgUDE3IGl0ZW0xNzsgdHlwZWRlZiBQMTggaXRlbTE4OyB0eXBlZGVmIFAxOSBpdGVtMTk7IHR5cGVkZWYgUDIwIGl0ZW0yMDsgdHlwZWRlZiBQMjEgaXRlbTIxOyB0eXBlZGVmIFAyMiBpdGVtMjI7IHR5cGVkZWYgUDIzIGl0ZW0yMzsgdHlwZWRlZiBQMjQgaXRlbTI0OyB0eXBlZGVmIFAyNSBpdGVtMjU7IHR5cGVkZWYgUDI2IGl0ZW0yNjsgdHlwZWRlZiBQMjcgaXRlbTI3OyB0eXBlZGVmIFAyOCBpdGVtMjg7IHR5cGVkZWYgUDI5IGl0ZW0yOTsgdHlwZWRlZiBQMzAgaXRlbTMwOyB0eXBlZGVmIFAzMSBpdGVtMzE7IHR5cGVkZWYgUDMyIGl0ZW0zMjsgdHlwZWRlZiBQMzMgaXRlbTMzOyB0eXBlZGVmIFAzNCBpdGVtMzQ7IHR5cGVkZWYgUDM1IGl0ZW0zNTsgdHlwZWRlZiBQMzYgaXRlbTM2OyB0eXBlZGVmIFAzNyBpdGVtMzc7IHR5cGVkZWYgUDM4IGl0ZW0zODsgdHlwZWRlZiBQMzkgaXRlbTM5OyB0eXBlZGVmIFA0MCBpdGVtNDA7IHR5cGVkZWYgUDQxIGl0ZW00MTsgdHlwZWRlZiBQNDIgaXRlbTQyOyB0eXBlZGVmIFA0MyBpdGVtNDM7IHR5cGVkZWYgUDQ0IGl0ZW00NDsgdHlwZWRlZiBQNDUgaXRlbTQ1OyB0eXBlZGVmIFA0NiBpdGVtNDY7IHR5cGVkZWYgUDQ3IGl0ZW00NzsgdHlwZWRlZiBQNDggaXRlbTQ4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNDk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk5OyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBQNyAsIGNsYXNzIFA4ICwgY2xhc3MgUDkgLCBjbGFzcyBQMTAgLCBjbGFzcyBQMTEgLCBjbGFzcyBQMTIgLCBjbGFzcyBQMTMgLCBjbGFzcyBQMTQgLCBjbGFzcyBQMTUgLCBjbGFzcyBQMTYgLCBjbGFzcyBQMTcgLCBjbGFzcyBQMTggLCBjbGFzcyBQMTkgLCBjbGFzcyBQMjAgLCBjbGFzcyBQMjEgLCBjbGFzcyBQMjIgLCBjbGFzcyBQMjMgLCBjbGFzcyBQMjQgLCBjbGFzcyBQMjUgLCBjbGFzcyBQMjYgLCBjbGFzcyBQMjcgLCBjbGFzcyBQMjggLCBjbGFzcyBQMjkgLCBjbGFzcyBQMzAgLCBjbGFzcyBQMzEgLCBjbGFzcyBQMzIgLCBjbGFzcyBQMzMgLCBjbGFzcyBQMzQgLCBjbGFzcyBQMzUgLCBjbGFzcyBQMzYgLCBjbGFzcyBQMzcgLCBjbGFzcyBQMzggLCBjbGFzcyBQMzkgLCBjbGFzcyBQNDAgLCBjbGFzcyBQNDEgLCBjbGFzcyBQNDIgLCBjbGFzcyBQNDMgLCBjbGFzcyBQNDQgLCBjbGFzcyBQNDUgLCBjbGFzcyBQNDYgLCBjbGFzcyBQNDcgLCBjbGFzcyBQNDggLCBjbGFzcyBQNDkgPiBzdHJ1Y3QgdmVjdG9yNTAgeyB0eXBlZGVmIHZfaXRlcjx2ZWN0b3I1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBQNDk+LCBuZG5ib29zdDo6bXBsOjppbnRfPDA+ID4gYmVnaW47IHR5cGVkZWYgUDAgaXRlbTA7IHR5cGVkZWYgUDEgaXRlbTE7IHR5cGVkZWYgUDIgaXRlbTI7IHR5cGVkZWYgUDMgaXRlbTM7IHR5cGVkZWYgUDQgaXRlbTQ7IHR5cGVkZWYgUDUgaXRlbTU7IHR5cGVkZWYgUDYgaXRlbTY7IHR5cGVkZWYgUDcgaXRlbTc7IHR5cGVkZWYgUDggaXRlbTg7IHR5cGVkZWYgUDkgaXRlbTk7IHR5cGVkZWYgUDEwIGl0ZW0xMDsgdHlwZWRlZiBQMTEgaXRlbTExOyB0eXBlZGVmIFAxMiBpdGVtMTI7IHR5cGVkZWYgUDEzIGl0ZW0xMzsgdHlwZWRlZiBQMTQgaXRlbTE0OyB0eXBlZGVmIFAxNSBpdGVtMTU7IHR5cGVkZWYgUDE2IGl0ZW0xNjsgdHlwZWRlZiBQMTcgaXRlbTE3OyB0eXBlZGVmIFAxOCBpdGVtMTg7IHR5cGVkZWYgUDE5IGl0ZW0xOTsgdHlwZWRlZiBQMjAgaXRlbTIwOyB0eXBlZGVmIFAyMSBpdGVtMjE7IHR5cGVkZWYgUDIyIGl0ZW0yMjsgdHlwZWRlZiBQMjMgaXRlbTIzOyB0eXBlZGVmIFAyNCBpdGVtMjQ7IHR5cGVkZWYgUDI1IGl0ZW0yNTsgdHlwZWRlZiBQMjYgaXRlbTI2OyB0eXBlZGVmIFAyNyBpdGVtMjc7IHR5cGVkZWYgUDI4IGl0ZW0yODsgdHlwZWRlZiBQMjkgaXRlbTI5OyB0eXBlZGVmIFAzMCBpdGVtMzA7IHR5cGVkZWYgUDMxIGl0ZW0zMTsgdHlwZWRlZiBQMzIgaXRlbTMyOyB0eXBlZGVmIFAzMyBpdGVtMzM7IHR5cGVkZWYgUDM0IGl0ZW0zNDsgdHlwZWRlZiBQMzUgaXRlbTM1OyB0eXBlZGVmIFAzNiBpdGVtMzY7IHR5cGVkZWYgUDM3IGl0ZW0zNzsgdHlwZWRlZiBQMzggaXRlbTM4OyB0eXBlZGVmIFAzOSBpdGVtMzk7IHR5cGVkZWYgUDQwIGl0ZW00MDsgdHlwZWRlZiBQNDEgaXRlbTQxOyB0eXBlZGVmIFA0MiBpdGVtNDI7IHR5cGVkZWYgUDQzIGl0ZW00MzsgdHlwZWRlZiBQNDQgaXRlbTQ0OyB0eXBlZGVmIFA0NSBpdGVtNDU7IHR5cGVkZWYgUDQ2IGl0ZW00NjsgdHlwZWRlZiBQNDcgaXRlbTQ3OyB0eXBlZGVmIFA0OCBpdGVtNDg7IHR5cGVkZWYgUDQ5IGl0ZW00OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTUzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNTc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW01ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTU5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTYyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW02NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTY4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNjk7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTcxOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzI7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03MzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc0OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzU7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03NjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTc3OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtNzg7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW03OTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgwOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODE7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04MjsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTgzOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODQ7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04NTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg2OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtODc7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW04ODsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTg5OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTA7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05MTsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTkyOyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTM7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NDsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk1OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTY7IHR5cGVkZWYgbXBsOjppbnRfPDE+IGl0ZW05NzsgdHlwZWRlZiBtcGw6OmludF88MT4gaXRlbTk4OyB0eXBlZGVmIG1wbDo6aW50XzwxPiBpdGVtOTk7IH07Cit9fQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHR5cGVfb2YgeworICAgIHRlbXBsYXRlPGNsYXNzIFYsIGNsYXNzIFQ+IHN0cnVjdCBwdXNoX2JhY2sgeworICAgICAgICB0eXBlZGVmIFYgdHlwZTsKKyAgICB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMDw+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjE8IFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxPCBQMD4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjwgUDAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyPCBQMCAsIFAxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzPCBQMCAsIFAxICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzPCBQMCAsIFAxICwgUDI+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjQ8IFAwICwgUDEgLCBQMiAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0PCBQMCAsIFAxICwgUDIgLCBQMz4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I2PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDU+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3Rvcjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFQgPiB0eXBlOyB9OworICAgICAgICB0ZW1wbGF0ZTwgY2xhc3MgUDAgLCBjbGFzcyBQMSAsIGNsYXNzIFAyICwgY2xhc3MgUDMgLCBjbGFzcyBQNCAsIGNsYXNzIFA1ICwgY2xhc3MgUDYgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I3PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNj4sIFQ+IHsgdHlwZWRlZiBuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I4PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgVCA+IHR5cGU7IH07CisgICAgICAgIHRlbXBsYXRlPCBjbGFzcyBQMCAsIGNsYXNzIFAxICwgY2xhc3MgUDIgLCBjbGFzcyBQMyAsIGNsYXNzIFA0ICwgY2xhc3MgUDUgLCBjbGFzcyBQNiAsIGNsYXNzIFA3ICwgY2xhc3MgUDggLCBjbGFzcyBUPiBzdHJ1Y3QgcHVzaF9iYWNrPG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I5PCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDg+LCBUPiB7IHR5cGVkZWYgbmRuYm9vc3Q6OnR5cGVfb2Y6OnZlY3RvcjEwPCBQMCAsIFAxICwgUDIgLCBQMyAsIFA0ICwgUDUgLCBQNiAsIFA3ICwgUDggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IxOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMTk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IyOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMjk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzMzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzNzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3IzOTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yMzk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDA8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDE8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDI8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0MzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDM8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDQ8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzPiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDU8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NjwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDY8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0NzwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDc8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0ODwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDg8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I0OTwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBUID4gdHlwZTsgfTsKKyAgICAgICAgdGVtcGxhdGU8IGNsYXNzIFAwICwgY2xhc3MgUDEgLCBjbGFzcyBQMiAsIGNsYXNzIFAzICwgY2xhc3MgUDQgLCBjbGFzcyBQNSAsIGNsYXNzIFA2ICwgY2xhc3MgUDcgLCBjbGFzcyBQOCAsIGNsYXNzIFA5ICwgY2xhc3MgUDEwICwgY2xhc3MgUDExICwgY2xhc3MgUDEyICwgY2xhc3MgUDEzICwgY2xhc3MgUDE0ICwgY2xhc3MgUDE1ICwgY2xhc3MgUDE2ICwgY2xhc3MgUDE3ICwgY2xhc3MgUDE4ICwgY2xhc3MgUDE5ICwgY2xhc3MgUDIwICwgY2xhc3MgUDIxICwgY2xhc3MgUDIyICwgY2xhc3MgUDIzICwgY2xhc3MgUDI0ICwgY2xhc3MgUDI1ICwgY2xhc3MgUDI2ICwgY2xhc3MgUDI3ICwgY2xhc3MgUDI4ICwgY2xhc3MgUDI5ICwgY2xhc3MgUDMwICwgY2xhc3MgUDMxICwgY2xhc3MgUDMyICwgY2xhc3MgUDMzICwgY2xhc3MgUDM0ICwgY2xhc3MgUDM1ICwgY2xhc3MgUDM2ICwgY2xhc3MgUDM3ICwgY2xhc3MgUDM4ICwgY2xhc3MgUDM5ICwgY2xhc3MgUDQwICwgY2xhc3MgUDQxICwgY2xhc3MgUDQyICwgY2xhc3MgUDQzICwgY2xhc3MgUDQ0ICwgY2xhc3MgUDQ1ICwgY2xhc3MgUDQ2ICwgY2xhc3MgUDQ3ICwgY2xhc3MgUDQ4ICwgY2xhc3MgVD4gc3RydWN0IHB1c2hfYmFjazxuZG5ib29zdDo6dHlwZV9vZjo6dmVjdG9yNDk8IFAwICwgUDEgLCBQMiAsIFAzICwgUDQgLCBQNSAsIFA2ICwgUDcgLCBQOCAsIFA5ICwgUDEwICwgUDExICwgUDEyICwgUDEzICwgUDE0ICwgUDE1ICwgUDE2ICwgUDE3ICwgUDE4ICwgUDE5ICwgUDIwICwgUDIxICwgUDIyICwgUDIzICwgUDI0ICwgUDI1ICwgUDI2ICwgUDI3ICwgUDI4ICwgUDI5ICwgUDMwICwgUDMxICwgUDMyICwgUDMzICwgUDM0ICwgUDM1ICwgUDM2ICwgUDM3ICwgUDM4ICwgUDM5ICwgUDQwICwgUDQxICwgUDQyICwgUDQzICwgUDQ0ICwgUDQ1ICwgUDQ2ICwgUDQ3ICwgUDQ4PiwgVD4geyB0eXBlZGVmIG5kbmJvb3N0Ojp0eXBlX29mOjp2ZWN0b3I1MDwgUDAgLCBQMSAsIFAyICwgUDMgLCBQNCAsIFA1ICwgUDYgLCBQNyAsIFA4ICwgUDkgLCBQMTAgLCBQMTEgLCBQMTIgLCBQMTMgLCBQMTQgLCBQMTUgLCBQMTYgLCBQMTcgLCBQMTggLCBQMTkgLCBQMjAgLCBQMjEgLCBQMjIgLCBQMjMgLCBQMjQgLCBQMjUgLCBQMjYgLCBQMjcgLCBQMjggLCBQMjkgLCBQMzAgLCBQMzEgLCBQMzIgLCBQMzMgLCBQMzQgLCBQMzUgLCBQMzYgLCBQMzcgLCBQMzggLCBQMzkgLCBQNDAgLCBQNDEgLCBQNDIgLCBQNDMgLCBQNDQgLCBQNDUgLCBQNDYgLCBQNDcgLCBQNDggLCBUID4gdHlwZTsgfTsKK319CmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3VuaXRzL2RldGFpbC91dGlsaXR5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5pdHMvZGV0YWlsL3V0aWxpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3OTQ2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3VuaXRzL2RldGFpbC91dGlsaXR5LmhwcApAQCAtMCwwICsxLDEwNCBAQAorLy8gQm9vc3QuVW5pdHMgLSBBIEMrKyBsaWJyYXJ5IGZvciB6ZXJvLW92ZXJoZWFkIGRpbWVuc2lvbmFsIGFuYWx5c2lzIGFuZCAKKy8vIHVuaXQvcXVhbnRpdHkgbWFuaXB1bGF0aW9uIGFuZCBjb252ZXJzaW9uCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDAzLTIwMDggTWF0dGhpYXMgQ2hyaXN0aWFuIFNjaGFiZWwKKy8vIENvcHlyaWdodCAoQykgMjAwOCBTdGV2ZW4gV2F0YW5hYmUKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVU5JVFNfVVRJTElUWV9IUFAKKyNkZWZpbmUgQk9PU1RfVU5JVFNfVVRJTElUWV9IUFAKKworI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8dHlwZWluZm8+CisjaW5jbHVkZSA8c3RyaW5nPgorCisjaWYgZGVmaW5lZChfX0dMSUJDWFhfXykgfHwgZGVmaW5lZChfX0dMSUJDUFBfXykKKyNkZWZpbmUgQk9PU1RfVU5JVFNfVVNFX0RFTUFOR0xJTkcKKyNpbmNsdWRlIDxjeHhhYmkuaD4KKyNlbmRpZiAvLyBfX0dOVUNfXworCisjaWZkZWYgQk9PU1RfVU5JVFNfVVNFX0RFTUFOR0xJTkcKKworI2luY2x1ZGUgPG5kbmJvb3N0L2FsZ29yaXRobS9zdHJpbmcvcmVwbGFjZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB1bml0cyB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCitpbmxpbmUKK3N0ZDo6c3RyaW5nCitkZW1hbmdsZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIC8vIG5lZWQgdG8gZGVtYW5nbGUgQysrIHN5bWJvbHMKKyAgICBjaGFyKiAgICAgICByZWFsbmFtZTsKKyAgICBzdGQ6OnNpemVfdCBsZW47IAorICAgIGludCAgICAgICAgIHN0YXQ7CisgICAgIAorICAgIHJlYWxuYW1lID0gYWJpOjpfX2N4YV9kZW1hbmdsZShuYW1lLE5VTEwsJmxlbiwmc3RhdCk7CisgICAgCisgICAgaWYgKHJlYWxuYW1lICE9IE5VTEwpCisgICAgeworICAgICAgICBzdGQ6OnN0cmluZyAgIG91dChyZWFsbmFtZSk7CisgICAgICAgIAorICAgICAgICBzdGQ6OmZyZWUocmVhbG5hbWUpOworICAgICAgICAKKyAgICAgICAgbmRuYm9vc3Q6OnJlcGxhY2VfYWxsKG91dCwibmRuYm9vc3Q6OnVuaXRzOjoiLCIiKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIAorICAgIHJldHVybiBzdGQ6OnN0cmluZygiZGVtYW5nbGUgOjogZXJyb3IgLSB1bmFibGUgdG8gZGVtYW5nbGUgc3BlY2lmaWVkIHN5bWJvbCIpOworfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKwordGVtcGxhdGU8Y2xhc3MgTD4KK3N0ZDo6c3RyaW5nIHNpbXBsaWZ5X3R5cGVuYW1lKGNvbnN0IEwmIC8qc291cmNlKi8pCit7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcgICBkZW1hbmdsZWQgPSBkZXRhaWw6OmRlbWFuZ2xlKHR5cGVpZChMKS5uYW1lKCkpOworCisgICAgcmV0dXJuIGRlbWFuZ2xlZDsKK30KKworfSAvLyBuYW1lc3BhY2UgdW5pdHMKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2Vsc2UgLy8gQk9PU1RfVU5JVFNfVVNFX0RFTUFOR0xJTkcKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIHVuaXRzIHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK2lubGluZQorc3RkOjpzdHJpbmcKK2RlbWFuZ2xlKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit0ZW1wbGF0ZTxjbGFzcyBMPgorc3RkOjpzdHJpbmcgc2ltcGxpZnlfdHlwZW5hbWUoY29uc3QgTCYgLypzb3VyY2UqLykKK3sKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcodHlwZWlkKEwpLm5hbWUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIHVuaXRzCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKy8vIFRvIGdldCBzeXN0ZW0tc3BlY2lmaWMgcHJlZGVmaW5lZCBtYWNyb3M6CisvLyBnY2MgLWFyY2ggcHBjIC1kTSAtRSAtIDwgL2Rldi9udWxsIHwgc29ydCAKKworI2VuZGlmIC8vIEJPT1NUX1VOSVRTX1VTRV9ERU1BTkdMSU5HCisKKyNlbmRpZiAvLyBCT09TVF9VTklUU19VVElMSVRZX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2FsbG9jYXRlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9hbGxvY2F0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFkNjcyNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9hbGxvY2F0ZS5ocHAKQEAgLTAsMCArMSwxMTIwIEBACisKKy8vIENvcHlyaWdodCAyMDA1LTIwMTEgRGFuaWVsIEphbWVzLgorLy8gQ29weXJpZ2h0IDIwMDkgUGFibG8gSGFscGVybi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKKy8vIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdW5vcmRlcmVkIGZvciBkb2N1bWVudGF0aW9uCisKKyNpZm5kZWYgQk9PU1RfVU5PUkRFUkVEX0FMTE9DQVRFX0hQUAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfQUxMT0NBVEVfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21vdmUvbW92ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2RlYy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0X2Zyb21fdG8uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hZGRfbHZhbHVlX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHVwbGUvdHVwbGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NlbGVjdF90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hc3NlcnQuaHBwPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUpCisjaW5jbHVkZSA8dHVwbGU+CisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDUxMikgLy8gYXNzaWdubWVudCBvcGVyYXRvciBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkLgorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM0NSkgLy8gYmVoYXZpb3IgY2hhbmdlOiBhbiBvYmplY3Qgb2YgUE9EIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdGVkIHdpdGggYW4gaW5pdGlhbGl6ZXIgb2YgdGhlIGZvcm0gKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgZGVmYXVsdC1pbml0aWFsaXplZC4KKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0xJTUlUIDEwCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB1bm9yZGVyZWQgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBCaXRzIGFuZCBwaWVjZXMgZm9yIGltcGxlbWVudGluZyB0cmFpdHMKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX2x2YWx1ZV9yZWZlcmVuY2U8VD46OnR5cGUgbWFrZSgpOworICAgIHN0cnVjdCBjaG9pY2U5IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbOV07IH07CisgICAgc3RydWN0IGNob2ljZTggOiBjaG9pY2U5IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbOF07IH07CisgICAgc3RydWN0IGNob2ljZTcgOiBjaG9pY2U4IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbN107IH07CisgICAgc3RydWN0IGNob2ljZTYgOiBjaG9pY2U3IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbNl07IH07CisgICAgc3RydWN0IGNob2ljZTUgOiBjaG9pY2U2IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbNV07IH07CisgICAgc3RydWN0IGNob2ljZTQgOiBjaG9pY2U1IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbNF07IH07CisgICAgc3RydWN0IGNob2ljZTMgOiBjaG9pY2U0IHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbM107IH07CisgICAgc3RydWN0IGNob2ljZTIgOiBjaG9pY2UzIHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbMl07IH07CisgICAgc3RydWN0IGNob2ljZTEgOiBjaG9pY2UyIHsgdHlwZWRlZiBjaGFyICgmdHlwZSlbMV07IH07CisgICAgY2hvaWNlMSBjaG9vc2UoKTsKKworICAgIHR5cGVkZWYgY2hvaWNlMTo6dHlwZSB5ZXNfdHlwZTsKKyAgICB0eXBlZGVmIGNob2ljZTI6OnR5cGUgbm9fdHlwZTsKKworICAgIHN0cnVjdCBwcml2YXRlX3R5cGUKKyAgICB7CisgICAgICAgcHJpdmF0ZV90eXBlIGNvbnN0ICZvcGVyYXRvciwoaW50KSBjb25zdDsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgbm9fdHlwZSBpc19wcml2YXRlX3R5cGUoVCBjb25zdCYpOworICAgIHllc190eXBlIGlzX3ByaXZhdGVfdHlwZShwcml2YXRlX3R5cGUgY29uc3QmKTsKKworICAgIHN0cnVjdCBjb252ZXJ0X2Zyb21fYW55dGhpbmcgeworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgY29udmVydF9mcm9tX2FueXRoaW5nKFQgY29uc3QmKTsKKyAgICB9OworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIGVtcGxhY2VfYXJncworICAgIC8vCisgICAgLy8gRWl0aGVyIGZvcndhcmRpbmcgdmFyaWFkaWMgYXJndW1lbnRzLCBvciBzdG9yaW5nIHRoZSBhcmd1bWVudHMgaW4KKyAgICAvLyBlbXBsYWNlX2FyZ3MjI24KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykKKworI2RlZmluZSBCT09TVF9VTk9SREVSRURfRU1QTEFDRV9URU1QTEFURSB0eXBlbmFtZS4uLiBBcmdzCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0FSR1MgQk9PU1RfRldEX1JFRihBcmdzKS4uLiBhcmdzCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQgbmRuYm9vc3Q6OmZvcndhcmQ8QXJncz4oYXJncykuLi4KKworI2RlZmluZSBCT09TVF9VTk9SREVSRURfRU1QTEFDRV9BUkdTMShhMCkgYTAKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfQVJHUzIoYTAsIGExKSBhMCwgYTEKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfQVJHUzMoYTAsIGExLCBhMikgYTAsIGExLCBhMgorCisjZWxzZQorCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX1RFTVBMQVRFIHR5cGVuYW1lIEFyZ3MKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfQVJHUyBBcmdzIGNvbnN0JiBhcmdzCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQgYXJncworCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9GV0RfUEFSQU0oeiwgbiwgYSkgXAorICAgIEJPT1NUX0ZXRF9SRUYoQk9PU1RfUFBfQ0FUKEEsIG4pKSBCT09TVF9QUF9DQVQoYSwgbikKKworI2RlZmluZSBCT09TVF9VTk9SREVSRURfQ0FMTF9GT1JXQVJEKHosIGksIGEpIFwKKyAgICBuZG5ib29zdDo6Zm9yd2FyZDxCT09TVF9QUF9DQVQoQSxpKT4oQk9PU1RfUFBfQ0FUKGEsaSkpCisKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VBUkdTKHosIG4sIF8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgdHlwZW5hbWUgQSk+ICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoZW1wbGFjZV9hcmdzLCBuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX1JFUEVBVF8jI3oobiwgQk9PU1RfVU5PUkRFUkVEX0VBUkdTX01FTUJFUiwgXykgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9QUF9DQVQoZW1wbGFjZV9hcmdzLCBuKSAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fQklOQVJZX1BBUkFNU19aKHosIG4sIEFyZywgYikgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICkgOiBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfRUFSR1NfSU5JVCwgXykgICAgICAgICAgICAgXAorICAgICAgICB7fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8Qk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBuLCB0eXBlbmFtZSBBKT4gICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIEJPT1NUX1BQX0NBVChlbXBsYWNlX2FyZ3MsIG4pIDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNU19aKHosIG4sIEEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICA+IGNyZWF0ZV9lbXBsYWNlX2FyZ3MoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX0VOVU1fIyN6KG4sIEJPT1NUX1VOT1JERVJFRF9GV0RfUEFSQU0sIGIpICAgICAgICAgICAgICAgICAgXAorICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX0NBVChlbXBsYWNlX2FyZ3MsIG4pIDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBuLCBBKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgPiBlKEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgYikpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworI2RlZmluZSBCT09TVF9VTk9SREVSRURfRU1QTEFDRV9BUkdTMSBjcmVhdGVfZW1wbGFjZV9hcmdzCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0FSR1MyIGNyZWF0ZV9lbXBsYWNlX2FyZ3MKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfQVJHUzMgY3JlYXRlX2VtcGxhY2VfYXJncworCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKworI2RlZmluZSBCT09TVF9VTk9SREVSRURfRUFSR1NfTUVNQkVSKHosIG4sIF8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIEJPT1NUX0ZXRF9SRUYoQk9PU1RfUFBfQ0FUKEEsIG4pKSBCT09TVF9QUF9DQVQoQXJnLCBuKTsgICAgICAgICBcCisgICAgQk9PU1RfUFBfQ0FUKEFyZywgbikgQk9PU1RfUFBfQ0FUKGEsIG4pOworCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FQVJHU19JTklUKHosIG4sIF8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1BQX0NBVChhLCBuKSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8Qk9PU1RfUFBfQ0FUKEEsbik+KEJPT1NUX1BQX0NBVChiLCBuKSkpCisKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VBUkdTX01FTUJFUih6LCBuLCBfKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6YWRkX2x2YWx1ZV9yZWZlcmVuY2U8Qk9PU1RfUFBfQ0FUKEEsIG4pPjo6dHlwZSAgXAorICAgICAgICBCT09TVF9QUF9DQVQoQXJnLCBuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBCT09TVF9QUF9DQVQoQXJnLCBuKSBCT09TVF9QUF9DQVQoYSwgbik7CisKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VBUkdTX0lOSVQoeiwgbiwgXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfUFBfQ0FUKGEsIG4pKEJPT1NUX1BQX0NBVChiLCBuKSkKKworI2VuZGlmCisKK0JPT1NUX1BQX1JFUEVBVF9GUk9NX1RPKDEsIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0xJTUlULCBCT09TVF9VTk9SREVSRURfRUFSR1MsCisgICAgXykKKworI3VuZGVmIEJPT1NUX1VOT1JERVJFRF9ERUZJTkVfRU1QTEFDRV9BUkdTCisjdW5kZWYgQk9PU1RfVU5PUkRFUkVEX0VBUkdTX01FTUJFUgorI3VuZGVmIEJPT1NUX1VOT1JERVJFRF9FQVJHU19JTklUCisKKyNlbmRpZgorCit9fX0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBQaWNrIHdoaWNoIHZlcnNpb24gb2YgYWxsb2NhdG9yX3RyYWl0cyB0byB1c2UKKy8vCisvLyAwID0gT3duIHBhcnRpYWwgaW1wbGVtZW50YXRpb24KKy8vIDEgPSBzdGQ6OmFsbG9jYXRvcl90cmFpdHMKKy8vIDIgPSBuZG5ib29zdDo6Y29udGFpbmVyOjphbGxvY2F0b3JfdHJhaXRzCisKKyNpZiAhZGVmaW5lZChCT09TVF9VTk9SREVSRURfVVNFX0FMTE9DQVRPUl9UUkFJVFMpCisjICAgaWYgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykgJiYgXAorICAgICAgICAgICAgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSA3KSkKKyMgICAgICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9VU0VfQUxMT0NBVE9SX1RSQUlUUyAwCisjICAgZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjICAgICAgIGlmIEJPT1NUX01TVkMgPCAxNDAwCisgICAgICAgICAgICAvLyBVc2UgY29udGFpbmVyJ3MgYWxsb2NhdG9yX3RyYWl0cyBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgVmlzdWFsCisgICAgICAgICAgICAvLyBDKysgYXMgSSBkb24ndCB0ZXN0IHdpdGggdGhlbS4KKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfVVNFX0FMTE9DQVRPUl9UUkFJVFMgMgorIyAgICAgICBlbmRpZgorIyAgIGVuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1VOT1JERVJFRF9VU0VfQUxMT0NBVE9SX1RSQUlUUykKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX1VTRV9BTExPQ0FUT1JfVFJBSVRTIDAKKyNlbmRpZgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIFNvbWUgdXRpbGl0aWVzIGZvciBpbXBsZW1lbnRpbmcgYWxsb2NhdG9yX3RyYWl0cywgYnV0IHVzZWZ1bCBlbHNld2hlcmUgc28KKy8vIHRoZXkncmUgYWx3YXlzIGRlZmluZWQuCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFlQRV9UUkFJVFMpCisjICBpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdW5vcmRlcmVkIHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gSW50ZWdyYWxfY29uc3RyYW50LCB0cnVlX3R5cGUsIGZhbHNlX3R5cGUKKyAgICAvLworICAgIC8vIFVzZXMgdGhlIHN0YW5kYXJkIHZlcnNpb25zIGlmIGF2YWlsYWJsZS4KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUykKKworICAgIHVzaW5nIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ7CisgICAgdXNpbmcgc3RkOjp0cnVlX3R5cGU7CisgICAgdXNpbmcgc3RkOjpmYWxzZV90eXBlOworCisjZWxzZQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIFQgVmFsdWU+CisgICAgc3RydWN0IGludGVncmFsX2NvbnN0YW50IHsgZW51bSB7IHZhbHVlID0gVmFsdWUgfTsgfTsKKworICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLCB0cnVlPiB0cnVlX3R5cGU7CisgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmludGVncmFsX2NvbnN0YW50PGJvb2wsIGZhbHNlPiBmYWxzZV90eXBlOworCisjZW5kaWYKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBFeHBsaWNpdGx5IGNhbGwgYSBkZXN0cnVjdG9yCisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQxMDApIC8vIHVucmVmZXJlbmNlZCBmb3JtYWwgcGFyYW1ldGVyCisjZW5kaWYKKworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIGlubGluZSB2b2lkIGRlc3Ryb3koVCogeCkgeworICAgICAgICB4LT5+VCgpOworICAgIH0KKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBFeHByZXNzaW9uIHRlc3QgbWVjaGFuaXNtCisgICAgLy8KKyAgICAvLyBXaGVuIFNGSU5BRSBleHByZXNzaW9ucyBhcmUgYXZhaWxhYmxlLCBkZWZpbmUKKyAgICAvLyBCT09TVF9VTk9SREVSRURfSEFTX0ZVTkNUSU9OIHdoaWNoIGNhbiBjaGVjayBpZiBhIGZ1bmN0aW9uIGNhbGwgaXMKKyAgICAvLyBzdXBwb3J0ZWQgYnkgYSBjbGFzcywgb3RoZXJ3aXNlIGRlZmluZSBCT09TVF9VTk9SREVSRURfSEFTX01FTUJFUiB3aGljaAorICAgIC8vIGNhbiBkZXRlY3QgaWYgYSBjbGFzcyBoYXMgdGhlIHNwZWNpZmllZCBtZW1iZXIsIGJ1dCBub3QgdGhhdCBpdCBoYXMgdGhlCisgICAgLy8gY29ycmVjdCB0eXBlLCB0aGlzIGlzIGdvb2QgZW5vdWdoIGZvciBhIHBhc3NhYmxlIGltcHJlc3Npb24gb2YKKyAgICAvLyBhbGxvY2F0b3JfdHJhaXRzLgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fU0ZJTkFFX0VYUFIpCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdW5zaWduZWQgaW50PiBzdHJ1Y3QgZXhwcl90ZXN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgZXhwcl90ZXN0PFQsIHNpemVvZihjaGFyKT4gOiBUIHt9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBzdGF0aWMgY2hhciBmb3JfZXhwcl90ZXN0KFUgY29uc3QmKTsKKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfQ0hFQ0tfRVhQUkVTU0lPTihjb3VudCwgcmVzdWx0LCBleHByZXNzaW9uKSAgICAgIFwKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmV4cHJfdGVzdDwgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgQk9PU1RfUFBfQ0FUKGNob2ljZSwgcmVzdWx0KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHNpemVvZihuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmZvcl9leHByX3Rlc3QoKCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKGV4cHJlc3Npb24pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgMCkpKT46OnR5cGUgdGVzdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0NBVChjaG9pY2UsIGNvdW50KSkKKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfREVGQVVMVF9FWFBSRVNTSU9OKGNvdW50LCByZXN1bHQpICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyBCT09TVF9QUF9DQVQoY2hvaWNlLCByZXN1bHQpOjp0eXBlIHRlc3QoICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgQk9PU1RfUFBfQ0FUKGNob2ljZSwgY291bnQpKQorCisjICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9IQVNfRlVOQ1RJT04obmFtZSwgdGhpbmcsIGFyZ3MsIF8pICAgICAgICAgICAgICAgXAorICAgIHN0cnVjdCBCT09TVF9QUF9DQVQoaGFzXywgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1VOT1JERVJFRF9DSEVDS19FWFBSRVNTSU9OKDEsIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptYWtlPCB0aGluZyA+KCkubmFtZSBhcmdzKTsgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfRVhQUkVTU0lPTigyLCAyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbnVtIHsgdmFsdWUgPSBzaXplb2YodGVzdDxUPihjaG9vc2UoKSkpID09IHNpemVvZihjaG9pY2UxOjp0eXBlKSB9O1wKKyAgICB9CisKKyNlbHNlCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGlkZW50aXR5IHsgdHlwZWRlZiBUIHR5cGU7IH07CisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0NIRUNLX01FTUJFUihjb3VudCwgcmVzdWx0LCBuYW1lLCBtZW1iZXIpICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppZGVudGl0eTxtZW1iZXI+Ojp0eXBlICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfQ0FUKGNoZWNrLCBjb3VudCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlIDxCT09TVF9QUF9DQVQoY2hlY2ssIGNvdW50KSBlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKHRlc3QsIGNvdW50KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgQk9PU1RfUFBfQ0FUKGNob2ljZSwgcmVzdWx0KSB0eXBlOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHN0YXRpYyB0eXBlbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9QUF9DQVQodGVzdCwgY291bnQpPCZVOjpuYW1lPjo6dHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVzdChCT09TVF9QUF9DQVQoY2hvaWNlLCBjb3VudCkpCisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfTUVNQkVSKGNvdW50LCByZXN1bHQpICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHN0YXRpYyBCT09TVF9QUF9DQVQoY2hvaWNlLCByZXN1bHQpOjp0eXBlICAgICAgICAgICAgXAorICAgICAgICB0ZXN0KEJPT1NUX1BQX0NBVChjaG9pY2UsIGNvdW50KSkKKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfSEFTX01FTUJFUihuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdHJ1Y3QgQk9PU1RfUFBfQ0FUKGhhc18sIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdHJ1Y3QgaW1wbCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHN0cnVjdCBiYXNlX21peGluIHsgaW50IG5hbWU7IH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBzdHJ1Y3QgYmFzZSA6IHB1YmxpYyBULCBwdWJsaWMgYmFzZV9taXhpbiB7fTsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEJPT1NUX1VOT1JERVJFRF9DSEVDS19NRU1CRVIoMSwgMSwgbmFtZSwgaW50IGJhc2VfbWl4aW46OiopOyAgICBcCisgICAgICAgICAgICBCT09TVF9VTk9SREVSRURfREVGQVVMVF9NRU1CRVIoMiwgMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZihjaG9pY2UyOjp0eXBlKSA9PSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgc2l6ZW9mKHRlc3Q8YmFzZT4oY2hvb3NlKCkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbnVtIHsgdmFsdWUgPSBpbXBsOjp2YWx1ZSB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNlbmRpZgorCit9fX0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBBbGxvY2F0b3IgdHJhaXRzCisvLworLy8gRmlyc3Qgb3VyIGltcGxlbWVudGF0aW9uLCB0aGVuIGxhdGVyIGxpZ2h0IHdyYXBwZXJzIGFyb3VuZCB0aGUgYWx0ZXJuYXRpdmVzCisKKyNpZiBCT09TVF9VTk9SREVSRURfVVNFX0FMTE9DQVRPUl9UUkFJVFMgPT0gMAorCisjICAgaW5jbHVkZSA8bmRuYm9vc3QvbGltaXRzLmhwcD4KKyMgICBpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHA+CisjICAgaW5jbHVkZSA8bmRuYm9vc3QvcG9pbnRlcl90b19vdGhlci5ocHA+CisjICAgaWYgZGVmaW5lZChCT09TVF9OT19TRklOQUVfRVhQUikKKyMgICAgICAgaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjICAgZW5kaWYKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykgJiYgXAorICAgICAgICAhZGVmaW5lZChCT09TVF9OT19TRklOQUVfRVhQUikKKyMgICAgICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9ERVRBSUxfRlVMTF9DT05TVFJVQ1QgMQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9ERVRBSUxfRlVMTF9DT05TVFJVQ1QgMAorIyAgIGVuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB1bm9yZGVyZWQgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgIC8vIFRPRE86IERvZXMgdGhpcyBtYXRjaCBzdGQ6OmFsbG9jYXRvcl90cmFpdHM8QWxsb2M+OjpyZWJpbmRfYWxsb2M8VD4/CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZWJpbmRfd3JhcAorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBbGxvYzo6Qk9PU1RfTkVTVEVEX1RFTVBMQVRFIHJlYmluZDxUPjo6b3RoZXIgdHlwZTsKKyAgICB9OworCisjICAgaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiBCT09TVF9NU1ZDIDw9IDE0MDAKKworIyAgICAgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRV9UTVBMVCh0bmFtZSkgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHAsIHR5cGVuYW1lIERlZmF1bHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RydWN0IGRlZmF1bHRfdHlwZV8gIyMgdG5hbWUgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyBjaG9pY2UxOjp0eXBlIHRlc3QoY2hvaWNlMSwgdHlwZW5hbWUgWDo6dG5hbWUqID0gMCk7ICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyBjaG9pY2UyOjp0eXBlIHRlc3QoY2hvaWNlMiwgdm9pZCogPSAwKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RydWN0IERlZmF1bHRXcmFwIHsgdHlwZWRlZiBEZWZhdWx0IHRuYW1lOyB9OyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbnVtIHsgdmFsdWUgPSAoMSA9PSBzaXplb2YodGVzdDxUcD4oY2hvb3NlKCkpKSkgfTsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6aWZfdHJ1ZTx2YWx1ZT46OiAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgQk9PU1RfTkVTVEVEX1RFTVBMQVRFIHRoZW48VHAsIERlZmF1bHRXcmFwPiAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIDo6dHlwZTo6dG5hbWUgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisjICAgZWxzZQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFQyPgorICAgIHN0cnVjdCBzZmluYWUgOiBUMiB7fTsKKworIyAgICAgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRV9UTVBMVCh0bmFtZSkgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHAsIHR5cGVuYW1lIERlZmF1bHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RydWN0IGRlZmF1bHRfdHlwZV8gIyMgdG5hbWUgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnNmaW5hZTwgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIFg6OnRuYW1lLCBjaG9pY2UxPjo6dHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHRlc3QoY2hvaWNlMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgWD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RhdGljIGNob2ljZTI6OnR5cGUgdGVzdChjaG9pY2UyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdHJ1Y3QgRGVmYXVsdFdyYXAgeyB0eXBlZGVmIERlZmF1bHQgdG5hbWU7IH07ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGVudW0geyB2YWx1ZSA9ICgxID09IHNpemVvZih0ZXN0PFRwPihjaG9vc2UoKSkpKSB9OyAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppZl90cnVlPHZhbHVlPjo6ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9ORVNURURfVEVNUExBVEUgdGhlbjxUcCwgRGVmYXVsdFdyYXA+ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgOjp0eXBlOjp0bmFtZSB0eXBlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyMgICBlbmRpZgorCisjICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEUoVCx0bmFtZSwgYXJnKSAgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZW5hbWUgZGVmYXVsdF90eXBlXyAjIyB0bmFtZTxULCBhcmc+Ojp0eXBlCisKKyAgICBCT09TVF9VTk9SREVSRURfREVGQVVMVF9UWVBFX1RNUExUKHBvaW50ZXIpOworICAgIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEVfVE1QTFQoY29uc3RfcG9pbnRlcik7CisgICAgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRV9UTVBMVCh2b2lkX3BvaW50ZXIpOworICAgIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEVfVE1QTFQoY29uc3Rfdm9pZF9wb2ludGVyKTsKKyAgICBCT09TVF9VTk9SREVSRURfREVGQVVMVF9UWVBFX1RNUExUKGRpZmZlcmVuY2VfdHlwZSk7CisgICAgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRV9UTVBMVChzaXplX3R5cGUpOworICAgIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEVfVE1QTFQocHJvcGFnYXRlX29uX2NvbnRhaW5lcl9jb3B5X2Fzc2lnbm1lbnQpOworICAgIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEVfVE1QTFQocHJvcGFnYXRlX29uX2NvbnRhaW5lcl9tb3ZlX2Fzc2lnbm1lbnQpOworICAgIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEVfVE1QTFQocHJvcGFnYXRlX29uX2NvbnRhaW5lcl9zd2FwKTsKKworIyAgIGlmICFkZWZpbmVkKEJPT1NUX05PX1NGSU5BRV9FWFBSKQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgQk9PU1RfVU5PUkRFUkVEX0hBU19GVU5DVElPTigKKyAgICAgICAgc2VsZWN0X29uX2NvbnRhaW5lcl9jb3B5X2NvbnN0cnVjdGlvbiwgVSBjb25zdCwgKCksIDAKKyAgICApOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgQk9PU1RfVU5PUkRFUkVEX0hBU19GVU5DVElPTigKKyAgICAgICAgbWF4X3NpemUsIFUgY29uc3QsICgpLCAwCisgICAgKTsKKworIyAgICAgICBpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIEJPT1NUX1VOT1JERVJFRF9IQVNfRlVOQ1RJT04oCisgICAgY29uc3RydWN0LCBVLCAoCisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bWFrZTxWYWx1ZVR5cGUqPigpLAorICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1ha2U8QXJncyBjb25zdD4oKS4uLiksIDIKKyAgICApOworCisjICAgICAgIGVsc2UKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBWYWx1ZVR5cGU+CisgICAgQk9PU1RfVU5PUkRFUkVEX0hBU19GVU5DVElPTigKKyAgICBjb25zdHJ1Y3QsIFUsICgKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptYWtlPFZhbHVlVHlwZSo+KCksCisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bWFrZTxWYWx1ZVR5cGUgY29uc3Q+KCkpLCAyCisgICAgKTsKKworIyAgICAgICBlbmRpZgorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFZhbHVlVHlwZT4KKyAgICBCT09TVF9VTk9SREVSRURfSEFTX0ZVTkNUSU9OKAorICAgICAgICBkZXN0cm95LCBVLCAobmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptYWtlPFZhbHVlVHlwZSo+KCkpLCAxCisgICAgKTsKKworIyAgIGVsc2UKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIEJPT1NUX1VOT1JERVJFRF9IQVNfTUVNQkVSKHNlbGVjdF9vbl9jb250YWluZXJfY29weV9jb25zdHJ1Y3Rpb24pOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgQk9PU1RfVU5PUkRFUkVEX0hBU19NRU1CRVIobWF4X3NpemUpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFZhbHVlVHlwZT4KKyAgICBCT09TVF9VTk9SREVSRURfSEFTX01FTUJFUihjb25zdHJ1Y3QpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFZhbHVlVHlwZT4KKyAgICBCT09TVF9VTk9SREVSRURfSEFTX01FTUJFUihkZXN0cm95KTsKKworIyAgIGVuZGlmCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2M+CisgICAgaW5saW5lIEFsbG9jIGNhbGxfc2VsZWN0X29uX2NvbnRhaW5lcl9jb3B5X2NvbnN0cnVjdGlvbihjb25zdCBBbGxvYyYgcmhzLAorICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZW5hYmxlX2lmX2M8CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OgorICAgICAgICAgICAgaGFzX3NlbGVjdF9vbl9jb250YWluZXJfY29weV9jb25zdHJ1Y3Rpb248QWxsb2M+Ojp2YWx1ZSwgdm9pZCoKKyAgICAgICAgPjo6dHlwZSA9IDApCisgICAgeworICAgICAgICByZXR1cm4gcmhzLnNlbGVjdF9vbl9jb250YWluZXJfY29weV9jb25zdHJ1Y3Rpb24oKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2M+CisgICAgaW5saW5lIEFsbG9jIGNhbGxfc2VsZWN0X29uX2NvbnRhaW5lcl9jb3B5X2NvbnN0cnVjdGlvbihjb25zdCBBbGxvYyYgcmhzLAorICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGlzYWJsZV9pZl9jPAorICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjoKKyAgICAgICAgICAgIGhhc19zZWxlY3Rfb25fY29udGFpbmVyX2NvcHlfY29uc3RydWN0aW9uPEFsbG9jPjo6dmFsdWUsIHZvaWQqCisgICAgICAgID46OnR5cGUgPSAwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJoczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2l6ZVR5cGUsIHR5cGVuYW1lIEFsbG9jPgorICAgIGlubGluZSBTaXplVHlwZSBjYWxsX21heF9zaXplKGNvbnN0IEFsbG9jJiBhLAorICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZW5hYmxlX2lmX2M8CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omhhc19tYXhfc2l6ZTxBbGxvYz46OnZhbHVlLCB2b2lkKgorICAgICAgICA+Ojp0eXBlID0gMCkKKyAgICB7CisgICAgICAgIHJldHVybiBhLm1heF9zaXplKCk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNpemVUeXBlLCB0eXBlbmFtZSBBbGxvYz4KKyAgICBpbmxpbmUgU2l6ZVR5cGUgY2FsbF9tYXhfc2l6ZShjb25zdCBBbGxvYyYsIHR5cGVuYW1lIG5kbmJvb3N0OjpkaXNhYmxlX2lmX2M8CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omhhc19tYXhfc2l6ZTxBbGxvYz46OnZhbHVlLCB2b2lkKgorICAgICAgICA+Ojp0eXBlID0gMCkKKyAgICB7CisgICAgICAgIHJldHVybiAoc3RkOjpudW1lcmljX2xpbWl0czxTaXplVHlwZT46Om1heCkoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2M+CisgICAgc3RydWN0IGFsbG9jYXRvcl90cmFpdHMKKyAgICB7CisgICAgICAgIHR5cGVkZWYgQWxsb2MgYWxsb2NhdG9yX3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQWxsb2M6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKKworICAgICAgICB0eXBlZGVmIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEUoQWxsb2MsIHBvaW50ZXIsIHZhbHVlX3R5cGUqKQorICAgICAgICAgICAgcG9pbnRlcjsKKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IHBvaW50ZXJfdG9fb3RoZXIgOiBuZG5ib29zdDo6cG9pbnRlcl90b19vdGhlcjxwb2ludGVyLCBUPiB7fTsKKworICAgICAgICB0eXBlZGVmIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEUoQWxsb2MsIGNvbnN0X3BvaW50ZXIsCisgICAgICAgICAgICB0eXBlbmFtZSBwb2ludGVyX3RvX290aGVyPGNvbnN0IHZhbHVlX3R5cGU+Ojp0eXBlKQorICAgICAgICAgICAgY29uc3RfcG9pbnRlcjsKKworICAgICAgICAvL3R5cGVkZWYgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRShBbGxvYywgdm9pZF9wb2ludGVyLAorICAgICAgICAvLyAgICB0eXBlbmFtZSBwb2ludGVyX3RvX290aGVyPHZvaWQ+Ojp0eXBlKQorICAgICAgICAvLyAgICB2b2lkX3BvaW50ZXI7CisgICAgICAgIC8vCisgICAgICAgIC8vdHlwZWRlZiBCT09TVF9VTk9SREVSRURfREVGQVVMVF9UWVBFKEFsbG9jLCBjb25zdF92b2lkX3BvaW50ZXIsCisgICAgICAgIC8vICAgIHR5cGVuYW1lIHBvaW50ZXJfdG9fb3RoZXI8Y29uc3Qgdm9pZD46OnR5cGUpCisgICAgICAgIC8vICAgIGNvbnN0X3ZvaWRfcG9pbnRlcjsKKworICAgICAgICB0eXBlZGVmIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEUoQWxsb2MsIGRpZmZlcmVuY2VfdHlwZSwKKyAgICAgICAgICAgIHN0ZDo6cHRyZGlmZl90KSBkaWZmZXJlbmNlX3R5cGU7CisKKyAgICAgICAgdHlwZWRlZiBCT09TVF9VTk9SREVSRURfREVGQVVMVF9UWVBFKEFsbG9jLCBzaXplX3R5cGUsIHN0ZDo6c2l6ZV90KQorICAgICAgICAgICAgc2l6ZV90eXBlOworCisgICAgICAgIC8vIFRPRE86IHJlYmluZF9hbGxvYyBhbmQgcmViaW5kX3RyYWl0cworCisgICAgICAgIHN0YXRpYyBwb2ludGVyIGFsbG9jYXRlKEFsbG9jJiBhLCBzaXplX3R5cGUgbikKKyAgICAgICAgICAgIHsgcmV0dXJuIGEuYWxsb2NhdGUobik7IH0KKworICAgICAgICAvLyBJIG5ldmVyIHVzZSB0aGlzLCBzbyBJJ2xsIGp1c3QgY29tbWVudCBpdCBvdXQgZm9yIG5vdy4KKyAgICAgICAgLy8KKyAgICAgICAgLy9zdGF0aWMgcG9pbnRlciBhbGxvY2F0ZShBbGxvYyYgYSwgc2l6ZV90eXBlIG4sCisgICAgICAgIC8vICAgICAgICBjb25zdF92b2lkX3BvaW50ZXIgaGludCkKKyAgICAgICAgLy8gICAgeyByZXR1cm4gREVGQVVMVF9GVU5DKGFsbG9jYXRlLCBwb2ludGVyKShhLCBuLCBoaW50KTsgfQorCisgICAgICAgIHN0YXRpYyB2b2lkIGRlYWxsb2NhdGUoQWxsb2MmIGEsIHBvaW50ZXIgcCwgc2l6ZV90eXBlIG4pCisgICAgICAgICAgICB7IGEuZGVhbGxvY2F0ZShwLCBuKTsgfQorCisgICAgcHVibGljOgorCisjICAgaWYgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9GVUxMX0NPTlNUUlVDVAorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgICAgICBzdGF0aWMgdHlwZW5hbWUgbmRuYm9vc3Q6OmVuYWJsZV9pZl9jPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aGFzX2NvbnN0cnVjdDxBbGxvYywgVCwgQXJncy4uLj4KKyAgICAgICAgICAgICAgICA6OnZhbHVlPjo6dHlwZQorICAgICAgICAgICAgY29uc3RydWN0KEFsbG9jJiBhLCBUKiBwLCBCT09TVF9GV0RfUkVGKEFyZ3MpLi4uIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGEuY29uc3RydWN0KHAsIG5kbmJvb3N0Ojpmb3J3YXJkPEFyZ3M+KHgpLi4uKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgICAgICBzdGF0aWMgdHlwZW5hbWUgbmRuYm9vc3Q6OmRpc2FibGVfaWZfYzwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omhhc19jb25zdHJ1Y3Q8QWxsb2MsIFQsIEFyZ3MuLi4+CisgICAgICAgICAgICAgICAgOjp2YWx1ZT46OnR5cGUKKyAgICAgICAgICAgIGNvbnN0cnVjdChBbGxvYyYsIFQqIHAsIEJPT1NUX0ZXRF9SRUYoQXJncykuLi4geCkKKyAgICAgICAgeworICAgICAgICAgICAgbmV3ICgodm9pZCopIHApIFQobmRuYm9vc3Q6OmZvcndhcmQ8QXJncz4oeCkuLi4pOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6ZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpoYXNfZGVzdHJveTxBbGxvYywgVD46OnZhbHVlPjo6dHlwZQorICAgICAgICAgICAgZGVzdHJveShBbGxvYyYgYSwgVCogcCkKKyAgICAgICAgeworICAgICAgICAgICAgYS5kZXN0cm95KHApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6ZGlzYWJsZV9pZl9jPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aGFzX2Rlc3Ryb3k8QWxsb2MsIFQ+Ojp2YWx1ZT46OnR5cGUKKyAgICAgICAgICAgIGRlc3Ryb3koQWxsb2MmLCBUKiBwKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmRlc3Ryb3kocCk7CisgICAgICAgIH0KKworIyAgIGVsaWYgIWRlZmluZWQoQk9PU1RfTk9fU0ZJTkFFX0VYUFIpCisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6ZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpoYXNfY29uc3RydWN0PEFsbG9jLCBUPjo6dmFsdWU+Ojp0eXBlCisgICAgICAgICAgICBjb25zdHJ1Y3QoQWxsb2MmIGEsIFQqIHAsIFQgY29uc3QmIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGEuY29uc3RydWN0KHAsIHgpOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0YXRpYyB0eXBlbmFtZSBuZG5ib29zdDo6ZGlzYWJsZV9pZl9jPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aGFzX2NvbnN0cnVjdDxBbGxvYywgVD46OnZhbHVlPjo6dHlwZQorICAgICAgICAgICAgY29uc3RydWN0KEFsbG9jJiwgVCogcCwgVCBjb25zdCYgeCkKKyAgICAgICAgeworICAgICAgICAgICAgbmV3ICgodm9pZCopIHApIFQoeCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RhdGljIHR5cGVuYW1lIG5kbmJvb3N0OjplbmFibGVfaWZfYzwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omhhc19kZXN0cm95PEFsbG9jLCBUPjo6dmFsdWU+Ojp0eXBlCisgICAgICAgICAgICBkZXN0cm95KEFsbG9jJiBhLCBUKiBwKQorICAgICAgICB7CisgICAgICAgICAgICBhLmRlc3Ryb3kocCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RhdGljIHR5cGVuYW1lIG5kbmJvb3N0OjpkaXNhYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpoYXNfZGVzdHJveTxBbGxvYywgVD46OnZhbHVlPjo6dHlwZQorICAgICAgICAgICAgZGVzdHJveShBbGxvYyYsIFQqIHApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVzdHJveShwKTsKKyAgICAgICAgfQorCisjICAgZWxzZQorCisgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgU0ZJTkFFIGV4cHJlc3Npb25zLCBvbmx5IGNhbGwgY29uc3RydWN0IGZvciB0aGUKKyAgICAgICAgLy8gY29weSBjb25zdHJ1Y3RvciBmb3IgdGhlIGFsbG9jYXRvcidzIHZhbHVlX3R5cGUgLSBhcyB0aGF0J3MKKyAgICAgICAgLy8gdGhlIG9ubHkgY29uc3RydWN0IG1ldGhvZCB0aGF0IG9sZCBmYXNoaW9uZWQgYWxsb2NhdG9ycyBzdXBwb3J0LgorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3QoQWxsb2MmIGEsIFQqIHAsIFQgY29uc3QmIHgsCisgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZW5hYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aGFzX2NvbnN0cnVjdDxBbGxvYywgVD46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19zYW1lPFQsIHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgdm9pZCo+Ojp0eXBlID0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYS5jb25zdHJ1Y3QocCwgeCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0KEFsbG9jJiwgVCogcCwgVCBjb25zdCYgeCwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkaXNhYmxlX2lmX2M8CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpoYXNfY29uc3RydWN0PEFsbG9jLCBUPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTxULCB2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgdm9pZCo+Ojp0eXBlID0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgbmV3ICgodm9pZCopIHApIFQoeCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShBbGxvYyYgYSwgVCogcCwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjplbmFibGVfaWZfYzwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omhhc19kZXN0cm95PEFsbG9jLCBUPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTxULCB2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgdm9pZCo+Ojp0eXBlID0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYS5kZXN0cm95KHApOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koQWxsb2MmLCBUKiBwLAorICAgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRpc2FibGVfaWZfYzwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omhhc19kZXN0cm95PEFsbG9jLCBUPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfc2FtZTxULCB2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgdm9pZCo+Ojp0eXBlID0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkZXN0cm95KHApOworICAgICAgICB9CisKKyMgICBlbmRpZgorCisgICAgICAgIHN0YXRpYyBzaXplX3R5cGUgbWF4X3NpemUoY29uc3QgQWxsb2MmIGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNhbGxfbWF4X3NpemU8c2l6ZV90eXBlPihhKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFsbG9jYXRvciBwcm9wYWdhdGlvbiBvbiBjb25zdHJ1Y3Rpb24KKworICAgICAgICBzdGF0aWMgQWxsb2Mgc2VsZWN0X29uX2NvbnRhaW5lcl9jb3B5X2NvbnN0cnVjdGlvbihBbGxvYyBjb25zdCYgcmhzKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjoKKyAgICAgICAgICAgICAgICBjYWxsX3NlbGVjdF9vbl9jb250YWluZXJfY29weV9jb25zdHJ1Y3Rpb24ocmhzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFsbG9jYXRvciBwcm9wYWdhdGlvbiBvbiBhc3NpZ25tZW50IGFuZCBzd2FwLgorICAgICAgICAvLyBSZXR1cm4gdHJ1ZSBpZiBsaHMgaXMgbW9kaWZpZWQuCisgICAgICAgIHR5cGVkZWYgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRSgKKyAgICAgICAgICAgIEFsbG9jLCBwcm9wYWdhdGVfb25fY29udGFpbmVyX2NvcHlfYXNzaWdubWVudCwgZmFsc2VfdHlwZSkKKyAgICAgICAgICAgIHByb3BhZ2F0ZV9vbl9jb250YWluZXJfY29weV9hc3NpZ25tZW50OworICAgICAgICB0eXBlZGVmIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEUoCisgICAgICAgICAgICBBbGxvYyxwcm9wYWdhdGVfb25fY29udGFpbmVyX21vdmVfYXNzaWdubWVudCwgZmFsc2VfdHlwZSkKKyAgICAgICAgICAgIHByb3BhZ2F0ZV9vbl9jb250YWluZXJfbW92ZV9hc3NpZ25tZW50OworICAgICAgICB0eXBlZGVmIEJPT1NUX1VOT1JERVJFRF9ERUZBVUxUX1RZUEUoCisgICAgICAgICAgICBBbGxvYyxwcm9wYWdhdGVfb25fY29udGFpbmVyX3N3YXAsZmFsc2VfdHlwZSkKKyAgICAgICAgICAgIHByb3BhZ2F0ZV9vbl9jb250YWluZXJfc3dhcDsKKyAgICB9OworfX19CisKKyMgICB1bmRlZiBCT09TVF9VTk9SREVSRURfREVGQVVMVF9UWVBFX1RNUExUCisjICAgdW5kZWYgQk9PU1RfVU5PUkRFUkVEX0RFRkFVTFRfVFlQRQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHN0ZDo6YWxsb2NhdG9yX3RyYWl0cworCisjZWxpZiBCT09TVF9VTk9SREVSRURfVVNFX0FMTE9DQVRPUl9UUkFJVFMgPT0gMQorCisjICAgaW5jbHVkZSA8bWVtb3J5PgorCisjICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9ERVRBSUxfRlVMTF9DT05TVFJVQ1QgMQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdW5vcmRlcmVkIHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2M+CisgICAgc3RydWN0IGFsbG9jYXRvcl90cmFpdHMgOiBzdGQ6OmFsbG9jYXRvcl90cmFpdHM8QWxsb2M+IHt9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZWJpbmRfd3JhcAorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmFsbG9jYXRvcl90cmFpdHM8QWxsb2M+OjoKKyAgICAgICAgICAgIHRlbXBsYXRlIHJlYmluZF9hbGxvYzxUPiB0eXBlOworICAgIH07Cit9fX0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBuZG5ib29zdDo6Y29udGFpbmVyOjphbGxvY2F0b3JfdHJhaXRzCisKKyNlbGlmIEJPT1NUX1VOT1JERVJFRF9VU0VfQUxMT0NBVE9SX1RSQUlUUyA9PSAyCisKKyMgICBpbmNsdWRlIDxuZG5ib29zdC9jb250YWluZXIvYWxsb2NhdG9yX3RyYWl0cy5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9GVUxMX0NPTlNUUlVDVCAwCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB1bm9yZGVyZWQgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBbGxvYz4KKyAgICBzdHJ1Y3QgYWxsb2NhdG9yX3RyYWl0cyA6CisgICAgICAgIG5kbmJvb3N0Ojpjb250YWluZXI6OmFsbG9jYXRvcl90cmFpdHM8QWxsb2M+IHt9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCByZWJpbmRfd3JhcCA6CisgICAgICAgIG5kbmJvb3N0Ojpjb250YWluZXI6OmFsbG9jYXRvcl90cmFpdHM8QWxsb2M+OjoKKyAgICAgICAgICAgIHRlbXBsYXRlIHBvcnRhYmxlX3JlYmluZF9hbGxvYzxUPgorICAgIHt9OworCit9fX0KKworI2Vsc2UKKworI2Vycm9yICJJbnZhbGlkIEJPT1NUX1VOT1JERVJFRF9VU0VfQUxMT0NBVE9SX1RSQUlUUyB2YWx1ZS4iCisKKyNlbmRpZgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB1bm9yZGVyZWQgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBjYWxsX2NvbnN0cnVjdAorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorCisjICAgaWYgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9GVUxMX0NPTlNUUlVDVAorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIGlubGluZSB2b2lkIGNhbGxfY29uc3RydWN0KEFsbG9jJiBhbGxvYywgVCogYWRkcmVzcywKKyAgICAgICAgQk9PU1RfRldEX1JFRihBcmdzKS4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjphbGxvY2F0b3JfdHJhaXRzPEFsbG9jPjo6Y29uc3RydWN0KGFsbG9jLAorICAgICAgICAgICAgYWRkcmVzcywgbmRuYm9vc3Q6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBbGxvYywgdHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdm9pZCBkZXN0cm95X3ZhbHVlX2ltcGwoQWxsb2MmIGFsbG9jLCBUKiB4KSB7CisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czxBbGxvYz46OmRlc3Ryb3koYWxsb2MsIHgpOworICAgIH0KKworCisjICAgZWxzZQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIGlubGluZSB2b2lkIGNhbGxfY29uc3RydWN0KEFsbG9jJiwgVCogYWRkcmVzcywKKyAgICAgICAgQk9PU1RfRldEX1JFRihBcmdzKS4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgbmV3KCh2b2lkKikgYWRkcmVzcykgVChuZG5ib29zdDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBUPgorICAgIGlubGluZSB2b2lkIGRlc3Ryb3lfdmFsdWVfaW1wbChBbGxvYyYsIFQqIHgpIHsKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkZXN0cm95KHgpOworICAgIH0KKworCisjICAgZW5kaWYKKworI2Vsc2UKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBbGxvYywgdHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdm9pZCBkZXN0cm95X3ZhbHVlX2ltcGwoQWxsb2MmLCBUKiB4KSB7CisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVzdHJveSh4KTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIENvbnN0cnVjdCBmcm9tIHR1cGxlCisgICAgLy8KKyAgICAvLyBVc2VkIGZvciBwaWVjZXdpc2UgY29uc3RydWN0aW9uLgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorCisjICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9DT05TVFJVQ1RfRlJPTV9UVVBMRShuLCBuYW1lc3BhY2VfKSAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBUPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIGNvbnN0cnVjdF9mcm9tX3R1cGxlKEFsbG9jJiBhbGxvYywgVCogcHRyLCBuYW1lc3BhY2VfIHR1cGxlPD4pICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNhbGxfY29uc3RydWN0KGFsbG9jLCBwdHIpOyAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPKDEsIG4sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfVU5PUkRFUkVEX0NPTlNUUlVDVF9GUk9NX1RVUExFX0lNUEwsIG5hbWVzcGFjZV8pCisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0NPTlNUUlVDVF9GUk9NX1RVUExFX0lNUEwoeiwgbiwgbmFtZXNwYWNlXykgICAgICBcCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQWxsb2MsIHR5cGVuYW1lIFQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNU19aKHosIG4sIHR5cGVuYW1lIEEpPiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIGNvbnN0cnVjdF9mcm9tX3R1cGxlKEFsbG9jJiBhbGxvYywgVCogcHRyLCAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBuYW1lc3BhY2VfIHR1cGxlPEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgQSk+IGNvbnN0JiB4KSAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjYWxsX2NvbnN0cnVjdChhbGxvYywgcHRyLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfR0VUX1RVUExFX0FSRywgbmFtZXNwYWNlXykgXAorICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0dFVF9UVVBMRV9BUkcoeiwgbiwgbmFtZXNwYWNlXykgICAgICAgICAgICAgICAgICBcCisgICAgbmFtZXNwYWNlXyBnZXQ8bj4oeCkKKworI2VsaWYgIWRlZmluZWQoX19TVU5QUk9fQ0MpCisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0NPTlNUUlVDVF9GUk9NX1RVUExFKG4sIG5hbWVzcGFjZV8pICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQWxsb2MsIHR5cGVuYW1lIFQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQgY29uc3RydWN0X2Zyb21fdHVwbGUoQWxsb2MmLCBUKiBwdHIsIG5hbWVzcGFjZV8gdHVwbGU8PikgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIG5ldyAoKHZvaWQqKSBwdHIpIFQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE8oMSwgbiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEVfSU1QTCwgbmFtZXNwYWNlXykKKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEVfSU1QTCh6LCBuLCBuYW1lc3BhY2VfKSAgICAgIFwKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbGxvYywgdHlwZW5hbWUgVCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgdHlwZW5hbWUgQSk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQgY29uc3RydWN0X2Zyb21fdHVwbGUoQWxsb2MmLCBUKiBwdHIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIG5hbWVzcGFjZV8gdHVwbGU8Qk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBuLCBBKT4gY29uc3QmIHgpICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBuZXcgKCh2b2lkKikgcHRyKSBUKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fIyN6KG4sIEJPT1NUX1VOT1JERVJFRF9HRVRfVFVQTEVfQVJHLCBuYW1lc3BhY2VfKSBcCisgICAgICAgICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfR0VUX1RVUExFX0FSRyh6LCBuLCBuYW1lc3BhY2VfKSAgICAgICAgICAgICAgICAgIFwKKyAgICBuYW1lc3BhY2VfIGdldDxuPih4KQorCisjZWxzZQorCisgICAgdGVtcGxhdGUgPGludCBOPiBzdHJ1Y3QgbGVuZ3RoIHt9OworCisjICAgZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9DT05TVFJVQ1RfRlJPTV9UVVBMRShuLCBuYW1lc3BhY2VfKSAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBUPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB2b2lkIGNvbnN0cnVjdF9mcm9tX3R1cGxlX2ltcGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omxlbmd0aDwwPiwgQWxsb2MmLCBUKiBwdHIsICAgICAgICAgICAgXAorICAgICAgICAgICAgbmFtZXNwYWNlXyB0dXBsZTw+KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIG5ldyAoKHZvaWQqKSBwdHIpIFQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE8oMSwgbiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEVfSU1QTCwgbmFtZXNwYWNlXykKKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEVfSU1QTCh6LCBuLCBuYW1lc3BhY2VfKSAgICAgIFwKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbGxvYywgdHlwZW5hbWUgVCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgdHlwZW5hbWUgQSk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHZvaWQgY29uc3RydWN0X2Zyb21fdHVwbGVfaW1wbCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bGVuZ3RoPG4+LCBBbGxvYyYsIFQqIHB0ciwgICAgICAgICAgICBcCisgICAgICAgICAgICBuYW1lc3BhY2VfIHR1cGxlPEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgQSk+IGNvbnN0JiB4KSAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbmV3ICgodm9pZCopIHB0cikgVCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfR0VUX1RVUExFX0FSRywgbmFtZXNwYWNlXykgXAorICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0dFVF9UVVBMRV9BUkcoeiwgbiwgbmFtZXNwYWNlXykgICAgICAgICAgICAgICAgICBcCisgICAgbmFtZXNwYWNlXyBnZXQ8bj4oeCkKKworI2VuZGlmCisKK0JPT1NUX1VOT1JERVJFRF9DT05TVFJVQ1RfRlJPTV9UVVBMRSgxMCwgbmRuYm9vc3Q6OikKKworI2lmICFkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUpCisgICBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEUoMTAsIHN0ZDo6KQorI2VuZGlmCisKKyN1bmRlZiBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEUKKyN1bmRlZiBCT09TVF9VTk9SREVSRURfQ09OU1RSVUNUX0ZST01fVFVQTEVfSU1QTAorI3VuZGVmIEJPT1NUX1VOT1JERVJFRF9HRVRfVFVQTEVfQVJHCisKKyNpZiBkZWZpbmVkKF9fU1VOUFJPX0NDKQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBUdXBsZT4KKyAgICB2b2lkIGNvbnN0cnVjdF9mcm9tX3R1cGxlKEFsbG9jJiBhbGxvYywgVCogcHRyLCBUdXBsZSBjb25zdCYgeCkKKyAgICB7CisgICAgICAgIGNvbnN0cnVjdF9mcm9tX3R1cGxlX2ltcGwoCisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omxlbmd0aDwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dHVwbGVzOjpsZW5ndGg8VHVwbGU+Ojp2YWx1ZT4oKSwKKyAgICAgICAgICAgIGFsbG9jLCBwdHIsIHgpOworICAgIH0KKworI2VuZGlmCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gVHJhaXQgdG8gY2hlY2sgZm9yIHBpZWNld2lzZSBjb25zdHJ1Y3Rpb24uCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQTA+CisgICAgc3RydWN0IHVzZV9waWVjZXdpc2UgeworICAgICAgICBzdGF0aWMgY2hvaWNlMTo6dHlwZSB0ZXN0KGNob2ljZTEsCisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpwaWVjZXdpc2VfY29uc3RydWN0X3QpOworCisgICAgICAgIHN0YXRpYyBjaG9pY2UyOjp0eXBlIHRlc3QoY2hvaWNlMiwgLi4uKTsKKworICAgICAgICBlbnVtIHsgdmFsdWUgPSBzaXplb2YoY2hvaWNlMTo6dHlwZSkgPT0KKyAgICAgICAgICAgIHNpemVvZih0ZXN0KGNob29zZSgpLCBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1ha2U8QTA+KCkpKSB9OworICAgIH07CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gQ29uc3RydWN0IGZyb20gdmFyaWFkaWMgcGFyYW1ldGVycworCisgICAgLy8gRm9yIHRoZSBzdGFuZGFyZCBwYWlyIGNvbnN0cnVjdG9yLgorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIGlubGluZSB2b2lkIGNvbnN0cnVjdF92YWx1ZV9pbXBsKEFsbG9jJiBhbGxvYywgVCogYWRkcmVzcywKKyAgICAgICAgQk9PU1RfRldEX1JFRihBcmdzKS4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjYWxsX2NvbnN0cnVjdChhbGxvYywKKyAgICAgICAgICAgIGFkZHJlc3MsIG5kbmJvb3N0Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICB9CisKKyAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHBpZWNlX2NvbnN0cnVjdAorICAgIC8vCisgICAgLy8gVE9ETzogV2hlbiBwb3NzaWJsZSwgaXQgbWlnaHQgYmUgYmV0dGVyIHRvIHVzZSBzdGQ6OnBhaXIncworICAgIC8vIGNvbnN0cnVjdG9yIGZvciBzdGQ6OnBpZWNlX2NvbnN0cnVjdCB3aXRoIHN0ZDo6dHVwbGUuCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2MsIHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsCisgICAgICAgIHR5cGVuYW1lIEEwLCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTI+CisgICAgaW5saW5lIHR5cGVuYW1lIGVuYWJsZV9pZjx1c2VfcGllY2V3aXNlPEEwPiwgdm9pZD46OnR5cGUKKyAgICAgICAgY29uc3RydWN0X3ZhbHVlX2ltcGwoQWxsb2MmIGFsbG9jLCBzdGQ6OnBhaXI8QSwgQj4qIGFkZHJlc3MsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEEwKSwgQk9PU1RfRldEX1JFRihBMSkgYTEsIEJPT1NUX0ZXRF9SRUYoQTIpIGEyKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjb25zdHJ1Y3RfZnJvbV90dXBsZShhbGxvYywKKyAgICAgICAgICAgIG5kbmJvb3N0OjphZGRyZXNzb2YoYWRkcmVzcy0+Zmlyc3QpLCBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYTEpKTsKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjb25zdHJ1Y3RfZnJvbV90dXBsZShhbGxvYywKKyAgICAgICAgICAgIG5kbmJvb3N0OjphZGRyZXNzb2YoYWRkcmVzcy0+c2Vjb25kKSwgbmRuYm9vc3Q6OmZvcndhcmQ8QTI+KGEyKSk7CisgICAgfQorCisjZWxzZSAvLyBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENvbnN0cnVjdCBmcm9tIGVtcGxhY2VfYXJncworCisgICAgLy8gRXhwbGljaXRseSB3cml0ZSBvdXQgZmlyc3QgdGhyZWUgb3ZlcmxvYWRzIGZvciB0aGUgc2FrZSBvZiBzYW5lCisgICAgLy8gZXJyb3IgbWVzc2FnZXMuCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2MsIHR5cGVuYW1lIFQsIHR5cGVuYW1lIEEwPgorICAgIGlubGluZSB2b2lkIGNvbnN0cnVjdF92YWx1ZV9pbXBsKEFsbG9jJiwgVCogYWRkcmVzcywKKyAgICAgICAgICAgIGVtcGxhY2VfYXJnczE8QTA+IGNvbnN0JiBhcmdzKQorICAgIHsKKyAgICAgICAgbmV3KCh2b2lkKikgYWRkcmVzcykgVChuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYXJncy5hMCkpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBbGxvYywgdHlwZW5hbWUgVCwgdHlwZW5hbWUgQTAsIHR5cGVuYW1lIEExPgorICAgIGlubGluZSB2b2lkIGNvbnN0cnVjdF92YWx1ZV9pbXBsKEFsbG9jJiwgVCogYWRkcmVzcywKKyAgICAgICAgICAgIGVtcGxhY2VfYXJnczI8QTAsIEExPiBjb25zdCYgYXJncykKKyAgICB7CisgICAgICAgIG5ldygodm9pZCopIGFkZHJlc3MpIFQoCisgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYXJncy5hMCksCisgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYXJncy5hMSkKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2MsIHR5cGVuYW1lIFQsIHR5cGVuYW1lIEEwLCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTI+CisgICAgaW5saW5lIHZvaWQgY29uc3RydWN0X3ZhbHVlX2ltcGwoQWxsb2MmLCBUKiBhZGRyZXNzLAorICAgICAgICAgICAgZW1wbGFjZV9hcmdzMzxBMCwgQTEsIEEyPiBjb25zdCYgYXJncykKKyAgICB7CisgICAgICAgIG5ldygodm9pZCopIGFkZHJlc3MpIFQoCisgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYXJncy5hMCksCisgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYXJncy5hMSksCisgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMj4oYXJncy5hMikKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvLyBVc2UgYSBtYWNybyBmb3IgdGhlIHJlc3QuCisKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0NPTlNUUlVDVF9JTVBMKHosIG51bV9wYXJhbXMsIF8pICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlbmFtZSBBbGxvYywgdHlwZW5hbWUgVCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBudW1fcGFyYW1zLCB0eXBlbmFtZSBBKSAgICAgICAgICAgICAgICAgICBcCisgICAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlubGluZSB2b2lkIGNvbnN0cnVjdF92YWx1ZV9pbXBsKEFsbG9jJiwgVCogYWRkcmVzcywgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpCT09TVF9QUF9DQVQoZW1wbGFjZV9hcmdzLG51bV9wYXJhbXMpIDwgICBcCisgICAgICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNU19aKHosIG51bV9wYXJhbXMsIEEpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICA+IGNvbnN0JiBhcmdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIG5ldygodm9pZCopIGFkZHJlc3MpIFQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV8jI3oobnVtX3BhcmFtcywgQk9PU1RfVU5PUkRFUkVEX0NBTExfRk9SV0FSRCwgICAgIFwKKyAgICAgICAgICAgICAgICBhcmdzLmEpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisgICAgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE8oNCwgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfTElNSVQsCisgICAgICAgIEJPT1NUX1VOT1JERVJFRF9DT05TVFJVQ1RfSU1QTCwgXykKKworI3VuZGVmIEJPT1NUX1VOT1JERVJFRF9DT05TVFJVQ1RfSU1QTAorCisgICAgLy8gQ29uc3RydWN0IHdpdGggcGllY2VfY29uc3RydWN0CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2MsIHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsCisgICAgICAgIHR5cGVuYW1lIEEwLCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTI+CisgICAgaW5saW5lIHZvaWQgY29uc3RydWN0X3ZhbHVlX2ltcGwoQWxsb2MmIGFsbG9jLCBzdGQ6OnBhaXI8QSwgQj4qIGFkZHJlc3MsCisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmVtcGxhY2VfYXJnczM8QTAsIEExLCBBMj4gY29uc3QmIGFyZ3MsCisgICAgICAgICAgICB0eXBlbmFtZSBlbmFibGVfaWY8dXNlX3BpZWNld2lzZTxBMD4sIHZvaWQqPjo6dHlwZSA9IDApCisgICAgeworICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNvbnN0cnVjdF9mcm9tX3R1cGxlKGFsbG9jLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmFkZHJlc3NvZihhZGRyZXNzLT5maXJzdCksIGFyZ3MuYTEpOworICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNvbnN0cnVjdF9mcm9tX3R1cGxlKGFsbG9jLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmFkZHJlc3NvZihhZGRyZXNzLT5zZWNvbmQpLCBhcmdzLmEyKTsKKyAgICB9CisKKyNlbmRpZiAvLyBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKworfX19CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gU29tZSBoZWxwZXIgZnVuY3Rpb25zIGZvciBhbGxvY2F0aW5nICYgY29uc3RydWN0aW5nCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB1bm9yZGVyZWQgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLworICAgIC8vIGFycmF5X2NvbnN0cnVjdG9yCisgICAgLy8KKyAgICAvLyBBbGxvY2F0ZSBhbmQgY29uc3RydWN0IGFuIGFycmF5IGluIGFuIGV4Y2VwdGlvbiBzYWZlIG1hbm5lciwgYW5kCisgICAgLy8gY2xlYW4gdXAgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBiZWZvcmUgdGhlIGNvbnRhaW5lciB0YWtlcyBjaGFyZ2UKKyAgICAvLyBvZiBpdC4KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBbGxvY2F0b3I+CisgICAgc3RydWN0IGFycmF5X2NvbnN0cnVjdG9yCisgICAgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czxBbGxvY2F0b3I+IHRyYWl0czsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0cmFpdHM6OnBvaW50ZXIgcG9pbnRlcjsKKworICAgICAgICBBbGxvY2F0b3ImIGFsbG9jXzsKKyAgICAgICAgcG9pbnRlciBwdHJfOworICAgICAgICBwb2ludGVyIGNvbnN0cnVjdGVkXzsKKyAgICAgICAgc3RkOjpzaXplX3QgbGVuZ3RoXzsKKworICAgICAgICBhcnJheV9jb25zdHJ1Y3RvcihBbGxvY2F0b3ImIGEpCisgICAgICAgICAgICA6IGFsbG9jXyhhKSwgcHRyXygpLCBjb25zdHJ1Y3RlZF8oKSwgbGVuZ3RoXygwKQorICAgICAgICB7CisgICAgICAgICAgICBjb25zdHJ1Y3RlZF8gPSBwb2ludGVyKCk7CisgICAgICAgICAgICBwdHJfID0gcG9pbnRlcigpOworICAgICAgICB9CisKKyAgICAgICAgfmFycmF5X2NvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgaWYgKHB0cl8pIHsKKyAgICAgICAgICAgICAgICBmb3IocG9pbnRlciBwID0gcHRyXzsgcCAhPSBjb25zdHJ1Y3RlZF87ICsrcCkKKyAgICAgICAgICAgICAgICAgICAgdHJhaXRzOjpkZXN0cm95KGFsbG9jXywgbmRuYm9vc3Q6OmFkZHJlc3NvZigqcCkpOworCisgICAgICAgICAgICAgICAgdHJhaXRzOjpkZWFsbG9jYXRlKGFsbG9jXywgcHRyXywgbGVuZ3RoXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVj4KKyAgICAgICAgdm9pZCBjb25zdHJ1Y3QoViBjb25zdCYgdiwgc3RkOjpzaXplX3QgbCkKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKCFwdHJfKTsKKyAgICAgICAgICAgIGxlbmd0aF8gPSBsOworICAgICAgICAgICAgcHRyXyA9IHRyYWl0czo6YWxsb2NhdGUoYWxsb2NfLCBsZW5ndGhfKTsKKyAgICAgICAgICAgIHBvaW50ZXIgZW5kID0gcHRyXyArIHN0YXRpY19jYXN0PHN0ZDo6cHRyZGlmZl90PihsZW5ndGhfKTsKKyAgICAgICAgICAgIGZvcihjb25zdHJ1Y3RlZF8gPSBwdHJfOyBjb25zdHJ1Y3RlZF8gIT0gZW5kOyArK2NvbnN0cnVjdGVkXykKKyAgICAgICAgICAgICAgICB0cmFpdHM6OmNvbnN0cnVjdChhbGxvY18sIG5kbmJvb3N0OjphZGRyZXNzb2YoKmNvbnN0cnVjdGVkXyksIHYpOworICAgICAgICB9CisKKyAgICAgICAgcG9pbnRlciBnZXQoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcHRyXzsKKyAgICAgICAgfQorCisgICAgICAgIHBvaW50ZXIgcmVsZWFzZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBvaW50ZXIgcChwdHJfKTsKKyAgICAgICAgICAgIHB0cl8gPSBwb2ludGVyKCk7CisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKworICAgICAgICBhcnJheV9jb25zdHJ1Y3RvcihhcnJheV9jb25zdHJ1Y3RvciBjb25zdCYpOworICAgICAgICBhcnJheV9jb25zdHJ1Y3RvciYgb3BlcmF0b3I9KGFycmF5X2NvbnN0cnVjdG9yIGNvbnN0Jik7CisgICAgfTsKK319fQorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9idWNrZXRzLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9idWNrZXRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjQ0ZTcwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2J1Y2tldHMuaHBwCkBAIC0wLDAgKzEsODc2IEBACisKKy8vIENvcHlyaWdodCAoQykgMjAwMy0yMDA0IEplcmVteSBCLiBNYWl0aW4tU2hlcGFyZC4KKy8vIENvcHlyaWdodCAoQykgMjAwNS0yMDExIERhbmllbCBKYW1lcworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9NQU5BR0VSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfREVUQUlMX01BTkFHRVJfSFBQX0lOQ0xVREVECisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC91dGlsLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2FsbG9jYXRlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbmVkX3N0b3JhZ2UuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zd2FwLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2xpbWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvaXRlcmF0b3IuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdW5vcmRlcmVkIHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZXM+IHN0cnVjdCB0YWJsZTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTm9kZVBvaW50ZXI+IHN0cnVjdCBidWNrZXQ7CisgICAgc3RydWN0IHB0cl9idWNrZXQ7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVzPiBzdHJ1Y3QgdGFibGVfaW1wbDsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZXM+IHN0cnVjdCBncm91cGVkX3RhYmxlX2ltcGw7CisKK319fQorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdW5vcmRlcmVkIHsgbmFtZXNwYWNlIGl0ZXJhdG9yX2RldGFpbCB7CisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gSXRlcmF0b3JzCisgICAgLy8KKyAgICAvLyBhbGwgbm8gdGhyb3cKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlPiBzdHJ1Y3QgaXRlcmF0b3I7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIE5vZGUsIHR5cGVuYW1lIENvbnN0Tm9kZVBvaW50ZXI+IHN0cnVjdCBjX2l0ZXJhdG9yOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlLCB0eXBlbmFtZSBQb2xpY3k+IHN0cnVjdCBsX2l0ZXJhdG9yOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlLCB0eXBlbmFtZSBDb25zdE5vZGVQb2ludGVyLCB0eXBlbmFtZSBQb2xpY3k+CisgICAgICAgIHN0cnVjdCBjbF9pdGVyYXRvcjsKKworICAgIC8vIExvY2FsIEl0ZXJhdG9ycworICAgIC8vCisgICAgLy8gYWxsIG5vIHRocm93CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTm9kZSwgdHlwZW5hbWUgUG9saWN5PgorICAgIHN0cnVjdCBsX2l0ZXJhdG9yCisgICAgICAgIDogcHVibGljIG5kbmJvb3N0OjppdGVyYXRvcjwKKyAgICAgICAgICAgIHN0ZDo6Zm9yd2FyZF9pdGVyYXRvcl90YWcsCisgICAgICAgICAgICB0eXBlbmFtZSBOb2RlOjp2YWx1ZV90eXBlLAorICAgICAgICAgICAgc3RkOjpwdHJkaWZmX3QsCisgICAgICAgICAgICB0eXBlbmFtZSBOb2RlOjpub2RlX3BvaW50ZXIsCisgICAgICAgICAgICB0eXBlbmFtZSBOb2RlOjp2YWx1ZV90eXBlJj4KKyAgICB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMpCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlMiwgdHlwZW5hbWUgQ29uc3ROb2RlUG9pbnRlciwgdHlwZW5hbWUgUG9saWN5Mj4KKyAgICAgICAgZnJpZW5kIHN0cnVjdCBuZG5ib29zdDo6dW5vcmRlcmVkOjppdGVyYXRvcl9kZXRhaWw6OmNsX2l0ZXJhdG9yOworICAgIHByaXZhdGU6CisjZW5kaWYKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBOb2RlOjpub2RlX3BvaW50ZXIgbm9kZV9wb2ludGVyOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6Oml0ZXJhdG9yX2RldGFpbDo6aXRlcmF0b3I8Tm9kZT4gaXRlcmF0b3I7CisgICAgICAgIG5vZGVfcG9pbnRlciBwdHJfOworICAgICAgICBzdGQ6OnNpemVfdCBidWNrZXRfOworICAgICAgICBzdGQ6OnNpemVfdCBidWNrZXRfY291bnRfOworCisgICAgcHVibGljOgorCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgTm9kZTo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworCisgICAgICAgIGxfaXRlcmF0b3IoKSA6IHB0cl8oKSB7fQorCisgICAgICAgIGxfaXRlcmF0b3IoaXRlcmF0b3IgeCwgc3RkOjpzaXplX3QgYiwgc3RkOjpzaXplX3QgYykKKyAgICAgICAgICAgIDogcHRyXyh4Lm5vZGVfKSwgYnVja2V0XyhiKSwgYnVja2V0X2NvdW50XyhjKSB7fQorCisgICAgICAgIHZhbHVlX3R5cGUmIG9wZXJhdG9yKigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBwdHJfLT52YWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmFsdWVfdHlwZSogb3BlcmF0b3ItPigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBwdHJfLT52YWx1ZV9wdHIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxfaXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7CisgICAgICAgICAgICBwdHJfID0gc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihwdHJfLT5uZXh0Xyk7CisgICAgICAgICAgICBpZiAocHRyXyAmJiBQb2xpY3k6OnRvX2J1Y2tldChidWNrZXRfY291bnRfLCBwdHJfLT5oYXNoXykKKyAgICAgICAgICAgICAgICAgICAgIT0gYnVja2V0XykKKyAgICAgICAgICAgICAgICBwdHJfID0gbm9kZV9wb2ludGVyKCk7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICBsX2l0ZXJhdG9yIG9wZXJhdG9yKysoaW50KSB7CisgICAgICAgICAgICBsX2l0ZXJhdG9yIHRtcCgqdGhpcyk7CisgICAgICAgICAgICArKygqdGhpcyk7CisgICAgICAgICAgICByZXR1cm4gdG1wOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGxfaXRlcmF0b3IgeCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIHB0cl8gPT0geC5wdHJfOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGxfaXRlcmF0b3IgeCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIHB0cl8gIT0geC5wdHJfOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlLCB0eXBlbmFtZSBDb25zdE5vZGVQb2ludGVyLCB0eXBlbmFtZSBQb2xpY3k+CisgICAgc3RydWN0IGNsX2l0ZXJhdG9yCisgICAgICAgIDogcHVibGljIG5kbmJvb3N0OjppdGVyYXRvcjwKKyAgICAgICAgICAgIHN0ZDo6Zm9yd2FyZF9pdGVyYXRvcl90YWcsCisgICAgICAgICAgICB0eXBlbmFtZSBOb2RlOjp2YWx1ZV90eXBlLAorICAgICAgICAgICAgc3RkOjpwdHJkaWZmX3QsCisgICAgICAgICAgICBDb25zdE5vZGVQb2ludGVyLAorICAgICAgICAgICAgdHlwZW5hbWUgTm9kZTo6dmFsdWVfdHlwZSBjb25zdCY+CisgICAgeworICAgICAgICBmcmllbmQgc3RydWN0IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6Oml0ZXJhdG9yX2RldGFpbDo6bF9pdGVyYXRvcgorICAgICAgICAgICAgPE5vZGUsIFBvbGljeT47CisgICAgcHJpdmF0ZToKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIE5vZGU6Om5vZGVfcG9pbnRlciBub2RlX3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6aXRlcmF0b3JfZGV0YWlsOjppdGVyYXRvcjxOb2RlPiBpdGVyYXRvcjsKKyAgICAgICAgbm9kZV9wb2ludGVyIHB0cl87CisgICAgICAgIHN0ZDo6c2l6ZV90IGJ1Y2tldF87CisgICAgICAgIHN0ZDo6c2l6ZV90IGJ1Y2tldF9jb3VudF87CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBOb2RlOjp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7CisKKyAgICAgICAgY2xfaXRlcmF0b3IoKSA6IHB0cl8oKSB7fQorCisgICAgICAgIGNsX2l0ZXJhdG9yKGl0ZXJhdG9yIHgsIHN0ZDo6c2l6ZV90IGIsIHN0ZDo6c2l6ZV90IGMpIDoKKyAgICAgICAgICAgIHB0cl8oeC5ub2RlXyksIGJ1Y2tldF8oYiksIGJ1Y2tldF9jb3VudF8oYykge30KKworICAgICAgICBjbF9pdGVyYXRvcihuZG5ib29zdDo6dW5vcmRlcmVkOjppdGVyYXRvcl9kZXRhaWw6OmxfaXRlcmF0b3I8CisgICAgICAgICAgICAgICAgTm9kZSwgUG9saWN5PiBjb25zdCYgeCkgOgorICAgICAgICAgICAgcHRyXyh4LnB0cl8pLCBidWNrZXRfKHguYnVja2V0XyksIGJ1Y2tldF9jb3VudF8oeC5idWNrZXRfY291bnRfKQorICAgICAgICB7fQorCisgICAgICAgIHZhbHVlX3R5cGUgY29uc3QmIG9wZXJhdG9yKigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBwdHJfLT52YWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmFsdWVfdHlwZSBjb25zdCogb3BlcmF0b3ItPigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBwdHJfLT52YWx1ZV9wdHIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGNsX2l0ZXJhdG9yJiBvcGVyYXRvcisrKCkgeworICAgICAgICAgICAgcHRyXyA9IHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4ocHRyXy0+bmV4dF8pOworICAgICAgICAgICAgaWYgKHB0cl8gJiYgUG9saWN5Ojp0b19idWNrZXQoYnVja2V0X2NvdW50XywgcHRyXy0+aGFzaF8pCisgICAgICAgICAgICAgICAgICAgICE9IGJ1Y2tldF8pCisgICAgICAgICAgICAgICAgcHRyXyA9IG5vZGVfcG9pbnRlcigpOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAgY2xfaXRlcmF0b3Igb3BlcmF0b3IrKyhpbnQpIHsKKyAgICAgICAgICAgIGNsX2l0ZXJhdG9yIHRtcCgqdGhpcyk7CisgICAgICAgICAgICArKygqdGhpcyk7CisgICAgICAgICAgICByZXR1cm4gdG1wOworICAgICAgICB9CisKKyAgICAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjbF9pdGVyYXRvciBjb25zdCYgeCwgY2xfaXRlcmF0b3IgY29uc3QmIHkpIHsKKyAgICAgICAgICAgIHJldHVybiB4LnB0cl8gPT0geS5wdHJfOworICAgICAgICB9CisKKyAgICAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3IhPShjbF9pdGVyYXRvciBjb25zdCYgeCwgY2xfaXRlcmF0b3IgY29uc3QmIHkpIHsKKyAgICAgICAgICAgIHJldHVybiB4LnB0cl8gIT0geS5wdHJfOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlPgorICAgIHN0cnVjdCBpdGVyYXRvcgorICAgICAgICA6IHB1YmxpYyBuZG5ib29zdDo6aXRlcmF0b3I8CisgICAgICAgICAgICBzdGQ6OmZvcndhcmRfaXRlcmF0b3JfdGFnLAorICAgICAgICAgICAgdHlwZW5hbWUgTm9kZTo6dmFsdWVfdHlwZSwKKyAgICAgICAgICAgIHN0ZDo6cHRyZGlmZl90LAorICAgICAgICAgICAgdHlwZW5hbWUgTm9kZTo6bm9kZV9wb2ludGVyLAorICAgICAgICAgICAgdHlwZW5hbWUgTm9kZTo6dmFsdWVfdHlwZSY+CisgICAgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTKQorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUsIHR5cGVuYW1lPgorICAgICAgICBmcmllbmQgc3RydWN0IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6Oml0ZXJhdG9yX2RldGFpbDo6Y19pdGVyYXRvcjsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lLCB0eXBlbmFtZT4KKyAgICAgICAgZnJpZW5kIHN0cnVjdCBuZG5ib29zdDo6dW5vcmRlcmVkOjppdGVyYXRvcl9kZXRhaWw6OmxfaXRlcmF0b3I7CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSwgdHlwZW5hbWUsIHR5cGVuYW1lPgorICAgICAgICBmcmllbmQgc3RydWN0IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6Oml0ZXJhdG9yX2RldGFpbDo6Y2xfaXRlcmF0b3I7CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZT4KKyAgICAgICAgZnJpZW5kIHN0cnVjdCBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnRhYmxlOworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWU+CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjp0YWJsZV9pbXBsOworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWU+CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpncm91cGVkX3RhYmxlX2ltcGw7CisgICAgcHJpdmF0ZToKKyNlbmRpZgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIE5vZGU6Om5vZGVfcG9pbnRlciBub2RlX3BvaW50ZXI7CisgICAgICAgIG5vZGVfcG9pbnRlciBub2RlXzsKKworICAgIHB1YmxpYzoKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIE5vZGU6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKKworICAgICAgICBpdGVyYXRvcigpIDogbm9kZV8oKSB7fQorCisgICAgICAgIGV4cGxpY2l0IGl0ZXJhdG9yKHR5cGVuYW1lIE5vZGU6OmxpbmtfcG9pbnRlciB4KSA6CisgICAgICAgICAgICBub2RlXyhzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHgpKSB7fQorCisgICAgICAgIHZhbHVlX3R5cGUmIG9wZXJhdG9yKigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBub2RlXy0+dmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhbHVlX3R5cGUqIG9wZXJhdG9yLT4oKSBjb25zdCB7CisgICAgICAgICAgICByZXR1cm4gJm5vZGVfLT52YWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7CisgICAgICAgICAgICBub2RlXyA9IHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4obm9kZV8tPm5leHRfKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIG9wZXJhdG9yKysoaW50KSB7CisgICAgICAgICAgICBpdGVyYXRvciB0bXAobm9kZV8pOworICAgICAgICAgICAgbm9kZV8gPSBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KG5vZGVfLT5uZXh0Xyk7CisgICAgICAgICAgICByZXR1cm4gdG1wOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGl0ZXJhdG9yIGNvbnN0JiB4KSBjb25zdCB7CisgICAgICAgICAgICByZXR1cm4gbm9kZV8gPT0geC5ub2RlXzsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShpdGVyYXRvciBjb25zdCYgeCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIG5vZGVfICE9IHgubm9kZV87CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIE5vZGUsIHR5cGVuYW1lIENvbnN0Tm9kZVBvaW50ZXI+CisgICAgc3RydWN0IGNfaXRlcmF0b3IKKyAgICAgICAgOiBwdWJsaWMgbmRuYm9vc3Q6Oml0ZXJhdG9yPAorICAgICAgICAgICAgc3RkOjpmb3J3YXJkX2l0ZXJhdG9yX3RhZywKKyAgICAgICAgICAgIHR5cGVuYW1lIE5vZGU6OnZhbHVlX3R5cGUsCisgICAgICAgICAgICBzdGQ6OnB0cmRpZmZfdCwKKyAgICAgICAgICAgIENvbnN0Tm9kZVBvaW50ZXIsCisgICAgICAgICAgICB0eXBlbmFtZSBOb2RlOjp2YWx1ZV90eXBlIGNvbnN0Jj4KKyAgICB7CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgbmRuYm9vc3Q6OnVub3JkZXJlZDo6aXRlcmF0b3JfZGV0YWlsOjppdGVyYXRvcjxOb2RlPjsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTKQorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWU+CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjp0YWJsZTsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lPgorICAgICAgICBmcmllbmQgc3RydWN0IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6dGFibGVfaW1wbDsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lPgorICAgICAgICBmcmllbmQgc3RydWN0IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Z3JvdXBlZF90YWJsZV9pbXBsOworCisgICAgcHJpdmF0ZToKKyNlbmRpZgorICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIE5vZGU6Om5vZGVfcG9pbnRlciBub2RlX3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6aXRlcmF0b3JfZGV0YWlsOjppdGVyYXRvcjxOb2RlPiBpdGVyYXRvcjsKKyAgICAgICAgbm9kZV9wb2ludGVyIG5vZGVfOworCisgICAgcHVibGljOgorCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgTm9kZTo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworCisgICAgICAgIGNfaXRlcmF0b3IoKSA6IG5vZGVfKCkge30KKworICAgICAgICBleHBsaWNpdCBjX2l0ZXJhdG9yKHR5cGVuYW1lIE5vZGU6OmxpbmtfcG9pbnRlciB4KSA6CisgICAgICAgICAgICBub2RlXyhzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHgpKSB7fQorCisgICAgICAgIGNfaXRlcmF0b3IoaXRlcmF0b3IgY29uc3QmIHgpIDogbm9kZV8oeC5ub2RlXykge30KKworICAgICAgICB2YWx1ZV90eXBlIGNvbnN0JiBvcGVyYXRvciooKSBjb25zdCB7CisgICAgICAgICAgICByZXR1cm4gbm9kZV8tPnZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICB2YWx1ZV90eXBlIGNvbnN0KiBvcGVyYXRvci0+KCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuICZub2RlXy0+dmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGNfaXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7CisgICAgICAgICAgICBub2RlXyA9IHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4obm9kZV8tPm5leHRfKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGNfaXRlcmF0b3Igb3BlcmF0b3IrKyhpbnQpIHsKKyAgICAgICAgICAgIGNfaXRlcmF0b3IgdG1wKG5vZGVfKTsKKyAgICAgICAgICAgIG5vZGVfID0gc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihub2RlXy0+bmV4dF8pOworICAgICAgICAgICAgcmV0dXJuIHRtcDsKKyAgICAgICAgfQorCisgICAgICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY19pdGVyYXRvciBjb25zdCYgeCwgY19pdGVyYXRvciBjb25zdCYgeSkgeworICAgICAgICAgICAgcmV0dXJuIHgubm9kZV8gPT0geS5ub2RlXzsKKyAgICAgICAgfQorCisgICAgICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY19pdGVyYXRvciBjb25zdCYgeCwgY19pdGVyYXRvciBjb25zdCYgeSkgeworICAgICAgICAgICAgcmV0dXJuIHgubm9kZV8gIT0geS5ub2RlXzsKKyAgICAgICAgfQorICAgIH07Cit9fX0KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHVub3JkZXJlZCB7IG5hbWVzcGFjZSBkZXRhaWwgeworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vCisgICAgLy8gTm9kZSBjb25zdHJ1Y3Rpb24KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlQWxsb2M+CisgICAgc3RydWN0IG5vZGVfY29uc3RydWN0b3IKKyAgICB7CisgICAgcHJpdmF0ZToKKworICAgICAgICB0eXBlZGVmIE5vZGVBbGxvYyBub2RlX2FsbG9jYXRvcjsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmFsbG9jYXRvcl90cmFpdHM8Tm9kZUFsbG9jPgorICAgICAgICAgICAgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6dmFsdWVfdHlwZSBub2RlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6cG9pbnRlciBub2RlX3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbm9kZTo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworCisgICAgcHJvdGVjdGVkOgorCisgICAgICAgIG5vZGVfYWxsb2NhdG9yJiBhbGxvY187CisgICAgICAgIG5vZGVfcG9pbnRlciBub2RlXzsKKyAgICAgICAgYm9vbCBub2RlX2NvbnN0cnVjdGVkXzsKKyAgICAgICAgYm9vbCB2YWx1ZV9jb25zdHJ1Y3RlZF87CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgbm9kZV9jb25zdHJ1Y3Rvcihub2RlX2FsbG9jYXRvciYgbikgOgorICAgICAgICAgICAgYWxsb2NfKG4pLAorICAgICAgICAgICAgbm9kZV8oKSwKKyAgICAgICAgICAgIG5vZGVfY29uc3RydWN0ZWRfKGZhbHNlKSwKKyAgICAgICAgICAgIHZhbHVlX2NvbnN0cnVjdGVkXyhmYWxzZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgfm5vZGVfY29uc3RydWN0b3IoKTsKKworICAgICAgICB2b2lkIGNvbnN0cnVjdCgpOworCisgICAgICAgIHRlbXBsYXRlIDxCT09TVF9VTk9SREVSRURfRU1QTEFDRV9URU1QTEFURT4KKyAgICAgICAgdm9pZCBjb25zdHJ1Y3Rfd2l0aF92YWx1ZShCT09TVF9VTk9SREVSRURfRU1QTEFDRV9BUkdTKQorICAgICAgICB7CisgICAgICAgICAgICBjb25zdHJ1Y3QoKTsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y29uc3RydWN0X3ZhbHVlX2ltcGwoCisgICAgICAgICAgICAgICAgYWxsb2NfLCBub2RlXy0+dmFsdWVfcHRyKCksIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpOworICAgICAgICAgICAgdmFsdWVfY29uc3RydWN0ZWRfID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMD4KKyAgICAgICAgdm9pZCBjb25zdHJ1Y3Rfd2l0aF92YWx1ZTIoQk9PU1RfRldEX1JFRihBMCkgYTApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdCgpOworICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjb25zdHJ1Y3RfdmFsdWVfaW1wbCgKKyAgICAgICAgICAgICAgICBhbGxvY18sIG5vZGVfLT52YWx1ZV9wdHIoKSwKKyAgICAgICAgICAgICAgICBCT09TVF9VTk9SREVSRURfRU1QTEFDRV9BUkdTMShuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApKSk7CisgICAgICAgICAgICB2YWx1ZV9jb25zdHJ1Y3RlZF8gPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgdmFsdWVfdHlwZSBjb25zdCYgdmFsdWUoKSBjb25zdCB7CisgICAgICAgICAgICBCT09TVF9BU1NFUlQobm9kZV8gJiYgbm9kZV9jb25zdHJ1Y3RlZF8gJiYgdmFsdWVfY29uc3RydWN0ZWRfKTsKKyAgICAgICAgICAgIHJldHVybiBub2RlXy0+dmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vIHRocm93CisgICAgICAgIG5vZGVfcG9pbnRlciByZWxlYXNlKCkKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKG5vZGVfICYmIG5vZGVfY29uc3RydWN0ZWRfKTsKKyAgICAgICAgICAgIG5vZGVfcG9pbnRlciBwID0gbm9kZV87CisgICAgICAgICAgICBub2RlXyA9IG5vZGVfcG9pbnRlcigpOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIG5vZGVfY29uc3RydWN0b3Iobm9kZV9jb25zdHJ1Y3RvciBjb25zdCYpOworICAgICAgICBub2RlX2NvbnN0cnVjdG9yJiBvcGVyYXRvcj0obm9kZV9jb25zdHJ1Y3RvciBjb25zdCYpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2M+CisgICAgbm9kZV9jb25zdHJ1Y3RvcjxBbGxvYz46On5ub2RlX2NvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIGlmIChub2RlXykgeworICAgICAgICAgICAgaWYgKHZhbHVlX2NvbnN0cnVjdGVkXykgeworICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVzdHJveV92YWx1ZV9pbXBsKGFsbG9jXywKKyAgICAgICAgICAgICAgICAgICAgbm9kZV8tPnZhbHVlX3B0cigpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5vZGVfY29uc3RydWN0ZWRfKSB7CisgICAgICAgICAgICAgICAgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOjpkZXN0cm95KGFsbG9jXywKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmFkZHJlc3NvZigqbm9kZV8pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOjpkZWFsbG9jYXRlKGFsbG9jXywgbm9kZV8sIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEFsbG9jPgorICAgIHZvaWQgbm9kZV9jb25zdHJ1Y3RvcjxBbGxvYz46OmNvbnN0cnVjdCgpCisgICAgeworICAgICAgICBpZighbm9kZV8pIHsKKyAgICAgICAgICAgIG5vZGVfY29uc3RydWN0ZWRfID0gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZV9jb25zdHJ1Y3RlZF8gPSBmYWxzZTsKKworICAgICAgICAgICAgbm9kZV8gPSBub2RlX2FsbG9jYXRvcl90cmFpdHM6OmFsbG9jYXRlKGFsbG9jXywgMSk7CisKKyAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6Y29uc3RydWN0KGFsbG9jXywKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6YWRkcmVzc29mKCpub2RlXyksIG5vZGUoKSk7CisgICAgICAgICAgICBub2RlXy0+aW5pdChub2RlXyk7CisgICAgICAgICAgICBub2RlX2NvbnN0cnVjdGVkXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBCT09TVF9BU1NFUlQobm9kZV9jb25zdHJ1Y3RlZF8pOworCisgICAgICAgICAgICBpZiAodmFsdWVfY29uc3RydWN0ZWRfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVzdHJveV92YWx1ZV9pbXBsKGFsbG9jXywKKyAgICAgICAgICAgICAgICAgICAgbm9kZV8tPnZhbHVlX3B0cigpKTsKKyAgICAgICAgICAgICAgICB2YWx1ZV9jb25zdHJ1Y3RlZF8gPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLworICAgIC8vIE5vZGUgSG9sZGVyCisgICAgLy8KKyAgICAvLyBUZW1wb3Jhcnkgc3RvcmUgZm9yIG5vZGVzLiBEZWxldGVzIGFueSB0aGF0IGFyZW4ndCB1c2VkLgorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIE5vZGVBbGxvYz4KKyAgICBzdHJ1Y3Qgbm9kZV9ob2xkZXIgOiBwcml2YXRlIG5vZGVfY29uc3RydWN0b3I8Tm9kZUFsbG9jPgorICAgIHsKKyAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIG5vZGVfY29uc3RydWN0b3I8Tm9kZUFsbG9jPiBiYXNlOworCisgICAgICAgIHR5cGVkZWYgTm9kZUFsbG9jIG5vZGVfYWxsb2NhdG9yOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czxOb2RlQWxsb2M+CisgICAgICAgICAgICBub2RlX2FsbG9jYXRvcl90cmFpdHM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOjp2YWx1ZV90eXBlIG5vZGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOjpwb2ludGVyIG5vZGVfcG9pbnRlcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBub2RlOjp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbm9kZTo6bGlua19wb2ludGVyIGxpbmtfcG9pbnRlcjsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjppdGVyYXRvcl9kZXRhaWw6Oml0ZXJhdG9yPG5vZGU+IGl0ZXJhdG9yOworCisgICAgICAgIG5vZGVfcG9pbnRlciBub2Rlc187CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhYmxlPgorICAgICAgICBleHBsaWNpdCBub2RlX2hvbGRlcihUYWJsZSYgYikgOgorICAgICAgICAgICAgYmFzZShiLm5vZGVfYWxsb2MoKSksCisgICAgICAgICAgICBub2Rlc18oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoYi5zaXplXykgeworICAgICAgICAgICAgICAgIHR5cGVuYW1lIFRhYmxlOjpsaW5rX3BvaW50ZXIgcHJldiA9IGIuZ2V0X3ByZXZpb3VzX3N0YXJ0KCk7CisgICAgICAgICAgICAgICAgbm9kZXNfID0gc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihwcmV2LT5uZXh0Xyk7CisgICAgICAgICAgICAgICAgcHJldi0+bmV4dF8gPSBsaW5rX3BvaW50ZXIoKTsKKyAgICAgICAgICAgICAgICBiLnNpemVfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIH5ub2RlX2hvbGRlcigpOworCisgICAgICAgIHZvaWQgbm9kZV9mb3JfYXNzaWdubWVudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGhpcy0+bm9kZV8gJiYgbm9kZXNfKSB7CisgICAgICAgICAgICAgICAgdGhpcy0+bm9kZV8gPSBub2Rlc187CisgICAgICAgICAgICAgICAgbm9kZXNfID0gc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihub2Rlc18tPm5leHRfKTsKKyAgICAgICAgICAgICAgICB0aGlzLT5ub2RlXy0+aW5pdCh0aGlzLT5ub2RlXyk7CisgICAgICAgICAgICAgICAgdGhpcy0+bm9kZV8tPm5leHRfID0gbGlua19wb2ludGVyKCk7CisKKyAgICAgICAgICAgICAgICB0aGlzLT5ub2RlX2NvbnN0cnVjdGVkXyA9IHRydWU7CisgICAgICAgICAgICAgICAgdGhpcy0+dmFsdWVfY29uc3RydWN0ZWRfID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBhc3NpZ25faW1wbChUIGNvbnN0JiB2KSB7CisgICAgICAgICAgICBpZiAodGhpcy0+bm9kZV8gJiYgdGhpcy0+dmFsdWVfY29uc3RydWN0ZWRfKSB7CisgICAgICAgICAgICAgICAgdGhpcy0+bm9kZV8tPnZhbHVlKCkgPSB2OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGhpcy0+Y29uc3RydWN0X3dpdGhfdmFsdWUyKHYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KKyAgICAgICAgaW5saW5lIHZvaWQgYXNzaWduX2ltcGwoc3RkOjpwYWlyPFQxIGNvbnN0LCBUMj4gY29uc3QmIHYpIHsKKyAgICAgICAgICAgIHRoaXMtPmNvbnN0cnVjdF93aXRoX3ZhbHVlMih2KTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBtb3ZlX2Fzc2lnbl9pbXBsKFQmIHYpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5ub2RlXyAmJiB0aGlzLT52YWx1ZV9jb25zdHJ1Y3RlZF8pIHsKKyAgICAgICAgICAgICAgICB0aGlzLT5ub2RlXy0+dmFsdWUoKSA9IG5kbmJvb3N0Ojptb3ZlKHYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGhpcy0+Y29uc3RydWN0X3dpdGhfdmFsdWUyKG5kbmJvb3N0Ojptb3ZlKHYpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgICAgICAgIGlubGluZSB2b2lkIG1vdmVfYXNzaWduX2ltcGwoc3RkOjpwYWlyPFQxIGNvbnN0LCBUMj4mIHYpIHsKKyAgICAgICAgICAgIHRoaXMtPmNvbnN0cnVjdF93aXRoX3ZhbHVlMihuZG5ib29zdDo6bW92ZSh2KSk7CisgICAgICAgIH0KKworICAgICAgICBub2RlX3BvaW50ZXIgY29weV9vZih2YWx1ZV90eXBlIGNvbnN0JiB2KQorICAgICAgICB7CisgICAgICAgICAgICBub2RlX2Zvcl9hc3NpZ25tZW50KCk7CisgICAgICAgICAgICBhc3NpZ25faW1wbCh2KTsKKyAgICAgICAgICAgIHJldHVybiBiYXNlOjpyZWxlYXNlKCk7CisgICAgICAgIH0KKworICAgICAgICBub2RlX3BvaW50ZXIgbW92ZV9jb3B5X29mKHZhbHVlX3R5cGUmIHYpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vZGVfZm9yX2Fzc2lnbm1lbnQoKTsKKyAgICAgICAgICAgIG1vdmVfYXNzaWduX2ltcGwodik7CisgICAgICAgICAgICByZXR1cm4gYmFzZTo6cmVsZWFzZSgpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3Iobm9kZXNfKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWxsb2M+CisgICAgbm9kZV9ob2xkZXI8QWxsb2M+Ojp+bm9kZV9ob2xkZXIoKQorICAgIHsKKyAgICAgICAgd2hpbGUgKG5vZGVzXykgeworICAgICAgICAgICAgbm9kZV9wb2ludGVyIHAgPSBub2Rlc187CisgICAgICAgICAgICBub2Rlc18gPSBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHAtPm5leHRfKTsKKworICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkZXN0cm95X3ZhbHVlX2ltcGwodGhpcy0+YWxsb2NfLAorICAgICAgICAgICAgICAgIHAtPnZhbHVlX3B0cigpKTsKKyAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6ZGVzdHJveSh0aGlzLT5hbGxvY18sIG5kbmJvb3N0OjphZGRyZXNzb2YoKnApKTsKKyAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6ZGVhbGxvY2F0ZSh0aGlzLT5hbGxvY18sIHAsIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vCisgICAgLy8gQnVja2V0CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTm9kZVBvaW50ZXI+CisgICAgc3RydWN0IGJ1Y2tldAorICAgIHsKKyAgICAgICAgdHlwZWRlZiBOb2RlUG9pbnRlciBsaW5rX3BvaW50ZXI7CisgICAgICAgIGxpbmtfcG9pbnRlciBuZXh0XzsKKworICAgICAgICBidWNrZXQoKSA6IG5leHRfKCkge30KKworICAgICAgICBsaW5rX3BvaW50ZXIgZmlyc3RfZnJvbV9zdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXh0XzsKKyAgICAgICAgfQorCisgICAgICAgIGVudW0geyBleHRyYV9ub2RlID0gdHJ1ZSB9OworICAgIH07CisKKyAgICBzdHJ1Y3QgcHRyX2J1Y2tldAorICAgIHsKKyAgICAgICAgdHlwZWRlZiBwdHJfYnVja2V0KiBsaW5rX3BvaW50ZXI7CisgICAgICAgIGxpbmtfcG9pbnRlciBuZXh0XzsKKworICAgICAgICBwdHJfYnVja2V0KCkgOiBuZXh0XygwKSB7fQorCisgICAgICAgIGxpbmtfcG9pbnRlciBmaXJzdF9mcm9tX3N0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBlbnVtIHsgZXh0cmFfbm9kZSA9IGZhbHNlIH07CisgICAgfTsKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLworICAgIC8vIEhhc2ggUG9saWN5CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2l6ZVQ+CisgICAgc3RydWN0IHByaW1lX3BvbGljeQorICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEhhc2gsIHR5cGVuYW1lIFQ+CisgICAgICAgIHN0YXRpYyBpbmxpbmUgU2l6ZVQgYXBwbHlfaGFzaChIYXNoIGNvbnN0JiBoZiwgVCBjb25zdCYgeCkgeworICAgICAgICAgICAgcmV0dXJuIGhmKHgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGlubGluZSBTaXplVCB0b19idWNrZXQoU2l6ZVQgYnVja2V0X2NvdW50LCBTaXplVCBoYXNoKSB7CisgICAgICAgICAgICByZXR1cm4gaGFzaCAlIGJ1Y2tldF9jb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBpbmxpbmUgU2l6ZVQgbmV3X2J1Y2tldF9jb3VudChTaXplVCBtaW4pIHsKKyAgICAgICAgICAgIHJldHVybiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om5leHRfcHJpbWUobWluKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBpbmxpbmUgU2l6ZVQgcHJldl9idWNrZXRfY291bnQoU2l6ZVQgbWF4KSB7CisgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwcmV2X3ByaW1lKG1heCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNpemVUPgorICAgIHN0cnVjdCBtaXg2NF9wb2xpY3kKKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBIYXNoLCB0eXBlbmFtZSBUPgorICAgICAgICBzdGF0aWMgaW5saW5lIFNpemVUIGFwcGx5X2hhc2goSGFzaCBjb25zdCYgaGYsIFQgY29uc3QmIHgpIHsKKyAgICAgICAgICAgIFNpemVUIGtleSA9IGhmKHgpOworICAgICAgICAgICAga2V5ID0gKH5rZXkpICsgKGtleSA8PCAyMSk7IC8vIGtleSA9IChrZXkgPDwgMjEpIC0ga2V5IC0gMTsKKyAgICAgICAgICAgIGtleSA9IGtleSBeIChrZXkgPj4gMjQpOworICAgICAgICAgICAga2V5ID0gKGtleSArIChrZXkgPDwgMykpICsgKGtleSA8PCA4KTsgLy8ga2V5ICogMjY1CisgICAgICAgICAgICBrZXkgPSBrZXkgXiAoa2V5ID4+IDE0KTsKKyAgICAgICAgICAgIGtleSA9IChrZXkgKyAoa2V5IDw8IDIpKSArIChrZXkgPDwgNCk7IC8vIGtleSAqIDIxCisgICAgICAgICAgICBrZXkgPSBrZXkgXiAoa2V5ID4+IDI4KTsKKyAgICAgICAgICAgIGtleSA9IGtleSArIChrZXkgPDwgMzEpOworICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBpbmxpbmUgU2l6ZVQgdG9fYnVja2V0KFNpemVUIGJ1Y2tldF9jb3VudCwgU2l6ZVQgaGFzaCkgeworICAgICAgICAgICAgcmV0dXJuIGhhc2ggJiAoYnVja2V0X2NvdW50IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgaW5saW5lIFNpemVUIG5ld19idWNrZXRfY291bnQoU2l6ZVQgbWluKSB7CisgICAgICAgICAgICBpZiAobWluIDw9IDQpIHJldHVybiA0OworICAgICAgICAgICAgLS1taW47CisgICAgICAgICAgICBtaW4gfD0gbWluID4+IDE7CisgICAgICAgICAgICBtaW4gfD0gbWluID4+IDI7CisgICAgICAgICAgICBtaW4gfD0gbWluID4+IDQ7CisgICAgICAgICAgICBtaW4gfD0gbWluID4+IDg7CisgICAgICAgICAgICBtaW4gfD0gbWluID4+IDE2OworICAgICAgICAgICAgbWluIHw9IG1pbiA+PiAzMjsKKyAgICAgICAgICAgIHJldHVybiBtaW4gKyAxOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGlubGluZSBTaXplVCBwcmV2X2J1Y2tldF9jb3VudChTaXplVCBtYXgpIHsKKyAgICAgICAgICAgIG1heCB8PSBtYXggPj4gMTsKKyAgICAgICAgICAgIG1heCB8PSBtYXggPj4gMjsKKyAgICAgICAgICAgIG1heCB8PSBtYXggPj4gNDsKKyAgICAgICAgICAgIG1heCB8PSBtYXggPj4gODsKKyAgICAgICAgICAgIG1heCB8PSBtYXggPj4gMTY7CisgICAgICAgICAgICBtYXggfD0gbWF4ID4+IDMyOworICAgICAgICAgICAgcmV0dXJuIChtYXggPj4gMSkgKyAxOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxpbnQgZGlnaXRzLCBpbnQgcmFkaXg+CisgICAgc3RydWN0IHBpY2tfcG9saWN5X2ltcGwgeworICAgICAgICB0eXBlZGVmIHByaW1lX3BvbGljeTxzdGQ6OnNpemVfdD4gdHlwZTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBzdHJ1Y3QgcGlja19wb2xpY3lfaW1wbDw2NCwgMj4geworICAgICAgICB0eXBlZGVmIG1peDY0X3BvbGljeTxzdGQ6OnNpemVfdD4gdHlwZTsKKyAgICB9OworCisgICAgc3RydWN0IHBpY2tfcG9saWN5IDoKKyAgICAgICAgcGlja19wb2xpY3lfaW1wbDwKKyAgICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8c3RkOjpzaXplX3Q+OjpkaWdpdHMsCisgICAgICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPHN0ZDo6c2l6ZV90Pjo6cmFkaXg+IHt9OworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIEZ1bmN0aW9ucworCisgICAgLy8gQXNzaWduaW5nIGFuZCBzd2FwcGluZyB0aGUgZXF1YWxpdHkgYW5kIGhhc2ggZnVuY3Rpb24gb2JqZWN0cworICAgIC8vIG5lZWRzIHN0cm9uZyBleGNlcHRpb24gc2FmZXR5LiBUbyBpbXBsZW1lbnQgdGhhdCBub3JtYWxseSB3ZSdkCisgICAgLy8gcmVxdWlyZSBvbmUgb2YgdGhlbSB0byBiZSBrbm93biB0byBub3QgdGhyb3cgYW5kIHRoZSBvdGhlciB0bworICAgIC8vIGd1YXJhbnRlZSBzdHJvbmcgZXhjZXB0aW9uIHNhZmV0eS4gVW5mb3J0dW5hdGVseSB0aGV5IGJvdGggb25seQorICAgIC8vIGhhdmUgYmFzaWMgZXhjZXB0aW9uIHNhZmV0eS4gU28gdG8gYWNoZWl2ZSBzdHJvbmcgZXhjZXB0aW9uCisgICAgLy8gc2FmZXR5IHdlIGhhdmUgc3RvcmFnZSBzcGFjZSBmb3IgdHdvIGNvcGllcywgYW5kIGFzc2lnbiB0aGUgbmV3CisgICAgLy8gY29waWVzIHRvIHRoZSB1bnVzZWQgc3BhY2UuIFRoZW4gc3dpdGNoIHRvIHVzaW5nIHRoYXQgdG8gdXNlCisgICAgLy8gdGhlbS4gVGhpcyBpcyBpbXBsZW1lbnRlZCBpbiAnc2V0X2hhc2hfZnVuY3Rpb25zJyB3aGljaAorICAgIC8vIGF0b21pY2FsbHkgYXNzaWducyB0aGUgbmV3IGZ1bmN0aW9uIG9iamVjdHMgaW4gYSBzdHJvbmdseQorICAgIC8vIGV4Y2VwdGlvbiBzYWZlIG1hbm5lci4KKworICAgIHRlbXBsYXRlIDxjbGFzcyBILCBjbGFzcyBQLCBib29sIE5vVGhyb3dNb3ZlQXNzaWduPgorICAgIGNsYXNzIHNldF9oYXNoX2Z1bmN0aW9uczsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBILCBjbGFzcyBQPgorICAgIGNsYXNzIGZ1bmN0aW9ucworICAgIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIG5vdGhyb3dfbW92ZV9hc3NpZ25hYmxlID0KKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfbm90aHJvd19tb3ZlX2Fzc2lnbmFibGU8SD46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX25vdGhyb3dfbW92ZV9hc3NpZ25hYmxlPFA+Ojp2YWx1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGUgPQorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojppc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZTxIPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6aXNfbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGU8UD46OnZhbHVlOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgZnJpZW5kIGNsYXNzIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6c2V0X2hhc2hfZnVuY3Rpb25zPEgsIFAsCisgICAgICAgICAgICAgICBub3Rocm93X21vdmVfYXNzaWduYWJsZT47CisgICAgICAgIGZ1bmN0aW9ucyYgb3BlcmF0b3I9KGZ1bmN0aW9ucyBjb25zdCYpOworCisgICAgICAgIHR5cGVkZWYgY29tcHJlc3NlZDxILCBQPiBmdW5jdGlvbl9wYWlyOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmFsaWduZWRfc3RvcmFnZTwKKyAgICAgICAgICAgIHNpemVvZihmdW5jdGlvbl9wYWlyKSwKKyAgICAgICAgICAgIG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8ZnVuY3Rpb25fcGFpcj46OnZhbHVlPjo6dHlwZSBhbGlnbmVkX2Z1bmN0aW9uOworCisgICAgICAgIGJvb2wgY3VycmVudF87IC8vIFRoZSBjdXJyZW50bHkgYWN0aXZlIGZ1bmN0aW9ucy4KKyAgICAgICAgYWxpZ25lZF9mdW5jdGlvbiBmdW5jc19bMl07CisKKyAgICAgICAgZnVuY3Rpb25fcGFpciBjb25zdCYgY3VycmVudCgpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8ZnVuY3Rpb25fcGFpciBjb25zdCo+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQgY29uc3QqPigmZnVuY3NfW2N1cnJlbnRfXSkpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb25fcGFpciYgY3VycmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8ZnVuY3Rpb25fcGFpcio+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigmZnVuY3NfW2N1cnJlbnRfXSkpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBjb25zdHJ1Y3QoYm9vbCB3aGljaCwgSCBjb25zdCYgaGYsIFAgY29uc3QmIGVxKQorICAgICAgICB7CisgICAgICAgICAgICBuZXcoKHZvaWQqKSAmZnVuY3NfW3doaWNoXSkgZnVuY3Rpb25fcGFpcihoZiwgZXEpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBjb25zdHJ1Y3QoYm9vbCB3aGljaCwgZnVuY3Rpb25fcGFpciBjb25zdCYgZikKKyAgICAgICAgeworICAgICAgICAgICAgbmV3KCh2b2lkKikgJmZ1bmNzX1t3aGljaF0pIGZ1bmN0aW9uX3BhaXIoZik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgY29uc3RydWN0KGJvb2wgd2hpY2gsIGZ1bmN0aW9uX3BhaXImIGYsCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptb3ZlX3RhZyBtKQorICAgICAgICB7CisgICAgICAgICAgICBuZXcoKHZvaWQqKSAmZnVuY3NfW3doaWNoXSkgZnVuY3Rpb25fcGFpcihmLCBtKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVzdHJveShib29sIHdoaWNoKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmRlc3Ryb3koKGZ1bmN0aW9uX3BhaXIqKSgmZnVuY3NfW3doaWNoXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgIHB1YmxpYzoKKworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6c2V0X2hhc2hfZnVuY3Rpb25zPEgsIFAsCisgICAgICAgICAgICAgICAgbm90aHJvd19tb3ZlX2Fzc2lnbmFibGU+IHNldF9oYXNoX2Z1bmN0aW9uczsKKworICAgICAgICBmdW5jdGlvbnMoSCBjb25zdCYgaGYsIFAgY29uc3QmIGVxKQorICAgICAgICAgICAgOiBjdXJyZW50XyhmYWxzZSkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3RydWN0KGN1cnJlbnRfLCBoZiwgZXEpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb25zKGZ1bmN0aW9ucyBjb25zdCYgYmYpCisgICAgICAgICAgICA6IGN1cnJlbnRfKGZhbHNlKQorICAgICAgICB7CisgICAgICAgICAgICBjb25zdHJ1Y3QoY3VycmVudF8sIGJmLmN1cnJlbnQoKSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbnMoZnVuY3Rpb25zJiBiZiwgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptb3ZlX3RhZyBtKQorICAgICAgICAgICAgOiBjdXJyZW50XyhmYWxzZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlKSB7CisgICAgICAgICAgICAgICAgY29uc3RydWN0KGN1cnJlbnRfLCBiZi5jdXJyZW50KCksIG0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29uc3RydWN0KGN1cnJlbnRfLCBiZi5jdXJyZW50KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgfmZ1bmN0aW9ucygpIHsKKyAgICAgICAgICAgIHRoaXMtPmRlc3Ryb3koY3VycmVudF8pOworICAgICAgICB9CisKKyAgICAgICAgSCBjb25zdCYgaGFzaF9mdW5jdGlvbigpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCkuZmlyc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIFAgY29uc3QmIGtleV9lcSgpIGNvbnN0IHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCkuc2Vjb25kKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEgsIGNsYXNzIFA+CisgICAgY2xhc3Mgc2V0X2hhc2hfZnVuY3Rpb25zPEgsIFAsIGZhbHNlPgorICAgIHsKKyAgICAgICAgc2V0X2hhc2hfZnVuY3Rpb25zKHNldF9oYXNoX2Z1bmN0aW9ucyBjb25zdCYpOworICAgICAgICBzZXRfaGFzaF9mdW5jdGlvbnMmIG9wZXJhdG9yPShzZXRfaGFzaF9mdW5jdGlvbnMgY29uc3QmKTsKKworICAgICAgICB0eXBlZGVmIGZ1bmN0aW9uczxILCBQPiBmdW5jdGlvbnNfdHlwZTsKKyAgICAKKyAgICAgICAgZnVuY3Rpb25zX3R5cGUmIGZ1bmN0aW9uc187CisgICAgICAgIGJvb2wgdG1wX2Z1bmN0aW9uc187CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgc2V0X2hhc2hfZnVuY3Rpb25zKGZ1bmN0aW9uc190eXBlJiBmLCBIIGNvbnN0JiBoLCBQIGNvbnN0JiBwKQorICAgICAgICAgIDogZnVuY3Rpb25zXyhmKSwKKyAgICAgICAgICAgIHRtcF9mdW5jdGlvbnNfKCFmLmN1cnJlbnRfKQorICAgICAgICB7CisgICAgICAgICAgICBmLmNvbnN0cnVjdCh0bXBfZnVuY3Rpb25zXywgaCwgcCk7CisgICAgICAgIH0KKworICAgICAgICBzZXRfaGFzaF9mdW5jdGlvbnMoZnVuY3Rpb25zX3R5cGUmIGYsIGZ1bmN0aW9uc190eXBlIGNvbnN0JiBvdGhlcikKKyAgICAgICAgICA6IGZ1bmN0aW9uc18oZiksCisgICAgICAgICAgICB0bXBfZnVuY3Rpb25zXyghZi5jdXJyZW50XykKKyAgICAgICAgeworICAgICAgICAgICAgZi5jb25zdHJ1Y3QodG1wX2Z1bmN0aW9uc18sIG90aGVyLmN1cnJlbnQoKSk7CisgICAgICAgIH0KKworICAgICAgICB+c2V0X2hhc2hfZnVuY3Rpb25zKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb25zXy5kZXN0cm95KHRtcF9mdW5jdGlvbnNfKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgY29tbWl0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb25zXy5jdXJyZW50XyA9IHRtcF9mdW5jdGlvbnNfOworICAgICAgICAgICAgdG1wX2Z1bmN0aW9uc18gPSAhdG1wX2Z1bmN0aW9uc187CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEgsIGNsYXNzIFA+CisgICAgY2xhc3Mgc2V0X2hhc2hfZnVuY3Rpb25zPEgsIFAsIHRydWU+CisgICAgeworICAgICAgICBzZXRfaGFzaF9mdW5jdGlvbnMoc2V0X2hhc2hfZnVuY3Rpb25zIGNvbnN0Jik7CisgICAgICAgIHNldF9oYXNoX2Z1bmN0aW9ucyYgb3BlcmF0b3I9KHNldF9oYXNoX2Z1bmN0aW9ucyBjb25zdCYpOworCisgICAgICAgIHR5cGVkZWYgZnVuY3Rpb25zPEgsIFA+IGZ1bmN0aW9uc190eXBlOworCisgICAgICAgIGZ1bmN0aW9uc190eXBlJiBmdW5jdGlvbnNfOworICAgICAgICBIIGhhc2hfOworICAgICAgICBQIHByZWRfOworICAgIAorICAgIHB1YmxpYzoKKworICAgICAgICBzZXRfaGFzaF9mdW5jdGlvbnMoZnVuY3Rpb25zX3R5cGUmIGYsIEggY29uc3QmIGgsIFAgY29uc3QmIHApIDoKKyAgICAgICAgICAgIGZ1bmN0aW9uc18oZiksCisgICAgICAgICAgICBoYXNoXyhoKSwKKyAgICAgICAgICAgIHByZWRfKHApIHt9CisKKyAgICAgICAgc2V0X2hhc2hfZnVuY3Rpb25zKGZ1bmN0aW9uc190eXBlJiBmLCBmdW5jdGlvbnNfdHlwZSBjb25zdCYgb3RoZXIpIDoKKyAgICAgICAgICAgIGZ1bmN0aW9uc18oZiksCisgICAgICAgICAgICBoYXNoXyhvdGhlci5oYXNoX2Z1bmN0aW9uKCkpLAorICAgICAgICAgICAgcHJlZF8ob3RoZXIua2V5X2VxKCkpIHt9CisKKyAgICAgICAgdm9pZCBjb21taXQoKQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbnNfLmN1cnJlbnQoKS5maXJzdCgpID0gbmRuYm9vc3Q6Om1vdmUoaGFzaF8pOworICAgICAgICAgICAgZnVuY3Rpb25zXy5jdXJyZW50KCkuc2Vjb25kKCkgPSBuZG5ib29zdDo6bW92ZShwcmVkXyk7CisgICAgICAgIH0KKyAgICB9OworICAgIAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBydmFsdWUgcGFyYW1ldGVycyB3aGVuIHR5cGUgY2FuJ3QgYmUgYSBCT09TVF9SVl9SRUYoVCkgcGFyYW1ldGVyCisgICAgLy8gZS5nLiBmb3IgaW50CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKyMgICBkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX1JWX1JFRihUKSBCT09TVF9SVl9SRUYoVCkKKyNlbHNlCisgICAgc3RydWN0IHBsZWFzZV9pZ25vcmVfdGhpc19vdmVybG9hZCB7CisgICAgICAgIHR5cGVkZWYgcGxlYXNlX2lnbm9yZV90aGlzX292ZXJsb2FkIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBydl9yZWZfaW1wbCB7CisgICAgICAgIHR5cGVkZWYgQk9PU1RfUlZfUkVGKFQpIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBydl9yZWYgOgorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjppZl90cnVlPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZQorICAgICAgICA+OjpCT09TVF9ORVNURURfVEVNUExBVEUgdGhlbiA8CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnJ2X3JlZl9pbXBsPFQ+LAorICAgICAgICAgICAgcGxlYXNlX2lnbm9yZV90aGlzX292ZXJsb2FkCisgICAgICAgID46OnR5cGUKKyAgICB7fTsKKworIyAgIGRlZmluZSBCT09TVF9VTk9SREVSRURfUlZfUkVGKFQpIFwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpydl9yZWY8VD46OnR5cGUKKyNlbmRpZgorfX19CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2VxdWl2YWxlbnQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2VxdWl2YWxlbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMWZhMGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvZXF1aXZhbGVudC5ocHAKQEAgLTAsMCArMSw2ODAgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgSmVyZW15IEIuIE1haXRpbi1TaGVwYXJkLgorLy8gQ29weXJpZ2h0IChDKSAyMDA1LTIwMTEgRGFuaWVsIEphbWVzCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9VTk9SREVSRURfREVUQUlMX0VRVUlWQUxFTlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9ERVRBSUxfRVFVSVZBTEVOVF9IUFBfSU5DTFVERUQKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3RhYmxlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2V4dHJhY3Rfa2V5LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHVub3JkZXJlZCB7IG5hbWVzcGFjZSBkZXRhaWwgeworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIFQ+IHN0cnVjdCBncm91cGVkX25vZGU7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBncm91cGVkX3B0cl9ub2RlOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlcz4gc3RydWN0IGdyb3VwZWRfdGFibGVfaW1wbDsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBncm91cGVkX25vZGUgOgorICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnZhbHVlX2Jhc2U8VD4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgOjpuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnJlYmluZF93cmFwPAorICAgICAgICAgICAgQSwgZ3JvdXBlZF9ub2RlPEEsIFQ+ID46OnR5cGUgYWxsb2NhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjoKKyAgICAgICAgICAgIGFsbG9jYXRvcl90cmFpdHM8YWxsb2NhdG9yPjo6cG9pbnRlciBub2RlX3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgbm9kZV9wb2ludGVyIGxpbmtfcG9pbnRlcjsKKworICAgICAgICBsaW5rX3BvaW50ZXIgbmV4dF87CisgICAgICAgIG5vZGVfcG9pbnRlciBncm91cF9wcmV2XzsKKyAgICAgICAgc3RkOjpzaXplX3QgaGFzaF87CisKKyAgICAgICAgZ3JvdXBlZF9ub2RlKCkgOgorICAgICAgICAgICAgbmV4dF8oKSwKKyAgICAgICAgICAgIGdyb3VwX3ByZXZfKCksCisgICAgICAgICAgICBoYXNoXygwKQorICAgICAgICB7fQorCisgICAgICAgIHZvaWQgaW5pdChub2RlX3BvaW50ZXIgc2VsZikKKyAgICAgICAgeworICAgICAgICAgICAgZ3JvdXBfcHJldl8gPSBzZWxmOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBncm91cGVkX25vZGUmIG9wZXJhdG9yPShncm91cGVkX25vZGUgY29uc3QmKTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IGdyb3VwZWRfcHRyX25vZGUgOgorICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnZhbHVlX2Jhc2U8VD4sCisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cHRyX2J1Y2tldAorICAgIHsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnB0cl9idWNrZXQgYnVja2V0X2Jhc2U7CisgICAgICAgIHR5cGVkZWYgZ3JvdXBlZF9wdHJfbm9kZTxUPiogbm9kZV9wb2ludGVyOworICAgICAgICB0eXBlZGVmIHB0cl9idWNrZXQqIGxpbmtfcG9pbnRlcjsKKworICAgICAgICBub2RlX3BvaW50ZXIgZ3JvdXBfcHJldl87CisgICAgICAgIHN0ZDo6c2l6ZV90IGhhc2hfOworCisgICAgICAgIGdyb3VwZWRfcHRyX25vZGUoKSA6CisgICAgICAgICAgICBidWNrZXRfYmFzZSgpLAorICAgICAgICAgICAgZ3JvdXBfcHJldl8oMCksCisgICAgICAgICAgICBoYXNoXygwKQorICAgICAgICB7fQorCisgICAgICAgIHZvaWQgaW5pdChub2RlX3BvaW50ZXIgc2VsZikKKyAgICAgICAgeworICAgICAgICAgICAgZ3JvdXBfcHJldl8gPSBzZWxmOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBncm91cGVkX3B0cl9ub2RlJiBvcGVyYXRvcj0oZ3JvdXBlZF9wdHJfbm9kZSBjb25zdCYpOworICAgIH07CisKKyAgICAvLyBJZiB0aGUgYWxsb2NhdG9yIHVzZXMgcmF3IHBvaW50ZXJzIHVzZSBncm91cGVkX3B0cl9ub2RlCisgICAgLy8gT3RoZXJ3aXNlIHVzZSBncm91cGVkX25vZGUuCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgTm9kZVB0ciwgdHlwZW5hbWUgQnVja2V0UHRyPgorICAgIHN0cnVjdCBwaWNrX2dyb3VwZWRfbm9kZTIKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpncm91cGVkX25vZGU8QSwgVD4gbm9kZTsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cmViaW5kX3dyYXA8QSwgbm9kZT46OnR5cGUKKyAgICAgICAgPjo6cG9pbnRlciBub2RlX3BvaW50ZXI7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmJ1Y2tldDxub2RlX3BvaW50ZXI+IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiBub2RlX3BvaW50ZXIgbGlua19wb2ludGVyOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcGlja19ncm91cGVkX25vZGUyPEEsIFQsCisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Z3JvdXBlZF9wdHJfbm9kZTxUPiosCisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cHRyX2J1Y2tldCo+CisgICAgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Z3JvdXBlZF9wdHJfbm9kZTxUPiBub2RlOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cHRyX2J1Y2tldCBidWNrZXQ7CisgICAgICAgIHR5cGVkZWYgYnVja2V0KiBsaW5rX3BvaW50ZXI7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBwaWNrX2dyb3VwZWRfbm9kZQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmFsbG9jYXRvcl90cmFpdHM8CisgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnJlYmluZF93cmFwPEEsCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpncm91cGVkX3B0cl9ub2RlPFQ+ID46OnR5cGUKKyAgICAgICAgPiB0ZW50YXRpdmVfbm9kZV90cmFpdHM7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmFsbG9jYXRvcl90cmFpdHM8CisgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnJlYmluZF93cmFwPEEsCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwdHJfYnVja2V0ID46OnR5cGUKKyAgICAgICAgPiB0ZW50YXRpdmVfYnVja2V0X3RyYWl0czsKKworICAgICAgICB0eXBlZGVmIHBpY2tfZ3JvdXBlZF9ub2RlMjxBLCBULAorICAgICAgICAgICAgdHlwZW5hbWUgdGVudGF0aXZlX25vZGVfdHJhaXRzOjpwb2ludGVyLAorICAgICAgICAgICAgdHlwZW5hbWUgdGVudGF0aXZlX2J1Y2tldF90cmFpdHM6OnBvaW50ZXI+IHBpY2s7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpub2RlIG5vZGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcGljazo6YnVja2V0IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpsaW5rX3BvaW50ZXIgbGlua19wb2ludGVyOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgSCwgdHlwZW5hbWUgUD4KKyAgICBzdHJ1Y3QgbXVsdGlzZXQKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptdWx0aXNldDxBLCBULCBILCBQPiB0eXBlczsKKworICAgICAgICB0eXBlZGVmIEEgYWxsb2NhdG9yOworICAgICAgICB0eXBlZGVmIFQgdmFsdWVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBIIGhhc2hlcjsKKyAgICAgICAgdHlwZWRlZiBQIGtleV9lcXVhbDsKKyAgICAgICAgdHlwZWRlZiBUIGtleV90eXBlOworCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjphbGxvY2F0b3JfdHJhaXRzPGFsbG9jYXRvcj4gdHJhaXRzOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cGlja19ncm91cGVkX25vZGU8YWxsb2NhdG9yLAorICAgICAgICAgICAgdmFsdWVfdHlwZT4gcGljazsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpub2RlIG5vZGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcGljazo6YnVja2V0IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpsaW5rX3BvaW50ZXIgbGlua19wb2ludGVyOworCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpncm91cGVkX3RhYmxlX2ltcGw8dHlwZXM+IHRhYmxlOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6c2V0X2V4dHJhY3Rvcjx2YWx1ZV90eXBlPiBleHRyYWN0b3I7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnBpY2tfcG9saWN5Ojp0eXBlIHBvbGljeTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEssIHR5cGVuYW1lIE0sIHR5cGVuYW1lIEgsIHR5cGVuYW1lIFA+CisgICAgc3RydWN0IG11bHRpbWFwCisgICAgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bXVsdGltYXA8QSwgSywgTSwgSCwgUD4gdHlwZXM7CisKKyAgICAgICAgdHlwZWRlZiBBIGFsbG9jYXRvcjsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8SyBjb25zdCwgTT4gdmFsdWVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBIIGhhc2hlcjsKKyAgICAgICAgdHlwZWRlZiBQIGtleV9lcXVhbDsKKyAgICAgICAgdHlwZWRlZiBLIGtleV90eXBlOworCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjphbGxvY2F0b3JfdHJhaXRzPGFsbG9jYXRvcj4gdHJhaXRzOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cGlja19ncm91cGVkX25vZGU8YWxsb2NhdG9yLAorICAgICAgICAgICAgICAgIHZhbHVlX3R5cGU+IHBpY2s7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcGljazo6bm9kZSBub2RlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHBpY2s6OmJ1Y2tldCBidWNrZXQ7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcGljazo6bGlua19wb2ludGVyIGxpbmtfcG9pbnRlcjsKKworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Z3JvdXBlZF90YWJsZV9pbXBsPHR5cGVzPiB0YWJsZTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1hcF9leHRyYWN0b3I8a2V5X3R5cGUsIHZhbHVlX3R5cGU+CisgICAgICAgICAgICBleHRyYWN0b3I7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnBpY2tfcG9saWN5Ojp0eXBlIHBvbGljeTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVzPgorICAgIHN0cnVjdCBncm91cGVkX3RhYmxlX2ltcGwgOiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnRhYmxlPFR5cGVzPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnRhYmxlPFR5cGVzPiB0YWJsZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpidWNrZXQgYnVja2V0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpwb2xpY3kgcG9saWN5OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpub2RlX3BvaW50ZXIgbm9kZV9wb2ludGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpub2RlX2FsbG9jYXRvciBub2RlX2FsbG9jYXRvcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6bm9kZV9hbGxvY2F0b3JfdHJhaXRzIG5vZGVfYWxsb2NhdG9yX3RyYWl0czsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6YnVja2V0X3BvaW50ZXIgYnVja2V0X3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmxpbmtfcG9pbnRlciBsaW5rX3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6Omhhc2hlciBoYXNoZXI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmtleV9lcXVhbCBrZXlfZXF1YWw7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmtleV90eXBlIGtleV90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpub2RlX2NvbnN0cnVjdG9yIG5vZGVfY29uc3RydWN0b3I7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmV4dHJhY3RvciBleHRyYWN0b3I7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6Oml0ZXJhdG9yIGl0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpjX2l0ZXJhdG9yIGNfaXRlcmF0b3I7CisKKyAgICAgICAgLy8gQ29uc3RydWN0b3JzCisKKyAgICAgICAgZ3JvdXBlZF90YWJsZV9pbXBsKHN0ZDo6c2l6ZV90IG4sCisgICAgICAgICAgICAgICAgaGFzaGVyIGNvbnN0JiBoZiwKKyAgICAgICAgICAgICAgICBrZXlfZXF1YWwgY29uc3QmIGVxLAorICAgICAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yIGNvbnN0JiBhKQorICAgICAgICAgIDogdGFibGUobiwgaGYsIGVxLCBhKQorICAgICAgICB7fQorCisgICAgICAgIGdyb3VwZWRfdGFibGVfaW1wbChncm91cGVkX3RhYmxlX2ltcGwgY29uc3QmIHgpCisgICAgICAgICAgOiB0YWJsZSh4LCBub2RlX2FsbG9jYXRvcl90cmFpdHM6OgorICAgICAgICAgICAgICAgIHNlbGVjdF9vbl9jb250YWluZXJfY29weV9jb25zdHJ1Y3Rpb24oeC5ub2RlX2FsbG9jKCkpKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLT5pbml0KHgpOworICAgICAgICB9CisKKyAgICAgICAgZ3JvdXBlZF90YWJsZV9pbXBsKGdyb3VwZWRfdGFibGVfaW1wbCBjb25zdCYgeCwKKyAgICAgICAgICAgICAgICBub2RlX2FsbG9jYXRvciBjb25zdCYgYSkKKyAgICAgICAgICA6IHRhYmxlKHgsIGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMtPmluaXQoeCk7CisgICAgICAgIH0KKworICAgICAgICBncm91cGVkX3RhYmxlX2ltcGwoZ3JvdXBlZF90YWJsZV9pbXBsJiB4LAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bW92ZV90YWcgbSkKKyAgICAgICAgICA6IHRhYmxlKHgsIG0pCisgICAgICAgIHt9CisKKyAgICAgICAgZ3JvdXBlZF90YWJsZV9pbXBsKGdyb3VwZWRfdGFibGVfaW1wbCYgeCwKKyAgICAgICAgICAgICAgICBub2RlX2FsbG9jYXRvciBjb25zdCYgYSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1vdmVfdGFnIG0pCisgICAgICAgICAgOiB0YWJsZSh4LCBhLCBtKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLT5tb3ZlX2luaXQoeCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBY2Nlc3NvcnMKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgS2V5LCBjbGFzcyBQcmVkPgorICAgICAgICBpdGVyYXRvciBmaW5kX25vZGVfaW1wbCgKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCwKKyAgICAgICAgICAgICAgICBLZXkgY29uc3QmIGssCisgICAgICAgICAgICAgICAgUHJlZCBjb25zdCYgZXEpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGJ1Y2tldF9pbmRleCA9IHRoaXMtPmhhc2hfdG9fYnVja2V0KGtleV9oYXNoKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yIG4gPSB0aGlzLT5iZWdpbihidWNrZXRfaW5kZXgpOworCisgICAgICAgICAgICBmb3IgKDs7KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICghbi5ub2RlXykgcmV0dXJuIG47CisKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBub2RlX2hhc2ggPSBuLm5vZGVfLT5oYXNoXzsKKyAgICAgICAgICAgICAgICBpZiAoa2V5X2hhc2ggPT0gbm9kZV9oYXNoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVxKGssIHRoaXMtPmdldF9rZXkoKm4pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy0+aGFzaF90b19idWNrZXQobm9kZV9oYXNoKSAhPSBidWNrZXRfaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBuID0gaXRlcmF0b3Iobi5ub2RlXy0+Z3JvdXBfcHJldl8tPm5leHRfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHN0ZDo6c2l6ZV90IGNvdW50KGtleV90eXBlIGNvbnN0JiBrKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBpdGVyYXRvciBuID0gdGhpcy0+ZmluZF9ub2RlKGspOworICAgICAgICAgICAgaWYgKCFuLm5vZGVfKSByZXR1cm4gMDsKKworICAgICAgICAgICAgc3RkOjpzaXplX3QgeCA9IDA7CisgICAgICAgICAgICBub2RlX3BvaW50ZXIgaXQgPSBuLm5vZGVfOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGl0ID0gaXQtPmdyb3VwX3ByZXZfOworICAgICAgICAgICAgICAgICsreDsKKyAgICAgICAgICAgIH0gd2hpbGUoaXQgIT0gbi5ub2RlXyk7CisKKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICB9CisKKyAgICAgICAgc3RkOjpwYWlyPGl0ZXJhdG9yLCBpdGVyYXRvcj4KKyAgICAgICAgICAgIGVxdWFsX3JhbmdlKGtleV90eXBlIGNvbnN0JiBrKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBpdGVyYXRvciBuID0gdGhpcy0+ZmluZF9ub2RlKGspOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKAorICAgICAgICAgICAgICAgIG4sIG4ubm9kZV8gPyBpdGVyYXRvcihuLm5vZGVfLT5ncm91cF9wcmV2Xy0+bmV4dF8pIDogbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBFcXVhbGl0eQorCisgICAgICAgIGJvb2wgZXF1YWxzKGdyb3VwZWRfdGFibGVfaW1wbCBjb25zdCYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKHRoaXMtPnNpemVfICE9IG90aGVyLnNpemVfKSByZXR1cm4gZmFsc2U7CisgICAgCisgICAgICAgICAgICBmb3IoaXRlcmF0b3IgbjEgPSB0aGlzLT5iZWdpbigpOyBuMS5ub2RlXzspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaXRlcmF0b3IgbjIgPSBvdGhlci5maW5kX21hdGNoaW5nX25vZGUobjEpOworICAgICAgICAgICAgICAgIGlmICghbjIubm9kZV8pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpdGVyYXRvciBlbmQxKG4xLm5vZGVfLT5ncm91cF9wcmV2Xy0+bmV4dF8pOworICAgICAgICAgICAgICAgIGl0ZXJhdG9yIGVuZDIobjIubm9kZV8tPmdyb3VwX3ByZXZfLT5uZXh0Xyk7CisgICAgICAgICAgICAgICAgaWYgKCFncm91cF9lcXVhbHMobjEsIGVuZDEsIG4yLCBlbmQyKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIG4xID0gZW5kMTsgICAgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBib29sIGdyb3VwX2VxdWFscyhpdGVyYXRvciBuMSwgaXRlcmF0b3IgZW5kMSwKKyAgICAgICAgICAgICAgICBpdGVyYXRvciBuMiwgaXRlcmF0b3IgZW5kMikKKyAgICAgICAgeworICAgICAgICAgICAgZm9yKDs7KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICgqbjEgIT0gKm4yKSBicmVhazsKKworICAgICAgICAgICAgICAgICsrbjE7CisgICAgICAgICAgICAgICAgKytuMjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChuMSA9PSBlbmQxKSByZXR1cm4gbjIgPT0gZW5kMjsKKyAgICAgICAgICAgICAgICBpZiAobjIgPT0gZW5kMikgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaXRlcmF0b3IgbjFhID0gbjEsIG4yYSA9IG4yOzspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgKytuMWE7CisgICAgICAgICAgICAgICAgKytuMmE7CisKKyAgICAgICAgICAgICAgICBpZiAobjFhID09IGVuZDEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAobjJhID09IGVuZDIpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobjJhID09IGVuZDIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3Igc3RhcnQgPSBuMTsKKyAgICAgICAgICAgIGZvcig7bjEgIT0gZW5kMTsgKytuMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YWx1ZV90eXBlIGNvbnN0JiB2ID0gKm4xOworICAgICAgICAgICAgICAgIGlmIChmaW5kKHN0YXJ0LCBuMSwgdikpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG1hdGNoZXMgPSBjb3VudF9lcXVhbChuMiwgZW5kMiwgdik7CisgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaXRlcmF0b3IgbmV4dCA9IG4xOworICAgICAgICAgICAgICAgICsrbmV4dDsKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2hlcyAhPSAxICsgY291bnRfZXF1YWwobmV4dCwgZW5kMSwgdikpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgYm9vbCBmaW5kKGl0ZXJhdG9yIG4sIGl0ZXJhdG9yIGVuZCwgdmFsdWVfdHlwZSBjb25zdCYgdikKKyAgICAgICAgeworICAgICAgICAgICAgZm9yKDtuICE9IGVuZDsgKytuKQorICAgICAgICAgICAgICAgIGlmICgqbiA9PSB2KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBzdGQ6OnNpemVfdCBjb3VudF9lcXVhbChpdGVyYXRvciBuLCBpdGVyYXRvciBlbmQsCisgICAgICAgICAgICB2YWx1ZV90eXBlIGNvbnN0JiB2KQorICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBjb3VudCA9IDA7CisgICAgICAgICAgICBmb3IoO24gIT0gZW5kOyArK24pCisgICAgICAgICAgICAgICAgaWYgKCpuID09IHYpICsrY291bnQ7CisgICAgICAgICAgICByZXR1cm4gY291bnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbXBsYWNlL0luc2VydAorCisgICAgICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRfYWZ0ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICBub2RlX3BvaW50ZXIgbiwKKyAgICAgICAgICAgICAgICBub2RlX3BvaW50ZXIgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBuLT5uZXh0XyA9IHBvcy0+Z3JvdXBfcHJldl8tPm5leHRfOworICAgICAgICAgICAgbi0+Z3JvdXBfcHJldl8gPSBwb3MtPmdyb3VwX3ByZXZfOworICAgICAgICAgICAgcG9zLT5ncm91cF9wcmV2Xy0+bmV4dF8gPSBuOworICAgICAgICAgICAgcG9zLT5ncm91cF9wcmV2XyA9IG47CisgICAgICAgIH0KKworICAgICAgICBpbmxpbmUgaXRlcmF0b3IgYWRkX25vZGUoCisgICAgICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvciYgYSwKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCwKKyAgICAgICAgICAgICAgICBpdGVyYXRvciBwb3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vZGVfcG9pbnRlciBuID0gYS5yZWxlYXNlKCk7CisgICAgICAgICAgICBuLT5oYXNoXyA9IGtleV9oYXNoOworICAgICAgICAgICAgaWYgKHBvcy5ub2RlXykgeworICAgICAgICAgICAgICAgIHRoaXMtPmFkZF9hZnRlcl9ub2RlKG4sIHBvcy5ub2RlXyk7CisgICAgICAgICAgICAgICAgaWYgKG4tPm5leHRfKSB7CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG5leHRfYnVja2V0ID0gdGhpcy0+aGFzaF90b19idWNrZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KG4tPm5leHRfKS0+aGFzaF8pOworICAgICAgICAgICAgICAgICAgICBpZiAobmV4dF9idWNrZXQgIT0gdGhpcy0+aGFzaF90b19idWNrZXQoa2V5X2hhc2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5nZXRfYnVja2V0KG5leHRfYnVja2V0KS0+bmV4dF8gPSBuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnVja2V0X3BvaW50ZXIgYiA9IHRoaXMtPmdldF9idWNrZXQoCisgICAgICAgICAgICAgICAgICAgIHRoaXMtPmhhc2hfdG9fYnVja2V0KGtleV9oYXNoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIWItPm5leHRfKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbGlua19wb2ludGVyIHN0YXJ0X25vZGUgPSB0aGlzLT5nZXRfcHJldmlvdXNfc3RhcnQoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydF9ub2RlLT5uZXh0XykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+Z2V0X2J1Y2tldCh0aGlzLT5oYXNoX3RvX2J1Y2tldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHN0YXJ0X25vZGUtPm5leHRfKS0+aGFzaF8KKyAgICAgICAgICAgICAgICAgICAgICAgICkpLT5uZXh0XyA9IG47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgYi0+bmV4dF8gPSBzdGFydF9ub2RlOworICAgICAgICAgICAgICAgICAgICBuLT5uZXh0XyA9IHN0YXJ0X25vZGUtPm5leHRfOworICAgICAgICAgICAgICAgICAgICBzdGFydF9ub2RlLT5uZXh0XyA9IG47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIG4tPm5leHRfID0gYi0+bmV4dF8tPm5leHRfOworICAgICAgICAgICAgICAgICAgICBiLT5uZXh0Xy0+bmV4dF8gPSBuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrdGhpcy0+c2l6ZV87CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3Iobik7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBlbXBsYWNlX2ltcGwobm9kZV9jb25zdHJ1Y3RvciYgYSkKKyAgICAgICAgeworICAgICAgICAgICAga2V5X3R5cGUgY29uc3QmIGsgPSB0aGlzLT5nZXRfa2V5KGEudmFsdWUoKSk7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCA9IHRoaXMtPmhhc2goayk7CisgICAgICAgICAgICBpdGVyYXRvciBwb3NpdGlvbiA9IHRoaXMtPmZpbmRfbm9kZShrZXlfaGFzaCwgayk7CisKKyAgICAgICAgICAgIC8vIHJlc2VydmUgaGFzIGJhc2ljIGV4Y2VwdGlvbiBzYWZldHkgaWYgdGhlIGhhc2ggZnVuY3Rpb24KKyAgICAgICAgICAgIC8vIHRocm93cywgc3Ryb25nIG90aGVyd2lzZS4KKyAgICAgICAgICAgIHRoaXMtPnJlc2VydmVfZm9yX2luc2VydCh0aGlzLT5zaXplXyArIDEpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmFkZF9ub2RlKGEsIGtleV9oYXNoLCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGVtcGxhY2VfaW1wbF9ub19yZWhhc2gobm9kZV9jb25zdHJ1Y3RvciYgYSkKKyAgICAgICAgeworICAgICAgICAgICAga2V5X3R5cGUgY29uc3QmIGsgPSB0aGlzLT5nZXRfa2V5KGEudmFsdWUoKSk7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCA9IHRoaXMtPmhhc2goayk7CisgICAgICAgICAgICB0aGlzLT5hZGRfbm9kZShhLCBrZXlfaGFzaCwgdGhpcy0+ZmluZF9ub2RlKGtleV9oYXNoLCBrKSk7CisgICAgICAgIH0KKworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisjICAgaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpCisgICAgICAgIGl0ZXJhdG9yIGVtcGxhY2UobmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbXBsYWNlX2FyZ3MxPAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cGxlYXNlX2lnbm9yZV90aGlzX292ZXJsb2FkPiBjb25zdCYpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVChmYWxzZSk7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3IoKTsKKyAgICAgICAgfQorIyAgIGVsc2UKKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZSgKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnBsZWFzZV9pZ25vcmVfdGhpc19vdmVybG9hZCBjb25zdCYpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVChmYWxzZSk7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3IoKTsKKyAgICAgICAgfQorIyAgIGVuZGlmCisjZW5kaWYKKworICAgICAgICB0ZW1wbGF0ZSA8Qk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfVEVNUExBVEU+CisgICAgICAgIGl0ZXJhdG9yIGVtcGxhY2UoQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfQVJHUykKKyAgICAgICAgeworICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvciBhKHRoaXMtPm5vZGVfYWxsb2MoKSk7CisgICAgICAgICAgICBhLmNvbnN0cnVjdF93aXRoX3ZhbHVlKEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpOworCisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3IoZW1wbGFjZV9pbXBsKGEpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBJbnNlcnQgcmFuZ2UgbWV0aG9kcworCisgICAgICAgIC8vIGlmIGhhc2ggZnVuY3Rpb24gdGhyb3dzLCBvciBpbnNlcnRpbmcgPiAxIGVsZW1lbnQsIGJhc2ljIGV4Y2VwdGlvbgorICAgICAgICAvLyBzYWZldHkuIFN0cm9uZyBvdGhlcndpc2UKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEk+CisgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZW5hYmxlX2lmX2ZvcndhcmQ8SSwgdm9pZD46OnR5cGUKKyAgICAgICAgICAgIGluc2VydF9yYW5nZShJIGksIEkgaikKKyAgICAgICAgeworICAgICAgICAgICAgaWYoaSA9PSBqKSByZXR1cm47CisKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGRpc3RhbmNlID0gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkaXN0YW5jZShpLCBqKTsKKyAgICAgICAgICAgIGlmKGRpc3RhbmNlID09IDEpIHsKKyAgICAgICAgICAgICAgICBub2RlX2NvbnN0cnVjdG9yIGEodGhpcy0+bm9kZV9hbGxvYygpKTsKKyAgICAgICAgICAgICAgICBhLmNvbnN0cnVjdF93aXRoX3ZhbHVlMigqaSk7CisgICAgICAgICAgICAgICAgZW1wbGFjZV9pbXBsKGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gT25seSByZXF1aXJlIGJhc2ljIGV4Y2VwdGlvbiBzYWZldHkgaGVyZQorICAgICAgICAgICAgICAgIHRoaXMtPnJlc2VydmVfZm9yX2luc2VydCh0aGlzLT5zaXplXyArIGRpc3RhbmNlKTsKKworICAgICAgICAgICAgICAgIG5vZGVfY29uc3RydWN0b3IgYSh0aGlzLT5ub2RlX2FsbG9jKCkpOworICAgICAgICAgICAgICAgIGZvciAoOyBpICE9IGo7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBhLmNvbnN0cnVjdF93aXRoX3ZhbHVlMigqaSk7CisgICAgICAgICAgICAgICAgICAgIGVtcGxhY2VfaW1wbF9ub19yZWhhc2goYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEk+CisgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGlzYWJsZV9pZl9mb3J3YXJkPEksIHZvaWQ+Ojp0eXBlCisgICAgICAgICAgICBpbnNlcnRfcmFuZ2UoSSBpLCBJIGopCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vZGVfY29uc3RydWN0b3IgYSh0aGlzLT5ub2RlX2FsbG9jKCkpOworICAgICAgICAgICAgZm9yICg7IGkgIT0gajsgKytpKSB7CisgICAgICAgICAgICAgICAgYS5jb25zdHJ1Y3Rfd2l0aF92YWx1ZTIoKmkpOworICAgICAgICAgICAgICAgIGVtcGxhY2VfaW1wbChhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBFcmFzZQorICAgICAgICAvLworICAgICAgICAvLyBubyB0aHJvdworCisgICAgICAgIHN0ZDo6c2l6ZV90IGVyYXNlX2tleShrZXlfdHlwZSBjb25zdCYgaykKKyAgICAgICAgeworICAgICAgICAgICAgaWYoIXRoaXMtPnNpemVfKSByZXR1cm4gMDsKKworICAgICAgICAgICAgc3RkOjpzaXplX3Qga2V5X2hhc2ggPSB0aGlzLT5oYXNoKGspOworICAgICAgICAgICAgc3RkOjpzaXplX3QgYnVja2V0X2luZGV4ID0gdGhpcy0+aGFzaF90b19idWNrZXQoa2V5X2hhc2gpOworICAgICAgICAgICAgbGlua19wb2ludGVyIHByZXYgPSB0aGlzLT5nZXRfcHJldmlvdXNfc3RhcnQoYnVja2V0X2luZGV4KTsKKyAgICAgICAgICAgIGlmICghcHJldikgcmV0dXJuIDA7CisKKyAgICAgICAgICAgIGZvciAoOzspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCFwcmV2LT5uZXh0XykgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3Qgbm9kZV9oYXNoID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihwcmV2LT5uZXh0XyktPmhhc2hfOworICAgICAgICAgICAgICAgIGlmICh0aGlzLT5oYXNoX3RvX2J1Y2tldChub2RlX2hhc2gpICE9IGJ1Y2tldF9pbmRleCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgaWYgKG5vZGVfaGFzaCA9PSBrZXlfaGFzaCAmJgorICAgICAgICAgICAgICAgICAgICB0aGlzLT5rZXlfZXEoKShrLCB0aGlzLT5nZXRfa2V5KAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihwcmV2LT5uZXh0XyktPnZhbHVlKCkpKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgcHJldiA9IHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4ocHJldi0+bmV4dF8pLT5ncm91cF9wcmV2XzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbm9kZV9wb2ludGVyIGZpcnN0X25vZGUgPSBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHByZXYtPm5leHRfKTsKKyAgICAgICAgICAgIGxpbmtfcG9pbnRlciBlbmQgPSBmaXJzdF9ub2RlLT5ncm91cF9wcmV2Xy0+bmV4dF87CisKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGNvdW50ID0gdGhpcy0+ZGVsZXRlX25vZGVzKHByZXYsIGVuZCk7CisgICAgICAgICAgICB0aGlzLT5maXhfYnVja2V0KGJ1Y2tldF9pbmRleCwgcHJldik7CisgICAgICAgICAgICByZXR1cm4gY291bnQ7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBlcmFzZShjX2l0ZXJhdG9yIHIpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVChyLm5vZGVfKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yIG5leHQoci5ub2RlXyk7CisgICAgICAgICAgICArK25leHQ7CisgICAgICAgICAgICBlcmFzZV9ub2RlcyhyLm5vZGVfLCBuZXh0Lm5vZGVfKTsKKyAgICAgICAgICAgIHJldHVybiBuZXh0OworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IgZXJhc2VfcmFuZ2UoY19pdGVyYXRvciByMSwgY19pdGVyYXRvciByMikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHIxID09IHIyKSByZXR1cm4gaXRlcmF0b3IocjIubm9kZV8pOworICAgICAgICAgICAgZXJhc2Vfbm9kZXMocjEubm9kZV8sIHIyLm5vZGVfKTsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcihyMi5ub2RlXyk7CisgICAgICAgIH0KKworICAgICAgICBsaW5rX3BvaW50ZXIgZXJhc2Vfbm9kZXMobm9kZV9wb2ludGVyIGJlZ2luLCBub2RlX3BvaW50ZXIgZW5kKQorICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBidWNrZXRfaW5kZXggPSB0aGlzLT5oYXNoX3RvX2J1Y2tldChiZWdpbi0+aGFzaF8pOworCisgICAgICAgICAgICAvLyBTcGxpdCB0aGUgZ3JvdXBzIGNvbnRhaW5pbmcgJ2JlZ2luJyBhbmQgJ2VuZCcuCisgICAgICAgICAgICAvLyBBbmQgZ2V0IHRoZSBwb2ludGVyIHRvIHRoZSBub2RlIGJlZm9yZSBiZWdpbiB3aGlsZQorICAgICAgICAgICAgLy8gd2UncmUgYXQgaXQuCisgICAgICAgICAgICBsaW5rX3BvaW50ZXIgcHJldiA9IHNwbGl0X2dyb3VwcyhiZWdpbiwgZW5kKTsKKworICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhICdwcmV2JyBpdCBtZWFucyB0aGF0IGJlZ2luIGlzIGF0IHRoZQorICAgICAgICAgICAgLy8gYmVnaW5uaW5nIG9mIGEgYmxvY2ssIHNvIHNlYXJjaCB0aHJvdWdoIHRoZSBibG9ja3MgaW4gdGhlCisgICAgICAgICAgICAvLyBzYW1lIGJ1Y2tldC4KKyAgICAgICAgICAgIGlmICghcHJldikgeworICAgICAgICAgICAgICAgIHByZXYgPSB0aGlzLT5nZXRfcHJldmlvdXNfc3RhcnQoYnVja2V0X2luZGV4KTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocHJldi0+bmV4dF8gIT0gYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIHByZXYgPSBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHByZXYtPm5leHRfKS0+Z3JvdXBfcHJldl87CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgbm9kZXMuCisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgbGlua19wb2ludGVyIGdyb3VwX2VuZCA9CisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4ocHJldi0+bmV4dF8pLT5ncm91cF9wcmV2Xy0+bmV4dF87CisgICAgICAgICAgICAgICAgdGhpcy0+ZGVsZXRlX25vZGVzKHByZXYsIGdyb3VwX2VuZCk7CisgICAgICAgICAgICAgICAgYnVja2V0X2luZGV4ID0gdGhpcy0+Zml4X2J1Y2tldChidWNrZXRfaW5kZXgsIHByZXYpOworICAgICAgICAgICAgfSB3aGlsZShwcmV2LT5uZXh0XyAhPSBlbmQpOworCisgICAgICAgICAgICByZXR1cm4gcHJldjsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBsaW5rX3BvaW50ZXIgc3BsaXRfZ3JvdXBzKG5vZGVfcG9pbnRlciBiZWdpbiwgbm9kZV9wb2ludGVyIGVuZCkKKyAgICAgICAgeworICAgICAgICAgICAgbm9kZV9wb2ludGVyIHByZXYgPSBiZWdpbi0+Z3JvdXBfcHJldl87CisgICAgICAgICAgICBpZiAocHJldi0+bmV4dF8gIT0gYmVnaW4pIHByZXYgPSBub2RlX3BvaW50ZXIoKTsKKworICAgICAgICAgICAgaWYgKGVuZCkgeworICAgICAgICAgICAgICAgIG5vZGVfcG9pbnRlciBmaXJzdCA9IGVuZDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoZmlyc3QgIT0gYmVnaW4gJiYgZmlyc3QtPmdyb3VwX3ByZXZfLT5uZXh0XyA9PSBmaXJzdCkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZpcnN0LT5ncm91cF9wcmV2XzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6c3dhcChmaXJzdC0+Z3JvdXBfcHJldl8sIGVuZC0+Z3JvdXBfcHJldl8pOworICAgICAgICAgICAgICAgIGlmIChmaXJzdCA9PSBiZWdpbikgcmV0dXJuIHByZXY7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwcmV2KSB7CisgICAgICAgICAgICAgICAgbm9kZV9wb2ludGVyIGZpcnN0ID0gcHJldjsKKyAgICAgICAgICAgICAgICB3aGlsZSAoZmlyc3QtPmdyb3VwX3ByZXZfLT5uZXh0XyA9PSBmaXJzdCkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZpcnN0LT5ncm91cF9wcmV2XzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnN3YXAoZmlyc3QtPmdyb3VwX3ByZXZfLCBiZWdpbi0+Z3JvdXBfcHJldl8pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gcHJldjsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBmaWxsX2J1Y2tldHMKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgTm9kZUNyZWF0b3I+CisgICAgICAgIHN0YXRpYyB2b2lkIGZpbGxfYnVja2V0cyhpdGVyYXRvciBuLCB0YWJsZSYgZHN0LAorICAgICAgICAgICAgTm9kZUNyZWF0b3ImIGNyZWF0b3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxpbmtfcG9pbnRlciBwcmV2ID0gZHN0LmdldF9wcmV2aW91c19zdGFydCgpOworCisgICAgICAgICAgICB3aGlsZSAobi5ub2RlXykgeworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGtleV9oYXNoID0gbi5ub2RlXy0+aGFzaF87CisgICAgICAgICAgICAgICAgaXRlcmF0b3IgZ3JvdXBfZW5kKG4ubm9kZV8tPmdyb3VwX3ByZXZfLT5uZXh0Xyk7CisKKyAgICAgICAgICAgICAgICBub2RlX3BvaW50ZXIgZmlyc3Rfbm9kZSA9IGNyZWF0b3IuY3JlYXRlKCpuKTsKKyAgICAgICAgICAgICAgICBub2RlX3BvaW50ZXIgZW5kID0gZmlyc3Rfbm9kZTsKKyAgICAgICAgICAgICAgICBmaXJzdF9ub2RlLT5oYXNoXyA9IGtleV9oYXNoOworICAgICAgICAgICAgICAgIHByZXYtPm5leHRfID0gZmlyc3Rfbm9kZTsKKyAgICAgICAgICAgICAgICArK2RzdC5zaXplXzsKKworICAgICAgICAgICAgICAgIGZvciAoKytuOyBuICE9IGdyb3VwX2VuZDsgKytuKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gY3JlYXRvci5jcmVhdGUoKm4pOworICAgICAgICAgICAgICAgICAgICBlbmQtPmhhc2hfID0ga2V5X2hhc2g7CisgICAgICAgICAgICAgICAgICAgIGFkZF9hZnRlcl9ub2RlKGVuZCwgZmlyc3Rfbm9kZSk7CisgICAgICAgICAgICAgICAgICAgICsrZHN0LnNpemVfOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHByZXYgPSBwbGFjZV9pbl9idWNrZXQoZHN0LCBwcmV2LCBlbmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gc3Ryb25nIG90aGVyd2lzZSBleGNlcHRpb24gc2FmZXR5CisgICAgICAgIHZvaWQgcmVoYXNoX2ltcGwoc3RkOjpzaXplX3QgbnVtX2J1Y2tldHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVCh0aGlzLT5idWNrZXRzXyk7CisKKyAgICAgICAgICAgIHRoaXMtPmNyZWF0ZV9idWNrZXRzKG51bV9idWNrZXRzKTsKKyAgICAgICAgICAgIGxpbmtfcG9pbnRlciBwcmV2ID0gdGhpcy0+Z2V0X3ByZXZpb3VzX3N0YXJ0KCk7CisgICAgICAgICAgICB3aGlsZSAocHJldi0+bmV4dF8pCisgICAgICAgICAgICAgICAgcHJldiA9IHBsYWNlX2luX2J1Y2tldCgqdGhpcywgcHJldiwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihwcmV2LT5uZXh0XyktPmdyb3VwX3ByZXZfKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbm9kZXMgcGxhY2luZyB0aGVtIGluIHRoZSBjb3JyZWN0IGJ1Y2tldHMuCisgICAgICAgIC8vIHByZTogcHJldi0+bmV4dF8gaXMgbm90IG51bGwuCisgICAgICAgIHN0YXRpYyBsaW5rX3BvaW50ZXIgcGxhY2VfaW5fYnVja2V0KHRhYmxlJiBkc3QsCisgICAgICAgICAgICAgICAgbGlua19wb2ludGVyIHByZXYsIG5vZGVfcG9pbnRlciBlbmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ1Y2tldF9wb2ludGVyIGIgPSBkc3QuZ2V0X2J1Y2tldChkc3QuaGFzaF90b19idWNrZXQoZW5kLT5oYXNoXykpOworCisgICAgICAgICAgICBpZiAoIWItPm5leHRfKSB7CisgICAgICAgICAgICAgICAgYi0+bmV4dF8gPSBwcmV2OworICAgICAgICAgICAgICAgIHJldHVybiBlbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaW5rX3BvaW50ZXIgbmV4dCA9IGVuZC0+bmV4dF87CisgICAgICAgICAgICAgICAgZW5kLT5uZXh0XyA9IGItPm5leHRfLT5uZXh0XzsKKyAgICAgICAgICAgICAgICBiLT5uZXh0Xy0+bmV4dF8gPSBwcmV2LT5uZXh0XzsKKyAgICAgICAgICAgICAgICBwcmV2LT5uZXh0XyA9IG5leHQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworfX19CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2V4dHJhY3Rfa2V5LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9leHRyYWN0X2tleS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRkZmRhYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9leHRyYWN0X2tleS5ocHAKQEAgLTAsMCArMSwxODMgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDA1LTIwMTEgRGFuaWVsIEphbWVzCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9VTk9SREVSRURfREVUQUlMX0VYVFJBQ1RfS0VZX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfREVUQUlMX0VYVFJBQ1RfS0VZX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC90YWJsZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdW5vcmRlcmVkIHsKK25hbWVzcGFjZSBkZXRhaWwgeworCisgICAgLy8ga2V5IGV4dHJhY3RvcnMKKyAgICAvLworICAgIC8vIG5vIHRocm93CisgICAgLy8KKyAgICAvLyAnZXh0cmFjdF9rZXknIGlzIGNhbGxlZCB3aXRoIHRoZSBlbXBsYWNlIHBhcmFtZXRlcnMgdG8gcmV0dXJuIGEKKyAgICAvLyBrZXkgaWYgYXZhaWxhYmxlIG9yICdub19rZXknIGlzIG9uZSBpc24ndCBhbmQgd2lsbCBuZWVkIHRvIGJlCisgICAgLy8gY29uc3RydWN0ZWQuIFRoaXMgY291bGQgYmUgZG9uZSBieSBvdmVybG9hZGluZyB0aGUgZW1wbGFjZSBpbXBsZW1lbnRhdGlvbgorICAgIC8vIGZvciB0aGUgZGlmZmVyZW50IGNhc2VzLCBidXQgdGhhdCdzIGEgYml0IHRyaWNreSBvbiBjb21waWxlcnMgd2l0aG91dAorICAgIC8vIHZhcmlhZGljIHRlbXBsYXRlcy4KKworICAgIHN0cnVjdCBub19rZXkgeworICAgICAgICBub19rZXkoKSB7fQorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gbm9fa2V5KFQgY29uc3QmKSB7fQorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBpc19rZXkgeworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDI+CisgICAgICAgIHN0YXRpYyBjaG9pY2UxOjp0eXBlIHRlc3QoVDIgY29uc3QmKTsKKyAgICAgICAgc3RhdGljIGNob2ljZTI6OnR5cGUgdGVzdChLZXkgY29uc3QmKTsKKyAgICAgICAgCisgICAgICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZih0ZXN0KG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bWFrZTxUPigpKSkgPT0KKyAgICAgICAgICAgIHNpemVvZihjaG9pY2UyOjp0eXBlKSB9OworICAgICAgICAKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjppZl90cnVlPHZhbHVlPjo6CisgICAgICAgICAgICBCT09TVF9ORVNURURfVEVNUExBVEUgdGhlbjxLZXkgY29uc3QmLCBub19rZXk+Ojp0eXBlIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBWYWx1ZVR5cGU+CisgICAgc3RydWN0IHNldF9leHRyYWN0b3IKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlIHZhbHVlX3R5cGU7CisgICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlIGtleV90eXBlOworCisgICAgICAgIHN0YXRpYyBrZXlfdHlwZSBjb25zdCYgZXh0cmFjdChrZXlfdHlwZSBjb25zdCYgdikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHY7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgbm9fa2V5IGV4dHJhY3QoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbm9fa2V5KCk7CisgICAgICAgIH0KKyAgICAgICAgCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gQXJncz4KKyAgICAgICAgc3RhdGljIG5vX2tleSBleHRyYWN0KEFyZ3MgY29uc3QmLi4uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbm9fa2V5KCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBBcmc+CisgICAgICAgIHN0YXRpYyBub19rZXkgZXh0cmFjdChBcmcgY29uc3QmKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbm9fa2V5KCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQXJnMSwgY2xhc3MgQXJnMj4KKyAgICAgICAgc3RhdGljIG5vX2tleSBleHRyYWN0KEFyZzEgY29uc3QmLCBBcmcyIGNvbnN0JikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5vX2tleSgpOworICAgICAgICB9CisjZW5kaWYKKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEtleSwgY2xhc3MgVmFsdWVUeXBlPgorICAgIHN0cnVjdCBtYXBfZXh0cmFjdG9yCisgICAgeworICAgICAgICB0eXBlZGVmIFZhbHVlVHlwZSB2YWx1ZV90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY29uc3Q8S2V5Pjo6dHlwZSBrZXlfdHlwZTsKKworICAgICAgICBzdGF0aWMga2V5X3R5cGUgY29uc3QmIGV4dHJhY3QodmFsdWVfdHlwZSBjb25zdCYgdikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHYuZmlyc3Q7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgU2Vjb25kPgorICAgICAgICBzdGF0aWMga2V5X3R5cGUgY29uc3QmIGV4dHJhY3Qoc3RkOjpwYWlyPGtleV90eXBlLCBTZWNvbmQ+IGNvbnN0JiB2KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdi5maXJzdDsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBTZWNvbmQ+CisgICAgICAgIHN0YXRpYyBrZXlfdHlwZSBjb25zdCYgZXh0cmFjdCgKKyAgICAgICAgICAgIHN0ZDo6cGFpcjxrZXlfdHlwZSBjb25zdCwgU2Vjb25kPiBjb25zdCYgdikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHYuZmlyc3Q7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQXJnMT4KKyAgICAgICAgc3RhdGljIGtleV90eXBlIGNvbnN0JiBleHRyYWN0KGtleV90eXBlIGNvbnN0JiBrLCBBcmcxIGNvbnN0JikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGs7CisgICAgICAgIH0KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzLi4uIEFyZ3M+CisgICAgICAgIHN0YXRpYyBub19rZXkgZXh0cmFjdChBcmdzIGNvbnN0Ji4uLikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5vX2tleSgpOworICAgICAgICB9CisjZWxzZQorCisgICAgICAgIHN0YXRpYyBub19rZXkgZXh0cmFjdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBub19rZXkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBBcmc+CisgICAgICAgIHN0YXRpYyBub19rZXkgZXh0cmFjdChBcmcgY29uc3QmKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbm9fa2V5KCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQXJnLCBjbGFzcyBBcmcxPgorICAgICAgICBzdGF0aWMgbm9fa2V5IGV4dHJhY3QoQXJnIGNvbnN0JiwgQXJnMSBjb25zdCYpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBub19rZXkoKTsKKyAgICAgICAgfQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpCisKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0tFWV9GUk9NX1RVUExFKG5hbWVzcGFjZV8pICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUMj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdGF0aWMgbm9fa2V5IGV4dHJhY3QobmRuYm9vc3Q6OnVub3JkZXJlZDo6cGllY2V3aXNlX2NvbnN0cnVjdF90LCAgICAgIFwKKyAgICAgICAgICAgICAgICBuYW1lc3BhY2VfIHR1cGxlPD4gY29uc3QmLCBUMiBjb25zdCYpICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIG5vX2tleSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVDI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RhdGljIHR5cGVuYW1lIGlzX2tleTxrZXlfdHlwZSwgVD46OnR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBleHRyYWN0KG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OnBpZWNld2lzZV9jb25zdHJ1Y3RfdCwgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZV8gdHVwbGU8VD4gY29uc3QmIGssIFQyIGNvbnN0JikgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgaXNfa2V5PGtleV90eXBlLCBUPjo6dHlwZSggICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZV8gZ2V0PDA+KGspKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfQorCisjZWxzZQorCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9LRVlfRlJPTV9UVVBMRShuYW1lc3BhY2VfKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBzdGF0aWMgbm9fa2V5IGV4dHJhY3QobmRuYm9vc3Q6OnVub3JkZXJlZDo6cGllY2V3aXNlX2NvbnN0cnVjdF90LCAgICAgIFwKKyAgICAgICAgICAgICAgICBuYW1lc3BhY2VfIHR1cGxlPD4gY29uc3QmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIG5vX2tleSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RhdGljIHR5cGVuYW1lIGlzX2tleTxrZXlfdHlwZSwgVD46OnR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBleHRyYWN0KG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OnBpZWNld2lzZV9jb25zdHJ1Y3RfdCwgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZV8gdHVwbGU8VD4gY29uc3QmIGspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgaXNfa2V5PGtleV90eXBlLCBUPjo6dHlwZSggICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZV8gZ2V0PDA+KGspKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfQorCisjZW5kaWYKKworQk9PU1RfVU5PUkRFUkVEX0tFWV9GUk9NX1RVUExFKG5kbmJvb3N0OjopCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUpCitCT09TVF9VTk9SREVSRURfS0VZX0ZST01fVFVQTEUoc3RkOjopCisjZW5kaWYKKyAgICB9OworfX19CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2Z3ZC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Mjk0NjZmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2Z3ZC5ocHAKQEAgLTAsMCArMSwyMyBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMSBEYW5pZWwgSmFtZXMuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9VTk9SREVSRURfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfRldEX0hQUF9JTkNMVURFRAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKK25hbWVzcGFjZSB1bm9yZGVyZWQKK3sKKyAgICBzdHJ1Y3QgcGllY2V3aXNlX2NvbnN0cnVjdF90IHt9OworICAgIGNvbnN0IHBpZWNld2lzZV9jb25zdHJ1Y3RfdCBwaWVjZXdpc2VfY29uc3RydWN0ID0gcGllY2V3aXNlX2NvbnN0cnVjdF90KCk7Cit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3RhYmxlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC90YWJsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QyY2Y4NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC90YWJsZS5ocHAKQEAgLTAsMCArMSw4NjEgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgSmVyZW15IEIuIE1haXRpbi1TaGVwYXJkLgorLy8gQ29weXJpZ2h0IChDKSAyMDA1LTIwMTEgRGFuaWVsIEphbWVzCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9VTk9SREVSRURfREVUQUlMX0FMTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9BTExfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxuZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL2J1Y2tldHMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdXRpbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25lZF9zdG9yYWdlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwPgorI2luY2x1ZGUgPGNtYXRoPgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MTI3KSAvLyBjb25kaXRpb25hbCBleHByZXNzaW9uIGlzIGNvbnN0YW50CisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfVU5PUkRFUkVEX0RFUFJFQ0FURURfRVFVQUxJVFkpCisKKyNpZiBkZWZpbmVkKF9fRURHX18pCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX0RNQ19fKQorI3ByYWdtYSBtZXNzYWdlKCJXYXJuaW5nOiBCT09TVF9VTk9SREVSRURfREVQUkVDQVRFRF9FUVVBTElUWSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiIpCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fSFBfYUNDKSB8fCBcCisgICAgZGVmaW5lZChfX1NVTlBST19DQykgfHwgZGVmaW5lZChfX0lCTUNQUF9fKQorI3dhcm5pbmcgIkJPT1NUX1VOT1JERVJFRF9ERVBSRUNBVEVEX0VRVUFMSVRZIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIgorI2VuZGlmCisKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgdW5vcmRlcmVkIHsgbmFtZXNwYWNlIGRldGFpbCB7CisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gY29udmVydCBkb3VibGUgdG8gc3RkOjpzaXplX3QKKworICAgIGlubGluZSBzdGQ6OnNpemVfdCBkb3VibGVfdG9fc2l6ZShkb3VibGUgZikKKyAgICB7CisgICAgICAgIHJldHVybiBmID49IHN0YXRpY19jYXN0PGRvdWJsZT4oCisgICAgICAgICAgICAoc3RkOjpudW1lcmljX2xpbWl0czxzdGQ6OnNpemVfdD46Om1heCkoKSkgPworICAgICAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c3RkOjpzaXplX3Q+OjptYXgpKCkgOgorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c3RkOjpzaXplX3Q+KGYpOworICAgIH0KKworICAgIC8vIFRoZSBzcGFjZSB1c2VkIHRvIHN0b3JlIHZhbHVlcyBpbiBhIG5vZGUuCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmFsdWVUeXBlPgorICAgIHN0cnVjdCB2YWx1ZV9iYXNlCisgICAgeworICAgICAgICB0eXBlZGVmIFZhbHVlVHlwZSB2YWx1ZV90eXBlOworCisgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0OjphbGlnbmVkX3N0b3JhZ2U8CisgICAgICAgICAgICBzaXplb2YodmFsdWVfdHlwZSksCisgICAgICAgICAgICBuZG5ib29zdDo6YWxpZ25tZW50X29mPHZhbHVlX3R5cGU+Ojp2YWx1ZT46OnR5cGUgZGF0YV87CisKKyAgICAgICAgdm9pZCogYWRkcmVzcygpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgdmFsdWVfdHlwZSYgdmFsdWUoKSB7CisgICAgICAgICAgICByZXR1cm4gKihWYWx1ZVR5cGUqKSB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgdmFsdWVfdHlwZSogdmFsdWVfcHRyKCkgeworICAgICAgICAgICAgcmV0dXJuIChWYWx1ZVR5cGUqKSB0aGlzOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorCisgICAgICAgIHZhbHVlX2Jhc2UmIG9wZXJhdG9yPSh2YWx1ZV9iYXNlIGNvbnN0Jik7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBOb2RlQWxsb2M+CisgICAgc3RydWN0IGNvcHlfbm9kZXMKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjphbGxvY2F0b3JfdHJhaXRzPE5vZGVBbGxvYz4KKyAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yX3RyYWl0czsKKworICAgICAgICBub2RlX2NvbnN0cnVjdG9yPE5vZGVBbGxvYz4gY29uc3RydWN0b3I7CisKKyAgICAgICAgZXhwbGljaXQgY29weV9ub2RlcyhOb2RlQWxsb2MmIGEpIDogY29uc3RydWN0b3IoYSkge30KKworICAgICAgICB0eXBlbmFtZSBub2RlX2FsbG9jYXRvcl90cmFpdHM6OnBvaW50ZXIgY3JlYXRlKAorICAgICAgICAgICAgICAgIHR5cGVuYW1lIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6dmFsdWVfdHlwZTo6dmFsdWVfdHlwZSBjb25zdCYgdikKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3RydWN0b3IuY29uc3RydWN0X3dpdGhfdmFsdWUyKHYpOworICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yLnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTm9kZUFsbG9jPgorICAgIHN0cnVjdCBtb3ZlX25vZGVzCisgICAgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czxOb2RlQWxsb2M+CisgICAgICAgICAgICBub2RlX2FsbG9jYXRvcl90cmFpdHM7CisKKyAgICAgICAgbm9kZV9jb25zdHJ1Y3RvcjxOb2RlQWxsb2M+IGNvbnN0cnVjdG9yOworCisgICAgICAgIGV4cGxpY2l0IG1vdmVfbm9kZXMoTm9kZUFsbG9jJiBhKSA6IGNvbnN0cnVjdG9yKGEpIHt9CisKKyAgICAgICAgdHlwZW5hbWUgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOjpwb2ludGVyIGNyZWF0ZSgKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBub2RlX2FsbG9jYXRvcl90cmFpdHM6OnZhbHVlX3R5cGU6OnZhbHVlX3R5cGUmIHYpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yLmNvbnN0cnVjdF93aXRoX3ZhbHVlMihuZG5ib29zdDo6bW92ZSh2KSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3IucmVsZWFzZSgpOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBCdWNrZXRzPgorICAgIHN0cnVjdCBhc3NpZ25fbm9kZXMKKyAgICB7CisgICAgICAgIG5vZGVfaG9sZGVyPHR5cGVuYW1lIEJ1Y2tldHM6Om5vZGVfYWxsb2NhdG9yPiBob2xkZXI7CisKKyAgICAgICAgZXhwbGljaXQgYXNzaWduX25vZGVzKEJ1Y2tldHMmIGIpIDogaG9sZGVyKGIpIHt9CisKKyAgICAgICAgdHlwZW5hbWUgQnVja2V0czo6bm9kZV9wb2ludGVyIGNyZWF0ZSgKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBCdWNrZXRzOjp2YWx1ZV90eXBlIGNvbnN0JiB2KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaG9sZGVyLmNvcHlfb2Yodik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEJ1Y2tldHM+CisgICAgc3RydWN0IG1vdmVfYXNzaWduX25vZGVzCisgICAgeworICAgICAgICBub2RlX2hvbGRlcjx0eXBlbmFtZSBCdWNrZXRzOjpub2RlX2FsbG9jYXRvcj4gaG9sZGVyOworCisgICAgICAgIGV4cGxpY2l0IG1vdmVfYXNzaWduX25vZGVzKEJ1Y2tldHMmIGIpIDogaG9sZGVyKGIpIHt9CisKKyAgICAgICAgdHlwZW5hbWUgQnVja2V0czo6bm9kZV9wb2ludGVyIGNyZWF0ZSgKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSBCdWNrZXRzOjp2YWx1ZV90eXBlJiB2KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaG9sZGVyLm1vdmVfY29weV9vZih2KTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZXM+CisgICAgc3RydWN0IHRhYmxlIDoKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpmdW5jdGlvbnM8CisgICAgICAgICAgICB0eXBlbmFtZSBUeXBlczo6aGFzaGVyLAorICAgICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OmtleV9lcXVhbD4KKyAgICB7CisgICAgcHJpdmF0ZToKKyAgICAgICAgdGFibGUodGFibGUgY29uc3QmKTsKKyAgICAgICAgdGFibGUmIG9wZXJhdG9yPSh0YWJsZSBjb25zdCYpOworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlczo6bm9kZSBub2RlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjpidWNrZXQgYnVja2V0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjpoYXNoZXIgaGFzaGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjprZXlfZXF1YWwga2V5X2VxdWFsOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjprZXlfdHlwZSBrZXlfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlczo6ZXh0cmFjdG9yIGV4dHJhY3RvcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlczo6dmFsdWVfdHlwZSB2YWx1ZV90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjp0YWJsZSB0YWJsZV9pbXBsOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjpsaW5rX3BvaW50ZXIgbGlua19wb2ludGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjpwb2xpY3kgcG9saWN5OworCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpmdW5jdGlvbnM8CisgICAgICAgICAgICB0eXBlbmFtZSBUeXBlczo6aGFzaGVyLAorICAgICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OmtleV9lcXVhbD4gZnVuY3Rpb25zOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGZ1bmN0aW9uczo6c2V0X2hhc2hfZnVuY3Rpb25zIHNldF9oYXNoX2Z1bmN0aW9uczsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVzOjphbGxvY2F0b3IgYWxsb2NhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6CisgICAgICAgICAgICByZWJpbmRfd3JhcDxhbGxvY2F0b3IsIG5vZGU+Ojp0eXBlIG5vZGVfYWxsb2NhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6CisgICAgICAgICAgICByZWJpbmRfd3JhcDxhbGxvY2F0b3IsIGJ1Y2tldD46OnR5cGUgYnVja2V0X2FsbG9jYXRvcjsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmFsbG9jYXRvcl90cmFpdHM8bm9kZV9hbGxvY2F0b3I+CisgICAgICAgICAgICBub2RlX2FsbG9jYXRvcl90cmFpdHM7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjphbGxvY2F0b3JfdHJhaXRzPGJ1Y2tldF9hbGxvY2F0b3I+CisgICAgICAgICAgICBidWNrZXRfYWxsb2NhdG9yX3RyYWl0czsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBub2RlX2FsbG9jYXRvcl90cmFpdHM6OnBvaW50ZXIKKyAgICAgICAgICAgIG5vZGVfcG9pbnRlcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBub2RlX2FsbG9jYXRvcl90cmFpdHM6OmNvbnN0X3BvaW50ZXIKKyAgICAgICAgICAgIGNvbnN0X25vZGVfcG9pbnRlcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBidWNrZXRfYWxsb2NhdG9yX3RyYWl0czo6cG9pbnRlcgorICAgICAgICAgICAgYnVja2V0X3BvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpub2RlX2NvbnN0cnVjdG9yPG5vZGVfYWxsb2NhdG9yPgorICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvcjsKKworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6Oml0ZXJhdG9yX2RldGFpbDo6CisgICAgICAgICAgICBpdGVyYXRvcjxub2RlPiBpdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjppdGVyYXRvcl9kZXRhaWw6OgorICAgICAgICAgICAgY19pdGVyYXRvcjxub2RlLCBjb25zdF9ub2RlX3BvaW50ZXI+IGNfaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6aXRlcmF0b3JfZGV0YWlsOjoKKyAgICAgICAgICAgIGxfaXRlcmF0b3I8bm9kZSwgcG9saWN5PiBsX2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6Oml0ZXJhdG9yX2RldGFpbDo6CisgICAgICAgICAgICBjbF9pdGVyYXRvcjxub2RlLCBjb25zdF9ub2RlX3BvaW50ZXIsIHBvbGljeT4gY2xfaXRlcmF0b3I7CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIE1lbWJlcnMKKworICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNvbXByZXNzZWQ8YnVja2V0X2FsbG9jYXRvciwgbm9kZV9hbGxvY2F0b3I+CisgICAgICAgICAgICBhbGxvY2F0b3JzXzsKKyAgICAgICAgc3RkOjpzaXplX3QgYnVja2V0X2NvdW50XzsKKyAgICAgICAgc3RkOjpzaXplX3Qgc2l6ZV87CisgICAgICAgIGZsb2F0IG1sZl87CisgICAgICAgIHN0ZDo6c2l6ZV90IG1heF9sb2FkXzsKKyAgICAgICAgYnVja2V0X3BvaW50ZXIgYnVja2V0c187CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIERhdGEgYWNjZXNzCisKKyAgICAgICAgYnVja2V0X2FsbG9jYXRvciBjb25zdCYgYnVja2V0X2FsbG9jKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvcnNfLmZpcnN0KCk7CisgICAgICAgIH0KKworICAgICAgICBub2RlX2FsbG9jYXRvciBjb25zdCYgbm9kZV9hbGxvYygpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0b3JzXy5zZWNvbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1Y2tldF9hbGxvY2F0b3ImIGJ1Y2tldF9hbGxvYygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhbGxvY2F0b3JzXy5maXJzdCgpOworICAgICAgICB9CisKKyAgICAgICAgbm9kZV9hbGxvY2F0b3ImIG5vZGVfYWxsb2MoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWxsb2NhdG9yc18uc2Vjb25kKCk7CisgICAgICAgIH0KKworICAgICAgICBzdGQ6OnNpemVfdCBtYXhfYnVja2V0X2NvdW50KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgLy8gLTEgdG8gYWNjb3VudCBmb3IgdGhlIHN0YXJ0IGJ1Y2tldC4KKyAgICAgICAgICAgIHJldHVybiBwb2xpY3k6OnByZXZfYnVja2V0X2NvdW50KAorICAgICAgICAgICAgICAgIGJ1Y2tldF9hbGxvY2F0b3JfdHJhaXRzOjptYXhfc2l6ZShidWNrZXRfYWxsb2MoKSkgLSAxKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1Y2tldF9wb2ludGVyIGdldF9idWNrZXQoc3RkOjpzaXplX3QgYnVja2V0X2luZGV4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9BU1NFUlQoYnVja2V0c18pOworICAgICAgICAgICAgcmV0dXJuIGJ1Y2tldHNfICsgc3RhdGljX2Nhc3Q8c3RkOjpwdHJkaWZmX3Q+KGJ1Y2tldF9pbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBsaW5rX3BvaW50ZXIgZ2V0X3ByZXZpb3VzX3N0YXJ0KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGdldF9idWNrZXQoYnVja2V0X2NvdW50XyktPmZpcnN0X2Zyb21fc3RhcnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxpbmtfcG9pbnRlciBnZXRfcHJldmlvdXNfc3RhcnQoc3RkOjpzaXplX3QgYnVja2V0X2luZGV4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZ2V0X2J1Y2tldChidWNrZXRfaW5kZXgpLT5uZXh0XzsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHNpemVfID8gaXRlcmF0b3IoZ2V0X3ByZXZpb3VzX3N0YXJ0KCktPm5leHRfKSA6IGl0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBiZWdpbihzdGQ6OnNpemVfdCBidWNrZXRfaW5kZXgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghc2l6ZV8pIHJldHVybiBpdGVyYXRvcigpOworICAgICAgICAgICAgbGlua19wb2ludGVyIHByZXYgPSBnZXRfcHJldmlvdXNfc3RhcnQoYnVja2V0X2luZGV4KTsKKyAgICAgICAgICAgIHJldHVybiBwcmV2ID8gaXRlcmF0b3IocHJldi0+bmV4dF8pIDogaXRlcmF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RkOjpzaXplX3QgaGFzaF90b19idWNrZXQoc3RkOjpzaXplX3QgaGFzaCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBvbGljeTo6dG9fYnVja2V0KGJ1Y2tldF9jb3VudF8sIGhhc2gpOworICAgICAgICB9CisKKyAgICAgICAgZmxvYXQgbG9hZF9mYWN0b3IoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9BU1NFUlQoYnVja2V0X2NvdW50XyAhPSAwKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4oc2l6ZV8pCisgICAgICAgICAgICAgICAgLyBzdGF0aWNfY2FzdDxmbG9hdD4oYnVja2V0X2NvdW50Xyk7CisgICAgICAgIH0KKworICAgICAgICBzdGQ6OnNpemVfdCBidWNrZXRfc2l6ZShzdGQ6OnNpemVfdCBpbmRleCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaXRlcmF0b3IgaXQgPSBiZWdpbihpbmRleCk7CisgICAgICAgICAgICBpZiAoIWl0Lm5vZGVfKSByZXR1cm4gMDsKKworICAgICAgICAgICAgc3RkOjpzaXplX3QgY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUoaXQubm9kZV8gJiYgaGFzaF90b19idWNrZXQoaXQubm9kZV8tPmhhc2hfKSA9PSBpbmRleCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgICsraXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBjb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBMb2FkIG1ldGhvZHMKKworICAgICAgICBzdGQ6OnNpemVfdCBtYXhfc2l6ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgCisgICAgICAgICAgICAvLyBzaXplIDwgbWxmXyAqIGNvdW50CisgICAgICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkb3VibGVfdG9fc2l6ZShjZWlsKAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxkb3VibGU+KG1sZl8pICoKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZG91YmxlPihtYXhfYnVja2V0X2NvdW50KCkpCisgICAgICAgICAgICAgICAgKSkgLSAxOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCByZWNhbGN1bGF0ZV9tYXhfbG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgCisgICAgICAgICAgICAvLyBGcm9tIDYuMy4xLzEzOgorICAgICAgICAgICAgLy8gT25seSByZXNpemUgd2hlbiBzaXplID49IG1sZl8gKiBjb3VudAorICAgICAgICAgICAgbWF4X2xvYWRfID0gYnVja2V0c18gPyBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmRvdWJsZV90b19zaXplKGNlaWwoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4obWxmXykgKgorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxkb3VibGU+KGJ1Y2tldF9jb3VudF8pCisgICAgICAgICAgICAgICAgKSkgOiAwOworCisgICAgICAgIH0KKworICAgICAgICB2b2lkIG1heF9sb2FkX2ZhY3RvcihmbG9hdCB6KQorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9BU1NFUlQoeiA+IDApOworICAgICAgICAgICAgbWxmXyA9IChzdGQ6Om1heCkoeiwgbWluaW11bV9tYXhfbG9hZF9mYWN0b3IpOworICAgICAgICAgICAgcmVjYWxjdWxhdGVfbWF4X2xvYWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ZDo6c2l6ZV90IG1pbl9idWNrZXRzX2Zvcl9zaXplKHN0ZDo6c2l6ZV90IHNpemUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVChtbGZfID49IG1pbmltdW1fbWF4X2xvYWRfZmFjdG9yKTsKKyAgICAKKyAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisgICAgCisgICAgICAgICAgICAvLyBGcm9tIDYuMy4xLzEzOgorICAgICAgICAgICAgLy8gc2l6ZSA8IG1sZl8gKiBjb3VudAorICAgICAgICAgICAgLy8gPT4gY291bnQgPiBzaXplIC8gbWxmXworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE9yIGZyb20gcmVoYXNoIHBvc3QtY29uZGl0aW9uOgorICAgICAgICAgICAgLy8gY291bnQgPiBzaXplIC8gbWxmXworCisgICAgICAgICAgICByZXR1cm4gcG9saWN5OjpuZXdfYnVja2V0X2NvdW50KAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZG91YmxlX3RvX3NpemUoZmxvb3IoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oc2l6ZSkgLworICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxkb3VibGU+KG1sZl8pKSkgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBDb25zdHJ1Y3RvcnMKKworICAgICAgICB0YWJsZShzdGQ6OnNpemVfdCBudW1fYnVja2V0cywKKyAgICAgICAgICAgICAgICBoYXNoZXIgY29uc3QmIGhmLAorICAgICAgICAgICAgICAgIGtleV9lcXVhbCBjb25zdCYgZXEsCisgICAgICAgICAgICAgICAgbm9kZV9hbGxvY2F0b3IgY29uc3QmIGEpIDoKKyAgICAgICAgICAgIGZ1bmN0aW9ucyhoZiwgZXEpLAorICAgICAgICAgICAgYWxsb2NhdG9yc18oYSxhKSwKKyAgICAgICAgICAgIGJ1Y2tldF9jb3VudF8ocG9saWN5OjpuZXdfYnVja2V0X2NvdW50KG51bV9idWNrZXRzKSksCisgICAgICAgICAgICBzaXplXygwKSwKKyAgICAgICAgICAgIG1sZl8oMS4wZiksCisgICAgICAgICAgICBtYXhfbG9hZF8oMCksCisgICAgICAgICAgICBidWNrZXRzXygpCisgICAgICAgIHt9CisKKyAgICAgICAgdGFibGUodGFibGUgY29uc3QmIHgsIG5vZGVfYWxsb2NhdG9yIGNvbnN0JiBhKSA6CisgICAgICAgICAgICBmdW5jdGlvbnMoeCksCisgICAgICAgICAgICBhbGxvY2F0b3JzXyhhLGEpLAorICAgICAgICAgICAgYnVja2V0X2NvdW50Xyh4Lm1pbl9idWNrZXRzX2Zvcl9zaXplKHguc2l6ZV8pKSwKKyAgICAgICAgICAgIHNpemVfKDApLAorICAgICAgICAgICAgbWxmXyh4Lm1sZl8pLAorICAgICAgICAgICAgbWF4X2xvYWRfKDApLAorICAgICAgICAgICAgYnVja2V0c18oKQorICAgICAgICB7fQorCisgICAgICAgIHRhYmxlKHRhYmxlJiB4LCBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1vdmVfdGFnIG0pIDoKKyAgICAgICAgICAgIGZ1bmN0aW9ucyh4LCBtKSwKKyAgICAgICAgICAgIGFsbG9jYXRvcnNfKHguYWxsb2NhdG9yc18sIG0pLAorICAgICAgICAgICAgYnVja2V0X2NvdW50Xyh4LmJ1Y2tldF9jb3VudF8pLAorICAgICAgICAgICAgc2l6ZV8oeC5zaXplXyksCisgICAgICAgICAgICBtbGZfKHgubWxmXyksCisgICAgICAgICAgICBtYXhfbG9hZF8oeC5tYXhfbG9hZF8pLAorICAgICAgICAgICAgYnVja2V0c18oeC5idWNrZXRzXykKKyAgICAgICAgeworICAgICAgICAgICAgeC5idWNrZXRzXyA9IGJ1Y2tldF9wb2ludGVyKCk7CisgICAgICAgICAgICB4LnNpemVfID0gMDsKKyAgICAgICAgICAgIHgubWF4X2xvYWRfID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHRhYmxlKHRhYmxlJiB4LCBub2RlX2FsbG9jYXRvciBjb25zdCYgYSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1vdmVfdGFnIG0pIDoKKyAgICAgICAgICAgIGZ1bmN0aW9ucyh4LCBtKSwKKyAgICAgICAgICAgIGFsbG9jYXRvcnNfKGEsIGEpLAorICAgICAgICAgICAgYnVja2V0X2NvdW50Xyh4LmJ1Y2tldF9jb3VudF8pLAorICAgICAgICAgICAgc2l6ZV8oMCksCisgICAgICAgICAgICBtbGZfKHgubWxmXyksCisgICAgICAgICAgICBtYXhfbG9hZF8oeC5tYXhfbG9hZF8pLAorICAgICAgICAgICAgYnVja2V0c18oKQorICAgICAgICB7fQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBJbml0aWFsaXNhdGlvbi4KKworICAgICAgICB2b2lkIGluaXQodGFibGUgY29uc3QmIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh4LnNpemVfKSB7CisgICAgICAgICAgICAgICAgY3JlYXRlX2J1Y2tldHMoYnVja2V0X2NvdW50Xyk7CisgICAgICAgICAgICAgICAgY29weV9ub2Rlczxub2RlX2FsbG9jYXRvcj4gY29weShub2RlX2FsbG9jKCkpOworICAgICAgICAgICAgICAgIHRhYmxlX2ltcGw6OmZpbGxfYnVja2V0cyh4LmJlZ2luKCksICp0aGlzLCBjb3B5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgbW92ZV9pbml0KHRhYmxlJiB4KQorICAgICAgICB7CisgICAgICAgICAgICBpZihub2RlX2FsbG9jKCkgPT0geC5ub2RlX2FsbG9jKCkpIHsKKyAgICAgICAgICAgICAgICBtb3ZlX2J1Y2tldHNfZnJvbSh4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYoeC5zaXplXykgeworICAgICAgICAgICAgICAgIC8vIFRPRE86IENvdWxkIHBpY2sgbmV3IGJ1Y2tldCBzaXplPworICAgICAgICAgICAgICAgIGNyZWF0ZV9idWNrZXRzKGJ1Y2tldF9jb3VudF8pOworCisgICAgICAgICAgICAgICAgbW92ZV9ub2Rlczxub2RlX2FsbG9jYXRvcj4gbW92ZShub2RlX2FsbG9jKCkpOworICAgICAgICAgICAgICAgIG5vZGVfaG9sZGVyPG5vZGVfYWxsb2NhdG9yPiBub2Rlcyh4KTsKKyAgICAgICAgICAgICAgICB0YWJsZV9pbXBsOjpmaWxsX2J1Y2tldHMobm9kZXMuYmVnaW4oKSwgKnRoaXMsIG1vdmUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIENyZWF0ZSBidWNrZXRzCisKKyAgICAgICAgdm9pZCBjcmVhdGVfYnVja2V0cyhzdGQ6OnNpemVfdCBuZXdfY291bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YXJyYXlfY29uc3RydWN0b3I8YnVja2V0X2FsbG9jYXRvcj4KKyAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcihidWNrZXRfYWxsb2MoKSk7CisgICAgCisgICAgICAgICAgICAvLyBDcmVhdGVzIGFuIGV4dHJhIGJ1Y2tldCB0byBhY3QgYXMgdGhlIHN0YXJ0IG5vZGUuCisgICAgICAgICAgICBjb25zdHJ1Y3Rvci5jb25zdHJ1Y3QoYnVja2V0KCksIG5ld19jb3VudCArIDEpOworCisgICAgICAgICAgICBpZiAoYnVja2V0c18pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgbm9kZXMgdG8gdGhlIG5ldyBidWNrZXRzLCBpbmNsdWRpbmcgdGhlIGR1bW15CisgICAgICAgICAgICAgICAgLy8gbm9kZSBpZiB0aGVyZSBpcyBvbmUuCisgICAgICAgICAgICAgICAgKGNvbnN0cnVjdG9yLmdldCgpICsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c3RkOjpwdHJkaWZmX3Q+KG5ld19jb3VudCkpLT5uZXh0XyA9CisgICAgICAgICAgICAgICAgICAgICAgICAoYnVja2V0c18gKyBzdGF0aWNfY2FzdDxzdGQ6OnB0cmRpZmZfdD4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVja2V0X2NvdW50XykpLT5uZXh0XzsKKyAgICAgICAgICAgICAgICBkZXN0cm95X2J1Y2tldHMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGJ1Y2tldDo6ZXh0cmFfbm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBub2RlX2NvbnN0cnVjdG9yIGEobm9kZV9hbGxvYygpKTsKKyAgICAgICAgICAgICAgICBhLmNvbnN0cnVjdCgpOworCisgICAgICAgICAgICAgICAgKGNvbnN0cnVjdG9yLmdldCgpICsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c3RkOjpwdHJkaWZmX3Q+KG5ld19jb3VudCkpLT5uZXh0XyA9CisgICAgICAgICAgICAgICAgICAgICAgICBhLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVja2V0X2NvdW50XyA9IG5ld19jb3VudDsKKyAgICAgICAgICAgIGJ1Y2tldHNfID0gY29uc3RydWN0b3IucmVsZWFzZSgpOworICAgICAgICAgICAgcmVjYWxjdWxhdGVfbWF4X2xvYWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBTd2FwIGFuZCBNb3ZlCisKKyAgICAgICAgdm9pZCBzd2FwX2FsbG9jYXRvcnModGFibGUmIG90aGVyLCBmYWxzZV90eXBlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBBY2NvcmRpbmcgdG8gMjMuMi4xLjgsIGlmIHByb3BhZ2F0ZV9vbl9jb250YWluZXJfc3dhcCBpcworICAgICAgICAgICAgLy8gZmFsc2UgdGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgdW5sZXNzIHRoZSBhbGxvY2F0b3JzCisgICAgICAgICAgICAvLyBhcmUgZXF1YWwuCisgICAgICAgICAgICBCT09TVF9BU1NFUlQobm9kZV9hbGxvYygpID09IG90aGVyLm5vZGVfYWxsb2MoKSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHN3YXBfYWxsb2NhdG9ycyh0YWJsZSYgb3RoZXIsIHRydWVfdHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgYWxsb2NhdG9yc18uc3dhcChvdGhlci5hbGxvY2F0b3JzXyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBPbmx5IHN3YXBzIHRoZSBhbGxvY2F0b3JzIGlmIHByb3BhZ2F0ZV9vbl9jb250YWluZXJfc3dhcAorICAgICAgICB2b2lkIHN3YXAodGFibGUmIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldF9oYXNoX2Z1bmN0aW9ucyBvcDEoKnRoaXMsIHgpOworICAgICAgICAgICAgc2V0X2hhc2hfZnVuY3Rpb25zIG9wMih4LCAqdGhpcyk7CisKKyAgICAgICAgICAgIC8vIEkgdGhpbmsgc3dhcCBjYW4gdGhyb3cgaWYgUHJvcGFnYXRlOjp2YWx1ZSwKKyAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBhbGxvY2F0b3JzJyBzd2FwIGNhbiB0aHJvdy4gTm90IHN1cmUgdGhvdWdoLgorICAgICAgICAgICAgc3dhcF9hbGxvY2F0b3JzKHgsCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLAorICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfdHJhaXRzPG5vZGVfYWxsb2NhdG9yPjo6CisgICAgICAgICAgICAgICAgICAgIHByb3BhZ2F0ZV9vbl9jb250YWluZXJfc3dhcDo6dmFsdWU+KCkpOworCisgICAgICAgICAgICBuZG5ib29zdDo6c3dhcChidWNrZXRzXywgeC5idWNrZXRzXyk7CisgICAgICAgICAgICBuZG5ib29zdDo6c3dhcChidWNrZXRfY291bnRfLCB4LmJ1Y2tldF9jb3VudF8pOworICAgICAgICAgICAgbmRuYm9vc3Q6OnN3YXAoc2l6ZV8sIHguc2l6ZV8pOworICAgICAgICAgICAgc3RkOjpzd2FwKG1sZl8sIHgubWxmXyk7CisgICAgICAgICAgICBzdGQ6OnN3YXAobWF4X2xvYWRfLCB4Lm1heF9sb2FkXyk7CisgICAgICAgICAgICBvcDEuY29tbWl0KCk7CisgICAgICAgICAgICBvcDIuY29tbWl0KCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIG1vdmVfYnVja2V0c19mcm9tKHRhYmxlJiBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKG5vZGVfYWxsb2MoKSA9PSBvdGhlci5ub2RlX2FsbG9jKCkpOworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKCFidWNrZXRzXyk7CisgICAgICAgICAgICBidWNrZXRzXyA9IG90aGVyLmJ1Y2tldHNfOworICAgICAgICAgICAgYnVja2V0X2NvdW50XyA9IG90aGVyLmJ1Y2tldF9jb3VudF87CisgICAgICAgICAgICBzaXplXyA9IG90aGVyLnNpemVfOworICAgICAgICAgICAgb3RoZXIuYnVja2V0c18gPSBidWNrZXRfcG9pbnRlcigpOworICAgICAgICAgICAgb3RoZXIuc2l6ZV8gPSAwOworICAgICAgICAgICAgb3RoZXIubWF4X2xvYWRfID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBEZWxldGUvZGVzdHJ1Y3QKKworICAgICAgICB+dGFibGUoKQorICAgICAgICB7CisgICAgICAgICAgICBkZWxldGVfYnVja2V0cygpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWxldGVfbm9kZShsaW5rX3BvaW50ZXIgcHJldikKKyAgICAgICAgeworICAgICAgICAgICAgbm9kZV9wb2ludGVyIG4gPSBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHByZXYtPm5leHRfKTsKKyAgICAgICAgICAgIHByZXYtPm5leHRfID0gbi0+bmV4dF87CisKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVzdHJveV92YWx1ZV9pbXBsKG5vZGVfYWxsb2MoKSwKKyAgICAgICAgICAgICAgICBuLT52YWx1ZV9wdHIoKSk7CisgICAgICAgICAgICBub2RlX2FsbG9jYXRvcl90cmFpdHM6OmRlc3Ryb3kobm9kZV9hbGxvYygpLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6YWRkcmVzc29mKCpuKSk7CisgICAgICAgICAgICBub2RlX2FsbG9jYXRvcl90cmFpdHM6OmRlYWxsb2NhdGUobm9kZV9hbGxvYygpLCBuLCAxKTsKKyAgICAgICAgICAgIC0tc2l6ZV87CisgICAgICAgIH0KKworICAgICAgICBzdGQ6OnNpemVfdCBkZWxldGVfbm9kZXMobGlua19wb2ludGVyIHByZXYsIGxpbmtfcG9pbnRlciBlbmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVChwcmV2LT5uZXh0XyAhPSBlbmQpOworCisgICAgICAgICAgICBzdGQ6OnNpemVfdCBjb3VudCA9IDA7CisKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBkZWxldGVfbm9kZShwcmV2KTsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgfSB3aGlsZSAocHJldi0+bmV4dF8gIT0gZW5kKTsKKworICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWxldGVfYnVja2V0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKGJ1Y2tldHNfKSB7CisgICAgICAgICAgICAgICAgaWYgKHNpemVfKSBkZWxldGVfbm9kZXMoZ2V0X3ByZXZpb3VzX3N0YXJ0KCksIGxpbmtfcG9pbnRlcigpKTsKKworICAgICAgICAgICAgICAgIGlmIChidWNrZXQ6OmV4dHJhX25vZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZV9wb2ludGVyIG4gPSBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9idWNrZXQoYnVja2V0X2NvdW50XyktPm5leHRfKTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZV9hbGxvY2F0b3JfdHJhaXRzOjpkZXN0cm95KG5vZGVfYWxsb2MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6YWRkcmVzc29mKCpuKSk7CisgICAgICAgICAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6ZGVhbGxvY2F0ZShub2RlX2FsbG9jKCksIG4sIDEpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGRlc3Ryb3lfYnVja2V0cygpOworICAgICAgICAgICAgICAgIGJ1Y2tldHNfID0gYnVja2V0X3BvaW50ZXIoKTsKKyAgICAgICAgICAgICAgICBtYXhfbG9hZF8gPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBCT09TVF9BU1NFUlQoIXNpemVfKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXNpemVfKSByZXR1cm47CisKKyAgICAgICAgICAgIGRlbGV0ZV9ub2RlcyhnZXRfcHJldmlvdXNfc3RhcnQoKSwgbGlua19wb2ludGVyKCkpOworICAgICAgICAgICAgY2xlYXJfYnVja2V0cygpOworCisgICAgICAgICAgICBCT09TVF9BU1NFUlQoIXNpemVfKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgY2xlYXJfYnVja2V0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ1Y2tldF9wb2ludGVyIGVuZCA9IGdldF9idWNrZXQoYnVja2V0X2NvdW50Xyk7CisgICAgICAgICAgICBmb3IoYnVja2V0X3BvaW50ZXIgaXQgPSBidWNrZXRzXzsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGl0LT5uZXh0XyA9IG5vZGVfcG9pbnRlcigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZXN0cm95X2J1Y2tldHMoKQorICAgICAgICB7CisgICAgICAgICAgICBidWNrZXRfcG9pbnRlciBlbmQgPSBnZXRfYnVja2V0KGJ1Y2tldF9jb3VudF8gKyAxKTsKKyAgICAgICAgICAgIGZvcihidWNrZXRfcG9pbnRlciBpdCA9IGJ1Y2tldHNfOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYnVja2V0X2FsbG9jYXRvcl90cmFpdHM6OmRlc3Ryb3koYnVja2V0X2FsbG9jKCksCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0OjphZGRyZXNzb2YoKml0KSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1Y2tldF9hbGxvY2F0b3JfdHJhaXRzOjpkZWFsbG9jYXRlKGJ1Y2tldF9hbGxvYygpLAorICAgICAgICAgICAgICAgIGJ1Y2tldHNfLCBidWNrZXRfY291bnRfICsgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gRml4IGJ1Y2tldHMgYWZ0ZXIgZGVsZXRlCisgICAgICAgIC8vCisKKyAgICAgICAgc3RkOjpzaXplX3QgZml4X2J1Y2tldChzdGQ6OnNpemVfdCBidWNrZXRfaW5kZXgsIGxpbmtfcG9pbnRlciBwcmV2KQorICAgICAgICB7CisgICAgICAgICAgICBsaW5rX3BvaW50ZXIgZW5kID0gcHJldi0+bmV4dF87CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBidWNrZXRfaW5kZXgyID0gYnVja2V0X2luZGV4OworCisgICAgICAgICAgICBpZiAoZW5kKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJ1Y2tldF9pbmRleDIgPSBoYXNoX3RvX2J1Y2tldCgKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihlbmQpLT5oYXNoXyk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiBiZWdpbiBhbmQgZW5kIGFyZSBpbiB0aGUgc2FtZSBidWNrZXQsIHRoZW4KKyAgICAgICAgICAgICAgICAvLyB0aGVyZSdzIG5vdGhpbmcgdG8gZG8uCisgICAgICAgICAgICAgICAgaWYgKGJ1Y2tldF9pbmRleCA9PSBidWNrZXRfaW5kZXgyKSByZXR1cm4gYnVja2V0X2luZGV4MjsKKworICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgYnVja2V0IGNvbnRhaW5pbmcgZW5kLgorICAgICAgICAgICAgICAgIGdldF9idWNrZXQoYnVja2V0X2luZGV4MiktPm5leHRfID0gcHJldjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBidWNrZXQgaXMgbm93IGVtcHR5LgorICAgICAgICAgICAgYnVja2V0X3BvaW50ZXIgdGhpc19idWNrZXQgPSBnZXRfYnVja2V0KGJ1Y2tldF9pbmRleCk7CisgICAgICAgICAgICBpZiAodGhpc19idWNrZXQtPm5leHRfID09IHByZXYpCisgICAgICAgICAgICAgICAgdGhpc19idWNrZXQtPm5leHRfID0gbGlua19wb2ludGVyKCk7CisKKyAgICAgICAgICAgIHJldHVybiBidWNrZXRfaW5kZXgyOworICAgICAgICB9CisKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAgIC8vIEFzc2lnbm1lbnQKKworICAgICAgICB2b2lkIGFzc2lnbih0YWJsZSBjb25zdCYgeCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMgIT0gbmRuYm9vc3Q6OmFkZHJlc3NvZih4KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBhc3NpZ24oeCwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX3RyYWl0czxub2RlX2FsbG9jYXRvcj46OgorICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlX29uX2NvbnRhaW5lcl9jb3B5X2Fzc2lnbm1lbnQ6OnZhbHVlPigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgYXNzaWduKHRhYmxlIGNvbnN0JiB4LCBmYWxzZV90eXBlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBTdHJvbmcgZXhjZXB0aW9uIHNhZmV0eS4KKyAgICAgICAgICAgIHNldF9oYXNoX2Z1bmN0aW9ucyBuZXdfZnVuY190aGlzKCp0aGlzLCB4KTsKKyAgICAgICAgICAgIG5ld19mdW5jX3RoaXMuY29tbWl0KCk7CisgICAgICAgICAgICBtbGZfID0geC5tbGZfOworICAgICAgICAgICAgcmVjYWxjdWxhdGVfbWF4X2xvYWQoKTsKKworICAgICAgICAgICAgaWYgKCFzaXplXyAmJiAheC5zaXplXykgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoeC5zaXplXyA+PSBtYXhfbG9hZF8pIHsKKyAgICAgICAgICAgICAgICBjcmVhdGVfYnVja2V0cyhtaW5fYnVja2V0c19mb3Jfc2l6ZSh4LnNpemVfKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjbGVhcl9idWNrZXRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGFzc2lnbl9ub2RlcyB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNvbnRhaW5lcidzIGVsZW1lbnRzLAorICAgICAgICAgICAgLy8gYXNzaWduaW5nIHRvIHRoZW0gaWYgcG9zc2libGUsIGFuZCBkZWxldGluZyBhbnkgdGhhdCBhcmUKKyAgICAgICAgICAgIC8vIGxlZnQgb3Zlci4KKyAgICAgICAgICAgIGFzc2lnbl9ub2Rlczx0YWJsZT4gYXNzaWduKCp0aGlzKTsKKyAgICAgICAgICAgIHRhYmxlX2ltcGw6OmZpbGxfYnVja2V0cyh4LmJlZ2luKCksICp0aGlzLCBhc3NpZ24pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBhc3NpZ24odGFibGUgY29uc3QmIHgsIHRydWVfdHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5vZGVfYWxsb2MoKSA9PSB4Lm5vZGVfYWxsb2MoKSkgeworICAgICAgICAgICAgICAgIGFsbG9jYXRvcnNfLmFzc2lnbih4LmFsbG9jYXRvcnNfKTsKKyAgICAgICAgICAgICAgICBhc3NpZ24oeCwgZmFsc2VfdHlwZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNldF9oYXNoX2Z1bmN0aW9ucyBuZXdfZnVuY190aGlzKCp0aGlzLCB4KTsKKworICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBldmVyeXRoaW5nIHdpdGggY3VycmVudCBhbGxvY2F0b3JzIGJlZm9yZSBhc3NpZ25pbmcKKyAgICAgICAgICAgICAgICAvLyB0aGUgbmV3IG9uZXMuCisgICAgICAgICAgICAgICAgZGVsZXRlX2J1Y2tldHMoKTsKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3JzXy5hc3NpZ24oeC5hbGxvY2F0b3JzXyk7CisKKyAgICAgICAgICAgICAgICAvLyBDb3B5IG92ZXIgb3RoZXIgZGF0YSwgYWxsIG5vIHRocm93LgorICAgICAgICAgICAgICAgIG5ld19mdW5jX3RoaXMuY29tbWl0KCk7CisgICAgICAgICAgICAgICAgbWxmXyA9IHgubWxmXzsKKyAgICAgICAgICAgICAgICBidWNrZXRfY291bnRfID0gbWluX2J1Y2tldHNfZm9yX3NpemUoeC5zaXplXyk7CisgICAgICAgICAgICAgICAgbWF4X2xvYWRfID0gMDsKKworICAgICAgICAgICAgICAgIC8vIEZpbmFsbHkgY29weSB0aGUgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgaWYgKHguc2l6ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlX2J1Y2tldHMoYnVja2V0X2NvdW50Xyk7CisgICAgICAgICAgICAgICAgICAgIGNvcHlfbm9kZXM8bm9kZV9hbGxvY2F0b3I+IGNvcHkobm9kZV9hbGxvYygpKTsKKyAgICAgICAgICAgICAgICAgICAgdGFibGVfaW1wbDo6ZmlsbF9idWNrZXRzKHguYmVnaW4oKSwgKnRoaXMsIGNvcHkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgbW92ZV9hc3NpZ24odGFibGUmIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzICE9IG5kbmJvb3N0OjphZGRyZXNzb2YoeCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbW92ZV9hc3NpZ24oeCwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbnRlZ3JhbF9jb25zdGFudDxib29sLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX3RyYWl0czxub2RlX2FsbG9jYXRvcj46OgorICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlX29uX2NvbnRhaW5lcl9tb3ZlX2Fzc2lnbm1lbnQ6OnZhbHVlPigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgbW92ZV9hc3NpZ24odGFibGUmIHgsIHRydWVfdHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgZGVsZXRlX2J1Y2tldHMoKTsKKyAgICAgICAgICAgIGFsbG9jYXRvcnNfLm1vdmVfYXNzaWduKHguYWxsb2NhdG9yc18pOworICAgICAgICAgICAgbW92ZV9hc3NpZ25fbm9fYWxsb2MoeCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIG1vdmVfYXNzaWduKHRhYmxlJiB4LCBmYWxzZV90eXBlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobm9kZV9hbGxvYygpID09IHgubm9kZV9hbGxvYygpKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlX2J1Y2tldHMoKTsKKyAgICAgICAgICAgICAgICBtb3ZlX2Fzc2lnbl9ub19hbGxvYyh4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNldF9oYXNoX2Z1bmN0aW9ucyBuZXdfZnVuY190aGlzKCp0aGlzLCB4KTsKKyAgICAgICAgICAgICAgICBuZXdfZnVuY190aGlzLmNvbW1pdCgpOworICAgICAgICAgICAgICAgIG1sZl8gPSB4Lm1sZl87CisgICAgICAgICAgICAgICAgcmVjYWxjdWxhdGVfbWF4X2xvYWQoKTsKKworICAgICAgICAgICAgICAgIGlmICghc2l6ZV8gJiYgIXguc2l6ZV8pIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmICh4LnNpemVfID49IG1heF9sb2FkXykgeworICAgICAgICAgICAgICAgICAgICBjcmVhdGVfYnVja2V0cyhtaW5fYnVja2V0c19mb3Jfc2l6ZSh4LnNpemVfKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjbGVhcl9idWNrZXRzKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gbW92ZV9hc3NpZ25fbm9kZXMgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjb250YWluZXIncworICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLCBhc3NpZ25pbmcgdG8gdGhlbSBpZiBwb3NzaWJsZSwgYW5kIGRlbGV0aW5nCisgICAgICAgICAgICAgICAgLy8gYW55IHRoYXQgYXJlIGxlZnQgb3Zlci4KKyAgICAgICAgICAgICAgICBtb3ZlX2Fzc2lnbl9ub2Rlczx0YWJsZT4gYXNzaWduKCp0aGlzKTsKKyAgICAgICAgICAgICAgICBub2RlX2hvbGRlcjxub2RlX2FsbG9jYXRvcj4gbm9kZXMoeCk7CisgICAgICAgICAgICAgICAgdGFibGVfaW1wbDo6ZmlsbF9idWNrZXRzKG5vZGVzLmJlZ2luKCksICp0aGlzLCBhc3NpZ24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIG1vdmVfYXNzaWduX25vX2FsbG9jKHRhYmxlJiB4KQorICAgICAgICB7CisgICAgICAgICAgICBzZXRfaGFzaF9mdW5jdGlvbnMgbmV3X2Z1bmNfdGhpcygqdGhpcywgeCk7CisgICAgICAgICAgICAvLyBObyB0aHJvdyBmcm9tIGhlcmUuCisgICAgICAgICAgICBtbGZfID0geC5tbGZfOworICAgICAgICAgICAgbWF4X2xvYWRfID0geC5tYXhfbG9hZF87CisgICAgICAgICAgICBtb3ZlX2J1Y2tldHNfZnJvbSh4KTsKKyAgICAgICAgICAgIG5ld19mdW5jX3RoaXMuY29tbWl0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBY2Nlc3NvcnMKKworICAgICAgICBrZXlfdHlwZSBjb25zdCYgZ2V0X2tleSh2YWx1ZV90eXBlIGNvbnN0JiB4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZXh0cmFjdG9yOjpleHRyYWN0KHgpOworICAgICAgICB9CisKKyAgICAgICAgc3RkOjpzaXplX3QgaGFzaChrZXlfdHlwZSBjb25zdCYgaykgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBvbGljeTo6YXBwbHlfaGFzaCh0aGlzLT5oYXNoX2Z1bmN0aW9uKCksIGspOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCBOb2RlCisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgSGFzaCwgdHlwZW5hbWUgUHJlZD4KKyAgICAgICAgaXRlcmF0b3IgZ2VuZXJpY19maW5kX25vZGUoCisgICAgICAgICAgICAgICAgS2V5IGNvbnN0JiBrLAorICAgICAgICAgICAgICAgIEhhc2ggY29uc3QmIGhmLAorICAgICAgICAgICAgICAgIFByZWQgY29uc3QmIGVxKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dGFibGVfaW1wbCBjb25zdCo+KHRoaXMpLT4KKyAgICAgICAgICAgICAgICBmaW5kX25vZGVfaW1wbChwb2xpY3k6OmFwcGx5X2hhc2goaGYsIGspLCBrLCBlcSk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBmaW5kX25vZGUoCisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3Qga2V5X2hhc2gsCisgICAgICAgICAgICAgICAga2V5X3R5cGUgY29uc3QmIGspIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx0YWJsZV9pbXBsIGNvbnN0Kj4odGhpcyktPgorICAgICAgICAgICAgICAgIGZpbmRfbm9kZV9pbXBsKGtleV9oYXNoLCBrLCB0aGlzLT5rZXlfZXEoKSk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBmaW5kX25vZGUoa2V5X3R5cGUgY29uc3QmIGspIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx0YWJsZV9pbXBsIGNvbnN0Kj4odGhpcyktPgorICAgICAgICAgICAgICAgIGZpbmRfbm9kZV9pbXBsKGhhc2goayksIGssIHRoaXMtPmtleV9lcSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIGZpbmRfbWF0Y2hpbmdfbm9kZShpdGVyYXRvciBuKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICAvLyBUT0RPOiBEb2VzIHRoaXMgYXBwbHkgdG8gQysrMTE/CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gRm9yIHNvbWUgc3R1cGlkIHJlYXNvbiwgSSBkZWNpZGVkIHRvIHN1cHBvcnQgZXF1YWxpdHkgY29tcGFyaXNvbgorICAgICAgICAgICAgLy8gd2hlbiBkaWZmZXJlbnQgaGFzaCBmdW5jdGlvbnMgYXJlIHVzZWQuIFNvIEkgY2FuJ3QgdXNlIHRoZSBoYXNoCisgICAgICAgICAgICAvLyB2YWx1ZSBmcm9tIHRoZSBub2RlIGhlcmUuCisgICAgCisgICAgICAgICAgICByZXR1cm4gZmluZF9ub2RlKGdldF9rZXkoKm4pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlc2VydmUgYW5kIHJlaGFzaAorCisgICAgICAgIHZvaWQgcmVzZXJ2ZV9mb3JfaW5zZXJ0KHN0ZDo6c2l6ZV90KTsKKyAgICAgICAgdm9pZCByZWhhc2goc3RkOjpzaXplX3QpOworICAgICAgICB2b2lkIHJlc2VydmUoc3RkOjpzaXplX3QpOworICAgIH07CisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gUmVzZXJ2ZSAmIFJlaGFzaAorCisgICAgLy8gYmFzaWMgZXhjZXB0aW9uIHNhZmV0eQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlcz4KKyAgICBpbmxpbmUgdm9pZCB0YWJsZTxUeXBlcz46OnJlc2VydmVfZm9yX2luc2VydChzdGQ6OnNpemVfdCBzaXplKQorICAgIHsKKyAgICAgICAgaWYgKCFidWNrZXRzXykgeworICAgICAgICAgICAgY3JlYXRlX2J1Y2tldHMoKHN0ZDo6bWF4KShidWNrZXRfY291bnRfLAorICAgICAgICAgICAgICAgIG1pbl9idWNrZXRzX2Zvcl9zaXplKHNpemUpKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCB0aGlzIHNob3VsZCBiZSAnc2l6ZSA+PSBtYXhfbG9hZF8nLAorICAgICAgICAvLyBidXQgSSB0aGluayB0aGlzIGlzIGJldHRlciwgZGVmZWN0IHJlcG9ydCBmaWxlZC4KKyAgICAgICAgZWxzZSBpZihzaXplID4gbWF4X2xvYWRfKSB7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBudW1fYnVja2V0cworICAgICAgICAgICAgICAgID0gbWluX2J1Y2tldHNfZm9yX3NpemUoKHN0ZDo6bWF4KShzaXplLAorICAgICAgICAgICAgICAgICAgICBzaXplXyArIChzaXplXyA+PiAxKSkpOworCisgICAgICAgICAgICBpZiAobnVtX2J1Y2tldHMgIT0gYnVja2V0X2NvdW50XykKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx0YWJsZV9pbXBsKj4odGhpcyktPnJlaGFzaF9pbXBsKG51bV9idWNrZXRzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGlmIGhhc2ggZnVuY3Rpb24gdGhyb3dzLCBiYXNpYyBleGNlcHRpb24gc2FmZXR5CisgICAgLy8gc3Ryb25nIG90aGVyd2lzZS4KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlcz4KKyAgICBpbmxpbmUgdm9pZCB0YWJsZTxUeXBlcz46OnJlaGFzaChzdGQ6OnNpemVfdCBtaW5fYnVja2V0cykKKyAgICB7CisgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CisKKyAgICAgICAgaWYoIXNpemVfKSB7CisgICAgICAgICAgICBkZWxldGVfYnVja2V0cygpOworICAgICAgICAgICAgYnVja2V0X2NvdW50XyA9IHBvbGljeTo6bmV3X2J1Y2tldF9jb3VudChtaW5fYnVja2V0cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtaW5fYnVja2V0cyA9IHBvbGljeTo6bmV3X2J1Y2tldF9jb3VudCgoc3RkOjptYXgpKG1pbl9idWNrZXRzLAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZG91YmxlX3RvX3NpemUoZmxvb3IoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oc2l6ZV8pIC8KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZG91YmxlPihtbGZfKSkpICsgMSkpOworCisgICAgICAgICAgICBpZihtaW5fYnVja2V0cyAhPSBidWNrZXRfY291bnRfKQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHRhYmxlX2ltcGwqPih0aGlzKS0+cmVoYXNoX2ltcGwobWluX2J1Y2tldHMpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVzPgorICAgIGlubGluZSB2b2lkIHRhYmxlPFR5cGVzPjo6cmVzZXJ2ZShzdGQ6OnNpemVfdCBudW1fZWxlbWVudHMpCisgICAgeworICAgICAgICByZWhhc2goc3RhdGljX2Nhc3Q8c3RkOjpzaXplX3Q+KAorICAgICAgICAgICAgc3RkOjpjZWlsKHN0YXRpY19jYXN0PGRvdWJsZT4obnVtX2VsZW1lbnRzKSAvIG1sZl8pKSk7CisgICAgfQorfX19CisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3VuaXF1ZS5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdW5pcXVlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGZjMDRkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3VuaXF1ZS5ocHAKQEAgLTAsMCArMSw2MjIgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgSmVyZW15IEIuIE1haXRpbi1TaGVwYXJkLgorLy8gQ29weXJpZ2h0IChDKSAyMDA1LTIwMTEgRGFuaWVsIEphbWVzCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9VTk9SREVSRURfREVUQUlMX1VOSVFVRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9VTklRVUVfSFBQX0lOQ0xVREVECisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC90YWJsZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9leHRyYWN0X2tleS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxzdGRleGNlcHQ+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSB1bm9yZGVyZWQgeyBuYW1lc3BhY2UgZGV0YWlsIHsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBUPiBzdHJ1Y3QgdW5pcXVlX25vZGU7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBwdHJfbm9kZTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZXM+IHN0cnVjdCB0YWJsZV9pbXBsOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IHVuaXF1ZV9ub2RlIDoKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjp2YWx1ZV9iYXNlPFQ+CisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpyZWJpbmRfd3JhcDwKKyAgICAgICAgICAgIEEsIHVuaXF1ZV9ub2RlPEEsIFQ+ID46OnR5cGU6OnBvaW50ZXIgbm9kZV9wb2ludGVyOworICAgICAgICB0eXBlZGVmIG5vZGVfcG9pbnRlciBsaW5rX3BvaW50ZXI7CisKKyAgICAgICAgbGlua19wb2ludGVyIG5leHRfOworICAgICAgICBzdGQ6OnNpemVfdCBoYXNoXzsKKworICAgICAgICB1bmlxdWVfbm9kZSgpIDoKKyAgICAgICAgICAgIG5leHRfKCksCisgICAgICAgICAgICBoYXNoXygwKQorICAgICAgICB7fQorCisgICAgICAgIHZvaWQgaW5pdChub2RlX3BvaW50ZXIpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdW5pcXVlX25vZGUmIG9wZXJhdG9yPSh1bmlxdWVfbm9kZSBjb25zdCYpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcHRyX25vZGUgOgorICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnZhbHVlX2Jhc2U8VD4sCisgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cHRyX2J1Y2tldAorICAgIHsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnB0cl9idWNrZXQgYnVja2V0X2Jhc2U7CisgICAgICAgIHR5cGVkZWYgcHRyX25vZGU8VD4qIG5vZGVfcG9pbnRlcjsKKyAgICAgICAgdHlwZWRlZiBwdHJfYnVja2V0KiBsaW5rX3BvaW50ZXI7CisKKyAgICAgICAgc3RkOjpzaXplX3QgaGFzaF87CisKKyAgICAgICAgcHRyX25vZGUoKSA6CisgICAgICAgICAgICBidWNrZXRfYmFzZSgpLAorICAgICAgICAgICAgaGFzaF8oMCkKKyAgICAgICAge30KKworICAgICAgICB2b2lkIGluaXQobm9kZV9wb2ludGVyKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHB0cl9ub2RlJiBvcGVyYXRvcj0ocHRyX25vZGUgY29uc3QmKTsKKyAgICB9OworCisgICAgLy8gSWYgdGhlIGFsbG9jYXRvciB1c2VzIHJhdyBwb2ludGVycyB1c2UgcHRyX25vZGUKKyAgICAvLyBPdGhlcndpc2UgdXNlIG5vZGUuCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgTm9kZVB0ciwgdHlwZW5hbWUgQnVja2V0UHRyPgorICAgIHN0cnVjdCBwaWNrX25vZGUyCisgICAgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6dW5pcXVlX25vZGU8QSwgVD4gbm9kZTsKKworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cmViaW5kX3dyYXA8QSwgbm9kZT46OnR5cGUKKyAgICAgICAgPjo6cG9pbnRlciBub2RlX3BvaW50ZXI7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmJ1Y2tldDxub2RlX3BvaW50ZXI+IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiBub2RlX3BvaW50ZXIgbGlua19wb2ludGVyOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcGlja19ub2RlMjxBLCBULAorICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnB0cl9ub2RlPFQ+KiwKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwdHJfYnVja2V0Kj4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwdHJfbm9kZTxUPiBub2RlOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cHRyX2J1Y2tldCBidWNrZXQ7CisgICAgICAgIHR5cGVkZWYgYnVja2V0KiBsaW5rX3BvaW50ZXI7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBwaWNrX25vZGUKKyAgICB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjphbGxvY2F0b3JfdHJhaXRzPAorICAgICAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpyZWJpbmRfd3JhcDxBLAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cHRyX25vZGU8VD4gPjo6dHlwZQorICAgICAgICA+IHRlbnRhdGl2ZV9ub2RlX3RyYWl0czsKKworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6YWxsb2NhdG9yX3RyYWl0czwKKyAgICAgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cmViaW5kX3dyYXA8QSwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnB0cl9idWNrZXQgPjo6dHlwZQorICAgICAgICA+IHRlbnRhdGl2ZV9idWNrZXRfdHJhaXRzOworCisgICAgICAgIHR5cGVkZWYgcGlja19ub2RlMjxBLCBULAorICAgICAgICAgICAgdHlwZW5hbWUgdGVudGF0aXZlX25vZGVfdHJhaXRzOjpwb2ludGVyLAorICAgICAgICAgICAgdHlwZW5hbWUgdGVudGF0aXZlX2J1Y2tldF90cmFpdHM6OnBvaW50ZXI+IHBpY2s7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpub2RlIG5vZGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcGljazo6YnVja2V0IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpsaW5rX3BvaW50ZXIgbGlua19wb2ludGVyOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgSCwgdHlwZW5hbWUgUD4KKyAgICBzdHJ1Y3Qgc2V0CisgICAgeworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6c2V0PEEsIFQsIEgsIFA+IHR5cGVzOworCisgICAgICAgIHR5cGVkZWYgQSBhbGxvY2F0b3I7CisgICAgICAgIHR5cGVkZWYgVCB2YWx1ZV90eXBlOworICAgICAgICB0eXBlZGVmIEggaGFzaGVyOworICAgICAgICB0eXBlZGVmIFAga2V5X2VxdWFsOworICAgICAgICB0eXBlZGVmIFQga2V5X3R5cGU7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmFsbG9jYXRvcl90cmFpdHM8YWxsb2NhdG9yPiB0cmFpdHM7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwaWNrX25vZGU8YWxsb2NhdG9yLCB2YWx1ZV90eXBlPiBwaWNrOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHBpY2s6Om5vZGUgbm9kZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpidWNrZXQgYnVja2V0OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHBpY2s6OmxpbmtfcG9pbnRlciBsaW5rX3BvaW50ZXI7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnRhYmxlX2ltcGw8dHlwZXM+IHRhYmxlOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6c2V0X2V4dHJhY3Rvcjx2YWx1ZV90eXBlPiBleHRyYWN0b3I7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnBpY2tfcG9saWN5Ojp0eXBlIHBvbGljeTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEssIHR5cGVuYW1lIE0sIHR5cGVuYW1lIEgsIHR5cGVuYW1lIFA+CisgICAgc3RydWN0IG1hcAorICAgIHsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1hcDxBLCBLLCBNLCBILCBQPiB0eXBlczsKKworICAgICAgICB0eXBlZGVmIEEgYWxsb2NhdG9yOworICAgICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxLIGNvbnN0LCBNPiB2YWx1ZV90eXBlOworICAgICAgICB0eXBlZGVmIEggaGFzaGVyOworICAgICAgICB0eXBlZGVmIFAga2V5X2VxdWFsOworICAgICAgICB0eXBlZGVmIEsga2V5X3R5cGU7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmFsbG9jYXRvcl90cmFpdHM8YWxsb2NhdG9yPgorICAgICAgICAgICAgdHJhaXRzOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6cGlja19ub2RlPGFsbG9jYXRvciwgdmFsdWVfdHlwZT4gcGljazsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpub2RlIG5vZGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgcGljazo6YnVja2V0IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBwaWNrOjpsaW5rX3BvaW50ZXIgbGlua19wb2ludGVyOworCisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjp0YWJsZV9pbXBsPHR5cGVzPiB0YWJsZTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1hcF9leHRyYWN0b3I8a2V5X3R5cGUsIHZhbHVlX3R5cGU+CisgICAgICAgICAgICBleHRyYWN0b3I7CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnBpY2tfcG9saWN5Ojp0eXBlIHBvbGljeTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVzPgorICAgIHN0cnVjdCB0YWJsZV9pbXBsIDogbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjp0YWJsZTxUeXBlcz4KKyAgICB7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjp0YWJsZTxUeXBlcz4gdGFibGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6YnVja2V0IGJ1Y2tldDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6cG9saWN5IHBvbGljeTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6bm9kZV9wb2ludGVyIG5vZGVfcG9pbnRlcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6bm9kZV9hbGxvY2F0b3Igbm9kZV9hbGxvY2F0b3I7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6Om5vZGVfYWxsb2NhdG9yX3RyYWl0cyBub2RlX2FsbG9jYXRvcl90cmFpdHM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmJ1Y2tldF9wb2ludGVyIGJ1Y2tldF9wb2ludGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpsaW5rX3BvaW50ZXIgbGlua19wb2ludGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpoYXNoZXIgaGFzaGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjprZXlfZXF1YWwga2V5X2VxdWFsOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjprZXlfdHlwZSBrZXlfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6bm9kZV9jb25zdHJ1Y3RvciBub2RlX2NvbnN0cnVjdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpleHRyYWN0b3IgZXh0cmFjdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6Y19pdGVyYXRvciBjX2l0ZXJhdG9yOworCisgICAgICAgIHR5cGVkZWYgc3RkOjpwYWlyPGl0ZXJhdG9yLCBib29sPiBlbXBsYWNlX3JldHVybjsKKworICAgICAgICAvLyBDb25zdHJ1Y3RvcnMKKworICAgICAgICB0YWJsZV9pbXBsKHN0ZDo6c2l6ZV90IG4sCisgICAgICAgICAgICAgICAgaGFzaGVyIGNvbnN0JiBoZiwKKyAgICAgICAgICAgICAgICBrZXlfZXF1YWwgY29uc3QmIGVxLAorICAgICAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yIGNvbnN0JiBhKQorICAgICAgICAgIDogdGFibGUobiwgaGYsIGVxLCBhKQorICAgICAgICB7fQorCisgICAgICAgIHRhYmxlX2ltcGwodGFibGVfaW1wbCBjb25zdCYgeCkKKyAgICAgICAgICA6IHRhYmxlKHgsIG5vZGVfYWxsb2NhdG9yX3RyYWl0czo6CisgICAgICAgICAgICAgICAgc2VsZWN0X29uX2NvbnRhaW5lcl9jb3B5X2NvbnN0cnVjdGlvbih4Lm5vZGVfYWxsb2MoKSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMtPmluaXQoeCk7CisgICAgICAgIH0KKworICAgICAgICB0YWJsZV9pbXBsKHRhYmxlX2ltcGwgY29uc3QmIHgsCisgICAgICAgICAgICAgICAgbm9kZV9hbGxvY2F0b3IgY29uc3QmIGEpCisgICAgICAgICAgOiB0YWJsZSh4LCBhKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLT5pbml0KHgpOworICAgICAgICB9CisKKyAgICAgICAgdGFibGVfaW1wbCh0YWJsZV9pbXBsJiB4LAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bW92ZV90YWcgbSkKKyAgICAgICAgICA6IHRhYmxlKHgsIG0pCisgICAgICAgIHt9CisKKyAgICAgICAgdGFibGVfaW1wbCh0YWJsZV9pbXBsJiB4LAorICAgICAgICAgICAgICAgIG5vZGVfYWxsb2NhdG9yIGNvbnN0JiBhLAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bW92ZV90YWcgbSkKKyAgICAgICAgICA6IHRhYmxlKHgsIGEsIG0pCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMtPm1vdmVfaW5pdCh4KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFjY2Vzc29ycworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBLZXksIGNsYXNzIFByZWQ+CisgICAgICAgIGl0ZXJhdG9yIGZpbmRfbm9kZV9pbXBsKAorICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGtleV9oYXNoLAorICAgICAgICAgICAgICAgIEtleSBjb25zdCYgaywKKyAgICAgICAgICAgICAgICBQcmVkIGNvbnN0JiBlcSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpzaXplX3QgYnVja2V0X2luZGV4ID0gdGhpcy0+aGFzaF90b19idWNrZXQoa2V5X2hhc2gpOworICAgICAgICAgICAgaXRlcmF0b3IgbiA9IHRoaXMtPmJlZ2luKGJ1Y2tldF9pbmRleCk7CisKKyAgICAgICAgICAgIGZvciAoOzspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCFuLm5vZGVfKSByZXR1cm4gbjsKKworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG5vZGVfaGFzaCA9IG4ubm9kZV8tPmhhc2hfOworICAgICAgICAgICAgICAgIGlmIChrZXlfaGFzaCA9PSBub2RlX2hhc2gpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXEoaywgdGhpcy0+Z2V0X2tleSgqbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLT5oYXNoX3RvX2J1Y2tldChub2RlX2hhc2gpICE9IGJ1Y2tldF9pbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcigpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHN0ZDo6c2l6ZV90IGNvdW50KGtleV90eXBlIGNvbnN0JiBrKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZmluZF9ub2RlKGspLm5vZGVfID8gMSA6IDA7CisgICAgICAgIH0KKworICAgICAgICB2YWx1ZV90eXBlJiBhdChrZXlfdHlwZSBjb25zdCYgaykgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMtPnNpemVfKSB7CisgICAgICAgICAgICAgICAgaXRlcmF0b3IgaXQgPSB0aGlzLT5maW5kX25vZGUoayk7CisgICAgICAgICAgICAgICAgaWYgKGl0Lm5vZGVfKSByZXR1cm4gKml0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKAorICAgICAgICAgICAgICAgIHN0ZDo6b3V0X29mX3JhbmdlKCJVbmFibGUgdG8gZmluZCBrZXkgaW4gdW5vcmRlcmVkX21hcC4iKSk7CisgICAgICAgIH0KKworICAgICAgICBzdGQ6OnBhaXI8aXRlcmF0b3IsIGl0ZXJhdG9yPgorICAgICAgICAgICAgZXF1YWxfcmFuZ2Uoa2V5X3R5cGUgY29uc3QmIGspIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGl0ZXJhdG9yIG4gPSB0aGlzLT5maW5kX25vZGUoayk7CisgICAgICAgICAgICBpdGVyYXRvciBuMiA9IG47CisgICAgICAgICAgICBpZiAobjIubm9kZV8pICsrbjI7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobiwgbjIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZXF1YWxzCisKKyAgICAgICAgYm9vbCBlcXVhbHModGFibGVfaW1wbCBjb25zdCYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKHRoaXMtPnNpemVfICE9IG90aGVyLnNpemVfKSByZXR1cm4gZmFsc2U7CisgICAgCisgICAgICAgICAgICBmb3IoaXRlcmF0b3IgbjEgPSB0aGlzLT5iZWdpbigpOyBuMS5ub2RlXzsgKytuMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpdGVyYXRvciBuMiA9IG90aGVyLmZpbmRfbWF0Y2hpbmdfbm9kZShuMSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIW4yLm5vZGVfIHx8ICpuMSAhPSAqbjIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gRW1wbGFjZS9JbnNlcnQKKworICAgICAgICBpbmxpbmUgaXRlcmF0b3IgYWRkX25vZGUoCisgICAgICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvciYgYSwKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCkKKyAgICAgICAgeworICAgICAgICAgICAgbm9kZV9wb2ludGVyIG4gPSBhLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIG4tPmhhc2hfID0ga2V5X2hhc2g7CisgICAgCisgICAgICAgICAgICBidWNrZXRfcG9pbnRlciBiID0gdGhpcy0+Z2V0X2J1Y2tldCh0aGlzLT5oYXNoX3RvX2J1Y2tldChrZXlfaGFzaCkpOworCisgICAgICAgICAgICBpZiAoIWItPm5leHRfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxpbmtfcG9pbnRlciBzdGFydF9ub2RlID0gdGhpcy0+Z2V0X3ByZXZpb3VzX3N0YXJ0KCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0X25vZGUtPm5leHRfKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMtPmdldF9idWNrZXQodGhpcy0+aGFzaF90b19idWNrZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxub2RlX3BvaW50ZXI+KHN0YXJ0X25vZGUtPm5leHRfKS0+aGFzaF8pCisgICAgICAgICAgICAgICAgICAgICktPm5leHRfID0gbjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBiLT5uZXh0XyA9IHN0YXJ0X25vZGU7CisgICAgICAgICAgICAgICAgbi0+bmV4dF8gPSBzdGFydF9ub2RlLT5uZXh0XzsKKyAgICAgICAgICAgICAgICBzdGFydF9ub2RlLT5uZXh0XyA9IG47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbi0+bmV4dF8gPSBiLT5uZXh0Xy0+bmV4dF87CisgICAgICAgICAgICAgICAgYi0+bmV4dF8tPm5leHRfID0gbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKyt0aGlzLT5zaXplXzsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcihuKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhbHVlX3R5cGUmIG9wZXJhdG9yW10oa2V5X3R5cGUgY29uc3QmIGspCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdmFsdWVfdHlwZTo6c2Vjb25kX3R5cGUgbWFwcGVkX3R5cGU7CisgICAgCisgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCA9IHRoaXMtPmhhc2goayk7CisgICAgICAgICAgICBpdGVyYXRvciBwb3MgPSB0aGlzLT5maW5kX25vZGUoa2V5X2hhc2gsIGspOworICAgIAorICAgICAgICAgICAgaWYgKHBvcy5ub2RlXykgcmV0dXJuICpwb3M7CisgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIG5vZGUgYmVmb3JlIHJlaGFzaGluZyBpbiBjYXNlIGl0IHRocm93cyBhbgorICAgICAgICAgICAgLy8gZXhjZXB0aW9uIChuZWVkIHN0cm9uZyBzYWZldHkgaW4gc3VjaCBhIGNhc2UpLgorICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvciBhKHRoaXMtPm5vZGVfYWxsb2MoKSk7CisgICAgICAgICAgICBhLmNvbnN0cnVjdF93aXRoX3ZhbHVlKEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0FSR1MzKAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OnBpZWNld2lzZV9jb25zdHJ1Y3QsCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om1ha2VfdHVwbGUoayksCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6Om1ha2VfdHVwbGUoKSkpOworICAgIAorICAgICAgICAgICAgdGhpcy0+cmVzZXJ2ZV9mb3JfaW5zZXJ0KHRoaXMtPnNpemVfICsgMSk7CisgICAgICAgICAgICByZXR1cm4gKmFkZF9ub2RlKGEsIGtleV9oYXNoKTsKKyAgICAgICAgfQorCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKyMgICBpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykKKyAgICAgICAgZW1wbGFjZV9yZXR1cm4gZW1wbGFjZShuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmVtcGxhY2VfYXJnczE8CisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwbGVhc2VfaWdub3JlX3RoaXNfb3ZlcmxvYWQ+IGNvbnN0JikKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiBlbXBsYWNlX3JldHVybih0aGlzLT5iZWdpbigpLCBmYWxzZSk7CisgICAgICAgIH0KKyMgICBlbHNlCisgICAgICAgIGVtcGxhY2VfcmV0dXJuIGVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpwbGVhc2VfaWdub3JlX3RoaXNfb3ZlcmxvYWQgY29uc3QmKQorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9BU1NFUlQoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuIGVtcGxhY2VfcmV0dXJuKHRoaXMtPmJlZ2luKCksIGZhbHNlKTsKKyAgICAgICAgfQorIyAgIGVuZGlmCisjZW5kaWYKKworICAgICAgICB0ZW1wbGF0ZSA8Qk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfVEVNUExBVEU+CisgICAgICAgIGVtcGxhY2VfcmV0dXJuIGVtcGxhY2UoQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfQVJHUykKKyAgICAgICAgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUykKKyAgICAgICAgICAgIHJldHVybiBlbXBsYWNlX2ltcGwoCisgICAgICAgICAgICAgICAgZXh0cmFjdG9yOjpleHRyYWN0KEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpLAorICAgICAgICAgICAgICAgIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybiBlbXBsYWNlX2ltcGwoCisgICAgICAgICAgICAgICAgZXh0cmFjdG9yOjpleHRyYWN0KGFyZ3MuYTAsIGFyZ3MuYTEpLAorICAgICAgICAgICAgICAgIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpOworI2VuZGlmCisgICAgICAgIH0KKworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQTA+CisgICAgICAgIGVtcGxhY2VfcmV0dXJuIGVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbXBsYWNlX2FyZ3MxPEEwPiBjb25zdCYgYXJncykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGVtcGxhY2VfaW1wbChleHRyYWN0b3I6OmV4dHJhY3QoYXJncy5hMCksIGFyZ3MpOworICAgICAgICB9CisjZW5kaWYKKworICAgICAgICB0ZW1wbGF0ZSA8Qk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfVEVNUExBVEU+CisgICAgICAgIGVtcGxhY2VfcmV0dXJuIGVtcGxhY2VfaW1wbChrZXlfdHlwZSBjb25zdCYgaywKKyAgICAgICAgICAgIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0FSR1MpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGtleV9oYXNoID0gdGhpcy0+aGFzaChrKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yIHBvcyA9IHRoaXMtPmZpbmRfbm9kZShrZXlfaGFzaCwgayk7CisgICAgCisgICAgICAgICAgICBpZiAocG9zLm5vZGVfKSByZXR1cm4gZW1wbGFjZV9yZXR1cm4ocG9zLCBmYWxzZSk7CisgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIG5vZGUgYmVmb3JlIHJlaGFzaGluZyBpbiBjYXNlIGl0IHRocm93cyBhbgorICAgICAgICAgICAgLy8gZXhjZXB0aW9uIChuZWVkIHN0cm9uZyBzYWZldHkgaW4gc3VjaCBhIGNhc2UpLgorICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvciBhKHRoaXMtPm5vZGVfYWxsb2MoKSk7CisgICAgICAgICAgICBhLmNvbnN0cnVjdF93aXRoX3ZhbHVlKEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpOworICAgIAorICAgICAgICAgICAgLy8gcmVzZXJ2ZSBoYXMgYmFzaWMgZXhjZXB0aW9uIHNhZmV0eSBpZiB0aGUgaGFzaCBmdW5jdGlvbgorICAgICAgICAgICAgLy8gdGhyb3dzLCBzdHJvbmcgb3RoZXJ3aXNlLgorICAgICAgICAgICAgdGhpcy0+cmVzZXJ2ZV9mb3JfaW5zZXJ0KHRoaXMtPnNpemVfICsgMSk7CisgICAgICAgICAgICByZXR1cm4gZW1wbGFjZV9yZXR1cm4odGhpcy0+YWRkX25vZGUoYSwga2V5X2hhc2gpLCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGVtcGxhY2VfcmV0dXJuIGVtcGxhY2VfaW1wbF93aXRoX25vZGUobm9kZV9jb25zdHJ1Y3RvciYgYSkKKyAgICAgICAgeworICAgICAgICAgICAga2V5X3R5cGUgY29uc3QmIGsgPSB0aGlzLT5nZXRfa2V5KGEudmFsdWUoKSk7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBrZXlfaGFzaCA9IHRoaXMtPmhhc2goayk7CisgICAgICAgICAgICBpdGVyYXRvciBwb3MgPSB0aGlzLT5maW5kX25vZGUoa2V5X2hhc2gsIGspOworCisgICAgICAgICAgICBpZiAocG9zLm5vZGVfKSByZXR1cm4gZW1wbGFjZV9yZXR1cm4ocG9zLCBmYWxzZSk7CisKKyAgICAgICAgICAgIC8vIHJlc2VydmUgaGFzIGJhc2ljIGV4Y2VwdGlvbiBzYWZldHkgaWYgdGhlIGhhc2ggZnVuY3Rpb24KKyAgICAgICAgICAgIC8vIHRocm93cywgc3Ryb25nIG90aGVyd2lzZS4KKyAgICAgICAgICAgIHRoaXMtPnJlc2VydmVfZm9yX2luc2VydCh0aGlzLT5zaXplXyArIDEpOworICAgICAgICAgICAgcmV0dXJuIGVtcGxhY2VfcmV0dXJuKHRoaXMtPmFkZF9ub2RlKGEsIGtleV9oYXNoKSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Qk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfVEVNUExBVEU+CisgICAgICAgIGVtcGxhY2VfcmV0dXJuIGVtcGxhY2VfaW1wbChub19rZXksIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0FSR1MpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERvbid0IGhhdmUgYSBrZXksIHNvIGNvbnN0cnVjdCB0aGUgbm9kZSBmaXJzdCBpbiBvcmRlcgorICAgICAgICAgICAgLy8gdG8gYmUgYWJsZSB0byBsb29rdXAgdGhlIHBvc2l0aW9uLgorICAgICAgICAgICAgbm9kZV9jb25zdHJ1Y3RvciBhKHRoaXMtPm5vZGVfYWxsb2MoKSk7CisgICAgICAgICAgICBhLmNvbnN0cnVjdF93aXRoX3ZhbHVlKEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0ZPUldBUkQpOworICAgICAgICAgICAgcmV0dXJuIGVtcGxhY2VfaW1wbF93aXRoX25vZGUoYSk7CisgICAgICAgIH0KKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gSW5zZXJ0IHJhbmdlIG1ldGhvZHMKKyAgICAgICAgLy8KKyAgICAgICAgLy8gaWYgaGFzaCBmdW5jdGlvbiB0aHJvd3MsIG9yIGluc2VydGluZyA+IDEgZWxlbWVudCwgYmFzaWMgZXhjZXB0aW9uCisgICAgICAgIC8vIHNhZmV0eSBzdHJvbmcgb3RoZXJ3aXNlCisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgICAgIHZvaWQgaW5zZXJ0X3JhbmdlKElucHV0SXQgaSwgSW5wdXRJdCBqKQorICAgICAgICB7CisgICAgICAgICAgICBpZihpICE9IGopCisgICAgICAgICAgICAgICAgcmV0dXJuIGluc2VydF9yYW5nZV9pbXBsKGV4dHJhY3Rvcjo6ZXh0cmFjdCgqaSksIGksIGopOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgICAgIHZvaWQgaW5zZXJ0X3JhbmdlX2ltcGwoa2V5X3R5cGUgY29uc3QmIGssIElucHV0SXQgaSwgSW5wdXRJdCBqKQorICAgICAgICB7CisgICAgICAgICAgICBub2RlX2NvbnN0cnVjdG9yIGEodGhpcy0+bm9kZV9hbGxvYygpKTsKKworICAgICAgICAgICAgaW5zZXJ0X3JhbmdlX2ltcGwyKGEsIGssIGksIGopOworCisgICAgICAgICAgICB3aGlsZSgrK2kgIT0gaikgeworICAgICAgICAgICAgICAgIC8vIE5vdGU6IGNhbid0IHVzZSBnZXRfa2V5IGFzICcqaScgbWlnaHQgbm90IGJlIHZhbHVlX3R5cGUgLSBpdAorICAgICAgICAgICAgICAgIC8vIGNvdWxkIGJlIGEgcGFpciB3aXRoIGZpcnN0X3R5cGVzIGFzIGtleV90eXBlIHdpdGhvdXQgY29uc3Qgb3IKKyAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBzZWNvbmRfdHlwZS4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIFRPRE86IE1pZ2h0IGJlIHdvcnRoIHN0b3JpbmcgdGhlIHZhbHVlX3R5cGUgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBrZXkgaGVyZS4gQ291bGQgYmUgbW9yZSBlZmZpY2llbnQgaWYgJyppJyBpcyBleHBlbnNpdmUuIENvdWxkCisgICAgICAgICAgICAgICAgLy8gYmUgbGVzcyBlZmZpY2llbnQgaWYgY29weWluZyB0aGUgZnVsbCB2YWx1ZV90eXBlIGlzCisgICAgICAgICAgICAgICAgLy8gZXhwZW5zaXZlLgorICAgICAgICAgICAgICAgIGluc2VydF9yYW5nZV9pbXBsMihhLCBleHRyYWN0b3I6OmV4dHJhY3QoKmkpLCBpLCBqKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBJbnB1dEl0PgorICAgICAgICB2b2lkIGluc2VydF9yYW5nZV9pbXBsMihub2RlX2NvbnN0cnVjdG9yJiBhLCBrZXlfdHlwZSBjb25zdCYgaywKKyAgICAgICAgICAgIElucHV0SXQgaSwgSW5wdXRJdCBqKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBObyBzaWRlIGVmZmVjdHMgaW4gdGhpcyBpbml0aWFsIGNvZGUKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGtleV9oYXNoID0gdGhpcy0+aGFzaChrKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yIHBvcyA9IHRoaXMtPmZpbmRfbm9kZShrZXlfaGFzaCwgayk7CisgICAgCisgICAgICAgICAgICBpZiAoIXBvcy5ub2RlXykgeworICAgICAgICAgICAgICAgIGEuY29uc3RydWN0X3dpdGhfdmFsdWUyKCppKTsKKyAgICAgICAgICAgICAgICBpZih0aGlzLT5zaXplXyArIDEgPiB0aGlzLT5tYXhfbG9hZF8pCisgICAgICAgICAgICAgICAgICAgIHRoaXMtPnJlc2VydmVfZm9yX2luc2VydCh0aGlzLT5zaXplXyArCisgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Omluc2VydF9zaXplKGksIGopKTsKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBOb3RoaW5nIGFmdGVyIHRoaXMgcG9pbnQgY2FuIHRocm93LgorICAgICAgICAgICAgICAgIHRoaXMtPmFkZF9ub2RlKGEsIGtleV9oYXNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBJbnB1dEl0PgorICAgICAgICB2b2lkIGluc2VydF9yYW5nZV9pbXBsKG5vX2tleSwgSW5wdXRJdCBpLCBJbnB1dEl0IGopCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vZGVfY29uc3RydWN0b3IgYSh0aGlzLT5ub2RlX2FsbG9jKCkpOworCisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgYS5jb25zdHJ1Y3Rfd2l0aF92YWx1ZTIoKmkpOworICAgICAgICAgICAgICAgIGVtcGxhY2VfaW1wbF93aXRoX25vZGUoYSk7CisgICAgICAgICAgICB9IHdoaWxlKCsraSAhPSBqKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICAvLyBFcmFzZQorICAgICAgICAvLworICAgICAgICAvLyBubyB0aHJvdworCisgICAgICAgIHN0ZDo6c2l6ZV90IGVyYXNlX2tleShrZXlfdHlwZSBjb25zdCYgaykKKyAgICAgICAgeworICAgICAgICAgICAgaWYoIXRoaXMtPnNpemVfKSByZXR1cm4gMDsKKworICAgICAgICAgICAgc3RkOjpzaXplX3Qga2V5X2hhc2ggPSB0aGlzLT5oYXNoKGspOworICAgICAgICAgICAgc3RkOjpzaXplX3QgYnVja2V0X2luZGV4ID0gdGhpcy0+aGFzaF90b19idWNrZXQoa2V5X2hhc2gpOworICAgICAgICAgICAgbGlua19wb2ludGVyIHByZXYgPSB0aGlzLT5nZXRfcHJldmlvdXNfc3RhcnQoYnVja2V0X2luZGV4KTsKKyAgICAgICAgICAgIGlmICghcHJldikgcmV0dXJuIDA7CisKKyAgICAgICAgICAgIGZvciAoOzspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCFwcmV2LT5uZXh0XykgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3Qgbm9kZV9oYXNoID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bm9kZV9wb2ludGVyPihwcmV2LT5uZXh0XyktPmhhc2hfOworICAgICAgICAgICAgICAgIGlmICh0aGlzLT5oYXNoX3RvX2J1Y2tldChub2RlX2hhc2gpICE9IGJ1Y2tldF9pbmRleCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgaWYgKG5vZGVfaGFzaCA9PSBrZXlfaGFzaCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+a2V5X2VxKCkoaywgdGhpcy0+Z2V0X2tleSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4ocHJldi0+bmV4dF8pLT52YWx1ZSgpKSkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHByZXYgPSBwcmV2LT5uZXh0XzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGlua19wb2ludGVyIGVuZCA9IHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4ocHJldi0+bmV4dF8pLT5uZXh0XzsKKworICAgICAgICAgICAgc3RkOjpzaXplX3QgY291bnQgPSB0aGlzLT5kZWxldGVfbm9kZXMocHJldiwgZW5kKTsKKyAgICAgICAgICAgIHRoaXMtPmZpeF9idWNrZXQoYnVja2V0X2luZGV4LCBwcmV2KTsKKyAgICAgICAgICAgIHJldHVybiBjb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIGVyYXNlKGNfaXRlcmF0b3IgcikKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKHIubm9kZV8pOworICAgICAgICAgICAgaXRlcmF0b3IgbmV4dChyLm5vZGVfKTsKKyAgICAgICAgICAgICsrbmV4dDsKKyAgICAgICAgICAgIGVyYXNlX25vZGVzKHIubm9kZV8sIG5leHQubm9kZV8pOworICAgICAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBlcmFzZV9yYW5nZShjX2l0ZXJhdG9yIHIxLCBjX2l0ZXJhdG9yIHIyKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocjEgPT0gcjIpIHJldHVybiBpdGVyYXRvcihyMi5ub2RlXyk7CisgICAgICAgICAgICBlcmFzZV9ub2RlcyhyMS5ub2RlXywgcjIubm9kZV8pOworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKHIyLm5vZGVfKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZXJhc2Vfbm9kZXMobm9kZV9wb2ludGVyIGJlZ2luLCBub2RlX3BvaW50ZXIgZW5kKQorICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBidWNrZXRfaW5kZXggPSB0aGlzLT5oYXNoX3RvX2J1Y2tldChiZWdpbi0+aGFzaF8pOworCisgICAgICAgICAgICAvLyBGaW5kIHRoZSBub2RlIGJlZm9yZSBiZWdpbi4KKyAgICAgICAgICAgIGxpbmtfcG9pbnRlciBwcmV2ID0gdGhpcy0+Z2V0X3ByZXZpb3VzX3N0YXJ0KGJ1Y2tldF9pbmRleCk7CisgICAgICAgICAgICB3aGlsZShwcmV2LT5uZXh0XyAhPSBiZWdpbikgcHJldiA9IHByZXYtPm5leHRfOworCisgICAgICAgICAgICAvLyBEZWxldGUgdGhlIG5vZGVzLgorICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIHRoaXMtPmRlbGV0ZV9ub2RlKHByZXYpOworICAgICAgICAgICAgICAgIGJ1Y2tldF9pbmRleCA9IHRoaXMtPmZpeF9idWNrZXQoYnVja2V0X2luZGV4LCBwcmV2KTsKKyAgICAgICAgICAgIH0gd2hpbGUgKHByZXYtPm5leHRfICE9IGVuZCk7CisgICAgICAgIH0KKworICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgLy8gZmlsbF9idWNrZXRzCisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIE5vZGVDcmVhdG9yPgorICAgICAgICBzdGF0aWMgdm9pZCBmaWxsX2J1Y2tldHMoaXRlcmF0b3IgbiwgdGFibGUmIGRzdCwKKyAgICAgICAgICAgIE5vZGVDcmVhdG9yJiBjcmVhdG9yKQorICAgICAgICB7CisgICAgICAgICAgICBsaW5rX3BvaW50ZXIgcHJldiA9IGRzdC5nZXRfcHJldmlvdXNfc3RhcnQoKTsKKworICAgICAgICAgICAgd2hpbGUgKG4ubm9kZV8pIHsKKyAgICAgICAgICAgICAgICBub2RlX3BvaW50ZXIgbm9kZSA9IGNyZWF0b3IuY3JlYXRlKCpuKTsKKyAgICAgICAgICAgICAgICBub2RlLT5oYXNoXyA9IG4ubm9kZV8tPmhhc2hfOworICAgICAgICAgICAgICAgIHByZXYtPm5leHRfID0gbm9kZTsKKyAgICAgICAgICAgICAgICArK2RzdC5zaXplXzsKKyAgICAgICAgICAgICAgICArK247CisKKyAgICAgICAgICAgICAgICBwcmV2ID0gcGxhY2VfaW5fYnVja2V0KGRzdCwgcHJldik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBzdHJvbmcgb3RoZXJ3aXNlIGV4Y2VwdGlvbiBzYWZldHkKKyAgICAgICAgdm9pZCByZWhhc2hfaW1wbChzdGQ6OnNpemVfdCBudW1fYnVja2V0cykKKyAgICAgICAgeworICAgICAgICAgICAgQk9PU1RfQVNTRVJUKHRoaXMtPmJ1Y2tldHNfKTsKKworICAgICAgICAgICAgdGhpcy0+Y3JlYXRlX2J1Y2tldHMobnVtX2J1Y2tldHMpOworICAgICAgICAgICAgbGlua19wb2ludGVyIHByZXYgPSB0aGlzLT5nZXRfcHJldmlvdXNfc3RhcnQoKTsKKyAgICAgICAgICAgIHdoaWxlIChwcmV2LT5uZXh0XykKKyAgICAgICAgICAgICAgICBwcmV2ID0gcGxhY2VfaW5fYnVja2V0KCp0aGlzLCBwcmV2KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbm9kZXMgcGxhY2luZyB0aGVtIGluIHRoZSBjb3JyZWN0IGJ1Y2tldHMuCisgICAgICAgIC8vIHByZTogcHJldi0+bmV4dF8gaXMgbm90IG51bGwuCisgICAgICAgIHN0YXRpYyBsaW5rX3BvaW50ZXIgcGxhY2VfaW5fYnVja2V0KHRhYmxlJiBkc3QsIGxpbmtfcG9pbnRlciBwcmV2KQorICAgICAgICB7CisgICAgICAgICAgICBub2RlX3BvaW50ZXIgbiA9IHN0YXRpY19jYXN0PG5vZGVfcG9pbnRlcj4ocHJldi0+bmV4dF8pOworICAgICAgICAgICAgYnVja2V0X3BvaW50ZXIgYiA9IGRzdC5nZXRfYnVja2V0KGRzdC5oYXNoX3RvX2J1Y2tldChuLT5oYXNoXykpOworCisgICAgICAgICAgICBpZiAoIWItPm5leHRfKSB7CisgICAgICAgICAgICAgICAgYi0+bmV4dF8gPSBwcmV2OworICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcHJldi0+bmV4dF8gPSBuLT5uZXh0XzsKKyAgICAgICAgICAgICAgICBuLT5uZXh0XyA9IGItPm5leHRfLT5uZXh0XzsKKyAgICAgICAgICAgICAgICBiLT5uZXh0Xy0+bmV4dF8gPSBuOworICAgICAgICAgICAgICAgIHJldHVybiBwcmV2OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKK319fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC91dGlsLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC91dGlsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWY4ZTQyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvZGV0YWlsL3V0aWwuaHBwCkBAIC0wLDAgKzEsMjYwIEBACisKKy8vIENvcHlyaWdodCAoQykgMjAwMy0yMDA0IEplcmVteSBCLiBNYWl0aW4tU2hlcGFyZC4KKy8vIENvcHlyaWdodCAoQykgMjAwNS0yMDExIERhbmllbCBKYW1lcworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVU5PUkRFUkVEX0RFVEFJTF9VVElMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfREVUQUlMX1VUSUxfSFBQX0lOQ0xVREVECisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2VtcHR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9pdGVyYXRvci9pdGVyYXRvcl9jYXRlZ29yaWVzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3NlbGVjdF90eXBlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL21vdmUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9zZXEvc2l6ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zd2FwLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIHVub3JkZXJlZCB7IG5hbWVzcGFjZSBkZXRhaWwgeworCisgICAgc3RhdGljIGNvbnN0IGZsb2F0IG1pbmltdW1fbWF4X2xvYWRfZmFjdG9yID0gMWUtM2Y7CisgICAgc3RhdGljIGNvbnN0IHN0ZDo6c2l6ZV90IGRlZmF1bHRfYnVja2V0X2NvdW50ID0gMTE7CisgICAgc3RydWN0IG1vdmVfdGFnIHt9OworICAgIHN0cnVjdCBlbXB0eV9lbXBsYWNlIHt9OworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIGl0ZXJhdG9yIFNGSU5BRQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEk+CisgICAgc3RydWN0IGlzX2ZvcndhcmQgOgorICAgICAgICBuZG5ib29zdDo6aXNfY29udmVydGlibGU8CisgICAgICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6aXRlcmF0b3JfdHJhdmVyc2FsPEk+Ojp0eXBlLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmRfdHJhdmVyc2FsX3RhZz4KKyAgICB7fTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJLCB0eXBlbmFtZSBSZXR1cm5UeXBlPgorICAgIHN0cnVjdCBlbmFibGVfaWZfZm9yd2FyZCA6CisgICAgICAgIG5kbmJvb3N0OjplbmFibGVfaWZfYzwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aXNfZm9yd2FyZDxJPjo6dmFsdWUsCisgICAgICAgICAgICBSZXR1cm5UeXBlPgorICAgIHt9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEksIHR5cGVuYW1lIFJldHVyblR5cGU+CisgICAgc3RydWN0IGRpc2FibGVfaWZfZm9yd2FyZCA6CisgICAgICAgIG5kbmJvb3N0OjpkaXNhYmxlX2lmX2M8CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmlzX2ZvcndhcmQ8ST46OnZhbHVlLAorICAgICAgICAgICAgUmV0dXJuVHlwZT4KKyAgICB7fTsKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBwcmltZXMKKworI2RlZmluZSBCT09TVF9VTk9SREVSRURfUFJJTUVTIFwKKyAgICAoMTd1bCkoMjl1bCkoMzd1bCkoNTN1bCkoNjd1bCkoNzl1bCkgXAorICAgICg5N3VsKSgxMzF1bCkoMTkzdWwpKDI1N3VsKSgzODl1bCkoNTIxdWwpKDc2OXVsKSBcCisgICAgKDEwMzF1bCkoMTU0M3VsKSgyMDUzdWwpKDMwNzl1bCkoNjE1MXVsKSgxMjI4OXVsKSgyNDU5M3VsKSBcCisgICAgKDQ5MTU3dWwpKDk4MzE3dWwpKDE5NjYxM3VsKSgzOTMyNDF1bCkoNzg2NDMzdWwpIFwKKyAgICAoMTU3Mjg2OXVsKSgzMTQ1NzM5dWwpKDYyOTE0Njl1bCkoMTI1ODI5MTd1bCkoMjUxNjU4NDN1bCkgXAorICAgICg1MDMzMTY1M3VsKSgxMDA2NjMzMTl1bCkoMjAxMzI2NjExdWwpKDQwMjY1MzE4OXVsKSg4MDUzMDY0NTd1bCkgXAorICAgICgxNjEwNjEyNzQxdWwpKDMyMjEyMjU0NzN1bCkoNDI5NDk2NzI5MXVsKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHByaW1lX2xpc3RfdGVtcGxhdGUKKyAgICB7CisgICAgICAgIHN0YXRpYyBzdGQ6OnNpemVfdCBjb25zdCB2YWx1ZVtdOworCisjaWYgIWRlZmluZWQoU1VOUFJPX0NDKQorICAgICAgICBzdGF0aWMgc3RkOjpwdHJkaWZmX3QgY29uc3QgbGVuZ3RoOworI2Vsc2UKKyAgICAgICAgc3RhdGljIHN0ZDo6cHRyZGlmZl90IGNvbnN0IGxlbmd0aAorICAgICAgICAgICAgPSBCT09TVF9QUF9TRVFfU0laRShCT09TVF9VTk9SREVSRURfUFJJTUVTKTsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHN0ZDo6c2l6ZV90IGNvbnN0IHByaW1lX2xpc3RfdGVtcGxhdGU8VD46OnZhbHVlW10gPSB7CisgICAgICAgIEJPT1NUX1BQX1NFUV9FTlVNKEJPT1NUX1VOT1JERVJFRF9QUklNRVMpCisgICAgfTsKKworI2lmICFkZWZpbmVkKFNVTlBST19DQykKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHN0ZDo6cHRyZGlmZl90IGNvbnN0IHByaW1lX2xpc3RfdGVtcGxhdGU8VD46Omxlbmd0aAorICAgICAgICA9IEJPT1NUX1BQX1NFUV9TSVpFKEJPT1NUX1VOT1JERVJFRF9QUklNRVMpOworI2VuZGlmCisKKyN1bmRlZiBCT09TVF9VTk9SREVSRURfUFJJTUVTCisKKyAgICB0eXBlZGVmIHByaW1lX2xpc3RfdGVtcGxhdGU8c3RkOjpzaXplX3Q+IHByaW1lX2xpc3Q7CisKKyAgICAvLyBubyB0aHJvdworICAgIGlubGluZSBzdGQ6OnNpemVfdCBuZXh0X3ByaW1lKHN0ZDo6c2l6ZV90IG51bSkgeworICAgICAgICBzdGQ6OnNpemVfdCBjb25zdCogY29uc3QgcHJpbWVfbGlzdF9iZWdpbiA9IHByaW1lX2xpc3Q6OnZhbHVlOworICAgICAgICBzdGQ6OnNpemVfdCBjb25zdCogY29uc3QgcHJpbWVfbGlzdF9lbmQgPSBwcmltZV9saXN0X2JlZ2luICsKKyAgICAgICAgICAgIHByaW1lX2xpc3Q6Omxlbmd0aDsKKyAgICAgICAgc3RkOjpzaXplX3QgY29uc3QqIGJvdW5kID0KKyAgICAgICAgICAgIHN0ZDo6bG93ZXJfYm91bmQocHJpbWVfbGlzdF9iZWdpbiwgcHJpbWVfbGlzdF9lbmQsIG51bSk7CisgICAgICAgIGlmKGJvdW5kID09IHByaW1lX2xpc3RfZW5kKQorICAgICAgICAgICAgYm91bmQtLTsKKyAgICAgICAgcmV0dXJuICpib3VuZDsKKyAgICB9CisKKyAgICAvLyBubyB0aHJvdworICAgIGlubGluZSBzdGQ6OnNpemVfdCBwcmV2X3ByaW1lKHN0ZDo6c2l6ZV90IG51bSkgeworICAgICAgICBzdGQ6OnNpemVfdCBjb25zdCogY29uc3QgcHJpbWVfbGlzdF9iZWdpbiA9IHByaW1lX2xpc3Q6OnZhbHVlOworICAgICAgICBzdGQ6OnNpemVfdCBjb25zdCogY29uc3QgcHJpbWVfbGlzdF9lbmQgPSBwcmltZV9saXN0X2JlZ2luICsKKyAgICAgICAgICAgIHByaW1lX2xpc3Q6Omxlbmd0aDsKKyAgICAgICAgc3RkOjpzaXplX3QgY29uc3QqIGJvdW5kID0KKyAgICAgICAgICAgIHN0ZDo6dXBwZXJfYm91bmQocHJpbWVfbGlzdF9iZWdpbixwcmltZV9saXN0X2VuZCwgbnVtKTsKKyAgICAgICAgaWYoYm91bmQgIT0gcHJpbWVfbGlzdF9iZWdpbikKKyAgICAgICAgICAgIGJvdW5kLS07CisgICAgICAgIHJldHVybiAqYm91bmQ7CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIGluc2VydF9zaXplL2luaXRpYWxfc2l6ZQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0RJU1RBTkNFKQorCisgICAgdXNpbmcgOjpzdGQ6OmRpc3RhbmNlOworCisjZWxzZQorCisgICAgdGVtcGxhdGUgPGNsYXNzIEZvcndhcmRJdGVyYXRvcj4KKyAgICBpbmxpbmUgc3RkOjpzaXplX3QgZGlzdGFuY2UoRm9yd2FyZEl0ZXJhdG9yIGksIEZvcndhcmRJdGVyYXRvciBqKSB7CisgICAgICAgIHN0ZDo6c2l6ZV90IHg7CisgICAgICAgIHN0ZDo6ZGlzdGFuY2UoaSwgaiwgeCk7CisgICAgICAgIHJldHVybiB4OworICAgIH0KKworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgST4KKyAgICBpbmxpbmUgdHlwZW5hbWUKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbmFibGVfaWZfZm9yd2FyZDxJLCBzdGQ6OnNpemVfdD46OnR5cGUKKyAgICAgICAgaW5zZXJ0X3NpemUoSSBpLCBJIGopCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjpkaXN0YW5jZShpLCBqKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgST4KKyAgICBpbmxpbmUgdHlwZW5hbWUKKyAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkaXNhYmxlX2lmX2ZvcndhcmQ8SSwgc3RkOjpzaXplX3Q+Ojp0eXBlCisgICAgICAgIGluc2VydF9zaXplKEksIEkpCisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgST4KKyAgICBpbmxpbmUgc3RkOjpzaXplX3QgaW5pdGlhbF9zaXplKEkgaSwgSSBqLAorICAgICAgICBzdGQ6OnNpemVfdCBudW1fYnVja2V0cyA9CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmRlZmF1bHRfYnVja2V0X2NvdW50KQorICAgIHsKKyAgICAgICAgLy8gVE9ETzogV2h5ICsxPworICAgICAgICByZXR1cm4gKHN0ZDo6bWF4KSgKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aW5zZXJ0X3NpemUoaSwgaikgKyAxLAorICAgICAgICAgICAgbnVtX2J1Y2tldHMpOworICAgIH0KKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBjb21wcmVzc2VkCisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgaW50IEluZGV4PgorICAgIHN0cnVjdCBjb21wcmVzc2VkX2Jhc2UgOiBwcml2YXRlIFQKKyAgICB7CisgICAgICAgIGNvbXByZXNzZWRfYmFzZShUIGNvbnN0JiB4KSA6IFQoeCkge30KKyAgICAgICAgY29tcHJlc3NlZF9iYXNlKFQmIHgsIG1vdmVfdGFnKSA6IFQobmRuYm9vc3Q6Om1vdmUoeCkpIHt9CisKKyAgICAgICAgVCYgZ2V0KCkgeyByZXR1cm4gKnRoaXM7IH0KKyAgICAgICAgVCBjb25zdCYgZ2V0KCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0KKyAgICB9OworICAgIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBpbnQgSW5kZXg+CisgICAgc3RydWN0IHVuY29tcHJlc3NlZF9iYXNlCisgICAgeworICAgICAgICB1bmNvbXByZXNzZWRfYmFzZShUIGNvbnN0JiB4KSA6IHZhbHVlXyh4KSB7fQorICAgICAgICB1bmNvbXByZXNzZWRfYmFzZShUJiB4LCBtb3ZlX3RhZykgOiB2YWx1ZV8obmRuYm9vc3Q6Om1vdmUoeCkpIHt9CisKKyAgICAgICAgVCYgZ2V0KCkgeyByZXR1cm4gdmFsdWVfOyB9CisgICAgICAgIFQgY29uc3QmIGdldCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlXzsgfQorICAgIHByaXZhdGU6CisgICAgICAgIFQgdmFsdWVfOworICAgIH07CisgICAgCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIGludCBJbmRleD4KKyAgICBzdHJ1Y3QgZ2VuZXJhdGVfYmFzZQorICAgICAgOiBuZG5ib29zdDo6ZGV0YWlsOjppZl90cnVlPAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2VtcHR5PFQ+Ojp2YWx1ZQorICAgICAgICA+OjogQk9PU1RfTkVTVEVEX1RFTVBMQVRFIHRoZW48CisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNvbXByZXNzZWRfYmFzZTxULCBJbmRleD4sCisgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnVuY29tcHJlc3NlZF9iYXNlPFQsIEluZGV4PgorICAgICAgICA+CisgICAge307CisgICAgCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KKyAgICBzdHJ1Y3QgY29tcHJlc3NlZAorICAgICAgOiBwcml2YXRlIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Z2VuZXJhdGVfYmFzZTxUMSwgMT46OnR5cGUsCisgICAgICAgIHByaXZhdGUgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpnZW5lcmF0ZV9iYXNlPFQyLCAyPjo6dHlwZQorICAgIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBnZW5lcmF0ZV9iYXNlPFQxLCAxPjo6dHlwZSBiYXNlMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBnZW5lcmF0ZV9iYXNlPFQyLCAyPjo6dHlwZSBiYXNlMjsKKworICAgICAgICB0eXBlZGVmIFQxIGZpcnN0X3R5cGU7CisgICAgICAgIHR5cGVkZWYgVDIgc2Vjb25kX3R5cGU7CisgICAgICAgIAorICAgICAgICBmaXJzdF90eXBlJiBmaXJzdCgpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxiYXNlMSo+KHRoaXMpLT5nZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpcnN0X3R5cGUgY29uc3QmIGZpcnN0KCkgY29uc3QgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJhc2UxIGNvbnN0Kj4odGhpcyktPmdldCgpOworICAgICAgICB9CisKKyAgICAgICAgc2Vjb25kX3R5cGUmIHNlY29uZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxiYXNlMio+KHRoaXMpLT5nZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlY29uZF90eXBlIGNvbnN0JiBzZWNvbmQoKSBjb25zdCB7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8YmFzZTIgY29uc3QqPih0aGlzKS0+Z2V0KCk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3QsIHR5cGVuYW1lIFNlY29uZD4KKyAgICAgICAgY29tcHJlc3NlZChGaXJzdCBjb25zdCYgeDEsIFNlY29uZCBjb25zdCYgeDIpCisgICAgICAgICAgICA6IGJhc2UxKHgxKSwgYmFzZTIoeDIpIHt9CisKKyAgICAgICAgY29tcHJlc3NlZChjb21wcmVzc2VkIGNvbnN0JiB4KQorICAgICAgICAgICAgOiBiYXNlMSh4LmZpcnN0KCkpLCBiYXNlMih4LnNlY29uZCgpKSB7fQorCisgICAgICAgIGNvbXByZXNzZWQoY29tcHJlc3NlZCYgeCwgbW92ZV90YWcgbSkKKyAgICAgICAgICAgIDogYmFzZTEoeC5maXJzdCgpLCBtKSwgYmFzZTIoeC5zZWNvbmQoKSwgbSkge30KKworICAgICAgICB2b2lkIGFzc2lnbihjb21wcmVzc2VkIGNvbnN0JiB4KQorICAgICAgICB7CisgICAgICAgICAgICBmaXJzdCgpID0geC5maXJzdCgpOworICAgICAgICAgICAgc2Vjb25kKCkgPSB4LnNlY29uZCgpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBtb3ZlX2Fzc2lnbihjb21wcmVzc2VkJiB4KQorICAgICAgICB7CisgICAgICAgICAgICBmaXJzdCgpID0gbmRuYm9vc3Q6Om1vdmUoeC5maXJzdCgpKTsKKyAgICAgICAgICAgIHNlY29uZCgpID0gbmRuYm9vc3Q6Om1vdmUoeC5zZWNvbmQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgc3dhcChjb21wcmVzc2VkJiB4KQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6c3dhcChmaXJzdCgpLCB4LmZpcnN0KCkpOworICAgICAgICAgICAgbmRuYm9vc3Q6OnN3YXAoc2Vjb25kKCksIHguc2Vjb25kKCkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICAvLyBQcmV2ZW50IGFzc2lnbm1lbnQganVzdCB0byBtYWtlIHVzZSBvZiBhc3NpZ24gb3IKKyAgICAgICAgLy8gbW92ZV9hc3NpZ24gZXhwbGljaXQuCisgICAgICAgIGNvbXByZXNzZWQmIG9wZXJhdG9yPShjb21wcmVzc2VkIGNvbnN0Jik7CisgICAgfTsKK319fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL3Vub3JkZXJlZF9zZXQuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE2OGJlNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL3Vub3JkZXJlZF9zZXQuaHBwCkBAIC0wLDAgKzEsMTU0OSBAQAorCisvLyBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCBKZXJlbXkgQi4gTWFpdGluLVNoZXBhcmQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMSBEYW5pZWwgSmFtZXMuCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvLyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3Vub3JkZXJlZCBmb3IgZG9jdW1lbnRhdGlvbgorCisjaWZuZGVmIEJPT1NUX1VOT1JERVJFRF9VTk9SREVSRURfU0VUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfVU5PUkRFUkVEX1NFVF9IUFBfSU5DTFVERUQKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxuZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldF9md2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvZXF1aXZhbGVudC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC91bmlxdWUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3Vub3JkZXJlZC9kZXRhaWwvdXRpbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25hbC9oYXNoLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tb3ZlL21vdmUuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QpCisjaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjaWYgQk9PU1RfTVNWQyA+PSAxNDAwCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0Mzk2KSAvL3RoZSBpbmxpbmUgc3BlY2lmaWVyIGNhbm5vdCBiZSB1c2VkIHdoZW4gYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJpZW5kIGRlY2xhcmF0aW9uIHJlZmVycyB0byBhIHNwZWNpYWxpemF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZiBhIGZ1bmN0aW9uIHRlbXBsYXRlCisjZW5kaWYKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKK25hbWVzcGFjZSB1bm9yZGVyZWQKK3sKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICBjbGFzcyB1bm9yZGVyZWRfc2V0CisgICAgeworI2lmIGRlZmluZWQoQk9PU1RfVU5PUkRFUkVEX1VTRV9NT1ZFKQorICAgICAgICBCT09TVF9DT1BZQUJMRV9BTkRfTU9WQUJMRSh1bm9yZGVyZWRfc2V0KQorI2VuZGlmCisgICAgcHVibGljOgorCisgICAgICAgIHR5cGVkZWYgVCBrZXlfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisgICAgICAgIHR5cGVkZWYgSCBoYXNoZXI7CisgICAgICAgIHR5cGVkZWYgUCBrZXlfZXF1YWw7CisgICAgICAgIHR5cGVkZWYgQSBhbGxvY2F0b3JfdHlwZTsKKworICAgIHByaXZhdGU6CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OnNldDxBLCBULCBILCBQPiB0eXBlczsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlczo6dHJhaXRzIGFsbG9jYXRvcl90cmFpdHM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdHlwZXM6OnRhYmxlIHRhYmxlOworCisgICAgcHVibGljOgorCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYWxsb2NhdG9yX3RyYWl0czo6cG9pbnRlciBwb2ludGVyOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIGFsbG9jYXRvcl90cmFpdHM6OmNvbnN0X3BvaW50ZXIgY29uc3RfcG9pbnRlcjsKKworICAgICAgICB0eXBlZGVmIHZhbHVlX3R5cGUmIHJlZmVyZW5jZTsKKyAgICAgICAgdHlwZWRlZiB2YWx1ZV90eXBlIGNvbnN0JiBjb25zdF9yZWZlcmVuY2U7CisKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCBzaXplX3R5cGU7CisgICAgICAgIHR5cGVkZWYgc3RkOjpwdHJkaWZmX3QgZGlmZmVyZW5jZV90eXBlOworCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmNsX2l0ZXJhdG9yIGNvbnN0X2xvY2FsX2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpjbF9pdGVyYXRvciBsb2NhbF9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6Y19pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6Y19pdGVyYXRvciBpdGVyYXRvcjsKKworICAgIHByaXZhdGU6CisKKyAgICAgICAgdGFibGUgdGFibGVfOworCisgICAgcHVibGljOgorCisgICAgICAgIC8vIGNvbnN0cnVjdG9ycworCisgICAgICAgIGV4cGxpY2l0IHVub3JkZXJlZF9zZXQoCisgICAgICAgICAgICAgICAgc2l6ZV90eXBlID0gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkZWZhdWx0X2J1Y2tldF9jb3VudCwKKyAgICAgICAgICAgICAgICBjb25zdCBoYXNoZXImID0gaGFzaGVyKCksCisgICAgICAgICAgICAgICAgY29uc3Qga2V5X2VxdWFsJiA9IGtleV9lcXVhbCgpLAorICAgICAgICAgICAgICAgIGNvbnN0IGFsbG9jYXRvcl90eXBlJiA9IGFsbG9jYXRvcl90eXBlKCkpOworCisgICAgICAgIGV4cGxpY2l0IHVub3JkZXJlZF9zZXQoYWxsb2NhdG9yX3R5cGUgY29uc3QmKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgSW5wdXRJdD4KKyAgICAgICAgdW5vcmRlcmVkX3NldChJbnB1dEl0LCBJbnB1dEl0KTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgSW5wdXRJdD4KKyAgICAgICAgdW5vcmRlcmVkX3NldCgKKyAgICAgICAgICAgICAgICBJbnB1dEl0LCBJbnB1dEl0LAorICAgICAgICAgICAgICAgIHNpemVfdHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoYXNoZXImID0gaGFzaGVyKCksCisgICAgICAgICAgICAgICAgY29uc3Qga2V5X2VxdWFsJiA9IGtleV9lcXVhbCgpKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgSW5wdXRJdD4KKyAgICAgICAgdW5vcmRlcmVkX3NldCgKKyAgICAgICAgICAgICAgICBJbnB1dEl0LCBJbnB1dEl0LAorICAgICAgICAgICAgICAgIHNpemVfdHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoYXNoZXImLAorICAgICAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCYsCisgICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUmKTsKKworICAgICAgICAvLyBjb3B5L21vdmUgY29uc3RydWN0b3JzCisKKyAgICAgICAgdW5vcmRlcmVkX3NldCh1bm9yZGVyZWRfc2V0IGNvbnN0Jik7CisKKyAgICAgICAgdW5vcmRlcmVkX3NldCh1bm9yZGVyZWRfc2V0IGNvbnN0JiwgYWxsb2NhdG9yX3R5cGUgY29uc3QmKTsKKworI2lmIGRlZmluZWQoQk9PU1RfVU5PUkRFUkVEX1VTRV9NT1ZFKQorICAgICAgICB1bm9yZGVyZWRfc2V0KEJPT1NUX1JWX1JFRih1bm9yZGVyZWRfc2V0KSBvdGhlcikKKyAgICAgICAgICAgIDogdGFibGVfKG90aGVyLnRhYmxlXywgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptb3ZlX3RhZygpKQorICAgICAgICB7CisgICAgICAgIH0KKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorICAgICAgICB1bm9yZGVyZWRfc2V0KHVub3JkZXJlZF9zZXQmJiBvdGhlcikKKyAgICAgICAgICAgIDogdGFibGVfKG90aGVyLnRhYmxlXywgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptb3ZlX3RhZygpKQorICAgICAgICB7CisgICAgICAgIH0KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgIHVub3JkZXJlZF9zZXQodW5vcmRlcmVkX3NldCYmLCBhbGxvY2F0b3JfdHlwZSBjb25zdCYpOworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyAgICAgICAgdW5vcmRlcmVkX3NldCgKKyAgICAgICAgICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dmFsdWVfdHlwZT4sCisgICAgICAgICAgICAgICAgc2l6ZV90eXBlID0gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkZWZhdWx0X2J1Y2tldF9jb3VudCwKKyAgICAgICAgICAgICAgICBjb25zdCBoYXNoZXImID0gaGFzaGVyKCksCisgICAgICAgICAgICAgICAgY29uc3Qga2V5X2VxdWFsJmwgPSBrZXlfZXF1YWwoKSwKKyAgICAgICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSYgPSBhbGxvY2F0b3JfdHlwZSgpKTsKKyNlbmRpZgorCisgICAgICAgIC8vIERlc3RydWN0b3IKKworICAgICAgICB+dW5vcmRlcmVkX3NldCgpOworCisgICAgICAgIC8vIEFzc2lnbgorCisjaWYgZGVmaW5lZChCT09TVF9VTk9SREVSRURfVVNFX01PVkUpCisgICAgICAgIHVub3JkZXJlZF9zZXQmIG9wZXJhdG9yPShCT09TVF9DT1BZX0FTU0lHTl9SRUYodW5vcmRlcmVkX3NldCkgeCkKKyAgICAgICAgeworICAgICAgICAgICAgdGFibGVfLmFzc2lnbih4LnRhYmxlXyk7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICB1bm9yZGVyZWRfc2V0JiBvcGVyYXRvcj0oQk9PU1RfUlZfUkVGKHVub3JkZXJlZF9zZXQpIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhYmxlXy5tb3ZlX2Fzc2lnbih4LnRhYmxlXyk7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIHVub3JkZXJlZF9zZXQmIG9wZXJhdG9yPSh1bm9yZGVyZWRfc2V0IGNvbnN0JiB4KQorICAgICAgICB7CisgICAgICAgICAgICB0YWJsZV8uYXNzaWduKHgudGFibGVfKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgIHVub3JkZXJlZF9zZXQmIG9wZXJhdG9yPSh1bm9yZGVyZWRfc2V0JiYgeCkKKyAgICAgICAgeworICAgICAgICAgICAgdGFibGVfLm1vdmVfYXNzaWduKHgudGFibGVfKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKQorICAgICAgICB1bm9yZGVyZWRfc2V0JiBvcGVyYXRvcj0oc3RkOjppbml0aWFsaXplcl9saXN0PHZhbHVlX3R5cGU+KTsKKyNlbmRpZgorCisgICAgICAgIGFsbG9jYXRvcl90eXBlIGdldF9hbGxvY2F0b3IoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLm5vZGVfYWxsb2MoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNpemUgYW5kIGNhcGFjaXR5CisKKyAgICAgICAgYm9vbCBlbXB0eSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uc2l6ZV8gPT0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdHlwZSBzaXplKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5zaXplXzsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdHlwZSBtYXhfc2l6ZSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUOworCisgICAgICAgIC8vIGl0ZXJhdG9ycworCisgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5iZWdpbigpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmJlZ2luKCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBlbmQoKSBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3IoKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgY2JlZ2luKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5iZWdpbigpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgY2VuZCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZW1wbGFjZQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gQXJncz4KKyAgICAgICAgc3RkOjpwYWlyPGl0ZXJhdG9yLCBib29sPiBlbXBsYWNlKEJPT1NUX0ZXRF9SRUYoQXJncykuLi4gYXJncykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5lbXBsYWNlKG5kbmJvb3N0Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBBcmdzPgorICAgICAgICBpdGVyYXRvciBlbXBsYWNlX2hpbnQoY29uc3RfaXRlcmF0b3IsIEJPT1NUX0ZXRF9SRUYoQXJncykuLi4gYXJncykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5lbXBsYWNlKG5kbmJvb3N0Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKS5maXJzdDsKKyAgICAgICAgfQorI2Vsc2UKKworI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fU1VOUFJPX0NDLCBCT09TVF9URVNURURfQVQoMHg1MTAwKSkKKworICAgICAgICAvLyAwIGFyZ3VtZW50IGVtcGxhY2UgcmVxdWlyZXMgc3BlY2lhbCB0cmVhdG1lbnQgaW4gY2FzZQorICAgICAgICAvLyB0aGUgY29udGFpbmVyIGlzIGluc3RhbnRpYXRlZCB3aXRoIGEgdmFsdWUgdHlwZSB0aGF0CisgICAgICAgIC8vIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IuCisKKyAgICAgICAgc3RkOjpwYWlyPGl0ZXJhdG9yLCBib29sPiBlbXBsYWNlKAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZW1wdHlfZW1wbGFjZQorICAgICAgICAgICAgICAgICAgICA9IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZW1wdHlfZW1wbGFjZSgpLAorICAgICAgICAgICAgICAgIHZhbHVlX3R5cGUgdiA9IHZhbHVlX3R5cGUoKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmVtcGxhY2UobmRuYm9vc3Q6Om1vdmUodikpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZV9oaW50KGNvbnN0X2l0ZXJhdG9yIGhpbnQsCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbXB0eV9lbXBsYWNlCisgICAgICAgICAgICAgICAgICAgID0gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbXB0eV9lbXBsYWNlKCksCisgICAgICAgICAgICAgICAgdmFsdWVfdHlwZSB2ID0gdmFsdWVfdHlwZSgpCisgICAgICAgICAgICApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLT5lbXBsYWNlX2hpbnQoaGludCwgbmRuYm9vc3Q6Om1vdmUodikpOworICAgICAgICB9CisKKyNlbmRpZgorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMD4KKyAgICAgICAgc3RkOjpwYWlyPGl0ZXJhdG9yLCBib29sPiBlbXBsYWNlKEJPT1NUX0ZXRF9SRUYoQTApIGEwKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMD4KKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZV9oaW50KGNvbnN0X2l0ZXJhdG9yLCBCT09TVF9GV0RfUkVGKEEwKSBhMCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5lbXBsYWNlKAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y3JlYXRlX2VtcGxhY2VfYXJncygKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTA+KGEwKSkKKyAgICAgICAgICAgICkuZmlyc3Q7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQTAsIHR5cGVuYW1lIEExPgorICAgICAgICBzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+IGVtcGxhY2UoCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEEwKSBhMCwKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTEpIGExKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYTEpKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMCwgdHlwZW5hbWUgQTE+CisgICAgICAgIGl0ZXJhdG9yIGVtcGxhY2VfaGludChjb25zdF9pdGVyYXRvciwKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTApIGEwLAorICAgICAgICAgICAgQk9PU1RfRldEX1JFRihBMSkgYTEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uZW1wbGFjZSgKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNyZWF0ZV9lbXBsYWNlX2FyZ3MoCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpmb3J3YXJkPEEwPihhMCksCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpmb3J3YXJkPEExPihhMSkpCisgICAgICAgICAgICApLmZpcnN0OworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEEwLCB0eXBlbmFtZSBBMSwgdHlwZW5hbWUgQTI+CisgICAgICAgIHN0ZDo6cGFpcjxpdGVyYXRvciwgYm9vbD4gZW1wbGFjZSgKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTApIGEwLAorICAgICAgICAgICAgQk9PU1RfRldEX1JFRihBMSkgYTEsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEEyKSBhMikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5lbXBsYWNlKAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y3JlYXRlX2VtcGxhY2VfYXJncygKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTA+KGEwKSwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTE+KGExKSwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTI+KGEyKSkKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQTAsIHR5cGVuYW1lIEExLCB0eXBlbmFtZSBBMj4KKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZV9oaW50KGNvbnN0X2l0ZXJhdG9yLAorICAgICAgICAgICAgQk9PU1RfRldEX1JFRihBMCkgYTAsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEExKSBhMSwKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTIpIGEyKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYTEpLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMj4oYTIpKQorICAgICAgICAgICAgKS5maXJzdDsKKyAgICAgICAgfQorCisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFKHosIG4sIF8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdGVtcGxhdGUgPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNX1BBUkFNU19aKHosIG4sIHR5cGVuYW1lIEEpICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgc3RkOjpwYWlyPGl0ZXJhdG9yLCBib29sPiBlbXBsYWNlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV8jI3oobiwgQk9PU1RfVU5PUkRFUkVEX0ZXRF9QQVJBTSwgYSkgICAgICBcCisgICAgICAgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y3JlYXRlX2VtcGxhY2VfYXJncyggICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV8jI3oobiwgQk9PU1RfVU5PUkRFUkVEX0NBTExfRk9SV0FSRCwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0ZW1wbGF0ZSA8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgdHlwZW5hbWUgQSkgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpdGVyYXRvciBlbXBsYWNlX2hpbnQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBjb25zdF9pdGVyYXRvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV8jI3oobiwgQk9PU1RfVU5PUkRFUkVEX0ZXRF9QQVJBTSwgYSkgICAgICBcCisgICAgICAgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y3JlYXRlX2VtcGxhY2VfYXJncyggICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV8jI3oobiwgQk9PU1RfVU5PUkRFUkVEX0NBTExfRk9SV0FSRCwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKSkuZmlyc3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfQorCisgICAgICAgIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPKDQsIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFX0xJTUlULAorICAgICAgICAgICAgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0UsIF8pCisKKyN1bmRlZiBCT09TVF9VTk9SREVSRURfRU1QTEFDRQorCisjZW5kaWYKKworICAgICAgICBzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+IGluc2VydCh2YWx1ZV90eXBlIGNvbnN0JiB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZW1wbGFjZSh4KTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ZDo6cGFpcjxpdGVyYXRvciwgYm9vbD4gaW5zZXJ0KEJPT1NUX1VOT1JERVJFRF9SVl9SRUYodmFsdWVfdHlwZSkgeCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmVtcGxhY2UobmRuYm9vc3Q6Om1vdmUoeCkpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IgaW5zZXJ0KGNvbnN0X2l0ZXJhdG9yIGhpbnQsIHZhbHVlX3R5cGUgY29uc3QmIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLT5lbXBsYWNlX2hpbnQoaGludCwgeCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBpbnNlcnQoY29uc3RfaXRlcmF0b3IgaGludCwKKyAgICAgICAgICAgICAgICBCT09TVF9VTk9SREVSRURfUlZfUkVGKHZhbHVlX3R5cGUpIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLT5lbXBsYWNlX2hpbnQoaGludCwgbmRuYm9vc3Q6Om1vdmUoeCkpOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+IHZvaWQgaW5zZXJ0KElucHV0SXQsIElucHV0SXQpOworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QpCisgICAgICAgIHZvaWQgaW5zZXJ0KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx2YWx1ZV90eXBlPik7CisjZW5kaWYKKworICAgICAgICBpdGVyYXRvciBlcmFzZShjb25zdF9pdGVyYXRvcik7CisgICAgICAgIHNpemVfdHlwZSBlcmFzZShjb25zdCBrZXlfdHlwZSYpOworICAgICAgICBpdGVyYXRvciBlcmFzZShjb25zdF9pdGVyYXRvciwgY29uc3RfaXRlcmF0b3IpOworICAgICAgICB2b2lkIHF1aWNrX2VyYXNlKGNvbnN0X2l0ZXJhdG9yIGl0KSB7IGVyYXNlKGl0KTsgfQorICAgICAgICB2b2lkIGVyYXNlX3JldHVybl92b2lkKGNvbnN0X2l0ZXJhdG9yIGl0KSB7IGVyYXNlKGl0KTsgfQorCisgICAgICAgIHZvaWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCBzd2FwKHVub3JkZXJlZF9zZXQmKTsKKworICAgICAgICAvLyBvYnNlcnZlcnMKKworICAgICAgICBoYXNoZXIgaGFzaF9mdW5jdGlvbigpIGNvbnN0OworICAgICAgICBrZXlfZXF1YWwga2V5X2VxKCkgY29uc3Q7CisKKyAgICAgICAgLy8gbG9va3VwCisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgZmluZChjb25zdCBrZXlfdHlwZSYpIGNvbnN0OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBDb21wYXRpYmxlS2V5LCBjbGFzcyBDb21wYXRpYmxlSGFzaCwKKyAgICAgICAgICAgIGNsYXNzIENvbXBhdGlibGVQcmVkaWNhdGU+CisgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGZpbmQoCisgICAgICAgICAgICAgICAgQ29tcGF0aWJsZUtleSBjb25zdCYsCisgICAgICAgICAgICAgICAgQ29tcGF0aWJsZUhhc2ggY29uc3QmLAorICAgICAgICAgICAgICAgIENvbXBhdGlibGVQcmVkaWNhdGUgY29uc3QmKSBjb25zdDsKKworICAgICAgICBzaXplX3R5cGUgY291bnQoY29uc3Qga2V5X3R5cGUmKSBjb25zdDsKKworICAgICAgICBzdGQ6OnBhaXI8Y29uc3RfaXRlcmF0b3IsIGNvbnN0X2l0ZXJhdG9yPgorICAgICAgICBlcXVhbF9yYW5nZShjb25zdCBrZXlfdHlwZSYpIGNvbnN0OworCisgICAgICAgIC8vIGJ1Y2tldCBpbnRlcmZhY2UKKworICAgICAgICBzaXplX3R5cGUgYnVja2V0X2NvdW50KCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5idWNrZXRfY291bnRfOworICAgICAgICB9CisKKyAgICAgICAgc2l6ZV90eXBlIG1heF9idWNrZXRfY291bnQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLm1heF9idWNrZXRfY291bnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdHlwZSBidWNrZXRfc2l6ZShzaXplX3R5cGUpIGNvbnN0OworCisgICAgICAgIHNpemVfdHlwZSBidWNrZXQoY29uc3Qga2V5X3R5cGUmIGspIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uaGFzaF90b19idWNrZXQodGFibGVfLmhhc2goaykpOworICAgICAgICB9CisKKyAgICAgICAgbG9jYWxfaXRlcmF0b3IgYmVnaW4oc2l6ZV90eXBlIG4pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbF9pdGVyYXRvcigKKyAgICAgICAgICAgICAgICB0YWJsZV8uYmVnaW4obiksIG4sIHRhYmxlXy5idWNrZXRfY291bnRfKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X2xvY2FsX2l0ZXJhdG9yIGJlZ2luKHNpemVfdHlwZSBuKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfbG9jYWxfaXRlcmF0b3IoCisgICAgICAgICAgICAgICAgdGFibGVfLmJlZ2luKG4pLCBuLCB0YWJsZV8uYnVja2V0X2NvdW50Xyk7CisgICAgICAgIH0KKworICAgICAgICBsb2NhbF9pdGVyYXRvciBlbmQoc2l6ZV90eXBlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxfaXRlcmF0b3IoKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X2xvY2FsX2l0ZXJhdG9yIGVuZChzaXplX3R5cGUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9sb2NhbF9pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfbG9jYWxfaXRlcmF0b3IgY2JlZ2luKHNpemVfdHlwZSBuKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfbG9jYWxfaXRlcmF0b3IoCisgICAgICAgICAgICAgICAgdGFibGVfLmJlZ2luKG4pLCBuLCB0YWJsZV8uYnVja2V0X2NvdW50Xyk7CisgICAgICAgIH0KKworICAgICAgICBjb25zdF9sb2NhbF9pdGVyYXRvciBjZW5kKHNpemVfdHlwZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2xvY2FsX2l0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBoYXNoIHBvbGljeQorCisgICAgICAgIGZsb2F0IG1heF9sb2FkX2ZhY3RvcigpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8ubWxmXzsKKyAgICAgICAgfQorCisgICAgICAgIGZsb2F0IGxvYWRfZmFjdG9yKCkgY29uc3QgQk9PU1RfTk9FWENFUFQ7CisgICAgICAgIHZvaWQgbWF4X2xvYWRfZmFjdG9yKGZsb2F0KSBCT09TVF9OT0VYQ0VQVDsKKyAgICAgICAgdm9pZCByZWhhc2goc2l6ZV90eXBlKTsKKyAgICAgICAgdm9pZCByZXNlcnZlKHNpemVfdHlwZSk7CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHgwNTgyKQorICAgICAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09PFQsSCxQLEE+KAorICAgICAgICAgICAgICAgIHVub3JkZXJlZF9zZXQgY29uc3QmLCB1bm9yZGVyZWRfc2V0IGNvbnN0Jik7CisgICAgICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT08VCxILFAsQT4oCisgICAgICAgICAgICAgICAgdW5vcmRlcmVkX3NldCBjb25zdCYsIHVub3JkZXJlZF9zZXQgY29uc3QmKTsKKyNlbmRpZgorICAgIH07IC8vIGNsYXNzIHRlbXBsYXRlIHVub3JkZXJlZF9zZXQKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIGNsYXNzIHVub3JkZXJlZF9tdWx0aXNldAorICAgIHsKKyNpZiBkZWZpbmVkKEJPT1NUX1VOT1JERVJFRF9VU0VfTU9WRSkKKyAgICAgICAgQk9PU1RfQ09QWUFCTEVfQU5EX01PVkFCTEUodW5vcmRlcmVkX211bHRpc2V0KQorI2VuZGlmCisgICAgcHVibGljOgorCisgICAgICAgIHR5cGVkZWYgVCBrZXlfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisgICAgICAgIHR5cGVkZWYgSCBoYXNoZXI7CisgICAgICAgIHR5cGVkZWYgUCBrZXlfZXF1YWw7CisgICAgICAgIHR5cGVkZWYgQSBhbGxvY2F0b3JfdHlwZTsKKworICAgIHByaXZhdGU6CisKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om11bHRpc2V0PEEsIFQsIEgsIFA+IHR5cGVzOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHR5cGVzOjp0cmFpdHMgYWxsb2NhdG9yX3RyYWl0czsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0eXBlczo6dGFibGUgdGFibGU7CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhbGxvY2F0b3JfdHJhaXRzOjpwb2ludGVyIHBvaW50ZXI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYWxsb2NhdG9yX3RyYWl0czo6Y29uc3RfcG9pbnRlciBjb25zdF9wb2ludGVyOworCisgICAgICAgIHR5cGVkZWYgdmFsdWVfdHlwZSYgcmVmZXJlbmNlOworICAgICAgICB0eXBlZGVmIHZhbHVlX3R5cGUgY29uc3QmIGNvbnN0X3JlZmVyZW5jZTsKKworICAgICAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90IHNpemVfdHlwZTsKKyAgICAgICAgdHlwZWRlZiBzdGQ6OnB0cmRpZmZfdCBkaWZmZXJlbmNlX3R5cGU7CisKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSB0YWJsZTo6Y2xfaXRlcmF0b3IgY29uc3RfbG9jYWxfaXRlcmF0b3I7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgdGFibGU6OmNsX2l0ZXJhdG9yIGxvY2FsX2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpjX2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIHRhYmxlOjpjX2l0ZXJhdG9yIGl0ZXJhdG9yOworCisgICAgcHJpdmF0ZToKKworICAgICAgICB0YWJsZSB0YWJsZV87CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgLy8gY29uc3RydWN0b3JzCisKKyAgICAgICAgZXhwbGljaXQgdW5vcmRlcmVkX211bHRpc2V0KAorICAgICAgICAgICAgICAgIHNpemVfdHlwZSA9IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVmYXVsdF9idWNrZXRfY291bnQsCisgICAgICAgICAgICAgICAgY29uc3QgaGFzaGVyJiA9IGhhc2hlcigpLAorICAgICAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCYgPSBrZXlfZXF1YWwoKSwKKyAgICAgICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSYgPSBhbGxvY2F0b3JfdHlwZSgpKTsKKworICAgICAgICBleHBsaWNpdCB1bm9yZGVyZWRfbXVsdGlzZXQoYWxsb2NhdG9yX3R5cGUgY29uc3QmKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgSW5wdXRJdD4KKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0KElucHV0SXQsIElucHV0SXQpOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBJbnB1dEl0PgorICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQoCisgICAgICAgICAgICAgICAgSW5wdXRJdCwgSW5wdXRJdCwKKyAgICAgICAgICAgICAgICBzaXplX3R5cGUsCisgICAgICAgICAgICAgICAgY29uc3QgaGFzaGVyJiA9IGhhc2hlcigpLAorICAgICAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCYgPSBrZXlfZXF1YWwoKSk7CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCgKKyAgICAgICAgICAgICAgICBJbnB1dEl0LCBJbnB1dEl0LAorICAgICAgICAgICAgICAgIHNpemVfdHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoYXNoZXImLAorICAgICAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCYsCisgICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUmKTsKKworICAgICAgICAvLyBjb3B5L21vdmUgY29uc3RydWN0b3JzCisKKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0KHVub3JkZXJlZF9tdWx0aXNldCBjb25zdCYpOworCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCh1bm9yZGVyZWRfbXVsdGlzZXQgY29uc3QmLCBhbGxvY2F0b3JfdHlwZSBjb25zdCYpOworCisjaWYgZGVmaW5lZChCT09TVF9VTk9SREVSRURfVVNFX01PVkUpCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldChCT09TVF9SVl9SRUYodW5vcmRlcmVkX211bHRpc2V0KSBvdGhlcikKKyAgICAgICAgICAgIDogdGFibGVfKG90aGVyLnRhYmxlXywgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjptb3ZlX3RhZygpKQorICAgICAgICB7CisgICAgICAgIH0KKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQodW5vcmRlcmVkX211bHRpc2V0JiYgb3RoZXIpCisgICAgICAgICAgICA6IHRhYmxlXyhvdGhlci50YWJsZV8sIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bW92ZV90YWcoKSkKKyAgICAgICAgeworICAgICAgICB9CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQodW5vcmRlcmVkX211bHRpc2V0JiYsIGFsbG9jYXRvcl90eXBlIGNvbnN0Jik7CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKQorICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQoCisgICAgICAgICAgICAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PHZhbHVlX3R5cGU+LAorICAgICAgICAgICAgICAgIHNpemVfdHlwZSA9IG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVmYXVsdF9idWNrZXRfY291bnQsCisgICAgICAgICAgICAgICAgY29uc3QgaGFzaGVyJiA9IGhhc2hlcigpLAorICAgICAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCZsID0ga2V5X2VxdWFsKCksCisgICAgICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUmID0gYWxsb2NhdG9yX3R5cGUoKSk7CisjZW5kaWYKKworICAgICAgICAvLyBEZXN0cnVjdG9yCisKKyAgICAgICAgfnVub3JkZXJlZF9tdWx0aXNldCgpOworCisgICAgICAgIC8vIEFzc2lnbgorCisjaWYgZGVmaW5lZChCT09TVF9VTk9SREVSRURfVVNFX01PVkUpCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCYgb3BlcmF0b3I9KAorICAgICAgICAgICAgICAgIEJPT1NUX0NPUFlfQVNTSUdOX1JFRih1bm9yZGVyZWRfbXVsdGlzZXQpIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhYmxlXy5hc3NpZ24oeC50YWJsZV8pOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0JiBvcGVyYXRvcj0oQk9PU1RfUlZfUkVGKHVub3JkZXJlZF9tdWx0aXNldCkgeCkKKyAgICAgICAgeworICAgICAgICAgICAgdGFibGVfLm1vdmVfYXNzaWduKHgudGFibGVfKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0JiBvcGVyYXRvcj0odW5vcmRlcmVkX211bHRpc2V0IGNvbnN0JiB4KQorICAgICAgICB7CisgICAgICAgICAgICB0YWJsZV8uYXNzaWduKHgudGFibGVfKTsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCYgb3BlcmF0b3I9KHVub3JkZXJlZF9tdWx0aXNldCYmIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhYmxlXy5tb3ZlX2Fzc2lnbih4LnRhYmxlXyk7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyNlbmRpZgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0JiBvcGVyYXRvcj0oc3RkOjppbml0aWFsaXplcl9saXN0PHZhbHVlX3R5cGU+KTsKKyNlbmRpZgorCisgICAgICAgIGFsbG9jYXRvcl90eXBlIGdldF9hbGxvY2F0b3IoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLm5vZGVfYWxsb2MoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNpemUgYW5kIGNhcGFjaXR5CisKKyAgICAgICAgYm9vbCBlbXB0eSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uc2l6ZV8gPT0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdHlwZSBzaXplKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5zaXplXzsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdHlwZSBtYXhfc2l6ZSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUOworCisgICAgICAgIC8vIGl0ZXJhdG9ycworCisgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCkgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yKHRhYmxlXy5iZWdpbigpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKHRhYmxlXy5iZWdpbigpKTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIGVuZCgpIEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2l0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICBjb25zdF9pdGVyYXRvciBjYmVnaW4oKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfaXRlcmF0b3IodGFibGVfLmJlZ2luKCkpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgY2VuZCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZW1wbGFjZQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gQXJncz4KKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZShCT09TVF9GV0RfUkVGKEFyZ3MpLi4uIGFyZ3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uZW1wbGFjZShuZG5ib29zdDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gQXJncz4KKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZV9oaW50KGNvbnN0X2l0ZXJhdG9yLCBCT09TVF9GV0RfUkVGKEFyZ3MpLi4uIGFyZ3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uZW1wbGFjZShuZG5ib29zdDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgIH0KKyNlbHNlCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgQk9PU1RfVEVTVEVEX0FUKDB4NTEwMCkpCisKKyAgICAgICAgLy8gMCBhcmd1bWVudCBlbXBsYWNlIHJlcXVpcmVzIHNwZWNpYWwgdHJlYXRtZW50IGluIGNhc2UKKyAgICAgICAgLy8gdGhlIGNvbnRhaW5lciBpcyBpbnN0YW50aWF0ZWQgd2l0aCBhIHZhbHVlIHR5cGUgdGhhdAorICAgICAgICAvLyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yLgorCisgICAgICAgIGl0ZXJhdG9yIGVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbXB0eV9lbXBsYWNlCisgICAgICAgICAgICAgICAgICAgID0gbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjplbXB0eV9lbXBsYWNlKCksCisgICAgICAgICAgICAgICAgdmFsdWVfdHlwZSB2ID0gdmFsdWVfdHlwZSgpKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZW1wbGFjZShuZG5ib29zdDo6bW92ZSh2KSk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciBlbXBsYWNlX2hpbnQoY29uc3RfaXRlcmF0b3IgaGludCwKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmVtcHR5X2VtcGxhY2UKKyAgICAgICAgICAgICAgICAgICAgPSBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmVtcHR5X2VtcGxhY2UoKSwKKyAgICAgICAgICAgICAgICB2YWx1ZV90eXBlIHYgPSB2YWx1ZV90eXBlKCkKKyAgICAgICAgICAgICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmVtcGxhY2VfaGludChoaW50LCBuZG5ib29zdDo6bW92ZSh2KSk7CisgICAgICAgIH0KKworI2VuZGlmCisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEEwPgorICAgICAgICBpdGVyYXRvciBlbXBsYWNlKEJPT1NUX0ZXRF9SRUYoQTApIGEwKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMD4KKyAgICAgICAgaXRlcmF0b3IgZW1wbGFjZV9oaW50KGNvbnN0X2l0ZXJhdG9yLCBCT09TVF9GV0RfUkVGKEEwKSBhMCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5lbXBsYWNlKAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y3JlYXRlX2VtcGxhY2VfYXJncygKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTA+KGEwKSkKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQTAsIHR5cGVuYW1lIEExPgorICAgICAgICBpdGVyYXRvciBlbXBsYWNlKAorICAgICAgICAgICAgQk9PU1RfRldEX1JFRihBMCkgYTAsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEExKSBhMSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5lbXBsYWNlKAorICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6Y3JlYXRlX2VtcGxhY2VfYXJncygKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTA+KGEwKSwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OmZvcndhcmQ8QTE+KGExKSkKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQTAsIHR5cGVuYW1lIEExPgorICAgICAgICBpdGVyYXRvciBlbXBsYWNlX2hpbnQoY29uc3RfaXRlcmF0b3IsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEEwKSBhMCwKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTEpIGExKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYTEpKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMCwgdHlwZW5hbWUgQTEsIHR5cGVuYW1lIEEyPgorICAgICAgICBpdGVyYXRvciBlbXBsYWNlKAorICAgICAgICAgICAgQk9PU1RfRldEX1JFRihBMCkgYTAsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEExKSBhMSwKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTIpIGEyKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLmVtcGxhY2UoCisgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMD4oYTApLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMT4oYTEpLAorICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6Zm9yd2FyZDxBMj4oYTIpKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBBMCwgdHlwZW5hbWUgQTEsIHR5cGVuYW1lIEEyPgorICAgICAgICBpdGVyYXRvciBlbXBsYWNlX2hpbnQoY29uc3RfaXRlcmF0b3IsCisgICAgICAgICAgICBCT09TVF9GV0RfUkVGKEEwKSBhMCwKKyAgICAgICAgICAgIEJPT1NUX0ZXRF9SRUYoQTEpIGExLAorICAgICAgICAgICAgQk9PU1RfRldEX1JFRihBMikgYTIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uZW1wbGFjZSgKKyAgICAgICAgICAgICAgICBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmNyZWF0ZV9lbXBsYWNlX2FyZ3MoCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpmb3J3YXJkPEEwPihhMCksCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpmb3J3YXJkPEExPihhMSksCisgICAgICAgICAgICAgICAgICAgIG5kbmJvb3N0Ojpmb3J3YXJkPEEyPihhMikpCisgICAgICAgICAgICApOworICAgICAgICB9CisKKyNkZWZpbmUgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0UoeiwgbiwgXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0ZW1wbGF0ZSA8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgbiwgdHlwZW5hbWUgQSkgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpdGVyYXRvciBlbXBsYWNlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfRldEX1BBUkFNLCBhKSAgICAgIFwKKyAgICAgICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZV8uZW1wbGFjZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKCAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfQ0FMTF9GT1JXQVJELCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICApKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHRlbXBsYXRlIDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBuLCB0eXBlbmFtZSBBKSAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGl0ZXJhdG9yIGVtcGxhY2VfaGludCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfRldEX1BBUkFNLCBhKSAgICAgIFwKKyAgICAgICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZV8uZW1wbGFjZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgbmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpjcmVhdGVfZW1wbGFjZV9hcmdzKCAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9QUF9FTlVNXyMjeihuLCBCT09TVF9VTk9SREVSRURfQ0FMTF9GT1JXQVJELCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICApKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9CisKKyAgICAgICAgQk9PU1RfUFBfUkVQRUFUX0ZST01fVE8oNCwgQk9PU1RfVU5PUkRFUkVEX0VNUExBQ0VfTElNSVQsCisgICAgICAgICAgICBCT09TVF9VTk9SREVSRURfRU1QTEFDRSwgXykKKworI3VuZGVmIEJPT1NUX1VOT1JERVJFRF9FTVBMQUNFCisKKyNlbmRpZgorCisgICAgICAgIGl0ZXJhdG9yIGluc2VydCh2YWx1ZV90eXBlIGNvbnN0JiB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZW1wbGFjZSh4KTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIGluc2VydChCT09TVF9VTk9SREVSRURfUlZfUkVGKHZhbHVlX3R5cGUpIHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLT5lbXBsYWNlKG5kbmJvb3N0Ojptb3ZlKHgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yIGluc2VydChjb25zdF9pdGVyYXRvciBoaW50LCB2YWx1ZV90eXBlIGNvbnN0JiB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZW1wbGFjZV9oaW50KGhpbnQsIHgpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IgaW5zZXJ0KGNvbnN0X2l0ZXJhdG9yIGhpbnQsCisgICAgICAgICAgICAgICAgQk9PU1RfVU5PUkRFUkVEX1JWX1JFRih2YWx1ZV90eXBlKSB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZW1wbGFjZV9oaW50KGhpbnQsIG5kbmJvb3N0Ojptb3ZlKHgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBJbnB1dEl0PiB2b2lkIGluc2VydChJbnB1dEl0LCBJbnB1dEl0KTsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKQorICAgICAgICB2b2lkIGluc2VydChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dmFsdWVfdHlwZT4pOworI2VuZGlmCisKKyAgICAgICAgaXRlcmF0b3IgZXJhc2UoY29uc3RfaXRlcmF0b3IpOworICAgICAgICBzaXplX3R5cGUgZXJhc2UoY29uc3Qga2V5X3R5cGUmKTsKKyAgICAgICAgaXRlcmF0b3IgZXJhc2UoY29uc3RfaXRlcmF0b3IsIGNvbnN0X2l0ZXJhdG9yKTsKKyAgICAgICAgdm9pZCBxdWlja19lcmFzZShjb25zdF9pdGVyYXRvciBpdCkgeyBlcmFzZShpdCk7IH0KKyAgICAgICAgdm9pZCBlcmFzZV9yZXR1cm5fdm9pZChjb25zdF9pdGVyYXRvciBpdCkgeyBlcmFzZShpdCk7IH0KKworICAgICAgICB2b2lkIGNsZWFyKCk7CisgICAgICAgIHZvaWQgc3dhcCh1bm9yZGVyZWRfbXVsdGlzZXQmKTsKKworICAgICAgICAvLyBvYnNlcnZlcnMKKworICAgICAgICBoYXNoZXIgaGFzaF9mdW5jdGlvbigpIGNvbnN0OworICAgICAgICBrZXlfZXF1YWwga2V5X2VxKCkgY29uc3Q7CisKKyAgICAgICAgLy8gbG9va3VwCisKKyAgICAgICAgY29uc3RfaXRlcmF0b3IgZmluZChjb25zdCBrZXlfdHlwZSYpIGNvbnN0OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBDb21wYXRpYmxlS2V5LCBjbGFzcyBDb21wYXRpYmxlSGFzaCwKKyAgICAgICAgICAgIGNsYXNzIENvbXBhdGlibGVQcmVkaWNhdGU+CisgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGZpbmQoCisgICAgICAgICAgICAgICAgQ29tcGF0aWJsZUtleSBjb25zdCYsCisgICAgICAgICAgICAgICAgQ29tcGF0aWJsZUhhc2ggY29uc3QmLAorICAgICAgICAgICAgICAgIENvbXBhdGlibGVQcmVkaWNhdGUgY29uc3QmKSBjb25zdDsKKworICAgICAgICBzaXplX3R5cGUgY291bnQoY29uc3Qga2V5X3R5cGUmKSBjb25zdDsKKworICAgICAgICBzdGQ6OnBhaXI8Y29uc3RfaXRlcmF0b3IsIGNvbnN0X2l0ZXJhdG9yPgorICAgICAgICBlcXVhbF9yYW5nZShjb25zdCBrZXlfdHlwZSYpIGNvbnN0OworCisgICAgICAgIC8vIGJ1Y2tldCBpbnRlcmZhY2UKKworICAgICAgICBzaXplX3R5cGUgYnVja2V0X2NvdW50KCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlXy5idWNrZXRfY291bnRfOworICAgICAgICB9CisKKyAgICAgICAgc2l6ZV90eXBlIG1heF9idWNrZXRfY291bnQoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdGFibGVfLm1heF9idWNrZXRfY291bnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdHlwZSBidWNrZXRfc2l6ZShzaXplX3R5cGUpIGNvbnN0OworCisgICAgICAgIHNpemVfdHlwZSBidWNrZXQoY29uc3Qga2V5X3R5cGUmIGspIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8uaGFzaF90b19idWNrZXQodGFibGVfLmhhc2goaykpOworICAgICAgICB9CisKKyAgICAgICAgbG9jYWxfaXRlcmF0b3IgYmVnaW4oc2l6ZV90eXBlIG4pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbF9pdGVyYXRvcigKKyAgICAgICAgICAgICAgICB0YWJsZV8uYmVnaW4obiksIG4sIHRhYmxlXy5idWNrZXRfY291bnRfKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X2xvY2FsX2l0ZXJhdG9yIGJlZ2luKHNpemVfdHlwZSBuKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfbG9jYWxfaXRlcmF0b3IoCisgICAgICAgICAgICAgICAgdGFibGVfLmJlZ2luKG4pLCBuLCB0YWJsZV8uYnVja2V0X2NvdW50Xyk7CisgICAgICAgIH0KKworICAgICAgICBsb2NhbF9pdGVyYXRvciBlbmQoc2l6ZV90eXBlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxfaXRlcmF0b3IoKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0X2xvY2FsX2l0ZXJhdG9yIGVuZChzaXplX3R5cGUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9sb2NhbF9pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RfbG9jYWxfaXRlcmF0b3IgY2JlZ2luKHNpemVfdHlwZSBuKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29uc3RfbG9jYWxfaXRlcmF0b3IoCisgICAgICAgICAgICAgICAgdGFibGVfLmJlZ2luKG4pLCBuLCB0YWJsZV8uYnVja2V0X2NvdW50Xyk7CisgICAgICAgIH0KKworICAgICAgICBjb25zdF9sb2NhbF9pdGVyYXRvciBjZW5kKHNpemVfdHlwZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2xvY2FsX2l0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBoYXNoIHBvbGljeQorCisgICAgICAgIGZsb2F0IG1heF9sb2FkX2ZhY3RvcigpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWJsZV8ubWxmXzsKKyAgICAgICAgfQorCisgICAgICAgIGZsb2F0IGxvYWRfZmFjdG9yKCkgY29uc3QgQk9PU1RfTk9FWENFUFQ7CisgICAgICAgIHZvaWQgbWF4X2xvYWRfZmFjdG9yKGZsb2F0KSBCT09TVF9OT0VYQ0VQVDsKKyAgICAgICAgdm9pZCByZWhhc2goc2l6ZV90eXBlKTsKKyAgICAgICAgdm9pZCByZXNlcnZlKHNpemVfdHlwZSk7CisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHgwNTgyKQorICAgICAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09PFQsSCxQLEE+KAorICAgICAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCBjb25zdCYsIHVub3JkZXJlZF9tdWx0aXNldCBjb25zdCYpOworICAgICAgICBmcmllbmQgYm9vbCBvcGVyYXRvciE9PFQsSCxQLEE+KAorICAgICAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCBjb25zdCYsIHVub3JkZXJlZF9tdWx0aXNldCBjb25zdCYpOworI2VuZGlmCisgICAgfTsgLy8gY2xhc3MgdGVtcGxhdGUgdW5vcmRlcmVkX211bHRpc2V0CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+Ojp1bm9yZGVyZWRfc2V0KAorICAgICAgICAgICAgc2l6ZV90eXBlIG4sIGNvbnN0IGhhc2hlciAmaGYsIGNvbnN0IGtleV9lcXVhbCAmZXFsLAorICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJmEpCisgICAgICA6IHRhYmxlXyhuLCBoZiwgZXFsLCBhKQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+Ojp1bm9yZGVyZWRfc2V0KGFsbG9jYXRvcl90eXBlIGNvbnN0JiBhKQorICAgICAgOiB0YWJsZV8obmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjpkZWZhdWx0X2J1Y2tldF9jb3VudCwKKyAgICAgICAgICAgIGhhc2hlcigpLCBrZXlfZXF1YWwoKSwgYSkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6dW5vcmRlcmVkX3NldCgKKyAgICAgICAgICAgIHVub3JkZXJlZF9zZXQgY29uc3QmIG90aGVyLCBhbGxvY2F0b3JfdHlwZSBjb25zdCYgYSkKKyAgICAgIDogdGFibGVfKG90aGVyLnRhYmxlXywgYSkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6dW5vcmRlcmVkX3NldChJbnB1dEl0IGYsIElucHV0SXQgbCkKKyAgICAgIDogdGFibGVfKG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aW5pdGlhbF9zaXplKGYsIGwpLAorICAgICAgICBoYXNoZXIoKSwga2V5X2VxdWFsKCksIGFsbG9jYXRvcl90eXBlKCkpCisgICAgeworICAgICAgICB0YWJsZV8uaW5zZXJ0X3JhbmdlKGYsIGwpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHRlbXBsYXRlIDxjbGFzcyBJbnB1dEl0PgorICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OnVub3JkZXJlZF9zZXQoCisgICAgICAgICAgICBJbnB1dEl0IGYsIElucHV0SXQgbCwKKyAgICAgICAgICAgIHNpemVfdHlwZSBuLAorICAgICAgICAgICAgY29uc3QgaGFzaGVyICZoZiwKKyAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCAmZXFsKQorICAgICAgOiB0YWJsZV8obmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbml0aWFsX3NpemUoZiwgbCwgbiksCisgICAgICAgICAgICBoZiwgZXFsLCBhbGxvY2F0b3JfdHlwZSgpKQorICAgIHsKKyAgICAgICAgdGFibGVfLmluc2VydF9yYW5nZShmLCBsKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6dW5vcmRlcmVkX3NldCgKKyAgICAgICAgICAgIElucHV0SXQgZiwgSW5wdXRJdCBsLAorICAgICAgICAgICAgc2l6ZV90eXBlIG4sCisgICAgICAgICAgICBjb25zdCBoYXNoZXIgJmhmLAorICAgICAgICAgICAgY29uc3Qga2V5X2VxdWFsICZlcWwsCisgICAgICAgICAgICBjb25zdCBhbGxvY2F0b3JfdHlwZSAmYSkKKyAgICAgIDogdGFibGVfKG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aW5pdGlhbF9zaXplKGYsIGwsIG4pLCBoZiwgZXFsLCBhKQorICAgIHsKKyAgICAgICAgdGFibGVfLmluc2VydF9yYW5nZShmLCBsKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6fnVub3JkZXJlZF9zZXQoKSB7fQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6dW5vcmRlcmVkX3NldCgKKyAgICAgICAgICAgIHVub3JkZXJlZF9zZXQgY29uc3QmIG90aGVyKQorICAgICAgOiB0YWJsZV8ob3RoZXIudGFibGVfKQorICAgIHsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OnVub3JkZXJlZF9zZXQoCisgICAgICAgICAgICB1bm9yZGVyZWRfc2V0JiYgb3RoZXIsIGFsbG9jYXRvcl90eXBlIGNvbnN0JiBhKQorICAgICAgOiB0YWJsZV8ob3RoZXIudGFibGVfLCBhLCBuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6Om1vdmVfdGFnKCkpCisgICAgeworICAgIH0KKworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OnVub3JkZXJlZF9zZXQoCisgICAgICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dmFsdWVfdHlwZT4gbGlzdCwgc2l6ZV90eXBlIG4sCisgICAgICAgICAgICBjb25zdCBoYXNoZXIgJmhmLCBjb25zdCBrZXlfZXF1YWwgJmVxbCwgY29uc3QgYWxsb2NhdG9yX3R5cGUgJmEpCisgICAgICA6IHRhYmxlXygKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aW5pdGlhbF9zaXplKAorICAgICAgICAgICAgICAgIGxpc3QuYmVnaW4oKSwgbGlzdC5lbmQoKSwgbiksCisgICAgICAgICAgICBoZiwgZXFsLCBhKQorICAgIHsKKyAgICAgICAgdGFibGVfLmluc2VydF9yYW5nZShsaXN0LmJlZ2luKCksIGxpc3QuZW5kKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT4mIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46Om9wZXJhdG9yPSgKKyAgICAgICAgICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx2YWx1ZV90eXBlPiBsaXN0KQorICAgIHsKKyAgICAgICAgdGFibGVfLmNsZWFyKCk7CisgICAgICAgIHRhYmxlXy5pbnNlcnRfcmFuZ2UobGlzdC5iZWdpbigpLCBsaXN0LmVuZCgpKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKyAgICAvLyBzaXplIGFuZCBjYXBhY2l0eQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgc3RkOjpzaXplX3QgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6bWF4X3NpemUoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5tYXhfc2l6ZSgpOworICAgIH0KKworICAgIC8vIG1vZGlmaWVycworCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgdm9pZCB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+OjppbnNlcnQoSW5wdXRJdCBmaXJzdCwgSW5wdXRJdCBsYXN0KQorICAgIHsKKyAgICAgICAgdGFibGVfLmluc2VydF9yYW5nZShmaXJzdCwgbGFzdCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QpCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdm9pZCB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+OjppbnNlcnQoCisgICAgICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dmFsdWVfdHlwZT4gbGlzdCkKKyAgICB7CisgICAgICAgIHRhYmxlXy5pbnNlcnRfcmFuZ2UobGlzdC5iZWdpbigpLCBsaXN0LmVuZCgpKTsKKyAgICB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHR5cGVuYW1lIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46Oml0ZXJhdG9yCisgICAgICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmVyYXNlKGNvbnN0X2l0ZXJhdG9yIHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5lcmFzZShwb3NpdGlvbik7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6c2l6ZV90eXBlCisgICAgICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmVyYXNlKGNvbnN0IGtleV90eXBlJiBrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5lcmFzZV9rZXkoayk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6aXRlcmF0b3IKKyAgICAgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6ZXJhc2UoCisgICAgICAgICAgICBjb25zdF9pdGVyYXRvciBmaXJzdCwgY29uc3RfaXRlcmF0b3IgbGFzdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8uZXJhc2VfcmFuZ2UoZmlyc3QsIGxhc3QpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHZvaWQgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6Y2xlYXIoKQorICAgIHsKKyAgICAgICAgdGFibGVfLmNsZWFyKCk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdm9pZCB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+Ojpzd2FwKHVub3JkZXJlZF9zZXQmIG90aGVyKQorICAgIHsKKyAgICAgICAgdGFibGVfLnN3YXAob3RoZXIudGFibGVfKTsKKyAgICB9CisKKyAgICAvLyBvYnNlcnZlcnMKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHR5cGVuYW1lIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46Omhhc2hlcgorICAgICAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+OjpoYXNoX2Z1bmN0aW9uKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8uaGFzaF9mdW5jdGlvbigpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHR5cGVuYW1lIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmtleV9lcXVhbAorICAgICAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+OjprZXlfZXEoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5rZXlfZXEoKTsKKyAgICB9CisKKyAgICAvLyBsb29rdXAKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHR5cGVuYW1lIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmNvbnN0X2l0ZXJhdG9yCisgICAgICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmZpbmQoY29uc3Qga2V5X3R5cGUmIGspIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGFibGVfLmZpbmRfbm9kZShrKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29tcGF0aWJsZUtleSwgY2xhc3MgQ29tcGF0aWJsZUhhc2gsCisgICAgICAgIGNsYXNzIENvbXBhdGlibGVQcmVkaWNhdGU+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6Y29uc3RfaXRlcmF0b3IKKyAgICAgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6ZmluZCgKKyAgICAgICAgICAgIENvbXBhdGlibGVLZXkgY29uc3QmIGssCisgICAgICAgICAgICBDb21wYXRpYmxlSGFzaCBjb25zdCYgaGFzaCwKKyAgICAgICAgICAgIENvbXBhdGlibGVQcmVkaWNhdGUgY29uc3QmIGVxKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5nZW5lcmljX2ZpbmRfbm9kZShrLCBoYXNoLCBlcSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6c2l6ZV90eXBlCisgICAgICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmNvdW50KGNvbnN0IGtleV90eXBlJiBrKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5jb3VudChrKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICBzdGQ6OnBhaXI8CisgICAgICAgICAgICB0eXBlbmFtZSB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+Ojpjb25zdF9pdGVyYXRvciwKKyAgICAgICAgICAgIHR5cGVuYW1lIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmNvbnN0X2l0ZXJhdG9yPgorICAgICAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+OjplcXVhbF9yYW5nZShjb25zdCBrZXlfdHlwZSYgaykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8uZXF1YWxfcmFuZ2Uoayk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6c2l6ZV90eXBlCisgICAgICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OmJ1Y2tldF9zaXplKHNpemVfdHlwZSBuKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5idWNrZXRfc2l6ZShuKTsKKyAgICB9CisKKyAgICAvLyBoYXNoIHBvbGljeQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgZmxvYXQgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6bG9hZF9mYWN0b3IoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5sb2FkX2ZhY3RvcigpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHZvaWQgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6bWF4X2xvYWRfZmFjdG9yKGZsb2F0IG0pIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0YWJsZV8ubWF4X2xvYWRfZmFjdG9yKG0pOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHZvaWQgdW5vcmRlcmVkX3NldDxULEgsUCxBPjo6cmVoYXNoKHNpemVfdHlwZSBuKQorICAgIHsKKyAgICAgICAgdGFibGVfLnJlaGFzaChuKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB2b2lkIHVub3JkZXJlZF9zZXQ8VCxILFAsQT46OnJlc2VydmUoc2l6ZV90eXBlIG4pCisgICAgeworICAgICAgICB0YWJsZV8ucmVzZXJ2ZShuKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KAorICAgICAgICAgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPiBjb25zdCYgbTEsCisgICAgICAgICAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+IGNvbnN0JiBtMikKKyAgICB7CisjaWYgQk9PU1RfV09SS0FST1VORChfX0NPREVHRUFSQ19fLCBCT09TVF9URVNURURfQVQoMHgwNjEzKSkKKyAgICAgICAgc3RydWN0IGR1bW15IHsgdW5vcmRlcmVkX3NldDxULEgsUCxBPiB4OyB9OworI2VuZGlmCisgICAgICAgIHJldHVybiBtMS50YWJsZV8uZXF1YWxzKG0yLnRhYmxlXyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPSgKKyAgICAgICAgICAgIHVub3JkZXJlZF9zZXQ8VCxILFAsQT4gY29uc3QmIG0xLAorICAgICAgICAgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPiBjb25zdCYgbTIpCisgICAgeworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19DT0RFR0VBUkNfXywgQk9PU1RfVEVTVEVEX0FUKDB4MDYxMykpCisgICAgICAgIHN0cnVjdCBkdW1teSB7IHVub3JkZXJlZF9zZXQ8VCxILFAsQT4geDsgfTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gIW0xLnRhYmxlXy5lcXVhbHMobTIudGFibGVfKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICBpbmxpbmUgdm9pZCBzd2FwKAorICAgICAgICAgICAgdW5vcmRlcmVkX3NldDxULEgsUCxBPiAmbTEsCisgICAgICAgICAgICB1bm9yZGVyZWRfc2V0PFQsSCxQLEE+ICZtMikKKyAgICB7CisjaWYgQk9PU1RfV09SS0FST1VORChfX0NPREVHRUFSQ19fLCBCT09TVF9URVNURURfQVQoMHgwNjEzKSkKKyAgICAgICAgc3RydWN0IGR1bW15IHsgdW5vcmRlcmVkX3NldDxULEgsUCxBPiB4OyB9OworI2VuZGlmCisgICAgICAgIG0xLnN3YXAobTIpOworICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6dW5vcmRlcmVkX211bHRpc2V0KAorICAgICAgICAgICAgc2l6ZV90eXBlIG4sIGNvbnN0IGhhc2hlciAmaGYsIGNvbnN0IGtleV9lcXVhbCAmZXFsLAorICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJmEpCisgICAgICA6IHRhYmxlXyhuLCBoZiwgZXFsLCBhKQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OnVub3JkZXJlZF9tdWx0aXNldChhbGxvY2F0b3JfdHlwZSBjb25zdCYgYSkKKyAgICAgIDogdGFibGVfKG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6ZGVmYXVsdF9idWNrZXRfY291bnQsCisgICAgICAgICAgICBoYXNoZXIoKSwga2V5X2VxdWFsKCksIGEpCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6dW5vcmRlcmVkX211bHRpc2V0KAorICAgICAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0IGNvbnN0JiBvdGhlciwgYWxsb2NhdG9yX3R5cGUgY29uc3QmIGEpCisgICAgICA6IHRhYmxlXyhvdGhlci50YWJsZV8sIGEpCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHRlbXBsYXRlIDxjbGFzcyBJbnB1dEl0PgorICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6dW5vcmRlcmVkX211bHRpc2V0KElucHV0SXQgZiwgSW5wdXRJdCBsKQorICAgICAgOiB0YWJsZV8obmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbml0aWFsX3NpemUoZiwgbCksCisgICAgICAgIGhhc2hlcigpLCBrZXlfZXF1YWwoKSwgYWxsb2NhdG9yX3R5cGUoKSkKKyAgICB7CisgICAgICAgIHRhYmxlXy5pbnNlcnRfcmFuZ2UoZiwgbCk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojp1bm9yZGVyZWRfbXVsdGlzZXQoCisgICAgICAgICAgICBJbnB1dEl0IGYsIElucHV0SXQgbCwKKyAgICAgICAgICAgIHNpemVfdHlwZSBuLAorICAgICAgICAgICAgY29uc3QgaGFzaGVyICZoZiwKKyAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCAmZXFsKQorICAgICAgOiB0YWJsZV8obmRuYm9vc3Q6OnVub3JkZXJlZDo6ZGV0YWlsOjppbml0aWFsX3NpemUoZiwgbCwgbiksCisgICAgICAgICAgICBoZiwgZXFsLCBhbGxvY2F0b3JfdHlwZSgpKQorICAgIHsKKyAgICAgICAgdGFibGVfLmluc2VydF9yYW5nZShmLCBsKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojp1bm9yZGVyZWRfbXVsdGlzZXQoCisgICAgICAgICAgICBJbnB1dEl0IGYsIElucHV0SXQgbCwKKyAgICAgICAgICAgIHNpemVfdHlwZSBuLAorICAgICAgICAgICAgY29uc3QgaGFzaGVyICZoZiwKKyAgICAgICAgICAgIGNvbnN0IGtleV9lcXVhbCAmZXFsLAorICAgICAgICAgICAgY29uc3QgYWxsb2NhdG9yX3R5cGUgJmEpCisgICAgICA6IHRhYmxlXyhuZG5ib29zdDo6dW5vcmRlcmVkOjpkZXRhaWw6OmluaXRpYWxfc2l6ZShmLCBsLCBuKSwgaGYsIGVxbCwgYSkKKyAgICB7CisgICAgICAgIHRhYmxlXy5pbnNlcnRfcmFuZ2UoZiwgbCk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6fnVub3JkZXJlZF9tdWx0aXNldCgpIHt9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OnVub3JkZXJlZF9tdWx0aXNldCgKKyAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldCBjb25zdCYgb3RoZXIpCisgICAgICA6IHRhYmxlXyhvdGhlci50YWJsZV8pCisgICAgeworICAgIH0KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojp1bm9yZGVyZWRfbXVsdGlzZXQoCisgICAgICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQmJiBvdGhlciwgYWxsb2NhdG9yX3R5cGUgY29uc3QmIGEpCisgICAgICA6IHRhYmxlXyhvdGhlci50YWJsZV8sIGEsIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6bW92ZV90YWcoKSkKKyAgICB7CisgICAgfQorCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojp1bm9yZGVyZWRfbXVsdGlzZXQoCisgICAgICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dmFsdWVfdHlwZT4gbGlzdCwgc2l6ZV90eXBlIG4sCisgICAgICAgICAgICBjb25zdCBoYXNoZXIgJmhmLCBjb25zdCBrZXlfZXF1YWwgJmVxbCwgY29uc3QgYWxsb2NhdG9yX3R5cGUgJmEpCisgICAgICA6IHRhYmxlXygKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OmRldGFpbDo6aW5pdGlhbF9zaXplKAorICAgICAgICAgICAgICAgIGxpc3QuYmVnaW4oKSwgbGlzdC5lbmQoKSwgbiksCisgICAgICAgICAgICBoZiwgZXFsLCBhKQorICAgIHsKKyAgICAgICAgdGFibGVfLmluc2VydF9yYW5nZShsaXN0LmJlZ2luKCksIGxpc3QuZW5kKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPiYgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjpvcGVyYXRvcj0oCisgICAgICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dmFsdWVfdHlwZT4gbGlzdCkKKyAgICB7CisgICAgICAgIHRhYmxlXy5jbGVhcigpOworICAgICAgICB0YWJsZV8uaW5zZXJ0X3JhbmdlKGxpc3QuYmVnaW4oKSwgbGlzdC5lbmQoKSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNlbmRpZgorCisgICAgLy8gc2l6ZSBhbmQgY2FwYWNpdHkKKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHN0ZDo6c2l6ZV90IHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6bWF4X3NpemUoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5tYXhfc2l6ZSgpOworICAgIH0KKworICAgIC8vIG1vZGlmaWVycworCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdGVtcGxhdGUgPGNsYXNzIElucHV0SXQ+CisgICAgdm9pZCB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46Omluc2VydChJbnB1dEl0IGZpcnN0LCBJbnB1dEl0IGxhc3QpCisgICAgeworICAgICAgICB0YWJsZV8uaW5zZXJ0X3JhbmdlKGZpcnN0LCBsYXN0KTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB2b2lkIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6aW5zZXJ0KAorICAgICAgICAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PHZhbHVlX3R5cGU+IGxpc3QpCisgICAgeworICAgICAgICB0YWJsZV8uaW5zZXJ0X3JhbmdlKGxpc3QuYmVnaW4oKSwgbGlzdC5lbmQoKSk7CisgICAgfQorI2VuZGlmCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB0eXBlbmFtZSB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46Oml0ZXJhdG9yCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6ZXJhc2UoY29uc3RfaXRlcmF0b3IgcG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gdGFibGVfLmVyYXNlKHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB0eXBlbmFtZSB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OnNpemVfdHlwZQorICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OmVyYXNlKGNvbnN0IGtleV90eXBlJiBrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5lcmFzZV9rZXkoayk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjppdGVyYXRvcgorICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OmVyYXNlKAorICAgICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGZpcnN0LCBjb25zdF9pdGVyYXRvciBsYXN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5lcmFzZV9yYW5nZShmaXJzdCwgbGFzdCk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdm9pZCB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OmNsZWFyKCkKKyAgICB7CisgICAgICAgIHRhYmxlXy5jbGVhcigpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHZvaWQgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojpzd2FwKHVub3JkZXJlZF9tdWx0aXNldCYgb3RoZXIpCisgICAgeworICAgICAgICB0YWJsZV8uc3dhcChvdGhlci50YWJsZV8pOworICAgIH0KKworICAgIC8vIG9ic2VydmVycworCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjpoYXNoZXIKKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjpoYXNoX2Z1bmN0aW9uKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8uaGFzaF9mdW5jdGlvbigpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHR5cGVuYW1lIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6a2V5X2VxdWFsCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6a2V5X2VxKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8ua2V5X2VxKCk7CisgICAgfQorCisgICAgLy8gbG9va3VwCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB0eXBlbmFtZSB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OmNvbnN0X2l0ZXJhdG9yCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6ZmluZChjb25zdCBrZXlfdHlwZSYgaykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8uZmluZF9ub2RlKGspOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHRlbXBsYXRlIDxjbGFzcyBDb21wYXRpYmxlS2V5LCBjbGFzcyBDb21wYXRpYmxlSGFzaCwKKyAgICAgICAgY2xhc3MgQ29tcGF0aWJsZVByZWRpY2F0ZT4KKyAgICB0eXBlbmFtZSB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OmNvbnN0X2l0ZXJhdG9yCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6ZmluZCgKKyAgICAgICAgICAgIENvbXBhdGlibGVLZXkgY29uc3QmIGssCisgICAgICAgICAgICBDb21wYXRpYmxlSGFzaCBjb25zdCYgaGFzaCwKKyAgICAgICAgICAgIENvbXBhdGlibGVQcmVkaWNhdGUgY29uc3QmIGVxKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlXy5nZW5lcmljX2ZpbmRfbm9kZShrLCBoYXNoLCBlcSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgdHlwZW5hbWUgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjpzaXplX3R5cGUKKyAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojpjb3VudChjb25zdCBrZXlfdHlwZSYgaykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8uY291bnQoayk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgc3RkOjpwYWlyPAorICAgICAgICAgICAgdHlwZW5hbWUgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+Ojpjb25zdF9pdGVyYXRvciwKKyAgICAgICAgICAgIHR5cGVuYW1lIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6Y29uc3RfaXRlcmF0b3I+CisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6ZXF1YWxfcmFuZ2UoY29uc3Qga2V5X3R5cGUmIGspIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGFibGVfLmVxdWFsX3JhbmdlKGspOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHR5cGVuYW1lIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6c2l6ZV90eXBlCisgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6YnVja2V0X3NpemUoc2l6ZV90eXBlIG4pIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGFibGVfLmJ1Y2tldF9zaXplKG4pOworICAgIH0KKworICAgIC8vIGhhc2ggcG9saWN5CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICBmbG9hdCB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT46OmxvYWRfZmFjdG9yKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiB0YWJsZV8ubG9hZF9mYWN0b3IoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICB2b2lkIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPjo6bWF4X2xvYWRfZmFjdG9yKGZsb2F0IG0pIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0YWJsZV8ubWF4X2xvYWRfZmFjdG9yKG0pOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHZvaWQgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjpyZWhhc2goc2l6ZV90eXBlIG4pCisgICAgeworICAgICAgICB0YWJsZV8ucmVoYXNoKG4pOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIHZvaWQgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+OjpyZXNlcnZlKHNpemVfdHlwZSBuKQorICAgIHsKKyAgICAgICAgdGFibGVfLnJlc2VydmUobik7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PSgKKyAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPiBjb25zdCYgbTEsCisgICAgICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT4gY29uc3QmIG0yKQorICAgIHsKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQ09ERUdFQVJDX18sIEJPT1NUX1RFU1RFRF9BVCgweDA2MTMpKQorICAgICAgICBzdHJ1Y3QgZHVtbXkgeyB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT4geDsgfTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gbTEudGFibGVfLmVxdWFscyhtMi50YWJsZV8pOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oCisgICAgICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT4gY29uc3QmIG0xLAorICAgICAgICAgICAgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+IGNvbnN0JiBtMikKKyAgICB7CisjaWYgQk9PU1RfV09SS0FST1VORChfX0NPREVHRUFSQ19fLCBCT09TVF9URVNURURfQVQoMHgwNjEzKSkKKyAgICAgICAgc3RydWN0IGR1bW15IHsgdW5vcmRlcmVkX211bHRpc2V0PFQsSCxQLEE+IHg7IH07CisjZW5kaWYKKyAgICAgICAgcmV0dXJuICFtMS50YWJsZV8uZXF1YWxzKG0yLnRhYmxlXyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgaW5saW5lIHZvaWQgc3dhcCgKKyAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULEgsUCxBPiAmbTEsCisgICAgICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT4gJm0yKQorICAgIHsKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQ09ERUdFQVJDX18sIEJPT1NUX1RFU1RFRF9BVCgweDA2MTMpKQorICAgICAgICBzdHJ1Y3QgZHVtbXkgeyB1bm9yZGVyZWRfbXVsdGlzZXQ8VCxILFAsQT4geDsgfTsKKyNlbmRpZgorICAgICAgICBtMS5zd2FwKG0yKTsKKyAgICB9Cit9IC8vIG5hbWVzcGFjZSB1bm9yZGVyZWQKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9VTk9SREVSRURfVU5PUkRFUkVEX1NFVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL3Vub3JkZXJlZF9zZXRfZndkLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkL3Vub3JkZXJlZF9zZXRfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjJmODM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91bm9yZGVyZWQvdW5vcmRlcmVkX3NldF9md2QuaHBwCkBAIC0wLDAgKzEsNjMgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDA4LTIwMTEgRGFuaWVsIEphbWVzLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVU5PUkRFUkVEX1NFVF9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1VOT1JERVJFRF9TRVRfRldEX0hQUF9JTkNMVURFRAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8bmRuYm9vc3QvZnVuY3Rpb25hbC9oYXNoX2Z3ZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdW5vcmRlcmVkL2RldGFpbC9md2QuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgICBuYW1lc3BhY2UgdW5vcmRlcmVkCisgICAgeworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwKKyAgICAgICAgICAgIGNsYXNzIEggPSBuZG5ib29zdDo6aGFzaDxUPiwKKyAgICAgICAgICAgIGNsYXNzIFAgPSBzdGQ6OmVxdWFsX3RvPFQ+LAorICAgICAgICAgICAgY2xhc3MgQSA9IHN0ZDo6YWxsb2NhdG9yPFQ+ID4KKyAgICAgICAgY2xhc3MgdW5vcmRlcmVkX3NldDsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PSh1bm9yZGVyZWRfc2V0PFQsIEgsIFAsIEE+IGNvbnN0JiwKKyAgICAgICAgICAgIHVub3JkZXJlZF9zZXQ8VCwgSCwgUCwgQT4gY29uc3QmKTsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0odW5vcmRlcmVkX3NldDxULCBILCBQLCBBPiBjb25zdCYsCisgICAgICAgICAgICB1bm9yZGVyZWRfc2V0PFQsIEgsIFAsIEE+IGNvbnN0Jik7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgICAgICBpbmxpbmUgdm9pZCBzd2FwKHVub3JkZXJlZF9zZXQ8VCwgSCwgUCwgQT4gJm0xLAorICAgICAgICAgICAgICAgIHVub3JkZXJlZF9zZXQ8VCwgSCwgUCwgQT4gJm0yKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwKKyAgICAgICAgICAgIGNsYXNzIEggPSBuZG5ib29zdDo6aGFzaDxUPiwKKyAgICAgICAgICAgIGNsYXNzIFAgPSBzdGQ6OmVxdWFsX3RvPFQ+LAorICAgICAgICAgICAgY2xhc3MgQSA9IHN0ZDo6YWxsb2NhdG9yPFQ+ID4KKyAgICAgICAgY2xhc3MgdW5vcmRlcmVkX211bHRpc2V0OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBULCBjbGFzcyBILCBjbGFzcyBQLCBjbGFzcyBBPgorICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KHVub3JkZXJlZF9tdWx0aXNldDxULCBILCBQLCBBPiBjb25zdCYsCisgICAgICAgICAgICB1bm9yZGVyZWRfbXVsdGlzZXQ8VCwgSCwgUCwgQT4gY29uc3QmKTsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEgsIGNsYXNzIFAsIGNsYXNzIEE+CisgICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0odW5vcmRlcmVkX211bHRpc2V0PFQsIEgsIFAsIEE+IGNvbnN0JiwKKyAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULCBILCBQLCBBPiBjb25zdCYpOworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgSCwgY2xhc3MgUCwgY2xhc3MgQT4KKyAgICAgICAgaW5saW5lIHZvaWQgc3dhcCh1bm9yZGVyZWRfbXVsdGlzZXQ8VCwgSCwgUCwgQT4gJm0xLAorICAgICAgICAgICAgICAgIHVub3JkZXJlZF9tdWx0aXNldDxULCBILCBQLCBBPiAmbTIpOworICAgIH0KKworICAgIHVzaW5nIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OnVub3JkZXJlZF9zZXQ7CisgICAgdXNpbmcgbmRuYm9vc3Q6OnVub3JkZXJlZDo6dW5vcmRlcmVkX211bHRpc2V0OworICAgIHVzaW5nIG5kbmJvb3N0Ojp1bm9yZGVyZWQ6OnN3YXA7CisgICAgdXNpbmcgbmRuYm9vc3Q6OnVub3JkZXJlZDo6b3BlcmF0b3I9PTsKKyAgICB1c2luZyBuZG5ib29zdDo6dW5vcmRlcmVkOjpvcGVyYXRvciE9OworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdW5vcmRlcmVkX3NldC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3Vub3JkZXJlZF9zZXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2YTQ2MmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3Vub3JkZXJlZF9zZXQuaHBwCkBAIC0wLDAgKzEsMTggQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgSmVyZW15IEIuIE1haXRpbi1TaGVwYXJkLgorLy8gQ29weXJpZ2h0IChDKSAyMDA1LTIwMDggRGFuaWVsIEphbWVzLgorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworLy8gZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91bm9yZGVyZWQgZm9yIGRvY3VtZW50YXRpb24KKworI2lmbmRlZiBCT09TVF9VTk9SREVSRURfU0VUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9VTk9SREVSRURfU0VUX0hQUF9JTkNMVURFRAorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworI2luY2x1ZGUgPG5kbmJvb3N0L3Vub3JkZXJlZC91bm9yZGVyZWRfc2V0LmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1VOT1JERVJFRF9TRVRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTNlNjBlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5LmhwcApAQCAtMCwwICsxLDIxIEBACisvLyAgQm9vc3QgdXRpbGl0eS5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IDE5OTktMjAwMyBBbGVrc2V5IEd1cnRvdm95LiAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gYXJlCisvLyAgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuICAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGEgY29weSBhdCA8aHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Pi4pCisKKy8vICBTZWUgPGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS8+IGZvciB0aGUgbGlicmFyeSdzIGhvbWUgcGFnZS4KKworI2lmbmRlZiBCT09TVF9VVElMSVRZX0hQUAorI2RlZmluZSBCT09TVF9VVElMSVRZX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9hZGRyZXNzb2YuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvYmFzZV9mcm9tX21lbWJlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9iaW5hcnkuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2lkZW50aXR5X3R5cGUuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L2NoZWNrZWRfZGVsZXRlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9uZXh0X3ByaW9yLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9ub25jb3B5YWJsZS5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfVVRJTElUWV9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9hZGRyZXNzb2YuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBkNWI4YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9hZGRyZXNzb2YuaHBwCkBAIC0wLDAgKzEsMTAyIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDIgQnJhZCBLaW5nIChicmFkLmtpbmdAa2l0d2FyZS5jb20pCisvLyAgICAgICAgICAgICAgICAgICAgRG91Z2xhcyBHcmVnb3IgKGdyZWdvZEBjcy5ycGkuZWR1KQorLy8KKy8vIENvcHlyaWdodCAoQykgMjAwMiwgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisjaWZuZGVmIEJPT1NUX1VUSUxJVFlfQUREUkVTU09GX0hQUAorIyBkZWZpbmUgQk9PU1RfVVRJTElUWV9BRERSRVNTT0ZfSFBQCisKKyMgaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgYWRkcl9pbXBsX3JlZgoreworICAgIFQgJiB2XzsKKworICAgIGlubGluZSBhZGRyX2ltcGxfcmVmKCBUICYgdiApOiB2XyggdiApIHt9CisgICAgaW5saW5lIG9wZXJhdG9yIFQmICgpIGNvbnN0IHsgcmV0dXJuIHZfOyB9CisKK3ByaXZhdGU6CisgICAgYWRkcl9pbXBsX3JlZiAmIG9wZXJhdG9yPShjb25zdCBhZGRyX2ltcGxfcmVmICYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGFkZHJlc3NvZl9pbXBsCit7CisgICAgc3RhdGljIGlubGluZSBUICogZiggVCAmIHYsIGxvbmcgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KAorICAgICAgICAgICAgJmNvbnN0X2Nhc3Q8Y2hhciY+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9sYXRpbGUgY2hhciAmPih2KSkpOworICAgIH0KKworICAgIHN0YXRpYyBpbmxpbmUgVCAqIGYoIFQgKiB2LCBpbnQgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK3RlbXBsYXRlPGNsYXNzIFQ+IFQgKiBhZGRyZXNzb2YoIFQgJiB2ICkKK3sKKyNpZiAoZGVmaW5lZCggX19CT1JMQU5EQ19fICkgJiYgQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoIDB4NjEwICkgKSApIHx8IGRlZmluZWQoIF9fU1VOUFJPX0NDICkKKworICAgIHJldHVybiBuZG5ib29zdDo6ZGV0YWlsOjphZGRyZXNzb2ZfaW1wbDxUPjo6ZiggdiwgMCApOworCisjZWxzZQorCisgICAgcmV0dXJuIG5kbmJvb3N0OjpkZXRhaWw6OmFkZHJlc3NvZl9pbXBsPFQ+OjpmKCBuZG5ib29zdDo6ZGV0YWlsOjphZGRyX2ltcGxfcmVmPFQ+KCB2ICksIDAgKTsKKworI2VuZGlmCit9CisKKyNpZiBkZWZpbmVkKCBfX1NVTlBST19DQyApICYmIEJPT1NUX1dPUktBUk9VTkQoIF9fU1VOUFJPX0NDLCBCT09TVF9URVNURURfQVQoIDB4NTkwICkgKQorCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBhZGRyZXNzb2ZfYWRkcAoreworICAgIHR5cGVkZWYgVCAqIHR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKwordGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4gPgordHlwZW5hbWUgZGV0YWlsOjphZGRyZXNzb2ZfYWRkcDwgVFtOXSA+Ojp0eXBlIGFkZHJlc3NvZiggVCAoJnQpW05dICkKK3sKKyAgICByZXR1cm4gJnQ7Cit9CisKKyNlbmRpZgorCisvLyBCb3JsYW5kIGRvZXNuJ3QgbGlrZSBjYXN0aW5nIGFuIGFycmF5IHJlZmVyZW5jZSB0byBhIGNoYXIgcmVmZXJlbmNlCisvLyBidXQgdGhlc2Ugb3ZlcmxvYWRzIHdvcmsgYXJvdW5kIHRoZSBwcm9ibGVtLgorI2lmIGRlZmluZWQoIF9fQk9STEFORENfXyApICYmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjQpKQordGVtcGxhdGU8dHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOPgorVCAoKmFkZHJlc3NvZihUICgmdClbTl0pKVtOXQoreworICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCgqKVtOXT4oJnQpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4+Citjb25zdCBUICgqYWRkcmVzc29mKGNvbnN0IFQgKCZ0KVtOXSkpW05dCit7CisgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBUKCopW05dPigmdCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1VUSUxJVFlfQUREUkVTU09GX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2Jhc2VfZnJvbV9tZW1iZXIuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2Jhc2VfZnJvbV9tZW1iZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOTFmMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvYmFzZV9mcm9tX21lbWJlci5ocHAKQEAgLTAsMCArMSw4NyBAQAorLy8gIGJvb3N0IHV0aWxpdHkvYmFzZV9mcm9tX21lbWJlci5ocHAgaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gIENvcHlyaWdodCAyMDAxLCAyMDAzLCAyMDA0IERhcnlsZSBXYWxrZXIuICBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kCisvLyAgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgYSBjb3B5IGF0CisvLyAgPGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dD4uKQorCisvLyAgU2VlIDxodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkvPiBmb3IgdGhlIGxpYnJhcnkncyBob21lIHBhZ2UuCisKKyNpZm5kZWYgQk9PU1RfVVRJTElUWV9CQVNFX0ZST01fTUVNQkVSX0hQUAorI2RlZmluZSBCT09TVF9VVElMSVRZX0JBU0VfRlJPTV9NRU1CRVJfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fYmluYXJ5X3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdF9mcm9tX3RvLmhwcD4KKworCisvLyAgQmFzZS1mcm9tLW1lbWJlciBhcml0eSBjb25maWd1cmF0aW9uIG1hY3JvICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyBUaGUgZm9sbG93aW5nIG1hY3JvIGRldGVybWluZXMgaG93IG1hbnkgYXJndW1lbnRzIHdpbGwgYmUgaW4gdGhlIGxhcmdlc3QKKy8vIGNvbnN0cnVjdG9yIHRlbXBsYXRlIG9mIGJhc2VfZnJvbV9tZW1iZXIuICBDb25zdHJ1Y3RvciB0ZW1wbGF0ZXMgd2lsbCBiZQorLy8gZ2VuZXJhdGVkIGZyb20gb25lIGFyZ3VtZW50IHRvIHRoaXMgbWF4aW11bS4gIENvZGUgZnJvbSBvdGhlciBmaWxlcyBjYW4gcmVhZAorLy8gdGhpcyBudW1iZXIgaWYgdGhleSBuZWVkIHRvIGFsd2F5cyBtYXRjaCB0aGUgZXhhY3QgbWF4aW11bSBiYXNlX2Zyb21fbWVtYmVyCisvLyB1c2VzLiAgVGhlIG1heGltdW0gY29uc3RydWN0b3IgbGVuZ3RoIGNhbiBiZSBjaGFuZ2VkIGJ5IG92ZXJyaWRpbmcgdGhlCisvLyAjZGVmaW5lZCBjb25zdGFudC4gIE1ha2Ugc3VyZSB0byBhcHBseSB0aGUgb3ZlcnJpZGUsIGlmIGFueSwgZm9yIGFsbCBzb3VyY2UKKy8vIGZpbGVzIGR1cmluZyBwcm9qZWN0IGNvbXBpbGluZyBmb3IgY29uc2lzdGVuY3kuCisKKy8vIENvbnRyaWJ1dGVkIGJ5IEpvbmF0aGFuIFR1cmthbmlzCisKKyNpZm5kZWYgQk9PU1RfQkFTRV9GUk9NX01FTUJFUl9NQVhfQVJJVFkKKyNkZWZpbmUgQk9PU1RfQkFTRV9GUk9NX01FTUJFUl9NQVhfQVJJVFkgIDEwCisjZW5kaWYKKworCisvLyAgQW4gaXRlcmF0aW9uIG9mIGEgY29uc3RydWN0b3IgdGVtcGxhdGUgZm9yIGJhc2VfZnJvbV9tZW1iZXIgIC0tLS0tLS0tLS0tLS0vLworCisvLyBBIG1hY3JvIHRoYXQgc2hvdWxkIGV4cGFuZCB0bzoKKy8vICAgICB0ZW1wbGF0ZSA8IHR5cGVuYW1lIFQxLCAuLi4sIHR5cGVuYW1lIFRuID4KKy8vICAgICBiYXNlX2Zyb21fbWVtYmVyKCBUMSB4MSwgLi4uLCBUbiB4biApCisvLyAgICAgICAgIDogbWVtYmVyKCB4MSwgLi4uLCB4biApCisvLyAgICAgICAgIHt9CisvLyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IHBlcnNpc3Qgd2l0aGluIHRoaXMgZmlsZS4KKworI2RlZmluZSBCT09TVF9QUklWQVRFX0NUUl9ERUYoIHosIG4sIGRhdGEgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPCBCT09TVF9QUF9FTlVNX1BBUkFNUyhuLCB0eXBlbmFtZSBUKSA+ICAgICAgICAgICAgICAgICAgIFwKKyAgICBleHBsaWNpdCBiYXNlX2Zyb21fbWVtYmVyKCBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVMobiwgVCwgeCkgKSAgXAorICAgICAgICA6IG1lbWJlciggQk9PU1RfUFBfRU5VTV9QQVJBTVMobiwgeCkgKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAvKiovCisKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKy8vICBCYXNlLWZyb20tbWVtYmVyIGNsYXNzIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vIEhlbHBlciB0byBpbml0aWFsaXplIGEgYmFzZSBvYmplY3Qgc28gYSBkZXJpdmVkIGNsYXNzIGNhbiB1c2UgdGhpcworLy8gb2JqZWN0IGluIHRoZSBpbml0aWFsaXphdGlvbiBvZiBhbm90aGVyIGJhc2UgY2xhc3MuICBVc2VkIGJ5CisvLyBEaWV0bWFyIEt1ZWhsIGZyb20gaWRlYXMgYnkgUm9uIEtsYXRjaG8gdG8gc29sdmUgdGhlIHByb2JsZW0gb2YgYQorLy8gYmFzZSBjbGFzcyBuZWVkaW5nIHRvIGJlIGluaXRpYWxpemVkIGJ5IGEgbWVtYmVyLgorCisvLyBDb250cmlidXRlZCBieSBEYXJ5bGUgV2Fsa2VyCisKK3RlbXBsYXRlIDwgdHlwZW5hbWUgTWVtYmVyVHlwZSwgaW50IFVuaXF1ZUlEID0gMCA+CitjbGFzcyBiYXNlX2Zyb21fbWVtYmVyCit7Citwcm90ZWN0ZWQ6CisgICAgTWVtYmVyVHlwZSAgbWVtYmVyOworCisgICAgYmFzZV9mcm9tX21lbWJlcigpCisgICAgICAgIDogbWVtYmVyKCkKKyAgICAgICAge30KKworICAgIEJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPKCAxLCBCT09TVF9QUF9JTkMoQk9PU1RfQkFTRV9GUk9NX01FTUJFUl9NQVhfQVJJVFkpLAorICAgICBCT09TVF9QUklWQVRFX0NUUl9ERUYsIF8gKQorCit9OyAgLy8gbmRuYm9vc3Q6OmJhc2VfZnJvbV9tZW1iZXIKKworfSAgLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKworLy8gVW5kbyBhbnkgcHJpdmF0ZSBtYWNyb3MKKyN1bmRlZiBCT09TVF9QUklWQVRFX0NUUl9ERUYKKworCisjZW5kaWYgIC8vIEJPT1NUX1VUSUxJVFlfQkFTRV9GUk9NX01FTUJFUl9IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9iaW5hcnkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2JpbmFyeS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVhMjA5ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9iaW5hcnkuaHBwCkBAIC0wLDAgKzEsNzA4IEBACisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgQ29weXJpZ2h0IChjKSAyMDA1IE1hdHRoZXcgQ2FsYWJyZXNlCisKKyAgICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisgICAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisjaWZuZGVmIEJPT1NUX1VUSUxJVFlfQklOQVJZX0hQUAorI2RlZmluZSBCT09TVF9VVElMSVRZX0JJTkFSWV9IUFAKKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgQmluYXJ5IExpdGVyYWwgVXRpbGl0eQorICAgIF9fX19fX19fX19fX19fX19fX19fX18KKworCisgICAgVGhlIGZvbGxvd2luZyBjb2RlIHdvcmtzIGJ5IGNvbnZlcnRpbmcgdGhlIGlucHV0IGJpdCBwYXR0ZXJuIGludG8gYQorICAgIEJvb3N0LlByZXByb2Nlc3NvciBzZXF1ZW5jZSwgdGhlbiBjb252ZXJ0aW5nIGdyb3VwaW5ncyBvZiAzIGJpdHMgZWFjaCBpbnRvCisgICAgdGhlIGNvcnJlc3BvbmRpbmcgb2N0YWwgZGlnaXQsIGFuZCBmaW5hbGx5IGNvbmNhdGVuYXRpbmcgYWxsIG9mIHRoZSBkaWdpdHMKKyAgICB0b2dldGhlciBhbG9uZyB3aXRoIGEgbGVhZGluZyB6ZXJvLiBUaGlzIHlpZWxkcyBhIHN0YW5kYXJkIG9jdGFsIGxpdGVyYWwKKyAgICB3aXRoIHRoZSBkZXNpcmVkIHZhbHVlIGFzIHNwZWNpZmllZCBpbiBiaXRzLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGVkdWNlX2QuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2lkZW50aXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3Ivc2VxL2NhdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS90cmFuc2Zvcm0uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL21vZC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwPgorCisjZGVmaW5lIEJPT1NUX0JJTkFSWSggYml0X2dyb3VwaW5ncyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBCT09TVF9CSU5BUllfTElURVJBTF9EKCBCT09TVF9QUF9ERURVQ0VfRCgpLCBiaXRfZ3JvdXBpbmdzICkgCisKKyNkZWZpbmUgQk9PU1RfQklOQVJZX1UoIGJpdF9ncm91cGluZ3MgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1NVRkZJWEVEX0JJTkFSWV9MSVRFUkFMKCBiaXRfZ3JvdXBpbmdzLCBVICkgCisKKyNkZWZpbmUgQk9PU1RfQklOQVJZX0woIGJpdF9ncm91cGluZ3MgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1NVRkZJWEVEX0JJTkFSWV9MSVRFUkFMKCBiaXRfZ3JvdXBpbmdzLCBMICkgCisKKyNkZWZpbmUgQk9PU1RfQklOQVJZX1VMKCBiaXRfZ3JvdXBpbmdzICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1NVRkZJWEVEX0JJTkFSWV9MSVRFUkFMKCBiaXRfZ3JvdXBpbmdzLCBVTCApIAorCisjZGVmaW5lIEJPT1NUX0JJTkFSWV9MVSggYml0X2dyb3VwaW5ncyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBCT09TVF9TVUZGSVhFRF9CSU5BUllfTElURVJBTCggYml0X2dyb3VwaW5ncywgTFUgKSAKKworI2RlZmluZSBCT09TVF9CSU5BUllfTEwoIGJpdF9ncm91cGluZ3MgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQk9PU1RfU1VGRklYRURfQklOQVJZX0xJVEVSQUwoIGJpdF9ncm91cGluZ3MsIExMICkgCisKKyNkZWZpbmUgQk9PU1RfQklOQVJZX1VMTCggYml0X2dyb3VwaW5ncyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1NVRkZJWEVEX0JJTkFSWV9MSVRFUkFMKCBiaXRfZ3JvdXBpbmdzLCBVTEwgKSAKKworI2RlZmluZSBCT09TVF9CSU5BUllfTExVKCBiaXRfZ3JvdXBpbmdzICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQk9PU1RfU1VGRklYRURfQklOQVJZX0xJVEVSQUwoIGJpdF9ncm91cGluZ3MsIExMVSApIAorCisjZGVmaW5lIEJPT1NUX1NVRkZJWEVEX0JJTkFSWV9MSVRFUkFMKCBiaXRfZ3JvdXBpbmdzLCBzdWZmaXggKSAgICAgICAgICAgICAgICAgXAorICBCT09TVF9TVUZGSVhFRF9CSU5BUllfTElURVJBTF9EKCBCT09TVF9QUF9ERURVQ0VfRCgpLCBiaXRfZ3JvdXBpbmdzLCBzdWZmaXggKSAKKworI2RlZmluZSBCT09TVF9TVUZGSVhFRF9CSU5BUllfTElURVJBTF9EKCBkLCBiaXRfZ3JvdXBpbmdzLCBzdWZmaXggKSAgICAgICAgICAgIFwKKyAgQk9PU1RfUFBfQ0FUKCBCT09TVF9CSU5BUllfTElURVJBTF9EKCBkLCBiaXRfZ3JvdXBpbmdzICksIHN1ZmZpeCApIAorCisjZGVmaW5lIEJPT1NUX0JJTkFSWV9MSVRFUkFMX0QoIGQsIGJpdF9ncm91cGluZ3MgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBCT09TVF9QUF9TRVFfQ0FUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgKCAoMCkgQk9PU1RfREVUQUlMX0NSRUFURV9CSU5BUllfTElURVJBTF9PQ1RBTF9TRVFVRU5DRSggZCwgYml0X2dyb3VwaW5ncyApICBcCisgICkgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0NSRUFURV9CSU5BUllfTElURVJBTF9PQ1RBTF9TRVFVRU5DRSggZCwgYml0X2dyb3VwaW5ncyApICBcCisgIEJPT1NUX1BQX1NFUV9UUkFOU0ZPUk0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfT1BFUkFUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgLCBCT09TVF9QUF9OSUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICwgQk9PU1RfUFBfSURFTlRJVFkoIEJPT1NUX0RFVEFJTF9DT05WRVJUX0JJVF9TRVFVRU5DRV9UT19UUklQTEVfU0VRVUVOQ0UgKSgpXAorICAgICggQk9PU1RfREVUQUlMX0NPTVBMRVRFX1RSSVBMRV9TRVFVRU5DRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgLCBCT09TVF9ERVRBSUxfQ1JFQVRFX0JJTkFSWV9MSVRFUkFMX0JJVF9TRVFVRU5DRSggZCwgYml0X2dyb3VwaW5ncyApICAgIFwKKyAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICApIAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9DT05WRVJUX0JJVF9TRVFVRU5DRV9UT19UUklQTEVfU0VRVUVOQ0UoIGJpdF9zZXF1ZW5jZSApICAgXAorICBCT09TVF9QUF9DQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgKCBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMSBiaXRfc2VxdWVuY2UgICAgICBcCisgICwgRU5EX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICApIAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSVRTX1BFUl9PQ1RJVCAzCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0NPTVBMRVRFX1RSSVBMRV9TRVFVRU5DRSggZCwgaW5jb21wbGV0ZV9uaWJibGVfc2VxdWVuY2UgKSBcCisgIEJPT1NUX1BQX0NBVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoIEJPT1NUX0RFVEFJTF9DUkVBVEVfVFJJUExFX0NPTVBMRVRJT05fU0VRVUVOQ0VfICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgLCBCT09TVF9QUF9NT0RfRCggZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAsIEJPT1NUX1BQX1NFUV9TSVpFKCBpbmNvbXBsZXRlX25pYmJsZV9zZXF1ZW5jZSApICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgLCBCT09TVF9ERVRBSUxfQklUU19QRVJfT0NUSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBpbmNvbXBsZXRlX25pYmJsZV9zZXF1ZW5jZSAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfRklYRURfQ09NUEwoIGJpdCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQk9PU1RfUFBfQ0FUKCBCT09TVF9ERVRBSUxfRklYRURfQ09NUExfLCBiaXQgKQorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9GSVhFRF9DT01QTF8wIDEgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0ZJWEVEX0NPTVBMXzEgMCAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQ1JFQVRFX0JJTkFSWV9MSVRFUkFMX0JJVF9TRVFVRU5DRSggZCwgYml0X2dyb3VwaW5ncyApICAgIFwKKyAgQk9PU1RfUFBfRU1QVFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1BQX0NBVCggQk9PU1RfUFBfV0hJTEVfLCBkICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9QUkVESUNBVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgLCBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfT1BFUkFUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICwgYml0X2dyb3VwaW5ncyAoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICApIAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9QUkVESUNBVEUoIGQsIHN0YXRlICkgICAgICAgICAgICAgICAgICAgICAgXAorICBCT09TVF9ERVRBSUxfRklYRURfQ09NUEwoIEJPT1NUX0RFVEFJTF9JU19OVUxMQVJZX0FSR1MoIHN0YXRlICkgKSAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfT1BFUkFUSU9OKCBkLCBzdGF0ZSApICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQk9PU1RfREVUQUlMX1NQTElUX0FORF9TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICggQk9PU1RfUFBfQ0FUKCBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8sIHN0YXRlICkgKSAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfVFJJUExFX1RPX09DVEFMX09QRVJBVElPTiggcywgZHVtbXlfcGFyYW0sIHR1cGxlICkgICAgICAgIFwKKyAgQk9PU1RfREVUQUlMX1RFUk5BUllfVFJJUExFX1RPX09DVEFMIHR1cGxlIAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9URVJOQVJZX1RSSVBMRV9UT19PQ1RBTCggYml0MiwgYml0MSwgYml0MCApICAgICAgICAgICAgICAgXAorICBCT09TVF9ERVRBSUxfVFJJUExFX1RPX09DVEFMXyAjIyBiaXQyICMjIGJpdDEgIyMgYml0MCAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQ1JFQVRFX1RSSVBMRV9DT01QTEVUSU9OX1NFUVVFTkNFXzEgKDApKDApCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9DUkVBVEVfVFJJUExFX0NPTVBMRVRJT05fU0VRVUVOQ0VfMiAoMCkKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0NSRUFURV9UUklQTEVfQ09NUExFVElPTl9TRVFVRU5DRV8wICAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMUVORF9CSVQgIAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9DT05WRVJUX0JJVF9TRVFVRU5DRV9UT19QQVJFTlRIRVRJQ19UVVBMRV8xKCBiaXQgKSAgICAgICAgXAorICAoICggYml0LCBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMiAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMiggYml0ICkgICAgICAgIFwKKyAgYml0LCBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMyAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMyggYml0ICkgICAgICAgIFwKKyAgYml0ICkgKSBCT09TVF9ERVRBSUxfQ09OVkVSVF9CSVRfU0VRVUVOQ0VfVE9fUEFSRU5USEVUSUNfVFVQTEVfMSAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfU1BMSVRfQU5EX1NXQVAoIHBhcmFtcyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQk9PU1RfUFBfSURFTlRJVFkoIEJPT1NUX0RFVEFJTF9TUExJVF9BTkRfU1dBUF9QQVJBTVMgKSgpKCBwYXJhbXMgKQorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9TUExJVF9BTkRfU1dBUF9QQVJBTVMoIGZpcnN0X3BhcmFtLCBzZWNvbmRfcGFyYW0gKSAgICAgICAgXAorICBzZWNvbmRfcGFyYW0gZmlyc3RfcGFyYW0gCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0xFRlRfT0ZfQ09NTUEoIHBhcmFtcyApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEJPT1NUX1BQX0lERU5USVRZKCBCT09TVF9ERVRBSUxfRklSU1RfTUFDUk9fUEFSQU0gKSgpKCBwYXJhbXMgKSAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfRklSU1RfTUFDUk9fUEFSQU0oIGZpcnN0X3BhcmFtLCBzZWNvbmRfcGFyYW0gKSAgICAgICAgICAgIFwKKyAgZmlyc3RfcGFyYW0gCisKKy8qIEJlZ2luIGRlcml2ZWQgY29uY2VwdHMgZnJvbSBDaGFvcyBieSBQYXVsIE1lbnNvbmlkZXMgKi8KKworI2RlZmluZSBCT09TVF9ERVRBSUxfSVNfTlVMTEFSWV9BUkdTKCBwYXJhbSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgQk9PU1RfREVUQUlMX0xFRlRfT0ZfQ09NTUEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICggQk9PU1RfUFBfQ0FUKCBCT09TVF9ERVRBSUxfSVNfTlVMTEFSWV9BUkdTX1JfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICwgQk9PU1RfREVUQUlMX0lTX05VTExBUllfQVJHU19DIHBhcmFtICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICkgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0lTX05VTExBUllfQVJHU19DKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIDEgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0lTX05VTExBUllfQVJHU19SXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIDEsIEJPT1NUX1BQX05JTCAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfSVNfTlVMTEFSWV9BUkdTX1JfQk9PU1RfREVUQUlMX0lTX05VTExBUllfQVJHU19DICAgICAgICAgIFwKKyAgMCwgQk9PU1RfUFBfTklMIAorCisvKiBFbmQgZGVyaXZlZCBjb25jZXB0cyBmcm9tIENoYW9zIGJ5IFBhdWwgTWVuc29uaWRlcyAqLworCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMDAwIDAgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMDAxIDEgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMDEwIDIgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMDExIDMgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMTAwIDQgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMTAxIDUgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMTEwIDYgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9UUklQTEVfVE9fT0NUQUxfMTExIDcgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMCAoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xICgxKSwgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAgKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEgKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAgKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEgKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAgKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEgKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAgKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEgKDEpKDEpLCAKKworI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAgKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxICgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMCAoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTEgKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwICgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMSAoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAgKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExICgxKSgxKSgxKSwgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMCAoMCkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAxICgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAgKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMSAoMCkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAwICgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDEgKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMCAoMCkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTExICgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAgKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMSAoMSkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDEwICgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTEgKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMCAoMSkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAxICgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAgKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMSAoMSkoMSkoMSkoMSksIAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDAwICgwKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDAxICgwKSgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDEwICgwKSgwKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDExICgwKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAwICgwKSgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAxICgwKSgwKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTEwICgwKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTExICgwKSgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAwICgwKSgxKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAxICgwKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDEwICgwKSgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDExICgwKSgxKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTAwICgwKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTAxICgwKSgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTEwICgwKSgxKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTExICgwKSgxKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAwICgxKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAxICgxKSgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDEwICgxKSgwKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDExICgxKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAwICgxKSgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAxICgxKSgwKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTEwICgxKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTExICgxKSgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDAwICgxKSgxKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDAxICgxKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDEwICgxKSgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDExICgxKSgxKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAwICgxKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAxICgxKSgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTEwICgxKSgxKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTExICgxKSgxKSgxKSgxKSgxKSwgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAwICgwKSgwKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDAwMSAoMCkoMCkoMCkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAwMTAgKDApKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDExICgwKSgwKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDEwMCAoMCkoMCkoMCkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAxMDEgKDApKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTEwICgwKSgwKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDExMSAoMCkoMCkoMCkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDEwMDAgKDApKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAxICgwKSgwKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAxMCAoMCkoMCkoMSkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDEwMTEgKDApKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAwICgwKSgwKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTEwMSAoMCkoMCkoMSkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDExMTAgKDApKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTExICgwKSgwKSgxKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAwMCAoMCkoMSkoMCkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAwMDEgKDApKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDEwICgwKSgxKSgwKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAxMSAoMCkoMSkoMCkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAxMDAgKDApKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAxICgwKSgxKSgwKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDExMCAoMCkoMSkoMCkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAxMTEgKDApKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAwICgwKSgxKSgxKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTAwMSAoMCkoMSkoMSkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTEwMTAgKDApKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDExICgwKSgxKSgxKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTEwMCAoMCkoMSkoMSkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTExMDEgKDApKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTEwICgwKSgxKSgxKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTExMSAoMCkoMSkoMSkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAwMDAgKDEpKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAxICgxKSgwKSgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAxMCAoMSkoMCkoMCkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAwMTEgKDEpKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAwICgxKSgwKSgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDEwMSAoMSkoMCkoMCkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAxMTAgKDEpKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTExICgxKSgwKSgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAwMCAoMSkoMCkoMSkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDEwMDEgKDEpKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDEwICgxKSgwKSgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAxMSAoMSkoMCkoMSkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDExMDAgKDEpKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAxICgxKSgwKSgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTExMCAoMSkoMCkoMSkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDExMTEgKDEpKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAwICgxKSgxKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDAwMSAoMSkoMSkoMCkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAwMTAgKDEpKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDExICgxKSgxKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDEwMCAoMSkoMSkoMCkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAxMDEgKDEpKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTEwICgxKSgxKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDExMSAoMSkoMSkoMCkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTEwMDAgKDEpKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAxICgxKSgxKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAxMCAoMSkoMSkoMSkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTEwMTEgKDEpKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAwICgxKSgxKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTEwMSAoMSkoMSkoMSkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTExMTAgKDEpKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTExICgxKSgxKSgxKSgxKSgxKSgxKSwgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAwMCAoMCkoMCkoMCkoMCkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAwMDAxICgwKSgwKSgwKSgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDAwMTAgKDApKDApKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAxMSAoMCkoMCkoMCkoMCkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAwMTAwICgwKSgwKSgwKSgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDAxMDEgKDApKDApKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDExMCAoMCkoMCkoMCkoMCkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAwMTExICgwKSgwKSgwKSgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDEwMDAgKDApKDApKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAwMSAoMCkoMCkoMCkoMSkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAxMDEwICgwKSgwKSgwKSgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDEwMTEgKDApKDApKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTEwMCAoMCkoMCkoMCkoMSkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDAxMTAxICgwKSgwKSgwKSgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMDExMTAgKDApKDApKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTExMSAoMCkoMCkoMCkoMSkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDEwMDAwICgwKSgwKSgxKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAwMDEgKDApKDApKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAxMCAoMCkoMCkoMSkoMCkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDEwMDExICgwKSgwKSgxKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAxMDAgKDApKDApKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDEwMSAoMCkoMCkoMSkoMCkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDEwMTEwICgwKSgwKSgxKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTAxMTEgKDApKDApKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAwMCAoMCkoMCkoMSkoMSkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDExMDAxICgwKSgwKSgxKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTEwMTAgKDApKDApKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAxMSAoMCkoMCkoMSkoMSkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDExMTAwICgwKSgwKSgxKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAwMTExMDEgKDApKDApKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTExMCAoMCkoMCkoMSkoMSkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMDExMTExICgwKSgwKSgxKSgxKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAwMDAgKDApKDEpKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAwMSAoMCkoMSkoMCkoMCkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAwMDEwICgwKSgxKSgwKSgwKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAwMTEgKDApKDEpKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDEwMCAoMCkoMSkoMCkoMCkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAwMTAxICgwKSgxKSgwKSgwKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDAxMTAgKDApKDEpKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDExMSAoMCkoMSkoMCkoMCkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAxMDAwICgwKSgxKSgwKSgxKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDEwMDEgKDApKDEpKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAxMCAoMCkoMSkoMCkoMSkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAxMDExICgwKSgxKSgwKSgxKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDExMDAgKDApKDEpKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTEwMSAoMCkoMSkoMCkoMSkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTAxMTEwICgwKSgxKSgwKSgxKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMDExMTEgKDApKDEpKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAwMCAoMCkoMSkoMSkoMCkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTEwMDAxICgwKSgxKSgxKSgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTAwMTAgKDApKDEpKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAxMSAoMCkoMSkoMSkoMCkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTEwMTAwICgwKSgxKSgxKSgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTAxMDEgKDApKDEpKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDExMCAoMCkoMSkoMSkoMCkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTEwMTExICgwKSgxKSgxKSgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTEwMDAgKDApKDEpKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAwMSAoMCkoMSkoMSkoMSkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTExMDEwICgwKSgxKSgxKSgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTEwMTEgKDApKDEpKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTEwMCAoMCkoMSkoMSkoMSkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8wMTExMTAxICgwKSgxKSgxKSgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzAxMTExMTAgKDApKDEpKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTExMSAoMCkoMSkoMSkoMSkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAwMDAwICgxKSgwKSgwKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAwMDEgKDEpKDApKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAxMCAoMSkoMCkoMCkoMCkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAwMDExICgxKSgwKSgwKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAxMDAgKDEpKDApKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDEwMSAoMSkoMCkoMCkoMCkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAwMTEwICgxKSgwKSgwKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDAxMTEgKDEpKDApKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAwMCAoMSkoMCkoMCkoMSkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAxMDAxICgxKSgwKSgwKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDEwMTAgKDEpKDApKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAxMSAoMSkoMCkoMCkoMSkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAxMTAwICgxKSgwKSgwKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMDExMDEgKDEpKDApKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTExMCAoMSkoMCkoMCkoMSkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDAxMTExICgxKSgwKSgwKSgxKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAwMDAgKDEpKDApKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAwMSAoMSkoMCkoMSkoMCkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDEwMDEwICgxKSgwKSgxKSgwKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAwMTEgKDEpKDApKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDEwMCAoMSkoMCkoMSkoMCkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDEwMTAxICgxKSgwKSgxKSgwKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTAxMTAgKDEpKDApKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDExMSAoMSkoMCkoMSkoMCkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDExMDAwICgxKSgwKSgxKSgxKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTEwMDEgKDEpKDApKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAxMCAoMSkoMCkoMSkoMSkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDExMDExICgxKSgwKSgxKSgxKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTExMDAgKDEpKDApKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTEwMSAoMSkoMCkoMSkoMSkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMDExMTEwICgxKSgwKSgxKSgxKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzEwMTExMTEgKDEpKDApKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAwMCAoMSkoMSkoMCkoMCkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAwMDAxICgxKSgxKSgwKSgwKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDAwMTAgKDEpKDEpKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAxMSAoMSkoMSkoMCkoMCkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAwMTAwICgxKSgxKSgwKSgwKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDAxMDEgKDEpKDEpKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDExMCAoMSkoMSkoMCkoMCkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAwMTExICgxKSgxKSgwKSgwKSgxKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDEwMDAgKDEpKDEpKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAwMSAoMSkoMSkoMCkoMSkoMCkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAxMDEwICgxKSgxKSgwKSgxKSgwKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDEwMTEgKDEpKDEpKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTEwMCAoMSkoMSkoMCkoMSkoMSkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTAxMTAxICgxKSgxKSgwKSgxKSgxKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMDExMTAgKDEpKDEpKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTExMSAoMSkoMSkoMCkoMSkoMSkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTEwMDAwICgxKSgxKSgxKSgwKSgwKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAwMDEgKDEpKDEpKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAxMCAoMSkoMSkoMSkoMCkoMCkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTEwMDExICgxKSgxKSgxKSgwKSgwKSgxKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAxMDAgKDEpKDEpKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDEwMSAoMSkoMSkoMSkoMCkoMSkoMCkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTEwMTEwICgxKSgxKSgxKSgwKSgxKSgxKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTAxMTEgKDEpKDEpKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAwMCAoMSkoMSkoMSkoMSkoMCkoMCkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTExMDAxICgxKSgxKSgxKSgxKSgwKSgwKSgxKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTEwMTAgKDEpKDEpKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAxMSAoMSkoMSkoMSkoMSkoMCkoMSkoMSksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTExMTAwICgxKSgxKSgxKSgxKSgxKSgwKSgwKSwgCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9CSU5BUllfTElURVJBTF9FTEVNRU5UXzExMTExMDEgKDEpKDEpKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTExMCAoMSkoMSkoMSkoMSkoMSkoMSkoMCksIAorI2RlZmluZSBCT09TVF9ERVRBSUxfQklOQVJZX0xJVEVSQUxfRUxFTUVOVF8xMTExMTExICgxKSgxKSgxKSgxKSgxKSgxKSgxKSwgCisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAwMDAgKDApKDApKDApKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAwMDEgKDApKDApKDApKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAwMTAgKDApKDApKDApKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAwMTEgKDApKDApKDApKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAxMDAgKDApKDApKDApKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAxMDEgKDApKDApKDApKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAxMTAgKDApKDApKDApKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDAxMTEgKDApKDApKDApKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDEwMDAgKDApKDApKDApKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDEwMDEgKDApKDApKDApKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDEwMTAgKDApKDApKDApKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDEwMTEgKDApKDApKDApKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDExMDAgKDApKDApKDApKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDExMDEgKDApKDApKDApKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDExMTAgKDApKDApKDApKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMDExMTEgKDApKDApKDApKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAwMDAgKDApKDApKDApKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAwMDEgKDApKDApKDApKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAwMTAgKDApKDApKDApKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAwMTEgKDApKDApKDApKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAxMDAgKDApKDApKDApKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAxMDEgKDApKDApKDApKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAxMTAgKDApKDApKDApKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTAxMTEgKDApKDApKDApKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTEwMDAgKDApKDApKDApKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTEwMDEgKDApKDApKDApKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTEwMTAgKDApKDApKDApKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTEwMTEgKDApKDApKDApKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTExMDAgKDApKDApKDApKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTExMDEgKDApKDApKDApKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTExMTAgKDApKDApKDApKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAwMTExMTEgKDApKDApKDApKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAwMDAgKDApKDApKDEpKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAwMDEgKDApKDApKDEpKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAwMTAgKDApKDApKDEpKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAwMTEgKDApKDApKDEpKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAxMDAgKDApKDApKDEpKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAxMDEgKDApKDApKDEpKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAxMTAgKDApKDApKDEpKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDAxMTEgKDApKDApKDEpKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDEwMDAgKDApKDApKDEpKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDEwMDEgKDApKDApKDEpKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDEwMTAgKDApKDApKDEpKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDEwMTEgKDApKDApKDEpKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDExMDAgKDApKDApKDEpKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDExMDEgKDApKDApKDEpKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDExMTAgKDApKDApKDEpKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMDExMTEgKDApKDApKDEpKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAwMDAgKDApKDApKDEpKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAwMDEgKDApKDApKDEpKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAwMTAgKDApKDApKDEpKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAwMTEgKDApKDApKDEpKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAxMDAgKDApKDApKDEpKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAxMDEgKDApKDApKDEpKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAxMTAgKDApKDApKDEpKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTAxMTEgKDApKDApKDEpKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTEwMDAgKDApKDApKDEpKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTEwMDEgKDApKDApKDEpKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTEwMTAgKDApKDApKDEpKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTEwMTEgKDApKDApKDEpKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTExMDAgKDApKDApKDEpKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTExMDEgKDApKDApKDEpKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTExMTAgKDApKDApKDEpKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDAxMTExMTEgKDApKDApKDEpKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAwMDAgKDApKDEpKDApKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAwMDEgKDApKDEpKDApKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAwMTAgKDApKDEpKDApKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAwMTEgKDApKDEpKDApKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAxMDAgKDApKDEpKDApKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAxMDEgKDApKDEpKDApKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAxMTAgKDApKDEpKDApKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDAxMTEgKDApKDEpKDApKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDEwMDAgKDApKDEpKDApKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDEwMDEgKDApKDEpKDApKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDEwMTAgKDApKDEpKDApKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDEwMTEgKDApKDEpKDApKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDExMDAgKDApKDEpKDApKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDExMDEgKDApKDEpKDApKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDExMTAgKDApKDEpKDApKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMDExMTEgKDApKDEpKDApKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAwMDAgKDApKDEpKDApKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAwMDEgKDApKDEpKDApKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAwMTAgKDApKDEpKDApKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAwMTEgKDApKDEpKDApKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAxMDAgKDApKDEpKDApKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAxMDEgKDApKDEpKDApKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAxMTAgKDApKDEpKDApKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTAxMTEgKDApKDEpKDApKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTEwMDAgKDApKDEpKDApKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTEwMDEgKDApKDEpKDApKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTEwMTAgKDApKDEpKDApKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTEwMTEgKDApKDEpKDApKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTExMDAgKDApKDEpKDApKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTExMDEgKDApKDEpKDApKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTExMTAgKDApKDEpKDApKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDEwMTExMTEgKDApKDEpKDApKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAwMDAgKDApKDEpKDEpKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAwMDEgKDApKDEpKDEpKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAwMTAgKDApKDEpKDEpKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAwMTEgKDApKDEpKDEpKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAxMDAgKDApKDEpKDEpKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAxMDEgKDApKDEpKDEpKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAxMTAgKDApKDEpKDEpKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDAxMTEgKDApKDEpKDEpKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDEwMDAgKDApKDEpKDEpKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDEwMDEgKDApKDEpKDEpKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDEwMTAgKDApKDEpKDEpKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDEwMTEgKDApKDEpKDEpKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDExMDAgKDApKDEpKDEpKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDExMDEgKDApKDEpKDEpKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDExMTAgKDApKDEpKDEpKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMDExMTEgKDApKDEpKDEpKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAwMDAgKDApKDEpKDEpKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAwMDEgKDApKDEpKDEpKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAwMTAgKDApKDEpKDEpKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAwMTEgKDApKDEpKDEpKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAxMDAgKDApKDEpKDEpKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAxMDEgKDApKDEpKDEpKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAxMTAgKDApKDEpKDEpKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTAxMTEgKDApKDEpKDEpKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTEwMDAgKDApKDEpKDEpKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTEwMDEgKDApKDEpKDEpKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTEwMTAgKDApKDEpKDEpKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTEwMTEgKDApKDEpKDEpKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTExMDAgKDApKDEpKDEpKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTExMDEgKDApKDEpKDEpKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTExMTAgKDApKDEpKDEpKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMDExMTExMTEgKDApKDEpKDEpKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAwMDAgKDEpKDApKDApKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAwMDEgKDEpKDApKDApKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAwMTAgKDEpKDApKDApKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAwMTEgKDEpKDApKDApKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAxMDAgKDEpKDApKDApKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAxMDEgKDEpKDApKDApKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAxMTAgKDEpKDApKDApKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDAxMTEgKDEpKDApKDApKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDEwMDAgKDEpKDApKDApKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDEwMDEgKDEpKDApKDApKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDEwMTAgKDEpKDApKDApKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDEwMTEgKDEpKDApKDApKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDExMDAgKDEpKDApKDApKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDExMDEgKDEpKDApKDApKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDExMTAgKDEpKDApKDApKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMDExMTEgKDEpKDApKDApKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAwMDAgKDEpKDApKDApKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAwMDEgKDEpKDApKDApKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAwMTAgKDEpKDApKDApKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAwMTEgKDEpKDApKDApKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAxMDAgKDEpKDApKDApKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAxMDEgKDEpKDApKDApKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAxMTAgKDEpKDApKDApKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTAxMTEgKDEpKDApKDApKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTEwMDAgKDEpKDApKDApKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTEwMDEgKDEpKDApKDApKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTEwMTAgKDEpKDApKDApKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTEwMTEgKDEpKDApKDApKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTExMDAgKDEpKDApKDApKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTExMDEgKDEpKDApKDApKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTExMTAgKDEpKDApKDApKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAwMTExMTEgKDEpKDApKDApKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAwMDAgKDEpKDApKDEpKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAwMDEgKDEpKDApKDEpKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAwMTAgKDEpKDApKDEpKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAwMTEgKDEpKDApKDEpKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAxMDAgKDEpKDApKDEpKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAxMDEgKDEpKDApKDEpKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAxMTAgKDEpKDApKDEpKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDAxMTEgKDEpKDApKDEpKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDEwMDAgKDEpKDApKDEpKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDEwMDEgKDEpKDApKDEpKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDEwMTAgKDEpKDApKDEpKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDEwMTEgKDEpKDApKDEpKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDExMDAgKDEpKDApKDEpKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDExMDEgKDEpKDApKDEpKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDExMTAgKDEpKDApKDEpKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMDExMTEgKDEpKDApKDEpKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAwMDAgKDEpKDApKDEpKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAwMDEgKDEpKDApKDEpKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAwMTAgKDEpKDApKDEpKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAwMTEgKDEpKDApKDEpKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAxMDAgKDEpKDApKDEpKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAxMDEgKDEpKDApKDEpKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAxMTAgKDEpKDApKDEpKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTAxMTEgKDEpKDApKDEpKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTEwMDAgKDEpKDApKDEpKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTEwMDEgKDEpKDApKDEpKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTEwMTAgKDEpKDApKDEpKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTEwMTEgKDEpKDApKDEpKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTExMDAgKDEpKDApKDEpKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTExMDEgKDEpKDApKDEpKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTExMTAgKDEpKDApKDEpKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTAxMTExMTEgKDEpKDApKDEpKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAwMDAgKDEpKDEpKDApKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAwMDEgKDEpKDEpKDApKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAwMTAgKDEpKDEpKDApKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAwMTEgKDEpKDEpKDApKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAxMDAgKDEpKDEpKDApKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAxMDEgKDEpKDEpKDApKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAxMTAgKDEpKDEpKDApKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDAxMTEgKDEpKDEpKDApKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDEwMDAgKDEpKDEpKDApKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDEwMDEgKDEpKDEpKDApKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDEwMTAgKDEpKDEpKDApKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDEwMTEgKDEpKDEpKDApKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDExMDAgKDEpKDEpKDApKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDExMDEgKDEpKDEpKDApKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDExMTAgKDEpKDEpKDApKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMDExMTEgKDEpKDEpKDApKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAwMDAgKDEpKDEpKDApKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAwMDEgKDEpKDEpKDApKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAwMTAgKDEpKDEpKDApKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAwMTEgKDEpKDEpKDApKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAxMDAgKDEpKDEpKDApKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAxMDEgKDEpKDEpKDApKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAxMTAgKDEpKDEpKDApKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTAxMTEgKDEpKDEpKDApKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTEwMDAgKDEpKDEpKDApKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTEwMDEgKDEpKDEpKDApKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTEwMTAgKDEpKDEpKDApKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTEwMTEgKDEpKDEpKDApKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTExMDAgKDEpKDEpKDApKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTExMDEgKDEpKDEpKDApKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTExMTAgKDEpKDEpKDApKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTEwMTExMTEgKDEpKDEpKDApKDEpKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAwMDAgKDEpKDEpKDEpKDApKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAwMDEgKDEpKDEpKDEpKDApKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAwMTAgKDEpKDEpKDEpKDApKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAwMTEgKDEpKDEpKDEpKDApKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAxMDAgKDEpKDEpKDEpKDApKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAxMDEgKDEpKDEpKDEpKDApKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAxMTAgKDEpKDEpKDEpKDApKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDAxMTEgKDEpKDEpKDEpKDApKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDEwMDAgKDEpKDEpKDEpKDApKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDEwMDEgKDEpKDEpKDEpKDApKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDEwMTAgKDEpKDEpKDEpKDApKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDEwMTEgKDEpKDEpKDEpKDApKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDExMDAgKDEpKDEpKDEpKDApKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDExMDEgKDEpKDEpKDEpKDApKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDExMTAgKDEpKDEpKDEpKDApKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMDExMTEgKDEpKDEpKDEpKDApKDEpKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAwMDAgKDEpKDEpKDEpKDEpKDApKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAwMDEgKDEpKDEpKDEpKDEpKDApKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAwMTAgKDEpKDEpKDEpKDEpKDApKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAwMTEgKDEpKDEpKDEpKDEpKDApKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAxMDAgKDEpKDEpKDEpKDEpKDApKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAxMDEgKDEpKDEpKDEpKDEpKDApKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAxMTAgKDEpKDEpKDEpKDEpKDApKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTAxMTEgKDEpKDEpKDEpKDEpKDApKDEpKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTEwMDAgKDEpKDEpKDEpKDEpKDEpKDApKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTEwMDEgKDEpKDEpKDEpKDEpKDEpKDApKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTEwMTAgKDEpKDEpKDEpKDEpKDEpKDApKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTEwMTEgKDEpKDEpKDEpKDEpKDEpKDApKDEpKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTExMDAgKDEpKDEpKDEpKDEpKDEpKDEpKDApKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTExMDEgKDEpKDEpKDEpKDEpKDEpKDEpKDApKDEpLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTExMTAgKDEpKDEpKDEpKDEpKDEpKDEpKDEpKDApLCAKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0JJTkFSWV9MSVRFUkFMX0VMRU1FTlRfMTExMTExMTEgKDEpKDEpKDEpKDEpKDEpKDEpKDEpKDEpLCAKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvY29tcGFyZV9wb2ludGVlcy5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvY29tcGFyZV9wb2ludGVlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUyMGJmMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9jb21wYXJlX3BvaW50ZWVzLmhwcApAQCAtMCwwICsxLDY4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDMsIEZlcm5hbmRvIEx1aXMgQ2FjY2lvbGEgQ2FyYmFsbGFsLgorLy8KKy8vIFVzZSwgbW9kaWZpY2F0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL29wdGlvbmFsIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKy8vIFlvdSBhcmUgd2VsY29tZSB0byBjb250YWN0IHRoZSBhdXRob3IgYXQ6CisvLyAgZmVybmFuZG9fY2FjY2lvbGFAaG90bWFpbC5jb20KKy8vCisjaWZuZGVmIEJPT1NUX1VUSUxJVFlfQ09NUEFSRV9QT0lOVEVFU18yNUFHTzIwMDNfSFBQCisjZGVmaW5lIEJPT1NUX1VUSUxJVFlfQ09NUEFSRV9QT0lOVEVFU18yNUFHTzIwMDNfSFBQCisKKyNpbmNsdWRlPGZ1bmN0aW9uYWw+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKy8vIHRlbXBsYXRlPGNsYXNzIE9QPiBib29sIGVxdWFsX3BvaW50ZWVzKE9QIGNvbnN0JiB4LCBPUCBjb25zdCYgeSk7CisvLyB0ZW1wbGF0ZTxjbGFzcyBPUD4gc3RydWN0IGVxdWFsX3BvaW50ZWVzX3Q7CisvLworLy8gQmVpbmcgT1AgYSBtb2RlbCBvZiBPcHRpb25hbFBvaW50ZWUgKGVpdGhlciBhIHBvaW50ZXIgb3IgYW4gb3B0aW9uYWwpOgorLy8KKy8vIElmIGJvdGggeCBhbmQgeSBoYXZlIHZhbGlkIHBvaW50ZWVzLCByZXR1cm5zIHRoZSByZXN1bHQgb2YgKCp4ID09ICp5KQorLy8gSWYgb25seSBvbmUgaGFzIGEgdmFsaWQgcG9pbnRlZSwgcmV0dXJucyBmYWxzZS4KKy8vIElmIG5vbmUgaGF2ZSB2YWxpZCBwb2ludGVlcywgcmV0dXJucyB0cnVlLgorLy8gTm8tdGhyb3cKK3RlbXBsYXRlPGNsYXNzIE9wdGlvbmFsUG9pbnRlZT4KK2lubGluZQorYm9vbCBlcXVhbF9wb2ludGVlcyAoIE9wdGlvbmFsUG9pbnRlZSBjb25zdCYgeCwgT3B0aW9uYWxQb2ludGVlIGNvbnN0JiB5ICkKK3sKKyAgcmV0dXJuICgheCkgIT0gKCF5KSA/IGZhbHNlIDogKCAheCA/IHRydWUgOiAoKngpID09ICgqeSkgKSA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIE9wdGlvbmFsUG9pbnRlZT4KK3N0cnVjdCBlcXVhbF9wb2ludGVlc190IDogc3RkOjpiaW5hcnlfZnVuY3Rpb248T3B0aW9uYWxQb2ludGVlLE9wdGlvbmFsUG9pbnRlZSxib29sPgoreworICBib29sIG9wZXJhdG9yKCkgKCBPcHRpb25hbFBvaW50ZWUgY29uc3QmIHgsIE9wdGlvbmFsUG9pbnRlZSBjb25zdCYgeSApIGNvbnN0CisgICAgeyByZXR1cm4gZXF1YWxfcG9pbnRlZXMoeCx5KSA7IH0KK30gOworCisvLyB0ZW1wbGF0ZTxjbGFzcyBPUD4gYm9vbCBsZXNzX3BvaW50ZWVzKE9QIGNvbnN0JiB4LCBPUCBjb25zdCYgeSk7CisvLyB0ZW1wbGF0ZTxjbGFzcyBPUD4gc3RydWN0IGxlc3NfcG9pbnRlZXNfdDsKKy8vCisvLyBCZWluZyBPUCBhIG1vZGVsIG9mIE9wdGlvbmFsUG9pbnRlZSAoZWl0aGVyIGEgcG9pbnRlciBvciBhbiBvcHRpb25hbCk6CisvLworLy8gSWYgeSBoYXMgbm90IGEgdmFsaWQgcG9pbnRlZSwgcmV0dXJucyBmYWxzZS4KKy8vIEVsc2VJZiB4IGhhcyBub3QgYSB2YWxpZCBwb2ludGVlLCByZXR1cm5zIHRydWUuCisvLyBFbHNlSWYgYm90aCB4IGFuZCB5IGhhdmUgdmFsaWQgcG9pbnRlZXMsIHJldHVybnMgdGhlIHJlc3VsdCBvZiAoKnggPCAqeSkKKy8vIE5vLXRocm93Cit0ZW1wbGF0ZTxjbGFzcyBPcHRpb25hbFBvaW50ZWU+CitpbmxpbmUKK2Jvb2wgbGVzc19wb2ludGVlcyAoIE9wdGlvbmFsUG9pbnRlZSBjb25zdCYgeCwgT3B0aW9uYWxQb2ludGVlIGNvbnN0JiB5ICkKK3sKKyAgcmV0dXJuICF5ID8gZmFsc2UgOiAoICF4ID8gdHJ1ZSA6ICgqeCkgPCAoKnkpICkgOworfQorCit0ZW1wbGF0ZTxjbGFzcyBPcHRpb25hbFBvaW50ZWU+CitzdHJ1Y3QgbGVzc19wb2ludGVlc190IDogc3RkOjpiaW5hcnlfZnVuY3Rpb248T3B0aW9uYWxQb2ludGVlLE9wdGlvbmFsUG9pbnRlZSxib29sPgoreworICBib29sIG9wZXJhdG9yKCkgKCBPcHRpb25hbFBvaW50ZWUgY29uc3QmIHgsIE9wdGlvbmFsUG9pbnRlZSBjb25zdCYgeSApIGNvbnN0CisgICAgeyByZXR1cm4gbGVzc19wb2ludGVlcyh4LHkpIDsgfQorfSA7CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvZGVjbHZhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIyMTU0YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZWNsdmFsLmhwcApAQCAtMCwwICsxLDQ5IEBACisvLyAgY29tbW9uX3R5cGUuaHBwICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgQ29weXJpZ2h0IDIwMTAgVmljZW50ZSBKLiBCb3RldCBFc2NyaWJhCisKKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX0VYVF9ERUNMVkFMX19IUFAKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0RFQ0xWQUxfX0hQUAorCisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9ydmFsdWVfcmVmZXJlbmNlLmhwcD4KKy8vI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2FkZF9sdmFsdWVfcmVmZXJlbmNlLmhwcD4KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIEMrKzAzIGltcGxlbWVudGF0aW9uIG9mICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgVmljZW50ZSBKLiBCb3RldCBFc2NyaWJhICAgICAgICAgICAgICAgLy8KKy8vfiAyMC4zLjQgRnVuY3Rpb24gdGVtcGxhdGUgZGVjbHZhbCBbZGVjbHZhbF0KKy8vfiAxIFRoZSBsaWJyYXJ5IHByb3ZpZGVzIHRoZSBmdW5jdGlvbiB0ZW1wbGF0ZSBkZWNsdmFsIHRvIHNpbXBsaWZ5IHRoZSBkZWZpbml0aW9uIG9mIGV4cHJlc3Npb25zIHdoaWNoIG9jY3VyIGFzCisvL34gdW5ldmFsdWF0ZWQgb3BlcmFuZHMuCisvL34gMiBSZW1hcmtzOiBJZiB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQsIHRoZSBwcm9ncmFtIGlzIGlsbC1mb3JtZWQuCisvL34gMyBSZW1hcmtzOiBUaGUgdGVtcGxhdGUgcGFyYW1ldGVyIFQgb2YgZGVjbHZhbCBtYXkgYmUgYW4gaW5jb21wbGV0ZSB0eXBlLgorLy9+IFsgRXhhbXBsZToKKworLy9+IHRlbXBsYXRlIDxjbGFzcyBUbywgY2xhc3MgRnJvbT4KKy8vfiBkZWNsdHlwZShzdGF0aWNfY2FzdDxUbz4oZGVjbHZhbDxGcm9tPigpKSkgY29udmVydChGcm9tJiYpOworCisvL34gZGVjbGFyZXMgYSBmdW5jdGlvbiB0ZW1wbGF0ZSBjb252ZXJ0IHdoaWNoIG9ubHkgcGFydGljaXBhdHMgaW4gb3ZlcmxvYWRpbmcgaWYgdGhlIHR5cGUgRnJvbSBjYW4gYmUKKy8vfiBleHBsaWNpdGx5IGNvbnZlcnRlZCB0byB0eXBlIFRvLiBGb3IgYW5vdGhlciBleGFtcGxlIHNlZSBjbGFzcyB0ZW1wbGF0ZSBjb21tb25fdHlwZSAoMjAuNy42LjYpLiCXZW5kCisvL34gZXhhbXBsZSBdCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8jaWYgIWRlZmluZWQoQk9PU1RfTk9fUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgdHlwZW5hbWUgYWRkX3J2YWx1ZV9yZWZlcmVuY2U8VD46OnR5cGUgZGVjbHZhbCgpIEJPT1NUX05PRVhDRVBUOyAvLyBhcyB1bmV2YWx1YXRlZCBvcGVyYW5kCisvLyNlbHNlCisvLyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy8vICAgIHR5cGVuYW1lIGFkZF9sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp0eXBlIGRlY2x2YWwoKSBCT09TVF9OT0VYQ0VQVDsgLy8gYXMgdW5ldmFsdWF0ZWQgb3BlcmFuZAorLy8jZW5kaWYKK30gIC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vIEJPT1NUX1RZUEVfVFJBSVRTX0VYVF9ERUNMVkFMX19IUFAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvaW5fcGxhY2VfZmFjdG9yeV9wcmVmaXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2RldGFpbC9pbl9wbGFjZV9mYWN0b3J5X3ByZWZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdjODJlNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvaW5fcGxhY2VfZmFjdG9yeV9wcmVmaXguaHBwCkBAIC0wLDAgKzEsMzYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwMywgRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwuCisvLyBDb3B5cmlnaHQgKEMpIDIwMDcsIFRvYmlhcyBTY2h3aW5nZXIuCisvLworLy8gVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvb3B0aW9uYWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8gWW91IGFyZSB3ZWxjb21lIHRvIGNvbnRhY3QgdGhlIGF1dGhvciBhdDoKKy8vICBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKyNpZm5kZWYgQk9PU1RfVVRJTElUWV9ERVRBSUxfSU5QTEFDRV9GQUNUT1JZX1BSRUZJWF8wNEFQUjIwMDdfSFBQCisjZGVmaW5lIEJPT1NUX1VUSUxJVFlfREVUQUlMX0lOUExBQ0VfRkFDVE9SWV9QUkVGSVhfMDRBUFIyMDA3X0hQUAorCisjaW5jbHVkZSA8bmV3PgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmRuYm9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vcGFyZW4uaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9iaW5hcnlfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX3RyYWlsaW5nX3BhcmFtcy5ocHA+CisKKyNkZWZpbmUgQk9PU1RfREVGSU5FX0lOUExBQ0VfRkFDVE9SWV9DTEFTU19NRU1CRVJfSU5JVCh6LG4sXykgQk9PU1RfUFBfQ0FUKG1fYSxuKSBCT09TVF9QUF9MUEFSRU4oKSBCT09TVF9QUF9DQVQoYSxuKSBCT09TVF9QUF9SUEFSRU4oKQorI2RlZmluZSBCT09TVF9ERUZJTkVfSU5QTEFDRV9GQUNUT1JZX0NMQVNTX01FTUJFUl9ERUNMKHosbixfKSBCT09TVF9QUF9DQVQoQSxuKSBjb25zdCYgQk9PU1RfUFBfQ0FUKG1fYSxuKTsKKworI2RlZmluZSBCT09TVF9NQVhfSU5QTEFDRV9GQUNUT1JZX0FSSVRZIDEwCisKKyN1bmRlZiBCT09TVF9VVElMSVRZX0RFVEFJTF9JTlBMQUNFX0ZBQ1RPUllfU1VGRklYXzA0QVBSMjAwN19IUFAKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvaW5fcGxhY2VfZmFjdG9yeV9zdWZmaXguaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2RldGFpbC9pbl9wbGFjZV9mYWN0b3J5X3N1ZmZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThmNDhjNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvaW5fcGxhY2VfZmFjdG9yeV9zdWZmaXguaHBwCkBAIC0wLDAgKzEsMjMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwMywgRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwuCisvLyBDb3B5cmlnaHQgKEMpIDIwMDcsIFRvYmlhcyBTY2h3aW5nZXIuCisvLworLy8gVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvb3B0aW9uYWwgZm9yIGRvY3VtZW50YXRpb24uCisvLworLy8gWW91IGFyZSB3ZWxjb21lIHRvIGNvbnRhY3QgdGhlIGF1dGhvciBhdDoKKy8vICBmZXJuYW5kb19jYWNjaW9sYUBob3RtYWlsLmNvbQorLy8KKyNpZm5kZWYgQk9PU1RfVVRJTElUWV9ERVRBSUxfSU5QTEFDRV9GQUNUT1JZX1NVRkZJWF8wNEFQUjIwMDdfSFBQCisjZGVmaW5lIEJPT1NUX1VUSUxJVFlfREVUQUlMX0lOUExBQ0VfRkFDVE9SWV9TVUZGSVhfMDRBUFIyMDA3X0hQUAorCisjdW5kZWYgQk9PU1RfREVGSU5FX0lOUExBQ0VfRkFDVE9SWV9DTEFTU19NRU1CRVJfSU5JVAorI3VuZGVmIEJPT1NUX0RFRklORV9JTlBMQUNFX0ZBQ1RPUllfQ0xBU1NfTUVNQkVSX0RFQ0wKKyN1bmRlZiBCT09TVF9NQVhfSU5QTEFDRV9GQUNUT1JZX0FSSVRZCisKKyN1bmRlZiBCT09TVF9VVElMSVRZX0RFVEFJTF9JTlBMQUNFX0ZBQ1RPUllfUFJFRklYXzA0QVBSMjAwN19IUFAKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvcmVzdWx0X29mX2l0ZXJhdGUuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2RldGFpbC9yZXN1bHRfb2ZfaXRlcmF0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E5ZGMzZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvcmVzdWx0X29mX2l0ZXJhdGUuaHBwCkBAIC0wLDAgKzEsMjA4IEBACisvLyBCb29zdCByZXN1bHRfb2YgbGlicmFyeQorCisvLyAgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDQuIFVzZSwgbW9kaWZpY2F0aW9uIGFuZAorLy8gIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uCisvLyAgMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgQ29weXJpZ2h0IERhbmllbCBXYWxrZXIsIEVyaWMgTmllYmxlciwgTWljaGVsIE1vcmluIDIwMDgtMjAxMi4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yCisvLyAgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5CisjaWYgIWRlZmluZWQoQk9PU1RfUFBfSVNfSVRFUkFUSU5HKQorIyBlcnJvciBCb29zdCByZXN1bHRfb2YgLSBkbyBub3QgaW5jbHVkZSB0aGlzIGZpbGUhCisjZW5kaWYKKworLy8gQ1dQcm84IHJlcXVpcmVzIGFuIGFyZ3VtZW50IGluIGEgZnVuY3Rpb24gdHlwZSBzcGVjaWFsaXphdGlvbgorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgQk9PU1RfVEVTVEVEX0FUKDB4MzAwMikpICYmIEJPT1NUX1BQX0lURVJBVElPTigpID09IDAKKyMgZGVmaW5lIEJPT1NUX1JFU1VMVF9PRl9BUkdTIHZvaWQKKyNlbHNlCisjIGRlZmluZSBCT09TVF9SRVNVTFRfT0ZfQVJHUyBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSxUKQorI2VuZGlmCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU1MSkpCit0ZW1wbGF0ZTx0eXBlbmFtZSBGIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLHR5cGVuYW1lIFQpPgorc3RydWN0IHRyMV9yZXN1bHRfb2Y8RihCT09TVF9SRVNVTFRfT0ZfQVJHUyk+CisgICAgOiBtcGw6OmlmXzwKKyAgICAgICAgICBtcGw6Om9yXzwgaXNfcG9pbnRlcjxGPiwgaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXI8Rj4gPgorICAgICAgICAsIG5kbmJvb3N0OjpkZXRhaWw6OnRyMV9yZXN1bHRfb2ZfaW1wbDwKKyAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jdjxGPjo6dHlwZSwKKyAgICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jdjxGPjo6dHlwZShCT09TVF9SRVNVTFRfT0ZfQVJHUyksCisgICAgICAgICAgICAobmRuYm9vc3Q6OmRldGFpbDo6aGFzX3Jlc3VsdF90eXBlPEY+Ojp2YWx1ZSk+CisgICAgICAgICwgbmRuYm9vc3Q6OmRldGFpbDo6dHIxX3Jlc3VsdF9vZl9pbXBsPAorICAgICAgICAgICAgRiwKKyAgICAgICAgICAgIEYoQk9PU1RfUkVTVUxUX09GX0FSR1MpLAorICAgICAgICAgICAgKG5kbmJvb3N0OjpkZXRhaWw6Omhhc19yZXN1bHRfdHlwZTxGPjo6dmFsdWUpPiA+Ojp0eXBlIHsgfTsKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfUkVTVUxUX09GX1VTRV9ERUNMVFlQRQorCisvLyBVc2VzIGRlY2x2YWwgZm9sbG93aW5nIE4zMjI1IDIwLjcuNy42IHdoZW4gRiBpcyBub3QgYSBwb2ludGVyLgordGVtcGxhdGU8dHlwZW5hbWUgRiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSx0eXBlbmFtZSBUKT4KK3N0cnVjdCByZXN1bHRfb2Y8RihCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSxUKSk+CisgICAgOiBtcGw6OmlmXzwKKyAgICAgICAgICBpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcjxGPgorICAgICAgICAsIGRldGFpbDo6dHIxX3Jlc3VsdF9vZl9pbXBsPAorICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PEY+Ojp0eXBlLAorICAgICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX2N2PEY+Ojp0eXBlKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLFQpKSwgZmFsc2UKKyAgICAgICAgICA+CisgICAgICAgICwgZGV0YWlsOjpjcHAweF9yZXN1bHRfb2ZfaW1wbDwKKyAgICAgICAgICAgICAgRihCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSxUKSkKKyAgICAgICAgICA+CisgICAgICA+Ojp0eXBlCit7fTsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKKyNpZmRlZiBCT09TVF9OT19TRklOQUVfRVhQUgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorc3RydWN0IEJPT1NUX1BQX0NBVChyZXN1bHRfb2ZfY2FsbGFibGVfZnVuXzJfLCBCT09TVF9QUF9JVEVSQVRJT04oKSk7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksIHR5cGVuYW1lIFQpPgorc3RydWN0IEJPT1NUX1BQX0NBVChyZXN1bHRfb2ZfY2FsbGFibGVfZnVuXzJfLCBCT09TVF9QUF9JVEVSQVRJT04oKSk8UihCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSwgVCkpPiB7CisgICAgUiBvcGVyYXRvcigpKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLCBUKSkgY29uc3Q7CisgICAgdHlwZWRlZiByZXN1bHRfb2ZfcHJpdmF0ZV90eXBlIGNvbnN0ICYoKnBmbl90KSguLi4pOworICAgIG9wZXJhdG9yIHBmbl90KCkgY29uc3Qgdm9sYXRpbGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorc3RydWN0IEJPT1NUX1BQX0NBVChyZXN1bHRfb2ZfY2FsbGFibGVfZnVuXywgQk9PU1RfUFBfSVRFUkFUSU9OKCkpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorc3RydWN0IEJPT1NUX1BQX0NBVChyZXN1bHRfb2ZfY2FsbGFibGVfZnVuXywgQk9PU1RfUFBfSVRFUkFUSU9OKCkpPEYgKj4KKyAgOiBCT09TVF9QUF9DQVQocmVzdWx0X29mX2NhbGxhYmxlX2Z1bl8yXywgQk9PU1RfUFBfSVRFUkFUSU9OKCkpPEY+Cit7fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRj4KK3N0cnVjdCBCT09TVF9QUF9DQVQocmVzdWx0X29mX2NhbGxhYmxlX2Z1bl8sIEJPT1NUX1BQX0lURVJBVElPTigpKTxGICY+CisgIDogQk9PU1RfUFBfQ0FUKHJlc3VsdF9vZl9jYWxsYWJsZV9mdW5fMl8sIEJPT1NUX1BQX0lURVJBVElPTigpKTxGPgore307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEY+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKHJlc3VsdF9vZl9zZWxlY3RfY2FsbF93cmFwcGVyX3R5cGVfLCBCT09TVF9QUF9JVEVSQVRJT04oKSkKKyAgOiBtcGw6OmV2YWxfaWY8CisgICAgICAgIGlzX2NsYXNzPHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8Rj46OnR5cGU+LAorICAgICAgICByZXN1bHRfb2Zfd3JhcF9jYWxsYWJsZV9jbGFzczxGPiwKKyAgICAgICAgbXBsOjppZGVudGl0eTxCT09TVF9QUF9DQVQocmVzdWx0X29mX2NhbGxhYmxlX2Z1bl8sIEJPT1NUX1BQX0lURVJBVElPTigpKTx0eXBlbmFtZSByZW1vdmVfY3Y8Rj46OnR5cGU+ID4KKyAgICA+Cit7fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSwgdHlwZW5hbWUgVCk+CitzdHJ1Y3QgQk9PU1RfUFBfQ0FUKHJlc3VsdF9vZl9pc19jYWxsYWJsZV8sIEJPT1NUX1BQX0lURVJBVElPTigpKSB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBCT09TVF9QUF9DQVQocmVzdWx0X29mX3NlbGVjdF9jYWxsX3dyYXBwZXJfdHlwZV8sIEJPT1NUX1BQX0lURVJBVElPTigpKTxGPjo6dHlwZSB3cmFwcGVyX3Q7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSAoCisgICAgICAgIHNpemVvZihyZXN1bHRfb2Zfbm9fdHlwZSkgPT0gc2l6ZW9mKGRldGFpbDo6cmVzdWx0X29mX2lzX3ByaXZhdGVfdHlwZSgKKyAgICAgICAgICAgIChuZG5ib29zdDo6ZGVjbHZhbDx3cmFwcGVyX3Q+KCkoQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLCBuZG5ib29zdDo6ZGVjbHZhbDxULCA+KCkgQk9PU1RfUFBfSU5URVJDRVBUKSksIHJlc3VsdF9vZl93ZWlyZF90eXBlKCkpCisgICAgICAgICkpCisgICAgKTsKKyAgICB0eXBlZGVmIG1wbDo6Ym9vbF88dmFsdWU+IHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLHR5cGVuYW1lIFQpPgorc3RydWN0IGNwcDB4X3Jlc3VsdF9vZl9pbXBsPEYoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksVCkpLCB0cnVlPgorICAgIDogbGF6eV9lbmFibGVfaWY8CisgICAgICAgICAgQk9PU1RfUFBfQ0FUKHJlc3VsdF9vZl9pc19jYWxsYWJsZV8sIEJPT1NUX1BQX0lURVJBVElPTigpKTxGIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLCBUKT4KKyAgICAgICAgLCBjcHAweF9yZXN1bHRfb2ZfaW1wbDxGKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLFQpKSwgZmFsc2U+CisgICAgICA+Cit7fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRiBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSx0eXBlbmFtZSBUKT4KK3N0cnVjdCBjcHAweF9yZXN1bHRfb2ZfaW1wbDxGKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLFQpKSwgZmFsc2U+Cit7CisgIHR5cGVkZWYgZGVjbHR5cGUoCisgICAgbmRuYm9vc3Q6OmRlY2x2YWw8Rj4oKSgKKyAgICAgIEJPT1NUX1BQX0VOVU1fQklOQVJZX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSwgbmRuYm9vc3Q6OmRlY2x2YWw8VCwgPigpIEJPT1NUX1BQX0lOVEVSQ0VQVCkKKyAgICApCisgICkgdHlwZTsKK307CisKKyNlbHNlIC8vIEJPT1NUX05PX1NGSU5BRV9FWFBSCisKK3RlbXBsYXRlPHR5cGVuYW1lIEYgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksdHlwZW5hbWUgVCk+CitzdHJ1Y3QgY3BwMHhfcmVzdWx0X29mX2ltcGw8RihCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSxUKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgcmVzdWx0X29mX2Fsd2F5c192b2lkPGRlY2x0eXBlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZG5ib29zdDo6ZGVjbHZhbDxGPigpKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLCBuZG5ib29zdDo6ZGVjbHZhbDxULCA+KCkgQk9PU1RfUFBfSU5URVJDRVBUKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT46OnR5cGU+IHsKKyAgdHlwZWRlZiBkZWNsdHlwZSgKKyAgICBuZG5ib29zdDo6ZGVjbHZhbDxGPigpKAorICAgICAgQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLCBuZG5ib29zdDo6ZGVjbHZhbDxULCA+KCkgQk9PU1RfUFBfSU5URVJDRVBUKQorICAgICkKKyAgKSB0eXBlOworfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1NGSU5BRV9FWFBSCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisjZWxzZSAvLyBkZWZpbmVkKEJPT1NUX1JFU1VMVF9PRl9VU0VfREVDTFRZUEUpCisKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU1MSkpCit0ZW1wbGF0ZTx0eXBlbmFtZSBGIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLHR5cGVuYW1lIFQpPgorc3RydWN0IHJlc3VsdF9vZjxGKEJPT1NUX1JFU1VMVF9PRl9BUkdTKT4KKyAgICA6IHRyMV9yZXN1bHRfb2Y8RihCT09TVF9SRVNVTFRfT0ZfQVJHUyk+IHsgfTsKKyNlbmRpZgorCisjZW5kaWYgLy8gZGVmaW5lZChCT09TVF9SRVNVTFRfT0ZfVVNFX0RFQ0xUWVBFKQorCisjdW5kZWYgQk9PU1RfUkVTVUxUX09GX0FSR1MKKworI2lmIEJPT1NUX1BQX0lURVJBVElPTigpID49IDEKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsICB0eXBlbmFtZSBGQXJncyBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSx0eXBlbmFtZSBUKT4KK3N0cnVjdCB0cjFfcmVzdWx0X29mX2ltcGw8UiAoKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksVCkpLCBGQXJncywgZmFsc2U+Cit7CisgIHR5cGVkZWYgUiB0eXBlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgIHR5cGVuYW1lIEZBcmdzIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLHR5cGVuYW1lIFQpPgorc3RydWN0IHRyMV9yZXN1bHRfb2ZfaW1wbDxSICgmKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSxUKSksIEZBcmdzLCBmYWxzZT4KK3sKKyAgdHlwZWRlZiBSIHR5cGU7Cit9OworCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NTEpKQordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgRkFyZ3MgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksdHlwZW5hbWUgVCk+CitzdHJ1Y3QgdHIxX3Jlc3VsdF9vZl9pbXBsPFIgKFQwOjoqKQorICAgICAgICAgICAgICAgICAgICAgKEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksVCkpLAorICAgICAgICAgICAgICAgICBGQXJncywgZmFsc2U+Cit7CisgIHR5cGVkZWYgUiB0eXBlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUiwgdHlwZW5hbWUgRkFyZ3MgQk9PU1RfUFBfRU5VTV9UUkFJTElOR19QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksdHlwZW5hbWUgVCk+CitzdHJ1Y3QgdHIxX3Jlc3VsdF9vZl9pbXBsPFIgKFQwOjoqKQorICAgICAgICAgICAgICAgICAgICAgKEJPT1NUX1BQX0VOVU1fU0hJRlRFRF9QQVJBTVMoQk9PU1RfUFBfSVRFUkFUSU9OKCksVCkpCisgICAgICAgICAgICAgICAgICAgICBjb25zdCwKKyAgICAgICAgICAgICAgICAgRkFyZ3MsIGZhbHNlPgoreworICB0eXBlZGVmIFIgdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFIsIHR5cGVuYW1lIEZBcmdzIEJPT1NUX1BQX0VOVU1fVFJBSUxJTkdfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLHR5cGVuYW1lIFQpPgorc3RydWN0IHRyMV9yZXN1bHRfb2ZfaW1wbDxSIChUMDo6KikKKyAgICAgICAgICAgICAgICAgICAgIChCT09TVF9QUF9FTlVNX1NISUZURURfUEFSQU1TKEJPT1NUX1BQX0lURVJBVElPTigpLFQpKQorICAgICAgICAgICAgICAgICAgICAgdm9sYXRpbGUsCisgICAgICAgICAgICAgICAgIEZBcmdzLCBmYWxzZT4KK3sKKyAgdHlwZWRlZiBSIHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSLCB0eXBlbmFtZSBGQXJncyBCT09TVF9QUF9FTlVNX1RSQUlMSU5HX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSx0eXBlbmFtZSBUKT4KK3N0cnVjdCB0cjFfcmVzdWx0X29mX2ltcGw8UiAoVDA6OiopCisgICAgICAgICAgICAgICAgICAgICAoQk9PU1RfUFBfRU5VTV9TSElGVEVEX1BBUkFNUyhCT09TVF9QUF9JVEVSQVRJT04oKSxUKSkKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvbGF0aWxlLAorICAgICAgICAgICAgICAgICBGQXJncywgZmFsc2U+Cit7CisgIHR5cGVkZWYgUiB0eXBlOworfTsKKyNlbmRpZgorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9lbmFibGVfaWYuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2VuYWJsZV9pZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVlZDI5MgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9lbmFibGVfaWYuaHBwCkBAIC0wLDAgKzEsMTE5IEBACisvLyBCb29zdCBlbmFibGVfaWYgbGlicmFyeQorCisvLyBDb3B5cmlnaHQgMjAwMyAoYykgVGhlIFRydXN0ZWVzIG9mIEluZGlhbmEgVW5pdmVyc2l0eS4KKworLy8gVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICAgIEF1dGhvcnM6IEphYWtrbyBKYXJ2aSAoamFqYXJ2aSBhdCBvc2wuaXUuZWR1KQorLy8gICAgICAgICAgICAgSmVyZW1pYWggV2lsbGNvY2sgKGpld2lsbGNvIGF0IG9zbC5pdS5lZHUpCisvLyAgICAgICAgICAgICBBbmRyZXcgTHVtc2RhaW5lIChsdW1zIGF0IG9zbC5pdS5lZHUpCisKKworI2lmbmRlZiBCT09TVF9VVElMSVRZX0VOQUJMRV9JRl9IUFAKKyNkZWZpbmUgQk9PU1RfVVRJTElUWV9FTkFCTEVfSUZfSFBQCisKKyNpbmNsdWRlICJuZG5ib29zdC9jb25maWcuaHBwIgorCisvLyBFdmVuIHRoZSBkZWZpbml0aW9uIG9mIGVuYWJsZV9pZiBjYXVzZXMgcHJvYmxlbXMgb24gc29tZSBjb21waWxlcnMsCisvLyBzbyBpdCdzIG1hY3JvZWQgb3V0IGZvciBhbGwgY29tcGlsZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgU0ZJTkFFCisKKyNpZm5kZWYgQk9PU1RfTk9fU0ZJTkFFCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworIAorICB0ZW1wbGF0ZSA8Ym9vbCBCLCBjbGFzcyBUID0gdm9pZD4KKyAgc3RydWN0IGVuYWJsZV9pZl9jIHsKKyAgICB0eXBlZGVmIFQgdHlwZTsKKyAgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgc3RydWN0IGVuYWJsZV9pZl9jPGZhbHNlLCBUPiB7fTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IHZvaWQ+IAorICBzdHJ1Y3QgZW5hYmxlX2lmIDogcHVibGljIGVuYWJsZV9pZl9jPENvbmQ6OnZhbHVlLCBUPiB7fTsKKworICB0ZW1wbGF0ZSA8Ym9vbCBCLCBjbGFzcyBUPgorICBzdHJ1Y3QgbGF6eV9lbmFibGVfaWZfYyB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0eXBlIHR5cGU7CisgIH07CisKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIHN0cnVjdCBsYXp5X2VuYWJsZV9pZl9jPGZhbHNlLCBUPiB7fTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVD4gCisgIHN0cnVjdCBsYXp5X2VuYWJsZV9pZiA6IHB1YmxpYyBsYXp5X2VuYWJsZV9pZl9jPENvbmQ6OnZhbHVlLCBUPiB7fTsKKworCisgIHRlbXBsYXRlIDxib29sIEIsIGNsYXNzIFQgPSB2b2lkPgorICBzdHJ1Y3QgZGlzYWJsZV9pZl9jIHsKKyAgICB0eXBlZGVmIFQgdHlwZTsKKyAgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgc3RydWN0IGRpc2FibGVfaWZfYzx0cnVlLCBUPiB7fTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IHZvaWQ+IAorICBzdHJ1Y3QgZGlzYWJsZV9pZiA6IHB1YmxpYyBkaXNhYmxlX2lmX2M8Q29uZDo6dmFsdWUsIFQ+IHt9OworCisgIHRlbXBsYXRlIDxib29sIEIsIGNsYXNzIFQ+CisgIHN0cnVjdCBsYXp5X2Rpc2FibGVfaWZfYyB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp0eXBlIHR5cGU7CisgIH07CisKKyAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgIHN0cnVjdCBsYXp5X2Rpc2FibGVfaWZfYzx0cnVlLCBUPiB7fTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVD4gCisgIHN0cnVjdCBsYXp5X2Rpc2FibGVfaWYgOiBwdWJsaWMgbGF6eV9kaXNhYmxlX2lmX2M8Q29uZDo6dmFsdWUsIFQ+IHt9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZWxzZQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisgIG5hbWVzcGFjZSBkZXRhaWwgeyB0eXBlZGVmIHZvaWQgZW5hYmxlX2lmX2RlZmF1bHRfVDsgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICBzdHJ1Y3QgZW5hYmxlX2lmX2RvZXNfbm90X3dvcmtfb25fdGhpc19jb21waWxlcjsKKworICB0ZW1wbGF0ZSA8Ym9vbCBCLCBjbGFzcyBUID0gZGV0YWlsOjplbmFibGVfaWZfZGVmYXVsdF9UPgorICBzdHJ1Y3QgZW5hYmxlX2lmX2MgOiBlbmFibGVfaWZfZG9lc19ub3Rfd29ya19vbl90aGlzX2NvbXBpbGVyPFQ+CisgIHsgfTsKKworICB0ZW1wbGF0ZSA8Ym9vbCBCLCBjbGFzcyBUID0gZGV0YWlsOjplbmFibGVfaWZfZGVmYXVsdF9UPiAKKyAgc3RydWN0IGRpc2FibGVfaWZfYyA6IGVuYWJsZV9pZl9kb2VzX25vdF93b3JrX29uX3RoaXNfY29tcGlsZXI8VD4KKyAgeyB9OworCisgIHRlbXBsYXRlIDxib29sIEIsIGNsYXNzIFQgPSBkZXRhaWw6OmVuYWJsZV9pZl9kZWZhdWx0X1Q+IAorICBzdHJ1Y3QgbGF6eV9lbmFibGVfaWZfYyA6IGVuYWJsZV9pZl9kb2VzX25vdF93b3JrX29uX3RoaXNfY29tcGlsZXI8VD4KKyAgeyB9OworCisgIHRlbXBsYXRlIDxib29sIEIsIGNsYXNzIFQgPSBkZXRhaWw6OmVuYWJsZV9pZl9kZWZhdWx0X1Q+IAorICBzdHJ1Y3QgbGF6eV9kaXNhYmxlX2lmX2MgOiBlbmFibGVfaWZfZG9lc19ub3Rfd29ya19vbl90aGlzX2NvbXBpbGVyPFQ+CisgIHsgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IGRldGFpbDo6ZW5hYmxlX2lmX2RlZmF1bHRfVD4gCisgIHN0cnVjdCBlbmFibGVfaWYgOiBlbmFibGVfaWZfZG9lc19ub3Rfd29ya19vbl90aGlzX2NvbXBpbGVyPFQ+CisgIHsgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IGRldGFpbDo6ZW5hYmxlX2lmX2RlZmF1bHRfVD4gCisgIHN0cnVjdCBkaXNhYmxlX2lmIDogZW5hYmxlX2lmX2RvZXNfbm90X3dvcmtfb25fdGhpc19jb21waWxlcjxUPgorICB7IH07CisKKyAgdGVtcGxhdGUgPGNsYXNzIENvbmQsIGNsYXNzIFQgPSBkZXRhaWw6OmVuYWJsZV9pZl9kZWZhdWx0X1Q+IAorICBzdHJ1Y3QgbGF6eV9lbmFibGVfaWYgOiBlbmFibGVfaWZfZG9lc19ub3Rfd29ya19vbl90aGlzX2NvbXBpbGVyPFQ+CisgIHsgfTsKKworICB0ZW1wbGF0ZSA8Y2xhc3MgQ29uZCwgY2xhc3MgVCA9IGRldGFpbDo6ZW5hYmxlX2lmX2RlZmF1bHRfVD4gCisgIHN0cnVjdCBsYXp5X2Rpc2FibGVfaWYgOiBlbmFibGVfaWZfZG9lc19ub3Rfd29ya19vbl90aGlzX2NvbXBpbGVyPFQ+CisgIHsgfTsKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX05PX1NGSU5BRQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9pZGVudGl0eV90eXBlLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9pZGVudGl0eV90eXBlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjBkZGJkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2lkZW50aXR5X3R5cGUuaHBwCkBAIC0wLDAgKzEsNDYgQEAKKworLy8gQ29weXJpZ2h0IChDKSAyMDA5LTIwMTIgTG9yZW56byBDYW1pbml0aQorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wCisvLyAoc2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBhIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vIEhvbWUgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L2lkZW50aXR5X3R5cGUKKworLyoqIEBmaWxlCitXcmFwIHR5cGUgZXhwcmVzc2lvbnMgd2l0aCByb3VuZCBwYXJlbnRoZXNpcyBzbyB0aGV5IGNhbiBiZSBwYXNzZWQgdG8gbWFjcm9zCitldmVuIGlmIHRoZXkgY29udGFpbiBjb21tYXMuCisqLworCisjaWZuZGVmIEJPT1NUX0lERU5USVRZX1RZUEVfSFBQXworI2RlZmluZSBCT09TVF9JREVOVElUWV9UWVBFX0hQUF8KKworI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2Z1bmN0aW9uX3RyYWl0cy5ocHA+CisKKy8qKgorQGJyaWVmIFRoaXMgbWFjcm8gYWxsb3dzIHRvIHdyYXAgdGhlIHNwZWNpZmllZCB0eXBlIGV4cHJlc3Npb24gd2l0aGluIGV4dHJhCityb3VuZCBwYXJlbnRoZXNpcyBzbyB0aGUgdHlwZSBjYW4gYmUgcGFzc2VkIGFzIGEgc2luZ2xlIG1hY3JvIHBhcmFtZXRlciBldmVuIGlmCitpdCBjb250YWlucyBjb21tYXMgKG5vdCBhbHJlYWR5IHdyYXBwZWQgd2l0aGluIHJvdW5kIHBhcmVudGhlc2lzKS4KKworQFBhcmFtcworQFBhcmFte3BhcmVudGhlc2l6ZWRfdHlwZSwKK1RoZSB0eXBlIGV4cHJlc3Npb24gdG8gYmUgcGFzc2VkIGFzIG1hY3JvIHBhcmFtZXRlciB3cmFwcGVkIGJ5IGEgc2luZ2xlIHNldAorb2Ygcm91bmQgcGFyZW50aGVzaXMgPGM+KC4uLik8L2M+LgorVGhpcyB0eXBlIGV4cHJlc3Npb24gY2FuIGNvbnRhaW4gYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBjb21tYXMuCit9CitARW5kUGFyYW1zCisKK1RoaXMgbWFjcm8gd29ya3Mgb24gYW55IEMrKzAzIGNvbXBpbGVyIChpdCBkb2VzIG5vdCB1c2UgdmFyaWFkaWMgbWFjcm9zKS4KKworVGhpcyBtYWNybyBtdXN0IGJlIHByZWZpeGVkIGJ5IDxjPnR5cGVuYW1lPC9jPiB3aGVuIHVzZWQgd2l0aGluIHRlbXBsYXRlcy4KK05vdGUgdGhhdCB0aGUgY29tcGlsZXIgd2lsbCBub3QgYmUgYWJsZSB0byBhdXRvbWF0aWNhbGx5IGRldGVybWluZSBmdW5jdGlvbgordGVtcGxhdGUgcGFyYW1ldGVycyB3aGVuIHRoZXkgYXJlIHdyYXBwZWQgd2l0aCB0aGlzIG1hY3JvICh0aGVzZSBwYXJhbWV0ZXJzCituZWVkIHRvIGJlIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHdoZW4gY2FsbGluZyB0aGUgZnVuY3Rpb24gdGVtcGxhdGUpLgorCitPbiBzb21lIGNvbXBpbGVycyAobGlrZSBHQ0MpLCB1c2luZyB0aGlzIG1hY3JvIG9uIGFic3RyYWN0IHR5cGVzIHJlcXVpcmVzIHRvCithZGQgYW5kIHJlbW92ZSBhIHJlZmVyZW5jZSB0byB0aGUgc3BlY2lmaWVkIHR5cGUuCisqLworI2RlZmluZSBCT09TVF9JREVOVElUWV9UWVBFKHBhcmVudGhlc2l6ZWRfdHlwZSkgXAorICAgIC8qIG11c3QgTk9UIHByZWZpeCB0aGlzIHdpdGggYDo6YCB0byB3b3JrIHdpdGggcGFyZW50aGVzaXplZCBzeW50YXggKi8gXAorICAgIG5kbmJvb3N0OjpmdW5jdGlvbl90cmFpdHM8IHZvaWQgcGFyZW50aGVzaXplZF90eXBlID46OmFyZzFfdHlwZQorCisjZW5kaWYgLy8gI2luY2x1ZGUgZ3VhcmQKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2luX3BsYWNlX2ZhY3RvcnkuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L2luX3BsYWNlX2ZhY3RvcnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4NDk2NDkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvaW5fcGxhY2VfZmFjdG9yeS5ocHAKQEAgLTAsMCArMSw4OCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDAzLCBGZXJuYW5kbyBMdWlzIENhY2Npb2xhIENhcmJhbGxhbC4KKy8vIENvcHlyaWdodCAoQykgMjAwNywgVG9iaWFzIFNjaHdpbmdlci4KKy8vCisvLyBVc2UsIG1vZGlmaWNhdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9vcHRpb25hbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisvLyBZb3UgYXJlIHdlbGNvbWUgdG8gY29udGFjdCB0aGUgYXV0aG9yIGF0OgorLy8gIGZlcm5hbmRvX2NhY2Npb2xhQGhvdG1haWwuY29tCisvLworI2lmbmRlZiBCT09TVF9VVElMSVRZX0lOUExBQ0VfRkFDVE9SWV8wNEFQUjIwMDdfSFBQCisjaWZuZGVmIEJPT1NUX1BQX0lTX0lURVJBVElORworCisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvaW5fcGxhY2VfZmFjdG9yeV9wcmVmaXguaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitjbGFzcyBpbl9wbGFjZV9mYWN0b3J5X2Jhc2Uge30gOworCisjZGVmaW5lICBCT09TVF9QUF9JVEVSQVRJT05fTElNSVRTICgwLCBCT09TVF9NQVhfSU5QTEFDRV9GQUNUT1JZX0FSSVRZKQorI2RlZmluZSAgQk9PU1RfUFBfRklMRU5BTUVfMSA8bmRuYm9vc3QvdXRpbGl0eS9pbl9wbGFjZV9mYWN0b3J5LmhwcD4KKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8bmRuYm9vc3QvdXRpbGl0eS9kZXRhaWwvaW5fcGxhY2VfZmFjdG9yeV9zdWZmaXguaHBwPgorCisjZGVmaW5lIEJPT1NUX1VUSUxJVFlfSU5QTEFDRV9GQUNUT1JZXzA0QVBSMjAwN19IUFAKKyNlbHNlCisjZGVmaW5lIE4gQk9PU1RfUFBfSVRFUkFUSU9OKCkKKworI2lmIE4KK3RlbXBsYXRlPCBCT09TVF9QUF9FTlVNX1BBUkFNUyhOLCBjbGFzcyBBKSA+CisjZW5kaWYKK2NsYXNzIEJPT1NUX1BQX0NBVChpbl9wbGFjZV9mYWN0b3J5LE4pCisgIDogCisgIHB1YmxpYyBpbl9wbGFjZV9mYWN0b3J5X2Jhc2UKK3sKK3B1YmxpYzoKKworICBleHBsaWNpdCBCT09TVF9QUF9DQVQoaW5fcGxhY2VfZmFjdG9yeSxOKQorICAgICAgKCBCT09TVF9QUF9FTlVNX0JJTkFSWV9QQVJBTVMoTixBLGNvbnN0JiBhKSApCisjaWYgTiA+IDAKKyAgICA6IEJPT1NUX1BQX0VOVU0oTiwgQk9PU1RfREVGSU5FX0lOUExBQ0VfRkFDVE9SWV9DTEFTU19NRU1CRVJfSU5JVCwgXykKKyNlbmRpZgorICB7fQorCisgIHRlbXBsYXRlPGNsYXNzIFQ+CisgIHZvaWQqIGFwcGx5KHZvaWQqIGFkZHJlc3MKKyAgICAgIEJPT1NUX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9UWVBFKFQpKSBjb25zdAorICB7CisgICAgcmV0dXJuIG5ldyhhZGRyZXNzKSBUKCBCT09TVF9QUF9FTlVNX1BBUkFNUyhOLCBtX2EpICk7CisgIH0KKworICB0ZW1wbGF0ZTxjbGFzcyBUPgorICB2b2lkKiBhcHBseSh2b2lkKiBhZGRyZXNzLCBzdGQ6OnNpemVfdCBuCisgICAgICBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfVFlQRShUKSkgY29uc3QKKyAgeworICAgIGZvcihjaGFyKiBuZXh0ID0gYWRkcmVzcyA9IHRoaXMtPkJPT1NUX05FU1RFRF9URU1QTEFURSBhcHBseTxUPihhZGRyZXNzKTsKKyAgICAgICAgISEgLS1uOykKKyAgICAgIHRoaXMtPkJPT1NUX05FU1RFRF9URU1QTEFURSBhcHBseTxUPihuZXh0ID0gbmV4dCtzaXplb2YoVCkpOworICAgIHJldHVybiBhZGRyZXNzOyAKKyAgfQorCisgIEJPT1NUX1BQX1JFUEVBVChOLCBCT09TVF9ERUZJTkVfSU5QTEFDRV9GQUNUT1JZX0NMQVNTX01FTUJFUl9ERUNMLCBfKQorfTsKKworI2lmIE4gPiAwCit0ZW1wbGF0ZTwgQk9PU1RfUFBfRU5VTV9QQVJBTVMoTiwgY2xhc3MgQSkgPgoraW5saW5lIEJPT1NUX1BQX0NBVChpbl9wbGFjZV9mYWN0b3J5LE4pPCBCT09TVF9QUF9FTlVNX1BBUkFNUyhOLCBBKSA+Citpbl9wbGFjZSggQk9PU1RfUFBfRU5VTV9CSU5BUllfUEFSQU1TKE4sIEEsIGNvbnN0JiBhKSApCit7CisgIHJldHVybiBCT09TVF9QUF9DQVQoaW5fcGxhY2VfZmFjdG9yeSxOKTwgQk9PU1RfUFBfRU5VTV9QQVJBTVMoTiwgQSkgPgorICAgICAgKCBCT09TVF9QUF9FTlVNX1BBUkFNUyhOLCBhKSApOworfQorI2Vsc2UKK2lubGluZSBpbl9wbGFjZV9mYWN0b3J5MCBpbl9wbGFjZSgpCit7CisgIHJldHVybiBpbl9wbGFjZV9mYWN0b3J5MCgpOworfQorI2VuZGlmCisKKyN1bmRlZiBOCisjZW5kaWYKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvcmVzdWx0X29mLmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS9yZXN1bHRfb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYzJlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvcmVzdWx0X29mLmhwcApAQCAtMCwwICsxLDE5NCBAQAorLy8gQm9vc3QgcmVzdWx0X29mIGxpYnJhcnkKKworLy8gIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDA0LiBVc2UsIG1vZGlmaWNhdGlvbiBhbmQKKy8vICBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkKKyNpZm5kZWYgQk9PU1RfUkVTVUxUX09GX0hQUAorI2RlZmluZSBCT09TVF9SRVNVTFRfT0ZfSFBQCisKKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fdHJhaWxpbmdfcGFyYW1zLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9lbnVtX2JpbmFyeV9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fc2hpZnRlZF9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2ludGVyY2VwdC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9oYXNfeHh4LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvaWYuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L21wbC9ldmFsX2lmLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvbXBsL2lkZW50aXR5LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9tcGwvb3IuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlci5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC91dGlsaXR5L2RlY2x2YWwuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3V0aWxpdHkvZW5hYmxlX2lmLmhwcD4KKworI2lmbmRlZiBCT09TVF9SRVNVTFRfT0ZfTlVNX0FSR1MKKyMgIGRlZmluZSBCT09TVF9SRVNVTFRfT0ZfTlVNX0FSR1MgMTYKKyNlbmRpZgorCisvLyBVc2UgdGhlIGRlY2x0eXBlLWJhc2VkIHZlcnNpb24gb2YgcmVzdWx0X29mIGJ5IGRlZmF1bHQgaWYgdGhlIGNvbXBpbGVyCisvLyBzdXBwb3J0cyBOMzI3NiA8aHR0cDovL3d3dy5vcGVuLXN0ZC5vcmcvSlRDMS9TQzIyL1dHMjEvZG9jcy9wYXBlcnMvMjAxMS9uMzI3Ni5wZGY+LgorLy8gVGhlIHVzZXIgY2FuIGZvcmNlIHRoZSBjaG9pY2UgYnkgZGVmaW5pbmcgZWl0aGVyIEJPT1NUX1JFU1VMVF9PRl9VU0VfREVDTFRZUEUgb3IKKy8vIEJPT1NUX1JFU1VMVF9PRl9VU0VfVFIxLCBidXQgbm90IGJvdGghCisjaWYgZGVmaW5lZChCT09TVF9SRVNVTFRfT0ZfVVNFX0RFQ0xUWVBFKSAmJiBkZWZpbmVkKEJPT1NUX1JFU1VMVF9PRl9VU0VfVFIxKQorIyAgZXJyb3IgQm90aCBCT09TVF9SRVNVTFRfT0ZfVVNFX0RFQ0xUWVBFIGFuZCBCT09TVF9SRVNVTFRfT0ZfVVNFX1RSMSBjYW5ub3QgYmUgZGVmaW5lZCBhdCB0aGUgc2FtZSB0aW1lLgorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfUkVTVUxUX09GX1VTRV9UUjEKKyMgIGlmbmRlZiBCT09TVF9SRVNVTFRfT0ZfVVNFX0RFQ0xUWVBFCisjICAgIGlmbmRlZiBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NiAvLyB0aGlzIGltcGxpZXMgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUpCisjICAgICAgZGVmaW5lIEJPT1NUX1JFU1VMVF9PRl9VU0VfREVDTFRZUEUKKyMgICAgZWxzZQorIyAgICAgIGRlZmluZSBCT09TVF9SRVNVTFRfT0ZfVVNFX1RSMQorIyAgICBlbmRpZgorIyAgZW5kaWYKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPiBzdHJ1Y3QgcmVzdWx0X29mOwordGVtcGxhdGU8dHlwZW5hbWUgRj4gc3RydWN0IHRyMV9yZXN1bHRfb2Y7IC8vIGEgVFIxLXN0eWxlIGltcGxlbWVudGF0aW9uIG9mIHJlc3VsdF9vZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fU0ZJTkFFKSAmJiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorbmFtZXNwYWNlIGRldGFpbCB7CisKK0JPT1NUX01QTF9IQVNfWFhYX1RSQUlUX0RFRihyZXN1bHRfdHlwZSkKKwordGVtcGxhdGU8dHlwZW5hbWUgRiwgdHlwZW5hbWUgRkFyZ3MsIGJvb2wgSGFzUmVzdWx0VHlwZT4gc3RydWN0IHRyMV9yZXN1bHRfb2ZfaW1wbDsKKworI2lmZGVmIEJPT1NUX05PX1NGSU5BRV9FWFBSCisKKy8vIFRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhbnkgb3RoZXIgd2F5IHRvIHR1cm4gdGhpcyBvZmYgc3VjaCB0aGF0IHRoZSBwcmVzZW5jZSBvZgorLy8gdGhlIHVzZXItZGVmaW5lZCBvcGVyYXRvciwoKSBiZWxvdyBkb2Vzbid0IGNhdXNlIHNwdXJpb3VzIHdhcm5pbmcgYWxsIG92ZXIgdGhlIHBsYWNlLAorLy8gc28gdW5jb25kaXRpb25hbGx5IHR1cm4gaXQgb2ZmLgorI2lmIEJPT1NUX01TVkMKKyMgIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ5MTMpIC8vIHVzZXIgZGVmaW5lZCBiaW5hcnkgb3BlcmF0b3IgJywnIGV4aXN0cyBidXQgbm8gb3ZlcmxvYWQgY291bGQgY29udmVydCBhbGwgb3BlcmFuZHMsIGRlZmF1bHQgYnVpbHQtaW4gYmluYXJ5IG9wZXJhdG9yICcsJyB1c2VkCisjZW5kaWYKKworc3RydWN0IHJlc3VsdF9vZl9wcml2YXRlX3R5cGUge307CisKK3N0cnVjdCByZXN1bHRfb2Zfd2VpcmRfdHlwZSB7CisgIGZyaWVuZCByZXN1bHRfb2ZfcHJpdmF0ZV90eXBlIG9wZXJhdG9yLChyZXN1bHRfb2ZfcHJpdmF0ZV90eXBlLCByZXN1bHRfb2Zfd2VpcmRfdHlwZSk7Cit9OworCit0eXBlZGVmIGNoYXIgcmVzdWx0X29mX3llc190eXBlOyAgICAgIC8vIHNpemVvZihyZXN1bHRfb2ZfeWVzX3R5cGUpID09IDEKK3R5cGVkZWYgY2hhciAoJnJlc3VsdF9vZl9ub190eXBlKVsyXTsgLy8gc2l6ZW9mKHJlc3VsdF9vZl9ub190eXBlKSAgPT0gMgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorcmVzdWx0X29mX25vX3R5cGUgcmVzdWx0X29mX2lzX3ByaXZhdGVfdHlwZShUIGNvbnN0ICYpOworcmVzdWx0X29mX3llc190eXBlIHJlc3VsdF9vZl9pc19wcml2YXRlX3R5cGUocmVzdWx0X29mX3ByaXZhdGVfdHlwZSk7CisKK3RlbXBsYXRlPHR5cGVuYW1lIEM+CitzdHJ1Y3QgcmVzdWx0X29mX2NhbGxhYmxlX2NsYXNzIDogQyB7CisgICAgcmVzdWx0X29mX2NhbGxhYmxlX2NsYXNzKCk7CisgICAgdHlwZWRlZiByZXN1bHRfb2ZfcHJpdmF0ZV90eXBlIGNvbnN0ICYoKnBmbl90KSguLi4pOworICAgIG9wZXJhdG9yIHBmbl90KCkgY29uc3Qgdm9sYXRpbGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgorc3RydWN0IHJlc3VsdF9vZl93cmFwX2NhbGxhYmxlX2NsYXNzIHsKKyAgdHlwZWRlZiByZXN1bHRfb2ZfY2FsbGFibGVfY2xhc3M8Qz4gdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEM+CitzdHJ1Y3QgcmVzdWx0X29mX3dyYXBfY2FsbGFibGVfY2xhc3M8QyBjb25zdD4geworICB0eXBlZGVmIHJlc3VsdF9vZl9jYWxsYWJsZV9jbGFzczxDPiBjb25zdCB0eXBlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgQz4KK3N0cnVjdCByZXN1bHRfb2Zfd3JhcF9jYWxsYWJsZV9jbGFzczxDIHZvbGF0aWxlPiB7CisgIHR5cGVkZWYgcmVzdWx0X29mX2NhbGxhYmxlX2NsYXNzPEM+IHZvbGF0aWxlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDPgorc3RydWN0IHJlc3VsdF9vZl93cmFwX2NhbGxhYmxlX2NsYXNzPEMgY29uc3Qgdm9sYXRpbGU+IHsKKyAgdHlwZWRlZiByZXN1bHRfb2ZfY2FsbGFibGVfY2xhc3M8Qz4gY29uc3Qgdm9sYXRpbGUgdHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEM+CitzdHJ1Y3QgcmVzdWx0X29mX3dyYXBfY2FsbGFibGVfY2xhc3M8QyAmPiB7CisgIHR5cGVkZWYgdHlwZW5hbWUgcmVzdWx0X29mX3dyYXBfY2FsbGFibGVfY2xhc3M8Qz46OnR5cGUgJnR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGLCBib29sIFRlc3RDYWxsYWJpbGl0eSA9IHRydWU+IHN0cnVjdCBjcHAweF9yZXN1bHRfb2ZfaW1wbDsKKworI2Vsc2UgLy8gQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCByZXN1bHRfb2ZfYWx3YXlzX3ZvaWQKK3sKKyAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGLCB0eXBlbmFtZSBFbmFibGUgPSB2b2lkPiBzdHJ1Y3QgY3BwMHhfcmVzdWx0X29mX2ltcGwge307CisKKyNlbmRpZiAvLyBCT09TVF9OT19TRklOQUVfRVhQUgorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGPgorc3RydWN0IHJlc3VsdF9vZl92b2lkX2ltcGwKK3sKKyAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBSPgorc3RydWN0IHJlc3VsdF9vZl92b2lkX2ltcGw8UiAoKikodm9pZCk+Cit7CisgIHR5cGVkZWYgUiB0eXBlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgUj4KK3N0cnVjdCByZXN1bHRfb2Zfdm9pZF9pbXBsPFIgKCYpKHZvaWQpPgoreworICB0eXBlZGVmIFIgdHlwZTsKK307CisKKy8vIERldGVybWluZSB0aGUgcmV0dXJuIHR5cGUgb2YgYSBmdW5jdGlvbiBwb2ludGVyIG9yIHBvaW50ZXIgdG8gbWVtYmVyLgordGVtcGxhdGU8dHlwZW5hbWUgRiwgdHlwZW5hbWUgRkFyZ3M+CitzdHJ1Y3QgcmVzdWx0X29mX3BvaW50ZXIKKyAgOiB0cjFfcmVzdWx0X29mX2ltcGw8dHlwZW5hbWUgcmVtb3ZlX2N2PEY+Ojp0eXBlLCBGQXJncywgZmFsc2U+IHsgfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRiwgdHlwZW5hbWUgRkFyZ3M+CitzdHJ1Y3QgdHIxX3Jlc3VsdF9vZl9pbXBsPEYsIEZBcmdzLCB0cnVlPgoreworICB0eXBlZGVmIHR5cGVuYW1lIEY6OnJlc3VsdF90eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGQXJncz4KK3N0cnVjdCBpc19mdW5jdGlvbl93aXRoX25vX2FyZ3MgOiBtcGw6OmZhbHNlXyB7fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRj4KK3N0cnVjdCBpc19mdW5jdGlvbl93aXRoX25vX2FyZ3M8Rih2b2lkKT4gOiBtcGw6OnRydWVfIHt9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGLCB0eXBlbmFtZSBGQXJncz4KK3N0cnVjdCByZXN1bHRfb2ZfbmVzdGVkX3Jlc3VsdCA6IEY6OnRlbXBsYXRlIHJlc3VsdDxGQXJncz4KK3t9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGLCB0eXBlbmFtZSBGQXJncz4KK3N0cnVjdCB0cjFfcmVzdWx0X29mX2ltcGw8RiwgRkFyZ3MsIGZhbHNlPgorICA6IG1wbDo6aWZfPGlzX2Z1bmN0aW9uX3dpdGhfbm9fYXJnczxGQXJncz4sCisgICAgICAgICAgICAgcmVzdWx0X29mX3ZvaWRfaW1wbDxGPiwKKyAgICAgICAgICAgICByZXN1bHRfb2ZfbmVzdGVkX3Jlc3VsdDxGLCBGQXJncz4gPjo6dHlwZQore307CisKK30gLy8gZW5kIG5hbWVzcGFjZSBkZXRhaWwKKworI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgKDMsKDAsQk9PU1RfUkVTVUxUX09GX05VTV9BUkdTLDxuZG5ib29zdC91dGlsaXR5L2RldGFpbC9yZXN1bHRfb2ZfaXRlcmF0ZS5ocHA+KSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX05PX1JFU1VMVF9PRiAxCisjZW5kaWYKKworfQorCisjZW5kaWYgLy8gQk9PU1RfUkVTVUxUX09GX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L3N3YXAuaHBwIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L3N3YXAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNGUzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3V0aWxpdHkvc3dhcC5ocHAKQEAgLTAsMCArMSw1NSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IFN0ZXZlbiBXYXRhbmFiZSwgSm9zZXBoIEdhdXRlcmluLCBOaWVscyBEZWtrZXIKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnCisKKworI2lmbmRlZiBCT09TVF9VVElMSVRZX1NXQVBfSFBQCisjZGVmaW5lIEJPT1NUX1VUSUxJVFlfU1dBUF9IUFAKKworLy8gTm90ZTogdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdXRpbGl0eSBjb250YWlucyB2YXJpb3VzIHdvcmthcm91bmRzOgorLy8gLSBzd2FwX2ltcGwgaXMgcHV0IG91dHNpZGUgdGhlIGJvb3N0IG5hbWVzcGFjZSwgdG8gYXZvaWQgaW5maW5pdGUKKy8vIHJlY3Vyc2lvbiAoY2F1c2luZyBzdGFjayBvdmVyZmxvdykgd2hlbiBzd2FwcGluZyBvYmplY3RzIG9mIGEgcHJpbWl0aXZlCisvLyB0eXBlLgorLy8gLSBzd2FwX2ltcGwgaGFzIGEgdXNpbmctZGlyZWN0aXZlLCByYXRoZXIgdGhhbiBhIHVzaW5nLWRlY2xhcmF0aW9uLAorLy8gYmVjYXVzZSBzb21lIGNvbXBpbGVycyAoaW5jbHVkaW5nIE1TVkMgNy4xLCBCb3JsYW5kIDUuOS4zLCBhbmQKKy8vIEludGVsIDguMSkgZG9uJ3QgZG8gYXJndW1lbnQtZGVwZW5kZW50IGxvb2t1cCB3aGVuIGl0IGhhcyBhCisvLyB1c2luZy1kZWNsYXJhdGlvbiBpbnN0ZWFkLgorLy8gLSBuZG5ib29zdDo6c3dhcCBoYXMgdHdvIHRlbXBsYXRlIGFyZ3VtZW50cywgaW5zdGVhZCBvZiBvbmUsIHRvCisvLyBhdm9pZCBhbWJpZ3VpdHkgd2hlbiBzd2FwcGluZyBvYmplY3RzIG9mIGEgQm9vc3QgdHlwZSB0aGF0IGRvZXMKKy8vIG5vdCBoYXZlIGl0cyBvd24gbmRuYm9vc3Q6OnN3YXAgb3ZlcmxvYWQuCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+IC8vZm9yIHN0ZDo6c3dhcAorI2luY2x1ZGUgPGNzdGRkZWY+IC8vZm9yIHN0ZDo6c2l6ZV90CisKK25hbWVzcGFjZSBuZG5ib29zdF9zd2FwX2ltcGwKK3sKKyAgdGVtcGxhdGU8Y2xhc3MgVD4KKyAgdm9pZCBzd2FwX2ltcGwoVCYgbGVmdCwgVCYgcmlnaHQpCisgIHsKKyAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOy8vdXNlIHN0ZDo6c3dhcCBpZiBhcmd1bWVudCBkZXBlbmRlbnQgbG9va3VwIGZhaWxzCisgICAgc3dhcChsZWZ0LHJpZ2h0KTsKKyAgfQorCisgIHRlbXBsYXRlPGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4+CisgIHZvaWQgc3dhcF9pbXBsKFQgKCYgbGVmdClbTl0sIFQgKCYgcmlnaHQpW05dKQorICB7CisgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IE47ICsraSkKKyAgICB7CisgICAgICA6Om5kbmJvb3N0X3N3YXBfaW1wbDo6c3dhcF9pbXBsKGxlZnRbaV0sIHJpZ2h0W2ldKTsKKyAgICB9CisgIH0KK30KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisgIHRlbXBsYXRlPGNsYXNzIFQxLCBjbGFzcyBUMj4KKyAgdm9pZCBzd2FwKFQxJiBsZWZ0LCBUMiYgcmlnaHQpCisgIHsKKyAgICA6Om5kbmJvb3N0X3N3YXBfaW1wbDo6c3dhcF9pbXBsKGxlZnQsIHJpZ2h0KTsKKyAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS92YWx1ZV9pbml0LmhwcCBiL2luY2x1ZGUvbmRuYm9vc3QvdXRpbGl0eS92YWx1ZV9pbml0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzY3ODEwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC91dGlsaXR5L3ZhbHVlX2luaXQuaHBwCkBAIC0wLDAgKzEsMjU4IEBACisvLyAoQykgQ29weXJpZ2h0IDIwMDItMjAwOCwgRmVybmFuZG8gTHVpcyBDYWNjaW9sYSBDYXJiYWxsYWwuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIDIxIEFnbyAyMDAyIChDcmVhdGVkKSBGZXJuYW5kbyBDYWNjaW9sYQorLy8gMjQgRGVjIDIwMDcgKFJlZmFjdG9yZWQgYW5kIHdvcmtlZCBhcm91bmQgdmFyaW91cyBjb21waWxlciBidWdzKSBGZXJuYW5kbyBDYWNjaW9sYSwgTmllbHMgRGVra2VyCisvLyAyMyBNYXkgMjAwOCAoRml4ZWQgb3BlcmF0b3I9IGNvbnN0IGlzc3VlLCBhZGRlZCBpbml0aWFsaXplZF92YWx1ZSkgTmllbHMgRGVra2VyLCBGZXJuYW5kbyBDYWNjaW9sYQorLy8gMjEgQWdvIDIwMDggKEFkZGVkIHN3YXApIE5pZWxzIERla2tlciwgRmVybmFuZG8gQ2FjY2lvbGEKKy8vIDIwIEZlYiAyMDA5IChGaXhlZCBsb2dpY2FsIGNvbnN0LW5lc3MgaXNzdWVzKSBOaWVscyBEZWtrZXIsIEZlcm5hbmRvIENhY2Npb2xhCisvLyAwMyBBcHIgMjAxMCAoQWRkZWQgaW5pdGlhbGl6ZWQ8VD4sIHN1Z2dlc3RlZCBieSBKZWZmcmV5IEhlbGxydW5nLCBmaXhpbmcgIzM0NzIpIE5pZWxzIERla2tlcgorLy8gMzAgTWF5IDIwMTAgKE1hZGUgbWVtc2V0IGNhbGwgY29uZGl0aW9uYWwsIGZpeGluZyAjMzg2OSkgTmllbHMgRGVra2VyCisvLworI2lmbmRlZiBCT09TVF9VVElMSVRZX1ZBTFVFX0lOSVRfMjFBR08yMDAyX0hQUAorI2RlZmluZSBCT09TVF9VVElMSVRZX1ZBTFVFX0lOSVRfMjFBR08yMDAyX0hQUAorCisvLyBOb3RlOiBUaGUgaW1wbGVtZW50YXRpb24gb2YgbmRuYm9vc3Q6OnZhbHVlX2luaXRpYWxpemVkIGhhZCB0byBkZWFsIHdpdGggdGhlCisvLyBmYWN0IHRoYXQgdmFyaW91cyBjb21waWxlcnMgaGF2ZW4ndCBmdWxseSBpbXBsZW1lbnRlZCB2YWx1ZS1pbml0aWFsaXphdGlvbi4KKy8vIFRoZSBjb25zdHJ1Y3RvciBvZiBuZG5ib29zdDo6dmFsdWVfaW5pdGlhbGl6ZWQ8VD4gd29ya3MgYXJvdW5kIHRoZXNlIGNvbXBpbGVyCisvLyBpc3N1ZXMsIGJ5IGNsZWFyaW5nIHRoZSBieXRlcyBvZiBULCBiZWZvcmUgY29uc3RydWN0aW5nIHRoZSBUIG9iamVjdCBpdAorLy8gY29udGFpbnMuIE1vcmUgZGV0YWlscyBvbiB0aGVzZSBpc3N1ZXMgYXJlIGF0IGxpYnMvdXRpbGl0eS92YWx1ZV9pbml0Lmh0bQorCisjaW5jbHVkZSA8bmRuYm9vc3QvYWxpZ25lZF9zdG9yYWdlLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9jb25maWcuaHBwPiAvLyBGb3IgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04uCisjaW5jbHVkZSA8bmRuYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3N0YXRpY19hc3NlcnQuaHBwPgorI2luY2x1ZGUgPG5kbmJvb3N0L3R5cGVfdHJhaXRzL2N2X3RyYWl0cy5ocHA+CisjaW5jbHVkZSA8bmRuYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25tZW50X29mLmhwcD4KKyNpbmNsdWRlIDxuZG5ib29zdC9zd2FwLmhwcD4KKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPG5ldz4KKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI2lmIF9NU0NfVkVSID49IDEzMTAKKy8vIEl0IGlzIHNhZmUgdG8gaWdub3JlIHRoZSBmb2xsb3dpbmcgd2FybmluZyBmcm9tIE1TVkMgNy4xIG9yIGhpZ2hlcjoKKy8vICJ3YXJuaW5nIEM0MzUxOiBuZXcgYmVoYXZpb3I6IGVsZW1lbnRzIG9mIGFycmF5IHdpbGwgYmUgZGVmYXVsdCBpbml0aWFsaXplZCIKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MzUxKQorLy8gSXQgaXMgc2FmZSB0byBpZ25vcmUgdGhlIGZvbGxvd2luZyBNU1ZDIHdhcm5pbmcsIHdoaWNoIG1heSBwb3AgdXAgd2hlbiBUIGlzIAorLy8gYSBjb25zdCB0eXBlOiAid2FybmluZyBDNDUxMjogYXNzaWdubWVudCBvcGVyYXRvciBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkIi4KKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NTEyKQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisgIC8vIEltcGxlbWVudGF0aW9uIGRldGFpbDogVGhlIG1hY3JvIEJPT1NUX0RFVEFJTF9WQUxVRV9JTklUX1dPUktBUk9VTkRfU1VHR0VTVEVEIAorICAvLyBzdWdnZXN0cyB0aGF0IGEgd29ya2Fyb3VuZCBzaG91bGQgYmUgYXBwbGllZCwgYmVjYXVzZSBvZiBjb21waWxlciBpc3N1ZXMgCisgIC8vIHJlZ2FyZGluZyB2YWx1ZS1pbml0aWFsaXphdGlvbi4KKyAgI2RlZmluZSBCT09TVF9ERVRBSUxfVkFMVUVfSU5JVF9XT1JLQVJPVU5EX1NVR0dFU1RFRAorI2VuZGlmCisKKy8vIEltcGxlbWVudGF0aW9uIGRldGFpbDogVGhlIG1hY3JvIEJPT1NUX0RFVEFJTF9WQUxVRV9JTklUX1dPUktBUk9VTkQKKy8vIHN3aXRjaGVzIHRoZSB2YWx1ZS1pbml0aWFsaXphdGlvbiB3b3JrYXJvdW5kIGVpdGhlciBvbiBvciBvZmYuCisjaWZuZGVmIEJPT1NUX0RFVEFJTF9WQUxVRV9JTklUX1dPUktBUk9VTkQKKyAgI2lmZGVmIEJPT1NUX0RFVEFJTF9WQUxVRV9JTklUX1dPUktBUk9VTkRfU1VHR0VTVEVECisgICNkZWZpbmUgQk9PU1RfREVUQUlMX1ZBTFVFX0lOSVRfV09SS0FST1VORCAxCisgICNlbHNlCisgICNkZWZpbmUgQk9PU1RfREVUQUlMX1ZBTFVFX0lOSVRfV09SS0FST1VORCAwCisgICNlbmRpZgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitjbGFzcyBpbml0aWFsaXplZAoreworICBwcml2YXRlIDoKKyAgICBzdHJ1Y3Qgd3JhcHBlcgorICAgIHsKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDU5MikpCisgICAgICB0eXBlbmFtZQorI2VuZGlmIAorICAgICAgcmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlIGRhdGE7CisKKyAgICAgIHdyYXBwZXIoKQorICAgICAgOgorICAgICAgZGF0YSgpCisgICAgICB7CisgICAgICB9CisKKyAgICAgIHdyYXBwZXIoVCBjb25zdCAmIGFyZykKKyAgICAgIDoKKyAgICAgIGRhdGEoYXJnKQorICAgICAgeworICAgICAgfQorICAgIH07CisKKyAgICBtdXRhYmxlCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1OTIpKQorICAgICAgdHlwZW5hbWUKKyNlbmRpZiAKKyAgICAgIGFsaWduZWRfc3RvcmFnZTxzaXplb2Yod3JhcHBlciksIGFsaWdubWVudF9vZjx3cmFwcGVyPjo6dmFsdWU+Ojp0eXBlIHg7CisKKyAgICB3cmFwcGVyICogd3JhcHBlcl9hZGRyZXNzKCkgY29uc3QKKyAgICB7CisgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8d3JhcHBlciAqPiggc3RhdGljX2Nhc3Q8dm9pZCo+KCZ4KSk7CisgICAgfQorCisgIHB1YmxpYyA6CisKKyAgICBpbml0aWFsaXplZCgpCisgICAgeworI2lmIEJPT1NUX0RFVEFJTF9WQUxVRV9JTklUX1dPUktBUk9VTkQKKyAgICAgIHN0ZDo6bWVtc2V0KCZ4LCAwLCBzaXplb2YoeCkpOworI2VuZGlmCisgICAgICBuZXcgKHdyYXBwZXJfYWRkcmVzcygpKSB3cmFwcGVyKCk7CisgICAgfQorCisgICAgaW5pdGlhbGl6ZWQoaW5pdGlhbGl6ZWQgY29uc3QgJiBhcmcpCisgICAgeworICAgICAgbmV3ICh3cmFwcGVyX2FkZHJlc3MoKSkgd3JhcHBlciggc3RhdGljX2Nhc3Q8d3JhcHBlciBjb25zdCAmPigqKGFyZy53cmFwcGVyX2FkZHJlc3MoKSkpKTsKKyAgICB9CisKKyAgICBleHBsaWNpdCBpbml0aWFsaXplZChUIGNvbnN0ICYgYXJnKQorICAgIHsKKyAgICAgIG5ldyAod3JhcHBlcl9hZGRyZXNzKCkpIHdyYXBwZXIoYXJnKTsKKyAgICB9CisKKyAgICBpbml0aWFsaXplZCAmIG9wZXJhdG9yPShpbml0aWFsaXplZCBjb25zdCAmIGFyZykKKyAgICB7CisgICAgICAvLyBBc3NpZ25tZW50IGlzIG9ubHkgYWxsb3dlZCB3aGVuIFQgaXMgbm9uLWNvbnN0LgorICAgICAgQk9PU1RfU1RBVElDX0FTU0VSVCggISBpc19jb25zdDxUPjo6dmFsdWUgKTsKKyAgICAgICp3cmFwcGVyX2FkZHJlc3MoKSA9IHN0YXRpY19jYXN0PHdyYXBwZXIgY29uc3QgJj4oKihhcmcud3JhcHBlcl9hZGRyZXNzKCkpKTsKKyAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB+aW5pdGlhbGl6ZWQoKQorICAgIHsKKyAgICAgIHdyYXBwZXJfYWRkcmVzcygpLT53cmFwcGVyOjp+d3JhcHBlcigpOworICAgIH0KKworICAgIFQgY29uc3QgJiBkYXRhKCkgY29uc3QKKyAgICB7CisgICAgICByZXR1cm4gd3JhcHBlcl9hZGRyZXNzKCktPmRhdGE7CisgICAgfQorCisgICAgVCYgZGF0YSgpCisgICAgeworICAgICAgcmV0dXJuIHdyYXBwZXJfYWRkcmVzcygpLT5kYXRhOworICAgIH0KKworICAgIHZvaWQgc3dhcChpbml0aWFsaXplZCAmIGFyZykKKyAgICB7CisgICAgICA6Om5kbmJvb3N0Ojpzd2FwKCB0aGlzLT5kYXRhKCksIGFyZy5kYXRhKCkgKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUIGNvbnN0ICYoKSBjb25zdAorICAgIHsKKyAgICAgIHJldHVybiB3cmFwcGVyX2FkZHJlc3MoKS0+ZGF0YTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUJigpCisgICAgeworICAgICAgcmV0dXJuIHdyYXBwZXJfYWRkcmVzcygpLT5kYXRhOworICAgIH0KKworfSA7CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitUIGNvbnN0JiBnZXQgKCBpbml0aWFsaXplZDxUPiBjb25zdCYgeCApCit7CisgIHJldHVybiB4LmRhdGEoKSA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+CitUJiBnZXQgKCBpbml0aWFsaXplZDxUPiYgeCApCit7CisgIHJldHVybiB4LmRhdGEoKSA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+Cit2b2lkIHN3YXAgKCBpbml0aWFsaXplZDxUPiAmIGxocywgaW5pdGlhbGl6ZWQ8VD4gJiByaHMgKQoreworICBsaHMuc3dhcChyaHMpIDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4KK2NsYXNzIHZhbHVlX2luaXRpYWxpemVkCit7CisgIHByaXZhdGUgOgorCisgICAgLy8gaW5pdGlhbGl6ZWQ8VD4gZG9lcyB2YWx1ZS1pbml0aWFsaXphdGlvbiBieSBkZWZhdWx0LgorICAgIGluaXRpYWxpemVkPFQ+IG1fZGF0YTsKKworICBwdWJsaWMgOgorICAgIAorICAgIHZhbHVlX2luaXRpYWxpemVkKCkKKyAgICA6CisgICAgbV9kYXRhKCkKKyAgICB7IH0KKyAgICAKKyAgICBUIGNvbnN0ICYgZGF0YSgpIGNvbnN0CisgICAgeworICAgICAgcmV0dXJuIG1fZGF0YS5kYXRhKCk7CisgICAgfQorCisgICAgVCYgZGF0YSgpCisgICAgeworICAgICAgcmV0dXJuIG1fZGF0YS5kYXRhKCk7CisgICAgfQorCisgICAgdm9pZCBzd2FwKHZhbHVlX2luaXRpYWxpemVkICYgYXJnKQorICAgIHsKKyAgICAgIG1fZGF0YS5zd2FwKGFyZy5tX2RhdGEpOworICAgIH0KKworICAgIG9wZXJhdG9yIFQgY29uc3QgJigpIGNvbnN0CisgICAgeworICAgICAgcmV0dXJuIG1fZGF0YTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUJigpCisgICAgeworICAgICAgcmV0dXJuIG1fZGF0YTsKKyAgICB9Cit9IDsKKworCit0ZW1wbGF0ZTxjbGFzcyBUPgorVCBjb25zdCYgZ2V0ICggdmFsdWVfaW5pdGlhbGl6ZWQ8VD4gY29uc3QmIHggKQoreworICByZXR1cm4geC5kYXRhKCkgOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgorVCYgZ2V0ICggdmFsdWVfaW5pdGlhbGl6ZWQ8VD4mIHggKQoreworICByZXR1cm4geC5kYXRhKCkgOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgordm9pZCBzd2FwICggdmFsdWVfaW5pdGlhbGl6ZWQ8VD4gJiBsaHMsIHZhbHVlX2luaXRpYWxpemVkPFQ+ICYgcmhzICkKK3sKKyAgbGhzLnN3YXAocmhzKSA7Cit9CisKKworY2xhc3MgaW5pdGlhbGl6ZWRfdmFsdWVfdAoreworICBwdWJsaWMgOgorICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBvcGVyYXRvciBUKCkgY29uc3QKKyAgICB7CisgICAgICByZXR1cm4gaW5pdGlhbGl6ZWQ8VD4oKS5kYXRhKCk7CisgICAgfQorfTsKKworaW5pdGlhbGl6ZWRfdmFsdWVfdCBjb25zdCBpbml0aWFsaXplZF92YWx1ZSA9IHt9IDsKKworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWZkZWYgQk9PU1RfTVNWQworI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmRuYm9vc3QvdmVyc2lvbi5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3ZlcnNpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzODI2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL25kbmJvb3N0L3ZlcnNpb24uaHBwCkBAIC0wLDAgKzEsMzIgQEAKKy8vICBCb29zdCB2ZXJzaW9uLmhwcCBjb25maWd1cmF0aW9uIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgKEMpIENvcHlyaWdodCBKb2huIG1hZGRvY2sgMTk5OS4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyAgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcgZm9yIGRvY3VtZW50YXRpb24KKworI2lmbmRlZiBCT09TVF9WRVJTSU9OX0hQUAorI2RlZmluZSBCT09TVF9WRVJTSU9OX0hQUAorCisvLworLy8gIENhdXRpb24sIHRoaXMgaXMgdGhlIG9ubHkgYm9vc3QgaGVhZGVyIHRoYXQgaXMgZ3VhcmVudGVlZAorLy8gIHRvIGNoYW5nZSB3aXRoIGV2ZXJ5IGJvb3N0IHJlbGVhc2UsIGluY2x1ZGluZyB0aGlzIGhlYWRlcgorLy8gIHdpbGwgY2F1c2UgYSByZWNvbXBpbGUgZXZlcnkgdGltZSBhIG5ldyBib29zdCB2ZXJzaW9uIGlzCisvLyAgcmVsZWFzZWQuCisvLworLy8gIEJPT1NUX1ZFUlNJT04gJSAxMDAgaXMgdGhlIHBhdGNoIGxldmVsCisvLyAgQk9PU1RfVkVSU0lPTiAvIDEwMCAlIDEwMDAgaXMgdGhlIG1pbm9yIHZlcnNpb24KKy8vICBCT09TVF9WRVJTSU9OIC8gMTAwMDAwIGlzIHRoZSBtYWpvciB2ZXJzaW9uCisKKyNkZWZpbmUgQk9PU1RfVkVSU0lPTiAxMDU0MDAKKworLy8KKy8vICBCT09TVF9MSUJfVkVSU0lPTiBtdXN0IGJlIGRlZmluZWQgdG8gYmUgdGhlIHNhbWUgYXMgQk9PU1RfVkVSU0lPTgorLy8gIGJ1dCBhcyBhICpzdHJpbmcqIGluIHRoZSBmb3JtICJ4X3lbX3pdIiB3aGVyZSB4IGlzIHRoZSBtYWpvciB2ZXJzaW9uCisvLyAgbnVtYmVyLCB5IGlzIHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlciwgYW5kIHogaXMgdGhlIHBhdGNoIGxldmVsIGlmIG5vdCAwLgorLy8gIFRoaXMgaXMgdXNlZCBieSA8Y29uZmlnL2F1dG9fbGluay5ocHA+IHRvIHNlbGVjdCB3aGljaCBsaWJyYXJ5IHZlcnNpb24gdG8gbGluayB0by4KKworI2RlZmluZSBCT09TVF9MSUJfVkVSU0lPTiAiMV81NCIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25kbmJvb3N0L3Zpc2l0X2VhY2guaHBwIGIvaW5jbHVkZS9uZG5ib29zdC92aXNpdF9lYWNoLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2RmYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC92aXNpdF9lYWNoLmhwcApAQCAtMCwwICsxLDI5IEBACisvLyBCb29zdC5TaWduYWxzIGxpYnJhcnkKKworLy8gQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDEtMjAwMy4gVXNlLCBtb2RpZmljYXRpb24gYW5kCisvLyBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbgorLy8gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9zaWduYWxzCisKKyNpZm5kZWYgQk9PU1RfVklTSVRfRUFDSF9IUFAKKyNkZWZpbmUgQk9PU1RfVklTSVRfRUFDSF9IUFAKKworI2luY2x1ZGUgPG5kbmJvb3N0L2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3IsIHR5cGVuYW1lIFQ+CisgIGlubGluZSB2b2lkIHZpc2l0X2VhY2goVmlzaXRvciYgdmlzaXRvciwgY29uc3QgVCYgdCwgbG9uZykKKyAgeworICAgIHZpc2l0b3IodCk7CisgIH0KKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yLCB0eXBlbmFtZSBUPgorICBpbmxpbmUgdm9pZCB2aXNpdF9lYWNoKFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IFQmIHQpCisgIHsKKyAgICB2aXNpdF9lYWNoKHZpc2l0b3IsIHQsIDApOworICB9Cit9CisKKyNlbmRpZiAvLyBCT09TVF9WSVNJVF9FQUNIX0hQUApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZG5ib29zdC93ZWFrX3B0ci5ocHAgYi9pbmNsdWRlL25kbmJvb3N0L3dlYWtfcHRyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2JiYjdkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9uZG5ib29zdC93ZWFrX3B0ci5ocHAKQEAgLTAsMCArMSwxOCBAQAorI2lmbmRlZiBCT09TVF9XRUFLX1BUUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfV0VBS19QVFJfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgd2Vha19wdHIuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3NtYXJ0X3B0ci93ZWFrX3B0ci5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8bmRuYm9vc3Qvc21hcnRfcHRyL3dlYWtfcHRyLmhwcD4KKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1dFQUtfUFRSX0hQUF9JTkNMVURFRAo=